18. 18
기존 대응 기술의 한계
• 난독화
코드 난독화란 프로그램 코드의 일부 혹은 전체를 변경하는 방법으로,
프로그래밍 언어로 작성된 코드의 가독성을 떨어뜨려 분석을 어렵게 만든다.
소프트웨어를 분석하려는 역공학에 대한 대비책으로 프로그램에서
사용되는 주요 알고리즘, 아이디어를 숨기기 위해 사용한다.
19. 19
기존 대응 기술의 한계
• 난독화
• 패킹(Packing)
Portable executable (PE)형식으로 배포되는 프로그램들을
자신의 프로그램이 역공학을 할 수 없도록 만들거나, 용량을 줄이기 위해 사용하는 방식이다.
다중 패킹/ 자체 제작 패킹툴을 사용 할 경우 ,
정적분석 기술을 우회하거나 분석을 할 수 없게끔 만든다.
20. 20
기존 대응 기술의 한계
• 난독화
• 패킹(Packing)
• 안티 디버깅(Anti-Debuging)
악성 소프트웨어를 분석하는 방식으로 디버깅을 사용하는데,
악성 소프트웨어들은 백신 프로그램이 자신을 분석하는 것을 막기 위해
디버깅이 수행 될 때 이를 탐지하여 다른 행위를 하거나
디버깅 동작을 종료시킨다.
21. 21
기존 대응 기술의 한계
• 난독화
• 패킹(Packing)
• 안티 디버깅(Anti-Debuging)
• 안티 가상화(Anti-Virtualization)
가상 머신 환경에서의 악성 소프트웨어 분석기술을 우회하는 방법으로
가상 머신 환경을 구축함으로 나타나는 특징을 탐색하여
악성코드가 수행할 시스템이 가상 머신 환경인지 판단하여 실행을 하지 않는다.
가상 환경을 탐지하는 방법은 프로세스, 파일 시스템, 레지스트리 요소 탐지,메모리 요소 탐지,
가상 하드웨어 주변 장치를 탐지하는 방법이 있다.
22. 22
기존 대응 기술의 한계
• 난독화
• 패킹(Packing)
• 안티 디버깅(Anti-Debuging)
• 안티 가상화(Anti-Virtualization)
• 스케줄링(Scheduling)
자동화된 악성 소프트웨어 탐지 기술을 회피하기 위하여 웹사이트 방문 시
특정 시간 이후에 악성 소프트웨어가 실행되게 하여 자동화된 악성 소프트웨어 수집 프로그램인
Client Honeypot과 Crawler을 우회한다.
23. 23
기존 대응 기술의 한계
• 악성 코드 대량 삽입
웹사이트에 악성 소프트웨어가 삽입되는 경우는 대부분 SQL Injection 공격으로 인해 발생한다.
데이터 베이스 문자 자료형 컬럼에 악성 소프트웨어 유포지의 주소를 삽입하여
대량의 악성 소프트웨어를 유포하는 기술을 사용한다.
24. 24
기존 대응 기술의 한계
• 악성 코드 대량 삽입
• 악성 코드의 모듈화
최근 악성 소프트웨어 유포자들은 악성 행위 별로 모듈화하여 유포하여,
특정 모듈에 감염 되는 즉시 다른 모듈을 다운로드 하는 방식을 도입.
25. 25
기존 대응 기술의 한계
• 악성 코드 대량 삽입
• 악성 코드의 모듈화
• 악성 코드의 은닉화
악성 코드를 은닉시키는 대표적인 기법은 루트킷이라 한다.
은닉화 방법으로는 Hooking, 시스템 프로그램의 변조, 커널 데이터 조작,
디바이스 드라이버 사용, 레지스터 변조, 콜백 함수 사용 등이 있다.
백신 프로그램 또한 시스템 서비스를 사용하기에 탐지하기가 어렵다.
27. 27
사이버 게놈 기술 개념
인간 게놈 프로젝트는 DNA의 모든 염기서열을 밝혀 내기 위한 연구이다.
이 것을 사이버 세상에 존재하는 악성 코드에 적용한 방법이다.
28. 28
사이버 게놈 기술 개념
Digital DNA 기술
악성코드 및 사이버 공격의 배후와 공격 루트를 밝히는데 목적을 가지며,
악성 코드의 특징과 코드를 상세히 분석하는 방법이다.
29. 29
사이버 게놈 기술 개념
Digital DNA 기술
악성코드의 특징별로 분류하여, 유사한 사건 발생시
악성 코드 제작자, 크래커집단, 유포지, 공격지, 공격목적 등을 빠르게 추정 가능하며,
APT(Advanced Persistent Threat) 공격의 사전 대응에도 활용 될 수 있다.
30. 30
사이버 게놈 기술 개념
APT( Advanced Persistent Threat )
지능형 지속 공격으로 공격 루트, 공격 기법을 지속적으로 변경하며,
목표한 공격 대상을 무력화 시키는 방법이다.
31. 31
사이버 게놈 분석의 주요 기술
악성코드 API 시퀀스 추출
IAT(Import Address Table)
PE 파일 분석을 통해 Import AddressTable(IAT)를
찾고 IAT로부터 포함된 API리스트를 추출하는 방법
바이너리 실행 파일 자체에서 추출하는 방법
32. 32
사이버 게놈 분석의 주요 기술
악성코드 API 시퀀스 추출
프로그램 작동 중 호출되는 인터럽트를 Hooking하여 호
출되는 API를 기록하는 방법으로 주로 Native API에 대한
정보를 얻기 위해 사용된다.
커널 Hooking에는 System Service Descriptor
Table(SSDT)/Interrupt Descriptor Table(IDT)이 존재함.
프로그램 동작 중 호출되는 API를 후킹 하는 방법
IAT(Import Address Table)
33. 33
사이버 게놈 분석의 주요 기술
API 기반의 악성코드 특성인자 추출
White List
악성코드가 아닌 정상적인 프로그램으로부터 자주 포함되는 API의 리스트를 DLL 별로
저장하여 화이트리스트(White List)를 생성.
악성코드 샘플을 실행한 후 추출된 API 리스트에서 화이트리스트의 API를 제거하게 되면
악성코드만이 갖는 고유 특성인자를 추출이 가능.
34. 34
사이버 게놈 분석의 주요 기술
서열 정렬(Sequence Alignment)
A C G T A C G
T C G A A C C
A G T A C A
A C G A G G G
서열 정렬(sequence alignment)은 일반적으로 Bioinformatics 분야에서 두 개 혹은
그 이상의 서열 들의 유사도 값을 측정하거나 유사 구간의 관계성을 찾기 위해 사용되는 기법.
35. 35
사이버 게놈 분석의 주요 기술
서열 정렬(Sequence Alignment)
A C G T A C G
T C G A A C C
A G T A C A
A C G A G G G
본래 서열과 가장 유사한 서열은 무엇인가?
“정량적인 기준” 필요
36. 36
사이버 게놈 분석의 주요 기술
비교할 두 가지의 서열에 있는 모든
글자를 최대한 맞춤.
길이가 대개 비슷하고, 전체적으로
유사성이 높은 서열 간 적합
서열의 일부분을 최대한 맞춤.
길이가 서로 상이하고, 서열의 일부분에서
유사성이 나타나는 서열 간 적합
Local AlignmentGrobal Alignment
Needleman-Wunsch Algorithm Smith-Waterman Algorithm
37. 37
사이버 게놈 분석의 주요 기술
악성코드 유사도 분석
LCS(Longest Common Subsequence)
Pairwise Alignment
최근 BioInfomatics 분야에서 동적 프로그래밍을 이용한 Pairwise Alignment와 Longest
Common Subsequence(LCS) 알고리즘을 이용하여 두 서열간의 유사도 분석을 하는데,
사이버게놈 기술에서도 이와 유사한 접근 방법을 활용 중이다.
* LCS는 두 문자열에서 공통으로 존재 하는 가장 긴 서열을 찾는 알고리즘.
38. 38
사이버 게놈 분석의 주요 동향
Invincea - Cynomix
샌드박스에서 악성 코드를 실행한 후 Process Monitor 툴을 이용하여,
악성코드의 시스템 API 호출 로그를 추출 후 의미 있는 API 서열을 추출하기 위해
마코프 체인 알고리즘을 사용한다.
39. 39
사이버 게놈 분석의 주요 동향
HBGary – Digital DNA
시스템 메모리상에서 실행되는 프로세스의 행위를 분석하여 악성 코드를 탐지하고, 리포팅한다.
정적 분석과 동적 분석을 통하여 프로세스 행위의 취약성을 발견하고, 해당 프로세스의 악성 여부
를 판단한 후 취약성 내용을 Digitla DNA로 변환하는 작업을 하는 제품.