您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何進行基于威脅情報周期模型的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來搶先在系統執行到這些函數的時候抹除對木馬進程的操作;
3) 上述kp結構注冊的處理函數,fake_seq_path用于摘除內核進程鏈表;
4) 當系統有讀“/proc/net/tcp”文件的時候,由fake_seq_show處理,抹除木馬網絡連接;
5) 在fake_sys_getdents中patch vfs_readdir,抹除與木馬相關的所有信息;
6) 當系統對木馬相關文件訪問的時候,會由fake_filldir處理,根據判斷調用者是否木馬操作來決定是否返回正確結果;
7) 在內核模塊鏈表中刪除自己,kobject_del刪除自己的內核對象;
8) kthread_create創建內核線程dot_thread
創建內核模塊自啟動/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,功能如前述;
從內核獲取路徑
返回路徑
patch ELF
4) 連接C2 hm2.yrnykx.com;5) 管理rmgr_fake_sshd;
其中patchELF代碼摘抄自GitHub - NixOS/patchelf (附錄3)
4. rmgr_fake_sshd
文件由rmgr_daemon寫入磁盤,路徑為/tmp/.tmp_{21個隨機字母數字},它的運行均由rmgr_daemon管理。
作為后門它硬編碼了PRIVATE KEY ,如下圖:
因為通過patchELF hook了部分函數,實現了ssh登錄之后的命令執行等行為的隱匿。而rmgr_fake_sshd本身,以及ssh登錄派生的子進程均通過rmgr.ko根據前述分析通過patch內核調用實現隱匿。
rmgr_fake_sshd啟動時加載了硬編碼的sshd_config,請注意其中幾個關鍵配置。監聽在本地的26657端口,rmgr_daemon連接此端口轉發來至C2的ssh指令。這里實現了擬合業務環境常用網絡協議,使得常規的NIDS的檢測邏輯被繞過。
這里主要是指加固,避免被攻擊者以同樣的手法攻擊。具體手段如下:
突破口加固,補丁更新,ACL加固。
運維通道,停用舊賬戶,修改攻擊鏈路中服務器賬戶,并上雙因素認證。
根據用戶角色限定可訪問系統范圍。
受害系統dump保存虛機鏡像,待查。
重裝受害系統,重新發布部署業務環境。
新系統內核模塊加載要求簽名校驗。
完成應急響應工作,分析完事件現場和文件之后,整個事件中提取到的關鍵信息將沉淀為威脅情報。本文將威脅情報金字塔模型的內容縮減到iocs和ttps兩部分,ttps用att&ck矩陣模型做歸納。威脅情報金字塔模型
1. iocs
1) md5:
7d859a22f38f0bcd55a46bc8b67c40df
fa73b2fd914a0cfd5e7d3161af903b6c
2) c2:
hm2.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木馬剖析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。