劉詢
在信息安全領(lǐng)域中,無文件攻擊屬于一種影響力非常大的安全威脅。攻擊者利用這種技術(shù)實施攻擊時,不會在目標主機的磁盤上寫入任何的惡意文件,因此而得名“無文件攻擊”。然而,為了更好地應(yīng)對“無文件攻擊”,必須深刻理解這種攻擊方式的底層實現(xiàn)技術(shù),才能幫助我們在特定的環(huán)境下部署更好的防御策略。
雖然有的網(wǎng)絡(luò)系統(tǒng)部署了類似反病毒產(chǎn)品和應(yīng)用程序白名單之類的安全控制措施,但是無文件攻擊仍然可以結(jié)合多種其他的攻擊策略來入侵網(wǎng)絡(luò)。接下來,分析無文件攻擊所采用的攻擊方法及策略,對無文件攻擊所涉及的特定技術(shù)進行介紹,并解釋為什么這種攻擊方式在大多數(shù)情況下不會被安全防御系統(tǒng)發(fā)現(xiàn)。
技術(shù)一:惡意文檔
很多安全研究專家所稱的無文件攻擊實際上會涉及到文檔。在這種場景下,攻擊者需要使用惡意文檔(例如電子郵件附件),目的有以下幾種:
文檔作為攜帶其他文件的容器,靈活性更好。例如,攻擊者在Microsoft Office文檔中嵌入惡意JavaScript文件,喜歡社工技術(shù)的攻擊者誘導(dǎo)目標用戶雙擊文件后執(zhí)行嵌入的腳本等。其他類型的文檔攜帶PDF和RTF等類型的文件,這種功能屬于應(yīng)用程序的一種特性,所以反病毒技術(shù)一般不會干擾其使用。
文檔攜帶漏洞利用代碼或Payload。如今,文檔的復(fù)雜度越來越高,因此提供的攻擊面也越來越廣。在這種場景下,漏洞利用代碼可以直接在目標設(shè)備的內(nèi)存中運行綁定的Shellcode,并給攻擊者提供文件系統(tǒng)的完整讀寫權(quán)限。
文檔執(zhí)行惡意攻擊流程并實現(xiàn)初始感染?,F(xiàn)代文檔提供了強大的腳本功能支持,比如說Microsoft Office能夠執(zhí)行VBA宏文件,這種功能將允許攻擊者在不需要編譯惡意可執(zhí)行程序的情況下在目標主機上實現(xiàn)惡意邏輯,而這種技術(shù)利用的就是反病毒工具無法區(qū)分腳本代碼惡意性的缺陷。除此之外,腳本還可以啟動程序或下載惡意代碼。
只要攻擊者制作的文檔存儲在了目標系統(tǒng)中,攻擊者就不需要再通過傳統(tǒng)方式(例如:在目標主機中運行惡意可執(zhí)行文件等)來進行攻擊了。在很多情況下,惡意文檔可以直接在內(nèi)存中執(zhí)行惡意代碼,從某種角度來看,這也算是一種無文件攻擊了。
技術(shù)二:惡意腳本
為了不將惡意代碼編譯成傳統(tǒng)的可執(zhí)行文件,攻擊者會在攻擊過程中使用具有“無文件”性質(zhì)的“腳本文件”。除了文檔支持腳本之外,像上面提到的Microsoft Office產(chǎn)品同樣支持腳本功能,這給攻擊者提供了以下幾個優(yōu)勢:
他們可以在不受某些應(yīng)用程序限制的情況下與操作系統(tǒng)進行交互;
和惡意可執(zhí)行程序相比,腳本可以增強反惡意軟件產(chǎn)品檢測和控制的難度;
腳本可以更加方便攻擊者將攻擊邏輯分散到多個攻擊步驟中實現(xiàn),以躲避某些基于行為分析的安全檢測機制。
可以通過代碼混淆來增加安全分析的難度,并繞過反病毒技術(shù)。
Microsoft Windows提供了針對PowerShell,VBScript,Batch,JavaScript等腳本的支持,這些腳本可以直接在powershell.exe,cscript.exe,cmd.exe和mshta.exe中運行。此外,攻擊者還可以使用開源框架對腳本代碼進行混淆處理。
技術(shù)三:無需任何依賴組件
談到無文件攻擊,或多或少都會涉及到濫用Microsoft Windows實用工具的情況。這些工具允許攻擊者在不需要編譯惡意可執(zhí)行文件的情況下實現(xiàn)攻擊步驟的推進。
只要攻擊者的惡意代碼能夠與目標主機的本地程序交互,就可以利用操作系統(tǒng)的內(nèi)置工具來下載額外的惡意組件,啟動腳本、竊取數(shù)據(jù)、實現(xiàn)橫向滲透以及實現(xiàn)持續(xù)感染。這些工具包括但不僅限于regsvr32.exe,rundll32.exe,certutil.exe,schtask.exe等。
值得注意的是,在操作系統(tǒng)的內(nèi)置工具中,WMI則是重災(zāi)區(qū),WMI內(nèi)置于操作系統(tǒng)中,允許攻擊者通過wmic.exe并配合PowerShell腳本直接跟終端進行交互。
技術(shù)四:內(nèi)存中的惡意代碼
毫無疑問,掃描磁盤文件肯定是反病毒產(chǎn)品必備的“技能”,但是檢測內(nèi)存中的惡意代碼可就不一定了,因為內(nèi)存是動態(tài)變化的,這也給惡意軟件提供了可乘之機。
內(nèi)存滲透技術(shù)允許攻擊者繞過大多數(shù)反病毒控制策略,包括白名單。雖然反病毒工具會嘗試捕捉內(nèi)存注入行為,但是攻擊者的持續(xù)感染能力仍然會限制反病毒工具的效果。
無文件攻擊的實現(xiàn)得益于某些應(yīng)用程序和操作系統(tǒng)的特性,它利用反惡意軟件工具在檢測和防御方面的缺陷。雖然在現(xiàn)代網(wǎng)絡(luò)攻擊活動中,無文件攻擊只是其中的一種攻擊技術(shù),但很多惡意軟件一般都會引入一些無文件攻擊技術(shù)來嘗試躲避安全產(chǎn)品的檢測。對于攻擊者來說,與其思考某種技術(shù)是否無懈可擊,不如思考怎么樣使用這些技術(shù)才能繞過企業(yè)的防御策略,這樣效率還會更高。