AI 를활용한 악성코드탐지
2017.10 ~ 현재 AI.Spera 창업자 2015.03 ~ 현재고려대학교정보보호대학원, 사이버국방학과부교수 2010.03 ~ 2015.02 고려대학교정보보호대학원, 사이버국방학과조교수 2004.05 ~ 2010.02 엔씨소프트, 정보보안실실장 /Technical Director 1999.08 ~ 2004.05 에이쓰리시큐리티컨설팅 ( 현에이쓰리시큐리티 ) 창업자 2000.03 ~ 2009.02 KAIST 산업및시스템공학과박사 1998.03 ~ 2000.02 KAIST 산업공학과석사 1994.03 ~ 1998.02 KAIST 산업경영학과학사 김휘강교수고려대학교 International Conferences: NDSS 2016, WWW (2014, 2017, 2018), MILCOM 2016, ACM NetGames (2013, 2014, 2015, 2017), IEEE VizSec (2017), OASIS Borderless Cyber and FIRST Tech. Symp. (2017) International Journals: IEEE Trans. On Information Forensics and Security (2017), Computer & Security (2016), Digital Investigation (2015)
AI/Machine Learning 시대의보안 Intro 국내외동향정보보호 R&D 데이터챌린지 lesson learned 지능형악성코드탐지시스템개발사례 Conclusion Remark
AI/MACHINE LEARNING 시대의보안
Deep Learning(AlphaGo, AlphaGo-Zero)
Irreplaceable(a. 대체불가능한 ) vs. Replaceable 어디까지대체될수있을것인가? 고부가가치 Job Irreplaceable! 생산성여부와관계없이대체불가능한 Job, 난이도가높은 Job = Irreplaceable Job 저부가가치, 노동집약적 Job 기계 ( 로봇 ), 자동화, 글로벌화에의해대체됨 보안업무는기계에의해대체불가능한가? Firewall, Log Analyzer, IDS, IPS, Port Scanner, Vulnerability Scanner, Web Scanner, Antivirus 거의모든부분에서전부또는일부대체가능
Latent random variable AI/ML (Machine Learning) + Security What s New CNN(Convolutional Neural Network), DNN(Deep Neural Network) 을이용한학습 Streamline data Gan(Generative Adversarial Nets) 을이용한 Adversarial Data 생성 bird sunset P bird P sunset Real World Images Sample Real dog P dog Discriminator Lose convolution + nonlinearity max pooling vec cat P cat Generator Sample Fake convolution + pooling layers fully connected layers Nx binary classification Generative adversarial networks (conceptual)
What s still now New? AI/ML (Machine Learning) + Security 사람 ( 적용에의두려움 ) Data( 양질의 data 부족 ) Blackbox algorithm + Adversarial Machine Learning attacks Reference Image/Voice recognition 에훌륭한 CNN, DNN 이보안분야에도적용잘된다는보장이있는가? Scalability lot 시대에경량화된알고리즘이중요해지는시점에, local machine 에서 learning 을할수있는환경이되는가? Privacy 좋은결과를얻고는싶지만, 내민감데이터를주고싶지는않음
Automated Security/Data-Driven Security 동향 IMPACT IMPACT(The Information Marketplace for Policy and Analysis of Cyber-risk & Trust) 미국토안보부 (DHS) 지원으로사이버보안연구에필요한데이터 (1 페타이상 ) 공유 데이터검색, 데이터 & 분석도구매칭, 데이터공유, 소셜서비스제공 Data Profit Central indexing Build collective Knowledge Metadata Discovery (FIND) Social Networking (FEEDBACK LOOP) Business Rule Broker Data Match-making (GET) Tool match-making (USE) Connect distributed suppliers&seekers of data &analytics Get data to and from providers Central indexing 美학계 산업계 비영리단체 정부기관과 7 개국가가참여하여데이터셋구축
Data Challenge Kaggle WWW 2015의 Collocation workshop(big 2015) 에서공유한 MS의악성코드 dataset이유명 500G(10,868개 ) 악성코드샘플 원본악성코드바이너리는제공되지않으며 1차가공이끝난 meta data가제공됨
Data Challenge MWS( 일본 ) JPCERT/CC, IPA, AIST, NICT, 일본컴퓨터보안학회주관정보보안데이터분석챌린지 08년 Server Honeypot 데이터공유 10년 Client Honeypot 데이터추가 13년악성코드행위분석결과추가 13년다크넷모니터링데이터추가
Data Challenge 한국 https://www.kisis.or.kr/kisis/subindex/283.do
Data Challenge KISA, 고려대학교운영 (2017, 2018) 향후지속적확장가능 정보보호 R&D 데이터챌린지 (2017.12.8) 악성코드선제대응챌린지 악성코드탐지챌린지 팀명소속예선성적 정성균개인팀고려대학교 94.13 Sir.Prize! 아틀라스가이드 93.92 S&D 호서대 93.39 팀명소속예선성적차량차량이상징후이상징후탐지탐지 CANDIS SUNY KOREA CAPCORPSCERT0188 EPL SENT - - SKY의 K는국민대국민대 93.11 Team IDK 순천향대, BoBCANDIS SUNY - KOREA CAPCORPSCERT0188 EPL 94.737 89.737 75.7575 44.4445 21.739 0 0 BLANK 한양대 91.03 JM2017-3 삼성카드 44.736-44.736 39.394 0.0 팀명팀명1 차 ( 탐지1 차정확도 ( 탐지) 정확도 2차 ) ( 탐지 2차정확도 ( 탐지정확도 ) ) Fifteen-Zero 이스트시큐리티 90.62 100 75 차량이상징후탐지챌린지 팀명소속예선성적 50 SUNY Korea SUNY Korea 25 100 [2 차데이터셋분석 ] A.I. PLUS Lab CANDL.. ESTsoft CANDIS 89.474 89.474 87.09 100.0 0.0 50 SUNY SUNY.. Kor.. 89.474 89.474 90.0 0.0 37.5 모바일악성앱탐지챌린지 현재시각 : 12:42:16 15:57:18 Capc.. Capcor.. 78.788 78.788 72.727 0.0 팀명 EPL소속EPL 0.0 0.0 예선성적 88.889 0.0 25 아주아주대 87.5 ESTSoft ESTSoft 96.34 12.5 SEINT - 0.0 43.478 SEINT 펜타시큐리티 82.35 고려대 & 연세대고려대 & 연세대 94.38 0 CapcorpsCert0188 서울대 80.00 ASAP -숭실대 - 90.46 CANDIS SUNY Korea 0 Capc.. EPL SEINT EPL 고려대 CANDIS 78.57 SUNY Korea Capc.. 시큐베이스 EPL 시큐베이스 - - 78.16 CANDIS 비공개 78.57 대만간기사님고려대 53.82
2018 년인공지능기반악성앱탐지 2018 AI 기반안드로이드악성앱탐지트랙 AI/ML 을이용한 Android App 분류 / 진단은데이터분석기반보안분야 (data-driven security) 의대표적인응용사례 악성앱데이터셋 (Andro-Profiler dataset) 관련논문 (Citation : 30+) Jang, Jae-wook, et al. "Detecting and classifying method based on similarity matching of Android malware behavior with profile." SpringerPlus 5.1 (2016): 273. Jang, Jae-wook, et al. "Andro-profiler: anti-malware system based on behavior profiling of mobile malware. Proceedings of the 23rd International Conference on World Wide Web. ACM, 2014. 인용한주요논문예 : Feizollah, Ali, et al. "A review on feature selection in mobile malware detection." Digital investigation 13 (2015): 22-37. Neal, Tempestt J., and Damon L. Woodard. "Surveying biometric authentication for mobile device security." Journal of Pattern Recognition Research 1 (2016): 74-110. 악성앱데이터셋 (Andro-Profiler dataset) Original dataset: http://ocslab.hksecurity.net/andro-profiler Description ( 예선 ): http://datachallenge.kr/challenge18/malware/introduction/ 예선 / 본선데이터셋및정답지등 : http://ocslab.hksecurity.net/datasets/datachallenge2018/android
2018 년예선 / 본선총평안드로이드악성앱트랙 안드로이드악성앱트랙 2017 년에비해전반적인레벨상승 7 팀이 90% 이상정확도를보임 ( 예선 ) 9 팀이 87% 이상정확도를보임 ( 예선 ) 악성앱의자동분석은이제보편적인수준의기술이되었음 과거에는데이터셋 sample 을구하기어려운점, 예제코드가없던점이주요허들이었음 현재는 python 의다양한 library 및예제코드, 동영상강의, 데이터셋 sample 이존재 전년 Deep learning 을적용한팀수증가 기계적으로알고리즘들을적용을한것인지, 목표를뚜렷이하여 feature engineering 을하였는지불분명한팀들이많음 단순 trial&error 형태의 deep learning node/layer 개수구성및 activation function(relu, Sigmoid, ) 선정보다는그렇게구성한근거까지 제시하지는못한팀들이많음
정보보호 R&D 데이터챌린지 2018 본선대회 2018-11-30 2018-12-01 / 10:30:33 10:52:44 11:37:47 13:17:18 13:30:50 15:06:17 15:40:33 16:16:51 21:03:58 AI 기반안드로이드악성앱탐지 AI AI 기반기반안드로이드악성앱탐지탐지 너의 3 3 대는?? 고려대유홍렬 & 연세대 & 고려대 & 유홍렬 MLCS 연세대 MICS AA 뉴테크 MLCS AA 한명이사라졌어요 Smiley MLCS 뉴테크노위캔유홍렬 Smiley 뉴테크노위캔 AA 유홍렬노위캔한명이사라졌어요뉴테크 AA노위캔유홍렬뉴테크한명이사라졌어요뉴테크유홍렬한명이사라졌어요 AA Smiley 48.525% 96.98% 97.53% 48.7% 95.85% 47.175% 47.5% 94.33% 94.25% 94.33% 44.3% 47.2% 94.23% 89.03 46.08% 94.23% 44.3% 0% 87.6% 46.05% 46.08% 93.95% 0% 47.2% 45.75% 91.13% 91.38% 0% 47.2 46.05% 45% 0% 45.75% 0% 44.28% 45% 0% 97.53% 94.33% 93.95% 92.28% 87.6% 89.03 89.03% 89.33% 87.6% 39.08% 87.6% 46.05% 45.75% 47.2% 39.08% % % % % 100 75 50 25 팀명 1 차 ( 탐지정확도 ) 2 차 ( 탐지정확도 ) 너의 3 대는? 97.05% 97.4% 96.55% 97.65% 0% 고려대유홍렬 & 연세대 94.4% 95% 93.65% 97.3% 0% 고려대유홍렬 MLCS AA & 연세대 92.15% 88.6% 94.4% 95% 93.65% 96.3% 93.5% 0% 한명이사라졌어요뉴테크 MLCS AA 88.56% 92.15% 88.6% 91.5% 90% 86.65% 88.05% 96.4% 96.3% 0% 한명이사라졌어요 Smiley 유홍렬노위캔뉴테크 MLCS 88.55% 94.4% 92.1% 91.5% 0% 88.65% 92.45% 96.4% 0% Smiley 뉴테크유홍렬노위캔 AA 91.5% 94.4% 92.1% 90% 88.05% 90.15% 90.65% 0% 한명이사라졌어요뉴테크노위캔 AA 88.55% 91.5% 92.1% 90% 86.65% 88.05% 0% 1 0 너의 3 대는고려... 고려대유홍렬 MLCS & 연세대한명이뉴테크 MLCS AA... 한명이뉴테크유홍렬노위캔 MLCS... 뉴테크노위캔유홍렬 Smilet AA 한명이뉴테크노위캔 AA... 한명이유홍렬뉴테크 AA... 한명이 Smiley... 한명이사라졌어요뉴테크유홍렬 AA 88.55% 91.5% 94.4% 90% 86.65% 0% 한명이사라졌어요 Smiley 78.15% 0% 0%
CAVEATS: AI 기반악성코드탐지 Academic paper/research 의동향과현업의동향은다름 Model maintenance 까지제대로고려한논문들은무척적음 초기탐지알고리즘은제안하지만, 실제로지속적인모델링과업데이트까지고려하지않은경우가많음 현업에서원하는점은지속적인 model maintenance cost 를낮추는것 T, t+1, t+2 로 time window 가 sliding 될때점차탐지율이떨어지는지를모니터링해서 재학습을자동으로유도하는모델 ( 예 : EWMA algorithm) 까지고려해야함
CAVEATS:AI 기반악성코드탐지 특정 feature 기반분류는여전히유효하지만악성앱들이진화하면서유효성이떨어져가고있음 예 1 : Permission based detection - 최근에는정상앱이나악성앱이나과도한 Permission 을요구하는경향이있음 예 2 : API call sequence - 과거에는그자체로결정적인 feature 였으나지금은 one of features 가됨 Classical ML(random forest, artificial neural network ) 을이용한악성앱탐지 (Android 기반 ) 그자체는이미보편적인기술로많은조직들에서자체적으로개발하여쓰고있음 Deep learning을활용하는것이한계를뛰어넘을수있는방법 단, 현업에서는아직 deep learning에대한의구심은있음
지능적악성코드탐지시스템 개발사례
Cyber Genome 자동화된악성코드분석 악성코드제작자의의도유추, 가장유사한악성코드검색? 악성코드기능분석 새로운악성코드 작업코드분석 악성코드정보추출 공격자의도파악 악성코드유사도측정 새로운악성코드에대한공격자의도파악흐름도
악성코드분석시스템 architecture 악성코드분석시스템 architecture Inputter : 악성코드를분석큐에순차적으로넣어주는입력모듈 Analyzer : 악성코드의정적 / 동적분석을수행하는모듈 Cuckoo : 악성코드분석자동화를위한오픈소스샌드박스 Angr : python 기반의바이너리분석프레임워크로바이너리파일의 Control Flow Graph 를생성하는데이용 Reporter : Analyzer 가분석한악성코드정보를 summary 하여 DB 에적재하는모듈 웹대시보드 : DB 에적재된악성코드현황, Analyzer 상태확인, 악성코드분석정보조회 / 검색 Analyzer Inputter Task Queue Task Angr Result Reporter Parsed Data Result DB 악성코드분석시스템 architecture
악성코드의기능 (function) 중심분석 악성코드의기능중심분석 악성코드의동적정보 (API 콜, 레지스트리, 파일등 ) 를중심으로, 악성코드의액션을정의 악성행위로의심되는 API 콜, 레지스트리접근, 파일등을탐지조건으로두어액선을정의함 악성코드의유사도파악및해커의의도를파악할수있음 악성코드분석시스템에서추출된액션시퀀스정보를바탕으로악성코드기능분석진행 액션시퀀스는악성코드가실행되면서위에서정의한액션이시퀸스로기록된것으로악성코드의동적행동을나타냄 API Registr y File Mutex 액션정의 Action Definitions Action Definitions Action Definitions Action 1 Action Sequence Action 2 Matched Behavior Class Action Sequence Unknown Action N Action Sequence 알려진악성코드 악성코드실행및액션기록 액션시퀀스분석및기능매칭 기능별액션시퀀스를 DB 에저장 알려지지않은악성코드기능분석 악성코드기능분석
악성코드의기능 (function) 중심분석 악성코드의기능분석 기능별액션시퀀스분석 알려진샘플을이용하여악성코드기능에따라나타나는액션시퀀스를정의함 액션시퀀스내에서자주등장하는부분시퀀스를분석 해당부분시퀀스가악성코드의어떤기능에해당될지액선의정의를통해확인 해당부분시퀀스를액션툴로서정의하고해당기능으로탐지되는툴에추가함 Rule1 Rule2 Rule n Behavior 1 Action a11 Action a21 Action an1 Behavior 2 Behavior N Dropper Action a12 Action a22 Action an2 Action a1m Action a2m Action anm Behavior 1 Malware DB Behavior 2 Behavior N Behavior 1 Behavior 2 Behavior N Anti-av Keylogger Malware behavior list Classified malware behavior and corresponding action sequence API 액션룰정의
악성코드의기능 (function) 중심분석 악성코드주요기능 탐지하고자한악성코드의주요기능 15가지를도출 No. 악성코드기능내용 No. 악성코드기능내용 1 Adware 사용자의동의없이광고를띄우는프로그램으로브라우저를실행하고설정을변경하는기능 9 Downloader 외부로부터악성코드를다운로드하여장비를감염시키는기능 2 Anti-AV 백신프로그램을탐지한후우회및종료시키는기능 10 Dropper 실행가능한바이너리파일을설치및실행하는기능 3 Anti-debug 디버깅을방지하는기능 11 Info Stealer 레지스트리나파일을이용해인터넷브라우저나 ftp 프로그램등에저장된개인정보를탈취 4 Anti-sandbox 악성코드자신이실행되는환경이샌드박스인지확인하는기능 12 Keylogger 키보드입력이벤트를후킹하여정보를외부로유출시키는기능 5 Backdoor 일반적인인증과정을거치치않고권한을획득하여악성행위를하는기능 13 Ransomware 사용자의파일을암호화하여복호화를위한개인키의대가로돈을받음 6 Botnet 7 Code Injection 사용자의컴퓨터를 bot 으로만들고네트워크연결을통해원격접근과통제를가능하게함 기존프로세스에악성코드를주입하여공격자가권한을얻거나원하는행동을취함 14 Stealth 악성행위를은폐함으로써사용자에게자신을드러나지않게하는기능 15 Worm 자신을복제하여네트워크상에전파시켜다른장비를감염시키는기능 8 Destroy MBR 하드디스크의 Master Boot Record 영역을비정상적인값으로변경하는기능 - - - 악성코드기능
악성코드의기능 (function) 중심분석주요기능예시 Adware 사용자의동의없이광고를띄우는프로그램으로브라우저를실행하고설정을변경 기능액션시퀀스 Adware 설치및웹브라우저를열기위한행위진행후정보탈취나브라우저설정을변경함 열려있는프로세스오픈 실행중인프로세스탐색 설치된브라우저탐색 브라우저실행 정보탈취브라우저설정변경 액션 탐지된행위정보 설명 실행중인프로세스탐색 injection_process_search Process32FirstW, Process32NextW를이용해실행중인프로세스확인 프로세스오픈 process_needed 이미브라우저 process가오픈되어있는경우브라우저오픈 설치된프로그램탐색 queries_program 현재설치되어있는브라우저검색 브라우저실행 locates_browser Chrome, Firefox 등의인터넷브라우저를실행 정보탈취 infostealer_browser 브라우저를통해생성된파일이나레지스트리키를접근 브라우저설정변경 modifies_browser_configuration NtWriteFile로브라우저의 profile을재생성 브라우저통신비활성화 disables_spdy_browser, disables_browser_http2 브라우저내 SPDY 통신이나 HTTP 2.0 통신을비활성화
악성코드의기능 (function) 중심분석주요기능예시 Anti-AV 백신프로그램을탐지한후우회, 종료시키는기능이있는악성코드 기능액션시퀀스 백신프로그램존재여부를탐지한후발견후에프로세스이름을변경해우회하거나해당백신프로그램을종료시킴 탐지우회시도 백신프로그램탐지 백신프로그램종료 액션 탐지된행위정보 설명 레지스트리키를통한 AV 설치확인 antiav_detectreg 레지스트리키를이용해알려진 AV의설치여부확인 설치된파일을통한 AV 설치확인 antiav_detectfile 설치된파일정보를이용해알려진 AV의설치여부확인 알려진 AV 라이브러리탐지 antiav_avast_libs LdrLoadDll, LdrGetDllHandle 모듈을이용해알려진 AV 라이브러리탐지 원격프로세스종료 terminates_remote_process 다른프로세스를원격으로종료 서비스종료 antiav_servicestop OpenServiceW, ControlService 콜을통해활성상태의서비스를종료 알려진프로세스명변경 stealth_system_procname 프로세스명을널리알려진프로세스명으로변경
악성코드의기능 (function) 중심분석주요기능예시 Anti-Sandbox 악성코드자신이실행되는환경이샌드박스인지확인함 기능액션시퀀스 샌드박스가갖는특수성을이용해샌드박스환경을감지하고악성코드분석을방해함 Z Z Z 샌드박스관련파일검색포그라운드창검사 Idle 시간검사프로세스지연 관련 API 언후킹 액션탐지된행위정보설명 Anti-sandbox antisandbox_cuckoo_files antisandbox_foregroundwindows antisandbox_idletime antisandbox_sleep antisandbox_unhook 쿠쿠샌드박스환경에만존재하는디렉토리를탐지함 GetForegroundWindow와 NtDelayExecution 함수를사용하여유저가포그라운드에서실행되는윈도우창을사용하는지지속적으로탐지 NtQuerySystemInformation의첫번째인자로 SystemProcessofrPerformanceInformation을전달하여윈도우의 idle 시간을탐지함 NtDelayExecution 함수를사용하여프로세스를지연시켜분석을방해함 쿠쿠샌드박스가모니터링하는함수를언후킹함
악성코드의기능 (function) 중심분석주요기능예시 Ransomware 사용자의파일을모두암호화하여이후복호화를위한개인키를알려주는대가로돈을받음 기능액션시퀀스 목표파일을찾아파일을이동시켜암호화한후, 파일을새로생성함 목표파일탐색 파일이동파일암호화파일생성 액션 탐지된행위정보 설명 목표파일탐색 FindNextFile, FindFirstFileEx 해당디렉토리에서존재하는파일을모두탐색 파일이동 ransomware_file_moves MoveFileWithProgress API를통해목표파일이동 파일암호화 SetFileAttributes 파일속성을 ENCRYPTED 로변경 파일생성 ransomware_appends_extensions CreateFile, CopyFile 새로운확장자명을가진파일로변경 새로운확장자명을가진파일생성
악성코드유사도측정 API 콜시퀀스기반유사도측정 API 콜시퀀스유사도측정 API 콜시퀀스를이용한유사도측정 악성코드의동적행동을보여주는 API 콜시퀀스를이용하여동적유사도측정 Nilsimsa 와같은 similar 알고리즘의한계점을개선하여적용 Trojan-Ransom.Win32.Wanna.b P1 - GetComputerNameW, RegCreateKeyExW, P2 - GetSystemTimeAsFileTime, SetUnhandledExceptionFilter, P3 - FindFirstFileExW, NtDelayExecution, GetTempPathW, P4 - GetSystemTimeAsFileTime, NtClose, NtOpenKey Trojan-Ransom.Win32.Wanna.zbu Q1 - GetSystemTimeAsFileTime, SetUnhandledExceptionFilter, Q2 - GetSystemTimeAsFileTime, NtClose, NtOpenKey, P3 - FindFirstFileExW, NtDelayExecution, GetTempPathW, Q4 - GetComputerNameW, RegCreateKeyExW, P1 P2 P3 P4 Q1 Q2 Q3 Q4 1f539595330436fd7d0179dd8251d20c211c0099a6508345dcad311083055a91 1f539595830436fd7d0179dd8251d20c211c0099a4c08345dc8c311083055a91 0. 96875 [API 콜시퀀스유사도측정예시 ]
악성코드유사도측정액선집합기반유사도측정 액션유사도측정 기능분석시추출한액션을활용하여각악성코드의액션집합끼리유사도측정 Jaccard Similarity 사용 - 집합간유사도측정 예시 malware A 가가진액션 : stealth_window, create_service, checks_debugger, injection_write_memory, allocates_rwx malware B 가가진액션 : create_service, allocates_rwx, console_output, raises_exception, protection_rx malware A malware B Jaccard Similarity stealth_window checks_debugger injection_write _memory console_output create_service raises_exception allocates_rwx protection_rx A B = 2 A B = 8 A B A B = 0.25 액션유사도측정예시
CONCLUSION REMARK
AI 를활용한악성코드탐지 AI + Security 의목적으로국내외에서 dataset 공유가활발히이루어지고있음 지난 2 년간정보보호데이터 R&D 챌린지대회운영을통해확인한결과, 악성코드, 악성앱, 침입탐지등다양한분야에 AI+Security 가적용될수있음을검증 전문보안기업과대학간활발한교류필요성의증대 AI + Security 는매우 promising 한분야로기술선점이중요
AI 를활용한악성코드탐지 기 SDS 내에서 AI 를활용하여, SIEM 운영효율화및악성코드탐지에적극활용중 악성코드 (malware) 분석 + CTI(Cyber Threat Intelligence) 로의확대 양질의 dataset 구축을하기위해지속적인노력필요
Thank you