
摘要
本報告深入探討 SSH 大型語言模型(LLM)誘捕系統(Honeypot)的技術細節,特別聚焦於 Beelzebub 框架,並分析真實 threat actor 與此系統互動的行為。報告進一步檢視由 threat actor 部署的基於 Perl 的殭屍網路腳本的特性和運作機制,提供誘捕系統防禦能力與攻擊者方法的全面技術分析。本報告的目標是突顯 LLM 驅動的誘捕系統在捕捉複雜攻擊模式方面的有效性,並剖析觀察到的 malicious activities 的技術組成。

1. 簡介
網路安全威脅不斷演變,需採用先進的防禦機制。誘捕系統在此環境中扮演關鍵角色,作為誘餌系統(Honeypot),用於吸引、捕獲及分析網路攻擊。傳統誘捕系統常因真實性不足,易被複雜攻擊者識破。大型語言模型(LLMs)的出現為誘捕系統設計帶來變革,使其能創建高度互動且逼真的環境,模擬真實系統 [1]。本報告調查了一個 SSH LLM 誘捕系統(Beelzebub 框架)成功與真實 threat actor 互動的案例,捕獲其戰術、技術和程序(Tactics, Techniques, and Procedures,TTPs)的寶貴情報。分析進一步涵蓋攻擊者使用的基於 Perl 的殭屍網路腳本,闡明其架構與功能。
2. Beelzebub LLM 誘捕系統架構
Beelzebub 框架是一個開源、低程式碼的誘捕系統解決方案,專為檢測和分析網路攻擊而設計。其關鍵創新在於整合 LLMs,使其能模擬高度互動的環境,同時保持低互動架構以增強安全性和可管理性 [2]。這種混合方法解決了誘捕系統部署的重大挑戰:平衡真實性與控制及安全性。該框架支援多種協議,包括 SSH、HTTP 和 MCP(Malicious Content Protection),並設計為可透過 Docker、Go 編譯器或 Kubernetes 輕鬆部署 [2]。
2.1. 設定與模組化
Beelzebub 的設定主要基於 YAML,強調模組化和易用性。服務及其行為定義於獨立的 YAML 檔案中,使管理員能快速設定和自訂各種誘捕系統場景。對於 SSH LLM 誘捕系統,設定檔案如
ssh-2222.yaml
指定協議、位址、描述,以及最重要的命令和 LLM 外掛 [1]。
初始文章 [1] 中展示的一個典型 SSH LLM 誘捕系統設定片段,體現了這種模組化:
- apiVersion: "v1"
- protocol: "ssh"
- address: ":2222"
- description: "SSH interactive ChatGPT"
- commands:
- - regex: "^(.+)$"
- plugin: "LLMHoneypot"
- serverVersion: "OpenSSH"
- serverName: "ubuntu"
- passwordRegex: "^(root|qwerty|Smoker666|123456|jenkins|minecraft|sinus|alex|postgres|Ly123456)$"
- deadlineTimeoutSeconds: 120
- plugin:
- llmProvider: "openai"
- llmModel: "gpt-4o"
- openAISecretKey: "sk-proj-1234567890"
此設定定義了一個在 2222 通訊埠監聽的 SSH 服務。
commands
部分使用正則表達式
^(.+)$
,表示所有由 threat actor 輸入的命令將由
LLMHoneypot
外掛處理。此外掛利用 LLM(例如 OpenAI 的 GPT-4o)生成動態且與環境相關的回應,使誘捕系統看似真實的互動系統。
passwordRegex
欄位對於捕捉常見或暴力破解的認證至關重要,而
deadlineTimeoutSeconds
則管理 session 的持續時間。
2.2. 核心組件與互動流程
Beelzebub 框架以 Go 語言編寫,包含幾個促進其運作的關鍵組件。根據對原始碼的分析,特別是
protocol_manager.go
和
configurations_parser.go
,其核心架構可理解如下:
-
設定解析器(
parser
套件): 此組件負責解析 YAML 設定檔案。configurations_parser.go
檔案定義了如BeelzebubCoreConfigurations
和BeelzebubServiceConfiguration
的結構,直接對應 YAML 結構。包括ParseCoreConfiguration
和ParseServiceConfiguration
等函數,用於讀取和解序列化 YAML 內容至 Go 結構體,以及ValidateServiceConfiguration
確保設定的完整性和正確性 [3]。這種模組化解析允許靈活且可擴展的誘捕系統定義。 -
協議管理器(
protocols
套件):protocol_manager.go
檔案定義了ProtocolManager
結構和ServiceStrategy
介面。每個支援的協議(SSH、HTTP、MCP)實現此ServiceStrategy
介面,提供其特定的初始化和處理邏輯。InitProtocolManager
函數以具體的 tracer 和服務策略初始化管理器,有效連結誘捕系統的行為與定義的協議及其相關的 LLM 或命令處理邏輯 [4]。 -
外掛:
如 SSH 設定所示,
LLMHoneypot
等外掛是 Beelzebub 互動能力的核心。這些外掛解釋從 threat actor 接收的命令,並在 LLM 驅動的誘捕系統中,將其轉發至設定的 LLM 提供者。LLM 的回應隨後回傳給攻擊者,創造動態且適應性的互動。這使誘捕系統能智能回應各種命令,讓攻擊者難以察覺其為模擬環境。 -
Tracer:
tracer
組件(在protocol_manager.go
中引用)負責記錄和追蹤誘捕系統內的互動。這對於收集攻擊者行為情報至關重要,包括執行的命令、下載的檔案和嘗試的漏洞攻擊。收集的資料可用於事件後分析、威脅情報收集和改進防禦策略。
Beelzebub SSH LLM 誘捕系統的互動流程可總結如下:攻擊者連接到誘捕系統的 SSH 通訊埠。
ProtocolManager
(設定 SSH
ServiceStrategy
)處理連接。使用者輸入(命令)被捕獲並傳遞至
LLMHoneypot
外掛。此外掛以命令和當前 session 環境查詢 LLM。LLM 生成合理回應,隨後回傳給攻擊者。同時,
tracer
記錄所有互動,提供詳細的鑑識追蹤。
3. Threat Actor 攻擊與 Perl 殭屍網路腳本分析
提供的案例研究突顯了一個真實場景,threat actor 與 Beelzebub SSH LLM 誘捕系統的互動。攻擊者的行動,包括嘗試下載和執行 malicious binaries,提供了其運作方法的寶貴洞察。攻擊的關鍵組件是部署基於 Perl 的殭屍網路腳本。
3.1. Threat Actor 行為
threat actor 的初始行動涉及偵察命令,如
uname -a;uptime;nproc
,表明試圖收集被滲透系統的資訊。隨後,攻擊者嘗試從遠端伺服器下載並執行名為
sshd
的二進制檔案(
http://deep-fm.de/tmp/files/sshd
)[1]。即使在權限被拒錯誤和變更目錄後仍重複嘗試執行此檔案,顯示其堅持和對誘捕系統本質的無立即懷疑。下載
emech.tar.gz
並隨後解壓縮進一步表明試圖建立更持久的存在或部署額外工具。
3.2. Perl 殭屍網路腳本分析
觀察到的主要 malicious payload 是一個名為
sshd
的 Perl 腳本,作為後門和殭屍網路客戶端 [1]。Perl 腳本因其跨平台相容性和易於編寫及混淆,常為攻擊者青睞。此類腳本的分析通常涉及檢查其網路通訊模式、命令與控制(C2)機制及其實現的特定功能 [5]。
如原始文章所述,Perl 腳本的關鍵部分揭示了其 C2 設定 [1]:
- $server = 'ix1.undernet.org' unless $server;
- my $port = '6667';
- my $linas_max='8';
- my $sleep='5';
- my $homedir = "/tmp";
- my $version = 'rootbox PerlBot v2.0';
- my @admins = ("warlock`");
- my @hostauth = ("terr0r.users.undernet.org");
- my @channels = ("#rootbox", "#c0d3rs-TeaM");
此程式碼片段提供了殭屍網路 C2 基礎架構的直接證據。關鍵元素包括:
-
IRC 伺服器:
ix1.undernet.org
。這表明殭屍網路利用 Internet Relay Chat(IRC)進行 C2 通訊。基於 IRC 的殭屍網路是一種經典架構,bot 連接到預設的 IRC 伺服器和頻道以接收來自 botmaster 的命令 [6]。 -
通訊埠:
6667
。這是 IRC 通訊的標準通訊埠。 -
頻道:
#rootbox
和#c0d3rs-TeaM
。這些是被滲透的系統(bots)加入以等待 botmaster 命令的特定 IRC 頻道。使用多個頻道提供了 redundancy,並可能允許不同的命令集或 bot 群組。 -
版本字串:
rootbox PerlBot v2.0
。此字串可用於識別目的,可能表明殭屍網路的特定變體或家族。 -
管理員與主機認證:
@admins
和@hostauth
陣列表明可能的 botmaster 或授權主機認證機制,雖然其具體實現需深入分析完整腳本。
此類 Perl 殭屍網路腳本的功能通常包括在被滲透主機上執行任意命令、發動分散式阻斷服務(DDoS)攻擊、發送垃圾郵件或作為代理。由於其連接到 IRC 頻道進行 C2 操作,顯示了一種簡單且能同時管理大量 bot 的常見(儘管較舊)殭屍網路控制方法 [7]。
4. 結論
SSH LLM 誘捕系統成功與真實 threat actor 互動的案例展示了 AI 驅動防禦系統的巨大潛力。Beelzebub 框架憑藉其模組化設計和 LLM 整合,提供了一個創建真實且互動性誘捕系統的強大平台,能有效欺騙和分析複雜攻擊者。對 threat actor 命令的詳細捕獲以及對基於 Perl 的殭屍網路腳本的後續分析,突顯了此類部署可收集的寶貴情報。這些情報,包括 C2 基礎架構細節,對於主動威脅緩解和提升整體網路安全態勢至關重要。隨著網路威脅持續演變,開發和部署先進誘捕系統技術,特別是利用 AI 的技術,將仍是全面防禦策略的重要組成部分。
參考資料
- SSH LLM Honeypot caught a real threat actor - Beelzebub Blog
- mariocandela/beelzebub: A secure low code honeypot framework, leveraging AI for System Virtualization.
- beelzebub/parser/configurations_parser.go at main · mariocandela/beelzebub · GitHub
- beelzebub/protocols/protocol_manager.go at main · mariocandela/beelzebub · GitHub
- Perl IRC Botnet - Technical Analysis - Cyber-99
- Introduction of Botnet in Computer Networks - GeeksforGeeks
- IRC based Botnet Architecture [79] - ResearchGate