현 A3시큐리티 지식사업팀장이 발표한 내용에 대한 뉴스입니다.

뉴스 링크 : http://www.boannews.com/media/view.asp?page=4&gpage=1&idx=13982&search=&find=&kind=0

기사 내용으로 접하다 보니 전달이 잘 안되는 부분이 있습니다.

중요한것은 우회 기법에 대한 필터링을 지속적으로 업데이트 해야 하는 방향과 개발 소스단(ASP, JSP, PHP, ASP.NET 등)에서 원척적으로 해당 취약점에 대한 대응방안에 따라 개발을 해야 합니다.

또한 게시판 Editor 솔루션을 보안적인 측면을 생각하지 않고 그대로 사용하고 있는 경우를 많이 볼 수 있습니다. 웹 서비스의 보안에 맞게 (Customize) 수정을 하여 사용할 수 있도록 관리해야 합니다.

▷ 작성자 : InPure(aramlee@a3sc.co.kr)
▷ 편집자 : 니키 (
ngnicky@a3sc.co.kr)

 

[A3AID08-05]

MS Media Player *(.WAV) Remote Integer Overflow

공격 보안 권고안



1.취약점 내용

취약점 분석은 아래 URL의 POC로 분석하였다.

http://www.milw0rm.org/exploits/7585

POC를 실행하여 만들어진 int-ov.wav 파일을 윈도우 미디어 플레이어로 실행시키면, 다음과 같은 오류메시지가 뜬다.


[그림 1] Windows Media Player 오류

윈도우 미디어 플레이어에서 WAV 파일을 로딩할 때, quartz.dll에 있는 MulDivRN(x, x, x) 함수를 호출하는데, 다음은 이 함수의 코드이다.


[그림 2] MulDivRN(x,  x,  x) 함수


프로세서가 “div reg” 명령을 실행할 때, 다음과 같이 실행한다.

EAX = (EDX:EAX)/reg 

DIV 연산의 결과가 32bit를 넘어서면CPU 예외가 발생하는 데, quartz.dll에 이러한 예외처리를 위한 루틴이 없다.

 
2. 공격 분석

WAVE 파일 포맷은 다음과 같다.


[그림 3] WAVE file format.

WAVE 파일 포맷의 시작은 RIFF 부분이다.

ChunkID : ASCII로 “RIFF”라는 단어를 포함한다. (0x52494646, big endian)

ChunkSize : 파일의 전체 크기에서 8바이트를 뺀 값이다. 이 때, 8바이트를 빼는 이유는 ChunkID와 ChunkSize 두 필드를 포함하지 않기 때문이다.

Format : “WAVE”라는 단어를 포함한다. (0x57415645, big endian)

“fmt ”는 sound data 포맷을 설명하는 부분이다.

Subchunk1ID : “fmt “라는 단어를 포함한다. (0x666d7420, big endian)

Subchunk1Size : 16 for PCM. Subchunk의 잔여 사이즈이다.

AudioFormat : PCM=1. 이 값이 같으면 같은 압축방식이다.

NumChannels : Mono=1, Stereo=2, 기타.

SampleRate : 8000, 44100, 기타.

ByteRate : == SampleRate * NumChannels * BitsPerSample/8

BlockAlign: == NumChannels * BitsPerSample/8

모든 채널을 포함하는 샘플의 바이트 수이다.

BitsPerSample : 8 bits = 8, 16 bits = 16, 기타.

 

“data” 부분은 데이터의 크기와 실제 소리를 포함한다.

Subchunk2ID : “data”단어를 포함한다. (0x64617461, big endian)

Subchunk2Size : == NumSamples * NumChannels * BitsPerSample/8

데이터의 바이트 수이다.

Data : 실제 데이터이다.


다음은 위에서 사용한 익스플로잇의 힙이다.


[그림 4] 익스플로잇의 힙

다음은 72바이트인 WAVE 파일의 힙이다.


[그림 5] 일반적인 WAVE 힙

 

이 두 힙을 비교해보면 알 수 있듯이, 익스플로잇은 RIFF도, WAVE도, fmt도, 아무것도 없는 잘못된 포맷이다.

일반적인 WAVE 파일은 헤더가 “52 59 46 46”으로 시작해야하고, 9~12바이트에서 “57 41 56 45”(“WAVE”)가 있어야하며 뒤이어 “66 6d 74 20”(fmt )가 있어야 한다.

이 잘못된 형태의 멀티미디어파일을 타겟 유저가 실행함으로써 예외가 발생하여 정수형 오버플로우를 유발한다.

 

3. 위험 분석

비정상적인 형태의 파일이 취약한 버전의 Windows Media Player로 재생될 때 정수형 오버플로우로 인해 DoS가 발생한다.


4. 대응 방안


현재 패치가 없는 상태이기 때문에, 의심스러운 WAV, SND, MID 파일을 Windows Media Player로 열지 않아야 한다.

