작성자 : 구대훈 컨설턴트
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)

[A3AID07-03]

Microsoft Windows ANI File Format Handling 취약점

 

권고문 작성일 : 2007. 4. 3

최초 발표일 : 2007. 3. 29

위험등급:

현재 상태(패치 여부) : 패치

벤더: Microsoft


대상 시스템 : 해당 취약점에 영향을 받는 시스템 목록은 아래와 같으며, 영문 버전 및 한글 버전에서 원격 명령어 실행이 확인되었으며, 이 취약점을 악용한 웜 바이러스가 확인되었다.

- Microsoft Windows 2000
- Microsoft Windows XP
- Microsoft Windows Server 2003
- Microsoft Windows Vista


취약점 개요:

Microsoft사의 ANI 파일은 RIFF(Resource Interchange File Format) 형식을 기반으로 커서 및 다수의 아이콘을 저장하기 위해 만들어진 파일 형식이다. RIFF 형식을 이용하는 파일로는 AVI, WAV등 다양한 종류의 멀티미디어 자료들이 있다.
ANI파일의 RIFF 포맷의 잘못된 처리로 인해 스택 오버플로우가 발생하여 로컬 사용자의 권한으로 임의의 코드를 실행시킬 수 있으며, 개인정보 유출을 노리는 악성프로그램을 설치할 수 있다.
2007년 4월 3일 현재 Microsoft사에서는 취약점에 대한 패치가 제공되고 있지 않으며, 4월 4일에 패치 예정으로 알려졌다.
본 보안 권고는 ANI파일에 대한 취약점 분석을 하였다.

심각도 및 취약점 확인 :

취약점 영향

취약점 위험도

원격 코드 실행

긴급


취약점 세부 분석 :

이 취약점은 ani 파일의 잘못된 헤더 값으로 인해서 ani 파일이 로딩되면서 스택 오버플로우가 발생하여 원격 코드 실행이 가능 한 취약점이다. 이 취약점을 이용하여 악성프로그램을 설치할 수 있다.

다음 그림은 ANIHeader 의 구조체를 나타내는데 AniHeader의 사이즈는 36byte로 제한되어 있다.


다음 그림은 원격 코드 실행이 가능한 공격 코드이다.
AniHeader의 사이즈를 36byte 가 아닌 비정상적으로 52byte로 설정되어 52바이트 만큼의 데이터가 복사되어 EIP가 덮어 씌워져 스택 오버플로우가 발생된다.
 




ANI 공격 파일은 다음과 같이 구성되어 있다. 다음은 Ani Header 부분입니다.


다음 그림은 Ani tag data 부분입니다.



다음은 Shell Code 부분입니다.
 

[그림 5] Shellcode 부분

다음 그림은 AniHeader 처리 하는 콜문을 확인한 결과이다. AniHeader를 읽어 데이터를 힙역영에 복사를 한다. 데이터를 처리하는 과정에서 AniHeader의 사이즈를 체크후 리턴된다. 리턴된다.
 

 


다음 그림은 리턴 되고 쉘코드가 실행되는 화면이다.
 


다음은 쉘코드가 실행되는 부분입니다.

2. 공격 분석
취약점을 이용한 악성 코드의 공격 방식에 대해서 분석하는 단계입니다.

본 취약점에 대한 공격 코드가 공개된 상태이며 사이트들이 해킹 당했을 경우 홈페이지에 공격 코드가 삽입되면 다 수의 사용자들의 컴퓨터가 악성 프로그램에 감염된다.

다음은 암호화된 공격코드 일부입니다.

 



다음은 복호화된 공격코드 일부입니다. 



공격 코드가 삽입된 페이지를 열람할 시에 악성 프로그램에 감염되게 된다.



3. 위험 분석
상기 취약점을 이용한 실제 동작하는 공격 코드가 이미 공개된 상태이므로 공격을 당했을 시 시스템에 대한 사용자 권한을 얻게 되어 치명적인 위험에 놓일 수 있다.
 


대응방안
아래 사이트를 참고하여 업데이트를 권고드립니다.
Microsoft Security Advisory: Vulnerability in Windows Animated Cursor Handling (935423)
http://www.microsoft.com/technet/security/advisory/935423.mspx

Microsoft Security Bulletin MS07-017: Vulnerability In GDI Could Allow Remote Code Execution (925902)
http://www.microsoft.com/technet/security/Bulletin/MS07-017.mspx

(현재 에이쓰리시큐리티컨설팅에게서 서비스를 받으시는 고객에만 한정적으로 자료 제공)

 

Copyright(c) 1998-2007 A3 Security Consulting.,LTD


Disclaimer
※ 현재 ㈜에이쓰리시큐리티컨설팅에서 테스트 및 분석 중에 있으며, 이 문서는 계속 업데이트될 것입니다. 본 문서는 보안취약점으로 인한 피해를 최소화하는 데 도움이 되고자 작성되었으나, 본 문서에 포함된 대응방안의 유효성이나 기타 예상치 못한 시스템의 오작동 발생에 대하여서는 ㈜에이쓰리시큐리티컨설팅에서는 일체의 책임을 지지 아니합니다.