보안 제품정보


Windows Vista에도 허점은 있다 2006.11.01

Windows Vista 보안 취약점 Summary

 


마이크로소프트에서 새롭게 내 놓은 차세대 OS체계인 윈도우 비스타(Windows Vista)는 내년 초쯤이면 기업과 일반인 모두에게 공개될 전망이다. 반면 윈도우 비스타가 보안기능이 강화됐다곤 하지만 여전히 보안 취약점이 존재한다고 보안업계 관계자들은 말하고 있다. 그럼 윈도우 비스타에는 어떤 보안취약점들이 존재하고 있을까?


지난 8월 8일 시만텍은 윈도우 비스타와 관련된 보고서에서 “윈도우 비스타의 커널 개선 부분 내에서도 취약점을 발견했다”고 밝히고 “MS가 악질적인 코드로부터 비스타의 코어를 보호하기 위해 도입한 많은 방어책은 무용지물이 될 수 있다”고 경고했다. 즉 커널 코드의 핵심 부분의 무결성을 체크하는 패치가드(PatchGuard)라는 기능이 무너질 수 있다는 내용이었다.


또 운영체제의 핵심 파일을 패치 하여 서명이 없는 드라이버 소프트웨어가 비스타의 PC상에서 동작하지 않도록 하는 방어 메커니즘도 공격자로 인해 무력화될 수 있다고 보고서는 밝히고 있었다. 드라이버의 경우 OS의 저층에서 동작하기 때문에 악질적인 경우 심각한 위험이 발생한다는 것.


여기서는 윈도우 비스타와 관련, 발표된 취약점에는 어떤 것들이 있는지 간략하게 알아보도록 하겠다.


현재 Windows Vista에 대한 취약점은 찾기가 힘들다. 왜냐하면 현재 발표되는 취약점들 기사 중 취약 OS파트에 Vista는 넣지 않고 있기 때문이다. 비스타 정식버전이 아니기 때문이기도 하다. 따라서 취약점을 찾기 위해서는 MS의 보안업데이트 내용을 살피거나 가끔씩 보이는 발표내용을 찾아봐야하는데 그리 많진 않은 것 같다.


현재 Vista에 대한 연구는 취약점을 찾는 것보다는 Vista자체 방어 메커니즘에 대한 연구가 중심이다. 따라서 현재 나와 있는 취약점들도 Vista만의 취약점이라고 볼 수는 없고, 그 전 윈도우들에도 존재하던 취약점이 Vista에 적용되는지를 확인하는 차원이라고 볼 수 있을 것이다.


◇윈도우 비스타 취약점 연구 발표내용


1. ASLR(Address Space Layout Randomize)

 -Beta2에서부터 ASLR(address space layout randomize)을 채택했다.

 -OS와 함께 설치된 모든 EXE와 DLL들이 모두 랜덤화 됐다.

단 랜덤화 개수가 256개에 불과한데다, Windows에서는 그 중 32개만을 사용하여 bruteforcing 공격의 가능성이 농후하다. 그래서 BOF(buffer overflow) 등의 기존 공격방법 사용이 가능하다.


2. Kernel-Mode Security

Vista에는 다음과 같은 새로운 kernel-mode security feature들이 있다. 이들을 이용해 Vista는 악의적인 코드가 OS커널에 access하는 것을 막을 수 있다.


 ㆍDriver signing

 ㆍPatchGuard

 ㆍKernel-mode code integrity checks

 ㆍOptional support for secure Bootup using a TPM handmade chip

 ㆍRestricted user-mode access to \device\PhysicalMemory


그러나, 다음과 같은 공격 방법이 가능하다.

1) Kernel-Mode Network Drivers

Vista는 네트워크 프로토콜을 다루기 위해 사용하는 Kernel-mode driver들을 사용하는데, 만약 이들에 취약점이 존재한다면 Driver Signing은 공격자를 방해할 수 없다.


2) Disabling Driver Signing and Code Integrity

NTOSKRNL.EXE와 WINLOAD.EXE를 패치함으로써 Driver signing과 Code integrity를 실행할 수 없게 할 수 있다. Visata에서는 이것을 WRP(Windows Resource Protection)로 막고 있다. WRP는 Administrator이나 LocalSystemonly가 쓸 수 없고 TrustedInstaller만이 가능하도록 시스템 파일들에 ACLs를 설정한다.


하지만, 다음과 같은 단계로 WRP를 무력화 시킬 수 있다. 우선 SeTakeOwnership 권한을 실행하게 하고, 두 번째로 WRP-protected file이나 registery key의 소유권을 가져온다. 마지막으로 Administrators의 전체권한을 가져온다. 이 과정들은 AdjustTokenPrivileges와 SetNamedSecurityInfo API들을 사용해 실행할 수 있다. 이렇게 한 후 공격자는 디스크의 바이너리를 패치할 수 있다.


3) loading unsigned code into Vista Beta 2 kernel (x64), without requiring a reboot

이것은 블랙 햇(Black Hat) 컨퍼런스에서 Joanna Rutkowska가 시연한 내용이다.

Joanna는 이 발표에서 우선 비스타 베타2 커널 x64에 임의의 코드를 삽입하고, 그래서 단지 디지털 서명을 받은 코드만이 커널에 적재되도록 허용하는 Vista의 정책을 효율적으로 우회하는 방법을 제시하고 있다. 이 발표에서 제시된 공격은 시스템을 재부팅하지 않아도 된다. 하지만 Windows Vista RC2 x64에서는 공격할 수 없었다고 한다.


◇ 발표된 취약점 정리

1. MS Security Update for Windows Vista Bet1 and Windows Vista December CTP (KB912919) 

공격자가 원격으로 Windows 기반의 시스템을 완전히 장악할 수 있도록 하는 원격 코드 실행 문제가 GRE(Graphics Rendering Engine)에서 확인되었다.

<관련된 취약점>

Graphics Rendering Engine Vulnerability - CVE-2005-4560


2. MS Cumulative Update for Internet Explorer for Windows Vista Beta 2 (KB918899)

공격자가 Microsoft Internet Explorer가 실행되는 컴퓨터를 완전히 장악할 수 있는 보안 문제가 확인되었다.

<관련된 취약점>

Multiple Event Handler Memory Corruption Vulnerability

DHTML Method Call Memory Corruption Vulnerability

COM Object Instantiation Memory Corruption Vulnerability

JPEG Image Rendering Memory Corruption Vulnerability


3. Windows IpV6 Land attack

윈도우 방화벽이 비활성화되어 있는 Windows XP SP2, 2003 Server SP1, 및 Longhorn(Vista)에의 IPv6은 SYN flag가 설정되어 있는 TCP 패킷을 통해 공격자가 서비스 거부 공격을 할 수 있다. 이것은 CVE-2005-0688와 CVE-1999-0016의 변형된 보안 문제점이다.

http://www.securityfocus.com/archive/1/400188

http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1649


4. MS Security Update for Windows Vista Beta 2 and Windows Codename Longhorn Server Beta 2 (KB917422)

공격자가 Windows 기반의 시스템을 장악할 수 있는 보안 취약점이 커널에서 확인되었다.

<관련된 취약점>

User Profile Elevation of Privilege Vulnerability - CVE-2006-3443:

Unhandled Exception Vulnerability - CVE-2006-3648:

[길민권 기자(reporter21@boannews.com)]


<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>