Netsec-kr 2013 발표자료 - 악성코드 유사도 분석 기술 동향 (김휘강)

2,156 views

Published on

Netsec-KR 2013 발표자료

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,156
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Netsec-kr 2013 발표자료 - 악성코드 유사도 분석 기술 동향 (김휘강)

  1. 1. 악성코드 유사도 분석기술 동향 2013. 4. 22
  2. 2. ©2013, 해킹대응기술연구실
  3. 3.   기존 Antivirus, IDPS 등 많은 보안제품에서 활용 중 필요성 - 악성코드 발생량의 급증 ◦ 신종 및 변종 악성코드 발생량의 기하급수적인 증가  매일 55,000건의 신종 악성 프로그램이 발생 (AV-TEST)  최근 10년 간 악성코드의 폭발적 증가 지난 10년간 신종 악성코드 발생 건수 추이(2003년~2012년1월) (출처: AV-TEST) 3 27 21 ©2013, 해킹대응기술연구실
  4. 4.  악성코드 유사도 분석의 목적 ◦ First-Aid & TRIAGE 로써의 악성코드 유사도 분석  오탐을 최소화 하려면 사람의 수동분석에 의존해야 함  자동화, 대량분석을 위한 조치  1차 classification 을 해주는 것만으로도 신속한 의사결정 가능 4 27 21 ©2013, 해킹대응기술연구실
  5. 5. ©2013, 해킹대응기술연구실
  6. 6.  최근 6년간 (2007~2012) keyword 로 살펴본 동향 6 27 21 ©2013, 해킹대응기술연구실
  7. 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 27 21 ©2013, 해킹대응기술연구실
  8. 8.  Data Mining ◦ 악성코드를 분석하여 자료를 가공하고, Classification, Clustering 을 이 용하여 악성코드를 분류 ◦ API call sequence, Control Flow 등을 주요 분석 Feature로 추출하여 사용  Statistics ◦ 악성코드와 정상 코드의 차이를 분석하여 현저한 차이가 있는 특징에 대한 통계를 내고, 통계적 차이에 의해 분류하는 방법  Outlier detection ◦ 코드섹션의 garbage 코드, Opcode 에 대한 통계를 내어 사용 8 27 21 ©2013, 해킹대응기술연구실
  9. 9.  Distance Measure ◦ 악성코드를 분석하여 자료를 가공하고, Cosine Similarity, Jaccard Distance등 Distance Measure를 사용하여 악성코드의 유사성을 계산 하는 방법 ◦ 악성코드의 Opcode 개수, Call Graph 등의 정보를 Vector화 하거나 Measure에 맞게 가공하여 사용 9 27 21 ©2013, 해킹대응기술연구실
  10. 10.  분류율: 5 ◦ 데이터를 어떻게 가공하여 사용하는지에 따라 분류율을 많이 높일 수 있다.  처리 속도: 2 ◦ 비교적 연산량이 많기 때문에 수행 속도가 느리다.  필요 자원: 2 ◦ 연산해야 할 데이터가 많기 때문에 필요한 리소스도 많은 편이다.  적용성: 3 ◦ 실시간으로 대응해야 하는 경우 사용하기 쉽지 않다. ◦ 실시간으로 대응해야 하는 상황이 아니라면 효과적으로 사용 가능하다. 10 27 21 ©2013, 해킹대응기술연구실
  11. 11.  분류율: 3 ◦ 단순 통계에 기반하고 있기 때문에 다양한 악성코드들에 대한 완벽한 분류가 쉽지 않다.  처리 속도: 5 ◦ 단순히 통계를 내고 정렬만 하면 되기 때문에 속도가 빠르다.  필요 자원: 5 ◦ 연산하거나 보관할 데이터가 많지 않기 때문에 적은 리소스만 사용해도 된다.  적용성: 4 ◦ 실시간으로 대응해야 하는 경우 다른 방법론과 함께 사용하기 유용하다. ◦ 실시간으로 대응해야 하는 상황이 아니더라도 pre-condition 을 주는 용도 등으로 유용 하게 사용 가능하다. 11 27 21 ©2013, 해킹대응기술연구실
  12. 12.  분류율: 4 ◦ 이미 검증된 Measure를 사용하기 때문에 적절한 Measure를 사용하기만 한다면 비교적 높은 분류율을 가진다.  처리 속도: 3 ◦ Measure에 따라 연산량이 많거나 적을 수 있기 때문에 평균적인 처리 속도를 갖는다.  필요 자원: 4 ◦ 연산이 다소 복잡해질 수 있으나,보관할 데이터가 많지 않기 때문에 비교적 적은 리소스를 사용한다.  적용성: 3 ◦ 시스템 성능에 따라 실시간으로 대응에도 사용 가능하다. ◦ 실시간으로 대응해야 하는 상황이 아니라면 Data Mining이나 Simple Statistic 이 더 유 용하다. 12 27 21 ©2013, 해킹대응기술연구실
  13. 13. ©2013, 해킹대응기술연구실
  14. 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 27 21 ©2013, 해킹대응기술연구실
  15. 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 27 21 ©2013, 해킹대응기술연구실
  16. 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 27 21 ©2013, 해킹대응기술연구실
  17. 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 27 21 ©2013, 해킹대응기술연구실
  18. 18.  Yara ◦ Yara는 특정 파일이나 프로세스 안에 존재하는 패턴을 찾아 악성코드 를 분류하고 식별하기 위한 툴 ◦ Textual 또는 binary pattern을 기반으로 하여 악성코드 분류 ◦ 다운로드 경로  http://code.google.com/p/yara-project/downloads/list 18 27 21 ©2013, 해킹대응기술연구실
  19. 19.  시스템 콜 시퀀스를 통한 악성코드의 행위 관측 ◦ 악성코드의 주요 행위  악성코드가 호출하는 시스템 콜  악성코드가 주로 사용하는 주요 시스템 콜에 대한 관측  주요 시스템 콜을 문자화 후 시스템 콜 시퀀스를 문자열(String)으로 표 현  악성코드 별 문자열 유사도 비교  DNA sequence 정렬방법 적용 ◦ Global Alignment  두 개의 긴 문자열 전체에 대한 최적화된 정렬 탐색  Needleman-Wunsch algorithm ◦ Local Alignment  두 개의 문자열간 길이차이가 있어, 부분 문자열 위주로 유사성을 정렬 할 경우  Smith-Waterman algorithm 19 27 21 ©2013, 해킹대응기술연구실
  20. 20.  주요 시스템 콜을 문자화 ◦ 시스템 콜에 영문자를 1:1 대응 NtOpenFile A NtOpenProcessToken B NtCreateSemaphore C NtOpenProcessTokenEx D ··· NtOpenFile NtOpenProcessToken, (A) (B) NtCreateSemaphore, NtOpenProcessTokenEx, (C) (D) ··· 20 ABCD,… 27 21 ©2013, 해킹대응기술연구실
  21. 21.  행위 기반 주요 시스템 콜 추출 ◦ Trojan, Adware, Backdoor 등에서 자주 사용되는 시스템 콜(Native API) 추출 ◦ Windows 의 주요 297개의 Native API 중 18개 Native API 추출  1500개의 악성코드들 중 공통적으로 1회 이상 호출되었으나, 정상 프로 그램에서 빈번하게 호출되지 않는 것들을 기준으로 선택 1500개 악성코드 공통적으로 1회 이상 호출 18개 시스템 콜 78개 정상프로그램 빈번하지 않은 호출 비교 21 27 21 ©2013, 해킹대응기술연구실
  22. 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 22 27 21 개수 ©2013, 해킹대응기술연구실
  23. 23.  동일한 시스템 콜 시퀀스 정렬 ◦ Multiple Sequence Alignment 을 통해 여러 악성코드에서 동일하게 발생하는 시스템 콜 시퀀스 추출  예: Worm family 의 동일 시스템 시퀀스 23 27 21 ©2013, 해킹대응기술연구실
  24. 24. ©2013, 해킹대응기술연구실
  25. 25.  악성코드 유사도 분석의 목적 변화 ◦ 분석 frame 의 변화 Who 누가 한 공격인가 • Where •어디에서 유입된 공격인가 • IP address based analysis • How Why 공격의 목적, 원인은 무엇인가 • 어떤 기법이 사용되었는가 • signature based analysis • anomaly based analysis 25 27 21 ©2013, 해킹대응기술연구실
  26. 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-xcyberwar-963799) 26 27 21 ©2013, 해킹대응기술연구실
  27. 27.  악성코드 유사도 분석의 목표 변화 ◦ 1차 분류  공격자(작성자)를 추정하여 공격 목표 및 의도 파악 ◦ APT(Advanced Persistent Attack) 공격에 대한 분석력 강화  APT 공격 대상(Targeted) : 정부 기관이나 기간시설, 방위 산업체, 경쟁력 있는 제품 및 기술을 보유한 주요 기업들과 이들의 협력업체  일회적인 방어를 통해 해결되지 않고 공격자의 숨겨진 의도를 파악하여 근본 적인 대응책을 마련해야 함  artifact-centric analysis 에서 human-centric analysis 로의 연계 27 27 21 ©2013, 해킹대응기술연구실

×