| 구글 프로젝트 제로팀, MS 보안 장치에서 취약점 발견 | 2017.06.27 |
5월 8일부터 시작해 벌써 세 번째...원격 코드 실행 가능케 해
구글은 “강력하고 쉬운 익스플로잇”, MS는 “의도적인 장치” [보안뉴스 문가용 기자] 구글의 프로젝트 제로팀이 계속해서 마이크로소프트를 들쑤시고 있다. 특히 마이크로소프트의 야심찬 보안 소프트웨어인 멀웨어 프로텍션 엔진(Malware Protection Engine)에서 치명적인 취약점을 발견한 건 벌써 세 번째다. 마지막이자 세 번째인 원격 코드 실행 취약점은 6월 7일 마이크로소프트에 은밀히 보고되었고, 지난 주 금요일에 패치가 이루어졌다. ![]() [이미지 = iclickart] 보안 전문 매체인 쓰레트포스트에 의하면 해당 취약점은 KERNEL32.DLL!VFS_Write API에 힙 커럽션(heap corruption) 오류를 일으키는 것으로, 샌드박스 처리되지 않은 x86 시스템 에뮬레이터에서 발견되었다고 한다. 재미있는 건 5월에 이미 MS가 패치를 한 내용이라는 것이다. 즉, 패치가 온전하지 않았을 가능성이 매우 높다고 구글 프로젝트 제로팀의 타비스 오르만디(Tavis Ormandy)는 설명한다. 오르만디는 “x86 시스템 에뮬레이터는 신뢰하기 힘든 실행 파일을 실행하기 위한 환경을 만들어주는 기능”을 가지고 있으며, “대량의 에뮬레이터 API들을 호출하는 apicall 명령 하나가 원격 노출된다”고 한다. 문제가 되는 부분은 다음 두 줄이다. MpApiCall("NTDLL.DLL", "VFS_Write", 1, Buf, 0, 0xffffffff, 0); MpApiCall("NTDLL.DLL", "VFS_Write", 1, Buf, 0x7ff, 0x41414141, 0); 오르만디는 “첫 호출은 파일의 길이를 nOffset으로 확장시키지만 numberOfBytes 매개변수가 0이기 때문에 공간이 배정되지 않는다”며 “그렇기에 MutableByteStream 객체 버퍼로 향하는 임의의 오프셋으로 임의의 데이터를 읽어 들이거나 작성할 수 있게 된다”고 설명한다. “즉 강력한 익스플로잇이 쉽게 이행될 수 있다는 겁니다.” 하지만 MS 측은 “여러 가지 목적을 가지고 일부러 그렇게 만들어 둔 것이지 취약점이 아니”라고 설명했다. MS가 바라보는 진짜 취약점은 멀웨어 프로텍션 엔진이 특별히 조작된 파일을 제대로 스캔하지 않는다는 것이라고 한다. MS는 “스캔이 제대로 이루어지지 않기 때문에 메모리 커럽션 오류가 발생하는 것”이라며 “이 부분을 제대로 공략한다면 LocalSystem 계정을 통해 임의의 코드를 실행할 수 있게 되며, 시스템 통제권을 통째로 가져가게 된다”고 패치 노트를 통해 밝혔다. “시스템 통제권을 가져간 공격자는 데이터를 열람, 변경, 삭제할 수 있으며 권한이 높은 계정을 생성할 수도 있게 됩니다.” 이를 활용한 실제 공격 시나리오는 어떤 것일까? 쓰레트포스트는 “조작된 파일을 웹사이트에 호스팅하고, 해당 사이트로 멀웨어 프로텍션 엔진 사용자를 유인하면, 웹 페이지가 열람되면서 동시에 파일이 실행된다”고 설명한다. 오르만디는 “멀웨어를 이메일이나 메신저로 발송하는 것도 가능하다”고 덧붙였다. 멀웨어 프로텍션 엔진이 악성 파일을 자동으로 스캔하도록 유도하는 것이 핵심이다. 사용자가 옵션 조정 등으로 자동 스캔이 작동하지 않도록 해두었다면 공격자는 멀웨어 프로텍션 엔진의 스캐닝이 시작될 때까지 기다려야 한다. 오르만디와 프로젝트 제로팀의 나탈리 실바노비치(Natalie Silvanovich)가 멀웨어 프로텍션 엔진에서 처음 발견한 취약점은 지난 5월 8일 패치가 되었고, 보안 전문가들로부터 “윈도우 역사상 최악의 취약점”이라고 일컬어진 바 있다. 당시 MS는 긴급 패치 형태로 해당 문제를 해결했다. 이번에 발견된 세 번째 오류에 대한 패치는 별 다른 발표나 공고 없이 조용히 진행됐다. [국제부 문가용 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|