Forensic Analysis 침해사고대응분석 Yuri s PC 침해사고분석보고서 11/13/2015 By Kali KM
2 Forensic Analysis 목차 1 분석결과요약... 4 1.1 의뢰내용요약... 4 1.2 해당 PC 악성코드감염사항... 4 2 증거수집및분석도구... 5 2.1 증거수집도구... 5 2.2 분석도구... 6 3 증거수집... 6 3.1 증거물대상과수집 PC 환경... 7 3.2 증거메모리수집 : 2015-11-12 19:45:27... 8 3.3 증거레지스트리수집 : 2015-11-12 20:12:03... 8 3.4 증거 PC 의 $MFT 수집 : 2015-11-12 20:18:34... 9 3.5 의뢰자에게별도로받은의심파일 : 2015-11-13 03:41:50... 9 4 상세분석내용... 9 4.1 MFT 분석을통한시간대확인... 9 4.2 해당프로그램침입경로확인... 10 4.3 기타침해입증자료... 12 4.4 해당프로세스의악성코드여부확인... 13 5 대응방안... 15 6 별첨목록... 16 페이지 2 / 16
3 Forensic Analysis 그림 그림 1. 악성코드행위타임라인... 4 그림 2. 증거수집과이송절차... 7 그림 3. MFT 분석... 10 그림 4. USB 연결흔적확인... 10 그림 5. VID_058F&PID_6366 LastWriteTime... 11 그림 6. 지속성유지를위한레지스트리추가... 12 그림 7. Economices.exe 실행시간... 12 그림 8. PEiD 의출력결과... 13 그림 9. 해당파일의리소스섹션... 14 그림 10. Python Code 복구과정... 14 표 표 1. 증거수집도구... 5 표 2. 증거분석도구... 6 표 3. 증거수집대상... 7 표 4. 증거수집대상 PC 환경... 8 표 5. 수집된레지스트리관련자료... 8 표 6. MFT 파일크기와해시값... 9 표 7. Economices.exe 의크기와해시값... 9 표 8. 악성코드유입에사용된 USB 의정보... 11 표 9. 증거대상... 12 표 10. Netstat 을통해본연결상태... 13 페이지 3 / 16
4 Forensic Analysis 1 분석결과요약 증거물분석결과를간략히요약한페이지입니다. 의뢰내용요약, 의뢰내용과기타 범행입증자료에대한결과를제공합니다. 1.1 의뢰내용요약의뢰내용은의뢰자 ( 피해자 ) 가사건현장에서잠시자리를비우고, 복귀후해당 PC 에이상프로세스 (Economices) 가동작중임을의뢰자가인지하였으며이에따라해당프로세스가어디서유입이되었는지, 어떠한기능을하며, 추가적인 2 차피해가발생할수있을경우대응방안에대하여조사를의뢰하였습니다. 자세한내용은아래와같이 2 개로나뉩니다. - 실행된프로세스 (Economices.exe) 의악성코드여부 - 2 차피해발생가능성여부와대응방안 1.2 해당 PC 악성코드감염사항의뢰자의 PC 에대하여해당악성코드와관련하여분석결과를시간순으로나타내면아래와같습니다. 그림 1. 악성코드행위타임라인 피의자는피해자가자리를비운사이 2015-11-12 19:39:30 에피해자의 PC 에 자신의 USB 로연결을하였습니다. 페이지 4 / 16
5 Forensic Analysis 연결후 eco 라는폴더를생성하였으며, 해당디렉터리에 Economices.exe 를 저장하고실행하였으며, 이는피해자의키이벤트내용을피의자의 PC 로 전송하는개인정보침해를유발하는프로그램입니다.. 실행후피의자는피해자의 PC 레지스트리에등록을하여지속적으로 피해자의정보를얻으려하였다는것을알수있습니다. 이후피의자는 2015-11-12 19:41:57 에 USB 연결을해제하였습니다. 2 증거수집및분석도구 증거수집과분석에사용된도구들의이름과버전, 그리고각각사용된용도에따라 정리를한페이지입니다. 2.1 증거수집도구 증거수집에사용된도구들에대하여정리하였으며이러한도구에대한내용은 아래의 [ 표 1] 와같습니다. 수집 버전 제조사 다운로드 용도 도구 DumpIt v1.3.2.2011 0401 MoonSol s http://www.moonsols.com/2011/07/18/mo onsols-dumpit-goes-mainstream/ 메모리수집 REGA 1.5.0.4 4&6Tech http://forensic.korea.ac.kr/tools/rega.html 레지스트리수집 WinHex 18.2.0.0 X-Ways http://www.x-ways.net/winhex/ MFT 수집 FTK Imager 3.3.0.5 AccessDa ta http://accessdata.com/product-download MFT 수집 표 1. 증거수집도구 페이지 5 / 16
6 Forensic Analysis 2.2 분석도구 분석단계에서사용한도구는아래 [ 표 -2] 와같습니다. 도구명 버전 다운로드 용도 REGA 1.5.0.4 http://forensic.korea.ac.kr/tools/rega.html Registry 분석 NTFS Log Tracker 1.4 https://code.google.com/p/ntfs-logtracker/ MFT 분석 Volatility 2.3.1 https://code.google.com/p/volatility/ 메모리분석 Rekall 1.4.1 https://github.com/google/rekall 메모리분석 Event Viewer 10.0.1 0240.1 MicroSoft Windows 이벤트로그분석 6384 PEiD 0.95 https://tuts4you.com/download.php?view.3 PE 구조분석 98 PE View 1.10 http://sourceforge.net/projects/peview/ PE 구조분석 HxD 1.7.7.0 http://mh-nexus.de/en/hxd/ 바이너리분석 Unpy2exe. https://github.com/matiasb/unpy2exe Python Code 복구 Uncompyle2. https://github.com/mysterie/uncompyle2 Python Code 복구 표 2. 증거분석도구 분석단계에있어서 Volatility 와 Rekall 을통하여수집한메모리를분석하려했으나, 수집단계나이송에문제가있었는지해당 YURI-PC-20151112-110112.raw 정상적으로 인식되지않아수집한메모리를통한분석은하지못하였습니다. 3 증거수집 본증거물은의뢰자 PC 로부터 2015-11-12 19:44:12 부터조사자의 USB 를연결하여수집을시작하였으며, 해당의뢰자의동참하에진행되었습니다. 그리고각분석의진행을시간순으로정렬한내용은아래와같습니다. 페이지 6 / 16
7 Forensic Analysis 그림 2. 증거수집과이송절차 증거물수집과정에있어고려해야할사항은다음과같습니다. 의뢰자의인터뷰 - 전체적인이미징은거부함에따라선별적인증거수집 - 압수수색이아니기에의뢰자가동의한사항에서만증거수집 증거수집에있어의뢰자가동참하였으며해당의뢰자의요청으로인하여지정된수준까지만수집이가능 의뢰자는증거수집이끝난후본인의작업 (LoL) 을해야함에따른시간상의제약이존재 * 증거수집에있어해당 PC 의메모리수집이올바르게되지않았기에해당프로그램에대하여추가적인분석을위하여의뢰자에게해당 PC 의 Economices.exe 를전송해줄것을요청하였고 15-11-13 03:41:50 해당파일을수신하였습니다. 3.1 증거물대상과수집 PC 환경수집대상에대하여충분한설명을의뢰자에게하였으며이에따른동의가있고증거수집을하였기에선별적인증거수집이이루어졌으며, 의뢰자가수집에동의한사항은아래의표와같습니다. 표 3. 증거수집대상 메모리 이벤트로그 증거수집대상 레지스트리 $MFT 페이지 7 / 16
8 Forensic Analysis 분석대상컴퓨터환경에대한기본정보는아래의표와같습니다. 대상 PC 환경 운영체제 Windows7 Ultimate K 서비스팩 Service Pack 1 프로세서 Intel Core i5-4570 CPU @ 3.20 GHz 메모리 8.00GB 시스템종류 64 비트운영체제 표 4. 증거수집대상 PC 환경 3.2 증거메모리수집 : 2015-11-12 19:45:27 메모리수집에있어 DumpIt 을통하여디스크의변질을최소화하기위하여조사자의외부 USB 로메모리수집을진행하였으며 YURI-PC-20151112-110112.raw 로저장이되었습니다. DumpIt - 19:45:27 Address space size : 9110028288 Bytes ( 8688 Mb ) Free space size : 14673256448 Bytes ( 13993 Mb) Destination: \??\G:\Ghost\Tool\forensic_tool\DumpIt\YURI-PC-20151112-110112.raw SHA-1 : 86d99e1e756c90d34f5f27253d986b98a2974955 3.3 증거레지스트리수집 : 2015-11-12 20:12:03 REGA 를통한레지스트리수집을하였으며수집된레지스트리파일은아래의 [ 표- 5] 와같으며, 이렇게수집된레지스트리에대한해시와시간은 [ 별첨-1] 을통하여확인할수있습니다. 수집된레지스트리관련자료 Amcache.hve COMPONENTS DEFAULT Default User.NTUSER.DAT Default.NTUSER.DAT SAM SECURITY SOFTWARE SYSTEM YuRi.NTUSER.DAT YuRi.USRCLASS.DAT Setupapi.app.log 표 5. 수집된레지스트리관련자료 페이지 8 / 16
9 Forensic Analysis 3.4 증거 PC 의 $MFT 수집 : 2015-11-12 20:18:34 FTK Imager 와 WinHex 를통하여 $MFT 와 $LogFile, $J 파일을수집하였으며, 이 파일에대한해시값은아래와같습니다. File Size SHA-1 Hash $J 1.58GB 8a8f8d00d8ad417d60cfece9ba835c341d728f4a $LogFile 64.0MB 38101525002df66985afca4e5c0cbb8b973f96f8 $MFT 295MB dfbe0ec0bbcf3ec9fdfacf44516429dd0ab34d39 표 6. MFT 파일크기와해시값 3.5 의뢰자에게별도로받은의심파일 : 2015-11-13 03:41:50 해당의심파일이의뢰자에 PC 에남아있음을인지하였으며이에대해의뢰자에게송신해줄것을요청하였으며, 이러한요청에의해 2015-11-13 03:41:50 에해당파일을송신하였습니다. 파일에대한내용은아래의표와같습니다. Economices.exe Size 8.85 MB SHA-1 BC6D28E10CAA9508175F25F97A549C1C02F28067 표 7. Economices.exe 의크기와해시값 해시값을통하여전송한파일과수신한파일간에무결성이유지되었음을확인할 수가있었습니다. 4 상세분석내용 상세분석내용을제공하는페이지입니다. 의뢰자의 PC 에서수집한증거를분석실로이송후조사자의분석환경에해당증거들을옮긴후분석을진행하였습니다. 4.1 MFT 분석을통한시간대확인의심되는프로세스 (Economices.exe) 에대한타임스탬프를확인할것이며. 사건현장은상대적으로의뢰자의지인이많이찾아오는장소로동시간대에의뢰자가잠시자리를부재한사이 (19:35:00-19:43:00) 에발생한것임을고려하여야합니다. 페이지 9 / 16
10 Forensic Analysis 이를토대로근처시간대를확인할것이며해당시간대에의심되는파일이 생성되거나실행되었는지를확인하기위하여 MFT 를분석해보았습니다. 그림 3. MFT 분석 위의그림과같이해당프로그램은 \Documents\ 카카오톡받은파일 에 eco 폴더를 생성후 (19:40:12) 해당경로에저장 (19:40:14) 이되었다는것을확인할수가있습니다. 이에대한 csv 파일은 [ 별첨 -3] 과 [ 별첨 -4] 에서확인할수있습니다. 이를통해의뢰자가자리를비우고약 5 분이지난후제 3 자에의해해당파일이 생성되었음을알수가있습니다. 4.2 해당프로그램침입경로확인 위의 MFT 분석을통해시간대를축소할수가있었으며, 이러한시간에이루어진 레지스트리변경사항에대하여분석해보았습니다. 그림 4. USB 연결흔적확인 페이지 10 / 16
11 Forensic Analysis 그림-4 과같이해당시간 (19:39:30) 에 USB 와연결한흔적들을확인할수가있었으며이를통해해당프로그램이 USB 를통하여복사되었음을예상할수가있습니다. 하지만여기서최초장비연결시더많은레지스트리의값이변화하는데몇개의값만이변화되었기에해당 USB 는이번이최초연결이아님을알수가있습니다. 이는그림 -5 를보면알수있듯이해당필드의한칸상위인 VID_058F&PID_6366 의 값은마지막으로쓰여진값이 2015-10-04 03:11:47 인것을통해해당일자에최초로 PC 에연결이되었으며이번이최초연결이아님을알수가있습니다. 그림 5. VID_058F&PID_6366 LastWriteTime 이를통해해당프로그램 Economices.exe 를설치한피의자는의뢰자의지인임을 예상할수가있었으며, 여기에사용된 USB 의정보는아래의표와같습니다. VID 058F PID 6366 Serial 058F6366438 Volume GID b8017014-5631-11e5-ac07-d0509901c143 Manufacturer Multiple Product Model Card Reader Product Revision 1.00 Device Vendor Generic Device Name Mass Storage Device Device Revision 0100 표 8. 악성코드유입에사용된 USB 의정보 페이지 11 / 16
12 Forensic Analysis 해당 USB 에대한사용흔적은수집한대상 PC 의 DriverFrameworks-UserMode 이벤트로그에도기록되었는데, 이에대해표-8 을보면 19:39:32 에연결하였다는항목을보아위그림-4 과그림-5 에서의내용에신빙성을더해주며, 해당 USB 의연결해제가 19:41:57 에이루어졌다는것또한확인을할수가있습니다. 자세한사항은 [ 별첨-5] 를통해확인할수있습니다. 표 9. 증거대상 4.3 기타침해입증자료아래의그림과같이해당파일의경로와해당 Economices.exe 가레지스트리에추가된것 (19:41:33) 을확인할수가있으며이는 USB 를연결해제 (19:41:57) 하기전에등록된것임을알수가있으며, 값이추가되었다는것은컴퓨터를종료후다시실행할때마다해당프로그램이자동실행되는것을의미하며이는악성코드가지속성을유지하고자할때주로쓰는방법입니다. 그림 6. 지속성유지를위한레지스트리추가 그림 -7 과같이해당프로그램은 19:40:47 에실행이된것임을확인할수가있습니다. 그림 7. Economices.exe 실행시간 페이지 12 / 16
13 Forensic Analysis 대상 PC 의증거를수집하며네트워크연결상태도확인을해보았으며이에대한 사진은 [ 별첨 -6] 을통해볼수있고, 이를토대로중요한사항인 3226(Economices.exe) 은 현재같은 IP 영역대인 192.168.0.5 와네트워킹을하고있었음을알수가있습니다. Protocol Local Address Foreign Address State PID TCP 192.168.0.3:51010 192.168.0.5:7222 ESTABLISHED 3226 표 10. Netstat 을통해본연결상태 이를통하여해당프로그램은같은 IP 에있는의뢰자의친구김 00 씨의 PC 가 연결된주소로, 2 대의 PC 가네트워킹을하고있음을알수가있으며이러한악성코드의 기능은아래에서설명하겠습니다. 4.4 해당프로세스의악성코드여부확인 Economices.exe 에대한상세한분석을진행하는페이지입니다. 해당파일에대한 PE 구조를분석하고그에맞게분석을진행하였습니다. 그림 8. PEiD 의출력결과 위의그림과같이 PEiD 를통하여보았을때는별로알수있는유용한내용이없었으며추가적으로 PE 구조를더살펴본결과.rsrc 섹션에아래의그림과같이 PYTHON27.DLL 이라는문자열과 exe 의 MZ 헤더와 PE 시그니처등이존재하는것을확인할수가있으며, 이러한구조는주로 Python 으로된코드를 py2exe 를통하여컴파일했을경우주로나타나는구조임을알수가있습니다. 페이지 13 / 16
14 Forensic Analysis 그림 9. 해당파일의리소스섹션 이를통하여 Py2exe 된파일을다시코드로볼수있도록제작하는작업이필요하며 사용된도구는 [ 표 -2] 에기재된바와같이 2 개의 Python Code 를통하여진행하였습니다. 해당과정은아래와같습니다. 그림 10. Python Code 복구과정. 이러한과정을통하여복구된파이썬코드는 [ 별첨-7] 와같으며이를통해파이썬의기능에대하여알아보았습니다. 주요기능은아래와같습니다. Pyhook 을통해키로깅의기능을구현하였습니다. 의뢰인의지인이였던김 00 군 PC 의 IP 주소인 192.168.0.5 가나타나있습니다. 위두가지사실을종합해보았을때해당프로그램은키로깅의기능이있으며하나의 클라이언트로동작하는것을확인할수가있었습니다. 이를통해의뢰인 (192.168.0.3) 은 페이지 14 / 16
15 Forensic Analysis 김 00 군 (192.168.0.5) 에키이벤트를전송하므로개인정보유출의위험이많다는것을 알수가있습니다. 따라서의뢰자는키로깅기능이있는악성코드에침해당하였다고할수있으며, 이러한피의자로김 00 군이유력하다는것을알수있습니다. 5 대응방안 위의분석을토대로 2 차피해발생에대응하기위한방안은다음과같습니다. 실행중인악성코드의경우해당프로세스를종료하여추가적인피해를 방지해야합니다. 현재피해자의 PC 에악성코드가지속성을유지하고있기때문에해당 레지스트리의값을제거하여 2 차적인피해를방지합니다. 피의자가피해자의관계상해당프로세스를다시설치할수가있기에 피해자의 PC 에접근을하지못하게하는등제약이필요합니다. 페이지 15 / 16
16 Forensic Analysis 6 별첨목록 [ 별첨 ] 에서는위에서요약해서보여지거나자세한설명이필요한부분에대하여 추가적으로설명을하는페이지입니다. [ 별첨 -1 ] RegEx.log: REGA 를수집하는데있어해당해시값확인과시간대가기록된로그파일 [ 별첨 -2 ] dumpit_memory.jpg: DumpIt 을통한메모리수집을하는화면을조사자의휴대전화를이용해촬영 [ 별첨 -3 ] LogFile.csv : NTFS Log Tracker 를통해추출한 LogFile 에대해정리된파일 [ 별첨 -4 ] UsnJrnl.csv : NTFS Log Tracker 를통해추출한 UsnJrnl 에대해정리된파일 [ 별첨 -5 ] DriverFrameWorks-UserMode.evnt : USB 의연결시간과해제시간에대해서로깅된파일 [ 별첨 -6 ] netstat.jpg : 분석 PC 의증거를수집함에있어네트워크연결상태와해당하는 PID 를촬영 [ 별첨 -7 ] Remote_Client.py : 해당프로세스에서복구한파이썬코드 구현됨에있어 Economices.py 가아닌 Remote_Client.py 로구현하였기에해당이름으로복호화가되었습니다. [ 별첨 -8 ] Economices.exe : 해당악성코드의심프로그램입니다. 페이지 16 / 16