Malware and Vulnerability Analysis Lecture1 Malware Analysis #1
Agenda 악성코드정적분석
악성코드분석 악성코드정적분석
정적분석 임의의코드또는응용프로그램을실행하지않고분석 ASCII 문자열 (ex. URL) API 리스트 Packing VT 기타등등
정적분석 : 파일식별 악성으로의심되는파일의형태식별 file command python magic(pip install filemagic) https://pypi.python.org/pypi/python-magic(file & libmagic) TrID http://mark0.net/soft-trid-e.html
정적분석 : 파일해시 임의의파일에대한해시값계산 md5sum(linux), md5(os X) python hashlib
정적분석 : ASCII 문자열 악성으로의심되는파일이저장하고있는임의의문자열추출 추출할수있는데이터종류 Domain Name, IP, API, 기타파일에하드코딩으로저장하고있는값
정적분석 : 인코딩 (Encoding) xor & base64 임의의데이터를사용하기전또는저장할때, 위와같은방식으로인코딩또는디코딩하여사용 xor 임의의키를사용하여인코딩하고동일한키를다시한번사용하여디코딩 base64 변환테이블을기반으로하는인코딩 & 디코딩방식으로기본변환테이블을사용할경우, python base64 를사용하여인코딩 & 디코딩
정적분석 : 인코딩 (Encoding)
정적분석 : 인코딩 (Encoding) xor & base64 xor A B A xor B 0 0 0 0 1 1 1 0 1 1 1 0 a xor A = 2
정적분석 : 인코딩 (Encoding) xor & base64 xor
정적분석 : 인코딩 (Encoding) xor & base64 base64 M a n 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 19 22 5 46 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 A B C D E F G H I J K L M N O P Q R S T Y V W X Y Z 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 a b c d e f g h i j k l m n o p q r s t u v w x y z 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 + /
정적분석 : 인코딩 (Encoding) xor & base64 base64 S o g a n g 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 A B C D E F G H I J K L M N O P Q R S T Y V W X Y Z 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 a b c d e f g h i j k l m n o p q r s t u v w x y z 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 + /
정적분석 : 인코딩 (Encoding) xor & base64 base64
정적분석 : 디스어셈블 실행파일 (Windows : PE, Linux : ELF) 에대한디스어셈블과정을통해직접실행하지않고대략적인코드내용확인가능
정적분석 : 패커 (Packer) Packer 는실행압축을수행하고임의의실행파일코드및데이터난독화 Packer 의사용여부확인및 Packer 확인 LoadLibrary & GerProcAddress API 주요 String(ex. UPX0, UPX1, aspack 등등 ) Packer 식별도구 PEiD LoadPE python peutils in pefile(pip install pefile)
정적분석 : 패커 (Packer)
정적분석 : 패커 (Packer) 패킹전 / 후비교
정적분석 : 패커 (Packer)
정적분석 : 패커 (Packer) 패커탐지 Signature 패커탐지 Signature 는패킹된코드를언패킹하는코드의 opcode Sequence python peutils 을사용하여 Signature 를생성할수있음 https://code.google.com/p/pefile/wiki/peidsignatures
정적분석 : 패커 (Packer)
정적분석 : 패커 (Packer)
정적분석 : 패커 (Packer) 언패킹
정적분석 : 패커 (Packer) 언패킹 with UPX
정적분석 : 패커 (Packer) 언패킹 with UPX
정적분석 : 패커 (Packer) 언패킹 with UPX
정적분석 : 패커 (Packer) (Manual) 언패킹 with UPX
정적분석 : API 분석 임의의 PE 파일이 Import 하는함수분석을통해악성코드에대한대략적인기능유추가능 임의의악성코드가사용하는 API 들과정상적인응용프로그램이사용하는 API 의비교분석 Whitelist 기반분석 오탐 & 미탐
정적분석 : API 분석
정적분석 : API 분석 악성코드가사용하는 API 또는 Sequence 를기반으로탐지 Malware detection using assembly and API call sequences Malware detection using Windows API sequence and Machine Learning Improving the Detection of Malware Behaviour Using Simplified Data Dependent API Call Graph Windows API Based Malware Detection Framework Analysis 기타등등다수의논문
정적분석 : 유사도분석 Total Malware Statistic av-test.org
정적분석 : 유사도분석 Total Malware Statistic av-test.org
정적분석 : 유사도분석 악성코드간의유사도분석을통해변종판별 유사도판단기준 API 호출정보 ASCII 문자열 컴파일환경 디버깅정보 국가코드 명령어코드 Manifest 정보 기타
정적분석 : 유사도분석 악성코드간의유사도분석을통해변종판별 유사도판단기준
정적분석 : 유사도분석 악성코드간의유사도분석을통해변종판별 유사도판단기준
정적분석 : 유사도분석 CTHP(Context-Targeted Piecewise Hash) 문맥을기반으로데이터조각을만들고이를기반으로해시함수적용하여유사도판별 단순한블록 (Fixed Length) 기반유사도비교방식보다는효과적
정적분석 : 유사도분석 ssdeep
정적분석 : 유사도분석 ssdeep in python
정적분석 : 유사도분석 다양한요소를활용한변종탐지 Control Flow-based Malware Variant Detection Malware Variant Detection and Classification Using Control Flow Graph Malware Variant Detection Using Similarity Search over Sets of Control Flow Graphs 기타등등
VirusTotal API VirusTotal VirusTotal 에등록된백신엔진 (50 개이상 ) 을사용하여악성코드검사
VirusTotal API VirusTotal API VirusTotal 는임의의파일을전송하고검사결과를받을수있는개발자 API 제공
VirusTotal API VirusTotal API (File)Scan : https://www.virustotal.com/vtapi/v2/file/scan ReScan : https://www.virustotal.com/vtapi/v2/file/rescan (File)Report : https://www.virustotal.com/vtapi/v2/file/report (Url)Scan : https://www.virustotal.com/vtapi/v2/url/scan (Url)Report : http://www.virustotal.com/vtapi/v2/url/report IpAddress : http://www.virustotal.com/vtapi/v2/ip-address/report Domain : http://www.virustotal.com/vtapi/v2/domain/report Comment : https://www.virustotal.com/vtapi/v2/comments/put
VirusTotal API
VirusTotal API VirusTotal API URL Scan Malicious URL List http://malwaredomainlist.com http://support.clean-mx.de/clean-mx/viruses.php
VirusTotal API VirusTotal API URL Scan Malicious URL List
VirusTotal API
VirusTotal API
Q&A