분석보고서 09. 09. 21. 작성 Consider the USB Malicious Program 작성자 : 영남대학교정보보호연구학회 @Xpert 윤상필 feel_4ever@ynu.ac.kr - 1 -
- Contents - 1. 개요----------------------------------------------------------- 3 가. 배경지식--------------------------------------------------------- 3 1) USB의정의---------------------------------------------------- 3 2) Flash Memory-------------------------------------------- 3 3) USB Memory--------------------------------------------- 4 4) Worm----------------------------------------------------- 4 5) Trojan Horse--------------------------------------------- 4 나. 연구의필요성--------------------------------------------------- 4 2. 선정과정------------------------------------------------------ 6 가. 선정배경-------------------------------------------------------- 6 나. VBS.Sasan.a Trojan Horse------------------------------------ 6 3. VBS.Sasan.a 분석--------------------------------------------- 6 가. 감염시나리오와감염증상------------------------------------ 6 1) 감염시나리오------------------------------------------------- 6 2) 감염증상------------------------------------------------------ 7 나. 초기분석-------------------------------------------------------- 7 다. 동적분석-------------------------------------------------------- 8 1) 분석환경------------------------------------------------------ 8 2) 필요한툴------------------------------------------------------ 8 3) 분석----------------------------------------------------------- 9 라. 치료방법-------------------------------------------------------- 13 1) Anti-Virus 프로그램으로치료하기---------------------------- 13 2) 변조된레지스트리값복원하기------------------------------ 13 4. 결론----------------------------------------------------------- 15 가. 예방대책-------------------------------------------------------- 15 나. 결론------------------------------------------------------------- 15 5. 참고문헌------------------------------------------------------ 16-2 -
1. 개요 가. 배경지식 1) USB의정의 USB(Universal Serial Bus) 는 범용직렬버스 로불리며, 컴퓨터와주변기기를연결하는데쓰이는입 출력표준의하나이다. 가장위에는주컨트롤러가있고, 주컨트롤러는루트허브를통하여두개의 USB 단자를제공한다. 대게이두단자에주변기기를연결하여사용하며, 포트가부족하면허브를이용하여하나의주컨트롤러에 Tree 형식으로최대 127개까지주변기기를연결할수있다. USB 방식으로연결된주변기기에는약간의전력이함께공급되어보통외부전원을사용하지않고주변기기를이용할수있으며, 핫플러그 ( 사용도중언제든지주변장치를연결하거나제거할수있는기능 ) 기능을지원한다. USB 버전에따른속도는 Low speed(1.5 Mbps), Full speed(12 Mbps), Hi-speed(480 Mbps), Super-speed(5 Gbps) 가있으며, 현재사용되는 USB 버전은 2.0 버전으로초당 480 MB의전송속도를지원하고있다. 2010년에는 USB 3.0 버전이출시될예정으로, SS(Super Speed) 라는명칭으로최대 5 Gbps의속도를낼것이라고알려져있다. USB 1.0, 1.1, 2.0 등과호환이되며, USB 2.0 케이블을 USB 3.0 포트에는연결이가능하나, USB 3.0 케이블을 USB 2.0 포트에연결할수없는구조로출시될예정이다. 2) Flash Memory 메모리는높은저장밀도, 빠른속도, 비휘발성, 낮은생산가격, 낮은소비전력등의다양한조건을만족해야하는데, 현재주류를이루고있는 DRAM은기억된정보가빨리소멸되는, 즉휘발성이라는단점을지니고있다. 이로인해 Refresh( 매우짧은주기로동일한정보를다시기억시키는기능 ) 기능이필요로하며, 결과적으로많은전력을소비한다. 이를대체하기위한차세대메모리중의하나가 Flash Memory이다. Flash Memory는일종의 EEPROM (Electrically Erasable and Programmable ROM) 으로크게바이트 I/O를지원하는 NOR형과페이지 I/O만을지원하는 NAND형이있다. NOR형메모리는읽기속도가빠른데반하여, 쓰기속도가느려주로코드용메모리로사용하며, NAND형 Flash Memory는쓰기속도가빠르고, 단위공간당단가가낮아주로대용량데이터저장장치로사용한다. - 3 -
3) USB Memory 앞서설명한 USB와 Flash Memory 를통합한개념으로, USB 단자에연결하여사용하는 Flash Memory를 USB Memory라통칭한다. 크기가일회용라이터정도이며무게는 3.5g 정도로매우가볍고, Flash Memory 의특징인외부의물리적충격에강하다. 또한, 전력소비가적어휴대성이매우좋다고할수있다. 최근 USB 용량은 64GB 까지나와있어큰용량의파일을보관하거나복사할때매우유용하다. 가격또한저렴한편이라널리보편화되어있다. 4) Worm Worm은스스로복제하는컴퓨터프로그램을일컫는말이다. 컴퓨터바이러스와비슷하나바이러스가다른실행프로그램에기생하여실행되는반면에웜은독자적으로실행되며, 다른실행프로그램은필요하지않다. 컴퓨터바이러스와웜의가장큰차이점은바이러스는바이러스를스스로전달할수없지만, 웜은가능하다는점이다. 웜은컴퓨터의파일전송기능을착취하여, 네트워크를사용하여자신의복사본을전송할수있다. 또한, 악성코드를다운받아설치하거나, e-mail을통해자신을복제하거나, 좀비 PC로만들어 DDoS 공격을수행할수도있다. 5) Trojan horse 자료삭제와정보탈취등의사이버테러를목적으로만들어진프로그램이다. 크래킹기능을가지고있어인터넷을통해감염된컴퓨터의정보를외부로유출하는것이특징이다. 다른파일을전염시키는전염성은없으므로해당파일을삭제하면치료가가능하다. 프로그램의이름은목마속에서나온그리스병사들이트로이를멸망시킨것을비유하여이프로그램이상대편이눈치채지못하게몰래숨어든다는의미에서붙여졌다. 이것은유용한프로그램을가장하여사용자가그프로그램을실행하도록속인다. 나. 연구의필요성최근컴퓨팅환경에대한패러다임자체가기존의 Desktop 중심에서언제어디서나원하는정보와컴퓨팅파워를사용할수있게하는유비쿼터스컴퓨팅으로전환되고있으며, 이로인해 Desktop에서필요한정보만복사하여휴대할수있는이동식저장장치의사용이현재급증하고있으며, 앞서설명한 USB Memory는이미보편화되어있다. 공용 PC로자료를옮기기위한수단으로 USB 포트를사용하게되고, 이과정에서 USB Memory에악성프로그램이감염된다. 다시자신의 PC로가 - 4 -
져가 USB Memory를사용하면서, 악성프로그램은번식을하게된다. 대다수의사람들이사용하므로악성프로그램의유입과정을추론하기가매우어려우며, 악성프로그램유입예방도어려울수밖에없다. 또한, 불특정대다수가악성프로그램에감염되고피해를입게된다. 아래 [ 그림 1] 과같이악성프로그램으로인한피해사례는해가갈수록급증하고있으며, USB Memory를통한악성프로그램감염 [ 그림 2] 또한무시할수없는수치임을보여준다. 따라서 USB Memory에감염된악성프로그램분석을통해서치료방법을알아내고, 예방대책을수립해 USB Memory를통한악성프로그램피해사례를최소화하는데연구의목적이있겠다. 이글은 2. 선정과정 에서 USB Memory 악성프로그램의종류인 VBS.Sas an.a를선택한배경과 VBS.sasan.a를소개하고 3. VBS.Sasan.a 분석 을통해서감염시나리오와증상, 치료방법을알아보며, 4. 결론 에서예방방법을고찰한뒤에결론을맺는다. 그림 1 악성코드피해통계 출처 : Ahn Lab - [ASEC리포트]2008년 6월악성코드피해통계 그림 2 악성프로그램감염경로 출처 : KISA - 2008 정보보안실태조사 ( 기업편 ) - 5 -
2. 선정과정가. 선정배경 USB 포트로감염되는악성프로그램에는 Trojan, Kavo, Tavo 등많은악성프로그램이존재한다. 이문서에분석할악성프그램은 VBS.Sasan.a 이다. 얼마전필자의학교컴퓨터실습실에서 USB Memory를사용한적이있다. 그때실시간감시를하고있던 Anti-Virus 프로그램에서바이러스에감염되었다는메시지와치료여부를묻는창이떴고, 치료를눌렀으나다시같은바이러스에감염되었다는메시지와치료여부를묻는창이떴다. 아무리치료를눌러도치료가되지않는악성프로그램에감염되었다는사실을인식하였고, 필자의 USB Memory에있는악성프로그램을제거하기위해, 필자의 USB Memory에감염된 VBS.Sasan.a를선정하게되었다. 나. VBS.Sasan.a Trojan Horse Vbs.sasan.a는 VBS/Sasan.A.2,Worm.VBS.Sasan.a,VBS/Sasan.A.worm 등으로도불리며, 2007년 4월경최초로발견된 Trojan Horse의한종류이다. 연결된모든드라이브루트에 Autorun.inf 파일을생성하여드라이브에연결시마다자동으로실행되는형태로확산되는악성스크립트파일이다. 특히, USB Memory 등의이동식저장장치에도복사되고자동실행되도록만들어다른 PC에도확산되도록만들어졌다. 특정사이트에서악성프로그램을다운받거나, 개인정보를유출하는 Trojan Horse 파일이다. 3. VBS.Sasan.a 분석가. VBS.Sasan.a 감염시나리오와감염증상 1) 감염시나리오 PC 방에서파일을복사하기위해서 USB Memory를연결하였다. 연결즉시 [ 그림3] 과같은창이떴고, 폴더를열어파일보기 를선택한후에확인을눌렀다. 집으로돌아온후에자신의 PC에 USB Memory를연결하고마찬가지로 [ 그림3] 과같은창이떴고, 폴더를열어파일보기 를선택한후에확인을눌렀다. 그즉시, 사용하던 Anti-Virus 프로그램에서 [ 그림4] 와같은창이떴고, 치료를눌렀으나, [ 그림4] 와같은창은계속해서생길뿐이었다. - 6 -
그림 3 USB 자동실행화면 그림 4 Anti - Virus 실행화면 2) 감염증상 컴퓨터의속도가다소느려진다. Anti - Virus 프로그램으로치료후재부팅시 [ 그림5] 와같은창이뜬다. 컴퓨터에 USB Memory나외장하드디스크를연결할때마다 [ 그림4] 와같은창이생긴다. 그림 5 감염증상 나. 초기분석 VBS.Sasan.a Trojan Horse라불리는스크립트파일은.MS32.dll.vbs 파일이다. 크기는 7,766 바이트며메모장으로스크립트파일을열어 [ 그림 6] 확인해본결과 VBS.Sasan.a Trojan Horse는 autorun.inf 파일을변조시킬것으로예상되며, 레지스트리값을다소변경시킬것으로예상되었다. [ 그림 7] 을미루어윈도우부팅시에항상실행되도록설정할것으로예상되며, [ 그림 8] 을미루어어떤외부장치나드라이브가연결될경우자동실행되도록설정을바꿀것으로예상되며, [ 그림 9] 를미루어자신이노출되어탐지되는것을방지하기위해서, 자신을계속숨김파일로설정을변화시킬것으로예상된다. - 7 -
그림 6.MS32DLL.dll.vbs 파일의내부 그림 7 부팅시시작프로그램레지스트리를변조하는부분 그림 8 외부장치나드라이브가자동실행되도록레지스트리를변조하는부분 그림 9 자신이노출되거나탐지되는것을방지하기위해자신을숨기는부분 다. 동적분석악성프로그램을동적으로분석하기위해서는분석환경을구축해야하며, 분석에필요한툴이필요하다. 1) 분석환경 OS : Windows XP sp2 Intel Core2 Duo 2.4GHz, 2GB Ram Vmware 5.0 - OS : Windows XP sp2-512 MB Ram 2) 필요한툴 Process Explorer : 실시간으로현재의프로세스를감시하는툴 Filemon : 실시간으로현재프로그램이읽고쓰는파일을탐지하는툴. - 8 -
Regmon : 실시간으로현재프로그램이읽고쓰는레지스트리를탐지하는툴. Wireshark : 실시간으로주고받는패킷을분석하는패킷분석툴. 그림 10 분석용툴위에서부터 Filemon, Process Explorer, Regimon 3) 분석초기화작업으로 Filemon과 Regimon을실행후에마우스오른쪽버튼을클릭하여 Exclude Process' 를클릭하여현재읽혀지고써지는것이감지된파일들을모두제거해준다. [ 그림 10] 과동일한상태로만들어준다음, VBS.Sasan.a Trojan Horse( 이하 Sasan) 에감염된 USB Memory를연결하여 USB Memory를자동실행해준다. 먼저 Filemon의결과를살펴보자. [ 그림 11] 과같이많은파일이읽혀지고써지는것이감지되는것을확일할수있다. 그림 11 VBS.Sasan.a Trojan 에감염된후 Filemon 에서감지된파일들 - 9 -
여기서 Sasan이쓰거나생성하는파일들만뽑아서분석을해보았다. 먼저 [ 그림 12] 를통해 Sasan은 wscript.exe( 윈도우스크립트실행파일 ) 를이용하여윈도우폴더안에자신을복제하고, boot.ini 파일을생성한다. boot.ini 파일을확인해본결과자기자신과동일한파일임을알수있었다.[ 그림13] 또, 연결된모든드라이브 (USB 등의외부드라이브포함 ) 의 Autorun.inf 를변조하고자신을복제한다.[ 그림 14] 마지막으로 [ 그림 16] 을미루어보아 Sasan은 wscript.exe 를이용하여약 11초를주기로계속적으로자신을복제하고, Autorun.inf 를변조한다는사실을알수있었다. 이를미루어 Anti-Virus Program을이용하여치료를하여도계속해서감염이확인되었다는경고창이뜨는것은여기에있다고추론할수있다. 그림 12 VBS.Sasan.a Trojan 이생성하고변조하는파일들 그림 13 VBS.Sasan.a Trojan 이만든 boot.ini 파일의내부 - 10 -
그림 14 모든드라이브를 OPEN 하는 VBS.Sasan.a Trojan 그림 15 VBS.Sasan.a Trojan 에의해변조된 Autorun.inf 파일 그림 16 약 11 초를주기로동일한작업을반복하는 VBS.Sasan.a Trojan - 11 -
다음은 Sasan이변조하는레지스트리를알아보도록하자. Regimon을살펴본결과 [ 그림 17] Sasan은초기분석에서예상했던바와동일하게부팅시시작프로그램으로등록되도록레지스트리값을변조하였으며, 외부장치가연결되었을때자동실행이수행되도록레지스트리값을변조하였고, 자기자신을노출시키지않기위해서계속적으로레지스트리값을변조해자신을숨겼다. [ 그림 18] 그림 17 레지스트리값을변조하는 VBS.Sasan.a Trojan 그림 18 폴더옵션을계속변경하여스스로몸을숨기는 VBS.Sasan.a Trojan - 12 -
라. 치료방법 1) Anti-Virus 프로그램으로치료하기앞서동적분석에서알아본바와같이 Sasan은 Wscript.exe 를이용하여여러폴더에계속적으로자기자신을복제한다. 따라서직접찾아서삭제하는방법은무리가있다. 그러므로 Ant-Virus 프로그램을이용하는것이현명한방법인데, 아무런조치없이 Anti-Virus 프로그램을실행하여치료를하게되면, 계속해서다시자기자신을복제하므로앞서확인한바와같이계속감염되었다는경고창이뜰뿐이다. 그러므로자기자신을복제하지못하도록하면서, 치료를병행해주어야한다. 1 Anti-virus 프로그램으로검사를시작함과동시에 Ctrl + Alt + Del을눌러작업관리자를연다. 2 작업관리자의프로세스탭을선택하여 Wscript.exe를찾는다. 3 Wscript.exe를강제종료해준다. 4 Anti-virus 프로그램으로치료를해준다. 그림 19 VBS.Sasan.a Trojan 치료방법 2) 변조된레지스트리값복원하기앞서동적분석과초기분석에서확인한바와같이여러레지스트리값을변조한다. Anti-virus 프로그램에서변조된레지스트리값을복원해주는경우도있지만, 그렇지않은경우에는직접복원을해주어야한다. 특히, 재부팅했을때시작프로그램으로등록되어있기때문에 감염증상 에서보았던경고창이생기게되는것이다. 1 윈도우키 + R을눌러 regedit를입력하여실행한다. 2 HKEY_LOCAL_MACHINE\Software\micirosoft\windows\currunt vision\run 에들어가 MSDLL32와 Winboot을삭제한다. 3 HKEY_CURRENT_ USER\Software\ Microsoft\ Internet Explorer\Main에 - 13 -
들어가 Windows title 을삭제한다. 4 HKEY_CURRENT_ USER\Software\windows\currunt vision\polices\explor er에들어가 Nodrive TypeAutoRun을 0x00000091로변경해준다. 그림 20 정상레지스트리값 ( 위 ) 과변조된레지스트리값 ( 아래 ) 그림 21 정상레지스트리값 ( 위 ) 과변조된레지스트리값 ( 아래 ) 그림 22 정상레지스트리값 ( 위 ) 과변조된레지스트리값 ( 아래 ) - 14 -
5. 결론가. 예방대책 USB Malicious Program을예방하기위해서는먼저신뢰되지않은웹사이트의접속을삼가고, 불필요한 ActiveX나프로그램을다운로드하지않는다. 또, 공용으로사용하는 PC에이동식저장매체를사용하는것을자제하는것이다. 부득이하게사용하였을경우에는자신의 PC에서이동식저장매체를연결하였을때, 자동실행을하지말아야한다. 이번분석을통해서대부분의 USB Malicious Program은자동실행을통해서감염되는것을알수있었다. 따라서자동실행기능을사용하지않으면대부분의 USB Malicious Program의실행을억제할수있다. 자동실행기능은 시작 제어판 관리도구 서비스 Shell Hardware Detection 의서비스를 사용안함 으로설정해주면되는데, 이방법이 USB Malicious Program 을예방하는가장좋은방법이라할수있겠다. [ 그림 23] 그림 23 USB Malicious Program 최선의예방책 나. 결론이글을통하여 USB Malicious Program 중의하나인 Sasan을분석하고치료하는방법에대해연구해보았다. 그결과, USB Malicious Program 에감염되면치료하는것이까다롭다는점과상당히귀찮아진다는점이다. 따라서무엇보다예방을하는것이가장중요하다. 마지막으로이동식저장매체의편리함을악용하는 Malicious Program과편의를위해만들어진자동실행기능이악의적인목적으로사용되는것에씁쓸함을느끼며, 이동식저장매체의수요에맞게이동식저장매체보안에대한연구가필요하다고생각된다. - 15 -
6. 참고문헌 [1] 2005 미래유망사업화아이템이슈분석차세대메모리 ( 김기일외 2명저 ) - 한국과학기술정보연구원 [2] 플래시메모리기반저장장치의설계기법 ( 임근수외 1명저 ) - 서울대학교컴퓨터공학부 [3] 침해사고대응교육 (2009.08 대학정보보호동아리교육 ) - KISA, KUCIS [4] 악성코드분석 ( 김슬예나 ) - @Xpert [5] 안철수연구소 - http://home.ahnlab.com/ [6] Virus Myths의악성코드이야기 - http://blog.daum.net/virusmyths/ [7] 위키백과 - http://ko.wikipedia.org/ - 16 -