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