自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

漫談無文件惡意軟件的發(fā)展歷史

安全
在這篇文章中,主要追溯無文件惡意軟件的最初起源,并以此類惡意軟件的幾個樣本為例,勾勒出這個名詞的演變輪廓。

一、前言

究竟什么是“無文件惡意軟件(fileless malware)”?談到這個名詞時,許多安全行業(yè)的專業(yè)人員都心有余悸,許多文章和產(chǎn)品手冊在介紹無文件惡意軟件時,總會順帶提到我們難以防御和分析這類威脅。我在這篇文章中會試著拋開這些陳詞濫調(diào),追溯無文件惡意軟件的最初起源,并以此類惡意軟件的幾個樣本為例,勾勒出這個名詞的演變輪廓。

[[189941]]

二、這是一個熱門話題

人們在工業(yè)事件、私人會議以及在線討論中經(jīng)常會提到無文件惡意軟件這個話題。原因可能在于這類威脅放大了傳統(tǒng)端點安全技術(shù)的缺點,又給了新型安全技術(shù)展現(xiàn)實力的機會。

事實的確如此,Google趨勢給出的資料表明,人們在2012年到2014年之間對這個名詞鮮有問津,自2015年后人們對它的興趣逐步提升,并在2017年到達了一個峰值。

http://p5.qhimg.com/t012de1109e46af467b.png

這種趨勢與近年來公眾對具備“無文件”能力的惡意軟件的討論不無關(guān)系,特別是在2017年,有大量關(guān)于這個話題的研究成果和出版物噴涌而出。

三、什么是無文件惡意軟件

首先我們得明確一點,那就是“無文件惡意軟件有時候還是會使用文件”?,F(xiàn)如今,大多數(shù)人們在使用無文件惡意軟件這個名詞時,似乎約定俗成地使用了以下這個定義:

“無文件惡意軟件是一種不需要在文件系統(tǒng)中存放惡意可執(zhí)行文件的軟件”。

這個定義對于利用惡意腳本或者文件系統(tǒng)中良性可執(zhí)行文件進行傳播的惡意軟件來說是適用的。對于隱藏在注冊表中惡意軟件來說,這個定義也是正確的,雖然這種情況下注冊表本身還是存儲在Windows文件系統(tǒng)中。這個定義不需要考慮惡意文件的傳播途徑,不論是通過漏洞利用、社會工程學(xué)技巧還是濫用某些正常功能來進行傳播,這個定義都是適用的。

雖然無文件惡意軟件最初指的是那些不使用本地持久化技術(shù)、完全駐留在內(nèi)存中的惡意代碼,但這個術(shù)語的范圍在逐漸擴大,現(xiàn)在也將那些依賴文件系統(tǒng)的某些功能以實現(xiàn)惡意代碼激活和駐留的惡意軟件包括在內(nèi)。讓我們一起回顧一下對這個術(shù)語的演變過程造成影響的那些惡意程序。

四、2001-2003: Code Red以及SQL Slammer

完全駐留在內(nèi)存中的惡意代碼肯定在21世紀前就已經(jīng)存在。然而,直到2001年,Code Red蠕蟲在互聯(lián)網(wǎng)上肆意傳播,才將“無文件惡意軟件”這個名詞帶給普羅大眾。我所能找到的最早與此有關(guān)的公開資料發(fā)布于2001年的夏天,當時卡巴斯基實驗室發(fā)表了一份公告,其中提到:

“我們預(yù)測,在不久的將來,像Code Red之類的‘無文件’蠕蟲將泛濫成災(zāi),無法處理這類威脅的反病毒軟件只能給大眾帶來安全風(fēng)險”。

Code Red蠕蟲使用了微軟IIS web服務(wù)器中的一個漏洞進行傳播,能夠完全駐留在受害主機的內(nèi)存中,詳細的分析可以參考CAIDA的這篇文章。

一年半以后,另一個蠕蟲(SQL Slammer)就像燎原野火一般傳播。SQL Slammer利用的是微軟SQL服務(wù)器中的一個漏洞。Robert Vamosi在2003年為ZDNet撰寫的一篇文章中,將這個蠕蟲歸類為“無文件”類別惡意軟件,指出它“與Code Red類似,僅駐留在內(nèi)存中”。

我也在Peter Szor(彼時正在賽門鐵克工作的一名資深前輩)于2003年提交的一份專利申請中找到了一些資料。專利名為“簽名提取系統(tǒng)及方法”,其中給出了無文件惡意軟件的定義,如下所示:

