2014 년 10 월 14 일 (현지 시간) 3 개의 제로 데이 취약점 ' CVE-2014-4114 ',' CVE-2014-4148 ',' CVE-2014-4113 '이보고되고 Microsoft는 10 월의 월례 보안 정보에 이러한 제로 데이 취약점을 해결하는 패치를 출시했습니다. "Sandworm"로 알려진 취약점 'CVE-2014-4114'는 이용되면 공격자가 쉽게 악성 프로그램을 만들 수 있습니다.
이 문제의 취약점은 유럽의 기관 및 기업을 대상으로 한 표적 형 공격에 관련이 있습니다. 또한 Trend Micro는이 취약점은 SCADA (산업 제어 시스템)을 표적 공격에서도 이용 된 것을 확인했습니다.
'CVE-2014-4148'및 'CVE-2014-4113'는 Windows 커널 부분의 Win32k.sys에 존재하는 취약점을 이용한 것으로, 대부분의 Windows 버전에 영향을 미칩니다. 2013 년에 확인 된 커널에 존재하는 제로 데이 취약점은 하나뿐, Windows XP 및 Windows 2003의 여러 버전에 영향을 미칠뿐이었습니다. 이러한 제로 데이 취약점은 공격자가 대상을 커널에 존재하는 취약점으로 복원하는 징후 일 가능성이 있습니다.
취약점 'CVE-2014-4113'의 이용에 성공하면 권한 상승이 가능합니다. Microsoft는 " MS14-058 "이 취약점에 대응하고 있습니다. 문제의 취약점은 Windows XP에서 Windows 8.1까지의 데스크톱 버전 및 Server 2003에서 Server 2012 R2까지의 서버 버전의 Windows OS에 영향을 미칩니다. 그러나 현재 확인되고있는 익스플로 이도 코드는 Windows 8 이상 버전에 영향을주지 않습니다.
익스플로 이도 코드는 명령 줄 매개 변수를 사용하여 지정된 프로그램의 시스템 권한으로 새 프로세스를 생성 할 수 있습니다. 권한 상승 취약점 또한 표적 공격에 이용되는 것으로 간주합니다. 왜냐하면 취약점을 이용할 수있는 애플리케이션이 공격자의 필요한 권한을 가지고 있지 않기 때문입니다. 권한 상승 취약점 이용은 " STUXNET (스타 쿠스 넷) "에서 확인되었습니다. 스타 쿠스 넷은 다른 취약점을 이용하여 PC에 감염된 후 Win32k.sys에 존재하는 취약점 'CVE-2010-2743'을 이용하여 권한 상승을하였습니다.
다음의 MD5 해시 값을 갖는 검체를 기초로 문제의 취약점 및 취약점 이용을 분석합니다.
- 70857e02d60c66e27a173f8f292774f1
- f9f01ce747679b82723b989d01c4d927
당사는 이러한 악성 프로그램을 "TROJ_APOLMY.A"및 "TROJ64_APOLMY.A"로 검색합니다."TROJ64_APOLMY.A"은 64 비트 시스템에서 확인 된 버전입니다.
■ Win32k.sys에 존재하는 취약점에 대해 알아야 할
Win32k.sys는 창 관리 및 Win32k.sys을 사용하는 그래픽 사용자 인터페이스 (GUI)의 프로세스와 스레드의 제어를 담당하고 있습니다. 관련 사용자 모드의 모듈은 "user32.dll"및 "GDI32.dll"입니다. 사용자 모드 응용 프로그램 간의 상호 작용이 복잡하기 때문에 Win32k.sys에 많은 문제가 존재합니다.
이 취약점의 이용에 대해 좀 더 자세히 설명하고 있습니다. 문제의 핵심은 함수의 반환 값이 제대로 검증되지 않는 것입니다. 개발자들은이를 간과하는 경향이 있지만, 심각한 보안 위험이 있습니다.
Win32k.sys는 "xxxHandleMenuMessages ()"라는 함수가 있습니다. 이 함수는 계층 "win32k! tagWND"의 주소 또는 하드 코드 오류 코드 "-1", "- 5"를 반환합니다. 다른 함수 "xxxHandleMenuMessages ()"는 "xxxHandleMenuMessages () '를 호출하고 반환 값을"xxxSendMessage () "매개 변수로 사용합니다. 다음 의사 코드입니다.
xxxHandleMenuMessages ()
{
tagWnd * pWnd = xxxMNFindWindowFromPoint (...);
... // without checking IF the return value is a valid address
xxxSendMessage (pwnd, ...);}
물론 오류 코드 "-1"또는 "-5"가 "xxxSendMessage ()"에서 주소로 사용 된 경우 치명적인 오류가 발생 파란 화면이 표시됩니다. 사용자 모드 코드에서는이 취약점은 사용할 수 없습니다. 그런 다음 검체가 커널 모드에서 문제의 취약점을 어떻게 이용하는지 확인합니다.
다음은 어떻게 문제의 취약점이 이용되는지 보여 주었다 주요 단계입니다.
- NULL 페이지 준비한 메모리 영역을 매핑합니다. NULL 페이지에는 가짜 계층 "win32k! tagWND"및 계층 구조에서 권한 상승 쉘 코드에 대한 포인터가 포함됩니다.
- 문제의 취약점을 이용하여 "xxxMNFindWindowFromPoint ()"의 반환 값 (pWnd)가 '-5'(0xfffffffb)이되도록 만듭니다. 가짜 계층의 모든 검증되는 영역은 액세스 가능하고 적절한 값으로 인해 "xxxSendMessage ()"는 "- 5"를 유효한 주소로 처리합니다. 그리고 "xxxSendMessage () '가 계층의 함수 포인터를 호출하면 쉘 코드에 대한 포인터입니다.
- EPROCESS의 토큰을 교환하고 쉘 코드의 시스템 권한을 상승시킵니다.
- 할당 된 프로그램의 시스템 권한을 사용하여 자식 프로세스를 생성합니다.
문제의 검체는 "SetWindowsHookEx ()"를 이용하여 "xxxMNFindWindowFromPoint ()"을 제어하고 "- 5"를 반환합니다.
- 윈도우와 2 단계 팝업 메뉴를 생성한다.
- 그 윈도우의 콜백 함수 "wndproc"전화를 연결한다.
- 윈도우에서 팝업 메뉴를 추적하고 후크 콜백에 들어간다.
- 후크 콜백에서 메뉴의 "wndproc"다른 콜백으로 변경한다.
- 메뉴의 콜백에서 메뉴를 끊는다.
- 끊긴 메뉴에서 "xxxMNFindWindowFromPoint ()"가 "-5"를 반환한다.
또한 검체의 쉘 코드는 다음 코드 조각에서 볼 수 있도록 단순하고 직접적인 것입니다. 당사는이 검체가 시스템 프로세스의 EPROCESS (PID = 4)를 취득하고 권한 토큰을 현재 프로세스의 EPROCESS에 복사하는 것을 확인 할 수있었습니다.
분석을 통해 당사는 커널에 존재하는 취약점은 Internet Explorer (IE) 등에 존재하는 「Use After Free (해방 후 사용) "취약점보다 쉽게 사용할 수 있는지 확인했습니다. "데이터 실행 방지 (DEP) '등 사용자 모드에서 효과적인 보안 기능은 커널 모드에서 쉽게 피할 취약점이 이용됩니다. 이것은 취약점 이용에 이용되는 것이 입력 한 정보 또는 스크립트가 아닌 프로그램이기 때문입니다. 익스플로잇 코드는 처음부터 이미 실행되고 있습니다.
OS에서 사용되는 응용 프로그램의 동작 확인을하는 샌드 박스가 증가하면 커널에 존재하는 취약점은 권한 상승을 위해 더 중요 해지고 있습니다. 이러한 취약점을 이용한 공격 방법은 새로운 것은 아니지만 특히 취약 'CVE-2014-4113'가 공개 된 후에는 공격자의 눈에 띄는 될 것입니다.
검체의 수집시에 당사는 익스플로잇 코드를 만드는 도구 소스 코드가 유출되는 것을 확인했습니다. 따라서이 취약점을 이용하는 악성 프로그램의 변종이 또한 공격자에 의해 생성 될 것으로 예상됩니다. 권한 상승 취약점을 이용한 공격을 실행하고 응용 프로그램의 동작 확인을하는 샌드 박스를 회피 침입하기 위해 공격자는 커널에 존재하는 취약점을 필요로하고 있다고 저희는 생각하고 있습니다. 이번 취약점 이용 공격 수법이 더욱 広まれ하면 이번 커널에 존재하는 제로 데이 취약점과 같은 취약점 이용을 앞으로 확인하게 될지도 모릅니다.
Windows 7 및 Windows XP는 이번 취약점을 이용한 공격에 가장 위험하기 쉬운 Windows 버전입니다.기업은 두 버전을 많이 사용하고 있으며,이 위협의 영향을받을 가능성이 있습니다. 일반 사용자 및 IT 관리자는 관련 업데이트를 적용하여 시스템을 최신 상태로 유지할 것을 권장합니다.
Windows 8 이상 버전에서는 현재 확인되고있는 익스플로잇 코드가 차단되기 때문에 보안 위험은 낮습니다. 이것은 새로운 보안 기능으로 알려진 'Supervisor Mode Execution Prevention (SMEP) "가 커널 모드에서 사용자 모드 메모리 페이지의 읽기, 쓰기, 실행 등의 액세스를 방지합니다. 따라서 null 페이지와 쉘 코드 액세스 기능의 정지를 일으킬 수는 있어도, 코드의 실행을 일으킬 수는 없습니다.
관련 기사 :
- 사이버 공격 "Sandworm"가 "Blacken"에 유도. 산업 제어 시스템이 표적?http://blog.trendmicro.co.jp/archives/10130
- Windows 제로 데이 취약점 'CVE-2014-4114'이용한 사이버 공격 "Sandworm」을 해석http://blog.trendmicro.co.jp/archives/10092
- 현재 Windows OS의 제로 데이 취약점 'CVE-2014-4114'첩보 목적의 사이버 공격에 이용되는http://blog.trendmicro.co.jp/archives/10085
참고 기사 :
'malware ' 카테고리의 다른 글
업데이트 공개 1 주일 취약점 "Sandworm"를 이용하는 새로운 공격 확인 (0) | 2014.10.24 |
---|---|
FOR FUN AND PROFIT (0) | 2014.10.22 |
Man With No Name” Feel Insecure? (0) | 2014.10.21 |
언더 그라운드에서 신용 카드 정보를 판매하는 'Lampeduza "가짜 사이트를 확인 (0) | 2014.10.20 |
International Voicemail Security via VVM Exploitation (0) | 2014.10.20 |