如何進行基於威脅情報週期模型的APT木馬剖析
關於威脅情報處理週期模型
「威脅情報處理週期」(F3EAD)一詞源自於軍事,是美陸軍為主戰兵種各級指揮官設計的組織資源、部署兵力的方法。網路緊急應變中心借鏡這套方法,分成以下六個階段處理威脅情報資訊:
威脅情報處理週期F3EAD
威脅情報處理週期模型的應用程式
第一步:找出
某月某日,部署在合作方公有雲端伺服器上的「洋蔥「系統警告發現疑似木馬程序,於是應急響應團隊快速啟動應急相應流程:
幹係人等一鍵拉群,電話接入。
受害系統隔離待查。
安全系統、稽核日誌匯出待溯源分析。
業務系統架構、程式碼相關資料準備,待分析入侵突破口及受影響範圍
#第二步:定位
根據安全系統的審計記錄發現,惡意文件目錄存在另一個*.ko文件,而此文件是透過scp從另一伺服器傳過來。
由此可見,攻擊者先拿到某個存在弱點的伺服器權限,然後再跳轉scp木馬檔案到包括目前受害機在內的透過已攻陷的伺服器可存取的機器,並安裝控制。
接下來咱們重點分析這組木馬文件,根據AV廠商的命名規則(附錄1),暫為其命名為"Backdoor:Linux/Rmgr!rookit",其中「rmgr」來至木馬程式碼中多個函數用了rmgr前綴。
2.1. 木馬檔案
目前已經掌握的木馬檔案分成四部分,其功能簡單描述如下:
2.2 木馬工作流程
木馬從植入到運行,包括後續可能的滲透活動都採用了各種技術進行隱藏,如果沒有安全系統則很難發現。同時,該木馬也做了很多對抗,常規的安全監測能力未必可以發現。其運作流程簡要描述如下圖:
#木馬工作流程
2.3 木馬各部份主要功能
1. rmgr.ko
rootkit採用常見的LKM核心模組。下面逐一列舉此rootkit載入後的主要操作。
1)proc_create_data建立虛擬檔案/proc/.dot3,用於後續與木馬用戶態進程互動;
2) register_kprobe註冊4個kp結構體:
kp_kallsyms_lookup_name\krp_alloc_pid\kp_do_exit\kp_seq_path,用於透過kprobe來搶先在系統執行到這些函式的時候抹除對木馬程序的動作;
##建立核心模組自啟動/etc/sysconfig/modules/ati_remote3.modules寫入核心模組檔案/lib/modules/%s/kernel/drivers/input/misc/ati_remote3. ko釋放rmgr_fake_libc.so檔案到磁碟釋放rmgr_daemon檔案到磁碟,並以「[khelper]」進程名稱透過call_usermodehelper_exec運行它。
2. rmgr__fake_libc.so
此共用程式庫文件,由核心rootkit釋放寫入磁碟,路徑為/tmp/.tmp_{21個隨機字母數字},用於木馬的使用者態進程的行為隱藏。
subhook前綴的函數摘抄自開源程式碼(附錄2),詳細功能請移步github圍觀,本文不贅述。
fake前綴的函數主要用於對抗常見HIDS的進程和命令記錄,fork和execve直接透過syscall調用,而不使用glibc的封裝,避開了hook glibc方式的HIDS。
fake_bash_add_history則讓bash指令稽核功能失效。
3. rmgr_daemon
#此程序由rmgr.ko釋放寫入磁碟,路徑為/tmp/.tmp_{21個隨機字母數字}。由C 開發,編譯後upx加殼壓縮,直接用開源軟體upx -d rmgr_daemon即可脫殼,並無特殊處理。
它主要有的功能有:
1) 監控核心模組狀態,與核心rootkit資訊互動;
2) 更新;
3) 產生rmgr_fake_sshd,並且patchELF,修改依賴的動態函式庫,也就是加入rmgr_fake_libc.so,功能如前述;
##從核心取得路徑
#返迴路徑
5) 管理rmgr_fake_sshd;
4. rmgr_fake_sshd
檔案由rmgr_daemon寫入磁碟,路徑為/tmp/.tmp_{ 21個隨機字母數字},它的運作均由rmgr_daemon管理。 作為後門它硬編碼了PRIVATE KEY ,如下圖:監聽在本地的26657端口,rmgr_daemon連接此端口轉發來至C2的ssh指令。這裡實作了擬合業務環境常用網路協議,使得常規的NIDS的偵測邏輯被繞過。
第三個步驟:消除
這裡主要是指加固,避免被攻擊者以同樣的手法攻擊。具體手段如下:突破口加固,補丁更新,ACL加固。 維運通道,停用舊帳戶,修改攻擊連結中伺服器帳戶,並上雙重認證。 根據使用者角色限定可存取系統範圍。 受害系統dump保存虛機鏡像,待查。 重裝受害系統,重新發布部署業務環境。 新系統核心模組載入要求簽名校驗。
第四步:利用
完成緊急應變工作,分析完事件現場和文件之後,整個事件中提取到的關鍵資訊將沉澱為威脅情報。本文將威脅情報金字塔模型的內容縮減到iocs和ttps兩部分,ttps用att&ck矩陣模型做歸納。威脅情報金字塔模型
1. iocs
1) md5:
7d859a22f38f0bcd55a46bc8b67c40df
fa73b2fd914a0cfd5e7d#21
#fa73b2fd914a0cfd5e7d#2110hm2.yrnykx.com
2. ttps
從上節ttps可以看出來,att&ck矩陣並不能完全覆蓋此次木馬用於對抗安全系統的全部隱匿手段。
粗略的分類其隱匿(進程、網路、檔案)手段有:
C2透過fake_sshd避開NIDS的偵測;透過patchELF繞過hook libc的命令審計HIDS;
透過fake_bash_add_history讓shell審計失效;
透過patch seq_show修改系統對/proc下檔案資訊讀取的返回,實現對木馬相關的檔案、進程、網路連接資訊的隱匿;
透過patch vfs_readdir實現隱藏木馬檔案;
透過摘除內核進程、模組鍊錶訊息,避免被rookit偵測工具發現核心中木馬痕跡;
可見,此木馬套裝存在大量技術細節來對抗安全系統,不過它主要針對市面上已知的一些舊款HIDS和事後取證調查工具。核心態的進程派生syscall hook和inotify 雲端查殺還是可以發現它的。
木馬與安全系統的對抗維度
一套完整的木馬系統不可能僅僅因為一次滲透入侵而開發,必然會借鑒很多開源或者家族代碼。所以從溯源角度來說,可以做程式碼「考古」工作,同時將相關程式碼風格和木馬行為納入安全系統特徵庫。限於篇幅,暫不在此贅述。
第六步:傳播傳播即是本文本身。
總結事實上,實際的事件回應處置過程順序不可能完全跟上述流程一致。但走完整套流程,筆者認為才能算是安全事件處置圓滿的結束。其實,F3EAD流程比較重視情報從分析到應用(改善安全對抗能力),特別是在「分析」階段的反覆迭代。
F3EAD週期的分析階段(迭代)
從冰冷的情報到落地到我們安全系統安全能力的提升,這才實現了威脅情報的真正價值。
以上是如何進行基於威脅情報週期模型的APT木馬剖析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