패치는 해당 함수의 DIV 연산 수행시에 값의 최대값을 check를 하는 방법으로 이루어질 것이라고 예상된다.


5. 관련 사이트

본 취약점에 대한 추가적인 정보를 확인할 수 있는 관련 사이트는 다음과 같다.

CVE-2008-5745

CWE-189

http://www.milw0rm.org

http://securityreason.com/securityalert/4823

http://blogs.technet.com/msrc/archive/2008/12/29/questions-about-vulnerability-claim-in-windows-media-player.aspx

http://www.securityfocus.com/bid/33018



C
opyright(c) 1998-2009 A3 Security ,LTD


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

▷ 작성자 : 붉은반점(r3dp0int@a3sc.co.kr)
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)


[A3AID08-05]
Excel Viewer OCX Insecure Overwrite
공격 보안 권고안

 


취약점 세부 분석 :

 1. 취약점 내용
본 취약점은 Excel Viewer ActiveX 에서 제공하는 HttpDownloadFile() 메소드에서 파일의 중복 시 사용자의 확인을 받지 않고 중요파일을 덮어쓰기하는 과정에서 발생하였습니다.

아래 그림은 OleViewer 를 이용하여 HttpDownloadFile 메소드를 확인하는 화면입니다.


[그림 1] HttpDownloadFile 메소드 확인

[그림 1]을 보면 본 메소드에는 두 개의 파라미터가 필요함을 알 수 있습니다. 이름에서 알 수 있듯이 첫번째 파라미터에는 웹 서버에 존재하는 파일의 URL 입력 부분이고, 두번째는 파일 다운로드하여 저장할 로컬 드라이브의 위치를 입력하는 부분입니다.

아래는 HttpDownloadFile 메소드를 이용하여 임의의 웹서버에 존재하는 notepad.exe(메모장)를 windows 시스템폴더에 calc.exe(계산기)라는 이름으로 저장하는 웹페이지의 소스입니다. 공격 성공 시, 사용자가 Overwrite 된 계산기 프로그램을 인지하지 못하고 계산기로 둔갑한 메모장 프로그램을 실행시키게 됩니다.


[그림 2] 파일 다운로드 웹페이지 소스

[그림 2]는 exploit 소스파일입니다. 클래스 ID를 Server에는 웹서버에 notepad.exe 파일을 저장해놓은 후 그 위치를 나타내는 URL을 Server 값으로 정해준 후에, 공격 대상인 calc.exe 파일의 위치를 Local 값으로 정해줍니다. 그 후에는 HttpDownloadFile메소드에 파라미터 값을 입력합니다. 18번 줄은 테스트의 편의성을 위해 버튼을 장치하여 클릭 후 결과 확인을 할 수 있도록 하였습니다. 본 코드의 목적은 웹페이지를 방문하여 exploit이라고 씌여져 있는 버튼을 클릭하면 서버의 notepad.exe가 윈도우 폴더에 calc.exe라는 파일로 저장이 되도록 하는 것입니다. 
 
아래의 그림은 이를 확인하는 화면입니다.


[그림 3] exploit이 존재하는 웹페이지 화면

버튼을 클릭하게 되면 사실 브라우저상의 반응은 전혀 없습니다. 하지만, 아래의 그림처럼 windows 시스템폴더에 calc.exe 파일이 메모장 아이콘으로 바뀐 것을 확인할 수 있습니다.


[그림 4] calc.exe파일의 아이콘이 메모장 아이콘으로 변경된 화면

사용자는 이 사실을 인지하지 못하고 평상시와 같은 방법으로(보조프로그램의 계산기 클릭, 명령창에서 calc 입력) 계산기를 실행시키게 되면 계산기가 아닌 메모장이 화면에 출력되는 것을 확인할 수 있습니다.


[그림 5] calc.exe(계산기)를 실행한 후에 메모장이 출력된 화면

위와 같이 파일이 Overwrite되는 것을 확인하였습니다.

2. Overwrite 예외사항
해당 취약점은 몇가지 예외사항에 의해 Overwrite 되지 않았습니다. 파일에 쓰기권한이 없을 때와 현재 exe파일이 실행중인 경우입니다. 따라서, 일반적으로 사용하지는 않지만 빈도수가 낮지 않은 그림판이나 계산기 같은 파일에 대해 공격이 이루어진다면 충분히 공격 가능성이 있습니다.


3. 위험 분석
해당 취약점은 공격자가 사용자의 컴퓨터에서 자주 사용하면서도 보통 때는 실행시켜놓지 않는 파일인 calc.exe(계산기) 등의 파일을 악성파일(웜이나 바이러스), 백도어 등의 파일로 Overwrite할 수 있습니다. 요즘 많이 사용되고 있는 XSS 공격이나 URL Redirection에 악용될 수 있는 소지가 있습니다.

 
4. 대응 방안
현재 테스트 대상은 최신 ActiveX 패치이며 악성프로그램이 복사되도록 막기 위해 백신을 설치하고 항상 최신패치를 유지할 것을 권고합니다.
 

