KeyFrame內部研究專用

Black Hat USA 2002 - An Introduction to Gateway Intrusion Detection Systems

YouTube Creator·10月4日週五·68 min英文

三句話摘要

網關入侵偵測系統的設計、實作與演進,從 Hogwash 到內聯 Snort 的架構遷移。 內聯 Snort 通過整合 Hogwash 的網關偵測功能到 Snort 核心,並利用 Linux IPtables 完成防火牆部分,實現了一個統一、可維護、規則完善的入侵防禦系統,但須牢記:再強大的工具也只是深度防禦的一環,不能替代系統修補、正確配置與專業管理。 網關 IDS 與防火牆的本質差異:防火牆僅檢查目標位址、連接埠等表層資訊,網關 IDS 則對封包內容進行深度檢查,能發現防火牆無法偵測的漏洞利用程式。這使其特別適合防禦 Code Red 等蠕蟲,但前提是非常謹慎地配置規則以避免誤報。

重點整理

重點
  • 1

    網關 IDS 與防火牆的本質差異:防火牆僅檢查目標位址、連接埠等表層資訊,網關 IDS 則對封包內容進行深度檢查,能發現防火牆無法偵測的漏洞利用程式。這使其特別適合防禦 Code Red 等蠕蟲,但前提是非常謹慎地配置規則以避免誤報。

  • 2

    Hogwash 架構困境與內聯 Snort 方案:Hogwash 作為 Snort 的獨立封裝存在維護負擔——每次 Snort 更新都需手動移植修改。講者說服 Snort 開發團隊將 Hogwash 功能整合直接進 Snort,使用 IPtables 的 IPQ 機制替代複雜的橋接程式碼,達成一套系統、一份規則、一個開發社群的目標。

  • 3

    機會性流重組與端口掃描偵測:由於無法進行傳統流重組,Hogwash 採用「機會性流重組」策略——只在偵測到部分匹配時才組合相鄰封包,預設快取 65,000 個封包,效率極高。端口掃描偵測則基於會話追蹤,20 個不同連接埠或 5 個不同目標機器即觸發封鎖,且可根據來源 IP 配置忽略清單。

  • 4

    內容替換與蜜罐整合:講者為蜜網專案開發的內容替換功能,可在封包通過時重寫有效載荷。例如將 `cmd.exe` 替換為 `yy.yy`,使漏洞利用失效但不暴露防禦行為,攻擊者看到的是正常 Web 伺服器回應而非被阻擋的跡象。

實用技巧與重點

乾貨
  • 核心工具與版本
  • Hogwash(GPL 授權,SourceForge.net 下載)
  • Snort 入侵偵測系統(Snort.org)
  • 內聯 Snort(整合 IPQ、netfilter、IPtables)
  • 關鍵數字
  • 快取封包數:預設 65,000 個
  • 連接埠掃描閾值:20 個不同連接埠或 5 個不同目標
  • 閒置超時:預設 60 秒(可配置到 5-10 秒)
  • Hogwash 規則集:典型 2-500 條規則
  • Snort 流量處理:數百 Mbps 到近千 Gbps(視系統配置)
  • 核心規則指令
  • `Drop`:丟棄封包 + 發送重置 + 記錄
  • `Ignore`:丟棄封包,不發送重置
  • `Sdrop`:丟棄 + 發送重置,但不記錄日誌(避免日誌爆炸)
  • 內聯 Snort 配置步驟
  • 啟用核心 IPQ 模組:`modprobe ipq`
  • IPtables 輸入鏈加入隊列規則:`-j QUEUE`
  • 編譯時啟用內聯模式:`./configure --enable-inline`
  • 安裝 libipq 與 libnet 開發庫(netfilter.org 下載)
  • Red Hat 7.3 核心預設支援 IPQ;7.1-7.2 需重編核心
  • 網關 ID 典型部署:防火牆 → 網關 IDS → DMZ 伺服器(郵件、Web、DNS)→ 內部網路
  • 測試最佳實踐
  • 先將規則寫為 `alert`,確認無誤後再改為 `drop`
  • 勿直接發布 drop 規則,需進行充分驗證

結論

結論

