Shannon은 소스 코드와 실행 중인 웹 애플리케이션을 함께 살핀 뒤, 의심 지점을 실제 익스플로잇으로 재현하려는 자율 펜테스트 도구입니다. 정적 경고만 쌓는 스캐너보다 취약점의 우선순위를 정하는 데 유용할 수 있지만, 공격 권한을 가진 에이전트이므로 격리된 스테이징 환경과 명시적인 테스트 허가가 먼저 필요합니다. 이 글은 저장소가 설명하는 작동 범위와 설치 흐름을 기준으로, 무엇을 맡길 수 있고 어디서 사람이 다시 검증해야 하는지 구분합니다.
Shannon은 취약점 스캐너와 무엇이 다른가: 자율 펜테스트의 효용과 안전 조건
Shannon은 일반 취약점 스캐너와 무엇이 다른가?
Shannon은 KeygraphHQ에서 개발한 완전 자율형 AI 펜테스터(Penetration Tester)입니다. Anthropic의 Claude Agent SDK를 기반으로 만들어졌으며, 웹 애플리케이션의 소스 코드를 분석하고 실제 공격을 수행하여 보안 허점을 찾아냅니다.
가장 큰 특징은 “Proof by Exploitation(공격을 통한 검증)” 철학입니다. 이론상의 취약점을 나열하는 데서 멈추지 않고 실제 공격 경로를 재현해 증거를 남기는 방식입니다. 다만 보고서에 증거가 있다는 사실과 영향 범위가 완전히 규명됐다는 사실은 다릅니다. 테스트 계정의 권한, 준비된 데이터, 네트워크 경계에 따라 재현 결과가 달라질 수 있으므로 최종 심각도는 보안 담당자가 확인해야 합니다.
어떤 작업을 에이전트가 맡는가?
README와 공식 문서를 통해 확인한 Shannon의 핵심 기능은 다음과 같습니다.
- 완전 자율 운영 (Fully Autonomous)
- 단 한 줄의 명령어로 펜테스팅을 시작할 수 있습니다.
- AI가 알아서 로그인(2FA/TOTP 포함), 페이지 탐색, 공격 수행, 보고서 작성까지 처리합니다.
- 실제 익스플로잇 수행 (Real Exploit Validation)
- 단순 추측이 아닌, SQL 인젝션, XSS, 인증 우회 등의 공격을 직접 실행합니다.
- “이 취약점이 진짜 위험한가?”에 대한 확실한 증거(Proof-of-Concept)를 제공합니다.
- 코드 인식 테스팅 (Code-Aware Testing)
- 블랙박스 테스트(외부에서만 찌르기)가 아닙니다. 애플리케이션의 소스 코드를 분석하여 공격 표면(Attack Surface)을 파악하고, 더 정교한 공격 시나리오를 설계합니다.
- 강력한 도구 통합
- Nmap, Subfinder, WhatWeb, Schemathesis 등 업계 표준 보안 도구들을 AI가 직접 제어하고 활용합니다.
- 벤치마크 기반 검증
- 저장소는 힌트가 없는 소스 코드 기반 XBOW 벤치마크에서 96.15%의 성공률을 보고합니다. 이는 해당 설정의 결과이며, 실제 서비스의 인증 구조와 비즈니스 로직에서도 같은 성공률이 나온다는 뜻은 아닙니다.
정찰에서 보고서까지 어떤 순서로 움직이나?
Shannon은 인간 해커의 사고 과정을 그대로 모방하도록 설계되었습니다. 내부는 크게 4가지 단계의 멀티 에이전트 시스템으로 돌아갑니다.
- 정찰 (Reconnaissance)
- 소스 코드를 읽고 데이터 흐름, 라우팅, 인증 로직을 파악합니다.
- 동시에 라이브 애플리케이션을 탐색하며 공격 지점을 지도화(Mapping)합니다.
- 취약점 분석 (Vulnerability Analysis)
- 수집된 정보를 바탕으로 OWASP 주요 취약점(인젝션, XSS, SSRF 등)을 찾기 위해 전문화된 에이전트들이 병렬로 분석을 시작합니다.
- 익스플로잇 (Exploitation)
- 가장 핵심적인 단계입니다. AI가 브라우저를 직접 조작하거나 API 요청을 보내 실제 공격을 감행합니다.
- 성공 시 스크린샷이나 데이터 탈취 증거를 확보합니다.
- 보고 (Reporting)
- 성공한 공격에 대한 재현 가능한 단계(Reproduction Steps)와 수정 방안이 포함된 전문가 수준의 보고서를 생성합니다.
이 모든 과정의 중심에는 Anthropic의 Claude 모델이 추론 엔진으로 작동합니다. 모델의 판단은 비결정적일 수 있으므로 동일 대상을 다시 실행했을 때 경로나 결과가 달라질 수 있습니다. 재현 명령, 요청, 응답 로그, 변경된 데이터와 스크린샷을 함께 보존해야 보고서를 검토 가능한 증거로 만들 수 있습니다.
안전한 시험 환경은 어떻게 준비하나?
Shannon은 Docker 기반으로 동작하며 Docker가 미리 설치되어 있어야 합니다. 컨테이너를 쓴다는 이유만으로 대상 시스템과 비밀값이 자동 격리되는 것은 아닙니다. 복제한 스테이징 데이터, 최소 권한 테스트 계정, 외부 네트워크 제한, 실행 전 스냅샷을 함께 준비하는 편이 안전합니다.
1. 저장소 복제 터미널을 열고 GitHub 저장소를 클론합니다.
1
2
git clone https://github.com/KeygraphHQ/shannon.git
cd shannon
2. Docker 이미지 빌드
1
docker build -t shannon:latest .
3. API 키 설정 Shannon은 Claude 모델을 사용하므로 Anthropic API 키가 필요합니다. 환경 변수로 설정해 줍니다.
1
export CLAUDE_API_KEY="sk-ant-api03-..." # 본인의 실제 키 입력
실행할 때 어디까지 허용해야 하나?
설치가 끝났다면 바로 내 웹사이트(또는 로컬 서버)를 해킹해 볼 수 있습니다.
⚠️ 주의: 반드시 본인이 소유하거나 테스트 권한이 있는 시스템에만 사용하세요. 실제 서비스 중인 프로덕션 환경에서는 데이터 손실 위험이 있으므로 절대 실행하지 마십시오.
1. 기본 실행 명령어
가장 간단하게 실행하는 방법입니다. 분석할 URL과 소스 코드 경로를 지정합니다.
1
./shannon start URL=http://host.docker.internal:3000 REPO=/path/to/your/local/repo
URL: 테스트할 웹 앱 주소 (로컬 호스트의 경우host.docker.internal사용 권장)REPO: 분석할 소스 코드가 있는 로컬 경로
2. 고급 설정 (config.yaml)
로그인이 필요한 사이트나 특정 페이지를 제외하고 싶다면 설정 파일을 만들어야 합니다.
configs/my-app-config.yaml 파일을 생성하고 아래와 같이 작성합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
authentication:
login_type: form
login_url: "https://myapp.com/login"
credentials:
username: "ceo@opsoai.com"
password: "supersecret"
totp_secret: "JBSWY3DPEHPK3PXP" # 2FA가 있을 경우 자동 생성 지원
login_flow:
- "Type $username into the email field"
- "Type $password into the password field"
- "Click the 'Log In' button"
success_condition:
type: url_contains
value: "/dashboard"
rules:
avoid:
- description: "로그아웃 버튼은 누르지 마"
type: path
url_path: "/logout"
focus:
- description: "API 엔드포인트를 집중적으로 공격해"
type: path
url_path: "/api"
설정 파일을 적용하여 실행하려면:
1
./shannon start CONFIG=configs/my-app-config.yaml REPO=...
어느 팀과 단계에서 유용한가?
- CI/CD 파이프라인 통합 (Shift-Left Security)
- 코드가 배포되기 전 스테이징 단계에서 반복 점검할 수 있습니다. 다만 실제 익스플로잇은 일반 단위 테스트보다 느리고 부작용이 크므로, 모든 커밋보다 위험한 변경이나 예약된 보안 단계에 연결하는 편이 현실적입니다.
- 레거시 코드 취약점 점검
- 문서가 없고 개발자가 떠난 오래된 프로젝트의 소스 코드를 던져주고, 어디가 뚫리는지 파악하는 용도로 훌륭합니다.
- 보안 팀의 업무 효율화
- 반복적이고 기본적인 취약점 점검은 AI에게 맡기고, 인간 보안 전문가는 더 고차원적인 비즈니스 로직 취약점에 집중할 수 있습니다.
Lite와 Pro 중 무엇을 기준으로 고르나?
GitHub에 공개된 버전은 Shannon Lite입니다. 기업용 Pro 버전과의 차이는 다음과 같습니다.
| 기능 | Shannon Lite (오픈소스) | Shannon Pro (상용) |
|---|---|---|
| 라이선스 | AGPL-3.0 | 상용 라이선스 |
| 배포 방식 | 셀프 호스팅 (Docker) | 클라우드 또는 셀프 호스팅 |
| 분석 깊이 | 기본 소스-싱크 분석 | LLM 기반 고급 데이터 흐름 분석 |
| CI/CD 통합 | 수동 설정 필요 | 기본 지원 (GitHub Actions 등) |
| 보고서 | 기본 마크다운 | 규정 준수(SOC2, PCI-DSS) 리포트 |
| 협업 | 단일 사용자 | 다중 사용자, SSO, RBAC |
Lite는 기능을 직접 운영하고 결과를 검토할 역량이 있는 팀의 평가 출발점이 될 수 있습니다. SSO, 역할 기반 접근, 감사 가능한 보고 체계가 필수라면 단순 기능 수보다 운영 통제 요건을 먼저 비교해야 합니다.
도입 결론은 어떤 기준으로 내리나?
Shannon의 가치는 개발자를 대체하는 데 있지 않고, 소스 분석과 동적 검증 사이의 반복 작업을 줄이는 데 있습니다. 도입 시험에서는 발견 개수보다 사람이 확인한 유효 취약점 비율, 한 건을 재현하는 시간, 테스트가 남긴 부작용, 기존 도구가 놓친 공격 경로를 측정해야 합니다.
반대로 운영 데이터 복제가 불가능하거나 테스트 대상의 권한 경계가 불명확하다면 실행을 미루는 것이 맞습니다. 허가된 스테이징 환경, 최소 권한 계정, 네트워크 제한, 실행 로그와 사람의 최종 승인이 갖춰졌을 때 보조 펜테스터로 평가할 수 있습니다.
첫 시험에서는 허용 범위를 한 번도 벗어나지 않았는지와 모든 행동을 되짚을 로그가 남았는지를 취약점 발견 수보다 먼저 확인해야 합니다. 이 두 조건이 빠지면 높은 탐지 성과도 안전한 자동화의 근거가 되기 어렵습니다.
실행 뒤 증거를 어떻게 재검증하고 환경을 정리하나?
보고서의 취약점마다 공격에 사용한 요청과 응답, 관련 소스 위치, 전제 계정과 성공 판정 기준을 하나의 묶음으로 보관합니다. 그런 다음 변경 사항이 없는 깨끗한 snapshot에서 같은 절차를 다시 실행해 재현되는지 확인합니다. 스크린샷 한 장이나 에이전트의 설명만으로 판정하지 말고, 서버 로그와 데이터 상태를 함께 비교해야 실제 영향과 화면상의 우연을 구분할 수 있습니다.
기존 SAST, DAST 결과와도 대조합니다. 기존 도구가 같은 원인을 찾았는지, Shannon이 경고를 실제 공격 경로로 좁혔는지, 반대로 실행 환경에 준비된 데이터 때문에 영향이 과장되지는 않았는지를 보안 담당자가 분류합니다. 재현되지 않는 항목은 곧바로 삭제하기보다 실행 조건과 모델, 도구 버전을 남겨 비결정적 실패인지 잘못된 판단인지 다시 확인합니다.
검증이 끝나면 시험 계정의 비밀번호와 API key를 폐기하고, 생성, 수정된 데이터와 업로드 파일, 외부 callback을 목록대로 정리합니다. 컨테이너만 지우고 대상 서비스의 부작용을 남겨서는 안 됩니다. 허용하지 않은 host 접속이나 권한 상승이 있었다면 일반 결과와 분리해 사고 절차로 다루고, 다음 실행 전 network allowlist와 계정 권한을 고칩니다. 유효 취약점 비율과 재현 시간뿐 아니라 정리되지 않은 부작용이 없다는 조건까지 통과해야 반복 점검으로 운영할 수 있습니다.
함께 읽으면 이해가 이어지는 글
- PentAGI는 어디까지 자율 펜테스트를 수행하나: 격리와 승인 기준 — 단순한 AI 어시스턴트를 넘어, 스스로 취약점을 분석하고 공격 코드를 작성해 실행까지 하는 자율형 AI 펜테스팅 도구 ‘PentAGI’의 기능, 설치법, 아키텍처를 상세히 분석합니다.
- CrowdStrike 2026 위협 보고서 발표, Mastra AI 오픈소스 공급망 노린 북한 해킹 침투 분석 — CrowdStrike는 2026년 8월 3일 발표한 위협 헌팅 보고서에서 북한 연계 해킹 그룹 STARDUST CHOLLIMA가 Mastra AI 프레임워크 131개 패키지에 악성 npm 패키지를 주입했다고 밝혔습니다. AI…
- OpenClaw는 누구에게 맞을까: 로컬 AI 에이전트 설치와 권한 관리 — 최근 깃허브에서 폭발적인 반응을 얻고 있는 오픈소스 AI 에이전트 OpenClaw(구 Moltbot)의 설치부터 기능, 활용법까지 상세하게 다룹니다. 내 로컬 환경에서 돌아가는 나만의 자비스를 만들어보세요.
←→ 키와 좌우 스와이프를 지원합니다. 읽던 페이지는 이 기기에 저장됩니다.