Forecasting Malware Capabilities From Cyber Attack Memory Images 論文解讀
2. Overview
論文利用 DarkHotel APT 進行例子說明,此API利用魚叉式網路釣魚對系統進行感染,感染后便洗掉了原二進制檔案,運行于記憶體中插入一個執行緒到Explorer,并和C&C服務器進行通信,入侵檢測系統(IDS)會檢測到例外活動,同時中斷代理會捕獲可疑行程的memory,事件回應人員必須利用取證工具,快速知曉惡意程式的功能來防止進一步的破壞,
一些利用沙盒的動態分析工具并不使用,C&C會關閉,源代碼也會消除,通過取證工具(ie. Volatility)可以從記憶體影像中獲得memory image code和data pages,之后再利用符號分析工具分析路徑,但現有符號工具需要一個正確格式化的二進制檔案,并且沒有優化到與記憶體影像一起作業,
理想中,分析員可以重新構建整個代碼,但是這樣的作業會有很大的認知負擔,而分析員還得面對路徑爆炸,API Call模擬等可能不存在于memory image中
2.1 Hybrid Incident Response
分別基于取證工具和符號分析都各自具有一定缺點(高誤報率和路徑爆照),Forecast則通過反饋回圈將符號執行和記憶體取證結合起來
-
Context-Aware Memory Forensics.
符號分析通過代碼探索背景關系來準確找出那些被記憶體取證忽略的資料(data artifacts是啥意思),比如傳統的取證工具會由于自定義編碼而忽略C&C URL,但之后會對以這個URL作為引數的命令進行符號分析,
同樣記憶體影像為符號分析提供特定的值,防止路徑爆炸等錯誤
-
Path Probability
通過記憶體影像,Forecast可以預測可以得出一條路徑相對于其他路徑達到某種功能的概率,預測計算這種概率是基于建模,對具體和符號資料操作如何影響路徑生成和選擇(?),Forecast還利用這一概率指標作為啟發式方法來修剪具有最少具體資料的路徑,
2.2 Incident Response with Forecast
通過DarkHotel APT進行說明,將記憶體影像放入Forecast中,然后經過6個步驟:
- Forecast對記憶體影像進行取證分析,并通過將最后的CPU和記憶體狀態加載到一個符號環境中進行分析,重建先前的執行環境,在分析記憶體影像時,Forecast觀察了加載的庫,以確定匯出的函式名稱和地址,
- 預測開始探索可能的路徑,利用記憶體影像中的可用具體資料來具體化路徑約束,
- Forecast通過建模和權衡每個路徑是如何被具體的資料誘發的,并且給生成的每個路徑分發一個概率,
- 然后,Forecast使用這個概率作為權重來調整回圈界限,并修剪錯誤的路徑,使Forecast能夠縮小與功能相關的路徑,
- Forecast將確定的API與功能分析插件庫(?)相匹配,以向分析人員報告功能,
- 最終,Forecast確定了三種能力,并從路徑概率中得出它們的預測百分比分別為31%、15%和54%,

3. System Architecture
Forecast是一種檢測后事件應急技術,只需要輸入記憶體影像就能輸出每個被發現的功能,預測概率,功能目標的文本你
重構執行環境:Forecast可以通過記憶體影像獲得執行狀態(eg. code pages,loaded API, 暫存器的值),對code pages進行靜態分析,可以初始化符號分析
Forecast符號地執行被拆解的代碼頁的CPU語意,直到遇到一個無法確定的控制流,為了解決這個問題,Forecast遞回地跟蹤代碼塊以解決新的CFG路徑,當到達一個library call時,library call被符號化,library call模擬為每個探索的狀態引入了符號資料,從而增加了狀態爆炸的可能性,然而,\(D_C(s)\)模型提供了優化指標,使預測公司能夠動態地調整回圈邊界、符號控制流和路徑修剪的引數,
3.1 Modeling Concreteness to Guide Capability Forecasting
模型的主要思想時,使用符號化資料比例越少的路徑越容易到達,這里用舉的例子進行說明,

其中:
\[D_C(s_n) = 1 - \frac{\sum^{n}_{i=j}{\frac{|Sym\_Ops_i|}{|All\_Ops_i|}}}{|\tau_n|} \]從CFG中可以看出,符號化的命令均為藍色,每個\(D_C(s_n)\)為\(1-符號命令數/總命令數\)的疊加和,由于\(BB_2\)為具體的值,所以\(BB_5\)沒有達到
3.2 DC(s)-Guided Symbolic Analysis
一些抗符號執行的惡意軟體會對現有符號執行工具造成困難,然而,通過對探索中不斷變化的具體狀態進行建模,Forecast可以在運行時動態地調整這些閾值,
-
Adapting Loop Bounds
預測優化了回圈,只在DC(s)表明隨著時間的推移出現了嚴重的符號化狀態時(具體來說,當DC(s)在10個狀態轉換后下降到0.10以下時)才強制一個界限,這種優化精確地衡量了一個回圈對一個狀態的影響程度,以決定何時對其進行約束,我們觀察到,與無害的回圈不同,引起爆炸的回圈在兩次或更多的轉換后,DC(s)會收斂到0.10,
-
Adapting Loop Bounds
當性能被過度的狀態符號所淹沒時,Forecast通過選擇性能最差的狀態來優先修剪,在DC(s)下,這種選擇是小case(trivial不知道咋翻譯)的,因為每個狀態都有一個DC(s)得分,它被用來修剪具有沉重符號足跡的狀態,在第4.6節中,與通過硬編碼閾值修剪路徑的工具相比,按需修剪使得Forecast走向更具體的路徑--導致Forecast在選定的路徑中進行更深入的探索,
-
Stack Backtrace Analysis
符號分析中經常會出現錯誤繼承路徑,Forecast通過位于記憶體影像的堆疊的回傳值來判斷是否為錯誤路徑,具體來說,堆疊回溯使預測能夠通過比較回溯中的堆疊指標和回傳地址與執行回傳指令后的計算結果來驗證流程正確性,
-
Address Concretization
Forecast使用記憶體影像資料空間,將符號索引具體化到一個可操作的范圍,此外,我們觀察到錯誤的狀態會進行非法的索引訪問(索引超出行程的映射代碼/資料空間),Forecast使用這個指標來剪除這些狀態,此外,Forecast的分析對地址空間布局隨機化(ASLR)是透明的,因為ASLR是在行程加載時,在執行前完成的,
-
Library Function Simulation.
預測分析記憶體影像中存在的庫,以識別匯出的函式,被識別的函式被鉤住,將符號探索重定向到模擬程式,Forecast還通過呼叫LoadLibrary函式來處理動態庫加載,如果在符號探索期間加載了一個庫,Forecast會在記憶體中為加載的庫創建一個新的部分,一旦呼叫GetProcAddress,就會在庫的記憶體部分分配一個新的地址并掛起,然后回傳這個地址,任何對這個地址的呼叫將被重定向到正確的模擬程式,
3.3 Forecasting Malware Capabilities
明天繼續(
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/506085.html
標籤:其他
上一篇:vlan原理與配置
