之前,我們已經(jīng)對ATT&CK進(jìn)行了一系列的介紹,相信大家都已了解,Mitre ATT&CK通過詳細(xì)分析公開可獲得的威脅情報(bào)報(bào)告,形成了一個巨大的ATT&CK技術(shù)矩陣。誠然,這對于提高防御者的防御能力、增加攻擊者的攻擊成本都有巨大作用。但或許是出于獵奇心理,很多威脅情報(bào)報(bào)告更多地是在報(bào)道攻擊者使用的比較新穎有趣的技術(shù)方法,而卻忽視了攻擊者反復(fù)使用的普通技術(shù)。這也是Mitre公司在2019年10月份的ATT&CKcon2.0大會上,推出了ATT&CK Sightings項(xiàng)目,以期借助社區(qū)力量收集更多直接觀察數(shù)據(jù)的原因所在。
對此,一些安全公司通過在真實(shí)環(huán)境中所收集的直接觀察數(shù)據(jù)來檢測攻擊技術(shù),這種方法直觀性更強(qiáng),也更具說服力。Red Canary是美國一家從事信息安全的網(wǎng)絡(luò)安全公司,負(fù)責(zé)對客戶環(huán)境中的終端數(shù)據(jù)進(jìn)行大規(guī)模檢索,來尋找攻擊者。Red Canary分析了過去五年里,其客戶環(huán)境中發(fā)生的一萬多起惡意事件,并將惡意事件中使用的技術(shù)與ATT&CK框架進(jìn)行了映射。
本文將通過對比Mitre ATT&CK的Top 20攻擊技術(shù)及Red Canary基于ATT&CK的Top 20攻擊技術(shù),確定了攻擊者最常用的七項(xiàng)ATT&CK技術(shù),并對其進(jìn)行了詳細(xì)分析。
Mitre公司 VS Red Canary Top 20攻擊技術(shù)
Mitre ATT&CK 通過整合、分析400多份公開的威脅情報(bào)報(bào)告,將技術(shù)報(bào)告中的內(nèi)容與ATT&CK技術(shù)進(jìn)行了映射,MITRE ATT&CK整理得出的Top 20攻擊技術(shù)為:
Red Canary通過對過去五年里,其客戶環(huán)境中發(fā)生的一萬多起惡意事件進(jìn)行分析,得出了威脅事件利用每種ATT&CK技術(shù)的頻率,如下圖所示:
從圖中我們看到,Red Canary 分析得出的Top 20攻擊技術(shù)為:
對Mitre ATT&CK和Red Canary分別整理得出的Top 20技術(shù)進(jìn)行對比分析,我們可以發(fā)現(xiàn)有7項(xiàng)技術(shù)是重合的,分別為PowerShell、腳本執(zhí)行、命令行界面、注冊表Run Key/ 啟動文件夾、偽裝、混淆文件或信息、憑據(jù)轉(zhuǎn)儲?;蛟S,這應(yīng)該是防御者建立防御方案的著手點(diǎn)。
下表展示了這七項(xiàng)技術(shù)在Red Canary 和Mitre ATT&CK Top 20攻擊技術(shù)中的排名次序和出現(xiàn)次數(shù)。
希望讀者能夠通過上表中的數(shù)據(jù),進(jìn)一步了解攻擊者對這七種技術(shù)的使用頻率和在攻擊者中的流行程度。下面,我們詳細(xì)分析這七種技術(shù)。
攻擊者最常用的TOP7攻擊技術(shù)
1. “Powershell”備受攻擊者青睞
PowerShell是Windows操作系統(tǒng)中包含的功能強(qiáng)大的交互式命令行界面和腳本環(huán)境。攻擊者可以使用PowerShell執(zhí)行許多操作,包括發(fā)現(xiàn)信息和執(zhí)行代碼,例如,用于運(yùn)行可執(zhí)行文件的Start-Process cmdlet和在本地或在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行命令的Invoke-Command cmdlet。
默認(rèn)情況下,PowerShell基本上已包含在每個Windows操作系統(tǒng)中,提供了對Windows API的完全訪問權(quán)限,包括數(shù)百個供開發(fā)人員和系統(tǒng)管理員使用的功能,但同樣也遭到攻擊者的大肆利用。像許多核心平臺實(shí)用程序一樣,PowerShell庫很容易獲得,因此也很容易實(shí)現(xiàn),能夠暴露任意進(jìn)程中的完整PowerShell功能。
那么該如何進(jìn)行檢測呢?進(jìn)程監(jiān)控是最普遍有效的技術(shù)。進(jìn)程監(jiān)控可以讓防御者確定在其環(huán)境中使用PowerShell的基準(zhǔn)。進(jìn)程命令行監(jiān)控則更有效,可以洞悉哪些PowerShell實(shí)例試圖通過編碼命令傳遞有效負(fù)載并以其他方式混淆其最初意圖。除了PowerShell腳本的默認(rèn)主機(jī)之外,腳本還可以在加載PowerShell框架庫的其他進(jìn)程中執(zhí)行。要查看該行為,觀察模塊負(fù)載以及進(jìn)行分析以提供其他上下文,從而為檢測提供支持。
2. “腳本執(zhí)行”不容忽視
攻擊者可能會使用腳本來幫助進(jìn)行操作并執(zhí)行其他本來應(yīng)該是手動進(jìn)行的多項(xiàng)操作。腳本執(zhí)行對于加快操作任務(wù),減少訪問關(guān)鍵資源所需的時間很有用。通過直接在API級別與操作系統(tǒng)交互,而無需調(diào)用其他程序,某些腳本語言可以用于繞過過程監(jiān)視機(jī)制。Windows的常用腳本語言包括VBScript和PowerShell,但也可以采用命令行批處理腳本的形式。
安全工具和人工分析的快速發(fā)展讓攻擊者很難使用公開的攻擊載荷或者直接從磁盤獲取相關(guān)載荷。因此,攻擊者需要找到替代方法來執(zhí)行有效載荷并執(zhí)行其他惡意活動,這是腳本相關(guān)技術(shù)日益流行的主要原因。此外,該技術(shù)利用的運(yùn)行時環(huán)境、庫和可執(zhí)行文件是每個現(xiàn)代計(jì)算平臺的核心組件,不能輕易禁用,并且沒有始終對其進(jìn)行密切監(jiān)視。
在Windows上,Windows腳本宿主(WSH)最簡單的檢測用例是基于process ancestry的。這包括監(jiān)視從shells命令(cmd.exe、powershell.exe)、Office應(yīng)用程序、Web瀏覽器和Web服務(wù)處理程序中生成的wscript.exe或cscript.exe。還建議監(jiān)視從非標(biāo)準(zhǔn)位置執(zhí)行的腳本,例如用戶可寫路徑,包括appdata\local\*、其他類似路徑以及臨時目錄。
此外,監(jiān)視進(jìn)程元數(shù)據(jù)、進(jìn)程命令行和文件修改都是非常重要的策略。檢測與托管腳本相關(guān)的二進(jìn)制文件的可疑模塊加載(例如vbscript.dll)的檢測系統(tǒng)也是值得采取的策略。
當(dāng)然最徹底的辦法就是禁用Windows腳本宿主,也可以強(qiáng)制對腳本進(jìn)行簽名,以確保僅執(zhí)行批準(zhǔn)的腳本。諸如AppLocker之類的工具還提供了與腳本執(zhí)行相關(guān)的其他約束。這些是預(yù)防策略,但也可用于檢測之用,因?yàn)閲L試執(zhí)行未經(jīng)授權(quán)的腳本應(yīng)產(chǎn)生更高質(zhì)量的報(bào)警信號。
3. “命令行界面”也是黑客最愛
命令行界面提供了一種與計(jì)算機(jī)系統(tǒng)進(jìn)行交互的方式,并且是許多類型的操作系統(tǒng)平臺的共同功能。Windows系統(tǒng)上的令行界面是cmd,可用于執(zhí)行許多任務(wù),包括執(zhí)行其他軟件。命令行界面可以通過遠(yuǎn)程桌面應(yīng)用程序、反彈Shell會話等在本地或遠(yuǎn)程進(jìn)行交互。執(zhí)行的命令以命令行界面進(jìn)程的當(dāng)前權(quán)限級別運(yùn)行,除非該命令進(jìn)行進(jìn)程調(diào)用,更改執(zhí)行權(quán)限(例如計(jì)劃任務(wù))。
命令行界面發(fā)展至今,已經(jīng)有大量的成熟工具可以使用。此外,命令行界面是一個非常輕便的應(yīng)用程序,打開時不會給硬件帶來負(fù)擔(dān),因此打開起來更快。而且在基于GUI的應(yīng)用程序上完成的所有任務(wù),能夠通過命令行界面更快地打開。
針對這類攻擊,可以通過使用命令行參數(shù)正確記錄進(jìn)行執(zhí)行情況來捕獲命令行界面活動。通過深入了解攻擊者時如何使用本地進(jìn)程或自定義工具的,可以進(jìn)一步了解攻擊者的行為。這就需要做到以下兩方面:(1)了解組織機(jī)構(gòu)中應(yīng)用程序的常見來源;(2)收集命令行和相關(guān)的檢測數(shù)據(jù).
4. “注冊表run key/啟動文件夾”是實(shí)現(xiàn)持久化的關(guān)鍵動作
在注冊表的“run keys”或啟動文件夾中添加一個條目,將會導(dǎo)致用戶登錄時,該程序會運(yùn)行該條目。這些程序?qū)⒃谟脩舻纳舷挛闹袌?zhí)行,并具有與賬戶相同的權(quán)限級別。
注冊表run key和啟動文件夾歷來都是各類攻擊者實(shí)現(xiàn)持久化的重要目標(biāo)。根據(jù)Microsoft文檔,對注冊表run key的支持至少可以追溯到Windows95。有可靠記錄表明,作為一種持久化機(jī)制,加之易于實(shí)施,該技術(shù)在一定程度上解釋了其為何在攻擊者中使用非常普遍。攻擊者僅需要用戶級別的權(quán)限,并具有寫入注冊表或?qū)⒂行ж?fù)載拖放到啟動文件夾的功能。
雖然實(shí)現(xiàn)起來相對簡單,但非常有效。隨著時間的推移,該技術(shù)已經(jīng)從引用可執(zhí)行有效負(fù)載發(fā)展為加載動態(tài)庫,并利用了其他技術(shù)(例如regsvr32和腳本執(zhí)行)。針對該攻擊技術(shù),可以在持久化機(jī)制生命周期的三個不同點(diǎn)上有效地實(shí)現(xiàn)檢測:安裝時、休眠時以及觸發(fā)時。
在安裝時檢測run key和啟動文件夾項(xiàng)目需要監(jiān)視特定注冊表和文件系統(tǒng)路徑的變更情況??梢酝ㄟ^平臺文檔或通過引用一些實(shí)用程序來報(bào)告是否存在這些配置來列舉這些路徑。此外,可能會成功檢查任何已知與這些路徑結(jié)合使用的文件類型,例如LNK。要檢測已安裝且處于休眠狀態(tài)的持久化,可以檢查同一注冊表和文件系統(tǒng)路徑的內(nèi)容中是否存在可疑條目。創(chuàng)建一個基準(zhǔn)并定期監(jiān)視是否有偏移基準(zhǔn)的情況,以此來減少調(diào)查工作量。
當(dāng)然,持久化永遠(yuǎn)不會單獨(dú)發(fā)生,它始終是達(dá)到目的的手段。因此,監(jiān)視預(yù)期某些變更會涉及哪些進(jìn)程以及尚未觀察到的進(jìn)程之間的關(guān)系也是非常有效的。
5. “偽裝”是繞過防御的最佳辦法
偽裝是指為了逃避防御和觀察而操縱或?yàn)E用合法或惡意的可執(zhí)行文件的名稱或位置的情況。攻擊者利用偽裝作為繞過防御技術(shù)的手段或欺騙手段。攻擊者使用該技術(shù)通過使惡意可執(zhí)行文件和軟件看起來合法或預(yù)期來破壞機(jī)器和人工分析。偽裝的實(shí)現(xiàn)范圍很廣,從簡單地重命名可執(zhí)行文件(從而讓這些文件看起來更像是正常系統(tǒng)進(jìn)程)到更復(fù)雜的方法(例如命令行欺騙)。偽裝在攻擊者中使用很普遍,因?yàn)樗鼭M足了繞過防御技術(shù)和人為分析的簡單需求,并且相對容易實(shí)施。
檢測偽裝技術(shù)的一種策略是利用二進(jìn)制元數(shù)據(jù),例如在文件創(chuàng)建或簽名時的原始文件名。例如,如果要查找wscript.exe,則應(yīng)查找具有該名稱的二進(jìn)制文件,也應(yīng)查找具有原始文件名WScript的任何二進(jìn)制文件。
雖然,可以檢測名稱或元數(shù)據(jù)為wscript.exe的任何二進(jìn)制文件,但基于文件的簽名、哈?;蚱渌麡?biāo)識符并不可信。因此可對文件位置建立一個基準(zhǔn),對上述方法進(jìn)行補(bǔ)充。如果我們了解給定二進(jìn)制文件通過哪個路徑執(zhí)行,則可以在其他任何地方看到該標(biāo)志時,就可以觸發(fā)報(bào)警。
6. “混淆文件或信息”可逃避基于簽名的檢測系統(tǒng)
攻擊者可能會試圖通過加密、編碼或其他方式混淆系統(tǒng)上或傳輸中的可執(zhí)行文件或文件內(nèi)容,從而使其難以發(fā)現(xiàn)或分析。這是一種可以跨不同的平臺和網(wǎng)絡(luò)使用,以繞過防御的常見行為。
許多網(wǎng)絡(luò)安全檢測產(chǎn)品(防病毒軟件、IDS等)設(shè)計(jì)為基于惡意軟件的簽名運(yùn)行。一旦發(fā)現(xiàn)了在野使用的特定惡意軟件變體,便會提取出該惡意軟件的獨(dú)特功能,并用于在未來感染中對其進(jìn)行檢測和識別。將通過網(wǎng)絡(luò)邊界或下載到主機(jī)的每條數(shù)據(jù)與這些簽名進(jìn)行比較。如果找到匹配項(xiàng),則將采取措施(刪除、隔離、警報(bào)等)。
混淆的目的是繞過這些基于簽名的檢測系統(tǒng),并增加對惡意軟件樣本進(jìn)行取證分析的難度。如果以某種方式混淆了簽名所基于的數(shù)據(jù)或代碼,則檢測引擎在尋找純文本簽名時就無法找到匹配項(xiàng)。
存在許多混淆算法,例如壓縮、編碼、加密、隱寫等等。惡意軟件使用者可以隱藏各種不同類型的文件和數(shù)據(jù)。例如,惡意軟件可能被設(shè)計(jì)為使用混淆來隱藏其惡意代碼?;蛘?,惡意軟件變體可能會對其配置文件進(jìn)行加密,從而使惡意軟件分析師更難于理解其功能。
想要檢測混淆文件或者信息,除非在混淆過程留下了可以檢測到的獨(dú)特偽像,否則很難檢測文件混淆。如果無法檢測,則可以去檢測執(zhí)行混淆文件的惡意活動(例如,用于在文件系統(tǒng)上寫入、讀取或修改文件的方法)。標(biāo)記并分析包含混淆指示符和已知可疑語法(例如未解釋的轉(zhuǎn)義字符,如'''^''' 和'''"''')的命令。反混淆工具可以用來檢測文件/有效載荷中的這些指標(biāo)。
此外,可以在網(wǎng)絡(luò)上檢測到用于初始訪問的有效載荷中使用了哪些混淆方法。還可以使用網(wǎng)絡(luò)入侵檢測系統(tǒng)和電子郵件網(wǎng)關(guān)篩選來識別壓縮和加密的附件和腳本。某些電子郵件附件展示系統(tǒng)可以打開壓縮和加密的附件。通過網(wǎng)站從加密連接傳遞的有效載荷需要進(jìn)行加密的網(wǎng)絡(luò)流量檢查。
7. “憑據(jù)轉(zhuǎn)儲”讓黑客在內(nèi)網(wǎng)為所欲為
憑據(jù)轉(zhuǎn)儲是從操作系統(tǒng)和軟件獲取帳戶登錄名和密碼信息的過程,通常是哈希或明文密碼形式的信息。進(jìn)行憑據(jù)轉(zhuǎn)儲后,攻擊者就可以使用憑據(jù)進(jìn)行橫向移動及訪問受限信息。
憑據(jù)轉(zhuǎn)儲是攻擊者訪問目標(biāo)組織中的用戶帳戶和其他資源的共同需求。攻擊者還利用轉(zhuǎn)儲的憑據(jù)來實(shí)現(xiàn)權(quán)限提升和橫向移動。憑據(jù)對于攻擊者而言是如此重要,以致在許多情況下,獲取用戶名和密碼不僅是達(dá)到目的的手段,而且是攻擊的整個目標(biāo)。因此,在各種犯罪論壇上,憑據(jù)都是可出售的商品,并且有些網(wǎng)站可以追蹤公開的憑據(jù)轉(zhuǎn)儲情況。除了將轉(zhuǎn)儲憑據(jù)用于出售和初始訪問外,憑據(jù)是漏洞利用后的一個重要部分。一旦攻擊者獲得對環(huán)境的初始訪問權(quán)限,通常需要某種級別的特權(quán)訪問權(quán)限才能實(shí)現(xiàn)攻擊活動中的進(jìn)一步目標(biāo)。雖然有很多方法可以提高特權(quán)級別,但是最有效和可靠的方法之一是使用具有特定級別權(quán)限的人員的合法憑據(jù)。
憑據(jù)可以從內(nèi)存中以純文本格式提取。監(jiān)視對特定進(jìn)程的訪問可以為防御者提供一種檢測憑據(jù)轉(zhuǎn)儲的方式。這種檢測方法很容易產(chǎn)生大量誤報(bào)事件,因?yàn)椴僮飨到y(tǒng)的內(nèi)置功能也可以訪問這些過程。防御者要重點(diǎn)關(guān)注潛在問題進(jìn)程之間的交互來減少這種噪聲。
檢測是否存在憑據(jù)轉(zhuǎn)儲的另一種方法是分析常用工具,并使用其他數(shù)據(jù)源作為相關(guān)點(diǎn),基于留下的指紋來制定檢測策略。注冊表項(xiàng)和文件修改就是一個很好的切入點(diǎn)。
寫在最后
我們之前已經(jīng)針對ATT&CK框架進(jìn)行了一系列的介紹,有興趣的讀者可以閱讀一下之前的相關(guān)文章。但是,ATT&CK框架包含了300多種技術(shù),而且每種技術(shù)又包含多種變體。面對一個體型如此龐大的框架,可能會讓人有些望而卻步,一臉茫然,不知該從何處入手。本文通過對比分析MITRE ATT&CK和Red Canary總結(jié)分析的Top20攻擊技術(shù),發(fā)現(xiàn)其中有七項(xiàng)技術(shù)是重合的,突出說明了這七項(xiàng)攻擊技術(shù)在攻擊者中的普遍性,是需要防御者重點(diǎn)關(guān)注或是建立防御方案時的著手點(diǎn)。本文對這七項(xiàng)技術(shù)進(jìn)行了簡單的介紹,說明了這些技術(shù)能夠得到攻擊者青睞的原因所在,并給出了檢測策略,希望能夠?yàn)樽x者使用ATT&CK框架帶來一些幫助。
申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!