상세 컨텐츠

본문 제목

마이크로소프트, Malware Protection Engine의 심각한 두 번째 결점을 은밀히 패치 해

국내외 보안동향

by 알약(Alyac) 2017. 5. 31. 16:01

본문

마이크로소프트, Malware Protection Engine의 심각한 두 번째 결점을 은밀히 패치 해

Microsoft silently patched a second critical Malware Protection Engine flaw


마이크로소프트가  5월 12일 Malware Protection Engine에서 발견한 두 번째 취약점을 은밀히 패치하였습니다. 


해당 취약점은 공격자가 특별히 제작한 실행파일을 Malware Protection Engine의 에뮬레이터가 처리할 때 RCE 결함을 유발시킵니다. 


지난 5월 9일, 구글의 Project Zero가 또 다른 취약점인 CVE-2017-0290을 발견했으며, 이는 긴급 패치를 통해 단 3일만에 수정 되었습니다. 하지만 두 번째 취약점은 CVE-2017-0290과는 달리 이번 버그는 은밀히 패치 되었습니다. 


MsMpEng에는 PE 실행파일처럼 보이는 신뢰할 수 없는 모든 파일들을 실행할 때 사용 되는 풀 시스템 x86 에뮬레이터가 포함 되어 있습니다.  이 에뮬레이터는 NT AUTHORITY\SYSTEM으로써 실행 되며 샌드박싱 되어 있지 않습니다. 


보안 연구원은 이 에뮬레이터가 지원하는 Win32 API 목록을 브라우징하던 중, 에뮬레이트 된 코드가 에뮬레이터를 제어할 수 있게 해주는 ioctl과 유사한 루틴인 ntdl!NtControlChannel을 발견했습니다.



Malware Protection Engine 결함


최근 패치 된 이 취약점은 에뮬레이터가 파일을 처리하는 방식과 관련이 있으며, 이전 버전은 MsMpEng의 JavaScript 인터프리터에 영향을 줍니다.


공격자는 이 취약점을 악용해 다수의 제어 명령을 실행할 수 있습니다.


0x0C 명령어는 임의의 공격자가 제어하는 RegularExpressions를 마이크로소프트 GRETA(2000년대 초반부터 사용되지 않는 라이브러리)로 파싱할 수 있도록 허용합니다. 이 라이브러리는 신뢰할 수 없는 Regex를 처리하기에는 안전하지 않습니다.

 

명령어 0x12는 추가의 op코드를 대체할 수 있는 “마이크로코드”를 로드하도록 허용합니다. 최소한, 제공 된 다수의 opcode를 계산하는 정수 오버플로우가 있습니다.


다양한 명령어들을 사용해 실행 파라미터를 변경하고, 스캔 속성 및 UFS 메타데이터를 설정하고 읽을 수 있습니다. 이는 공격자가 사용자가 설정한 조사 속성을 쿼리할 수 있고, 스캔 결과를 통해 이를 받아올 수도 있습니다.


MsMpEng가 샌드박싱 되어 있지 않은 상태라 할지라도 많은 프로그램들이 샌드박싱 되어 있기 때문에, 이 취약점은 악용하기 어렵습니다. 공격자가 샌드박스를 피해 문제를 유발시켜야 하기 때문입니다.


보안전문가에 따르면 이 에뮬레이터 컴포넌트는 클라이언트의 CPI를 에뮬레이트 하지만, 마이크로소프트는 API 호출을 허용하는 추가 명령을 지원합니다. 해커들은 이 에뮬레이터를 위한 특별한 명령 세트를 찾게 되어 매우 놀랐다고 강조하였습니다.


마이크로소프트는 이 취약점에 대한 보안 권고를 아직까지 게시하지는 않았습니다.






출처 :

http://securityaffairs.co/wordpress/59541/hacking/malware-protection-engine-flaw.html

https://bugs.chromium.org/p/project-zero/issues/detail?id=1260



관련글 더보기

댓글 영역