摘要

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

資安新利器:SSH LLM 誘捕系統揭露 botnet 手法 | 資訊安全新聞

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 誘捕系統設定片段,體現了這種模組化:

  1. apiVersion: "v1"
  2. protocol: "ssh"
  3. address: ":2222"
  4. description: "SSH interactive ChatGPT"
  5. commands:
  6. - regex: "^(.+)$"
  7. plugin: "LLMHoneypot"
  8. serverVersion: "OpenSSH"
  9. serverName: "ubuntu"
  10. passwordRegex: "^(root|qwerty|Smoker666|123456|jenkins|minecraft|sinus|alex|postgres|Ly123456)$"
  11. deadlineTimeoutSeconds: 120
  12. plugin:
  13. llmProvider: "openai"
  14. llmModel: "gpt-4o"
  15. 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]:

  1. $server = 'ix1.undernet.org' unless $server;
  2. my $port = '6667';
  3. my $linas_max='8';
  4. my $sleep='5';
  5. my $homedir = "/tmp";
  6. my $version = 'rootbox PerlBot v2.0';
  7. my @admins = ("warlock`");
  8. my @hostauth = ("terr0r.users.undernet.org");
  9. 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 的技術,將仍是全面防禦策略的重要組成部分。