바이너리 디핑 PPT - 복사본

Download Report

Transcript 바이너리 디핑 PPT - 복사본

Binary Diffing
Copyrightⓒ. 2013. ohta. All Rights Reserved.
1
발표자 소개
Team WANG
Copyrightⓒ. 2013. ohta. All Rights Reserved.
2
목차
Binary Diffing은?
Binary Diffing의 용도
IDA 덤프 예제 비교
순천향대 해킹 방어대회 문제 풀이
실제 마이너 패치 코드 분석
Q&A
Copyrightⓒ. 2013. ohta. All Rights Reserved.
3
Binary Diffing은?
이진 파일의 차이 찾는 작업을 의미
2개 이상의 서로 다른 Binary를 비교하여 분석하
는 기술을 Binary Diffing이라고 부른다.
MOV eax,1
Push 3
Pop ebi
Call 00401000
Add esp,4c
Nop
Nop
Nop
nop
서로 코드를 비교 하
는 작업
Copyrightⓒ. 2013. ohta. All Rights Reserved.
MOV esi,1
Push 6
Pop ebx
Call 00401000
Add esp,4c
Nop
Nop
Nop
nop
4
Binary Diffing의 용도
휴리스틱 탐지 기법을 이용
하여 바이러스로 탐지가능
Copyrightⓒ. 2013. ohta. All Rights Reserved.
5
시그니쳐를
통한
탐색이
아닌 그
집합의
특성을
이용
어떤 집합에
속하는
사상이
집합의
특성을
(시그니쳐:프로그램만의
패턴) 해결함이라는 뜻
비슷하게 나타낼경우 문제를
Mov eax,1
Call reg
ADD esp,8
Mov esi,1
Call reg1
ADD esp,8
Copyrightⓒ. 2013. ohta. All Rights Reserved.
6
Binary Diffing의 용도
서로 다른 아키텍처에서 사용된 Binary 를 비교 분석 가능
ARM
Intel
Copyrightⓒ. 2013. ohta. All Rights Reserved.
7
Binary Diffing의 용도
취약한 프로그램 패턴의 유사성 검사
Int main(int argc,char *argv[])
{
Char buffer[256];
If(argc<2)
{
Printf(“ argv error \n”);
Exit(0);
}
Strcpy(buffer,argv[1]);
Printf(“%s\n”,buffer);
}
Int main(int argc,char *argv[])
{
Char asp[15];
If(argc<2)
{
Printf(“argv error\n”);
Return 0;
}
Strcpy(asp,argv[1]);
Printf(“%s\n”,asp);
}
유사성 발견!
Copyrightⓒ. 2013. ohta. All Rights Reserved.
8
IDA 덤프 예제 비교
Copyrightⓒ. 2013. ohta. All Rights Reserved.
9
순천향대 해킹대회 문제풀이
Type. BINARY (2) [200]
Subject [by. hakbaby]
twins
Content
Troublesome twins
File: b2
>>> print Count(Solver)
22
Hint
#1. 같지만 다른 쌍둥이 : 진실은 언제나 단 하나!!:)
#2. 키 값은 단 한 명의 운영진이 가진다.
#3. ida_pro : 배열 루틴을 보세요
Copyrightⓒ. 2013. ohta. All Rights Reserved.
10
Copyrightⓒ. 2013. ohta. All Rights Reserved.
11
순천향대 해킹대회 문제풀이
Copyrightⓒ. 2013. ohta. All Rights Reserved.
12
실제 마이너 패치 코드 분석
Copyrightⓒ. 2013. ohta. All Rights Reserved.
13
Patch Tuseday
매주 화요일 마다 정기 보안 업데이트를 제공
Copyrightⓒ. 2013. ohta. All Rights Reserved.
14
Copyrightⓒ. 2013. ohta. All Rights Reserved.
15
Patch Tuseday diffing
2013년 2월 14일
Kernel.dll
MS-110-1342
(위험도 중)
다시 해킹
2013년 2월 19일
Kernel.dll
패치 완료
바이너리 디핑
을 이용해 취약
점 업데이트
MS-110-1342
취약점 설명
벡터 표시 언어의 취약점으로 인한 원격 코드 실행 문제점(2797052)
이 보안 업데이트는 Microsoft의 VML(벡터 표시 언어) 구현에 대해 비공개적으로 보
고된 취약점을 해결합니다. 이 취약점으로 인해 사용자가 Internet Explorer를 사용하
여 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행이 허용될 수 있습니다. 시스
템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사
용자에 비해 영향을 적게 받습니다.
Copyrightⓒ. 2013. ohta. All Rights Reserved.
16
다른 바이너리 디핑 툴
Copyrightⓒ. 2013. ohta. All Rights Reserved.
17
Q&A
Copyrightⓒ. 2013. ohta. All Rights Reserved.
18