UEFI PXE 부팅 취약점 CVSS 9.5, '지구상 대부분 서버' 위협이라는 Ars 보도에 반론 쏟아짐
Summarized from the Hacker News discussion because the article couldn't be read
- 댓글에 따르면 tianocore edk2 보안 권고는 클라이언트 IP로 유니캐스트 ICMP 오류 메시지를 보내기만 하면 된다고 설명하지만, 기사는 로컬 네트워크 통제가 선행 조건이라고 써서 서로 어긋남
- CVSS 9.5라는 점수에 의문이 제기됨. PHP 원격 코드 실행 취약점이 9.2였는데 이 취약점은 네트워크 접근이 필요하다는 지적임
- edk2가 실제로 쓰는 모듈만 패키징하는 방식이어서 ICMP 처리를 포함한 펌웨어가 얼마나 배포됐는지 확인되지 않는다는 댓글
- PXE 부팅 트래픽을 건드릴 수 있는 위치라면 익스플로잇 없이 부팅 이미지를 바꿔치기할 수 있다는 반론과, 서명된 이미지만 부팅하는 환경에서는 부트 체인 초기 실행이 의미 있다는 반론이 맞섬
- Tinfoil이 OVMF의 약 100만 줄 C 코드 대신 300줄 어셈블리 펌웨어로 간 사례를 댓글이 인용하며, LLM으로 취약점을 찾는 시대에는 '지구 전체 패치' 방식이 확장되지 않는다고 주장함
Hacker News opinions
어드바이저리 원문은 유니캐스트 ICMP 오류 메시지를 클라이언트 IP로 보내기만 하면 된다고 하는데, 기사는 로컬 네트워크 통제가 필요하다고 써놨더라. 이 내용이 어디서 나온 건지 모르겠음.
PXE 부팅은 원래부터 깨지기 쉬운 과정임. 표적 ICMP 패킷을 쏠 수 있을 정도로 네트워크에 있다면 PXE 서버를 다른 방식으로 건드릴 수도 있다고 봐야지. 세상 끝난 것처럼 볼 일은 아님.
보안 업계가 늑대 온다 하는 것도 정도가 있지. 이제 다들 안 듣는다니까.
edk2는 실제로 쓰는 모듈만 패키징하는데 ICMP를 넣은 펌웨어가 대체 얼마나 되나? 내가 빌드할 때는 넣을 이유를 못 찾았음.
서버가 자기 PXE 서버가 주는 서명된 이미지만 부팅한다고 치자. 부팅 메뉴를 바꾸는 것도 안 되니까 Secure Boot 이전에 도는 부트 체인을 뚫는 익스플로잇이 의미를 갖는 거임.
OVMF 100만 줄 C 코드 대신 300줄 어셈블리 펌웨어로 간 사례를 최근에 봤다. '인기 있다'가 '안전하다'는 뜻은 아니더라.
LLM에 큰 코드베이스 던지면 취약점은 찾아냄. '지구 전체 패치'는 확장이 안 되니까 작고 특화된 코드에 퍼징과 형식 검증을 몰아넣는 쪽이 답이라고 봄.
10층 건물을 몇 년마다 한 층씩 증축하면서 리모델링한 셈이라 inefficient한 부분이 쌓일 수밖에 없음. 필요한 걸 정확히 아는 상태에서 처음부터 다시 짓는 게 맞다고 봄.
seL4처럼 작으면서 특권만 담당하는 코어를 두는 구조적 해법이 필요함. AI가 아직 seL4에서는 아무것도 못 찾았음.
이게 왜 9.5임? PHP 원격 코드 실행이 9.2였는데. 12점을 줄 수 없어서 그런가.
PHP 쪽 CVSS는 처음에 10으로 나왔다가 협상 끝에 9.2가 됐음. 이건 하드웨어 접근이 필요하니 조만간 8.7쯤으로 내려갈지도 모르겠다.
CVSS 8을 넘어가면 인센티브가 이상해짐. 이력서에 '9.2짜리 찾았다' 쓰고 싶은 사람들 얘기니까. AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H를 분석기에 돌려보면 왜 9.5인지 나옴.
CVSS 점수는 사실상 무의미하니 거기서 뭘 읽지 마셈.
또 과장 보도임. 네트워크 부팅이 그렇게 흔한가? 그래도 관리용 네트워크를 공유하는 베어메탈 호스팅 업체들은 서버 한 대만 빌려도 접근되니까 남 얘기는 아님.
PXE 부팅 흔한데? 나는 게임 클라이언트 소프트웨어 쪽인데도 현장에서 겪어봤음.
Ars 테크니카면 원래 이런 톤임.
애플리케이션 코드를 아무리 단단하게 만들어도 아래 깔린 런타임이 안전하지 않으면 소용이 없음. 지금으로선 사설 네트워크로 감싸는 것 말고 뾰족한 수가 안 보임.