“無文件惡意軟件指的是不依賴文件、僅存在于內(nèi)存中的惡意代碼……更具體地說,無文件惡意代碼……可以將自身附加到活動進程的內(nèi)存空間中……”。

無文件惡意軟件的原始定義與這個名詞字面上的意思非常接近,指的是能夠在沒有殘留文件的前提下保持活躍的那些惡意軟件。

五、2012:安裝Lurk木馬的僵尸程序

我能找到與無文件惡意軟件有關(guān)的另一份資料,是在Code Red和SQL Slammer蠕蟲誕生的近十年之后。2012年,卡巴斯基實驗室的Sergey Golovanov發(fā)表了一份分析報告,介紹了某個沒有文件落盤行為的僵尸程序(bot),其中提到:

“我們面對的是一個非常罕見的惡意軟件,這種無文件程序不存在于硬盤文件中,僅在受感染計算機的內(nèi)存中活動”。

這個僵尸程序利用了Java客戶端的某個漏洞,僅在受感染的javaw.exe進程的內(nèi)存空間中活動。Sergey提到這個僵尸程序具備安裝Lurk銀行木馬的功能。

在2012年的早些時候,SecurityXploded的Amit Malik發(fā)表了一篇技術(shù)短文,介紹了從互聯(lián)網(wǎng)下載Windows程序后,如何在不保存到本地硬盤的前提下,實現(xiàn)Windows程序的“內(nèi)存化或無文件執(zhí)行”。

六、2014:Powerliks、Angler以及Phase僵尸程序

前面提到的程序完全駐留在內(nèi)存中,不會在文件系統(tǒng)中留下任何明顯的蛛絲馬跡。因為這種特性,它們在系統(tǒng)重啟后就消失得無影無蹤。相比之下,2014年出現(xiàn)的Poweliks惡意軟件是一種“無需文件的可持久化惡意軟件”(G Data的原話)。這個惡意軟件利用了微軟Word的某個漏洞來進入系統(tǒng),使用帶有shellcode的PowerShell以及JavaScript腳本實現(xiàn)內(nèi)存中的執(zhí)行功能。賽門鐵克的Kevin Gossett對它的本地持久化技術(shù)進行了分析,其中提到:

“通常情況下,惡意軟件會在注冊表的Run鍵值中添加一個子項,指向某個惡意可執(zhí)行文件以完成本地持久化。Poweliks將Run鍵值的子鍵指向rundll32.exe,利用這個合法的微軟程序加載DLL文件,并向其傳遞幾個參數(shù)。傳遞的參數(shù)中包括JavaScript代碼,最終實現(xiàn)將Poweliks加載到內(nèi)存中并執(zhí)行的目的”。

一個月之后,安全研究員Kafeine發(fā)表一篇關(guān)于Angler漏洞利用工具的分析文章。惡意軟件的攻擊目標是存在漏洞的Java客戶端,僅在受感染的javaw.exe進程的內(nèi)存空間中活動。2016年,Palo Alto的安全研究員Brad Duncan在一篇分析報告中提到,Angler開始出現(xiàn)安裝Bedep下載器的行為,且在安裝時不涉及到任何文件創(chuàng)建,因為Angler將下載器直接加載到內(nèi)存中運行。

2014年年末,安全研究員MalwareTech發(fā)表了一篇分析報告,研究了一款名為“Phase僵尸程序”的無文件rootkit。根據(jù)該報告內(nèi)容,這款惡意軟件可以“在不釋放任何文件到本地磁盤、不創(chuàng)建自身進程的前提下安裝到系統(tǒng)中。……Phase將可重新定位的惡意代碼加密保存在注冊表中,通過PowerShell讀取并在內(nèi)存中執(zhí)行這段與具體位置無關(guān)的代碼”。與Powerliks類似,這個惡意軟件通過注冊表的autorun鍵值,調(diào)用rundll32.exe執(zhí)行JavaScript實現(xiàn)本地持久化。

七、2014-2015:Duqu 2.0以及Kovter

在2015年年中,卡巴斯基實驗室發(fā)表了一份報告,詳細介紹了某個高級組織在2014-2015年期間使用一款名為Duqu 2.0的復(fù)雜惡意軟件平臺開展攻擊活動。他們在攻擊活動使用了某個Windows漏洞來安裝惡意軟件,惡意軟件完全隱藏在受感染主機的內(nèi)存中。惡意軟件沒有實現(xiàn)本地持久化機制,相反,攻擊者的目標是長時間上線的服務(wù)器,他們只需要在服務(wù)器重啟后重新感染系統(tǒng)即可。

