DAY44 中的惡意程式要如何安全的跑起來觀察
Sandbox 沙箱
一個被隔離、受限制的測試環境
用來安全的執行可疑程式,並觀察行為
假設今天下載了一個.exe檔
但我不確定它是不是正常的程式
這時如果直接在電腦上執行
電腦就有被感染的風險
所以就可以改成先把這程式放進沙箱中
觀察它做了什麼事
確定安全後再移植到正常電腦中
沙箱Sandbox = 隔離執行可疑程式+觀察行為
屬於:
動態分析 Dynamic Analysis
程式真正跑起來,再觀察行為
假設一個可疑程式執行後:
例如:
執行了A程式後
自動啟動B程式
父程序->子程序
的關係可以去分析
觀察登錄檔是否被修改
例如:
修改某些設定,讓電腦重新開機後自動啟動惡意程序
DAY34提到的持久化就是屬於這個
例如程式執行後:
突然連接到某個未知的IP
並開始下載檔案/傳送資料等等
Sandbox Evasion 沙箱逃避
惡意程式會嘗試判斷自己是不是正在沙箱或自動分析環境中執行
故意不表現真正的惡意行為,以躲避偵測簡單來說就是它在裝乖,因為它知道有人在看
假設有一個惡意程式它的功能是:
如果它在沙箱環境中直接釋出這些惡意功能
分析就很明顯知道它是惡意程式
所以惡意程式可能會:
先檢查這個環境
只要像是沙箱
它就不做壞事,讓分析結果是正常的
假設有一個自動沙箱
它會觀察程式10分鐘
那惡意程式如果設計成
啟動後等待1小時才會執行惡意行為
那沙箱觀察10分鐘後可能就會覺得
什麼事也沒發生
判定沒有惡意行為
分析結束
時間延遲
躲過短時間的自動分析
惡意程式可能設計成
必須有真人進行電腦操作才會啟動
例如:
IPAS 115-1 Q32
某惡意程式執行初期會延遲數十分鐘
並要求使用者進行滑鼠、鍵盤互動
條件沒滿足就結束不執行
最主要是削弱哪個防護機制?
D 自動化沙箱動態分析
這題在詢問的就是沙箱逃避
有些惡意程式會檢查
這台機器像不像分析環境
例如:
如果發現有可能是分析環境
就停止不執行惡意行為
| 名稱 | 沙箱逃避 | 沙箱逃逸 |
|---|---|---|
| 英文 | Evasion | Escape |
| 意思差異 | 躲避分析/偵測 | 程式突破隔離邊界,逃到主機或其他環境 |
| 名稱 | 動態分析 | 靜態分析 |
|---|---|---|
| 英文 | Dynamic | Static |
| 用途 | 程式跑起來,看它實際行為 | 不執行可疑程式,直接分析它 |
而
沙箱 屬於動態分析
特徵碼掃描 屬於靜態分析
假設今天遇到一個可疑程式: