[2013 codeengn conference 09] 제갈공맹 - ms 원데이 취약점 분석 방법론

40
MS One-day 취약점 분석 방법론 제갈공맹 [email protected] www.CodeEngn.com 2013 CodeEngn Conference 09

Upload: gangseok-lee

Post on 18-Nov-2014

637 views

Category:

Education


0 download

DESCRIPTION

2013 CodeEngn Conference 09 MS 윈도우의 원데이 패치에 대해서 분석 및 접근 방법을 살펴본다. 또한, 최근에 나온 원데이 취약점 패치 분석을 진행하며 필요한 팁에 대해서 알아보고자 한다. http://codeengn.com/conference/09 http://codeengn.com/conference/archive

TRANSCRIPT

Page 1: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

MS One-day 취약점 분석 방법론

제갈공맹

[email protected]

www.CodeEngn.com2013 CodeEngn Conference 09

Page 2: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

목 차

u Zero-day & One-Day ?

u Microsoft Patch & CVE ?

u 분석 하기 전 사전 정보 수집

u MS11-002 분석

u 시연

Page 3: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

What is Zero-Day & One-Day?

u Zero-Day ?

u 컴퓨터 소프트웨어의 취약점을 공격하는 기술적 위협으로, 해당 취약점에대한 패치가 나오지 않은 시점에서 이루어지는 공격

u One-Day ?

u 공격자가 이미 벤더 측에 제보를 하여 패치가 되었으나 Exploit 이 없는 상태를 의미

Page 4: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Microsoft Patch

u Microsoft 는 매달 두 번째 화요일

u 보안 패치 공지 화면

Page 5: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Microsoft Patches name

MS -13 -088

마이크로소프트 해당 연도 패치 나온 갯수

Page 6: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

CVE란?

u Common Vulnerabilities and Exposures

u CVE 는 잘 알려진 보안취약점 및 노출된 정보를 모아둔곳

u http://cve.mitre.org

Page 7: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

CVE names

CVE -2013 -088

Common Vulnerabilities and

Exposures해당 연도 패치 나온 갯수

Page 8: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

u http://technet.microsoft.com/ko-kr/security/bulletin

Page 9: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

Page 10: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

Page 11: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

Page 12: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

Page 13: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약점 기본 정보를 얻는 방법

Page 14: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

패치 되기전 최신 파일 구하기

Page 15: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Get File

Page 16: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

보안 패치에서 dll 파일 추출 하기

u [패치 파일명] /extract:[path]

http://support.microsoft.com/kb/262841

설치 프로그램을 설치하지 않고파일을 추출 하는 명령어

Page 17: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

보안 패치에서 dll 파일 추출 하기

u 오피스 보안 패치 파일 /C /T:[보안패치 절대 경로]

u msix [파일명].msp /ext /out [경로]

u mst 및 cab 파일 추출

u cab 파일 안에 해당 패치 파일 추출

u msix 다운로드 경로u http://www.windowswiki.info/wp-content/uploads/2009/07/msix.zip

Page 18: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Get more

u GDR

u 보안에 큰 영향을 주는 부분이 있을때 제공

u LDR or QFE

u 급하게 보안 패치를 내야 할 때 제공

Page 19: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Get more

u 분석 하기 이전에 알아 두면 좋은것들

u 윈도우 오픈 소스 프로젝트

u http://www.reactos.org/ko

u 인터넷 브라우저 오픈 소스

u http://www-archive.Mozilla.org/projects/firefox/index.html

u 오피스 오픈소스

u http://www.openoffice.org/download/source/

u 사전에 윈도우, 브라우저, 오피스 오픈 소스를 이용하여 어떤 방식 프로그래밍 되어 있는지 확인

Page 20: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

알아볼 취약점

Buffer OverFlow

Page 21: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

취약한 함수들

strcpy

strncpy

strcat

strncat

sprint

vsprintf

gets

strlen

Page 22: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

strsafe.h

StringCbCopy StringCbCopyEx

StringCbCopyN StringCbCopyNEx

StringCbCat StringCbCatEx

StringCbCatN StringCbCatNEx

StringCbPrintf StringCbPrintfEx

StringCbVPrintf StringCbVPrintfEx

StringCbGets StringCbGetsEx

StringCchLength StringCbLength

Page 23: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

알아볼 취약점

Use After Free

Page 24: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

해당 취약점 파일 찾기?

Page 25: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

보안패치 파일 추출 후

Page 26: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

해당 취약점 파일 찾기?

HOW????

Page 27: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

해당 취약점 파일 찾기?

u 취약점이 존재 하나 어떠한 취약점이 있는지 알 수 없음

u 또한 어떤 파일에서 취약점이 발생 하는지도 역시 알 수 없음

u 그럼??? 어떻게 해야 할까?

u 공개된 취약점을 분석한 뒤 어떠한 방식으로 취약점을 패치하는지 확인

u 그럼 필요한 툴은???

Page 28: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Tool

u Diffing Tool

u Darungrim

u TurboDiff

u PatchDiff

u BinDiff

u IDA

Page 29: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Diffing 이란?

• Diffing은 소스 파일과 타겟 파일 간에 변경 된 점을 보여주기 위해서 사용 하는 기법

• 대부분의 binary Diffing의 경우 IDA의 데이터 베이스를 기반으로분석

Page 30: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Diffing을 하는 이유?

u 현재 어떠한 부분에 대해서 오류가 발생 하였는지 알지 못함

u 많은 시간 소모

u 변경 된 부분을 찾아야지만 분석 가능

Page 31: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Diffing의 대상은??

u 패치 파일 과 이전 패치 간의 파일 Diffing

u 새로운 운영체제와 이전 운영체제 간의 파일 Diffing

Page 32: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

MS11-002

Page 33: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

분석 하기전 사전 조사

u MS11-002

Page 34: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
Page 35: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
Page 36: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

사전 조사로 얻은 정보

u 두가지 취약점

u DSN 취약점

u ADO 취약점

u DSN 란?u Datebase Source Nmae 으로DB를 사용하는 어플리케이션에서 DB를 불러 올때

해당하는 DB를 연결시키기 위해 구분 짓는 이름

u SQLConnectW function in an ODBC API (odbc32.dll)

Page 37: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

BinDiff를 이용하여 Diffing

Page 38: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

Diffing 결과로 얻은 정보

u 총 7 가지의 새로운 함수를 확인

u ValidateNullTerminatedStringW 유효성을 검사

u StringCchLengthA 길이를 체크 하는 함수

Page 39: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

시연

Page 40: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론

감사합니다

www.CodeEngn.com2013 CodeEngn Conference 09