你的專屬 AI 五角大廈:用 Shannon 守護你的 Web 應用程式安全
嘿,各位台灣的開發者、工程師、以及對網站安全有興趣的朋友們!
在網路世界裡,網站就像我們的數位門面,而保護它免受駭客攻擊,就像守護我們的家園一樣重要。 你知道嗎?每天都有新的漏洞被發現,而你的網站可能就潛藏著未知的風險。 傳統的滲透測試一年可能才做一次,但程式碼卻是天天在更新! 這中間的安全空窗期,就由我們今天的主角來填補吧!
今天,我們要來介紹一個超酷的 AI 滲透測試工具——Shannon。 它就像你的專屬 AI 五角大廈,隨時待命,幫你找出網站裡的弱點,讓你安心地打造更安全的 Web 應用程式。
什麼是 Shannon? 🎯
Shannon 是一個 全自動的 AI 滲透測試工具。 它的目標很簡單:在其他人之前,率先突破你的 Web 應用程式防線。 它會像一位經驗豐富的紅隊(Red Team)成員,主動尋找程式碼中的攻擊向量,然後使用內建的瀏覽器來執行真正的漏洞利用,例如注入攻擊、身分驗證繞過等,來證明這些漏洞是否真的可以被利用。
Shannon 解決了什麼問題?
想像一下,你和你的團隊每天都在快速地開發和部署程式碼。 但是,你的滲透測試可能一年才做一次。 這就造成了一個巨大的安全漏洞。 在剩下的 364 天裡,你可能毫不知情地將漏洞部署到生產環境中。
Shannon 就像一位隨時待命的白箱滲透測試員。 它不僅僅是發現潛在的問題,還會執行真實的漏洞利用,提供明確的漏洞證明。 這讓你能夠充滿信心地發布程式碼,因為你知道每一次的建置都經過了嚴格的安全檢測。
[!NOTE]
從自動化滲透測試到自動化合規Shannon 是 Keygraph 安全性和合規性平台 的核心組件。
雖然 Shannon 實現了應用程式滲透測試的自動化,但我們更廣泛的平台實現了整個合規流程的自動化——從證據收集到審計準備。 我們正在構建網路安全領域的 “Rippling”,一個用於管理安全態勢和簡化 SOC 2 和 HIPAA 等合規框架的單一平台。
看看 Shannon 實際的表現 🎬
真實成果:Shannon 在 OWASP Juice Shop 中發現了 20 多個關鍵漏洞,包括完整的身分驗證繞過和資料庫洩露。 查看完整報告 →

