Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
악성코드 유사도 분석기술 동향
2013. 4. 22
©2013, 해킹대응기술연구실
21 ©2013, 해킹대응기술연구실
27 3
기존 Antivirus, IDPS 등 많은 보안제품에서 활용 중
필요성 - 악성코드 발생량의 급증 ◦ 신종 및 변종 악성코드 발생량의 기하급수적인 증가
매일 55,000건의 신종 악성 프로그램이 발생 (AV-TEST)
최근 10년 간 악성코드의 폭발적 증가
3
지난 10년간 신종 악성코드 발생 건수 추이(2003년~2012년1월) (출처: AV-TEST)
21 ©2013, 해킹대응기술연구실
27 4
악성코드 유사도 분석의 목적 ◦ First-Aid & TRIAGE 로써의 악성코드 유사도 분석
오탐을 최소화 하려면 사람의 수동분석에 의존해야 함
자동화, 대량분석을 위한 조치
1차 classification 을 해주는 것만으로도 신속한 의사결정 가능
4
©2013, 해킹대응기술연구실
21 ©2013, 해킹대응기술연구실
27 6
최근 6년간 (2007~2012) keyword 로 살펴본 동향
6
21 ©2013, 해킹대응기술연구실
27 7
용어는 다르지만 기반 요소기술은 공통됨 ◦ Digital DNA
◦ Fingerprinting
◦ Malware profiling
기반요소기술 ◦ similarity analysis /similarity measure
Data mining based approach
Code graph based approach
Similarity measure oriented approach
◦ Data 의 source 로는 Call Sequence, Control Flow, Opcode를 이용
7
21 ©2013, 해킹대응기술연구실
27 8
Data Mining ◦ 악성코드를 분석하여 자료를 가공하고, Classification, Clustering 을 이용하여 악성코드를 분류
◦ API call sequence, Control Flow 등을 주요 분석 Feature로 추출하여 사용
Statistics ◦ 악성코드와 정상 코드의 차이를 분석하여 현저한 차이가 있는 특징에 대한 통계를 내고, 통계적 차이에 의해 분류하는 방법
Outlier detection
◦ 코드섹션의 garbage 코드, Opcode 에 대한 통계를 내어 사용
8
21 ©2013, 해킹대응기술연구실
27 9
Distance Measure ◦ 악성코드를 분석하여 자료를 가공하고, Cosine Similarity, Jaccard
Distance등 Distance Measure를 사용하여 악성코드의 유사성을 계산하는 방법
◦ 악성코드의 Opcode 개수, Call Graph 등의 정보를 Vector화 하거나 Measure에 맞게 가공하여 사용
9
21 ©2013, 해킹대응기술연구실
27 10
분류율: 5 ◦ 데이터를 어떻게 가공하여 사용하는지에
따라 분류율을 많이 높일 수 있다.
처리 속도: 2 ◦ 비교적 연산량이 많기 때문에 수행 속도가
느리다.
필요 자원: 2 ◦ 연산해야 할 데이터가 많기 때문에 필요한
리소스도 많은 편이다.
적용성: 3 ◦ 실시간으로 대응해야 하는 경우 사용하기 쉽지 않다.
◦ 실시간으로 대응해야 하는 상황이 아니라면 효과적으로 사용 가능하다.
10
21 ©2013, 해킹대응기술연구실
27 11
분류율: 3 ◦ 단순 통계에 기반하고 있기 때문에 다양한
악성코드들에 대한 완벽한 분류가 쉽지 않다.
처리 속도: 5 ◦ 단순히 통계를 내고 정렬만 하면 되기
때문에 속도가 빠르다.
필요 자원: 5 ◦ 연산하거나 보관할 데이터가 많지 않기
때문에 적은 리소스만 사용해도 된다.
적용성: 4 ◦ 실시간으로 대응해야 하는 경우 다른 방법론과 함께 사용하기 유용하다.
◦ 실시간으로 대응해야 하는 상황이 아니더라도 pre-condition 을 주는 용도 등으로 유용하게 사용 가능하다.
11
21 ©2013, 해킹대응기술연구실
27 12
분류율: 4 ◦ 이미 검증된 Measure를 사용하기 때문에
적절한 Measure를 사용하기만 한다면 비교적 높은 분류율을 가진다.
처리 속도: 3 ◦ Measure에 따라 연산량이 많거나 적을 수
있기 때문에 평균적인 처리 속도를 갖는다.
필요 자원: 4 ◦ 연산이 다소 복잡해질 수 있으나,보관할
데이터가 많지 않기 때문에 비교적 적은 리소스를 사용한다.
적용성: 3 ◦ 시스템 성능에 따라 실시간으로 대응에도 사용 가능하다.
◦ 실시간으로 대응해야 하는 상황이 아니라면 Data Mining이나 Simple Statistic 이 더 유용하다.
12
©2013, 해킹대응기술연구실
21 ©2013, 해킹대응기술연구실
27 14
다양한 악성코드의 feature 값 ◦ Linker version, language, timestamp, OS version, entry point,
compiler version
◦ Packing, packer type
◦ MD5, entropy
◦ Resources : nation
◦ Strings : CAPI, C&C(ip, url, email)
위 feature 들을 조합하여 변종탐지에 활용 가능
14
21 ©2013, 해킹대응기술연구실
27 15
FingerPrint ◦ HBGary에서 제작
◦ Name : 악성코드 파일명
◦ Hash : 악성코드 해쉬 값
◦ PE Timestamp : 파일이 생성된 날짜와 시간
◦ Linker version : 링커 버전
◦ DllCharacteristics : dll 파일의 플래그 변수
◦ PE Sections : 세션 정보
.text | .data | .idata | .rsrc | .reloc 등
◦ PE Subsystem : 프로그램의 구동하는 기반환경을 나타냄
0x03 : Win32 CUI 환경, 0x02 : Win32 GUI 환경
◦ Windows GDI/Common Controls : GUI 환경 구성하기 위한 library 정보
◦ Compiler : 컴파일러 버전
15
21 ©2013, 해킹대응기술연구실
27 16
FingerPrint ◦ LoadLibrary : dll 검색 경로 알고리즘 확인
◦ DataConversion : 메모리 할당 크기
◦ Wow64 : Windows on Windows 64-bit
모든 64qlxm 버전의 마이크로소프트 윈도우에서 32비트 응용프로그램이 돌아가는지 확인
◦ Thread Creation : thread 생성 확인
◦ File Mapping : 생성되는 파일 존재 확인
◦ File IO : 파일 Input/Output 작업 수행
createNewFile(만들기), delete(삭제), BufferedReader(읽기), BufferedWriter(쓰기)
◦ Win32 File Searching : 시스템 파일 검색 여부 확인
◦ Command line parsing : 커맨드 라인 이용 여부 확인
16
21 ©2013, 해킹대응기술연구실
27 17
FingerPrint features(cont’d) ◦ Debugger Exception : debugger exception 존재 확인
◦ Clipboard aware : clipboard 사용 여부
◦ Vararg Formatting : method의 parameter의 개수가 변경 확인
◦ Command shell : 커맨드 shell 확인
◦ SEH : Structed Exception Handling(구조적 예외처리 기법) 확인
◦ ShellExecute : ShellAPI 함수 확인
◦ Windows Licensing : windows 라이센스 정보
17
21 ©2013, 해킹대응기술연구실
27 18
Yara ◦ Yara는 특정 파일이나 프로세스 안에 존재하는 패턴을 찾아 악성코드를 분류하고 식별하기 위한 툴
◦ Textual 또는 binary pattern을 기반으로 하여 악성코드 분류
◦ 다운로드 경로
http://code.google.com/p/yara-project/downloads/list
18
21 ©2013, 해킹대응기술연구실
27 19
시스템 콜 시퀀스를 통한 악성코드의 행위 관측 ◦ 악성코드의 주요 행위 악성코드가 호출하는 시스템 콜
악성코드가 주로 사용하는 주요 시스템 콜에 대한 관측
주요 시스템 콜을 문자화 후 시스템 콜 시퀀스를 문자열(String)으로 표현
악성코드 별 문자열 유사도 비교 DNA sequence 정렬방법 적용
◦ Global Alignment
두 개의 긴 문자열 전체에 대한 최적화된 정렬 탐색
Needleman-Wunsch algorithm
◦ Local Alignment
두 개의 문자열간 길이차이가 있어, 부분 문자열 위주로 유사성을 정렬할 경우
Smith-Waterman algorithm
21 ©2013, 해킹대응기술연구실
27 20
주요 시스템 콜을 문자화 ◦ 시스템 콜에 영문자를 1:1 대응
NtOpenFile A
NtOpenProcessToken B
NtCreateSemaphore C
NtOpenProcessTokenEx D
···
NtOpenFile NtOpenProcessToken,
(A) (B)
NtCreateSemaphore, NtOpenProcessTokenEx,
(C) (D)
···
ABCD,…
21 ©2013, 해킹대응기술연구실
27 21
행위 기반 주요 시스템 콜 추출 ◦ Trojan, Adware, Backdoor 등에서 자주 사용되는 시스템 콜(Native
API) 추출
◦ Windows 의 주요 297개의 Native API 중 18개 Native API 추출
1500개의 악성코드들 중 공통적으로 1회 이상 호출되었으나, 정상 프로그램에서 빈번하게 호출되지 않는 것들을 기준으로 선택
1500개
악성코드
78개
정상프로그램
공통적으로
1회 이상
호출
빈번하지
않은 호출
비교
18개
시스템 콜
21 ©2013, 해킹대응기술연구실
27 22
악성코드 진단명 별 주요 공통 시스템콜 시퀀스 ◦ 각 악성코드 진단명 별 공통적으로 발견되는 시스템 콜 시퀀스 추출
악성코드 진단명 주요 시퀀스 서열 샘플 프로그램
개수
TR/Agent NANAB-FSEDFSAG 66
TR/Crpyt.XPACK.Gen AQNSNANAQABFSEDFSIO 114
Adware ASCASNQNQ 60
TR/Rootkit.Gen FEDFMAKMRQA 10
Worm/ SABFSEDFSAGBFS 21
TR/Dropper.gen LSEDFSBHSASCASMSO 102
21 ©2013, 해킹대응기술연구실
27 23
동일한 시스템 콜 시퀀스 정렬 ◦ Multiple Sequence Alignment 을 통해 여러 악성코드에서 동일하게 발생하는 시스템 콜 시퀀스 추출
예: Worm family 의 동일 시스템 시퀀스
©2013, 해킹대응기술연구실
21 ©2013, 해킹대응기술연구실
27 25
악성코드 유사도 분석의 목적 변화 ◦ 분석 frame 의 변화
25
• Where •어디에서 유입된 공격인가 • IP address based analysis
• How • 어떤 기법이 사용되었는가 • signature based analysis • anomaly based analysis
Why 공격의 목적,
원인은 무엇인가
Who 누가 한 공격인가
21 ©2013, 해킹대응기술연구실
27 26
사이버 게놈 프로젝트 ◦ 미 국방부 산하 국방선진개발연구소(DARPA: Defense Advanced Research
Projects Agency)는 2010년부터 ‘사이버 게놈 프로그램’ 진행
HB Gary
악성코드의 계보 추적 및 해커 DNA fingerprinting
◦ 일부는 Plan X 로 이어짐
Plan X will give Pentagon cybergeeks top-notch tools and research capabilities for the high-tech worms, malware, monitoring equipment, and network infrastructure hijinx that are an integral part of military capability circa 2012.
(http://www.nbcnews.com/technology/futureoftech/inside-darpas-plan-x-cyberwar-963799)
26
21 ©2013, 해킹대응기술연구실
27 27
악성코드 유사도 분석의 목표 변화 ◦ 1차 분류 공격자(작성자)를 추정하여 공격 목표 및 의도 파악
◦ APT(Advanced Persistent Attack) 공격에 대한 분석력 강화 APT 공격 대상(Targeted) : 정부 기관이나 기간시설, 방위 산업체, 경쟁력 있는
제품 및 기술을 보유한 주요 기업들과 이들의 협력업체
일회적인 방어를 통해 해결되지 않고 공격자의 숨겨진 의도를 파악하여 근본적인 대응책을 마련해야 함
artifact-centric analysis 에서 human-centric analysis 로의 연계
27