OpenSource-Hub

AI-Infra-Guard

애플리케이션

Tencent/AI-Infra-Guard

AI 레드팀 플랫폼, 에이전트, 스킬, MCP 및 인프라의 보안 위험을 전방위적으로 탐지합니다.

개요

에이전트 스캔, 스킬 스캔, MCP 스캔, AI 인프라 취약점 스캔 및 LLM 탈옥 평가를 통합한 풀스택 AI 레드팀 플랫폼으로, 포괄적이고 지능적인 AI 보안 자체 점검 기능을 제공하며 Web 인터페이스와 독립형 CLI 도구를 지원합니다.

README 미리보기

\n    \n\n\n  📖 Documentation  | \n  🌐 🇨🇳 中文 · 🇯🇵 日本語 · 🇪🇸 Español · 🇩🇪 Deutsch · 🇫🇷 Français · 🇰🇷 한국어 · 🇧🇷 Português · 🇷🇺 Русский\n\n\n    \n      \n    \n    \n        \n    \n    \n        \n    \n    \n        \n    \n    \n       \n    \n\n\n    \n       \n    \n    \n       \n    \n    \n       \n    \n\n\n   \n   \n  \n\n\n\n\n\n    🚀 AI Red Teaming Platform by Tencent Zhuque Lab\n\n\nA.I.G (AI-Infra-Guard) integrates capabilities such as ClawScan(OpenClaw Security Scan), Agent Scan,AI infra vulnerability scan, MCP Server & Agent Skills scan, and Jailbreak Evaluation, aiming to provide users with the most comprehensive, intelligent, and user-friendly solution for AI security risk self-examination.\n\n\n  We are committed to making A.I.G(AI-Infra-Guard) the industry-leading AI red teaming platform. More stars help this project reach a wider audience, attracting more developers to contribute, which accelerates iteration and improvement. Your star is crucial to us!\n\n\n  \n      \n  \n\n\n\n\n## 📋 User Feedback Survey\n\nHelp us improve A.I.G! Please take 3-5 minutes to fill out our [User Feedback Survey](https://doc.weixin.qq.com/forms/AJEAIQdfAAoAFkA0QbdAFwCNcKSO0BFLf). Users who provide high-quality feedback and leave a valid email address will receive an exclusive Tencent souvenir gift.\n\n\n\n## 🚀 What's New\n\n- **2026-08-17** · [v4.5.2](https://github.com/Tencent/AI-Infra-Guard/releases/tag/v4.5.2) — Skill-Scan: .pyc bytecode bypass detection + charset smuggling defense; MCP-Scan: RCE prevention via tool whitelisting in dynamic mode; new SkillJack research project; vuln library expanded to 2000+ CVE rules.\n- **2026-07-30** · [v4.5.1](https://github.com/Tencent/AI-Infra-Guard/releases/tag/v4.5.1) — Jailbreak Evaluation: 4 multi-turn jailbreak attacks (Many-Shot, PAIR, GOAT, ActorAttack); Agent-Scan: 5 new OWASP skills + web-exfiltration detection (10 skills total); MCP-Scan: 4 new security rules\n- **2026-07-27** 

FAQ (5)

문제 해결
AI-Infra-Guard에서 `go test ./...`를 실행할 때 발생하는 'undefined: TestDemoAgent, BaseUrl, Token' 빌드 오류와 websocket 영어/중국어 assertion 실패를 해결하려면 어떻게 해야 하나요?

PR #674(커밋 51d63e2)와 PR #677(커밋 ff82482)을 포함하도록 main을 업데이트한 다음, 다음 명령을 실행하세요:

git pull --ff-only
go build ./...
go test ./... -count=1

이러한 변경 사항은 common/agent/tasks_test.go의 오래된 참조(TestDemoAgent, BaseUrl, Token, Model)를 수정하고, 5개의 common/websocket 단언문을 반환되는 영어 오류 메시지와 일치시키며, 환경에 종속된 테스트가 저장소 루트에서 경로를 해석하거나 Chrome, 로컬 127.0.0.1:8265 서비스, 또는 /mcp-server를 사용할 수 없을 때 건너뛰도록 합니다. 또한 PR #677은 .github/workflows/go-test.yml을 추가하므로, 이제 CI가 main에 대한 푸시와 풀 리퀘스트에서 go build ./...와 go test ./... -count=1을 실행합니다.

즉시 업데이트할 수 없는 경우, common/agent/tasks_test.go에서 오래된 테스트 심볼을 정의하거나 제거하고, 영어 응답과 중국어 예상 문자열을 혼합하는 대신 실제 API 응답 언어와 일치하도록 websocket 테스트 기대값을 업데이트하세요.

원본 Issue #672
문제 해결
.venv/node_modules 디렉터리에 숨겨진 악성 코드가 탐지되지 않는 aig-skill-scan 보안 우회 문제를 해결하는 방법은?

이 취약점은 aig-skill-scan이 성능을 위해 _TREE_SKIP_DIRS에 정의된 디렉터리(__pycache__, .git, node_modules, .venv, venv, dist, build, .next, .nuxt 포함)에 대한 모든 스캔을 무조건 건너뛰기 때문에 발생합니다. 공격자는 이러한 디렉터리에 악성 스크립트를 배치하고 합법적인 Skill 코드에서 이를 호출하여(예: subprocess.run(["python", ".venv/hidden.py"])) 탐지를 회피할 수 있습니다.
조치 방법:
1. _TREE_SKIP_DIRS에 정의된 디렉터리를 완전히 신뢰할 수 있는 것으로 취급하지 마세요.
2. 성능을 유지하기 위해 이러한 디렉터리에 대한 전체 재귀 스캔을 건너뛰는 기본 동작은 유지하세요.
3. 대상 지정 탐지 로직을 추가하세요. 스캐너가 건너뛴 디렉터리의 파일을 실행, 임포트 또는 로드하는 Skill 코드를 식별하면, 참조된 대상 파일에 대해 온디맨드 보안 스캔을 실행하거나 즉시 위험 경고를 발생시키세요.