Shannon 的特色 ✨
- 全自動運作:只要一個指令就能啟動滲透測試。 AI 會處理所有事情,從進階的 2FA/TOTP 登入(包括使用 Google 帳戶登入)和瀏覽器導航,到最後的報告,完全不需要人工干預。
- 滲透測試員級別的報告,附帶可重現的漏洞利用:提供一份專注於已驗證、可利用的漏洞的最終報告,並附帶複製貼上的 Proof-of-Concepts(概念驗證),以消除誤報並提供可行的結果。
- 涵蓋關鍵 OWASP 漏洞:目前可以識別和驗證以下關鍵漏洞:注入、XSS、SSRF 和身份驗證/授權失效,並且正在開發更多種類型的漏洞。
- 程式碼感知動態測試:分析你的原始碼,以智慧地引導其攻擊策略,然後在運行的應用程式上執行基於瀏覽器和命令列的實時漏洞利用,以確認真實世界的風險。
- 由整合的安全工具提供支援:透過利用領先的偵察和測試工具(包括 Nmap、Subfinder、WhatWeb 和 Schemathesis)來增強其發現階段,以進行目標環境的深度分析。
- 並行處理以獲得更快的结果:更快地獲得你的報告。 系統並行處理最耗時的階段,同時運行所有漏洞类型的分析和漏洞利用。
Shannon 的產品線 📦
Shannon 有兩個版本可供選擇:
| 版本 | 授權 | 最佳適用於 |
|---|---|---|
| Shannon Lite | AGPL-3.0 | 安全團隊、獨立研究人員、測試你自己的應用程式 |
| Shannon Pro | 商業 | 需要進階功能、CI/CD 整合和專屬支援的企業 |
這個儲存庫包含 Shannon Lite, 它使用我們核心的自主 AI 滲透測試框架。 Shannon Pro 透過一個進階的、基於 LLM 的資料流分析引擎(靈感來自 LLMDFA 文件)增強了這個基礎,用於企業級程式碼分析和更深層次的漏洞檢測。
[!IMPORTANT]
僅限白箱測試。 Shannon Lite 專為 白箱(原始碼可取得) 應用程式安全測試而設計。
它需要存取你的應用程式的原始碼和儲存庫佈局。
如何開始使用 Shannon? 🚀
以下是 Shannon Lite 的快速入門指南,讓你能在自己的環境中開始測試你的 Web 應用程式。
準備工作 🛠️
首先,你需要安裝以下工具:
- Docker – 容器運行時 (安裝 Docker)
- AI 提供者憑證 (選擇一個):
- Anthropic API 金鑰 (推薦) – 從 Anthropic Console 取得
- Claude Code OAuth 令牌
- [實驗性 – 不支援] 透過路由器模式使用替代提供者 – 透過 OpenRouter 使用 OpenAI 或 Google Gemini (參見 路由器模式)
快速入門 🏃
- 克隆 Shannon
git clone https://github.com/KeygraphHQ/shannon.git cd shannon - 配置憑證 (選擇一種方法)
- 選項 A:匯出環境變數
export ANTHROPIC_API_KEY="你的 API 金鑰" # 或 CLAUDE_CODE_OAUTH_TOKEN export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 # 推薦 - 選項 B:建立 .env 檔案
cat > .env << 'EOF' ANTHROPIC_API_KEY=你的 API 金鑰 CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000 EOF
- 選項 A:匯出環境變數
- 執行滲透測試
./shannon start URL=https://你的應用程式.com REPO=/你的儲存庫/路徑Shannon 將會建置容器,啟動工作流程,並返回一個工作流程 ID。 滲透測試會在背景運行。
監控進度 🧐
# 查看實時 worker 日誌
./shannon logs
# 查詢特定工作流程的進度
./shannon query ID=shannon-1234567890
# 開啟 Temporal Web UI 以進行詳細監控
open http://localhost:8233
停止 Shannon 🛑
# 停止所有容器 (保留工作流程資料)
./shannon stop
# 完全清理 (移除所有資料)
./shannon stop CLEAN=true
使用範例 💡
# 基本滲透測試
./shannon start URL=https://example.com REPO=/你的儲存庫/路徑
# 使用配置文件
./shannon start URL=https://example.com REPO=/你的儲存庫/路徑 CONFIG=./configs/my-config.yaml
# 自訂輸出目錄
./shannon start URL=https://example.com REPO=/你的儲存庫/路徑 OUTPUT=./my-reports
準備你的儲存庫 🗂️
Shannon 專為 Web 應用程式安全測試 而設計,並期望所有應用程式程式碼都位於單一目錄結構中。 這適用於:
- 單一儲存庫 – 包含所有元件的單一儲存庫
- 合併設置 – 組織在共用資料夾中的多個儲存庫
對於單一儲存庫:
git clone https://github.com/你的組織/你的單一儲存庫.git /你的應用程式/路徑
對於多儲存庫應用程式 (例如,單獨的前端/後端):
mkdir /你的應用程式/路徑
cd /你的應用程式/路徑
git clone https://github.com/你的組織/前端.git
git clone https://github.com/你的組織/後端.git
git clone https://github.com/你的組織/api.git
平台特定說明 💻
對於 Linux (原生 Docker):
你可能需要使用 sudo 運行命令,具體取決於你的 Docker 設置。 如果你在輸出檔案時遇到權限問題,請確保你的使用者可以存取 Docker socket。
對於 macOS:
安裝 Docker Desktop 後即可立即使用。
測試本地應用程式:
Docker 容器無法存取你的主機上的 localhost。 使用 host.docker.internal 代替 localhost:
./shannon start URL=http://host.docker.internal:3000 REPO=/你的儲存庫/路徑
配置 (可選) ⚙️
雖然你可以在沒有配置文件的情況下運行,但建立一個配置文件可以啟用驗證測試和自定義分析。
建立配置文件
複製並修改範例配置:
cp configs/example-config.yaml configs/my-app-config.yaml
基本配置結構
authentication:
login_type: form
login_url: "https://你的應用程式.com/login"
credentials:
username: "test@example.com"
password: "你的密碼"
totp_secret: "LB2E2RX7XFHSTGCK" # 適用於 2FA 的可選項
login_flow:
- "在 email 欄位中輸入 $username"
- "在 password 欄位中輸入 $password"
- "點擊 'Sign In' 按鈕"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "AI 應該避免測試登出功能"
type: path
url_path: "/logout"
focus:
- description: "AI 應該著重測試 API 端點"
type: path
url_path: "/api"
TOTP 設定 (適用於 2FA)
如果你的應用程式使用雙因素驗證,只需將 TOTP 密鑰添加到你的配置文件中即可。 AI 將在測試期間自動產生所需的程式碼。
[實驗性 – 不支援] 路由器模式 (替代提供者)
Shannon 可以透過 claude-code-router 實驗性地透過替代 AI 提供者路由請求。 此模式未正式支援,主要適用於:
- 模型實驗 — 使用 Shannon 測試 GPT-5.2 或 Gemini 3 系列模型
快速設定
- 將你的提供者 API 金鑰新增至
.env:# 選擇一個提供者: OPENAI_API_KEY=sk-... # OR OPENROUTER_API_KEY=sk-or-... # 設定預設模型: ROUTER_DEFAULT=openai,gpt-5.2 # 提供者,模型 格式 - 使用
ROUTER=true運行:./shannon start URL=https://example.com REPO=/你的儲存庫/路徑 ROUTER=true
實驗模型
| 提供者 | 模型 |
|---|---|
| OpenAI | gpt-5.2, gpt-5-mini |
| OpenRouter | google/gemini-3-flash-preview |
免責聲明
此功能是實驗性的,不受支援。 輸出品質很大程度上取決於模型。 Shannon 建立於 Anthropic Agent SDK 之上,並已針對 Anthropic Claude 模型進行了最佳化,並主要使用 Anthropic Claude 模型進行測試。 替代提供者可能會產生不一致的結果 (包括在早期階段 (如 Recon) 失敗),具體取決於模型和路由設定。
輸出和結果 📃
預設情況下,所有結果都儲存在 ./audit-logs/{hostname}_{sessionId}/ 中。 使用 --output <path> 指定自訂目錄。
輸出結構:
audit-logs/{hostname}_{sessionId}/
├── session.json # 度量和 session 資料
├── agents/ # 每個 agent 的執行日誌
├── prompts/ # 提示的快照以實現重現性
└── deliverables/
└── comprehensive_security_assessment_report.md # 最終的綜合安全評估報告
看看 Shannon 的測試結果 📊
Shannon 能夠找出許多常見的漏洞,例如 OWASP Juice Shop,甚至 Checkmarx 的 c{api}tal API。
這些範例報告證明了 Shannon 不僅僅是掃描,還能進行深入的上下文利用,具有最小的誤報和可操作的概念證明。
深入了解 Shannon 的架構 🏗️
Shannon 採用了類似人類滲透測試員的方法,使用複雜的多代理架構。 它結合了白箱原始碼分析和黑箱動態漏洞利用,分為四個不同的階段:
┌──────────────────────┐
│ 偵察 (Reconnaissance) │
└──────────┬───────────┘
│
▼
┌──────────┴───────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 漏洞分析 │ │ 漏洞分析 │ │ ... │
│ (注入) │ │ (XSS) │ │ │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 漏洞利用 │ │ 漏洞利用 │ │ ... │
│ (注入) │ │ (XSS) │ │ │
└─────────┬───────┘ └─────────┬───────┘ └─────────┬───────┘
│ │ │
└─────────┬─────────┴───────────────────┘
│
▼
┌──────────────────────┐
│ 報告 (Reporting) │
└──────────────────────┘
覆蓋範圍和路線圖 📋
想知道 Shannon 可以偵測哪些漏洞? 更多關於安全測試覆蓋範圍和開發路線圖的詳細資訊,請參閱我們的 覆蓋範圍和路線圖 文件。
重要的使用指南和免責聲明 ⚠️
在使用 Shannon (Lite) 之前,請仔細閱讀以下指南。 作為使用者,你對自己的行為負責,並承擔所有責任。
1. 潛在的變異效應和環境選擇
這不是一個被動的掃描器。 漏洞利用代理旨在 主動執行攻擊 以確認漏洞。 這個過程可能對目標應用程式及其資料產生變異效應。
[!WARNING]
⚠️ 請勿在生產環境中運行 Shannon。
- 它僅供用於沙盒、登台或本地開發環境,在這些環境中,資料完整性不是問題。
- 潛在的變異效應包括但不限於:建立新使用者、修改或刪除資料、洩露測試帳戶以及從注入攻擊觸發意外的副作用。
2. 合法和道德的使用
Shannon 僅用於合法的安全審計目的。
[!CAUTION]
在你運行 Shannon 之前,你必須獲得 目標系統所有者的明確書面授權。未經授權掃描和利用你未擁有的系統是違法的,並且可以根據《電腦欺詐和濫用法》(CFAA)等法律進行起訴。 Keygraph 對 Shannon 的任何濫用行為概不負責。
3. LLM 和自動化的注意事項
- 需要驗證:儘管我們在 “透過漏洞利用進行證明” 的方法中投入了大量的工程設計,以消除誤報,但底層的 LLM 仍然可以在最終報告中生成幻覺或弱支援的內容。 人類的監督對於驗證所有已報告發現的合法性和嚴重性至關重要。
- 全面性:由於 LLM 上下文視窗的固有限制,Shannon Lite 中的分析可能並不全面。 為了對你的整個程式碼庫進行更全面的、基於圖表的分析,Shannon Pro 利用其進階的資料流分析引擎來確保更深入、更徹底的覆蓋範圍。
4. 分析範圍
- 目標漏洞:Shannon Lite 的目前版本專門針對以下類型的 可利用 漏洞:
- 身份驗證和授權失效
- 注入
- 跨網站腳本(XSS)
- 伺服器端請求偽造 (SSRF)
- Shannon Lite 無法涵蓋的內容:此清單並未涵蓋所有潛在的安全風險。 Shannon Lite 的 “透過漏洞利用進行證明” 模型意味著它不會報告其無法主動利用的問題,例如易受攻擊的第三方程式庫或不安全的配置。 這些類型的深度靜態分析發現是 Shannon Pro 中進階分析引擎的核心重點。
5. 成本和效能
- 時間:在目前版本中,一次完整的測試運行通常需要 1 到 1.5 小時 才能完成。
- 成本:使用 Anthropic 的 Claude 4.5 Sonnet 模型運行完整的測試可能會產生大約 50 美元 的費用。 成本因模型定價和應用程式複雜性而異。
6. Windows 防病毒軟體誤報
Windows Defender 可能會將 xben-benchmark-results/ 或 deliverables/ 中的檔案標記為惡意軟體。 這些是報告中漏洞利用程式碼造成的誤報。 在 Windows Defender 中為 Shannon 目錄新增一個排除項,或使用 Docker/WSL2。
授權 📜
Shannon Lite 根據 GNU Affero General Public License v3.0 (AGPL-3.0) 發布。
社群和支援 👥
社群資源
貢獻:目前,我們不接受外部程式碼貢獻(PR)。
歡迎提出有關錯誤報告和功能要求的問題。
保持聯繫
- 🐦 Twitter:@KeygraphHQ
- 💼 LinkedIn:Keygraph
- 🌐 網站:keygraph.io
想進一步了解? 💬
Shannon Pro 專為重視應用程式安全的組織而設計。 它提供企業級功能、專屬支援和無縫的 CI/CD 整合,所有這些都由我們最先進的基於 LLM 的分析引擎提供支援。 在複雜的漏洞到達生產環境之前,在你的程式碼庫深處找到並修復它們。
對於功能的詳細分解、技術差異和企業使用案例,請參閱我們的 完整比較指南。
或者直接聯繫我們:
📧 電子郵件:shannon@keygraph.io
由 Keygraph 團隊使用 ❤️ 構建
讓所有人都能使用應用程式安全
參考閱讀
https://github.com/KeygraphHQ/shannon