国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于無文件攻擊技術(shù)與防御綜述

2021-11-13 08:40林明亮彭貴超
新一代信息技術(shù) 2021年17期
關(guān)鍵詞:注冊表自帶攻擊者

林明亮,彭貴超

(國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心海南分中心,海南 ???570100)

0 引言

無文件攻擊是內(nèi)存層面的攻擊方式,設(shè)計之初就是為了規(guī)避傳統(tǒng)的已知檢測技術(shù)。這類攻擊最早發(fā)現(xiàn)是2001年的Code Red蠕蟲[1]。從2001年夏天到2017年這類攻擊開始流行,人們才找到直接的證據(jù)證明這類攻擊的存在。接近77%的成功入侵是基于無文件攻擊技術(shù),這個成功率幾乎是已知的基于文件攻擊的10倍。

無文件攻擊使用的技術(shù)也叫做“Living off the land”(LotL),即不落地存活技術(shù)。這類攻擊最主要的特點就是沒有惡意代碼或者攻擊載荷作為一個文件被存儲在磁盤上。其次是這類攻擊使用的是安全的,預(yù)安裝的,操作系統(tǒng)已有的工具。這也是在攻擊的前后沒有任何惡意活動的痕跡被發(fā)現(xiàn)的原因。這種類型的攻擊使用系統(tǒng)工具,如Powershell,WMI[2]以及其他 Windows管理工具且通過修改注冊表鍵值的方式來實現(xiàn)對目標(biāo)的長期控制,還有一些基于java的惡意代碼可以利用java的特性在內(nèi)存中存活,實現(xiàn)無文件的webshell后門。

1 無文件攻擊技術(shù)類型

無文件攻擊方式主要可以分為四種類型:只在內(nèi)存中運行的攻擊、無文件持久化攻擊、非可執(zhí)行文件攻擊、利用系統(tǒng)自帶工具。在攻擊鏈的入侵環(huán)節(jié)一般通過利用漏洞獲取權(quán)限達到直接在內(nèi)存中執(zhí)行代碼的目標(biāo)。常見的攻擊手法為發(fā)送一個帶有惡意代碼的 office文件[3]或者在其他機器的快捷方式文件中插入惡意代碼。這個環(huán)節(jié)可以存在多種無文件攻擊類型,包括:只在內(nèi)存中運行的攻擊,如SMB永恒之藍(lán)漏洞;非可執(zhí)行文件攻擊,如帶有惡意代碼的 office文件宏;利用系統(tǒng)自帶工具,如RDP弱口令等;當(dāng)一臺設(shè)備被入侵后,一般會進入持久化環(huán)節(jié),來保持攻擊者對這臺設(shè)備的權(quán)限,這個環(huán)節(jié)主要使用無文件持久化的攻擊,如在注冊表中寫入Jscript代碼、在計劃任務(wù)中創(chuàng)建執(zhí)行惡意代碼的任務(wù)等方式;當(dāng)獲取系統(tǒng)權(quán)限并加以鞏固后,攻擊者將執(zhí)行攻擊載荷來達到特定目的,這個環(huán)節(jié)使用的攻擊類型包括:利用系統(tǒng)自帶工具,如net、sc、psexe等;只在內(nèi)存中運行的攻擊,如Mirai DDoS;非可執(zhí)行文件攻擊,如Powershell腳本。

1.1 只在內(nèi)存中運行的攻擊類型

這類攻擊主要是依靠漏洞或者系統(tǒng)的弱口令獲取系統(tǒng)權(quán)限,然后在內(nèi)存中直接執(zhí)行惡意代碼。這類攻擊的代表Code Red和SQL Slammer蠕蟲都是利用Windows系統(tǒng)服務(wù)的漏洞直接在內(nèi)存中執(zhí)行它們的攻擊載荷。WannaCry勒索軟件使用的永恒之藍(lán)漏洞和雙子星后門也是這類攻擊的一種。如果系統(tǒng)存在遠(yuǎn)程命令執(zhí)行漏洞,攻擊者首選都是直接在內(nèi)存中執(zhí)行惡意代碼而不讓文件在硬盤上落地。如果只是在內(nèi)存中運行的話并不足以讓這些惡意代碼持久控制目標(biāo),只要重啟系統(tǒng)后,內(nèi)存更新,目標(biāo)就會失去控制。但是,有些惡意代碼并不在意是否可以持久控制目標(biāo)。例如對于專門控制物聯(lián)網(wǎng)設(shè)備的 mirai僵尸病毒[4]來說,一個系統(tǒng)雖然重啟了,但是如果不能及時修復(fù)漏洞的話,攻擊者很容易就能再次獲取控制權(quán)。另一方面,對于特定的攻擊組織來說,目標(biāo)核心服務(wù)器一般不會輕易重啟,而這段時間已經(jīng)足夠他們找到想要的東西并清除痕跡了。

