OpenSource-Hub

shannon

CLI 도구

KeygraphHQ/shannon

자율 AI 침투 테스트 도구로, 소스 코드를 분석하고 실제 공격을 실행합니다.

개요

Shannon Lite는 소스 코드를 분석하여 공격 표면을 식별하고, 실행 중인 애플리케이션에서 실제 취약점 익스플로잇을 수행하는 자율 화이트박스 AI 침투 테스트 도구입니다. 인젝션, XSS, SSRF, 인증 우회 등 OWASP 취약점을 포괄하는 재현 가능한 개념 증명 익스플로잇을 제공합니다. 온디맨드 보안 테스트에 적합하며, 수동 침투 테스트 사이의 공백을 메웁니다.

README 미리보기

>[!NOTE]\n> **[📢 Sunsetting Router Mode (claude-code-router)`. →](https://github.com/KeygraphHQ/shannon/discussions/301)**\n\n\n\n\n\n# Shannon — AI Pentester by Keygraph\n\n\n\nShannon is an autonomous, white-box AI pentester for web applications and APIs. \nIt analyzes your source code, identifies attack vectors, and executes real exploits to prove vulnerabilities before they reach production.\n\n---\n\n\n\n\n---\n\n\n## What is Shannon?\n\nShannon is an AI pentester developed by [Keygraph](https://keygraph.io). It performs white-box security testing of web applications and their underlying APIs by combining source code analysis with live exploitation.\n\nShannon analyzes your web application's source code to identify potential attack vectors, then uses browser automation and command-line tools to execute real exploits (injection attacks, authentication bypass, SSRF, XSS) against the running application and its APIs. Only vulnerabilities with a working proof-of-concept are included in the final report.\n\n**Why Shannon Exists**\n\nThanks to tools like Claude Code and Cursor, your team ships code non-stop. But your penetration test? That happens once a year. This creates a *massive* security gap. For the other 364 days, you could be unknowingly shipping vulnerabilities to production.\n\nShannon closes that gap by providing on-demand, automated penetration testing that can run against every build or release.\n\n## Shannon in Action\n\nShannon identified 20+ vulnerabilities in OWASP Juice Shop, including authentication bypass and database exfiltration. [Full report →](sample-reports/shannon-report-juice-shop.md)\n\n\n\n## Features\n\n- **Fully Autonomous Operation**: A single command launches the full pentest. Shannon handles 2FA/TOTP logins (including SSO), browser navigation, exploitation, and report generation without manual intervention.\n- **Reproducible Proof-of-Concept Exploits**: The final report contains only proven, exploitable findings with copy-and-paste

FAQ (4)

문제 해결
`shannon stop` 실행 시 "Could not inspect the scan worker" 오류를 해결하는 방법은?

이는 @keygraph/shannon v3.4.0의 알려진 버그로, docker ps --format이 {{ index .Labels "..." }}를 사용하지만 Docker는 .Labels를 문자열로 노출하기 때문에 템플릿이 실패하고, worker 컨테이너와 Temporal workflow가 계속 실행되는 동안 stop이 오해를 불러일으키는 'Could not inspect' 오류를 보고하게 됩니다. **해결 방법:** 최신 버전으로 업데이트하세요 — 이 버그는 PR #494에서 수정되었습니다 (npx @keygraph/shannon@latest 사용). **우회 방법 (수동 중지):** 1) worker 컨테이너 중지: docker stop <shannon-worker-container> 2) Temporal workflow 종료: docker exec shannon-temporal temporal workflow terminate -w <workspace> --reason "manual stop". stop --all과 workspace를 지정하지 않은 stop도 동일한 버그의 영향을 받습니다.

원본 Issue #493
문제 해결
Shannon 실행 시 'pnpm: command not found' 및 'EACCES: permission denied' 오류를 수정하는 방법

https://pnpm.io/installation 에서 pnpm을 설치합니다.
남아있는 Shannon 디렉토리를 제거합니다: rm -rf ~/shannon.
npx 단축 명령어를 사용하여 수동 빌드를 건너뜁니다: npx @keygraph/shannon setup 후 npx @keygraph/shannon start -u <URL> -r <REPO_PATH>.
리포지토리 경로가 현재 사용자 소유인지 확인하세요. .shannon/deliverables에서 EACCES 오류가 발생하면 디렉토리가 다른 사용자(예: sudo를 통해)에 의해 생성되었을 가능성이 있습니다.
동일한 사용자로 리포지토리를 클론하거나 sudo chown -R $USER:$USER /path/to/repo로 소유권을 수정하세요.

원본 Issue #320
문제 해결
Shannon이 로컬 LLM을 사용할 때 OutputValidationError로 재시도 루프에 갇히는 이유는 무엇인가요?

이는 non-Claude 모델을 사용할 때 예상되는 동작입니다. Shannon은 Anthropic Claude 모델(haiku, sonnet, opus tiers)로 최적화 및 테스트되었습니다. Local LLM은 잘못된 출력을 생성하여 output validation failures 및 Temporal retries를 유발할 수 있습니다. 중단을 방지하려면 기본 Claude model tiers를 사용하세요. 이러한 루프를 방지하기 위한 Local LLM에 대한 직접적인 지원은 현재 계획되어 있지 않습니다.

원본 Issue #260
방법
Shannon (KeygraphHQ)에서 보안 취약점을 보고하는 방법은?

GitHub의 비공개 취약점 보고 기능을 사용하세요: https://github.com/KeygraphHQ/shannon/security/advisories/new 로 이동하여 비공개 보안 권고를 제출하세요. 취약점 세부 정보를 공개 이슈에 게시하지 마세요. 유지 관리자들은 shannon 및 shannon-action 저장소 모두에서 비공개 보고를 활성화했으며, 이슈가 분류되고 해결될 때까지 세부 정보를 비공개로 유지해 주시기 바랍니다.

원본 Issue #500