5.  관련 사이트
http://www.milw0rm.com/exploits/7739 


6. 특이 사항
취약점 분석이 Excel Viewer OCX를 대상으로 이루어졌지만 Word Viewer OCX도 같은 메소드가 존재하기 때문에 같은 취약점을 가지고 있습니다. Word Viewer OCX 사용자 분들께서도 이와 같은 취약점에 주의해주시기 바랍니다.

Copyright(c) 1998-2009 A3 Security ,LTD


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

 


Clickjacking 에 관하여 [1/2]

웹 어플리케이션 2009. 1. 22. 10:51 Posted by TEAMCR@K

클릭잭킹(Clickjacking)이란 마우스 클릭(Click)과 하이잭킹(Hijacking)의 합성어로,  사용자 입장에선 자신이 보고있는 웹 페이지의 콘텐츠를 클릭하지만, 실제로는 다른 웹 페이지의 콘텐츠를 클릭하는 것입니다.
즉, 사용자는 눈치채지 못하는 사이에 자신이 원하지 않는(위험가능성이 있는) 콘텐츠나 링크를 클릭 할 수 있는 취약점입니다. XSS(Cross Site Scripting)와 CSRF(Cross Site Request Forgery)의 응용버전 인것 같은데, 최근 주목받고 있는 보안 동향중에 하나라고 합니다.

milw0rm에서도 2009년 1월 21일짜로 올라왔군요. 예제는 파이어폭스(Firefox)에서만 테스트가 됩니다.(Internet Explorer 에서는 링크된 주소로 정상적으로 이동됩니다)

http://milw0rm.com/exploits/7842




이전 5~6년전에 URL정보에 0x01 문자를 넣어 주소표시줄에 출력되는 URL정보와 실제 이동하는 URL이 달라서 사용자를 속일 수 있는 취약점이 있었는데 비슷한 개념이라고 생각하시면 될것 같네요. (공론화 이후 해당 결함은 패치되었습니다.)
http://www.derkeiler.com/Mailing-Lists/Full-Disclosure/2003-12/0353.html

참고로 CSRF 취약점을 익스플로잇 할때 iframe 태그에 width, height 를 0 값으로 채울때 IE는 아무런 특이점도 발견하지 못했는데, firefox, opera 같은 경우는 5x5 pixel 정도 되는 어떤 모양이 되었습니다.
이럴때 div 태그를 iframe 양 옆에 감싸주고 div 태그의 width, height 값을 0으로 주면 완벽하게 사용자를 속일 수 있었습니다.

 <div style="position:absolute; width:0px; height:0px; overflow:hidden"><iframe src="URL" width=0 height=0></iframe></div>


[참고사이트]

예제 사이트
http://blog.daum.net/memonpaper/6941607

ClickJacking에 대한 간단한 Demo
http://www.planb-security.net/notclickjacking/iframetrick.html

직접할 수 있는 데모 사이트
http://guya.net/security/clickjacking/game.html

ClickJacking 시연 동영상
http://kr.youtube.com/watch?v=gxyLbpldmuU

ZDNet Korea 뉴스
http://www.zdnet.co.kr/ArticleView.asp?artice_id=00000039173575

방지책
http://phpsec.org/projects/guide/2.html


Copyright(c) 1998-2008 A3 Security ,LTD


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

홈페이지 보안 강화도구(CASTLE) 가 보급되었네요.

테스트는 아직 하지 않았지만 사용자 가이드를 읽어보니 웹방화벽 기능이 포함되어 있고 웹관리가 잘되어 있는거 같습니다.

해당 사이트 : http://www.krcert.or.kr

CASTLE 다운로드(ASP, PHP, JSP)
CASTLE 사용자 설명서 다운로드
CASTLE 설치 가이드 다운로드
CASTLE FAQ 다운로드
○ 문의 및 기술 지원(Tel : 02-405-5617, EMAIL : castle@krcert.or.kr)

CASTLE 기본 설정 화면입니다. 관리 페이지는 아주 깔끔하네요.



SQL Injection과 XSS(Cross Site Scripting) 에 대응한 정책 설정 페이지입니다. 다른 웹방화벽과 비슷한 패턴(Signature)를 가지고 있네요..


파일로 패턴들이 저장되어 있는 화면입니다. 쉽게 적용할수 있게 되어 있네요..

각 공격에 대한 우회방식에는 어느정도까지 대응할지는 더 점검을 해보고 업데이트가 필요하겠죠?^^)..

개인적으로나 연구적으로 사용하기에는 적합한 프로그램이라고 사용되네요..