內聯 Snort 通過整合 Hogwash 的網關偵測功能到 Snort 核心,並利用 Linux IPtables 完成防火牆部分,實現了一個統一、可維護、規則完善的入侵防禦系統,但須牢記:再強大的工具也只是深度防禦的一環,不能替代系統修補、正確配置與專業管理。

完整解析

詳細

Jed Hail 是 Nitro Data Systems 首席安全架構師,其日常工作是為大型安全資訊資料庫建立資料管理解決方案。在本演講中,他深入探討網關入侵偵測系統(GIDS)——一種充當網路網關的 IDS,位於網路入口處分析通過的流量。與只能檢查目標位址、連接埠的防火牆相比,網關 IDS 對資料包進行更深入的檢查,判斷其中是否包含惡意內容,若發現則主動丟棄。理想情況下應能阻止任何已知漏洞,且現代偵測系統基本可靠地攔截已知漏洞程式。

Hogwash 是講者開發的開源網關 IDS,基於 Snort 入侵偵測系統。它在橋接防火牆和 IDS 之間找到平衡:像防火牆般轉發或丟棄決策,像 IDS 般檢查封包內容。Hogwash 提供三種處理模式——Drop(丟棄+重置+記錄)、Ignore(靜默丟棄)、Sdrop(丟棄+重置但不記錄),其中 Sdrop 特別適合 Code Red 等大量重複流量的情況,防止日誌被警報淹沒。

由於傳統流重組在網關 IDS 中不可行(無法重新注入新組合的封包),Hogwash 採用「機會性流重組」——僅在偵測到部分匹配時才組合相鄰封包。該演算法使用大型環形緩衝區(預設 65,000 個封包),實踐證明部分匹配極為罕見,快取能保留數天而無需頻繁重新整理。

講者特別強調了端口掃描偵測的重要性。該偵測器基於會話追蹤,記錄每個外部來源的連接資訊;若偵測到 20 個不同連接埠或 5 個不同目標機器的連接,則標記為掃描器並啟動丟棄機制。該設計考慮了偽造 IP 的防禦——攻擊者必須從每個偽造來源分別達到閾值,無法簡單分散攻擊。超時機制(預設 60 秒)意味著攻擊者必須保持活躍,停止後自動解除封鎖。

為蜜網專案開發的內容替換功能是另一大創新。由於封包通過設備,Hogwash 可重寫有效載荷。例如規則可偵測針對 IIS Web 伺服器 80 連接埠的 `cmd.exe` 命令,將其替換為無效字符串。這樣漏洞程式失效但攻擊者看不出防禦跡象——Web 伺服器只是返回「未找到」頁面,難以被偵測為蜜罐。

經過一年開發,講者決定將 Hogwash 功能整合進 Snort 本身,誕生了內聯 Snort。新架構拋棄複雜的橋接程式碼,改用 Linux IPtables 與 netfilter 的 IPQ 機制:IPtables 防火牆接收封包,若決定轉送則傳給用戶空間的 Snort,由 Snort 進行深度檢查後告知是否丟棄或轉送。該設計帶來多重優勢——IPtables 負責防火牆和 NAT 功能,Snort 專注偵測;Snort.org 官方規則資料庫支援內聯模式;開發者群體擴大,更新與維護集中統一;系統管理員只需維護一套 Snort 而非兩個平台。

編譯內聯 Snort 需手動啟用內聯模式選項,並安裝 libipq 與 libnet。核心須編譯進 IPQ 支援(IPtables 選項下)。配置時在 IPtables 輸入鏈加入 `-j QUEUE` 規則,先啟用佇列再啟動 Snort,否則防火牆會丟棄所有封包直到 Snort 上線。執行時使用 `-Q` 參數而非 `-i` 介面參數,Snort 將從 IPQ 接收封包。

現場演示中,講者運行內聯 Snort 並啟用了 12,200 條規則,其中大部分改寫為 drop 規則。當出席者運行 Nessus 掃描器嘗試連接埠掃描時,系統成功偵測並丟棄流量,掃描日誌記錄了所有被攔截的封包。講者指出,若無重置信號的丟棄會導致掃描器重試,甚至耗盡其系統資源——這是額外的防禦層。規則數量越多效能下降越快,實際部署通常採用 2-500 條精心選擇的規則,在千兆網路上可達接近千兆位元的吞吐量。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。