1.2 無文件持久化攻擊

攻擊者在獲取權(quán)限后需要鞏固權(quán)限,讓控制持久化。在Windows系統(tǒng)上有多種方式可以讓攻擊者獲取持久化的控制權(quán)限且無需文件在硬盤上落地。下面主要介紹幾種比較主流的無文件持久化攻擊方式。

(1)Windows注冊表[5],最常用的無文件攻擊維持權(quán)限的方式就是將惡意代碼寫入 Windows注冊表中,2014年發(fā)現(xiàn)的惡意代碼Trojan.Poweliks就是基于注冊表的攻擊。后面出現(xiàn)的惡意代碼Trojan.Kotver和Trojan.Bedep也沿用這個攻擊方式。

通常,惡意代碼會將自身隱藏在注冊表的自啟動子鍵里,這樣在系統(tǒng)重啟后其就會被立即執(zhí)行。在這個基礎(chǔ)上,一些惡意代碼還會將創(chuàng)建的自啟動子鍵命名為非ASCII字符。這樣可以防止普通的檢測工具顯示這個鍵值,從而起到混淆及規(guī)避檢測的作用。另外,惡意代碼還可以更改注冊表中該子鍵的訪問權(quán)限,使其難以被刪除。隱藏在注冊表中的惡意代碼內(nèi)容還可以經(jīng)過混淆放置在多個鍵中[6],這樣每次攻擊都有不同的特征。如圖1所示,攻擊代碼隱藏在注冊表的自啟動項中,并調(diào)用圖2中其他注冊表項的鍵值,全程沒有任何文件在硬盤中落地,且使用了編碼技術(shù)來規(guī)避安全軟件的檢測。

圖2 被調(diào)用的注冊表鍵值Fig.2 the key value to be called

注冊系統(tǒng)服務(wù)也可以利用類似的原理。一個攻擊者可以在注冊表中添加或者直接使用 sc.exe命令行工具來創(chuàng)建一個系統(tǒng)服務(wù)。如圖3創(chuàng)建系統(tǒng)服務(wù)命令:

圖3 創(chuàng)建惡意系統(tǒng)服務(wù)Fig.3 create malicious services

(2)WMI,WMI的數(shù)據(jù)加密存儲在文件夾%System%wbem epository里的多個文件中。攻擊者可以根據(jù)一個特定的事件創(chuàng)建一個filter,然后創(chuàng)建一個 consumer方法來在這些事件發(fā)生時執(zhí)行惡意代碼。事件可以是一天中的某個時間,如Unix中的cron任務(wù)那樣。這種情況下,三個WMI類是必須的:filter類、consumer類以及一個FilterToConsumerBinding類將它們聯(lián)系起來。攻擊載荷一般為一個Powershell腳本以及將其存儲在注冊表中的腳本。這些攻擊載荷可能會全部存儲在WMI庫中。圖4為Cozyduke攻擊團隊使用的方式。

圖4 WMI啟動Powershell的consumer類Fig.4 WMI consumer that starts powershell

(3)計劃任務(wù),計劃任務(wù)可以在特定時間在本地或遠(yuǎn)程執(zhí)行命令。例如,圖5計劃任務(wù)執(zhí)行Powershell下載命令:

圖5 計劃任務(wù)執(zhí)行Powershell下載惡意代碼Fig.5 schedule task using powershell download malware

(4)在關(guān)機時調(diào)用,盡管它不是完全的無文件攻擊,在關(guān)機時調(diào)用有時也會被攻擊者使用。Dridex惡意代碼的一些變種會創(chuàng)建一個自啟動注冊表項并將惡意代碼存放在硬盤中。當(dāng)系統(tǒng)啟動時,這些惡意代碼會在內(nèi)存中執(zhí)行并將注冊表項及硬盤上的惡意代碼刪除。在某種意義上,這些惡意代碼只運行在內(nèi)存中,因此也算是無文件攻擊的一種方式。這類攻擊監(jiān)測關(guān)機指令,當(dāng)關(guān)機指令發(fā)起后,它會在系統(tǒng)中創(chuàng)建新的注冊表項以及以新的名字存放在硬盤中,等待下一次重啟,這樣它可以最小化在硬盤中的暴露時間。

1.3 非可執(zhí)行文件攻擊

一個非可執(zhí)行文件攻擊基本都會與一些腳本或合法工具相關(guān)聯(lián),因此嚴(yán)格來說這種攻擊類型應(yīng)該算是利用系統(tǒng)自帶工具的子類。這類攻擊大多數(shù)使用Powershell、WScript、CScript這些系統(tǒng)自帶的腳本框架來執(zhí)行惡意代碼[7]。一般的office文檔或者PDF文檔會包含惡意腳本代碼,在打開這些文檔的時候會彈出是否啟用編輯等提示框。安全意識不高的用戶會忽略這些提示,導(dǎo)致惡意代碼執(zhí)行。

