大家好!歡迎來到鐵人賽第二十八天。
在前面的實作中,我們處理了「已知攻擊(如暴力破解)」與「已知惡意 IP」。但在資安防禦實務中,我們經常會遇到「未知」的威脅:例如員工下載了一個看似正常的 PDF 或執行檔,防毒軟體沒有發出警告,但行為卻十分可疑。
對於這類未知檔案,資安人員通常會將其丟進沙箱(Sandbox)中,在一個隔離的虛擬環境裡「引爆」它,觀察它是否會偷偷連線到中繼站、修改登錄檔或是植入後門。
如果每次都要手動上傳檔案分析,效率會非常低。因此,今天我們要實作「可疑檔案自動化沙箱分析」,讓 n8n 接收到 Wazuh 的檔案變更告警後,自動調用威脅分析 API,並讓 Gemini AI 解讀沙箱行為報告,最終將結果推送到 LINE。
/tmp 目錄下被建立了一個可疑的執行檔,並在告警中附帶了該檔案的 SHA256 Hash(雜湊值)。當 Wazuh 的 FIM 模組發送告警到 n8n 的 Webhook 時,JSON 結構中會包含檔案的雜湊值。
在 Webhook 節點後方,我們可以透過以下變數取得該檔案的 SHA256 Hash:
{{ $json.body.syscheck.path }}
{{ $json.body.syscheck.sha256_after }}
這個 Hash 值將是我們今天向沙箱查詢情報的「指紋」。
我們新增一個 HTTP Request 節點,用來查詢這個 Hash 在 VirusTotal 上的沙箱行為紀錄。
GET
[https://www.virustotal.com/api/v3/files/](https://www.virustotal.com/api/v3/files/){{ $json.body.syscheck.sha256_after }}
VirusTotal API Key 憑證。執行此節點後,VT 會回傳一份龐大的 JSON 報告。其中我們最需要關注的欄位是 data.attributes.meaningful_name(檔案可能偽裝的名稱)以及 data.attributes.popular_threat_classification(主流威脅分類,如 Ransomware 或 Trojan)。
取得沙箱報告後,我們新增一個 Google Gemini (Message a model) 節點,讓 AI 擔任我們的惡意程式分析師。
你是一位專精於惡意程式與沙箱分析的資安專家。請根據以下擷取的檔案分析報告,判斷該檔案是否有惡意行為(如植入木馬、勒索、中繼站連線)。請用繁體中文撰寫一段 100 字以內的「沙箱分析摘要」,並給出【高風險】、【中風險】或【安全】的結論。
【檔案基本資訊】
檔案路徑:{{ $('Webhook').item.json.body.syscheck.path }}
檔案 Hash:{{ $('Webhook').item.json.body.syscheck.sha256_after }}
【沙箱與威脅情報特徵】
檔案名稱:{{ $json.data.attributes.meaningful_name }}
威脅標籤:{{ $json.data.attributes.tags.join(', ') }}
防毒引擎偵測率:{{ $json.data.attributes.last_analysis_stats.malicious }} / 90
主流威脅分類:{{ JSON.stringify($json.data.attributes.popular_threat_classification) }}
經過 AI 濃縮後,我們就可以將這份具備高度價值的情報推送到 LINE,讓維運團隊決定下一步的動作。
新增一個 LINE HTTP Request 節點:
POST
[https://api.line.me/v2/bot/message/push](https://api.line.me/v2/bot/message/push)
{
"to": "你的_LINE_群組_ID",
"messages": [
{
"type": "text",
"text": "📦 【沙箱分析報告】偵測到未知檔案變更\n\n📂 路徑:{{ $('Webhook').item.json.body.syscheck.path }}\n🔍 Hash:{{ $('Webhook').item.json.body.syscheck.sha256_after }}\n\n🔬 AI 沙箱行為解析:\n{{ $json.text }}"
}
]
}
今天的「檔案沙箱分析」工作流架構如下:
Wazuh (FIM 模組偵測到可疑檔案建立)
↓
Webhook (取得 SHA256 Hash)
↓
HTTP Request (向 VirusTotal 查詢該 Hash 的沙箱行為)
↓
Gemini AI (解讀 JSON 報告,輸出威脅摘要)
↓
LINE HTTP Request (發送分析報告)
測試方法:
你可以手動在 Wazuh 監控的 Linux 伺服器上,使用 wget 下載一個 EICAR 測試檔(全球防毒軟體通用的無害測試病毒檔)到 /tmp 目錄下。Wazuh 偵測到後會觸發這條管線,你的 LINE 就會收到 AI 判讀出該檔案為「EICAR 測試病毒」的精準報告!
今天我們將 SOAR 系統的分析能力,從「單純的 IP」升級到了「檔案與沙箱層級」。
在傳統維運中,遇到不明檔案時,工程師需要花費數十分鐘手動下載、上傳沙箱、肉眼查看長篇大論的行為報告。透過 n8n 與 Gemini 的結合,系統在發現未知檔案的幾秒鐘內,就能自動完成情報收集與 AI 解讀,直接把「結論」送到你的手機裡。
明天(Day 29),鐵人賽即將進入尾聲。我們將實作這套系統的最後一塊拼圖:「一鍵生成 PDF 資安事件完整報告」,讓你的 SOAR 系統不只能自動防禦,還能幫你把結案報告排版得漂漂亮亮!我們明天見。