名為Kovter的另一個無文件惡意軟件也在2015年引起了人們的關(guān)注。Kovter的感染方式與Powerliks十分相似。它最初由某個惡意可執(zhí)行文件加載運行,將經(jīng)過混淆或加密處理的程序保存在注冊表后,惡意軟件就將原始的加載程序從磁盤中刪除。至少有一個Kovter變種通過創(chuàng)建快捷方式執(zhí)行JavaScript以實現(xiàn)本地持久化。正如Airbus的Andrew Dove所述,這個JavaScript腳本會啟動一個能夠執(zhí)行shellcode的PowerShell腳本,所執(zhí)行的shellcode會將惡意代碼注入到一個非惡意的應(yīng)用程序中,并執(zhí)行這個應(yīng)用程序。

八、2016:PowerSniff、PowerWare以及August

在2016年年中,Palo Alto Networks的Josh Grunzweig和Brandon Levene在一篇文章中介紹了PowerSniff這個惡意軟件。惡意軟件的感染路徑從包含惡意宏的微軟Word文檔開始。PowerSniff的內(nèi)存駐留技巧在某些方面與Kovter類似,使用了PowerShell腳本來執(zhí)行shellcode,僅在內(nèi)存中執(zhí)行的shellcode可以解碼并執(zhí)行附加的惡意載荷。PowerSniff具備將惡意DLL臨時保存到文件系統(tǒng)中的能力。

幾周之后,Carbon Black的Mike Sconzo和Rico Valdez在一篇文章中介紹了PowerWare這個惡意軟件。與PowerSniff類似,PowerWare依然使用包含惡意宏的微軟Office文檔開始攻擊活動,文檔中的惡意宏最終會啟動一個PowerShell腳本,不需要在文件系統(tǒng)中存放惡意可執(zhí)行文件即可完成攻擊流程。

在當年晚些時候,Proofpoint在另一篇文章中介紹了August這個惡意軟件,該樣本同樣使用微軟Word宏以及PowerShell來完成攻擊過程。根據(jù)這篇文章,August會“從遠程站點下載部分載荷,作為PowerShell的字節(jié)數(shù)組”,載荷的執(zhí)行完全在內(nèi)存中完成,不需要保存到文件系統(tǒng)中。

九、2017:POSHSPY等

在2017年初,卡巴斯基實驗室在一篇文章中介紹了某款惡意工具,其惡意代碼以Meterpreter為基礎(chǔ),完全在內(nèi)存中活動。在文件系統(tǒng)方面,攻擊者僅使用了合法的Windows實用工具,如sc(用來安裝運行PowerShell的惡意服務(wù))以及netsh(使用隧道方式來承載惡意網(wǎng)絡(luò)流量)。

幾個月之后,Mandiant的Matthew Dunwoody在一篇分析復(fù)雜攻擊活動的文章中也提到了無文件惡意代碼。名為POSHSPY的惡意軟件使用了系統(tǒng)提供的WMI(Windows Management Instrumentation)功能來實現(xiàn)本地持久化機制,同時使用PowerShell來執(zhí)行攻擊載荷。POSHSPY能夠下載可執(zhí)行文件,并將該文件保存到文件系統(tǒng)中。Matthew總結(jié)到:

“攻擊者通過這種‘離地(living off the land)’攻擊技術(shù),實現(xiàn)了一個非常獨立的后門,可以與之前更為傳統(tǒng)和更為復(fù)雜的后門族群一起部署,以便在傳統(tǒng)后門失效后還保留目標的控制權(quán)”。

這次攻擊事件突出反映了入侵者的強大實力,即使他們只能夠依賴系統(tǒng)內(nèi)置的正常程序,他們也能在被感染系統(tǒng)上執(zhí)行惡意載荷。

十、“無文件惡意軟件”的其他說法

2012年,Sergey Golovanov在一篇文章中,最開始使用的是“無文件惡意軟件”這個名詞。非常有趣的是,現(xiàn)在這篇文章中,使用的是“無實體惡意軟件”(bodiless malware)這個名詞??ò退够鶎嶒炇以?016年之前使用的都是“無實體惡意軟件”,但在2017年之后,他們在文章中又回到了“無文件惡意軟件”這個說法。