Office文檔也并非需要宏才能執(zhí)行腳本。惡意代碼Trojan.PPDropper是一個PPT形式的病毒,它可以通過用戶打開一個鏈接來執(zhí)行惡意代碼。如圖6所示這個鏈接有三個要素:

圖6 office文檔執(zhí)行惡意代碼三個要素Fig.6 office running malware within three elements

這些代碼解碼重組后,如圖7所示為Powershell攻擊命令:

圖7 重組后的Powershell命令Fig.7 rebuild powershell command

1.4 利用系統(tǒng)自帶的工具

系統(tǒng)自帶的工具是經(jīng)過安全校驗的工具,利用這些工具也可以實現(xiàn)攻擊者的一些攻擊目的。如 net user/add可以在系統(tǒng)上添加用戶,net localgroup administrators/add可以將添加用戶加入到管理員組中,query user可以用于查詢當(dāng)前系統(tǒng)登錄的用戶情況,net view/domain可以查看當(dāng)前用戶所在域情況,tasklist/svc可以查看當(dāng)前執(zhí)行的進程情況,以及前面提到過的rundll32.exe用于加載特定動態(tài)鏈接庫,sc.exe用于對系統(tǒng)的服務(wù)進行操作,schtasks對計劃任務(wù)進行操作等。所有的這些操作均可以利用系統(tǒng)自帶的工具來完成。

2 無文件攻擊方式的防御

應(yīng)對無文件攻擊,我們自身以及所在的部門應(yīng)該建立事前預(yù)防、事中阻斷、事后響應(yīng)的體系化防御機制,才能有效地防護網(wǎng)絡(luò)的安全,避免數(shù)據(jù)資產(chǎn)遭受不必要的損失。事前預(yù)防建議做好這些安全措施:如無必要,禁用 Powershell和WMI;安裝所有的Windows更新,尤其是安全更新;檢查已安裝的應(yīng)用是否已更新至最新版本;定期檢測網(wǎng)絡(luò)中是否有非預(yù)期的大量數(shù)據(jù)流動,這可能是攻擊者正在竊取數(shù)據(jù);定期更新瀏覽器;留意郵件中下載的附件;使用可以監(jiān)測內(nèi)存惡意代碼執(zhí)行的安全工具等。事中阻斷針對無文件攻擊涉及攻擊鏈的三個環(huán)節(jié),可以使用以下方式進行檢測阻斷[8]:因入侵環(huán)節(jié)大多使用漏洞利用或者使用釣魚郵件發(fā)送帶有惡意宏的 office文檔發(fā)起攻擊,漏洞利用防御可以有針對性地防御系統(tǒng)漏洞被攻擊者利用,而行為檢測則可以針對惡意宏腳本代碼執(zhí)行的行為進行檢測阻斷;在持久化環(huán)節(jié),WMI、系統(tǒng)注冊表、計劃任務(wù)等關(guān)鍵區(qū)域可能會留下攻擊的痕跡,實時監(jiān)測這些區(qū)域的危險更新以及定期對這些區(qū)域進行掃描可以有效應(yīng)對這個環(huán)節(jié)的攻擊;執(zhí)行攻擊載荷環(huán)節(jié)惡意代碼已經(jīng)在內(nèi)存中運行,因此對系統(tǒng)重點程序的行為檢測尤為重要,如Powershell的一些危險操作。事后響應(yīng)主要關(guān)注以下幾個方面:評估攻擊造成的損失,如泄露了多少數(shù)據(jù);對攻擊路徑進行封堵,還原攻擊路徑并封堵;人員培訓(xùn),提高安全意識,避免再次發(fā)生類似事件等事后復(fù)盤提升整體防御能力。

3 結(jié)論

本文介紹了無文件攻擊技術(shù)和防御。相比于傳統(tǒng)的基于惡意文件的攻擊,無文件的攻擊方式更加難以檢測,對現(xiàn)有的安全防護提出了一個較大的挑戰(zhàn)。本文從無文件攻擊背景介紹到這類攻擊方式的細(xì)節(jié)進行剖析,并提出建立事前預(yù)防、事中阻斷、事后響應(yīng)的防御體系來抵御這類攻擊的思路。

猜你喜歡
注冊表自帶攻擊者
基于貝葉斯博弈的防御資源調(diào)配模型研究
自帶濾鏡的底妝,你用了多少?
周迅:天才,自帶撥亂反正的能量
正面迎接批判
正面迎接批判
更上一層樓 用好注冊表編輯器
好的愛情自帶成長屬性
注冊表的便捷用法
注冊表編輯器也玩“失憶”
學(xué)習(xí)器揭開注冊表面紗