MindJack
AI 에이전트의 생각 속으로 들어가세요. 그들의 기억을 읽고, 지침을 다시 작성하세요.
AI 코딩 어시스턴트의 로컬 공격 표면(local attack surface)을 감사하기 위한 보안 연구 툴킷입니다.
종속성 제로(Zero dependencies), Python 3.10 이상 표준 라이브러리만 사용합니다.
extractor.py - 10개 AI 도구의 대화 기록 추출
injector.py - 주입 표면(injection surfaces) 스캔 및 56가지 공격 시나리오 시연
mindjack report - OWASP 준수 매핑이 포함된 인터랙티브 HTML 공격 그래프 생성
면책 조항: 승인된 보안 테스트, 레드팀(red teaming), CTF 챌린지 및 AI 안전 연구 목적으로만 사용해야 합니다. 소유하지 않은 시스템에 대한 테스트를 수행하기 전에는 항상 적절한 권한을 얻으십시오.
| 도구 | Extractor | Injector | 주요 공격 표면 (Key Attack Surface) |
|---|
| Claude Code | history, sessions, memories | rules, settings, hooks, MCP, memory | CLAUDE.md, settings.json, hooks (RCE) |
| ... | | | |
빠른 시작 (Quick Start)
git clone https://github.com/7h30th3r0n3/MindJack.git
cd MindJack
pip install -e .
...
모든 것이 이제 하나의 CLI로 통합되었습니다. 레거시 진입점(legacy entry points)은 하위 호환성을 위해 여전히 작동합니다: python3 extractor.py ... 및 python3 injector.py ....
지원되는 모든 AI 도구로부터 로컬 대화 데이터를 읽어와 JSON 및 Markdown으로 내보냅니다.
사용법 (Usage)
python3 extractor.py
python3 extractor.py -o ~/export
python3 extractor.py --json-only
...
출력 (Output)
ai_history_export/
all_conversations.json # 모든 데이터 통합
claude-code.json # 출처별 파일
...
JSON 스키마 (JSON Schema)
{
"source": "claude-code",
"session_id": "abc123-..."
}
| Tool | 추출되는 내용 | 저장 경로 |
|---|
| Claude Code | 사용자 프롬프트 (JSONL), 세션 요약 (.tmp), 영구 메모리 (.md) | ~/.claude/ |
Injector (인젝터)
파일 기반 프롬프트 인젝션 및 설정 오염(configuration poisoning)을 다양한 AI 코딩 어시스턴트 전반에 걸쳐 스캔하고 시연합니다.
공격 표면 카테고리 (Attack Surface Categories)
| 카테고리 | 위험도 | 예시 |
|---|
| Instructions | CRITICAL | CLAUDE.md, AGENTS.md, .cursorrules, .clinerules, .windsurfrules |
명령어 (Commands)
python3 injector.py scan
python3 injector.py scan --json targets.json
...
레시피 (Recipes) (33개)
Claude Code (9)
| Recipe | Description |
|---|
claude-settings-allowall | 모든 도구(Bash, Read, Write, Edit, Agent, WebFetch, WebSearch)를 화이트리스트로 설정합니다. |
| ... | |
Codex CLI (3)
| Recipe | Description |
|---|
codex-sandbox-disable | danger-full-access 샌드박스 및 full-auto 승인을 설정합니다. |
| ... | |
Cursor IDE (3)
| Recipe | Description |
|---|
cursor-rules-backdoor | 숨겨진 인증 우회(auth bypass) 및 오류 유출(error exfil)을 포함하는 .cursorrules입니다. |
| ... | |
GitHub Copilot (1)
| Recipe | Description |
|---|
copilot-instructions-poison | 취약한 패턴이 포함된 .github/copilot-instructions.md 파일입니다. |
Aider (2)
| Recipe | Description |
|---|
aider-autocommit-nocheck | 자동 커밋을 활성화하고 린트(lint) 및 테스트를 비활성화합니다. |
aider-conventions-poison | SQL 인젝션 및 MD5 비밀번호가 포함된 CONVENTIONS.md 파일입니다. |
Continue.dev (2)
| Recipe | Description |
|---|
continue-config-overwrite | 악성 MCP와 임의 모델(rogue model)로 설정을 덮어쓰는 .continuerc.json입니다. |
continue-rules-inject | 모든 .env 파일을 읽는 alwaysApply 기능을 가진 전역 규칙입니다. |
Cline / Roo Code (3)
레시피 및 기능 상세
| Recipe | Description |
|---|
cline-rules-inject | .clinerules가 설정 스크립트를 실행하고 모든 것을 자동 승인함 |
| ... | |
Windsurf (2)
| Recipe | Description |
|---|
windsurf-global-rules-poison | 모든 워크스페이스에 대해 global_rules.md를 덮어씀 |
windsurf-memory-inject | 자동 생성된 메모리를 오염시킴 |
Amazon Q (2)
| Recipe | Description |
|---|
amazonq-rules-inject | .amazonq/rules/에 하드코딩된 AWS 자격 증명과 공개 S3를 포함함 |
amazonq-mcp-inject | 환경 변수를 유출하는 MCP 서버 |
| Recipe | Description |
|---|
mcp-rogue-server | 악성 MCP 서버 (Claude, Cursor, Amazon Q) |
| ... | |
| Recipe | Description |
|---|
cross-tool-agents-md | 5개 이상의 도구가 동시에 읽는 AGENTS.md |
| ... | |
Payload Presets (23)
프리셋은 --payload-preset을 사용하여 모든 대상에 주입할 수 있습니다:
| Category | Presets |
|---|
| Data Exfiltration | exfiltrate_secrets, exfiltrate_codebase, exfiltrate_git |
| ... | |
안전 기능 (Safety Features)
--dry-run: 파일 수정 없이 모든 변경 사항을 미리 보여줍니다.
- Atomic writes: 콘텐츠는 임시 파일에 작성된 후 제자리에 이름이 변경되므로, 쓰기 중단으로 인해 설정 파일이 손상되는 일이 없습니다.
- Automatic backups (
.agentscan.bak): 모든 수정 전에 자동 백업을 생성합니다.
clean: 실제 사전 주입 상태를 복원합니다. 수정된 파일은 백업에서 바이트 단위로 복원되며, 주입으로 생성된 파일은 제거됩니다 (비어 있거나 여전히 오염된 상태로 남지 않습니다).
- Injection markers (
<!-- AGENTSCAN-INJECTION -->): 식별을 위한 마커입니다.
- Double injection prevention: 이미 주입된 파일은 건너뜁니다.
- Recipe target filtering: 레시피는 선언된 대상에만 주입합니다.
- JSON parse safety: 파싱할 수 없는 파일을 덮어쓰는 것을 거부합니다.
여러 도구에 의해 읽히는 파일들은 높은 가치를 지닌 공격 대상이 됩니다:
| File | Read by |
|---|
AGENTS.md | Codex CLI, Cursor, Windsurf, Cline/Roo Code, GitHub Copilot |
| ... | |
복제된 저장소 내의 단일 AGENTS.md 파일은 5개 이상의 AI 도구를 은밀하게 오염시킬 수 있습니다. | |
OWASP 매핑 (OWASP Mapping)
모든 MindJack 시나리오는 OWASP가 분류한 실제 취약점과 연결됩니다.
LLM 애플리케이션을 위한 OWASP Top 10 (2025)
출처: genai.owasp.org/resource/owasp-top-10-for-llm-applications-2025
| ID | 취약점 (Vulnerability) | MindJack 커버리지 |
|---|
| LLM01 | 프롬프트 주입 (Prompt Injection) | 모든 명령어/규칙 주입 (CLAUDE.md, AGENTS.md, .cursorrules, .clinerules, .windsurfrules) - MindJack의 핵심 |
| ... | | |
에이전트 애플리케이션을 위한 OWASP Top 10 (2025)
출처: genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026
| ID | 취약점 (Vulnerability) | MindJack 커버리지 |
|---|
| ASI01 | 에이전트 목표 탈취 (Agent Goal Hijack) | redirect_instructions, cross-tool-full-takeover, claude-rules-inject - 명령어 파일을 통한 에이전트 목표 무효화 |
| ... | | |
커버리지 요약 (Coverage Summary)
| 프레임워크 | 커버됨 | 총 개수 | 커버율 |
|---|
| OWASP Top 10 LLM (2025) | 9/10 | 10 | 90% |
| OWASP Top 10 Agentic (2025) | 10/10 | 10 | 100% |
LLM08 (벡터 및 임베딩 취약점)은 커버되지 않은 유일한 항목입니다. 이는 로컬 파일 기반 공격 표면이 아닌 RAG 파이프라인 내부와 관련됩니다.
대화형 HTML 보고서 (Interactive HTML Report)
MindJack v2는 공격 경로 분석이 포함된 독립적인 대화형 HTML 보고서를 생성하는 설치 가능한 모듈을 포함합니다.
설치 (Installation)
사용법 (Usage)
mindjack report --scope ~ --allow-home-scope -o report.html
...
Report Tabs
| 탭 | 설명 |
|---|
| Executive Summary | 위험 대시보드, 도구 목록, MITRE ATT&CK 태그가 지정된 주요 발견 사항, 공격 유형별 위험 매트릭스 |
| ... | |
Other Commands
mindjack discover --scope ~ --allow-home-scope
mindjack assess --scope ~ --allow-home-scope
mindjack graph --scope ~ --allow-home-scope
...
apply 안전 기능: 실제 파일에 쓰기 작업을 하므로, --lab-mode와 --yes 없이는 실행을 거부하며, 명시적인 비(非)홈(non-home) --scope와 --target 필터를 요구합니다. 또한 사용자 자신의 ~/.claude, ~/.codex 등에는 암묵적으로 접근하지 않는 엄격한 범위를 사용합니다. 모든 쓰기 작업은 백업되며 restore 명령어로 되돌릴 수 있습니다. 먼저 simulate로 미리보기를 수행하세요.
Tests
PYTHONPATH=. python3 -m mindjack.tests
| 플랫폼 | Extractor | Injector |
|---|
| Linux | Full | Full |
| ... | | |
Security Hardening (보안 강화)
이 툴킷은 안전한 작동을 위해 여러 보호 기능을 포함합니다:
- 파일 크기 제한 (최대 50 MB): 잘못된 파일에 대한 OOM(Out of Memory) 방지
- Symlink escape 감지: 예상 디렉터리 외부로 해석되는 경로는 거부됨
- 환경 변수 유효성 검사:
CODEX_HOME이 홈 디렉터리를 벗어날 경우 경고 발생
- Markdown 콘텐츠 이스케이프: 생성된 보고서의 주입(injection) 방지
- 안전한 SQLite 처리: 컨텍스트 매니저 및 오류 보고 기능 제공
- 권한 인식 순회 (Permission-aware traversal): 접근할 수 없는 디렉터리는 조용히 건너뜀
Privacy (개인 정보 보호)
두 도구 모두 100% 로컬에서 실행됩니다. 데이터는 어떠한 곳으로도 전송되지 않습니다. 네트워크 호출이 없습니다. .gitignore에 ai_history_export/를 추가하세요.
Contributing (기여)
PR(Pull Request) 환영합니다! 새로운 도구를 추가하려면:
- Extractor:
extract_<tool>()를 추가하고, EXTRACTORS에 등록합니다.
- Injector:
discover_<tool>()를 추가하고, ALL_DISCOVERERS에 등록하며, RECIPES에 레시피를 추가합니다.
- 이 README를 업데이트합니다.
라이선스 (License)
MIT