此外,還有其他說法沒有流行起來。2013年,“高級易變性威脅”(Advanced Volatile Thread,AVT)這個說法短暫浮出水面。根據(jù)維基百科的解釋,該名詞由Triumfant公司的John Prisco提出。“AVT”存在的時間并不長,2013年,Byron Acohido在《今日美國》的一篇文章中,使用這個名詞來指代存在后門的某個Apache軟件。根據(jù)Piere-Marc Bureau(彼時是ESET的一員)的說法,這個后門“除了對web服務(wù)器文件進行修改之外,沒有在硬盤上留下其他任何痕跡”。

相比之下,Carbon Black在2016年的一份威脅報告中,使用了與無文件惡意軟件更為貼切的另一種說法。這篇報告中使用的是“無惡意軟件攻擊”這個名詞。幾個月之后,Michael Viscuso在公司的一篇博文中,對這個名詞做出了解釋,原話如下:

“無惡意軟件攻擊,指的是攻擊者使用現(xiàn)有軟件、被許可的應(yīng)用程序以及已授權(quán)的協(xié)議來開展惡意活動。無惡意軟件攻擊無需下載任何惡意文件,即可獲取計算機的控制權(quán)。無惡意軟件攻擊這個概念也可以代表無文件、內(nèi)存化或‘離地’攻擊”。

Gartner在2017年的一份報告中,與Carbon Black一樣,使用了“無惡意軟件攻擊”這個名詞。不過,一個月后,Gartner在的另一篇文章中,改用了“無文件攻擊”這個名詞。

十一、為什么寫這篇文章

我認為對于不同的場合,我們可以使用不同的說法。比如,對于僅僅依賴合法的系統(tǒng)管理工具以及其他非惡意軟件的攻擊事件,我更傾向于使用“無惡意軟件攻擊”這個說法,這種場景也就是人們常說的“離地”攻擊場景。另外,如果惡意代碼從來沒有保存到本地硬盤中(比如惡意代碼被注入到其他進程的內(nèi)存空間中),我更傾向于使用“完全內(nèi)存化惡意軟件(memory-only malware)”這個說法。如果惡意軟件不需要在文件系統(tǒng)中保存?zhèn)鹘y(tǒng)意義上的可執(zhí)行文件來實現(xiàn)本地持久化,此時我認為使用“無文件惡意軟件”也是可以的。

不幸的是,現(xiàn)在這些說法已經(jīng)雜糅在一起。盡管“無文件惡意軟件”代表各種含義,我們還是會堅持使用這個說法來描述前面提到的各種場景。只能感慨人類的語言不僅含義不清,而且總是在變,如果大家說的都是“C#”語言,說不定這個世界會變得更加美好 :-)

我之所以會關(guān)心這個術(shù)語,原因在于我在Minerva的工作是負責(zé)介紹某款反惡意軟件產(chǎn)品的功能,我需要避免使用那些陳詞濫調(diào)和毫無意義的短語。這款產(chǎn)品可以與其他端點安全工具配合使用,防御各種惡意軟件,無論它們的攻擊載荷是否需要保存到磁盤中。客戶經(jīng)常向我咨詢我們對無文件惡意軟件的處理方式,因此我決定寫一篇綜合調(diào)研文章,以便更好把握這個名詞使用的方式和時機。

責(zé)任編輯:趙寧寧 來源: 安全客
相關(guān)推薦

2019-03-26 09:11:32

無文件惡意軟件

2016-03-01 11:47:16

2022-07-28 11:54:03

惡意軟件網(wǎng)絡(luò)攻擊無文件

2019-02-19 12:29:51

2018-09-03 15:28:56

2022-08-16 19:45:03

惡意軟件加密

2015-05-29 18:19:17

2019-05-13 08:36:22

無文件惡意軟件

2012-03-23 09:28:14

2021-06-30 13:37:23

零日惡意軟件惡意軟件攻擊

2020-10-05 21:55:24

惡意軟件端點威脅無文件惡意軟件

2017-02-20 17:41:12

SDN網(wǎng)絡(luò)

2021-04-01 13:05:55

無文件惡意軟件威脅情報攻擊

2019-01-17 09:04:01

PostgreSQL復(fù)制Redo

2023-06-16 12:17:25

2025-01-26 00:07:14

2022-07-09 16:34:42

網(wǎng)絡(luò)攻擊惡意軟件

2020-07-23 08:00:09

安全 惡意軟件技術(shù)

2012-12-21 12:37:24

2009-03-10 08:19:02

點贊
收藏

51CTO技術(shù)棧公眾號