ZoomEye線上的數據是覆蓋更新的模式,也就是說第2次掃描如果沒有掃描到數據就不會覆蓋更新數據,ZoomEye上的數據會保留第1次掃描獲取到的banner數據,這個機制在這裡種惡意攻擊溯源裡其實有著很好的場景契合點:惡意攻擊比如Botnet、APT等攻擊使用的下載伺服器被發現後一般都是直接停用拋棄,當然也有一些是被駭的目標,也是很暴力的直接下線!所以很多的攻擊現場很可能就被ZoomEye線上緩存。當然在ZoomEye歷史api裡提供的數據,不管你覆蓋不覆蓋都可以查詢出每次掃描得到的banner數

一般來說著名的Linux系統基本上分為兩大類:RedHat系列:Redhat、Centos、Fedora等;Debian系列:Debian、Ubuntu等。 yum(YellowdogUpdater,Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟體套件管理器。 apt(AdvancedPackagingTool)是一個在Debian和Ubuntu中的Shell前端軟體套件管理器。概述一般來說著名的Linux系統基本上分為兩大類:RedHat系列:Redhat、Cento

關於威脅情報處理週期模型「威脅情報處理週期」(F3EAD)一詞源自於軍事,是美陸軍為主戰兵種各級指揮官設計的組織資源、部署兵力的方法。網路緊急應變中心借鏡這套方法,分以下六個階段處理威脅情報資訊:威脅情報處理週期F3EAD威脅情報處理週期模型的應用第一步:找出某月某日,部署在合作方公有雲伺服器上的「洋蔥」系統警告發現疑似木馬程序,於是應急響應團隊快速啟動應急相應流程:幹係人等一鍵拉群,電話接入。受害系統隔離待查。安全系統、稽核日誌匯出待溯源分析。業務系統架構、程式碼相關資料準備,待分析入侵突破口及受

手動修改Ubuntu的apt-get來源1、用ssh工具連接到Ubuntu(我用的xshell)2、命令列敲入cd/etc/apt/3、備份此目錄下的source.list檔(要有sudo權限),此時就有了一個source.list.bak檔4、清空source.list檔內容(註:清空後不可恢復,所以需要執行上一步提前備份一下這個檔),此時用sudo提示權限不夠,直接切換到root用戶下執行這條指令5、用vim開啟source.list,按i鍵進入編輯模式把要修改的來源位址貼進來,然後按

在Deepin系統上安裝PHP8,您可以按照以下步驟進行操作:更新系統:打開終端,並執行以下命令來更新系統軟體包:sudoaptupdatesudoaptupgrade新增OndřejSurýPPA來源:PHP8可以透過OndřejSurýPPA來源進行安裝。執行下列命令來新增此來源:sudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:ondrej/php更新軟體包清單:執行下列命令來更新軟體包清單以取得PPA來源中的PHP

可以透過使用MySQL官方的APT儲存庫來安裝MySQL5.7。以下是在Ubuntu20.04系統上透過官方APT儲存庫安裝MySQL5.7的步驟:新增MySQLAPT儲存庫:wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.debsudodpkg-imysql -apt-config_0.8.17-1_all.deb在安裝過程中,您將看到一個設定介面。選擇MySQLServer版本為5.7,然後完成設定。更新軟體包列表:sud

yum是RedHat系列發行版(如RHEL和CentOS)中的套件管理器,而Ubuntu使用的是另一個套件管理器,名為apt(AdvancedPackageTool)。在Ubuntu系統中,您可以使用apt指令來管理軟體包。以下是在Ubuntu系統中安裝軟體包的基本步驟:更新軟體包索引在執行任何安裝操作之前,首先執行以下命令以更新軟體包索引:sudoaptupdate安裝軟體包使用以下命令來安裝特定的軟體包:sudoaptinstallpackage_name將」package_name̶

以下是Ubuntu18.04系統編譯安裝Docker的教學課程:卸載舊版Docker(如果已安裝):sudoaptremovedockerdocker-enginedocker.iocontainerdrunc更新系統軟體包:sudoaptupdatesudoaptupgrade安裝Dockeracties:sudoapt-capt-transport-Pet-transport-com官方的GPG金鑰:curl-
