[2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
-
Upload
gangseok-lee -
Category
Education
-
view
644 -
download
0
description
Transcript of [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론
![Page 2: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/2.jpg)
목 차
u Zero-day & One-Day ?
u Microsoft Patch & CVE ?
u 분석 하기 전 사전 정보 수집
u MS11-002 분석
u 시연
![Page 3: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/3.jpg)
What is Zero-Day & One-Day?
u Zero-Day ?
u 컴퓨터 소프트웨어의 취약점을 공격하는 기술적 위협으로, 해당 취약점에대한 패치가 나오지 않은 시점에서 이루어지는 공격
u One-Day ?
u 공격자가 이미 벤더 측에 제보를 하여 패치가 되었으나 Exploit 이 없는 상태를 의미
![Page 4: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/4.jpg)
Microsoft Patch
u Microsoft 는 매달 두 번째 화요일
u 보안 패치 공지 화면
![Page 5: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/5.jpg)
Microsoft Patches name
MS -13 -088
마이크로소프트 해당 연도 패치 나온 갯수
![Page 6: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/6.jpg)
CVE란?
u Common Vulnerabilities and Exposures
u CVE 는 잘 알려진 보안취약점 및 노출된 정보를 모아둔곳
u http://cve.mitre.org
![Page 7: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/7.jpg)
CVE names
CVE -2013 -088
Common Vulnerabilities and
Exposures해당 연도 패치 나온 갯수
![Page 8: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/8.jpg)
취약점 기본 정보를 얻는 방법
u http://technet.microsoft.com/ko-kr/security/bulletin
![Page 9: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/9.jpg)
취약점 기본 정보를 얻는 방법
![Page 10: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/10.jpg)
취약점 기본 정보를 얻는 방법
![Page 11: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/11.jpg)
취약점 기본 정보를 얻는 방법
![Page 12: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/12.jpg)
취약점 기본 정보를 얻는 방법
![Page 13: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/13.jpg)
취약점 기본 정보를 얻는 방법
![Page 14: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/14.jpg)
패치 되기전 최신 파일 구하기
![Page 15: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/15.jpg)
Get File
![Page 16: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/16.jpg)
보안 패치에서 dll 파일 추출 하기
u [패치 파일명] /extract:[path]
http://support.microsoft.com/kb/262841
설치 프로그램을 설치하지 않고파일을 추출 하는 명령어
![Page 17: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/17.jpg)
보안 패치에서 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 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/18.jpg)
Get more
u GDR
u 보안에 큰 영향을 주는 부분이 있을때 제공
u LDR or QFE
u 급하게 보안 패치를 내야 할 때 제공
![Page 19: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/19.jpg)
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 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/20.jpg)
알아볼 취약점
Buffer OverFlow
![Page 21: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/21.jpg)
취약한 함수들
strcpy
strncpy
strcat
strncat
sprint
vsprintf
gets
strlen
![Page 22: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/22.jpg)
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 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/23.jpg)
알아볼 취약점
Use After Free
![Page 24: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/24.jpg)
해당 취약점 파일 찾기?
![Page 25: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/25.jpg)
보안패치 파일 추출 후
![Page 26: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/26.jpg)
해당 취약점 파일 찾기?
HOW????
![Page 27: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/27.jpg)
해당 취약점 파일 찾기?
u 취약점이 존재 하나 어떠한 취약점이 있는지 알 수 없음
u 또한 어떤 파일에서 취약점이 발생 하는지도 역시 알 수 없음
u 그럼??? 어떻게 해야 할까?
u 공개된 취약점을 분석한 뒤 어떠한 방식으로 취약점을 패치하는지 확인
u 그럼 필요한 툴은???
![Page 28: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/28.jpg)
Tool
u Diffing Tool
u Darungrim
u TurboDiff
u PatchDiff
u BinDiff
u IDA
![Page 29: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/29.jpg)
Diffing 이란?
• Diffing은 소스 파일과 타겟 파일 간에 변경 된 점을 보여주기 위해서 사용 하는 기법
• 대부분의 binary Diffing의 경우 IDA의 데이터 베이스를 기반으로분석
![Page 30: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/30.jpg)
Diffing을 하는 이유?
u 현재 어떠한 부분에 대해서 오류가 발생 하였는지 알지 못함
u 많은 시간 소모
u 변경 된 부분을 찾아야지만 분석 가능
![Page 31: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/31.jpg)
Diffing의 대상은??
u 패치 파일 과 이전 패치 간의 파일 Diffing
u 새로운 운영체제와 이전 운영체제 간의 파일 Diffing
![Page 32: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/32.jpg)
MS11-002
![Page 33: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/33.jpg)
분석 하기전 사전 조사
u MS11-002
![Page 34: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/34.jpg)
![Page 35: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/35.jpg)
![Page 36: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/36.jpg)
사전 조사로 얻은 정보
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 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/37.jpg)
BinDiff를 이용하여 Diffing
![Page 38: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/38.jpg)
Diffing 결과로 얻은 정보
u 총 7 가지의 새로운 함수를 확인
u ValidateNullTerminatedStringW 유효성을 검사
u StringCchLengthA 길이를 체크 하는 함수
![Page 39: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/39.jpg)
시연
![Page 40: [2013 CodeEngn Conference 09] 제갈공맹 - MS 원데이 취약점 분석 방법론](https://reader033.fdocuments.net/reader033/viewer/2022061119/546b278daf795919088b544f/html5/thumbnails/40.jpg)
감사합니다
www.CodeEngn.com2013 CodeEngn Conference 09