AI 우선 보안 스캐너. v2026.7의 새로운 기능: Claude Code 손상 탐지 — 클론하기 전에 .claude/ 훅, 권한 및 스킬을 검증 — 그리고 항상 켜져 있는 AI 공격 시그니처 스캐너와 네이티브 Rust 및 PHP 규칙. 또한: medusa scan --git으로 모든 저장소를 검증하고, medusa secrets scan으로 유출된 API 키를 스캔합니다. 40,000개 이상의 패턴, 설정 불필요.
AI/ML, 에이전트, LLM 애플리케이션을 위한 40,000개 이상의 탐지 패턴을 갖춘 AI 우선 보안 스캐너.
🤖 설치 즉시 사용 가능 - 별도 도구 설치 불필요.
🚨 200개 CVE: Log4Shell, Spring4Shell, XZ Utils, LangChain RCE, MCP-Remote RCE, React2Shell
🔥 medusa scan --git <URL> — 모든 저장소에서 AI 공급망 공격(저장소 포이즈닝, 프롬프트 인젝션, MCP 도구 포이즈닝) 스캔
🔐 medusa secrets scan — Claude / Cursor / Copilot / 셸 기록에서 유출된 API 키 탐지. 21가지 발급자 유형. 대화형 제자리 편집(redaction).
🚀 v2026.7.0: Claude Code 손상 탐지, 상시 동작하는 AI 공격 시그니처 스캐너, 네이티브 Rust 및 PHP 보안 규칙, 규칙 수준 진단 — 40,000개 이상의 탐지 패턴 위에 추가됨.
MEDUSA는 40,000개 이상의 탐지 패턴을 갖춘 AI 우선 보안 스캐너로, 설치 즉시 사용할 수 있습니다. 설치 후 바로 스캔하면 되며 외부 도구 설치가 필요 없습니다. MEDUSA에 내장된 규칙은 AI/ML 애플리케이션, LLM 에이전트, MCP 서버, RAG 파이프라인 및 기존 코드의 취약점을 탐지합니다.
medusa scan --git <URL> - 모든 GitHub 저장소에서 AI 공급망 공격을 몇 초 만에 스캔medusa secrets scan + purge - Claude Code / Cursor / Copilot / Zed / Gemini 채팅 기록과 bash / zsh / psql / mysql / python REPL 기록에 유출된 API 키 / 토큰 / 개인 키를 탐지. 21가지 발급자 유형(Anthropic, OpenAI, PyPI, GitHub PAT, AWS, GCP, Stripe, Slack…). 바이트 단위 동일 백업과 JSONL 안전 편집(redaction)을 포함한 대화형 [y/n/s/a/q] 삭제. 로컬 전용, 원격 측정 없음.pip install 직후 바로 동작 - 도구 설치 불필요.medusa.ymlClaude Code 공급망 탐지, 더 넓은 언어 커버리지, 규칙 수준 관찰 가능성.
| 변경 사항 | 세부 사항 | |
|---|---|---|
| 🛡️ | Claude Code 손상 탐지 | medusa scan --git는 이제 클론 전에 .claude/ 를 구조적으로 검증합니다 — 오염된 hooks(curl|bash, base64→exec, 자격 증명 유출, 리버스 셸), 과도하게 넓은 permissions(Bash(*), bypassPermissions), 와일드카드 도구 subagents, 드로퍼 skills까지. |
| 🎯 | 상시 동작 공격 시그니처 스캐너 | 거짓 음성(False Negative) 간극을 해소합니다 — 데이터 파일(.jsonl/.csv)과 일반 텍스트의 탈옥(jailbreak)/프롬프트 인젝션 페이로드를 LLM 컨텍스트 신뢰도와 관계없이 탐지하며, 보이지 않는 유니코드 / 양방향(bidi, Trojan Source, CVE-2021-42574) 복구도 포함합니다. |
| 🦀 | 네이티브 Rust 보안 규칙 | 22개 기본 제공 규칙(툴체인 불필요) — TLS 검증 비활성화, 명령 주입, 신뢰할 수 없는 역직렬화, 원시 SQL, 안전하지 않은 메모리 연산, 취약한 암호화, SSRF. |
| 🐘 | 네이티브 PHP 보안 규칙 | 16개 기본 제공 규칙 — SQLi, 명령/eval 주입, LFI/RFI, 경로 탐색, unserialize() 객체 주입, 무제한 업로드, 반사형 XSS, SSRF, 취약한 암호화. |
| 🔬 | 규칙 진단(--trace-rules) | 규칙별 실행 로그 및 타이밍(rule-trace.jsonl, slow_rules.csv)과 중단에도 살아남는 하트비트 — 실제 재앙적 역추적(ReDoS)을 발견해 수정했으며, 작성 시점에 나쁜 패턴을 차단하는 ReDoS/중첩 집합 린트도 포함. |
| ⚡ | 엔진 + 정확도 | 스캔 엔진 성능 빠른 개선, --git 대상 검증용 컨텍스트 인식 스크리닝 모드, 대용량 파일 바이트 상한 샘플링, 문서 자리표시자 비밀 오탐(FP) 수정. |
v2026.5.12 — 가장 큰 패턴 릴리스: 8,466개의 AI 보안 연구 논문에서 수집한 9,600 → 40,000개 이상의 탐지 패턴, 오탐(False Positive) 강화, 구조적 규칙 무결성 스캐너.
v2026.5.10 — 보안 강화: VS Code 확장 명령 주입 수정, --fail-on 캐시된 발견 항목 버그, 도구 캐시 스테일 경로 수정, 사용자 홈 MCP 설정을 옵트인(opt-in)으로 변경.
v2026.5.9 — 에이전틱 커머스 커버리지: UCPScanner + AP2Scanner + 수동 튜닝된 45개 긍정 패턴 규칙.
v2026.5.8 — medusa secrets: AI 채팅 및 셸 기록에서 유출된 자격 증명(21가지 발급자 유형)을 대화형 [y/n/s/a/q] 삭제로 스캔.
v2026.5.7 — 간접 프롬프트 인젝션 규칙(101/102), 공급망 임포트 스캐너, macOS/Windows 멀티프로세싱 수정.
v2026.5.5 — 보안 강화 릴리스(argv 인젝션 방어, git SSRF, HMAC 캐시 무결성, markdown XSS 수정).
외부 린터(선택 사항): MEDUSA는 설치된 bandit, eslint, shellcheck 등을 자동으로 감지합니다. 선택 도구 가이드 참조.
지금 당신의 PyPI 토큰이 Claude 채팅 기록에 있을 수 있습니다.
개발자들은 매일 AI 어시스턴트에 API 키, 토큰, 자격 증명을 붙여넣습니다 —
"pypi-AgEI...로 배포해줘", "푸시할 때 내 ghp_...를 사용해", "AWS 키는 AKIA...야".
어시스턴트는 그 대화를 디스크에 평문으로 저장합니다. $HOME에 읽기 권한이 있는 사람이라면 누구나 — 또는 셸 접근 권한을 가진 향후 악성코드라도 — grep -r 'sk-\|ghp_\|AKIA' ~/ 를 실행해 몇 초 만에 운영 자격 증명을 수집할 수 있습니다.
medusa secrets scan이 이를 탐지하고, medusa secrets purge가 정리합니다.
medusa secrets scan
# 실시간 캡처 백업 옵션으로 EDR/XDR 자동 비활성화
- 필요에 따른 다양한 구성 옵션:
- `-ac` `--auto-capture` - 'live' 명령을 보낼 때마다 5초마다 웹캠 사진을 촬영합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(root 권한 필요).
- `-ack` `--auto-capture-key` - 특정 대상의 웹캠 캡처 동작을 설정하려면 이 옵션을 사용하세요. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(root 권한 필요).
- `-c` `--clear-browser` - 시작 시 브라우저 기록을 삭제합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-cl` `--clear-logs` - 시스템 로그를 삭제합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(root 권한 필요).
- `-cn` `--check-network` - 연결 전에 대상이 사용 중인 인터넷을 확인합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-f` `--fake-error` - 가짜 오류 메시지를 표시합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-k` `--keylogger` - 고급 키로거를 시작합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(root 권한 필요).
- `-m` `--melt` - 실행 후 파일을 자체 삭제합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(Unix에서 root 권한 필요).
- `-na` `--ngrok-authtoken` - 리포지토리에 생성하지 않고 지정한 토큰을 사용하여 NGROK 서버를 실행하려면 이 옵션을 사용하세요. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(예: `-na xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`).
- `-p` `--persistence` - 대상 시스템에 지속성을 유지합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(root 권한 필요).
- `-pos` `--position` - 창의 위치를 설정합니다 (예: `-pos 100,200`). (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-r` `--recovery` - 연결이 끊어지면 복구합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용)(Unix에서 root 권한 필요).
- `-sc` `--screen-capture` - 셸 명령을 실행할 때마다 대상 시스템의 화면을 캡처합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-sz` `--size` - 창의 크기를 설정합니다 (예: `-sz 800x600`). (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-t` `--title` - 창의 제목을 설정합니다. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- `-wl` `--white-list` - 대상에 대한 화이트리스트를 설정하려면 이 옵션을 사용하세요. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- 🐇 Proving Grounds 및 Simulation 모드: (예: `./Hysteria.sh --listen -pg example`).
- `-pg` `--proving-grounds` - 대상에 대한 시나리오를 테스트하려면 이 옵션을 사용하세요. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- 🐇 Pivot 및 Pivot-EX 모드: (예: `./Hysteria.sh --listen --pivot <ip> --pivot-port <port>`).
- `-pp` `--pivot-port` - 피벗 포트를 설정하려면 이 옵션을 사용하세요. (🕒 Profile & Probe & Pivot & Pivot-EX 전용).
- 💬 Telegram/Observer 모드: (예: `./hysteria.sh --listen -tb <token> -tbc <channel id>`).
- `-tb` `--telegram-bot` - 텔레그램 봇 토큰을 설정하려면 이 옵션을 사용하세요. (🕒 모든 모드)(예: `-tb xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`).
- `-tbc` `--telegram-bot-channel` - 텔레그램 봇 채널 ID를 설정하려면 이 옵션을 사용하세요. (🕒 모든 모드)(예: `-tbc xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`).
- `-tu` `--telegram-upload` - 대상이 캡처한 이미지를 텔레그램에 업로드하도록 하려면 이 옵션을 사용하세요. (🕒 모든 모드).
- `-tw` `--telegram-white-list` - 대상에 대한 화이트리스트 이름을 설정하려면 이 옵션을 사용하세요. (🕒 모든 모드).
- 🕒 모든 모드:```text
Scanning 118 file(s)...
── claude-code ──────────────────────────────────────────────
/home/ross/.claude/history.jsonl (13 finding(s))
[CRITICAL] Anthropic API key (anthropic)
/home/ross/.claude/history.jsonl:1005:13
sk-ant-api03***...***
[CRITICAL] PyPI API token (pypi)
/home/ross/.claude/history.jsonl:125:94
pypi-AgEIc***...***
[CRITICAL] GitHub fine-grained PAT (github)
/home/ross/.claude/history.jsonl:2306:13
github_pat_11A***...***
[HIGH] HuggingFace token (huggingface)
/home/ross/.claude/history.jsonl:3387:13
hf_JOi***...***
...
Total: 13 credentials across 1 file(s).
Report: /home/ross/.medusa/secrets-scan/secrets-20260519-074452.json
시스템에 기본 도구와 함께 "Aptitude"를 설치하는 bash 스크립트입니다. "aptitude.sh" 스크립트는 root 사용자용입니다. 하지만 simple_aptitude.sh는 apt-get이나 apt가 아니라는 점에 유의해야 합니다. 이는 새 하드웨어에 애플리케이션을 설치하는 과정을 시뮬레이션하는 데 사용되는 용어입니다. simple_aptitude.sh 스크립트는 시스템에 설치된 모든 프로그램을 기억하는 기능이 있습니다.
chmod +x simple_aptitude.sh
sudo ./simple_aptitude.sh
| 옵션 | 설명 |
|---|---|
-h | 도움말 메시지 표시 |
-i | Aptitude 및 기본 도구 설치 |
| 배포판 | 상태 |
|---|---|
| Debian | ✓ |
| Ubuntu | ✓ |
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
Input content is missing — no text was provided to translate. Please provide the chunk text.```text
[CRITICAL] PyPI API token (pypi)
/home/ross/.claude/history.jsonl:125:94
pypi-AgEIc***...***
redact? [y/n/s/a/q/?]: y
[CRITICAL] Anthropic API key (anthropic)
/home/ross/.claude/history.jsonl:1005:13
sk-ant-api03***...***
redact? [y/n/s/a/q/?]: y
...
✓ /home/ross/.claude/history.jsonl (13 redacted)
backup → /home/ross/.medusa/secrets-scan/backups/20260519-074452/home/ross/.claude/history.jsonl
The original file is backed up byte-for-byte before any change. JSONL stays
parseable after redaction. The redaction marker ([REDACTED-MEDUSA-...-<run-id>])
is unique per run so you can trace it back to the scan that produced it.
medusa secrets scan # everything (default — chat + shell) medusa secrets scan --source ai-chats # AI assistants only medusa secrets scan --source shell # ~/.bash_history, ~/.zsh_history, fish, psql, mysql, ... medusa secrets scan --path FILE # explicit file (e.g. a ChatGPT export) medusa secrets scan --reveal # show real values (requires 'I UNDERSTAND')
medusa secrets purge # interactive [y/n/s/a/q] medusa secrets purge SCAN_ID # purge a specific report medusa secrets purge --all --yes-i-know # batch mode for power users / CI
### 탐지 대상 (21개 발급처)
**AI 제공업체**: Anthropic, OpenAI, HuggingFace, Replicate, Cohere
**패키지 레지스트리**: PyPI, npm
**소스 포지**: GitHub PAT (classic + fine-grained + OAuth + App), GitLab PAT
**클라우드**: AWS 액세스 키, GCP 서비스 계정 JSON
**결제 / 커뮤니케이션**: Stripe live/restricted 키, Slack 봇/사용자 토큰, SendGrid, Twilio, Discord 웹훅
**암호화**: PEM 인코딩 개인 키 (RSA, DSA, EC, OpenSSH, PGP)
### 안전 속성
- **로컬 전용.** 보고서는 `~/.medusa/secrets-scan/` 모드 `0o600`으로 저장됩니다. 네트워크 없음, 텔레메트리 없음, 프로젝트 트리에 기록되지 않습니다.
- **쓰기 전 백업.** 모든 redaction 앞에는 바이트 단위로 동일한 백업이 수행됩니다. `cp`로 복원할 수 있습니다.
- **JSONL 안전.** redaction 마커에는 JSON에서 안전하지 않은 문자가 포함되지 않습니다. 영향을 받은 줄은 쓰기 후 다시 파싱됩니다.
- **변경 시 거부.** 소스 파일이 스캔과 purge 사이에 변경된 경우, purger는 편집을 덮어쓸 위험을 감수하지 않고 거부합니다.
- **원자적 쓰기.** 임시 파일 + `os.replace` 교체. 재작성이 적용되거나 원본이 그대로 유지됩니다.
[**📖 전체 secrets-scanner 가이드 →**](https://github.com/pantheon-security/medusa/blob/main/docs/SECRETS_SCANNER.md)
---
## 🚀 빠른 시작
### 설치```bash
# Install MEDUSA (works on Windows, macOS, Linux)
pip install medusa-security
# Run your first scan - that's it!
medusa scan .
가상 환경 (권장):```bash
python3 -m venv medusa-env source medusa-env/bin/activate # On Windows: medusa-env\Scripts\activate
pip install medusa-security medusa scan .
**플랫폼 참고사항:**
- **Windows**: `medusa` 명령이 없으면 `py -m medusa`를 사용하세요
- **macOS/Linux**: 기본적으로 바로 작동합니다
### 모든 GitHub 리포지토리 스캔```bash
# Scan a remote repo for AI supply chain attacks
medusa scan --git https://github.com/org/repo
# Shorthand - just user/repo
medusa scan --git org/repo
# Scan a specific branch
medusa scan --git https://github.com/org/repo/tree/main
MEDUSA는 알려진 공격 벡터인 28개 이상의 AI 편집기 구성 파일을 자동으로 감지합니다:
| 위험 수준 | 감지된 파일 |
|---|---|
| 심각 (RCE) | .cursorrules, .cursor/mcp.json, .clinerules/, .windsurfrules, .codex/config.toml, .kiro/settings/mcp.json, .vscode/settings.json, mcp.json |
| 높음 | CLAUDE.md, GEMINI.md, AGENTS.md, AGENT.md, SKILL.md, .github/copilot-instructions.md, CONVENTIONS.md, .amazonq/rules/, .roo/rules/, .augment/rules/ |
감지된 알려진 공격: Clinejection, CurXecute (CVE-2025-54135), IDEsaster (CVE-2025-64660), ToxicSkills, CamoLeak, RoguePilot, AIShellJack, Cacheract
medusa install --ai-tools
### 선택 사항: 외부 린터
MEDUSA는 외부 린터(bandit, eslint, shellcheck 등)가 설치된 경우 이를 자동으로 감지하고 스캔 범위를 강화하기 위해 자동으로 사용합니다.
플랫폼별 지침은 **[설치 가이드 보기 →](https://github.com/pantheon-security/medusa/blob/main/docs/OPTIONAL_TOOLS.md)** 를 참조하세요.
> **참고:** 외부 린터는 선택 사항입니다. MEDUSA의 40,000+ 내장 규칙은 외부 린터 없이도 작동합니다. 설치 지원이 필요하면 각 도구 공급업체의 문서를 참조하세요.
### 데모
<div align="center">

</div>
### 📊 보고서 형식
MEDUSA는 여러 형식으로 보기 좋은 보고서를 생성합니다:
**JSON** - CI/CD 통합을 위한 기계 판독 가능```bash
medusa scan . --format json
HTML - 멋진 glassmorphism UI와 인터랙티브 차트```bash medusa scan . --format html
**Markdown** - GitHub/위키 문서화에 적합```bash
medusa scan . --format markdown
모든 형식 - 한 번에 모든 것을 생성```bash medusa scan . --format all
---
## 📚 언어 지원
MEDUSA는 **79가지 스캐너 유형**을 지원하며 AI/ML 보안, 모든 주요 프로그래밍 언어, 파일 형식을 다룹니다:
### 백엔드 언어 (9)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Python | Bandit | `.py` |
| JavaScript/TypeScript | ESLint | `.js`, `.jsx`, `.ts`, `.tsx` |
| Go | golangci-lint | `.go` |
| Ruby | RuboCop | `.rb`, `.rake`, `.gemspec` |
| PHP | 네이티브 규칙 (+ PHPStan 선택 사항) | `.php` |
| Rust | 네이티브 규칙 (+ Clippy 선택 사항) | `.rs` |
| Java | Checkstyle | `.java` |
| C/C++ | cppcheck | `.c`, `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp` |
| C# | Roslynator | `.cs` |
### JVM 언어 (3)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Kotlin | ktlint | `.kt`, `.kts` |
| Scala | Scalastyle | `.scala` |
| Groovy | CodeNarc | `.groovy`, `.gradle` |
### 함수형 언어 (5)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Haskell | HLint | `.hs`, `.lhs` |
| Elixir | Credo | `.ex`, `.exs` |
| Erlang | Elvis | `.erl`, `.hrl` |
| F# | FSharpLint | `.fs`, `.fsx` |
| Clojure | clj-kondo | `.clj`, `.cljs`, `.cljc` |
### 모바일 개발 (2)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Swift | SwiftLint | `.swift` |
| Objective-C | OCLint | `.m`, `.mm` |
### 프론트엔드 및 스타일링 (3)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| CSS/SCSS/Sass/Less | Stylelint | `.css`, `.scss`, `.sass`, `.less` |
| HTML | HTMLHint | `.html`, `.htm` |
| Vue.js | ESLint | `.vue` |
### 코드형 인프라 (4)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Terraform | tflint | `.tf`, `.tfvars` |
| Ansible | ansible-lint | `.yml` (플레이북) |
| Kubernetes | kubeval | `.yml`, `.yaml` (매니페스트) |
| CloudFormation | cfn-lint | `.yml`, `.yaml`, `.json` (템플릿) |
### 구성 파일 (4)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| JSON | 내장 | `.json` |
| TOML | taplo | `.toml` |
| XML | xmllint | `.xml` |
| Protobuf | buf lint | `.proto` |
### 셸 및 스크립트 (4)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Bash/Shell | ShellCheck | `.sh`, `.bash` |
| PowerShell | PSScriptAnalyzer | `.ps1`, `.psm1` |
| Lua | luacheck | `.lua` |
| Perl | perlcritic | `.pl`, `.pm` |
### 문서 (2)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| Markdown | markdownlint | `.md` |
| reStructuredText | rst-lint | `.rst` |
### 기타 언어 (5)
| 언어 | 스캐너 | 확장자 |
|----------|---------|------------|
| SQL | SQLFluff | `.sql` |
| R | lintr | `.r`, `.R` |
| Dart | dart analyze | `.dart` |
| Solidity | solhint | `.sol` |
| Docker | hadolint | `Dockerfile*` |
**총계: 79가지 스캐너 유형 — 41개 언어/도구 스캐너 + 38개 AI/ML 보안 스캐너 — 100개 이상의 파일 확장자 지원**
---
## 🚨 React2Shell CVE 감지 (v2025.8의 새로운 기능)
MEDUSA는 이제 **CVE-2025-55182 "React2Shell"**을 감지합니다. 이는 React Server Components 및 Next.js에 영향을 미치는 CVSS 10.0 RCE 취약점입니다.```bash
# Check if your project is vulnerable
medusa scan .
# Vulnerable versions detected:
# - React 19.0.0 - 19.2.0 (Server Components)
# - Next.js 15.0.0 - 15.0.4 (App Router)
# - Various canary/rc releases
스캔: package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
수정: React 19.0.1+ 및 Next.js 15.0.5+로 업그레이드
MEDUSA는 에이전틱 AI 시대를 위한 업계 최고 수준의 AI 보안 스캐닝을 40,000개 이상의 탐지 패턴으로 제공합니다. 2025 OWASP Top 10 for LLM Applications 기준으로 업데이트되었으며, AI 코딩 편집기와 MCP 서버 전반의 200개 이상의 CVE 탐지를 포함합니다.
| 범주 | 패턴 수 | 탐지 내용 |
|---|---|---|
| 프롬프트 인젝션 | 800+ | 직접/간접 인젝션, 탈옥, 역할 조작 |
| MCP 서버 보안 | 400+ | 도구 중독, 스키마 중독, ATPA, 샘플링 인젝션, 러그풀 |
| 저장소 중독 | 150+ | 무기화된 AI 편집기 설정, Clinejection, CurXecute, IDEsaster, CamoLeak |
| RAG 보안 | 300+ | 벡터 인젝션, 문서 중독, 테넌트 격리 |
| 에이전트 보안 | 500+ | 과도한 권한, 메모리 중독, HITL 우회 |
| 모델 보안 | 400+ | 안전하지 않은 로딩, 체크포인트 노출, 적대적 공격 |
| 공급망 | 350+ | 의존성 혼동, 타이포스쿼팅, 잠금 파일 백도어 |
| 기존 SAST | 1,400+ | SQL 인젝션, XSS, 명령 인젝션, 비밀 정보 |
|
컨텍스트 및 입력 공격
메모리 및 상태 공격
도구 및 액션 공격
|
워크플로우 및 라우팅 공격
RAG 및 지식 공격
고급 공격
|
.cursorrules # Cursor AI (CVE-2025-54135) .cursor/rules/.mdc # Cursor rules directory .cursor/mcp.json # Cursor MCP (CurXecute RCE) .clinerules/.md # Cline (Clinejection) .windsurfrules # Windsurf (CVE-2025-36730) .windsurf/rules/* # Windsurf workspace rules .codex/config.toml # Codex CLI (CVE-2025-61260) .kiro/settings/mcp.json # Kiro (CVE-2026-0830) .vscode/settings.json # VS Code (IDEsaster) *.code-workspace # VS Code workspace mcp.json / .mcp.json # MCP server configs
CLAUDE.md # Claude Code GEMINI.md # Gemini CLI AGENTS.md # OpenAI Codex AGENT.md # Roo Code SKILL.md # ClawHub/ToxicSkills CONVENTIONS.md # Aider .github/copilot-instructions.md # GitHub Copilot .amazonq/rules/.md # Amazon Q Developer .augment/rules/ # Augment Code .roo/rules/.md # Roo Code .tabnine/guidelines/.md # Tabnine .continue/config.yaml # Continue.dev .cody.yml # Sourcegraph Cody
### 빠른 AI 보안 스캔```bash
# Scan AI configuration files
medusa scan . --ai-only
# Example output:
# 🔍 AI Security Scan Results
# ├── .cursorrules: 3 issues (1 CRITICAL, 2 HIGH)
# │ └── AIC001: Prompt injection - ignore previous instructions (line 15)
# │ └── AIC011: Tool shadowing - override default tools (line 23)
# ├── mcp-config.json: 2 issues (2 HIGH)
# │ └── MCP003: Dangerous path - home directory access (line 8)
# └── rag_config.json: 1 issue (1 CRITICAL)
# └── AIR010: Knowledge base injection pattern detected (line 45)
medusa init
medusa scan .
medusa scan /path/to/project
medusa scan . --quick
medusa scan . --force
medusa scan . --workers 4
medusa scan . --fail-on high
medusa scan . -o /tmp/reports
### 설치 명령어```bash
# Check tool status
medusa install --check
# Install AI tools (modelscan for ML model scanning)
medusa install --ai-tools
# Show detailed output
medusa install --ai-tools --debug
참고: MEDUSA v2026.2+는 더 이상 외부 린터를 설치하지 않습니다. 필요하면 패키지 관리자(apt, brew, npm, pip)를 통해 직접 설치하세요. MEDUSA는 설치된 린터를 자동으로 감지하여 사용합니다.
medusa init
medusa init --ide claude-code
medusa init --ide claude-code --ide gemini-cli --ide cursor
medusa init --ide all
medusa init --force
medusa init --install
### 추가 명령어```bash
# Uninstall modelscan
medusa uninstall modelscan
# Check for updates
medusa version --check-updates
# Show current configuration
medusa config
# Override scanner for specific file
medusa override path/to/file.yaml YAMLScanner
# List available scanners
medusa override --list
# Show current overrides
medusa override --show
# Remove override
medusa override path/to/file.yaml --remove
| Option | Description |
|---|---|
TARGET | 스캔할 디렉터리 또는 파일 (기본값: .) |
-g, --git URL | 원격 git 저장소를 클론하고 스캔합니다 (GitHub URL 또는 user/repo 약식) |
-w, --workers N | 병렬 작업자 수 (기본값: 자동 감지) |
--quick | 빠른 스캔 (변경된 파일만, git 필요) |
--force | 전체 스캔 강제 (캐시 무시) |
--no-cache | 결과 캐싱 비활성화 |
--fail-on LEVEL | 다음 심각도에서 오류로 종료: critical, high, medium, low |
-o, --output PATH | 보고서용 사용자 지정 출력 디렉터리 |
--format FORMAT | 출력 형식: json, html, sarif, junit, text (여러 개 지정 가능) |
--no-report | HTML 보고서 생성 건너뛰기 |
| Option | Description |
|---|---|
--check | 도구 상태 확인 |
--ai-tools | AI 보안 도구 설치 (modelscan) |
--debug | 상세 디버그 출력 표시 |
v2026.2+ 변경 사항: MEDUSA는 더 이상 외부 린터 설치를 관리하지 않습니다.
--all플래그는 더 이상 사용되지 않습니다. 필요한 경우 시스템 패키지 관리자를 통해 외부 린터를 설치하세요.
.medusa.ymlMEDUSA는 프로젝트별 설정을 위해 YAML 구성 파일을 사용합니다:```yaml
version: 2026.5.5
scanners: enabled: [] # Empty = all scanners enabled disabled: [] # List scanners to disable
fail_on: high # critical | high | medium | low
exclude: paths: - node_modules/ - venv/ - .venv/ - .git/ - pycache/ - dist/ - build/ files: - ".min.js" - ".min.css"
ide: claude_code: enabled: true auto_scan: true cursor: enabled: false vscode: enabled: false
workers: null # null = auto-detect CPU cores cache_enabled: true # Enable file caching for speed
### 기본 구성 생성```bash
medusa init
This creates .medusa.yml with sensible defaults and auto-detects your IDE.
MEDUSA는 네이티브 통합을 통해 5대 주요 AI 코딩 어시스턴트를 지원합니다. medusa init --ide all로 초기화하거나 특정 플랫폼을 선택하세요.
| IDE | 컨텍스트 파일 | 명령 | 상태 |
|---|---|---|---|
| Claude Code | CLAUDE.md | /medusa-scan, /medusa-install | ✅ 완전 지원 |
| Gemini CLI | GEMINI.md | /scan, /install | ✅ 완전 지원 |
| OpenAI Codex | AGENTS.md | 네이티브 슬래시 명령 | ✅ 완전 지원 |
| GitHub Copilot | .github/copilot-instructions.md | 코드 제안 | ✅ 완전 지원 |
| Cursor | CLAUDE.md 재사용 | MCP + Claude 명령 | ✅ 완전 지원 |
medusa init --ide all
medusa init --ide claude-code --ide gemini-cli
### Claude Code
**생성하는 항목:**
- `CLAUDE.md` - 프로젝트 컨텍스트 파일
- `.claude/agents/medusa/agent.json` - 에이전트 구성
- `.claude/commands/medusa-scan.md` - 스캔 슬래시 명령
- `.claude/commands/medusa-install.md` - 설치 슬래시 명령
**사용법:**```
Type: /medusa-scan
Claude: *runs security scan*
Results: Displayed in terminal + chat
생성 항목:
GEMINI.md - 프로젝트 컨텍스트 파일.gemini/commands/scan.toml - 스캔 명령 구성.gemini/commands/install.toml - 설치 명령 구성사용법:```bash gemini /scan # Full scan gemini /scan --quick # Quick scan gemini /install --check # Check tools
### OpenAI Codex
**생성하는 내용:**
- `AGENTS.md` - 프로젝트 컨텍스트 (루트 레벨)
**사용 방법:**```
Ask: "Run a security scan"
Codex: *executes medusa scan .*
생성하는 항목:
.github/copilot-instructions.md - 보안 표준 및 모범 사례도움을 주는 방법:
생성하는 항목:
.cursor/mcp-config.json - MCP 서버 구성.claude/ 구조를 재사용합니다 (Cursor는 VS Code 포크입니다)사용법:
MEDUSA는 시스템 부하를 자동으로 모니터링하고 워커 수를 조정합니다:```python
⚠️ High CPU usage: 85.3% Using 2 workers (reduced due to system load)
### 스마트 캐싱
해시 기반 캐싱은 변경되지 않은 파일을 건너뜁니다:```bash
# First scan
📂 Files scanned: 145
⏱️ Total time: 47.28s
# Second scan (no changes)
📂 Files scanned: 0
⚡ Files cached: 145
⏱️ Total time: 2.15s # 22× faster!
대규모 속도 향상을 위한 멀티코어 스캐닝:``` Single-threaded: 417.5 seconds 6 workers: 47.3 seconds # 8.8× faster 24 workers: ~18 seconds # 23× faster
---
## 📊 예제 워크플로우
### 새 프로젝트 설정```bash
# 1. Initialize
cd my-awesome-project
medusa init
🐍 MEDUSA Initialization Wizard
✅ Step 1: Project Analysis
Found 15 language types
Primary: PythonScanner (44 files)
✅ Step 2: Scanner Availability
Available: 6/79 scanners
Missing: 73 tools
✅ Step 3: Configuration
Created .medusa.yml
Auto-detected IDE: Claude Code
✅ Step 4: IDE Integration
Created .claude/agents/medusa/agent.json
Created .claude/commands/medusa-scan.md
✅ MEDUSA Initialized Successfully!
# 2. First scan
medusa scan .
🔍 Issues found: 23
CRITICAL: 0
HIGH: 2
MEDIUM: 18
LOW: 3
# 3. Fix issues and rescan
medusa scan . --quick
⚡ Files cached: 142
🔍 Issues found: 12 # Progress!
name: Security Scan
on: [push, pull_request]
jobs: medusa: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install MEDUSA
run: pip install medusa-security
- name: Run security scan
run: medusa scan . --fail-on high
> **Note**: No tool installation step needed - MEDUSA's 40,000+ built-in rules work immediately.
---
## 🏗️ Architecture
### Scanner Pattern
All scanners follow a consistent pattern:```python
class PythonScanner(BaseScanner):
"""Scanner for Python files using Bandit"""
def get_tool_name(self) -> str:
return "bandit"
def get_file_extensions(self) -> List[str]:
return [".py"]
def scan_file(self, file_path: Path) -> ScannerResult:
# Run bandit on file
# Parse JSON output
# Map severity levels
# Return structured issues
return ScannerResult(...)
스캐너가 자동으로 자신을 등록합니다:```python
registry = ScannerRegistry() registry.register(PythonScanner()) registry.register(JavaScriptScanner())
### Severity Mapping
모든 도구에서 통일된 심각도 수준:
- **CRITICAL** - 보안 취약점, 치명적 오류
- **HIGH** - 오류, 보안 경고
- **MEDIUM** - 경고, 코드 품질 문제
- **LOW** - 스타일 문제, 규칙 위반
- **INFO** - 제안, 리팩토링 기회
---
## 🧪 테스트 및 품질
### Dogfooding 결과
MEDUSA는 스스로와 실제 프로젝트를 스캔합니다:```
Self-scan (473 files):
✅ Issues found: 114 (pre-filter) → 0 (post-filter)
✅ FP reduction: 100% on own codebase
⏱️ Time: 8.2s
OpenClaw benchmark (4,124 files, 751K LOC):
🔍 Issues found: 825 (post-filter)
✅ FPs filtered: 11,436 (93.9% reduction)
⏱️ Time: 3.3 hours (79 scanners)
| 프로젝트 규모 | 파일 수 | 시간 | 속도 |
|---|---|---|---|
| 소형 (MEDUSA 자체 스캔) | 473 | ~8s | 59 files/s |
| 중형 | 1,000 | ~45s | 22 files/s |
| 대형 (OpenClaw) | 4,124 | ~3.3h | 0.34 files/s* |
*대형 프로젝트 시간은 외부 도구 하위 프로세스(Semgrep, Trivy, GitLeaks)가 대부분을 차지합니다. 내장 패턴 스캔은 거의 즉각적입니다.
medusa scan --git <URL> - 모든 GitHub 저장소에서 AI 공급망 공격 스캔기여를 환영합니다! 시작하는 방법은 다음과 같습니다:```bash
git clone https://github.com/yourusername/medusa.git cd medusa
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e ".[dev]"
pytest
git checkout -b feature/my-awesome-feature
medusa scan . # Dogfood your changes!
git push origin feature/my-awesome-feature
### 새 스캐너 추가
새 언어 지원 추가에 대한 가이드는 `docs/development/adding-scanners.md`를 참조하세요.
---
## 📜 라이선스
AGPL-3.0-or-later - [LICENSE](https://github.com/pantheon-security/medusa/blob/main/LICENSE) 파일 참조
MEDUSA는 무료 오픈소스 소프트웨어입니다. 자유롭게 사용, 수정, 배포할 수 있지만, 모든 수정 사항이나 파생 저작물(SaaS 배포 포함)도 AGPL-3.0으로 공개되어야 합니다.
상업용 라이선스 옵션은 [email protected]로 문의하세요.
---
## 곧 출시 예정
MEDUSA Professional은 프로덕션 LLM 애플리케이션을 위한 **런타임 보호**를 추가합니다 - 프롬프트 인젝션, 탈옥(jailbreaking), 데이터 유출 시도를 모델에 도달하기 전에 실시간으로 차단합니다.
| 기능 | 오픈소스 | 프로페셔널 | 엔터프라이즈 |
|---------|-------------|--------------|------------|
| 정적 스캐닝 (40,000개 이상의 패턴) | 예 | 예 | 예 |
| 런타임 프록시 필터 (1,100개 이상) | - | 예 | 예 |
| REST API 및 웹훅 | - | 예 | 예 |
| 사용자 정의 규칙 및 SSO | - | - | 예 |
| **가격** | 무료 | $99/dev/mo | $499/50 devs/mo |
런타임 프록시는 현재 비공개 베타 단계입니다. 프로덕션 LLM 애플리케이션을 보호 중이고 조기 액세스를 원한다면 **[email protected]**로 연락하세요.
---
## 🙏 크레딧
**개발:**
- Pantheon Security
- Claude AI (Anthropic) - AI 지원 개발
**제작에 사용된 도구:**
- Python 3.10+
- Click - CLI 프레임워크
- Rich - 터미널 포맷팅
- Bandit, ESLint, ShellCheck 및 39개 이상의 기타 오픈소스 보안 도구
**영감을 받은 프로젝트:**
- Bandit (Python 보안)
- SonarQube (다중 언어 분석)
- Semgrep (패턴 기반 보안)
- Mega-Linter (포괄적 린팅)
---
## 📖 가이드
- **[빠른 시작](https://github.com/pantheon-security/medusa/blob/main/docs/guides/quick-start.md)** - 5분 만에 실행하기
- **[AI 보안 스캐닝](https://github.com/pantheon-security/medusa/blob/main/docs/AI_SECURITY.md)** - AI/LLM 보안 완벽 가이드 (OWASP 2025, MCP, RAG)
- **[오탐(False Positive) 처리](https://github.com/pantheon-security/medusa/blob/main/docs/guides/handling-false-positives.md)** - 노이즈 줄이기, 실제 문제 찾기
- **[IDE 통합](https://github.com/pantheon-security/medusa/blob/main/docs/guides/ide-integration.md)** - Claude Code, Gemini, Copilot 설정
---
## 📞 지원
- **GitHub Issues**: [버그 신고 또는 기능 요청](https://github.com/Pantheon-Security/medusa/issues)
- **이메일**: [email protected]
- **문서**: https://docs.pantheonsecurity.io
- **Discord**: https://discord.gg/medusa (곧 제공 예정)
---
## 📈 통계
**버전**: 2026.5.5
**출시일**: 2026-04-03
**탐지 패턴**: 40,000개 이상의 AI 보안 규칙
**분석기**: 79개의 전문 스캐너
**오탐(FP) 필터 패턴**: 514개의 지능형 필터 (96.8% 감소율)
**CVE 적용 범위**: 200개의 중요 취약점 (37개 이상의 AI 에디터 CVE)
**저장소 오염(Repo Poisoning)**: 28개 이상의 AI 에디터 설정 파일 유형 탐지
**언어 적용 범위**: 46개 이상의 파일 유형
**플랫폼 지원**: Linux, macOS, Windows
**AI 통합**: Claude Code, Gemini CLI, GitHub Copilot, Cursor, OpenAI Codex
**표준**: OWASP Top 10 for LLM 2025, MITRE ATLAS
**다운로드**: PyPI에서 11,500회 이상
---
## 🌟 왜 MEDUSA인가?
### Bandit과 비교
- ✅ 40,000개 이상의 패턴 (Python 보안만이 아님)
- ✅ AI/ML 보안 적용 범위
- ✅ 설정 불필요
- ✅ IDE 통합
### SonarQube와 비교
- ✅ 더 간단한 설정 (`pip install && scan`)
- ✅ 서버 불필요
- ✅ AI 우선 보안 중심
- ✅ 무료 및 오픈소스
### Semgrep과 비교
- ✅ AI/ML 전용 규칙 내장
- ✅ MCP, RAG, 에이전트 보안
- ✅ 더 나은 IDE 통합
- ✅ 규칙 구성 불필요
### 기존 SAST와 비교
- ✅ 즉시 작동 (도구 설치 불필요)
- ✅ AI 보안 패턴 포함
- ✅ 병렬 처리
- ✅ 스마트 캐싱
---
**🐍🐍🐍 MEDUSA - 다중 언어 보안 스캐너 🐍🐍🐍**
**단 하나의 명령. 완벽한 보안.**```bash
medusa init && medusa scan .
최종 업데이트: 2026-04-03 상태: 프로덕션 준비 완료 현재 버전: v2026.5.5 - 보안 강화