`17.11~12 정보보호 R&D 데이터챌린지 (Track4) 악성코드선제대응 지능형악성코드선제대응방법연구 ( 자연어처리, 계층형격리, 가상머신에뮬레이션적용 ) - 공개용 - 2017.12.08 민상식, Jason Min 1
A. 아이디어구상 ( 개요 ) ( 기준 ) 300 개지능형악성코드분석 ( 피해보정 ) 현지능형악성코드통계조사를통한대표성보정 제공된악성코드를통한행위기본분석 ( 가능하면전수조사필요 ) 1 단계 : 정적 PE 특징추출 2 단계 A : 정적 자동패킹해제후디컴파일 ( 역어셈블 ) & 코드분석 or IDA, HexRay 최신버전확인및왁보 2 단계 B : 동적 - 가상환경에서동적데이터추출 ( 샌드박스분석툴등 ) => 통계분석 ( 방어필요포인트파악 ) 기타 - 엔트로피분석등 - 가상환경확인여부 - 인터넷연결여부 - 인터넷연결시로케이션등이용자원확인여부 ( 성능보정 ) 악성행위, 피해영향도, 대응실효성등종합분석 제공된악성코드를통한행위기본분석, Paper, 전문가분석자료 (BlackHat 등 ) 등악성코드 Parent Process( 정상 ) ID/Name 의통계적분석 (Fileless, Exploit) 을통한악성행위여부판단 ( 피해 : 악성코드동작환경정의 ) 보호대상 : 무결성 : 일반파일, OS( 레지스트리등 ), 메모리, * 서비스형태등록기밀성 : 네트워크 ( 유출 ) 등 알고리즘설계 정상파일 Grey ( 지능형악성파일 ) 악성파일 알고리즘구현 ( 모든코드는구현하여검증, Part3 악성코드와비교등 ) 정상 / 악성분류가어려운지능형악성파일 ( 추정 ) 은기본적으로예비격리시킨상태에서수행 - 수행시가상환경인것처럼시뮬레이션이가능한예비격리환경을제공하는등 * 지능형악성코드의 Anti- 탐지기능을역이용
B. 아이디어구상 ( 상세정의 ) I. 지능형악성코드검토 A. 기본분석 ( 제시된 300개악성코드 ) a. 정적분석 PE 추출후검토 1 PEStudioX Command Mode b. 정적분석 역분석 (BASIC) c. 정적분석 역분석 ( 난독화, 패킹해제 ) d. 동적분석 가상머신 e. 동적분석 리얼머신 ( 가상머신과비교를위해리얼머신모니터링방법론개발필요 ) B. 기본분석 ( 최근지능형악성코드, 기능, 가상머신동적분석회피기술, 피해등 ) a. 정보삭제 ( 랜섬웨어등 ) b. 시스템 ( 운영체제및자료삭제 ) 파괴 c. 정보유출 ( 비트코인, 중요정보등 ) 악성코드 d. 자원유출 ( 비트코인마이닝 ) C. 상세분석 a. 확보된정보의분석 ( 통계적기법및머신러닝등 ) NLP 분석기본정리 II. 지능형악성코드선제대응전략수립 A. 목적 : 지능형악성코드선제대응 B. 선제대응검토결과 a. ( 기존 ) 자동분석을위한패킹연구, 가상머신동적분석등의기존방법론은일반악성코드방어에는적합할수있으나 b. ( 한계 ) 최신방어수단을확인후회피기능이적용된지능형악성코드의방어에는현실적인어려움이있음 c. ( 결론 ) 악성행위직전까지판단불가한지능형악성코드선제대응을위해 질병관리센터격리체계 를수용한방법론적용 C. 구현방향 a. 유포지 ( 인터넷 / 이메일서버영역 ) 본챌린지의방어영역은아닌것으로판단하여제외 b. 파일다운로드 / 감염 / 수신 & 실행 ( 이용자 PC) 1 ( 서버 ) 정보통합서버구축 2 (PC) PC( 클라이언트 ) 측방어방안 기존유전체분석방법 (DNA) 에서실제코드이해를위한자연어처리 (NLP) 적용제안 공중보건관리체계를사이버보안체계에접목 - 질병관리센터 (CDC) 격리체계적용 격리레벨분석 리얾머신모니터링기술설계 ( 커널후킹구현 ) III. 악성코드분석지연을위한지능형 고도화기술 (Offensive Research) 제안 A. 정적분석 / 동적분석이불가하도록엔트로피임의증가기술제안
1. 지능형악성코드분석 (300->295->200)
PE File Analysis MAL
PE File Analysis MAL Unpacking Disassembly
지능형악성코드 샌드박스회피 https://www.fireeye.kr/content/dam/fireeye-www/regional/ko_kr/current-threats/pdfs/fireeye-hot-knives-through-butter.pdf AntiVM - Dynamic Analysis MAL VM 자동분석 Env SetWinodwsHookExA
지능형악성코드 샌드박스회피 https://www.fireeye.kr/content/dam/fireeye-www/regional/ko_kr/current-threats/pdfs/fireeye-hot-knives-through-butter.pdf MAL
지능형악성코드 샌드박스회피 https://www.fireeye.kr/content/dam/fireeye-www/regional/ko_kr/current-threats/pdfs/fireeye-hot-knives-through-butter.pdf MAL Virus Bulletin. Techniques for Evading Automated Analysis( 자동화분석을회피하는기법 ). 2013 년 2 월.
지능형악성코드 샌드박스회피 https://www.fireeye.kr/content/dam/fireeye-www/regional/ko_kr/current-threats/pdfs/fireeye-hot-knives-through-butter.pdf MAL
지능형악성코드 샌드박스회피 AntiVM - Dynamic Analysis MAL https://www.sans.org/reading-room/whitepapers/forensics/detecting-malware-sandbox-evasion-techniques-36667 Qemu, CWSandbox, Anubis, VMWare Fusion, VMWare Workstation and Virtual Box, Zen vmusrvc.exe, vboxtray.exe, vmtoolsd.exe, df5serv.exe, and vboxservice.exe Once the malware detects a single core, it stops executing. Unpacking malware before analysis malware communicates with remote servers on a network such as a download and C&C servers Malware Sandbox analysis has three important properties: observability, containment, and efficiency
지능형악성코드 샌드박스회피 MAL https://www.exploit-db.com/docs/34591.pdf https://gist.github.com/c0d3inj3ct/c 68a203c2c1224df55b3.
지능형악성코드 샌드박스회피 http://www.crestandiisp.com/wp-content/uploads/2017/04/mattwixey.pdf MAL
지능형악성코드 - Packing https://www.blackhat.com/docs/us-14/materials/us-14-branco-prevalent-characteristics-in-modern-malware.pdf MAL ( 검토결과 ) 언패킹처리 : 최소 40% 이상악성코드분석과관련됨
( 검토결과 ) VM 자동분석기능으로동적행위분석어려움 지능형악성코드 Anti_VM MAL https://www.blackhat.com/docs/us-14/materials/us-14-branco-prevalent-characteristics-in-modern-malware.pdf
2. 악성코드분석지연을위한 지능형고도화기술 ( 제안 )
악성코드분석지연을위한지능형 고도화기술 (Offensive Research) 제안 1. 정적분석방어 : String, Code 등실제실행되지만결과에영향을주지않는 Dummy 코드추가, 다중패킹, 자체 VM 내장 2. 동적분석방어 : Layered integrity Check, Randomized Activation algorithm 적용을통한역분석방지, 자체 VM 내장 3. 리버싱, VM 방어 : 블록체인마이닝과같은방식, 암호키를찾는알고리즘적용 악성코드내암호키없음 정적분석불가 C&C 서버내암호키없음 일정시간후실행가능성 100% 보장 ( 가상머신우회가능 ) 4. C&C 를일반유명게시판 or SNS 로지정하고, 한글로인코딩된암호키와 Exploit Code 를주기적으로확인하여악성코드가원하는정보를수신하는경우작동
" 시간잠금퍼즐및시간제한적암호화 (96) (2008 Satoshi Nakamoto) https://people.csail.mit.edu/rivest/pubs/rsw96.pdf
3. 지능형악성코드분석 using NLP (NLP, National Language Processing) - IDEA1 : 프로그램언어와자연어간분류및의미분석유사성착안 - TF-IDF, Word2Vec(Code2Vec), K-Fold, K-Means (Feature Extraction, Relation Analysis, Clustering K-Fold Optimization)
PE Extract (to XML, PEStudioX)
PE Extract (to XML, PEStudioX)
PE Extract (to XML, PEStudioX) 데이터셋 (KISA-CISC2017-Intelligent-Mal) 295 개기초분석결과 ( 파일용량 5M 이상제외 ) 대분류소분류검출결과비고 Themida 21 패킹 ASPack 5 UPX 47 MPress 10 합계 83(28%) 대표적인패커만확인함 ( 대략전체평균은 40% 이상임, `14 BlackHat 등 ) 디버거 Debugger 42 ANTI VM vbox 4 VBoxSv 레지스트리 기타 RegOpenKey 90 RegCloseKey 94 파일생성시간 8 (00:00:0000) file-description 51 Empty * 실험환경, CPU i7, GPU980*2, Windows10, Ubuntu16
AdaBoosting, Decision Tree, NN Hybrid
지능형악성코드 ( 고찰 ) ( 지능형악성코드 ) 코드 ( 암호화, 난독화등 ), 행위수준에서이미엔트로피가매우높은상태임 * 코드, 행위의엔트로피값을일반 / 지능형악성코드의구분기준으로고려할수있음 ( 분석의어려음 ) 지능형악성코드는일반데이터분석이용이한수준으로특징 *(feature) 을뽑는데어려움이있음 * 정적분석 (PE 추출, 언패킹, 디스어셈블등 ), 동적분석 ( 디버깅등 ), 동적행위분석 (VM 분석등 ) ( 방법론 ) 지능형악성코드판단을강화하기위해서는, 더높은차원의상관관계분석이가능한자동화분석기법의적용이필수적이라판단됨 번역, 요약, 분류, 작성 ( 기사작성등 ) 자연어처리기술용도로개발된기술을프로그래밍언어분석처리에적용하고자함 * 본연구에서는 PE 추출데이터를기반으로적용하였으며향후언패킹, 디스어셈블, 동적분석, 동적행위분석등의추가정보를이용, 정상 / 일반악성코드 / 지능형악성코드분류연구를제안 적용가능기술 : TF-IDF, Word2Vec(Code2Vec), K-Fold, K-Means, Vector Distance 연산
PE Extract for Features [ 참고 ] Anti-Debugging Techniques to compromise debuggers and/or the debugging process debugger Anti-Disassembly Techniques to compromise disassemblers and/or the disassembling process - packing Obfuscation Techniques to make the signatures creation more difficult and the disassembled code harder to be analyzed by a professional Anti-VM Techniques to detect and/or compromise virtual machines VM, vmware, vbox, virtual Malicious Technique A characteristic we look for in the scope of this research. Not necessarily all software using such technique is malicious wireshark, Hook Imports suspicious APIs RegCloseKey RegOpenKeyW RegOpenKeyExW CreateToolhelp32Snapshot Process32NextW LoadLibraryW GetModuleFileNameW CreateFileW IsDebuggerPresent Process32FirstW connect (Ordinal #4) socket (Ordinal #23) send (Ordinal #19)
Code2Vector - 제안 제안방법론 295 개의악성코드에서정적, 동적정보를획득한후각각중요정보추출 200 개 TF-IDF 백터를기반으로악성파일유사도를 Word2Vec 방법으로분석하여, 악성코드를분류한다. ( 일반텍스트문서를통한예제검증 3 차후, 실제악성코드에대한정보를대상으로실구현및검증, 본자료에서는정적 PE 정보에대해서분류수행 )
분류최적값 5~10 (we used 8)
분류방법비고 pe_extract_pestudio.py vir 파일 (300 개 ) 에서 PE 추출 (295 개, XML 포멧 ) make_analysis_daya_py3.py PE 추출 XML(295 개 ) 에서 CVS 로저장 (200 개, 저용량우선 ) NLP_script_ko-Word2Vec (K-Fold).py 추출된정보를기반으로 Word2Vec 알고리즘으로악성코드분류수행 K=8 [ 지능형악성코드분류 ] Type A : a8c62fc19cbfaa3f1075f4ca5f7ac7b6 등 41개 Type B : 1573ffadefb5b904e5f793b4904515e3 등 19개 Type C : c2589f6f42f8e08b26adccb51bd08e87 등 17개 Type D : 2c6ade9e8752637add9b85bb0df89b7b 등 41개 Type E : 5dc56fea6ca6052ec7e0d673e90dfbfd 등 21개 Type F : e23fd00721f5a745571e4283ccd05ef8 등 47개 Type G : fbf7dfaa30bb99a33caa464d64d107eb 1개 Type H : 6b81d6aedc4ad7ff9b4c0f7cd9f1f7ae 등 13개 * 본분류기준으로신규 PE 파일에대해벡터거리연산으로분류가능함
(IDEA1) 지능형악성코드머신러닝분석결과 번역, 요약, 분류, 작성 ( 기사작성등 ) 자연어처리기술을프로그래밍언어처리에적용하였고, 지능형악성코드분류를수행함 * 본연구에서는 PE 추출데이터를기반으로적용함
4. 지능형악성코드분석선제대응방안 ( 피해최소화 ) 설계 - IDEA2 : 계층형격리를통한형상관리, 가상머신에뮬레이션설정 -
지능형악성코드선제대응을위해 질병관리센터격리체계 를수용한방법론제안
알고리즘설계 ( 서버영역 ) WhiteList File HASH 관리코드 머신러닝코드 (NLP 코드제안 ) White 리스트 PE File(EXE, DLL 등 ) Hash 관리 White List PE, 분석결과관련관련한행위정보 HWP.exe, iexplorer.exe 의하위 PID Name 을사전정보로관리하여확인가능하도록 (HASH 등 ) 운영 / 관리 Grey PE 와관련한행위정보관리 추출 / 저장코드 저장소 ElasticSearch (ELK 기반비정형데이터관리코드 ) 메모리, 레지스트리, 네트워크접근행위정보저장 가상환경에서분석을통한동적정보추출 가상환경관리 / 분석코드 실환경에서분석을통한동적정보추출 ( 실환경의자동관리를위해필요한기술은본설계에서는검토제외 ) 실환경관리 / 분석코드
알고리즘설계 ( 클라이언트영역 ) TensorFlow Neural Network TrainingResult ( 모바일, PC 용 White 리스트 / 악성코드가아닌의심실행파일로판단된경우 경량화 ) Quarantine Area B ( 에비격리영역 B) 일반파일변경 / 삭제모니터링 PE 정적 / 동적정보추출코드 (Python, PEStudioX) 추출된정보기반정상 / 악성판단코드 운영체제파일 / 레지스트리추가 / 변경 / 삭제모니터링 OS 커널API 프로세스, 메모리함수모니터링 ( 후킹 ) 코드동영상파일, 문서파일등을오픈한결과로의심되는 Child Proecess 나메모리접근이있는경우 기본적인예비격리영역 (Default) 메모리접근모니터링 기타 ( 이용자선택 ) 네트워크접근모니터링 이용자선택기능구현코드 원본파일복제보관기능 (HIDE 기능포함 ) 변경 / 삭제시원본복제저장기능수행 OS에가상머신시그니처추가 ( 악성행위방지목적 ) Quarantine Area A ( 에비격리영역 A) 메모리접근허가이용자판단가능 ( 옵션 ) 성능을감안한예비격리영역 격리후모니터링상황에따라영역변경 통신에대한허가여부이용자판단가능 ( 옵션 ) OS 커널 API 프로세스, 메모리함수모니터링 ( 후킹 ) 코드 일반파일변경 / 삭제모니터링 운영체제파일 / 레지스트리추가 / 변경 / 삭제모니터링 메모리접근모니터링 네트워크접근모니터링 * 기타 : CPU 사용량 ( 가상화폐마이닝관련등 )
4-A. 계층형격리를통한형상관리방법 (Pseudo Code) 예시 : 파일, 레지스트리, 프로세스, 메모리와같은커널함수에후킹을걸어둔후 QA(Quarantice Area) 에서관 리중인프로세스를모니터링하는기능과정보의변경전해당정보 ( 파일, 레지스트리등 ) 는별도의영역에보관한다. If pid == QA 내부 PID : If WriteFile, WriteRegistry 명령인경우 : 해당정보는미리백업후명령수행 4-B. 격리 ( 가상머신 ) 에뮬레이션설정방법 (Pseudo Code) 예시 : 아래와같은 VM 탐지기술이이용되는경우실제 PC 의환경과달리가상머신으로결과값을리턴한다. void vmx_checking_emulation(); void process_name_checking_emulation(); void class_name_checking_emulation(); void cpuid_checking_emulation(); void cpu_cores_checking_emulation(); void registry_checking_emulation(); void devices_checking_emulation(); void drivers_checking_emulation();
(IDEA2) 계층형격리를통한형상관리 & 격리 ( 가상머신 ) 에뮬레이션설정 VM 탐지기술이적용된악성코드의비활성화효과와파일변경 / 삭제기능이있는악성코드에대한선제적형상관리대응을통한피해방지효과기대
5. 결론및향후연구방안
[ 결론 ] 지능형악성코드 선제대응방안 번역, 요약, 분류, 작성 ( 기사작성등 ) 등최신자연어처리기술을 1 프로그래밍언어처리에적용하였고, 2 지능형악성코드분류를수행함 * (TODO A) 중요키워드, 함수등의미를고려한 Code(Word) 추출연구필요 - 언패킹, 디스어셈블, 동적분석, 동적행위분석등의추가정보를이용 - 정상 / 일반악성코드 / 지능형악성코드분류연구제안 * (TODO B) Part2 에서제공된일반악성코드와비교가능성검토 VM 탐지기술이적용된 3 악성코드의비활성화효과와파일변경 / 삭제기능이있는악성코드에대한선제적 4 형상관리대응을통한피해방지 / 대응방법제시 * (TODO C) 가상머신우회, 파일삭제, 암호화악성코드를대상으로실제구현후테스트, 결과를확인하여효과 (%) 확인
만약당신이미래를꿈꾸지않거나지금기술개선을위해노력하지않는다면그건곧낙오되고있는것이나마찬가지입니다. 그윈쇼트웰 (Gwynne Shtwell, SpaceX CEO, COO) 42
감사합니다 (facebook.com/sangshik, mikado22001@yahoo.co.kr) 43