사이트접속만으로감염되는 헤르메스 수산 INT 기술연구소 (CERT) 2018. 04. 10 플래시취약점을악용해사용자시스템을감염시키는헤르메스 2.1을분석한보고서입니다.. 본문서는수산아이앤티 CERT에서작성되었으며연구목적의활용은가능하나, 그외활용으로인해발생하는문제에대한법적책임은당사자에있음을알려드립니다. 문의처 : 기술연구소 CERT 파트 (SungMin.Rue@soosan.co.kr / KimNamGuy@soosan.co.kr / aallss123@soosan.co.kr) c 2018 SOOSAN INT. All Rights Reserved.
목 차 1. 개요... 2 2. 선다운익스플로잇에의한변조형헤르메스... 3 2.1 헤르메스와선다운익스플로잇... 3 2.2 헤르메스공격경로및증상분석... 4 3. 분석사례 ( 헤르메스 2.1)... 6 3.1 분석파일정보... 6 3.2 동적분석...10 4. 대응방안... 15 1
1. 개요 2018년 3월, 랜섬웨어감염사고를접수했습니다. 감염의경로와내용을살펴본결과, 헤르메스 (Hermes) 2.1에감염된것으로확인했습니다. 헤르메스는랜섬웨어일종의악성코드로, 감염시에약 266만원상당의가상화폐를요구합니다. 이번버전인 2.1의경우선다운익스플로잇킷 (Sundown Exploit Kit) 을이용하는특징을보였습니다. 헤르메스 2.1은해당익스플로잇을활용해플래시취약점으로알려진 CVE-2018-4878 1) 을악용해시스템을감염시키는것으로조사되었습니다. 저희 CERT팀은헤르메스 2.1을워너크라이처럼위협적인것으로평가했는데, 이유는웹사이트에만접속해도감염시키는특징이있기때문입니다. 웹사이트의실행엔진중일부는플래시를기반으로동작을하고있습니다. 따라서해커는 CVE-2018-4878의플래시취약점을가진웹사이트에헤르메스 2.1을삽입한후에, 방문자가자동으로헤르메스 2.1에감염되도록유도하였습니다. 이러한점을고려하면, 헤르메스 2.1은워너크라이 2) 수준으로위협적인것으로도평가할수있습니다. 더욱이암호화시키는파일확장자유형수가무려 5,700여개에달하기때문에피해규모는워너크라이보다매우큽니다. 파일의복구를막는행위도관찰됐습니다. 이러한이유로, 저희 CERT 팀은헤르메스 2.1을이번악성코드분석대상으로선정했습니다. 본보고서의구성은다음과같습니다. 2장에서는우선헤르메스이력과선다운익스플로잇킷의특징을다룹니다. 그런다음헤르메스 2.1의공격경로와악성코드위험성을설명합니다. 3장에서는 CERT팀에서실제로분석한헤르메스 2.1을설명합니다. 행위분석위주로설명돼있습니다. 끝으로본보고서를마무리하면서, 수산INT의 CERT 팀이제안하는랜섬웨어 3단계대응체계를제안합니다. 1) CVE (Common Vulnerabilities and Exposures) - 공식적으로알려진취약점. 발행연도와순서를고려해번호를매긴다. 2) 워너크라이 (WannaCry): 2017 년에발생한랜섬웨어로 150 여개국의 30 만여대기기를감염시켰다. 2
2. 선다운익스플로잇에의한변조형헤르메스 헤르메스 2.1은기존랜섬웨어인헤르메스에서선다운익스플로잇이결합된신종공격입니다. 우선헤르메스의기존버전과선다운익스플로잇에대해알아보도록하겠습니다. 이후헤르메스 2.1 공격특성과위험성도살펴보겠습니다. 2.1 헤르메스와선다운익스플로잇 헤르메스는 2017년 10월대만은행 (FEIB) 사이버공격사건에서알려진랜섬웨어공격입니다. 보안전문가들은북한해킹전문집단인라자루스 (Lazarus) 가개입한것으로추정하고있는데, 이번공격으로대만은행은약 720억원의부정거래손실을입었습니다 3 ). 해당금액은캄보디아, 스리랑카, 미국등의계좌로이체되는정황이일부포착되기도했습니다. 여기서헤르메스는부정거래조사를방해하고자활용됐는데, 당시에는랜섬웨어보다시스템파괴용행위를일으키는악성코드에가까웠습니다. 익스플로잇킷은목표대상의취약점을노려서악성코드감염을돕는해킹툴입니다. 주로사이트취약점을노리는익스플로잇킷이많은데, 사이트에악성코드를심어서사이트방문자를노릴때이러한해킹툴을사용합니다. 참고로이러한악성코드배포방식을 드라이브바이다운로드 라고부릅니다. 헤르메스 2.1에사용되는선다운도익스플로잇킷의일종으로선다운의경우플래시취약점을주로노립니다. 해커는선다운익스플로잇킷으로사이트의플래시취약점을악용해악성코드를업로드시킬수있습니다. 이러한랜섬웨어감염방식은헤르메스 2.1 이최초입니다. 2017년 12월에, 랜섬웨어 매트릭스 또한선다운을활용해드라이브바이다운로드방식으로배포되는것이발견됐기때문입니다. 따라서일부전문가는매트릭스와헤르메스 2.1 공격자가같을것으로추정하고있습니다. 3) Bank Info Security (Oct. 9 2017), Report: Malware-Wielding Hackers Hit Taiwanese Bank, https://www.bankinfosecurity.com/report-malware-wielding-hackers-hit-taiwanese-bank-a-10368. 3
2.2 헤르메스공격경로및증상분석 아래그림은헤르메스공격경로및실행내용을도식화한것입니다. [ 그림 2-1] 헤르메스 2.1 공격도식화 해커는선다운익스플로잇을활용해드라이브바이다운로드방식으로헤르메스 2.1에감염되게합니다. 웹사이트의플래시취약점을이용한것으로분석됐는데, 확인결과 CVE-2018-4878 취약점을노렸습니다. CVE-2018-4878 4 ) 에취약점은어도비에서개발한플래시에서발견된것으로 20.0.0.137 이하버전에만있습니다. 따라서해당버전의플래시를사용하고있는사이트는해커에게악용될소지가높으며, 이러한사이트에접속한사용자는헤르메스 2.1에감염이됩니다. 헤르메스 2.1을상세히분석한결과, vssadmin 5) 의쉐도우파일복사본 6) 을삭제하는행위를발견했습니다. 이는랜섬웨어걸렸을때파일복구를하지못하게막는역할을합니다. 이후헤르메스 2.1을암호화대상파일확장자를찾아서 RSA와 AES로파일암호화 4) CVE-2018-4878: 어도비플래시에서원격코드실행으로이어질수있게하는취약점 5) vssadmin (Volume Shadow Copy): 쉐도우파일복사본을모아두는곳 6) 쉐도우파일복사본 (Shadow File Copy): 파일복구를위해자동및수동으로임시로보관되고있는파일 4
를시킵니다. 이로인해사용자는파일을열수없게되고, 해커는복호화대가로일정 금액을요구합니다. 지금까지헤르메스와선다운익스플로잇킷을살펴보았습니다. 아래와같이결론을내렸습니다. 1. 선다운익스플로잇킷은플래시취약점을노리는해킹툴로드라이브바이다운로드방식에주로활용돼, 확산력이크다고볼수있습니다. 2. 헤르메스는랜섬웨어공격으로사용자의가용성측면을위협할수있어, 중요파일을다루는기관에는큰위협이되는공격입니다. 3. 헤르메스 2.1은기존헤르메스와선다운익스플로잇킷을결합한사이버공격캠페인으로서, 워너크라이수준의랜섬웨어공격으로평가했습니다. 5
3. 분석사례 ( 헤르메스 2.1) 수산 INT 의 CERT 는헤르메스 2.1 랜섬웨어를분석했습니다. 분석내용은다음과같습니다. 3.1 분석파일정보 분석파일명은 [ 임의로지정된파일명 ].exe 입니다. 해당파일해시정보는아래와같 습니다. - MD5: a45c1a696cc5e634c12c2a296966ecb7 - SHA-1: 92d2c2c5ae6d5af7e7723ff1c21c136d4f664daf - SHA-256: 63f8eef075d1d96c4730bedf5039de9508b3805fbe7cffdcd08b61ea9ec101ed 표 3-1 은헤르메스 2.1 이사용한 API 를목록으로정리한것입니다. 그리고표 3-2 에서는 헤르메스 2.1 암호화대상확장자를나열한것입니다. 그리고표 3-3 에서는복구하지 못하도록어떠한명령어를실행해방해하는지나열했습니다. [ 표 3-1] 헤르메스 2.1 API 사용목록 Hermes 2.1 API 사용목록 kernel32.dll LoadLibraryA GetModuleFileNameW VirtualFree Wow64DisableWow64FsRedirection FindFirstFileW FindNextFileW GetModuleFileNameA SetFileAttributesA CopyFileW DeleteFileW Wow64RevertWow64FsRedirection ReadFile SetFilePointer CreateFileA VirtualAlloc CloseHandle GetWindowsDirectoryW CreateDirectoryW CreateFileW WriteFile GetFileSize GetVersionExW GetFileAttributesW GetFileAttributesA FindClose WinExec Sleep ExitProcess 6
mpr.dll CreateProcessW GetModuleHandleA CreateProcessA CopyFileA GetCommandLineW FreeLibrary GlobalAlloc WNetOpenEnumW WNetEnumResourceW WNetCloseEnum GetCurrentProcess GetLogicalDrives SetFileAttributesW GetStartupInfoW GetTickCount GetDriveTypeW GetSystemDefaultLangID advapi32.dll CryptEncrypt GetUserNameA CryptDecrypt GetUserNameW ole32.dll Shell32.dll CryptGenKey CryptDestroyKey CryptExportKey CryptImportKey CryptDeriveKey CryptAcquireContextW CoInitialize CoCreateInstance ShellExecuteW ShellExecuteA RegOpenKeyExA RegOpenKeyExW RegQueryValueExA RegCloseKey RegDeleteValueW RegSetValueExW 7
[ 표 3-2] 헤르메스 2.1 암호화대상확장자리스트.tif.php.1cd.7z.cd.1cd.dbf.ai.arw.txt.doc.docm.docx.zip.rar.xlsx.xls.xlsb.xlsm.jpg.jpe.jpeg.bmp.db.eql.s ql.adp.mdf.frm.mdb.odb.odm.odp.ods.dbc.frx.db2.dbs.pds.pdt.pdf.dt.cf.cfu.mxl.epf.kdbx.erf.vrp.grs. geo.st.pff.mft.efd.3dm.3ds.rib.ma.max.lwo.lws.m3d.mb.obj.x.x3d.c4d.fbx.dgn.dwg.4db.4dl.4mp.abs. adn.a3d.aft.ahd.alf.ask.awdb.azz.bdb.bib.bnd.bok.btr.bak.cdb.ckp.clkw.cma.crd.dad.daf.db3.dbk.dbt.dbv.dbx.dcb.dct.dcx.ddl.df1.dmo.dnc.dp1.dqy.dsk.dsn.dta.dtsx.dxl.eco.ecx.edb.emd.fcd.fic.fid.fil.fm 5.fol.fp3.fp4.fp5.fp7.fpt.fzb.fzv.gdb.gwi.hdb.his.ib.idc.ihx.itdb.itw.jtx.kdb.lgc.maq.mdn.mdt.mrg.mud. mwb.s3m.myd.ndf.ns2.ns3.ns4.nsf.nv2.nyf.oce.oqy.ora.orx.$$$.$01.$db.$efs.$er. a. b.{pb.~cw.~h m.0.00.000.001.002.1.101.103.108.110.113.123.123c.123d.123dx.128.1cd.1pe.1ph.1sp.1st.256.264.2 d.2mg.3.32x.3d.3d2.3d4.3da.3dc.3dd.3df.3df8.3dl.3dm.3dmf.3dmk.3don.3dp.3dr.3ds.3dt.3dv.3dw.3 dx.3dxml.3fr.3g2.3ga.3gp.3gp2.3gpp.3gpp2.3me.3mm.3p2.3pe.3pr.3w.4db.4dd.4dl.4dv.4mp.4th.4w 7.555.602.60d.73b.73c.73l.787.7z.7zip.8.890.89t.89y.8ba.8bc.8be.8bf.8bi.8bi8.8bl.8bs.8bx.8by.8ld.8li. 8pbs.8st.8svx.8xg.8xk.8xs.8xt.8xv.9xt.9xy.a.av.a00.a01.a02.a1wish.a26.a2c.a2l.a2m.a2theme.a2w.a3l. a3m.a3w.a4l.a4m.a4p.a4w.a52.a5l.a5rpt.a5w.a5wcmp.a65.a8s.aa.aa3.aac.aaf.aah.aam.aao.aaui.ab.ab 1.ab2.ab3.ab4.ab65.aba.abc.abcd.abdata.abf.abi.abk.abkprj.abp.abs.abt.abw.abx.aby.ac2.ac3.ac5.ac 6.aca.acbl.acc.accda.accdb.accdc.accde.accdr.accdt.accdu.accdw.accft.acd.ace.acf.acg.ach.aco.acp.a cr.acrobatsecuritysettings.acrodata.acroplugin.acrypt.act.actm.actx.acv.acw.acx.ad.ada.adb.adblock. adc.adcp.add.addin.addon.ade.adf.adi.adn.ado.adobebridge.adoc.ados.adox.adp.adpb.adpp.adr.ad s.adt.adu.adv.advs.adx.adz.aea.aec.aep.aepx.aes.aet.aetx.aex.afd.afdesign.afe.aff.afm.afp.afs.aft.agb. agd.agd1.agdl.age3rec.age3sav.age3scn.age3xrec.age3xsav.age3xscn.age3yrec.age3ysav.age3yscn. agg.aggr.agi.agx.ahd.ahf.ahl.ahs.ahu.ai.aia.aif.aifb.aiff.aim.ain.aip.ais.ait.aiu.aiv.ajp.ak.al.al8.ala.alb.alb 3.alb4.alb5.alb6.alc.ald.ale.alf.ali.allet.alm.alp.alr.alt3.alt5.alv.alx.alz.am.am1.am4.am5.am6.am7.amb. amc.amf.aml.amm.amp.amr.ams.amsorm.amt.amu.amv.amx.amxx.an.an1.an2.an8.ane.anim.animset.animset_ingame.anl.anm.anme.ann.ans.ansr.ansym.anx.any.aof.aoi.aois.aom.ap.ap_.apa.apd.ape.ap f.aph.api.apj.apk.apl.aplg.aplp.apnx.apo.app.applet.application.appref Ms.approj.appx.appxsym.appxupload.apr.aps.apt.apw.apxl.apz.aqt.ar.arc.arch00.arcut.ard.arena.arf.a rff.arg.arh.ari.arj.ark.arl.aro.arp.arpack.arr.ars.arsc.artproj.arw.arx.as.as$.as2proj.as3.as3proj.as4.asa.a sat.asax.asc.ascii.ascm.ascs.ascx.asd.asdb.ase.asef.asf.ash.ashbak.ashdisc.ashprj.ashx.asi.ask.asl.asm. asmx.asn.asnd.asp.aspx.asr.asset.asstrm.ast.asv.asvf.asvx.aswcs.asws.asx.asy.atc.ate.atf.ath.ati.atl.atm.atn.atom.atomsvc.atr.ats.att.atw.atx.aty.atz.au3.aut.automaticdestinations.autoplay.aux.av.ava.avb.a vc.avchd.avd.ave.avhd.avi.avj.avn.avp.avs.avv.avx.aw.awcav.awd.awdb.awe.awg.awlive.awm.awp.aws.awt.aww.awwp.ax.axd.axe.axm.axp.axt.axx.azf.azs.azw.azw1.azw3.azw4.azz.azzx.b.b1.b27.b2a.b3d.b 5i.b5t.b64.b6i.b6t.ba.bac.back.backup.backupdb.bad.bafl.bak.bak~.bak2.bak3.bakx.bamboopaper. bank.bar.bas.base.baserproj.basex.bat.bau.bav.bax.bay.bb.bb3.bbb.bbc.bbcd.bbl.bbprojectd.bbs.bb xt.bbz.bc5.bc6.bc7.bcc.bcd.bci.bck.bckp.bcl.bcm.bcmx.bcp.bcs.bct.bdb.bdb2.bdc.bdf.bdic.bdl.bdm. bdmv.bdp.bdr.bdsproj.bdt2.bdt3.bean.bed.bet.bf.bfa.bfg.bfm.bfs.bfx.bgi.bgl.bgt.bgv.bgz.bh.bho.bh x.bi8.bib.bibtex.bic.bif.big.bik.bil.bim.bin.bina.bionix.bip.biq.bit.bitpim.bix.bizdocument.bjl.bjo.bk.b k!.bk1.bk2.bk3.bk4.bk5.bk6.bk7.bk8.bk9.bkc.bkf.bkg.bkk.bkp.bks.bkup.bkz.blb 8
[ 표 3-3] 섀도복사본 (vssadmin) 명령어사용후백업파일삭제 백업파일파괴 CMD 명령어 004054D0 - /for=d: /on=d: storage /for=g: e shadowstorage vssadmin Delete vssadmin resize.dsk 00405526 - del /s /f.wbcat f:\*.bkf \*.bac h:\*.bak \*.set h:\*.win bkf h:\backup*.*ac f:\*.bak f:\*et f:\*.win f:\*:\backup*.* g:\*/q g:\*.vhd g:\*l /s /f /q c:\*.h:\*.wbcat h:\*.. 004055D5 - "ZW: 004055DC - [#8./for=c: /on=c: / shadowstorage /\*.dsk 00405608 - del /s /h:\*.dsk 0040561A - del %0bcat e:\*.bkf e:.bac g:\*.bak g:.set g:\*.win g: h:\backup*.* h:f /q h:\*.vhd h:wstorage /for=h:/on=g: /maxsize=dowstorage /for=: /maxsize=401mbat d:\*.bkf d:\bvhd c:\*.bac c:\*.* c:\*.set c:\del /s /f /q d:\f:\backup*.* f:\\backup*.* e:\baadmin resize shaor=d: /on=d: /masize shadowstorasize=401mb 0040574C - vssa f:\*.vhd f:\*.bge /for=c: /on=c c:\*.bkf c:\bac:\*.vhd e:\*.bac:\*.bak d:\*.wbc*.vhd d:\*.bac dup*.* d:\*.set d e:\*.win e:\*.ddmin resize shadunbounded 004057EB - vssad 004057F2 - del /s /f /q e /all /quiet 0040580E - demaxsize=unboundeze shadowstorageiet 00405835 - vssadmin re 00405841 - vssadmin resize /on=h: /maxsizeshadowstorage /fowstorage /for=ff g:\backup*.* gsadmin resize shbounded 004058A9 - vssadmid 004058B3 - vssadmin resig: /on=g: /maxsi\*.wbcat g:\*.bkackup*.* d:\back:\*.win d:\*.dskfor=e: /on=e: /mze=401mb 0040591A - vssadm=401mb 00405928 - vssadminn=h: /maxsize=unorage /for=h: /omin resize shadohadowstorage /fokup*.* c:\backupsk 00405984 - del /s /f /qadowstorage /forssadmin resize sbackup*.* f:\*.se=unbounded 004059CD - vssaxsize=401mb 004059DE - vsn Delete Shadows=e: /on=e: /maxs*.bak c:\*.wbcatckup*.* e:\*.set resize shadowstshadows /all /quize=unbounded 00405A4F - v e:\*.bak e:\*.win resize shadowr=f: /on=f: /max 00405A82 - vssadmin resiz: /on=f: /maxsiz 9
3.2 행위분석 1. [ 그림 3-1] 과같이 MOV ESI, HerMes.00406218 에서의어셈블리어 MOV 명령어는이동시킨다는의미를포함하고있습니다. ESI의레지스터는복사대상을가리키는역할을하는중앙처리장치의데이터기억장치역할을합니다. 그러므로 00406218 주소를복사한다는의미이고 00406218 주소가가리키고있는내용은공격대상확장자이며, 해당확장자를암호화시킵니다. [ 그림 3-1] 공격대상확장자 [ 그림 3-2] 00406218 주소안의내용 10
2. RSA, AES 알고리즘을사용한흔적도찾을수있었습니다. [ 그림 3-3] RSA/AES 3. CreateFileA 함수를통하여암호화대상파일경로를불러오는것을발견했습니다. 참고로 CreateFileA 함수의역할은파일또는 I/O 을생성하거나여는역할을합니다. [ 그림 3-4] 암호화진행파일경로 11
4. CreateFileA 함수에서의파일을열고난뒤암호화를진행하기위하여 WriteFile 함수를 사용하여파일내부를암호화내용으로변조하기시작합니다 ( 그림 3-5 참조 ). [ 그림 3-5] 암호화진행 12
5. [ 그림 3-6] 은폴더에서.HRM 으로변경되면서점점암호화가진행되는모습을보 여주는그림입니다. [ 그림 3-6] 폴더에서의암호화진행과정 13
6. [ 그림 3-7] 은타겟확장자파일암호화가완료되면바탕화면에 html 파일이생성되는 스크립트이며, 해당웹페이지가자동으로실행되는모습을보여주는이미지입니다. [ 그림 3-7] 암호화진행완료후뜨는페이지 14
4. 대응방안 [ 그림 4-1] 랜섬웨어대응방안 3 단계체제 1. (1단계) 예방 : 백신 / 시스템정기업데이트신규악성코드에대응하기위해서는정기적인백신업데이트는필수입니다. 그리고운영체제를포함한시스템업데이트또한중요합니다. 헤르메스 2.1처럼시스템취약점을노려서감염시키는사이버공격이증가하고있기때문입니다. 2. (2단계) 탐지 : 사내 ewalker/eprism 구축으로랜섬웨어감염사이트탐지헤르메스 2.1은플래시취약점을악용해웹사이트경로로사용자를감염시키는랜섬웨어입니다. 의심스러운사이트방문에주의할필요가있습니다. 그러나일반사용자가이를판별하기란쉽지않습니다. 이러한한계점을 ewalker 제품구매로극복할수있습니다. ewalker는매일 3만개가넘는악성사이트를신규로업데이트하고있어서, 사용자가악성사이트에접속하는것을원천적으로차단합니다. 아울러 eprism 제품군을추가로이용할시에암호화된사이트접속으로인한랜섬웨어공격을차단할수있습니다. eprism 제품의역할은암호화통신을복호화하는것입니다. 따라서 eprism은기존보안솔루션이탐지가어려운암호화통신의악성코드도탐지할수있게복호화해줍니다. 3. (3단계) 대응 : 사내 ered 구축으로중요자산시스템파괴방지 ered는화이트리스트기반으로허용되지않은프로세스실행을원천적으로차단하는보안기술입니다. 그러므로 ered는랜섬웨어와같은악성공격프로세스를원천적으로차단합니다. 더욱이 ered의동작은게스트 OS 하부의하이퍼바이저 OS에동작하기때문에차단행위를노리는악성공격에도대응이가능합니다. 실제로헤르메스 2.1을 ered에적용해봤습니다. 그리고이를원천적으로차단하는것을확인했습니다. 15
2018 년수산 INT 보안연구보고서발간내역 월간악성코드분석보고서 2018-01 호 : 가상화폐채굴악성코드분석 (2018 년 01 월 ) 2018-02 호 : UBoat Rat 분석보고서 (2018 년 02 월 ) 2018-03 호 : 평창올림픽파괴악성코드분석보고서 (2018 년 03 월 ) 2018-04 호 : 웹으로감염시키는악성코드 헤르메스 분석 (2018 년 04 월 ) 16
감사합니다. 서울특별시강남구밤고개로1길 10, 3층 ( 수서동, 현대벤처빌 ) Tel 02.541.0073 Fax 02.541.0204 E-mail QI@soosan.co.kr HP http://www.soosanint.com 17