UEFI 펌웨어의 코드 실행 취약점, 지구상 대부분의 서버에 영향
원문 제목 — Code-execution flaw in UEFI firmware affects most servers on planet Earth
📄 전문 번역
심각도 등급이 10점 만점에 9.5점에 달하는 이 취약점은 TianoCore EDK II에 존재한다. TianoCore EDK II는 하드웨어 제조업체와 클라우드 제공업체가 부팅 시퀀스 동안 실행되는 UEFI 펌웨어를 만들 때 사용하는 오픈 소스 코드베이스다. PHP 취약점은 9.3점으로 평가되었다.
💬 주요 댓글 번역 (5)
🔍 루키 분석
심각도 9.5점의 이 취약점은 하드웨어 제조업체와 클라우드 제공업체가 UEFI 펌웨어 제작에 사용하는 오픈 소스 코드베이스 TianoCore EDK II에 존재한다. 댓글에서는 PXE 부팅 중인 시스템과 내부 네트워크 접근이 공격의 전제 조건이 되어 실제 악용 난이도가 높다는 평가가 이어졌다. 일부는 이 버그가 16년간 존재해 왔으며 내부 접근 권한을 가진 공격자에게 유용할 수 있다고 지적했다.
— 루키 · glm-5.3-flash:cloud
PXE 부팅하는 기계만 취약하며, 공격자는 해당 기계가 PXE 부팅하는 네트워크에 접근해야 한다. 대부분의 기업 네트워크는 인터넷으로부터 방화벽으로 보호되고 이상적으로는 다른 내부 네트워크로부터도 보호되는 사설 내부 네트워크다. 따라서 여전히 심각한 취약점이긴 하지만, 이러한 내부 네트워크에 접근하는 것이 쉽지 않기 때문에 하늘이 무너지는 상황은 아닌 듯하다.
공격이 진행될 가능성이 높은 방식은 다음과 같다. 공격자가 웹서비스에서 임의 코드 실행을 확보하고, 그다음 컨테이너에 대한 LPE(로컬 권한 상승)를 확보한 뒤, 컨테이너 탈출 취약점을 거치고, 아마도 또 한 번의 LPE와 하이퍼바이저 탈출로 이어진다. AWS/GCP/Azure에 있다면 성공하기 어렵겠지만 지난달 이후 일부 KVM 클라우드 제공업체는 식은땀을 흘릴 것이다. 특히 취약한 곳은 온프레미스를 호스팅하는 SMB/기업이며, 네트워크가 제대로 분할되지 않았다면(온프레미스에서는 매우 흔한 일이다) 이 노드는 foreman/maas가 재프로비저닝하는 유지보수 창까지 계속 시도할 수 있다.
이 버그는 16년 동안 존재해 왔다. 음모론자가 되고 싶지는 않지만 누가 이것을 작성했는지 정말 궁금하다. 이것은 외부 해커에게는 쓸모가 없지만 스파이와 내부 접근 권한을 가진 국가 수준의 해커는 이를 사용할 수 있다.
공공 도서관에서 PXE 부팅을 본 적이 있다. WLAN은 AP 격리를 사용할 것으로 예상하지만 유선 연결은 종종 비교적 쉽게 접근할 수 있다. 그래도 크게 경악하지는 않는다. 유능한 관리자라면 이를 염두에 두고 예상치 못한 클라이언트에 대한 완화 조치를 갖추었어야 한다.
UEFI 펌웨어 버퍼 오버플로우 버그로는 첫 번째도 아니고 아마 마지막도 아닐 것이다. 요구 조건은 다음과 같다. 첫째, 시스템이 PXE 부팅 중이어야 한다. 이는 시스템에 PXE 부팅이 활성화되어 있고 공격자가 컴퓨터가 네트워크 어댑터에서 PXE 트래픽을 감시하는 수 초의 창을 맞춰야 함을 의미한다. 둘째, 공격자가 이 창 동안 ICMP 트래픽으로 컴퓨터에 도달할 수 있어야 한다. 인터넷에 노출된 자원의 상당 부분은 CloudFlare든 각종 로드 밸런서든 일종의 프런트엔드 서비스 뒤에 있어, 해당 시스템의 주소로 핑을 보내면 응답하는 것은 프런트엔드이다.