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