在 Malcolm 裡,Arkime 是非常重要的一個分析元件。
很多人第一次看到 Arkime,會把它理解成「PCAP Viewer」,但這個理解其實不完整。
Arkime 真正的價值,是讓資安分析師可以從大量網路流量中,先找到「值得注意的 Session」,再一路深入到封包、Payload,甚至把相關 PCAP 匯出,進一步進行 Network Forensics。
更重要的是,Malcolm 不只把 Arkime 原本的 PCAP Session 放進來,還把 Zeek Logs 映射到 Arkime 的 Session 資料模型。也就是說,即使沒有完整 PCAP,分析師仍然可以用 Arkime 的介面搜尋與分析 Zeek Logs;如果同時有 PCAP,則可以進一步往封包內容深入。
所以,理解 Malcolm 的 Arkime,最重要的是掌握這條線:
Session → 關聯 → 搜尋 → 視覺化 → PCAP → Payload → 調查
本文把 Malcolm 官方 Arkime 文件整理成 6 大項:
先把最基本的問題搞清楚:
Arkime 是做什麼的?
Arkime 的核心概念是「Session」。
一般網路分析中,直接面對大量 PCAP 會非常困難。
例如一天可能產生數百 GB 甚至 TB 的封包。
分析人員如果直接從完整 PCAP 開始翻,效率非常低。
Arkime 的做法,是先把網路流量整理成 Session,建立 Session Profile Information,也就是 SPI / Session Metadata。
因此分析人員可以先看到:
| 分析資訊 | 可以回答的問題 |
|---|---|
| Source IP | 誰發起連線? |
| Destination IP | 連到哪裡? |
| Source / Destination Port | 使用什麼服務? |
| Protocol | 用什麼通訊協定? |
| 時間 | 什麼時間發生? |
| Session | 這次通訊持續多久? |
| Metadata | 這條連線具有什麼特徵? |
這樣的好處是:
不需要一開始就看封包,而是先找到「值得看的連線」。
Malcolm 裡的 Arkime,因此更適合被理解為:
「從大量網路流量中快速定位可疑 Session,再深入到封包鑑識的分析工作台。」
這是 Malcolm Arkime 最重要、也是最有特色的地方之一。
一般 Arkime 可以從 PCAP 建立 Session Metadata。
而 Zeek 也可以從網路流量產生大量 Logs。
問題是:
「這兩套資料怎麼知道它們其實來自同一條網路連線?」
Malcolm 就在這裡做了整合。
官方文件指出,Malcolm 會把 Zeek Logs 對應到 Arkime Session Schema;Zeek 沒有對應的欄位,也可以建立新的 Arkime 欄位保存。這讓 Zeek Logs 可以使用與 Arkime Session 類似的介面進行搜尋與分析。
更重要的是,它可以透過共同欄位把不同資料來源關聯起來。
其中最重要的是:
Community ID
以及:
Zeek UID
Malcolm 會將 Zeek 的 connection UID 與 Arkime 的相關欄位做對應,因此分析師可以從同一條網路連線,把 Arkime Session 與不同種類的 Zeek Logs 串起來。
例如一個事件可能同時產生:
conn.log
dns.log
http.log
weird.log
而這些資料可以透過關聯欄位找到同一條連線相關的紀錄。
可以把這個概念整理成:
| 資料來源 | 看到的東西 | 與 Arkime 的關係 |
|---|---|---|
| Arkime Session | Session Metadata | 原生資料 |
| Zeek conn.log | Connection | 可映射至 Session |
| Zeek dns.log | DNS 活動 | 可與連線關聯 |
| Zeek http.log | HTTP 活動 | 可與連線關聯 |
| Zeek weird.log | 異常網路行為 | 可與連線關聯 |
| PCAP | 完整封包 | 最底層證據 |
因此 Malcolm 的真正價值不是「把 Zeek 與 Arkime 放在一起」。
而是:
讓分析師可以從同一條 Network Connection,在不同資料層之間 Pivot。
Sessions View 是 Arkime 的主要工作區。
分析師可以先用搜尋條件縮小資料範圍,再從 Session 清單逐筆查看。
官方提供的主要控制能力包括:
分析師可以依照時間、IP、Protocol、Metadata 等條件過濾資料,再展開特定 Session。
如果這筆紀錄來自 PCAP,情況就更進一步。
Arkime 可以讀取這個 Session 所包含的封包,提供:
| 功能 | 用途 |
|---|---|
| Packet View | 查看封包 |
| Natural Decoding | 依協定解碼 |
| Show Images & Files | 顯示可辨識的檔案/影像 |
| PCAP Download | 下載封包 |
| File / Image Carving | 萃取可識別內容 |
| Decode Filter | 套用解碼分析 |
| CyberChef | 進一步分析 Payload |
官方也特別指出,Zeek-only 的紀錄雖然可以在 Session View 裡使用,但因為沒有完整 PCAP,所以不能使用需要原始封包的功能,例如 Packet View、PCAP Export 等。
這個差異非常重要:
| 情況 | 可以看 Metadata | 可以看完整 Packet | 可以做 Payload 調查 |
|---|---|---|---|
| 只有 Zeek Logs | ✓ | ✕ | ✕ |
| Arkime + PCAP | ✓ | ✓ | ✓ |
| Zeek + Arkime + PCAP | ✓ | ✓ | ✓,且資訊更完整 |
所以不能說:
「有 Zeek 就等於有 PCAP。」
兩者的調查深度不同。
如果 Sessions 是在看單筆事件,那麼 SPIView、SPIGraph 與 Connections 則是在看:
「整體網路行為有沒有異常?」
SPIView 會把 Session / Log 中的重要欄位整理出來,例如:
Protocol
Source IP
Destination IP
Port
以及其他 Malcolm 理解的網路流量欄位。
分析師可以查看 Top N 值、欄位的 Cardinality,再進一步點進特定欄位或值進行過濾。
因此 SPIView 比較像:
「快速了解這段時間網路流量長什麼樣子。」
SPIGraph 則把特定欄位的出現情況放到時間軸上。
這對 Threat Hunting 很有價值。
例如某台主機:
每隔固定時間
連到某個目的地
每次流量量都不大
但非常規律。
這種模式有時可能代表:
官方直接以規律出現的 Protocol 流量作為 Beaconing 等行為的分析例子。
所以:
| 功能 | 主要問題 |
|---|---|
| Sessions | 「這一條連線發生什麼?」 |
| SPIView | 「這段時間什麼流量最多?」 |
| SPIGraph | 「這個行為是否有異常規律?」 |
Connections View 則把主機之間的通訊關係做成 Graph。
預設可以使用:
Source IP
Destination IP
Destination Port
但也可以使用其他欄位,例如:
等。
分析師可以看到:
「誰跟誰通訊?」
「哪台主機是主要來源?」
「哪台主機是主要目的地?」
「哪些節點有大量關聯?」
官方也允許直接點擊節點或連線來改變搜尋條件。
因此 Connections 可以理解成:
把「Log 搜尋」轉換成「網路關係分析」。
這是 Arkime 很重要的一個功能。
前面的:
Sessions
SPIView
SPIGraph
Connections
主要還是在分析:
Metadata
Hunt 則不同。
它可以直接搜尋:
Packet Payload
也就是:
「封包裡面到底有沒有某個東西?」
官方 Hunt 支援:
| 搜尋方式 | 用途 |
|---|---|
| ASCII | 搜尋文字 |
| Case-sensitive ASCII | 區分大小寫 |
| Hex | 搜尋十六進位內容 |
| Regex | 正規表示式 |
| Hex Regex | 十六進位+正規表示式 |
還可以指定:
Source Packet
Destination Packet
Both
Raw Packet
Reassembled Packet
以及每個 Session 最大搜尋封包量。
這時候調查邏輯就變成:
「我知道這個 IP 很可疑。」
↓
「找到相關 Session。」
↓
「從 PCAP 裡面找特定字串。」
↓
「發現 Payload 裡有相關內容。」
↓
「回到 Sessions 查看命中的 Session。」
這就已經從 Network Monitoring 進入:
Network Forensics
但這裡有一個非常重要的限制:
Hunt 只能用在有完整 PCAP 建立的 Session。
Zeek-only 的 Log 沒有原始封包,因此無法進行 Payload Hunt。
最後三個功能容易被忽略,但對正式環境很重要。
Statistics 可以查看:
PCAP Files
OpenSearch Indices
Query History
等資訊。
這讓管理人員可以知道:
「目前處理了哪些 PCAP?」
「資料在哪些 Index?」
「分析師最近做過哪些 Query?」
官方也提供 Files、ES Indices 與 History 等檢視功能。
Settings 可以管理:
這讓不同資安人員可以依自己的調查方式建立不同 View。
WISE 是 Arkime 的情報擴充機制。
官方說明,WISE 會利用 Data Feeds 強化 Arkime Logs,而且它是早期 Tagger Plugin 的後繼方案。
這表示 Arkime 不只是:
「看到一個 IP。」
還可以進一步加入:
Threat Intelligence
IOC
其他外部資料
讓分析結果具有更多 Context。
因此可以理解成:
Arkime 負責看到網路活動,WISE 負責讓這些活動更有背景。
| 大項 | 核心功能 | 分析師主要在問什麼? | 需要 PCAP 嗎? |
|---|---|---|---|
| 1. Arkime / Zeek Integration | Session 與 Zeek Log 整合 | 「不同資料是不是來自同一條連線?」 | 否 |
| 2. Sessions | Session 搜尋與詳細分析 | 「這條連線發生了什麼?」 | Metadata 不需要 |
| 3. PCAP / Packet Analysis | 封包檢視、匯出、Carving | 「封包裡面到底發生什麼?」 | ✓ |
| 4. SPI / Connections | 統計、趨勢、關係圖 | 「整個網路行為有沒有異常?」 | 不一定 |
| 5. Hunt | Payload 搜尋 | 「封包內容是否包含特定證據?」 | ✓ |
| 6. Statistics / Settings / WISE | 管理、設定、Threat Intelligence | 「平台狀態如何?還能增加哪些 Context?」 | 不一定 |
如果把前面幾篇 Malcolm 文件串起來,Arkime 的位置其實就非常清楚。
Network Traffic
↓
Sensor
↓
PCAP + Zeek
↓
Malcolm
↓
Arkime + OpenSearch
↓
分析師
在這裡:
| 層次 | 主要角色 |
|---|---|
| Network Traffic | 原始網路活動 |
| Zeek | 將流量轉成 Metadata |
| Arkime | Session / PCAP 深度分析 |
| OpenSearch | 儲存、索引與搜尋 |
| Malcolm | 整合上述元件 |
| SOC / IR | 最終事件調查 |
因此 Arkime 並不是 Malcolm 的「附屬介面」。
它其實是 Malcolm 中負責:
「從網路事件一路追到封包證據」
的重要分析工具。
如果只把 Arkime 當成:
「PCAP Viewer」
其實會低估它。
Arkime 在 Malcolm 裡真正形成的是一條調查路徑:
Metadata
→
Session
→
關聯 Zeek Logs
→
找出可疑流量
→
回到 PCAP
→
查看 Packet / Payload
→
匯出證據
這也是 Malcolm 把 Arkime 與 Zeek 整合起來的真正價值。
更重要的是,這條路徑也說明了一件事:
不是所有資安事件都需要一開始就看 PCAP。
比較有效率的方式,通常是先利用 Metadata 篩選,再進一步深入。
因此可以把 Arkime 的調查思維濃縮成:
先找 Session,再找證據。
而 Malcolm 的整體設計,則是在這個基礎上再加入 Zeek、OpenSearch、Threat Intelligence、Asset Context 等資訊,讓分析師不用在不同工具之間反覆切換。
本文主要依據 Malcolm 官方 Arkime 文件,包括 Zeek Log Integration、Sessions、PCAP Export、SPIView、SPIGraph、Connections、Hunt、Statistics、Settings 與 WISE 等章節整理。