逃避沙箱並濫用WMI:新型勒索軟體PyLocky分析
概述
儘管目前,勒索軟體的勢頭已經得到控制,但它仍然是網路犯罪的重要組成部分。事實上,在2018上半年,勒索軟體的活躍度有所增加,這些勒索軟體通過調整策略躲避安全軟體的監測,或是整合已經存在的一系列勒索軟體的特性來使自身變得更加“強大”。勒索軟體PyLocky(由趨勢科技檢測為RANSOM_PYLOCKY.A)就屬於後者,本文將主要對此惡意軟體進行分析。
在2018年7月下旬和8月之間,我們監測到有大量惡意郵件中附帶了PyLock勒索軟體。儘管在勒索提示中,該惡意軟體自稱是另一款勒索軟體Locky,但實際上它與Locky無關。PyLocky是使用流行的指令碼語言Python編寫而成的,並且使用PyInstaller進行打包,PyInstaller是一個將基於Python語言的程式打包成獨立可執行檔案的工具。
用Python語言編寫的勒索軟體並不新鮮,我們在2016年已經見到過CryPy(RANSOM_CRYPY.A),2017年見到過Pyl33t(RANSOM_CRYPPYT.A),但與這兩個勒索軟體不同,PyLocky具有反機器學習的特性,這一點非常值得關注。通過結合使用Inno Setup Installer(一個基於開源指令碼的安裝程式)和PyInstaller,這一勒索軟體對我們常規的靜態分析方法提出了挑戰,包括基於機器學習的靜態分析方法。而這種方式,我們此前在Cerber do的變種中曾經見到過。
PyLocky的目標似乎非常集中,主要針對幾個歐洲國家,特別是法國。儘管垃圾郵件的傳送量比較小,但可以看出其數量和範圍有增加的趨勢。
8月2日(左)與8月24日(右)與PyLocky相關的郵件分佈:
PyLocky的勒索提示,假裝成Locky勒索軟體:
感染鏈
8月2日,我們監測到該勒索軟體通過郵件方式被分發給位於法國的一些企業,郵件以“發票”為標題,引誘企業員工單擊郵件中的連結,這一連結會重定向到PyLocky的惡意URL。
帶有主題的惡意郵件,標題為法語“Nous avons reçu votre paiement”,譯為“我們已收到您的付款”。
惡意URL會下載一個ZIP檔案(Facture_23100.31.07.2018.zip),其中包含經過簽名的可執行檔案(Facture_23100.31.07.2018.exe)。在檔案成功執行後,Facture_23100.31.07.2018.exe將會投放惡意軟體元件(幾個C++和Python庫,以及Python 2.7核心動態連結庫)以及勒索軟體可執行檔案(lockyfud.exe,通過PyInstaller建立),上述檔案放置於目錄C:Users{user}AppDataLocalTempis-{random}.tmp下。
ZIP檔案的簽名信息:
PyLocky的簽名信息:
PyLocky將會對影象、視訊、文件、音訊、遊戲、資料庫和壓縮檔案進行加密,其加密的檔案型別列表如下:
.dat、.keychain、.sdf、.vcf、.jpg、.png、.tiff、.gif、.jpeg、.jif、.jp2、.jpx、.j2k、.j2c、.fpx、.pcd、.bmp、.svg、.3dm、.3ds、.max、.obj、.dds、.psd、.tga、.thm、.tif、.yuv、.ai、.eps、.ps、.svg、.indd、.pct、.mp4、.avi、.mkv、.3g2、.3gp、.asf、.flv、.m4v、.mov、.mpg、.rm、.srt、.swf、.vob、.wmv、.doc、.docx、.txt、.pdf、.log、.msg、.odt、.pages.、.rtf、.tex、.wpd、.wps、.csv、.ged、.key、.pps、.ppt.、.pptx、.xml、.json、.xlsx、.xlsm、.xlsb、.xls、.mht、.mhtml、.htm、.html、.xltx、.prn、.dif、.slk、.xlam、.xla、.ods、.docm、.dotx、.dotm、.xps、.ics、.mp3.、.aif、.iff、.m3u、.m4a、.mid、.mpa、.wav、.wma、.msi、.php、.apk、.app、.bat、.cgi、.com、.asp、.aspx、.cer、.cfm、.css、.js、.jsp、.rss、.xhtml、.c、.class、.cpp、.cs、.h、.java、.lua、.pl、.py、.sh、.sln、.swift、.vb、.vcxproj、.dem、.gam、.nes、.rom、.sav、.tgz、.zip、.rar、.tar、.7z、.cbr、.deb、.gz、.pkg、.rpm、.zipx、.iso、.ged、.accdb、.db、.dbf、.mdb、.sql、.fnt、.fon、.otf、.ttf、.cfg、.ini、.prf、.bak、.old、.tmp、.torrent
PyLocky的程式碼片段,勒索軟體對系統屬性進行查詢,並使用sleep語句逃避傳統沙箱檢測方法:
加密例程
在PyLocky中,以硬編碼的形式儲存副檔名列表。除此之外,PyLocky還會濫用Windows Management Instrumentation(WMI)來檢查受影響系統的屬性。如果該系統的總記憶體大小小於4GB,那麼PyLocky的防沙箱功能將會啟動,勒索軟體將會休眠999999秒(11.5天)。如果記憶體大於或等於4GB,那麼檔案加密例程就會執行。
在加密後,PyLocky將與其命令和控制伺服器(C&C)建立通訊。PyLocky使用PyCrypto庫實現其加密例程,使用3DES(三重DES)加密方式。PyLocky首先遍歷每個邏輯驅動器,在呼叫“efile”方法之前生成檔案列表,該方法以加密後的檔案覆蓋所有原始檔案,然後投放勒索提示資訊。
PyLocky的勒索提示資訊使用英語、法語、韓語和義大利語,這可能表明該勒索軟體可能也針對以韓語和義大利語為常用語言的使用者。該勒索軟體通過POST的方式,將被感染的系統資訊傳送到C&C伺服器。
PyLocky C&C通訊的程式碼片段:
加密例程的程式碼片段:
PyLocky以不同語言寫成的勒索提示:
緩解方法
PyLocky使用了沙盒分析逃避技術,並且濫用了提供給管理員使用的合法工具,這兩點進一步證明了深度防禦的重要性。機器學習無疑是一個有效的檢測惡意軟體的方式,但它並不是靈丹妙藥。在如今,攻擊者可以使用不同的攻擊向量。正因如此,採用多維度的安全防護方法就顯得尤為重要。除此之外,還有我們老生常談的安全實踐方案:定期備份檔案、保證系統及時更新、確保系統元件的安全、增強網路安全意識。
IoC
RANSOM_PYLOCKY.A的SHA-256
c9c91b11059bd9ac3a0ad169deb513cef38b3d07213a5f916c3698bb4f407ffa
1569f6fd28c666241902a19b205ee8223d47cccdd08c92fc35e867c487ebc999
相關雜湊值
e172e4fa621845080893d72ecd0735f9a425a0c7775c7bc95c094ddf73d1f844 (Facture23100.31.07.2018.zip)
2a244721ff221172edb788715d11008f0ab50ad946592f355ba16ce97a23e055 (Facture_23100.31.07.2018.exe)
87aadc95a8c9740f14b401bd6d7cc5ce2e2b9beec750f32d1d9c858bc101dffa (facture_31254872_18.08.23{numbers}.exe)
相關惡意URL
hxxps://centredentairenantes[.]fr (C&C server)
hxxps://panicpc[.]fr/client[.]php?fac=676171&u=0000EFC90103
hxxps://savigneuxcom[.]securesitefr[.]com/client.php?fac=001838274191030
致謝
感謝Mary Yambao、Kerr Ang和Alvin Nieto此前的研究成果。