원본 Issue #631
문제 해결
AI-Infra-Guard가 __pycache__ 및 .pyc 파일을 스캔하지 않고 악성 스킬을 SAFE로 잘못 보고하는 문제를 어떻게 해결하나요?

이 문제는 AI-Infra-Guard v4.5.1에 영향을 미칩니다. dir_tree와 정적 pre_scan 패스는 __pycache__ 및 .pyc/.pyo/.pyd 파일을 제외하므로, CPython 바이트코드가 스캐너에 보이지 않은 채로 import 과정에서 실행될 수 있습니다.

권장 수정 방법: PR fix(skill-scan): stop hiding compiled bytecode from audit surface이 포함된 릴리스로 업그레이드하세요. 이 수정은 컴파일된 바이트코드를 LLM 디렉터리 트리와 정적 스캔 모두에 포함시킵니다.

v4.5.1을 직접 패치해야 하는 경우:
1. skill_scan/tools/dir/dir_actions.py를 편집합니다.
2. _IGNORED_DIRS에서 '__pycache__'를 제거합니다.
3. _IGNORED_EXTS에서 '.pyc', '.pyo', '.pyd'를 제거합니다.
4. 정적 pre_scan 파일 열거에도 동일한 포함 변경 사항을 적용합니다.
5. 스캐너를 재시작하고 다시 스캔합니다.

신뢰할 수 없는 skill에 대한 즉각적인 우회 방법:

find skill -type d -name __pycache__ -print
find skill -type f \( -name '*.pyc' -o -name '*.pyo' -o -name '*.pyd' \) -print

발견된 바이트코드를 수동으로 검사하거나 디컴파일하세요. 예상치 못한 컴파일된 파일이 포함된 skill은 거부하세요. 설치 전에 네이티브가 아닌 바이트코드를 제거하려면:
find skill -type d -name __pycache__ -prune -exec rm -rf {} +
find skill -type f \( -name '*.pyc' -o -name '*.pyo' \) -delete

.pyd 파일은 네이티브 Windows 실행 코드로 취급하여 별도로 검토하세요. 패치되지 않은 스캐너에서 100/100의 SAFE 판정이 나왔다고 해서 해당 skill이 안전함을 증명하는 것은 아닙니다.

원본 Issue #531
문제 해결
AI-Infra-Guard MCP 동적 스캔이 MCP 도구 결과의 첫 번째 콘텐츠 블록만 표시하는 이유는 무엇인가요?

이것은 MCPTools.call_remote_tool (mcp_scan/utils/mcp_tools.py)의 버그로, CallToolResult.content[0]만 읽고 이후의 콘텐츠 블록, structuredContent, isError 및 결과/블록 메타데이터를 버렸습니다. PR #727 (커밋 7b62e47110으로 병합됨)에서 수정되었습니다: 해당 커밋이 포함된 버전으로 AI-Infra-Guard를 업데이트하세요. 수정 후 call_remote_tool은 전체 CallToolResult(모든 콘텐츠 블록, 구조화된 콘텐츠, 오류 상태 및 메타데이터)를 직렬화하므로, 구조화된 콘텐츠만 있는 응답과 다중 블록 결과가 스캔 에이전트에 도달합니다. 단순한 단일 블록 결과를 위한 일반 텍스트 fast path는 유지되며, 20,000자 히스토리 미리보기 내에서는 불투명한 미디어보다 읽기 쉬운 텍스트가 우선시되어 이후의 증거가 숨겨지지 않습니다.

원본 Issue #726
문제 해결
LLM 보안 평가에서 동시성이 1로 설정되고 QPM이 20으로 제한되어 있음에도 분당 80개 이상의 요청을 보내는 이유는 무엇이며, 작업을 중지한 후에도 요청이 계속되는 이유는 무엇인가요?

이 문제는 대상 모델이 QPM/429 오류를 반환할 때 프롬프트 평가가 rate-limit-aware backoff를 적용하지 않기 때문에 발생합니다. 실패한 호출은 빠른 재시도 또는 추가 디스패치를 유발하여 구성된 동시성과 할당량을 초과할 수 있습니다. 또한 작업 종료 시 전체 워커 프로세스 그룹이 즉시 종료되지 않으므로, 진행 중이거나 큐에 대기 중인 요청이 잠시 동안 계속 실행됩니다.

해결 방법: PR fix(prompt-eval): rate-limit aware backoff, circuit breaker and process-group termination(fixes #633)이 포함된 릴리스로 업그레이드한 후 평가 서비스/워커를 재시작하세요. 이 수정 사항은 QPM/429 backoff를 추가하고, 모델이 rate-limited 상태일 때 circuit breaker를 열고, 작업이 중지될 때 프로세스 그룹을 종료합니다.

임시 해결 방법: 모델의 QPM 할당량보다 낮은 수준으로 클라이언트 측 rate limit을 적용하고, 즉시 재시도를 비활성화하거나 QPM 오류에 대해 exponential backoff를 사용하며, 작업을 취소한 후 남은 요청을 flush하기 위해 워커 프로세스를 수동으로 중지/재시작하세요.

원본 Issue #633