연구논문 정보화정책제 24 권제 4 호, 2017 년겨울호, pp.68~78 분석기법을우회하는악성코드를분석하기위한프로세스설계 이경률 *, 이선영 **, 임강빈 *** 악성코드는나날이복잡해지고다양화되어단순한정보유출에서부터시스템에대한심각한피해를유발하는실정요약에이르렀다. 이러한악성코드를탐지하기위해코드분석에역공학을이용하는많은연구가진행되었지만, 악성코드개발자도분석방법을우회하는다양한기법을활용함으로써코드분석을어렵게하였다. 특히, 악성코드의감염여부조차판단하기어려운루트킷기법들이진화하고있고, 악성코드가이기법들을흡수함으로써그문제의심각성은더욱커지고있다. 따라서본논문에서는분석기법들을우회하는악성코드에재빠르게대응하기위한분석프로세스를설계하였다. 설계된프로세스를통하여악성코드의탐지를더욱효율적으로할수있을것으로사료된다. 주제어 : 역공학, 분석프로세스, 악성코드, 자기방어기법, 패킹기법 A Novel Process Design for Analyzing Malicious Codes That Bypass Analysis Techniques Lee, Kyung-Roul, Lee, Sun-Young, Yim, Kang-Bin Malicious codes are currently becoming more complex and diversified, causing various problems Abstract spanning from simple information exposure to financial or psychologically critical damages. Even though many researches have studied using reverse engineering to detect these malicious codes, malicious code developers also utilize bypassing techniques against the code analysis to cause obscurity in code understanding. Furthermore, rootkit techniques are evolving to utilize such bypassing techniques, making it even more difficult to detect infection. Therefore, in this paper, we design the analysis process as a more agile countermeasure to malicious codes that bypass analysis techniques. The proposed analysis process is expected to be able to detect these malicious codes more efficiently. Keywords: reverse engineering, analysis process, malicious code, self-protection technique, packing technique 2017년 11월 9일접수, 2017년 11월 15일심사, 2017년 12월 8일게재확정 * 순천향대학교보안안전융합기술사업화센터연구교수 (carpedm@sch.ac.kr) ** 순천향대학교정보보호학과교수 (sunlee@sch.ac.kr) *** 순천향대학교정보보호학과교수 (yim@sch.ac.kr) 68 2017 겨울
분석기법을우회하는악성코드를분석하기위한프로세스설계 Ⅰ. 서론 인터넷은컴퓨터산업을혁신적으로발전시켰고인터넷의전송속도는나날이빨라지고있다. 그러나이러한긍정적인측면과는반대로역기능또한증가하고있다. 오랜기간에걸쳐전파되던과거바이러스와같은악성코드들이현재는불과몇분또는몇초내로전세계각지로전파되고있다 (Bayer, et al., 2007). 과거에는악성코드의전파속도가느리고감염되는경로가한정적이었으며, 전파기술또한단순한구조였기때문에이에대응하는방안을연구하기에충분한시간적여유가있었다. 하지만현재의악성코드들은은닉기술과자가변형등의기술을흡수하면서매우지능화되어, 최근가장문제가되고있는분산서비스거부공격 (DDoS) 을비롯한스팸발송및개인정보탈취등의문제를야기하고있다 ( 김지연외, 2009; 이경률외, 2017; Yu, et al., 2011). 2011년보고에따르면국내의악성코드감염수와유형은지속적으로증가하는추세이다 ( 안철수연구소, 2017). 악성코드에대응하기위해보안전문가들은허니넷등을이용하여악성코드를수집하고역공학등의분석기술을통해수집된코드를분해 / 분석하고있다 ( 이동휘외, 2005; Gregio, et al., 2011). 역공학을이용하여악성코드가실행되는각단계를추적하고분석함으로써발생가능한피해의정도, 전파율, 제거방법과전파를방지하기위한대응방안을마련할수있다 ( 이승원, 2010a; 이승원, 2010b; 이승원, 2010c; 이태헌, 2016). 하지만역공학은보안전문가만이사용할수있는기술이아니라악성코드개발자도활용할수있는기술이다. 악성코드개발자는역공학을통해운영체제나소프트웨어들의취약점을찾아내고이를이용하여악성코드를제작한다. 안티디버깅, 루트킷등의기술들을이용하여보안전문가의역공학을이용한악성코드분석을우회함으로써더욱지능화되고있다. 진화하는악성코드에대응하기위한연구가진행되고있으나, 유명해킹포럼및비공개뉴스그룹등을통해악성코 드제작도구가유포되고있어악성코드제작이보다쉬워지고있다. 또한분석회피기술도빠르게진화하고있으며, 이를탐지하고분석하기어려운문제도존재한다. 국내에서는 코드엔진역공학컨퍼런스 (CodeEngn, 2017), 해커스드림 2010( 안철수연구소, 2010) 등을개최하여역공학의활성화를유도하고있지만, 역공학을통하여악성코드를분석하는전문인력이부족하여분석기술의발전속도가악성코드의발전속도를앞서지못하고있다. 대부분의악성코드는자기자신을숨기기위해루트킷기술 (Woei-Jiunn, et al., 2009) 을이용하고있어보안전문가들이악성코드를탐지하기위해서는이들기술의분석이필수적이다. 따라서본논문은분석기법을우회하는악성코드를분석하는프로세스를설계하는데그목적이있다. 탐지된악성코드의행위를분석하기위해악성코드의검출, 분석, 검증, 무력화과정을통하여시스템에침투한, 혹은침투하는악성코드를치료하는것이가능하다. 본논문은분석을우회하는기법이적용된악성코드를분석하기위한프로세스를설계하고검증하며, 이를위하여악의적인행위자체를분석하고행위를무력화하는세부적인과정은배제하였다. 또한이러한악성코드는역공학방지및패킹, 난독화기법을사용하여자신의코드를분석하기못하도록방해하므로이러한기법이적용되더라도악성코드를분석하기위한체계적인방안이필요하며, 루트킷기법을이용하여우회하기도하므로유저레벨및커널레벨, 혹은복합적으로구성된루트킷을분석하기위한절차가요구된다. 따라서상기분석기법을우회하는기술들의탐지및분석, 무력화는악의적인행위를분석하기위한준비단계로서일련의과정으로정의될수있으므로이과정을분석기법을우회하는악성코드를분석하기위한프로세스로설계하였다. 본논문의구성은다음과같다. 제 Ⅱ장에서는본논문에서설계한분석기법을우회하는악성코드의분석프로세스에대해서술하고, 제 Ⅲ장에서는설계한분석프로세스의세부단계에대해기술하며, 제 Ⅳ장에결론을논한다. 정보화정책 69
정보화정책제 24 권제 4 호 Ⅱ. 분석기법을우회하는악성코드를분석하기위한프로세스설계 본논문에서는 < 그림 1> 과같이분석기법을우회하 는악성코드분석프로세스를설계하였다. 분석기법우회악성코드탐지 파일탐지 레지스트리탐지 행동탐지 존재탐지 프로세스탐지 네트워크탐지 출입문보호메모리스캐닝후킹탐지실행추적 탐지된분석기법우회악성코드후보추출 비교 / 분석 후보추출 자기방어기법무력화 역공학방지기법적용여부 패킹기법적용여부 난독화기법적용여부 예예예 역공학방지기법무력화패킹기법무력화난독화기법무력화 분석기법우회악성코드무력화 루트킷기법무력화 DLL 인젝션적용여부 유저레벨 커널레벨 루트킷 루트킷 적용여부 적용여부 예예예 DLL 인젝션무력화유저레벨루트킷무력화커널레벨루트킷무력화 분석기법우회악성코드검출 무력화된분석기법우회악성코드후보 탐지된분석기법우회악성코드후보 분석기법우회악성코드후보비교 / 분석 비교 / 분석 비교결과도출 분석기법우회악성코드검출 악성코드분석프로세스 악성코드분석악성코드검증악성코드무력화및치료 < 그림 1> 분석기법우회악성코드분석프로세스 70 2017 겨울
분석기법을우회하는악성코드를분석하기위한프로세스설계 분석기법을우회하는악성코드를탐지하기위한단계에서는행동탐지, 존재탐지를통하여악성코드후보를추출한다. 행동탐지에서는파일탐지, 레지스트리탐지, 프로세스탐지, 네트워크탐지를수행하며, 존재탐지에서는출입문보호, 메모리스캐닝, 후킹탐지, 실행추적을수행한다. 이들탐지과정을통하여악성코드의존재와악의적인행위를탐지하며, 탐지결과의비교및분석을통하여악성코드후보들을추출한다. 이후, 무력화단계, 검출단계를적용하여추출된악성코드를확보하고, 그결과를토대로악성코드분석프로세스단계를수행하여검출한악성코드의실제악의적인행위에대한세밀한분석을수행한다. 무력화단계에서는탐지단계에서추출한후보악성코드를무력화하여악성코드검출을위한사전준비를수행한다. 이단계는자기방어기법무력화와루트킷기법무력화단계로구성된다. 자기방어기법무력화단계에서는악성코드가코드분석을방해하기위해사용하는역공학방지기법및패킹기법, 난독화기법과같은자기방어기법의적용여부를판단한다. 자기방어기법무력화단계가완료되면, 유저레벨루트킷및커널레벨루트킷, DLL 인젝션으로분류된루트킷기법무력화단계를수행한다. 악성코드의대부분이상기의기술로분석기 법을우회하므로무력화를통하여추출된후보악성코드의검출이가능하다. 검출단계에서는상기단계, 즉, 탐지단계와무력화단계의결과들을비교하여최종적으로악성코드를검출한다. 검출된악성코드는실제악의적인기능들의분석을위해활용되며, 악성코드분석단계, 검증단계, 무력화및치료단계를거쳐최종적으로악성코드분석프로세스를완료한다. Ⅲ. 제안한분석프로세스세부과정 1. 분석기법우회악성코드탐지단계악성코드를탐지하고분석하기위해서는상황에맞는환경적요소구축이필수적이다. PC가악성코드에의해감염된상태라면, 감염후발생하는악의적인행위를수행하지못하도록네트워크및시스템의환경을구성하여야하며, 이미추출된악성코드일경우에는효과적으로분석할수있는환경을구축하여야한다. 이러한환경으로는가상머신, 허니팟등이있다. 특히가상머신의경우, 환경을구성하고시스템을감시하기가용이하며, 실제시스템으로부터논리적으로분리되어 행동탐지 파일탐지레지스트리탐지프로세스탐지네트워크탐지 FileMon 등 RegMon RegShot 등 ProcessMonitor ProcessExplorer 등 TCPView TDIMon 등 존재탐지 출입문보호메모리스캐닝후킹탐지실행추적 FileMon RegMon 등 알약 V3 등 RootkitUnhooker WinDbg 등 IDA WinDbg 등 < 그림 2> 분석기법우회악성코드탐지단계 정보화정책 71
정보화정책제 24 권제 4 호 시스템에직접적으로영향을미치지않아감염전 / 후의비교및복구를빠르게수행하는장점이있다. 그림 2와같이행동탐지과정에서는파일및레지스트리, 프로세스, 네트워크로부터악성코드의행동을탐지하기위하여각도구를이용하며, 존재탐지과정에서는출입문보호및메모리스캐닝, 후킹탐지, 실행추적을위한수동적분석및가능한도구를활용한다. 1) 행동탐지단계행동탐지는행위를기반으로악성코드를탐지하는것을의미하며, 운영체제를속이는것을찾아내는데그목적이있다. 예를들어, 의도적으로올바르지않은값을반환하는 API와같은호출이존재한다면, 이는악성코드의존재를확인할수있을뿐아니라숨기고자하는목적도파악할수있다. (1) 파일탐지악성코드는시스템을감염시키기위해특정한패턴을가지는이름또는전혀다른이름의파일을생성하며, 생성한파일을이용하여자신을위장하거나은닉한다. 또한유저레벨에서의후킹이나커널레벨에서의후킹, 디바이스드라이버를악용하여은닉이가능하다. 일반적인경우에는파일을은닉하는과정은필요하지않기때문에은닉행위자체가악성코드의후보라는것을의미하므로파일의생성, 수정및삭제동작을감시하여악성코드후보를추출한다. 파일탐지를위한도구로는 FileMon, Explorer 등이있다 ( 한국인터넷진흥원, 2009 ; 한국인터넷진흥원, 2010). (2) 레지스트리탐지윈도우즈운영체제에서는시스템의설정을저장하고관리하는데레지스트리를이용한다. 윈도우즈가부팅되면서사용자로그인, 응용프로그램의실행과관리등의모든작업들이레지스트리를통하여이루어진다. 따라서악성코드에감염된시스템은악의적인행위를수행하기위하여레지스트리의추가및수정, 삭제행 위를수행한다. 악성코드의경우에는자신이반드시실행되어야하므로부팅시자동으로실행되도록설정하는경우가많으며, 이러한설정은안티바이러스프로그램의탐지를우회하기위해사용되기도한다. 이러한이유로악성코드가악의적인행위를위하여주로활용하는레지스트리를조사하고분석하여악성코드를탐지하고추출할수있으며, 이를위한도구로는 RegMon, RegShot, Regedit 등이있다. 또한 RegOpenKeyEx 나 RegQueryValueEx와같은 API를이용하여획득한레지스트리키와데이터, 레지스트리정보를수집한레지스트리하이브파일을분석하여얻은결과와의비교를통해서도악성코드탐지가가능하다 ( 한국인터넷진흥원, 2009; 한국인터넷진흥원, 2010). (3) 프로세스탐지윈도우즈운영체제는프로세스를생성하여응용프로그램을실행하고관리한다. 이에공격자는새로운프로세스를생성하여시스템을감염시킬수있기때문에이를감시함으로써악성코드를탐지한다. 악성코드의분석기법우회기술중에는프로세스와파일을숨기는기법이존재하며, 숨겨진정보를확인하지못하므로위협적이다. 숨겨진프로세스를탐지하는방법에는 Swap Context 후킹방법이있으며, ntoskrnl 모듈의 Swap Context 함수는컨텍스트가교체될때호출되는특징이있다. 이러한이유로 SwapContext 함수를후킹하여다음스레드가프로세스리스트에존재하는지확인함으로써악성코드를탐지한다. 따라서 Swap Context 함수를후킹하여수집한프로세스리스트와 NtQuery SystemInformation과같은 API로수집한프로세스리스트를비교한다면, 숨겨진프로세스를탐지하는것이가능하다 ( 한국인터넷진흥원, 2009; 한국인터넷진흥원, 2010; Hoglund & Butler, 2005; Russinovich, et al., 2009). (4) 네트워크탐지악성코드는악의적인행위에대한명령전송, 코드 72 2017 겨울
분석기법을우회하는악성코드를분석하기위한프로세스설계 변형과정, 탈취한정보의전송, 공격자와의연결유지등의기능을수행하기위해네트워크에연결된다. 시스템을장악한악성코드는데이터유출, 백도어등의기능을수행하기위해특정네트워크로접속하므로이를탐지하기위해서는시스템에서네트워크를감시한후, 그결과를분석함으로써악성코드의특징을파악한다. 네트워크감시는 TCPView, TDIMon 등의도구를통하여감시한다. 2) 존재탐지단계존재탐지는악성코드의존재여부를탐지하는방식이다. 과거에는 Tripwire와같은도구로악성코드이미지를검색하는기술이사용되었지만, 이기술은악성코드가파일시스템을사용한다는전제하에사용가능하며, 파일을은닉하기위한목적으로하드웨어의특정부분, 혹은메모리에만존재하도록구성하거나필터드라이버로은닉한다면탐지가불가능한한계가존재한다. 이로인해악성코드의존재여부를판단하기위한여러가지방법들이제안되었으며, 출입문보호, 메모리스캐닝, 후킹탐지, 실행추적등의방법이있다. (1) 출입문보호악성코드의존재를탐지하는방법은메모리에서악성코드를탐지하는방법과존재증거를탐지하는방법이있다. 메모리에서악성코드를탐지하는방법은악성코드가실행을위하여자신의코드를메모리로로드하는것을탐지하는방법과메모리를주기적으로스캔함으로써탐지하는방법으로나누어진다. 메모리로로드하는것을탐지하는방법은악성코드가실행을위하여반드시메모리에존재하여야만하므로메모리로로드되는진입점을감시함으로써악성코드를탐지한다. 하지만이와같은경우에는그결과가복합적으로드러나기때문에 FileMon, RegMon, WinDbg 등과같은다양한도구를활용하여파악해야하는단점이존재한다 ( 한국인터넷진흥원, 2010; Hoglund & Butler, 2005). (2) 메모리스캐닝메모리스캐닝은메모리에서악성코드를검색하기위한기술이다. 상기출입문보호기술은악성코드가메모리로로드되는것을지속적으로검사해야만하는단점이존재하므로, 더욱효율적으로탐지하기위하여주기적으로메모리를스캔하여악성코드를탐지한다. 하지만악성코드가메모리로로드되는것은방지하지못하며, 메모리에로드된악성코드만탐지할수있는단점이존재한다. 메모리스캐닝에사용되는도구로는안티바이러스프로그램들이있으며, 대표적으로알약, V3 등이있다 ( 한국인터넷진흥원, 2010; Hoglund & Butler, 2005). (3) 후킹탐지후킹탐지는운영체제나프로세스에대해탐지한다. 이는상기메모리스캐닝방법과는달리후킹검색을수행할때악성코드탐지를위한알려진패턴이요구되지않는장점이존재한다. 후킹탐지알고리즘은프로세스에서허용된범위외부로의실행분기를찾아내는것이다. 다시말하면, 프로세스는자신의코드를실행하기위한허용된범위를가지며, 악의적인목적의코드를실행하기위해서는해당범위를벗어난메모리에코드를위치시켜야하므로범위를벗어난코드로분기하거나참조하는경우에는후킹된것으로판단이가능하다. 악성코드가주로활용하는후킹기술로는 IAT 후킹, SSDI 후킹, IDT 후킹, 인라인후킹이있으며, Rootkit Unhooker, IceSword, WinDbg 등의도구를통하여후킹을탐지하는것이가능하다 ( 한국인터넷진흥원, 2010; Hoglund & Butler, 2005). (4) 실행추적후킹탐지와는다르게후킹을검사하는방법으로함수의호출흐름을추적하는방법이있다. 일단후킹이시작되면기존코드보다더많은명령어를실행한다. 따라서후킹되지않은상태의함수들에대한정상적인수치를수집한후, 대상함수를주기적으로호출하여 정보화정책 73
정보화정책제 24 권제 4 호 해당함수가실행되면서추가적으로실행되는코드가존재하는지산정한기준치와비교함으로써후킹여부를판단한다. 하지만이방법은무결한기준치가필요하며, 후킹되지않은상태에서도실행되는코드의개수가일정하지않은단점이있다. 3) 탐지한분석기법우회악성코드후보추출단계악성코드후보를추출하기위해서는행동탐지단계를통해탐지한악성코드와존재탐지단계를통해탐지한악성코드의비교를통하여실제악성코드인지정상적인응용프로그램인지판단해야한다. 즉, 행동탐지와존재탐지결과를비교함으로써분석기법을우회하는악성코드후보들을추출한다. 2. 분석기법우회악성코드무력화단계무력화단계는상기의탐지단계에서추출한후보악성코드를검출하기위해자기방어기법, 루트킷기법과같은악성코드가사용하는분석기법우회방법을무력화하여검출단계에필요한사전준비를한다. 이단계는이전단계에서추출한후보악성코드만을대상으로하기때문에효과적으로분석하고무력화할수있지만많은인력과시간이요구되는단점도있다. 1) 자기방어기법무력화단계악성코드는자신의코드가역공학을통하여분석되는것을방해하기위하여자기방어기법을이용한다. 이러한자기방어기법으로는역공학방지, 패킹, 난독화기법이있으며, 단독이나조합을통하여분석이어렵도록방해한다. 따라서각기법들을무력화해야하며, 그과정을 < 그림 3> 에나타내었다. (1) 역공학방지기법공격자는분석기법을우회하기위하여내부에서디버깅수행여부를검사한후, 만약디버깅되는경우에는악의적인행위를수행하지않도록구성하거나다양한 기법을적용하여디버깅을방해한다. 이와같은경우, 악의적인행위가존재하는지판단하기이전에코드분석을방해하기때문에무력화단계가반드시필요하다. 역공학방지기법은디버깅탐지, 중지점및패칭탐지, 디버거공격으로분류되며, 각기법들의적용여부를판단하여무력화해야한다 (Yason, 2007; 이찬희외, 2013; 이경률 임강빈, 2012; 홍수화, 2016). (2) 패킹기법과거네트워크로의전송에서파일용량을최소화하는데이용되었던패킹기법들이암호화, 코드재배치, 역공학방지기법등의기술들과결합되면서코드분석을더욱어렵게하도록진화되었다. 하지만악성코드도자신의코드를분석하기어렵도록이러한기법들을활용하기시작하였다. 따라서패킹된악성코드의경우에는무력화방안인언패킹을수행하여원본파일을추출할수있으며, 추출된파일이난독화된경우에는역난독화를수행한다. 이를통하여확보한파일은루트킷기법무력화단계에서사용가능하다 (Lee, et al., 2010). 하지만상기언패킹에서도한계점이존재한다. 일부악성코드에서는암호화등의패킹기술을사용하기도하며, 이러한패킹기술은정적분석에서패킹에활용된코드를디스어셈블하거나분석하는것이어려우며, 이로인하여주로동적분석으로해당코드를분석한다. 하지만동적분석에서는코드적용범위 (Code Coverage) 의한계가존재하여분석이어려운경우도존재한다. (3) 난독화기법소프트웨어저작권을위한목적으로이용되었던난독화기법은, 적용위치에따라소스레벨과바이너리레벨난독화, 적용방법에따라배치, 자료, 제어, 방지난독화로분류된다. 난독화는코드분석을어렵게하기위해코드를변형하는것을말한다. 따라서난독화가적용된악성코드를효과적으로분석하기위한무력화방안이필요하며, 이를역난독화라부른다. 역난독화는정적분석및디스어셈블리를이용한방법으로분류 74 2017 겨울
분석기법을우회하는악성코드를분석하기위한프로세스설계 자기방어기법무력화 역공학방지기법적용여부 패킹기법적용여부 난독화기법적용여부 예예예 역공학방지기법패킹기법난독화기법 Debugging Detection 패킹여부확인 배치난독화 Breakpoint and Patching Detection OEP 추출 자료난독화 Debugging Attack 메모리덤프 제어난독화 각기법무력화 IAT 복구 원본파일추출 방지난독화역난독화기법정적분석이용 API 호출특성이용의미구조이용 디스어셈블리이용 메모리분석 스택분석 < 그림 3> 분석기법우회악성코드무력화단계 - 자기방어기법무력화단계 되며, 정적분석을이용한방법은 API 호출특성, 의미구조를이용한방법으로나누어진다. 디스어셈블리를이용한방법으로는메모리분석, 스택분석을이용한방법이있다. 이러한방법들을이용하여역난독화를수행하면더욱효과적으로코드를분석할수있다 ( 국가보안기술연구소, 2005; 김정일 이은주, 2011; Balakrishnan & Schulze, 2005; You & Yim, 2010; 정진혁 이정현, 2013; 석재혁외, 2013; 이재휘외, 2017). 하지만난독화된악성코드의경우에는분석이어렵도록방해하는기술이적용될수있으며, 이러한악성코드는역난독화를하더라도동적으로실행되지않는코드가존재하여분석에한계가있을수있다. 정보화정책 75
정보화정책제 24 권제 4 호 2) 루트킷기법무력화단계선행조사의결과를기반으로악성코드가은닉을위하여활용하는루트킷기법을무력화하는단계를수행한다. 유저레벨과커널레벨로나누어진이단계는각단계를순차적, 혹은역으로분석하거나그반대, 또는두가지모두를분석한다. 분석을위한탐지방법은 DLL 인젝션탐지, 유저레벨루트킷탐지, 커널레벨루트킷탐지방법으로분류된다. 을달성하며, API 후킹은 IAT/EAT 후킹, 인라인후킹으로분류된다. 이들기법은별도로실행중인악성코드내부에서사용되거나상기의 DLL 인젝션으로삽입된후실행되기도한다. 이러한이유로 DLL 인젝션을탐지하여무력화한후, 확보된코드를기반으로유저제벨루트킷기법인 IAT/EAT 후킹과인라인후킹을분석하고무력화해야한다 ( 이승원, 2010b; Hoglund & Butler, 2005). (1) DLL 인젝션악성코드가유저레벨에서자신을은닉하기위하여후킹을수행하며, 이는주로 DLL 인젝션을통하여이루어진다. 이를탐지하기위하여현재시스템의 DLL 상태를분석하여무력화해야한다. 또한가능하다면추가적인인젝션코드를분석함으로써차후악성코드분석프로세스를수행할때필요한정보로활용할수있다 ( 이승원, 2010a; 이승원, 2010c; Hoglund & Butler, 2005). (2) 유저레벨루트킷유저레벨루트킷기법은주로 API 후킹으로그목적 (3) 커널레벨루트킷유저레벨보다낮은레벨인커널레벨에서는유저레벨에서확보할수있는정보보다많은정보를확보하므로커널레벨에서유저레벨루트킷을더욱쉽게탐지한다. 따라서악성코드제작자는이러한한계점을극복하기위해커널레벨에서동작하는악성코드를제작하기시작하였다. 그결과, 동일한레벨에서다양한기능을활용한공격으로그대응이어려운문제점이존재한다. 이러한공격기법으로는 SSDT 후킹, IDT 후킹, Major function 후킹, 우회패치, 점프템플릿, 계층드라이버, DKOM이있다 (Hoglund & Butler, 2005; Woei- Jiunn, et al., 2009; Kim, et al., 2012). 루트킷기법무력화 DLL 인젝션적용여부 유저레벨루트킷적용여부 커널레벨루트킷적용여부 예예예 DLL 인젝션유저레벨루트킷커널레벨루트킷 레지스트리이용 IAT/EAT 후킹 SSDT 후킹 점프템플릿 윈도우후킹함수이용 인라인후킹 IDT 후킹 계층드라이버 리모트스레드이용 Major Function 후킹 DKOM 우회패치 < 그림 4> 분석기법우회악성코드무력화단계 - 루트킷기법무력화단계 76 2017 겨울
분석기법을우회하는악성코드를분석하기위한프로세스설계 3. 분석기법우회악성코드검출단계검출단계에서는상기탐지단계에서추출한후보악성코드와무력화단계에서확보한결과를비교함으로써악성코드를검출한다. 악성코드가사용하는기법은악성코드만이사용하는것은아니므로비교 / 분석을통해악성코드인지정상적인프로그램인지를판단할필요성이있다. 비교 / 분석결과가악성코드일경우에는탐지및무력화단계에서분석된내용을기반으로이를검출하여악성코드분석프로세스에적용한다. 또한탐지단계와무력화단계에서조사한분석기법우회기술을정리하고이를분류하여분석기법우회기술의난이도나기준을설정하여악성코드분석프로세스의자료로활용한다. Ⅳ. 결론 본논문은분석기법을우회하는악성코드에보다재빠르게대응하기위한분석프로세스를설계하였다. 본설계에서는탐지단계, 무력화단계, 검출단계를거쳐악의적인행위의분석을위한악성코드를확보한다. 탐지단계는행동탐지, 존재탐지과정을통해악성코드후보들을추출하며, 무력화단계에서는역공학방지기법, 패킹기법, 난독화기법으로이루어진자기방어기법을무력화하고, DLL 인젝션, 유저 / 커널레벨루트킷으로이루어진루트킷기법을무력화하여악성코드를추출한다. 검출단계에서는탐지단계와무력화단계를통해추출된후보악성코드들의분석결과를비교하여최종적인판단을함으로써악성코드를검출한다. 검출한악성코드는별도의악성코드분석프로세스를통해세부적인동작을분석하여방지및치료를위해활용하며, 본논문에서제안한분석프로세스를통해분석기법을우회하는악성코드에대한대응을민첩하게할수있을것으로판단된다. 그럼에도불구하고본본문에서설계한프로세스를실제시스템에적용할경우에는그환경적인영향으로 인하여문제점이발생할가능성이존재한다. 그이유는설계한프로세스는분석기법을우회하는악성코드를확보하기위하여기술적인절차를토대로설계하였기때문에실제시스템에존재하는다양한환경적인요소에대응하지못하는부분이있을수있다. 그일례로운영체제의종류에따라 DLL 인젝션과같은기술이무력화되지못하도록방지하는보안기술이적용된경우가있을수있으며, 자기방어기법및루트킷기법을무력화하기위하여활용되는코드가정상적이지않은방법으로접근할경우에는백신프로그램이악성코드로탐지하거나충돌이발생하여무력화하지못하는경우도있을수있다. 이러한문제점들은이미경험한전문가로부터자문을구하여극복할수있으며, 백신프로그램의경우에는분석가들의목적이악성코드를확보하는것이기때문에프로그램을동작시키지않도록하거나종료시키는방법으로일시적으로우회하여해결할수있을것으로사료된다. 참고문헌 국가보안기술연구소 (2005). 코드난독화를이용한악성코드분석기법에관한연구. 대전 : 국가보안기술연구소. 김정일 이은주 (2011). 제어흐름난독화를효과적으로수행하기위한전략. 한국컴퓨터정보학회논문지, 16(6): 41-50. 김지연 이주리 박은지 장은영 김형종 (2009). DDoS 공격피해규모및대응기법비용분석을위한모델링및시뮬레이션기술연구., 한국시뮬레이션학회논문지, 18(4): 39-47. 석재혁 김성훈 이동훈 (2013). 가상화난독화기법이적용된실행파일분석및자동화분석도구구현., 한국정보보호학회논문지, 23(4): 709-720. 안철수연구소 (2010). 해커스드림 2010. http://www. ahnlab.com/kr/site/securityinfo/secunews/secu NewsView.do?cmd=print&seq=17027&menu_di st=1 (Retrieved on November 9, 2017). 안철수연구소 (2017). 월간보안보고서. http://www.ahn 정보화정책 77
정보화정책제 24 권제 4 호 lab.com/kr/site/securityinfo/asec/asecrepo rtview.do?groupcode=vni001 (Retrieved on November 9, 2017). 이경률 임강빈 (2012). 코드은닉을이용한역공학방지악성코드분석방법연구. 한국항행학회논문지, 16(3): 488-494. 이경률 이선영 임강빈 (2017). 인터넷뱅킹서비스에서의보안위협분류및분석. 정보화정책저널, 24(2): 20-42. 이동휘 이상호 김귀남 (2005). 허니닛기반의사이버위협조기탐지기법연구. 한국사이버테러정보전학회정보보증논문지, 5(4): 67-72. 이승원 (2010a). 리버싱관점에서애플리케이션의기능추가방법 : DLL Loading by PE Patch. 마이크로소프트웨어, 319: 204-211. 이승원 (2010b). 리버싱관점에서애플리케이션의기능추가방법, 2 : Inline Code Patch. 마이크로소프트웨어, 320: 200-205. 이승원 (2010c). 리버싱관점에서애플리케이션의기능추가방법, 3 : DLL Injection. 마이크로소프트웨어, 321: 200-207. 이재휘 한재혁 이민욱 최재문 백현우 이상진 (2017). Themida 의 API 난독화분석과복구방안연구. 한국정보보호학회논문지, 27(1): 67-77. 이찬희 정윤식 조성제 (2013). 안드로이드애플리케이션에대한역공학방지기법. 보안공학연구논문지, 10(1): 41-50. 이태헌 (2016). 텍스트마이닝을이용한정보보호인식분석및강화방안모색. 정보화정책, 23(4): 76-94. 정진혁 이정현 (2013). 프로가드난독화도구구조및기능분석. 한국통신학회논문지, 38B(8): 654-662. 한국인터넷진흥원 (2009). 악성코드유형에따른자동화분석방법론연구. 서울 : 한국인터넷진흥원. 한국인터넷진흥원 (2010). 분석기법우회악성코드분석방법연구. 서울 : 한국인터넷진흥원. 홍수화 (2016). Pin 을이용한안티디버깅우회설계및구현 인터넷정보학회논문지, 17(5): 33-42. Bayer, U., Habibi, I., Balzarotti, D., Kirda, E. & Kruegel, C. (2009). A View on Current Malware Behaviors. Usenix Workshop on Large-scale Exploits and Emergent Threats(LEET), http:// static.usenix.org/event/leet09/tech/full_papers/ bayer/bayer_html/ (Retrieved on November 9, 2017). Balakrishnan, A. & Schulze C. (2005). Code Obfuscation Literature Survey, http:// pages.cs.wisc.edu/~arinib/writeup.pdf (Retrieved on November 9, 2017). CodeEngn (2017). CodeEngn Conference., http:// www.codeengn.com (Retrieved on November 9, 2017). Gregio, A.R.A., Filho, D.S.F., Afonso, V.M., Santos, R.D.C., Jino, M. & de Geus, P.L. (2011). Behavioral analysis of malicious code through network traffic and system call monitoring. Proceedings of the SPIE. Hoglund, G. & Butler, J. (2005). Rootkits: Subverting the Windows Kernel. Addison-Wesley Professional. Kim, S., Park, J., Lee, K., You, I. & Yim, K. (2012). A Brief Survey on Rootkit Techniques in Malicious Codes. The journal of Internet Services and Information Security, 2(3/4): 134-147. Lee, K., You, I. & Yim, K. (2010). A Hint to the Analysis of the Packed Malicious Codes, Proceedings of the WISA. Russinovich, M. & Solomon, D. (2009). Windows Internals. Microsoft. Woei-Jiunn T., Yuh-Chen C. & Being-Yu T. (2009). A New Windows Driver-Hidden Rootkit Based on Direct Kernel Object Manipulation. The journal of Lecture notes in computer science, 5574: 202-213. Yason, M. (2007). The Art of Unpacking, https:// www.blackhat.com/presentations/bh-usa-07/ Yason/Whitepaper/bh-usa-07-yason-WP.pdf (Retrieved on November 9, 2017). You, I. & Yim, K. (2010). Malware Obfuscation Techniques: A Brief Survey, International Conference on Broadband Wireless Computing, Communication and Applications, 297-300. Yu, S., Zhou, W., Doss, R. & Jia, W. (2011). Traceback of DDoS Attacks Using Entropy Variations. IEEE transactions on parallel and distributed systems; a publication of the IEEE Computer Society, 22(3): 412-425. 78 2017 겨울