핵심 요약
- A.I.G(AI-Infra-Guard)는 텐센트 주췌 연구소(Zhuque Lab)가 공개한 AI 레드팀 플랫폼으로, 추론 서버의 알려진 CVE(Common Vulnerabilities and Exposures), MCP 서버와 에이전트 스킬의 코드, 운영 중인 에이전트, 모델의 탈옥 내성을 하나의 웹 UI에서 점검합니다.
- 인프라는 지문과 CVE 규칙 매칭으로, MCP 서버와 스킬은 LLM 기반 코드 감사로, 에이전트와 모델은 대화형 공격으로 점검하는 등 계층마다 다른 방식을 씁니다.
- Docker Compose로 설치하며, 대부분의 기능은 OpenAI 호환 LLM API를 설정해야 동작합니다.
- 웹 UI에는 인증 기능이 없어 공개 네트워크에 배포하면 안 되고, 내장 탈옥 평가 데이터셋 17종에는 한국어 문항이 없습니다.
A.I.G 소개
사내에서 vLLM이나 Ollama 같은 추론 서버를 실행하고 Dify로 만든 에이전트를 운영하는 조직이 늘고 있습니다. 여기에 개발자들이 MCP 서버와 에이전트 스킬을 설치해 쓰기 시작하면 보안 점검 대상이 여러 겹으로 늘어납니다. 기존 웹 취약점 스캐너에는 AI 컴포넌트의 지문이 거의 없습니다. MCP 도구 설명에 숨은 지시문이나, 에이전트가 대화 중에 시스템 프롬프트를 흘리는 문제는 애초에 찾는 대상이 아닙니다. 이번에 소개하는 A.I.G(AI-Infra-Guard)는 이 여러 겹의 대상을 한 플랫폼에서 점검하도록 만든 텐센트의 오픈소스 AI 레드팀(Red Teaming) 플랫폼입니다.
A.I.G는 텐센트 주췌 연구소(Tencent Zhuque Lab)가 개발하며, 공격 표면이 계층마다 다르므로 탐지 방식도 계층마다 달라야 한다는 관점에서 출발합니다. 저자들은 기술 보고서에서 이를 계층과 탐지 방식의 짝짓기(layer-paradigm matching) 라고 부릅니다. 인프라에는 재현 가능한 규칙 매칭을 쓰고, 모델에는 판정 모델을 둔 공격 시험을 쓰는 식입니다. 규칙 매칭으로는 모델의 행동을 판정할 수 없고, 반대로 인프라 점검에 LLM을 쓰면 결과의 재현성을 잃는다는 것이 저자들의 설명입니다.
아래 화면은 A.I.G 웹 UI에서 에이전트 스캔, 스킬 스캔, 탈옥 평가, 인프라 스캔을 차례로 실행한 모습입니다:

A.I.G는 Go로 작성된 웹 서버와 작업자(Agent) 프로세스로 구성됩니다. 인프라 스캔은 Go 작업자 안에서 실행되고, LLM을 쓰는 MCP 스캔, 에이전트 스캔, 탈옥 평가는 Python 하위 프로젝트를 작업자가 서브프로세스로 실행합니다. 탐지 규칙은 저장소의 data/ 디렉토리에 YAML과 JSON 파일로 들어 있어, 웹 UI의 데이터 업데이트 버튼으로 다시 배포하지 않고도 최신 규칙을 받아올 수 있습니다.
A.I.G vs. 한 계층만 다루는 보안 도구
AI 보안 도구는 대부분 한 계층을 깊게 다룹니다. A.I.G의 차별점은 깊이보다 범위이고, 탈옥 평가 모듈은 아래 표의 DeepTeam을 기반으로 확장한 것이라 둘은 경쟁보다 포함 관계에 가깝습니다:
| 도구 | 점검 대상 | 탐지 방식 | 사용 형태 |
|---|---|---|---|
| A.I.G | 추론 서버와 AI 앱의 CVE, MCP 서버, 에이전트 스킬, 운영 중인 에이전트, 모델 | 지문과 CVE 규칙, LLM 코드 감사, 다중 턴 블랙박스 대화, 탈옥 공격 | 웹 UI와 REST API, 스킬, MCP, 에이전트 스캔은 CLI도 제공 |
| MCP Scanner | MCP 서버의 도구, 프롬프트, 리소스 정의 | YARA 규칙, LLM 판정, Cisco AI Defense API | CLI, REST API |
| SkillSpector | 에이전트 스킬 | 정적 분석기 11종과 선택적 LLM 의미 분석 | CLI |
| DeepTeam | LLM 앱과 에이전트 | 취약점별 공격 동적 생성과 LLM 판정 | Python 라이브러리, CLI |
| Promptfoo | LLM 앱 | 테스트 케이스 평가와 레드팀 | CLI |
저자들은 기술 보고서의 비교표에서 에이전트 스킬의 공급망을 점검하는 도구가 A.I.G뿐이라고 주장하지만, 위 표의 SkillSpector처럼 스킬만 전담하는 스캐너도 이미 공개되어 있습니다. A.I.G의 실제 차이는 인프라 지문과 CVE 데이터베이스를 LLM 기반 감사와 한 서버, 한 결과 형식으로 묶었다는 점입니다. 위 표의 비교는 점검 범위에 대한 것이고, 탐지 성능의 비교는 아래 벤치마크 절에서 따로 다룹니다.
A.I.G를 사용하면 좋을 사용자
A.I.G가 가장 잘 맞는 곳은 vLLM, Ollama, ComfyUI, Dify, n8n 같은 AI 컴포넌트를 사내망에서 직접 운영하는 조직의 보안 담당자입니다. 어떤 서비스가 어디에 노출되어 있고 알려진 CVE에 해당하는지를 한 번에 훑을 수 있습니다. 같은 화면에서 사내 MCP 서버와 스킬, Dify나 Coze 기반 에이전트까지 점검할 수 있습니다. MCP 서버나 스킬을 배포 전에 심사해야 하는 마켓플레이스 운영자와 개발자에게는 SARIF(Static Analysis Results Interchange Format) 2.1.0을 출력하는 CLI가 CI 파이프라인에 넣기 좋습니다.
인증이 필요한 다중 사용자 환경이나 공개 네트워크에 서비스를 열어야 하는 팀에게는 A.I.G가 아직 적절한 선택지가 아닙니다. 텐센트는 A.I.G에 인증 기능이 없으므로 공개 네트워크에 배포하지 말라고 명시하고 있습니다. 한국어 서비스의 탈옥 내성을 평가하려는 팀도 내장 데이터셋을 그대로 쓸 수는 없고, 자체 한국어 데이터셋을 올려야 합니다.
A.I.G의 계층별 점검 기능
A.I.G의 기능은 점검 대상에 따라 다섯 가지로 나뉩니다. 아래 표는 각 기능이 무엇을 입력으로 받고 어떤 방식으로 점검하는지 정리한 것입니다:
| 기능 | 입력 | 점검 방식 | LLM 사용 |
|---|---|---|---|
| AI 인프라 스캔 (AI Infra Scan) | 실행 중인 서비스의 URL, IP, CIDR 대역 | HTTP 응답으로 컴포넌트와 버전을 식별하고 CVE 규칙과 대조 | 미인증 취약점 판정에 사용 |
| MCP 서버와 스킬 스캔 | GitHub URL 또는 소스 코드 압축 파일, 실행 중인 MCP 서버 URL | LLM 에이전트가 코드를 읽으며 감사, 동적 모드에서는 도구를 직접 호출 | 필요 |
| 에이전트 스캔 (Agent Scan) | Dify, Coze, HTTP 엔드포인트 등 운영 중인 에이전트의 접속 정보 | 다중 턴 블랙박스 대화로 취약점 탐지 | 필요 |
| 탈옥 평가 (Jailbreak Evaluation) | 평가 대상 모델과 판정 모델의 API, 데이터셋 | 공격 기법으로 변형한 위험 프롬프트를 보내고 판정 모델로 채점 | 필요 |
| 모델과 API 중계 검사 | 모델 API 엔드포인트 | 모델 지문 식별, 중계 서비스의 모델 바꿔치기 탐지 | 점검 대상 API를 직접 호출 |
A.I.G의 AI 인프라 스캔
AI 인프라 스캔은 웹 UI에 GitHub 주소가 아니라 실행 중인 서비스의 네트워크 주소를 넣는 기능이며, IP를 넣으면 흔히 쓰는 포트도 함께 스캔합니다. A.I.G는 그 주소에 HTTP 요청을 보내 응답 본문, 헤더, 페이지 제목, 파비콘 해시로 컴포넌트를 식별하고, 버전을 추출해 CVE 규칙의 영향 범위와 대조합니다. 2026년 10월 3일 기준 main 브랜치에는 지문 규칙 154개와 취약점 규칙 2,169개가 들어 있고, 취약점 규칙의 약 30%인 657개는 OpenClaw 규칙입니다. 문서의 지원 컴포넌트 표에는 vLLM, Ollama, Triton Inference Server, LangChain, Dify, MLflow, n8n, ComfyUI 등이 올라 있습니다.
지문 규칙은 아래처럼 YAML로 작성하며, 사내에서만 쓰는 컴포넌트도 같은 형식으로 추가할 수 있습니다. 문서에 실린 Dify 지문 예시입니다:
info:
name: dify
author: Tencent Zhuque Lab
severity: info
metadata:
product: dify
vendor: dify
http:
- method: GET
path: '/'
matchers:
- body="<title>Dify</title>" || icon="97378986"
version:
- method: GET
path: '/console/api/version'
extractor:
part: header
group: 1
regex: 'x-version:\s*(\d+\.\d+\.?\d+?)'
결과를 읽을 때는 근거의 강도가 결과마다 다르다는 점을 알아야 합니다. 기술 보고서 §5.4에 따르면 A.I.G의 결과는 세 종류입니다. 첫째는 위험한 경로를 직접 요청해 민감한 내용이 돌아오는지 확인한 결과이고, 둘째는 추출한 버전이 CVE의 영향 범위에 들어가는 결과입니다. 셋째는 버전 조건이 없는 규칙이 컴포넌트 식별만으로 내는 추정 결과입니다.
버전 조건이 없는 규칙은 현재 main 기준 88개이고, 그중 32개가 Triton Inference Server 규칙입니다. 버전을 추출하지 못한 경우에도 A.I.G는 누락보다 경고를 택해 해당 컴포넌트의 규칙을 보고합니다. 그래서 스캔 결과의 CVE 목록은 확정 목록이 아니라 확인할 후보 목록으로 다루는 편이 맞습니다.
A.I.G의 MCP 서버와 에이전트 스킬 스캔
MCP 서버와 스킬 스캔은 LLM 에이전트가 파일 목록, 파일 읽기, grep 같은 도구로 소스 코드를 직접 탐색하며 감사하는 방식입니다. 코드를 실행하지 않는 정적 감사가 기본이고, MCP 서버는 실행 중인 서버 URL을 주면 도구를 실제로 호출해 보는 동적 분석도 지원합니다. 프로젝트 루트에 SKILL.md가 있으면 스킬로 판단해, 설명과 scripts/의 실제 코드가 일치하는지, 설명에 없는 숨은 동작이 있는지를 함께 확인합니다. MCP 탐지 규칙은 정규식이 아니라 취약점 유형과 판단 기준을 적은 프롬프트(prompt_template)로 data/mcp/에 들어 있고, 웹 UI에서 읽고 고칠 수 있습니다.
MCP 스캐너에는 공격자, 대상, 평가자 역할의 LLM 세 개가 MCP 서버 소스를 두고 여러 턴에 걸쳐 시험하는 레드팀 모듈도 들어 있습니다. 수위를 점진적으로 올리는 Crescendo 전략과, 공격 변형을 여러 개 만들어 가지치기하는 TAP 전략을 지원하며, 문서는 이 모듈을 Python 코드로 호출하는 방법을 안내합니다.
MCP 서버의 탐지 결과는 자격 증명 노출(MCP01)부터 컨텍스트 과다 공유(MCP10)까지의 10개 분류에 이름 혼동(Name Confusion), 러그 풀(Rug Pull), 도구 섀도잉(Tool Shadowing)을 더한 13개 규칙으로 정리됩니다. 스킬은 주췌 연구소가 공개한 SkillTrustBench의 T01~T09 분류를 따르며, 스킬 지시문 탈취(T01), 원격 페이로드 다운로드와 실행(T03), 권한 상승(T05) 같은 항목이 있습니다.
LLM이 신뢰할 수 없는 코드를 읽는 구조이므로 감사 대상이 감사자를 속이는 공격도 고려해야 합니다. 저자들은 기술 보고서 §6.7에서 이 문제를 스캐너 자체에 대한 위협으로 다룹니다. 시스템 프롬프트로 도구 응답과 파일 내용을 지시가 아닌 데이터로 취급하게 하고, 도구 결과가 새 작업을 추가하거나 감사를 종료시킬 수 없도록 실행 구조에서 분리했다고 설명합니다.
A.I.G의 에이전트 스캔과 탈옥 평가
에이전트 스캔은 이미 운영 중인 에이전트에 대화로만 접근하는 블랙박스 시험입니다. 정보 수집, 탐지, 검토의 3단계로 진행합니다. 기본으로는 데이터 유출, 도구 오용, 간접 프롬프트 주입, 권한 우회, 웹을 통한 데이터 유출의 5개 탐지 스킬을 실행하고, 공급망, 예상치 못한 코드 실행 등 5개를 추가로 켤 수 있습니다. 결과는 OWASP Top 10 for Agentic Applications 항목에 매핑되고, 각 결과에는 근거가 된 대화 내용이 함께 남습니다.
탈옥 평가는 평가 대상 모델에 위험 프롬프트를 보내고 별도의 판정 모델로 안전성을 채점합니다. 저장소에는 AdvBench, JailBench, JADE, CNSafe, SafeBench 등을 포함한 데이터셋 17종이 들어 있고, 인코딩 계열과 행동 유도 계열의 공격 기법으로 프롬프트를 변형합니다. 문서는 판정 모델 선택도 언어와 주제에 따라 다르게 권장하는데, 영어 평가에는 Claude 계열을, 중국어 평가에는 Qwen 계열을 추천합니다. 한국어 판정 모델에 대한 권장은 없습니다.
A.I.G의 독립 실행 CLI와 OpenClaw 스킬
웹 UI 없이 쓸 수 있는 CLI도 함께 제공됩니다. 스킬 스캐너인 aig-skill-scan은 PyPI에 등록되어 있고 Python 3.9 이상이 필요합니다. 결과를 SARIF 2.1.0 형식으로 저장하므로 GitHub Code Scanning 같은 도구가 그대로 읽을 수 있습니다. MCP 스캔(mcp-scan/)과 에이전트 스캔(agent-scan/)은 PyPI 패키지가 없어 저장소를 내려받아 python main.py로 실행합니다.
OpenClaw 사용자를 위한 스킬도 저장소의 skills/에 함께 들어 있습니다. edgeone-clawscan은 설치된 스킬과 OpenClaw 설정을 점검하는 ClawScan 스킬이고, aig-scanner는 OpenClaw 대화에서 직접 운영하는 A.I.G 서버에 스캔을 요청하는 스킬입니다. ClawScan은 클라우드 조회를 켜 두면 스킬 이름, 출처, OpenClaw 버전을 텐센트의 위협 정보 서버로 보내며, AIG_CLOUD_LOOKUP=off로 이 전송을 끌 수 있습니다.
PyPI의 mcp-scan은 A.I.G의 MCP 스캐너가 아니라 Invariant Labs에서 시작해 snyk-agent-scan으로 이름을 바꾼 별개 도구이므로, pip install mcp-scan으로 A.I.G의 스캐너를 설치할 수는 없습니다.
A.I.G 벤치마크
텐센트 주췌 연구소가 자체적으로 만든 SkillTrustBench에서 측정해 공개한 aig-skill-scan의 결과는 아래와 같습니다. 같은 스캐너에 기반 모델만 바꿔 측정한 값입니다:
| 기반 모델 | F1 | 정밀도 | 재현율 | 오탐률(FPR) |
|---|---|---|---|---|
| Claude Opus 4.6 | 0.9848 | 0.9725 | 0.9974 | 0.0663 |
| GLM 5.1 | 0.9836 | 0.9701 | 0.9974 | 0.0723 |
| Gemini 3.5 Flash | 0.9792 | 0.9947 | 0.9641 | 0.0120 |
| Kimi 2.6 | 0.9780 | 0.9895 | 0.9667 | 0.0241 |
| DeepSeek v4 Flash | 0.9740 | 0.9868 | 0.9615 | 0.0301 |
SkillTrustBench는 스킬 마켓플레이스에서 수집한 스킬 62,652개를 바탕으로 만든 평가 사례 5,520건의 벤치마크입니다. 데이터셋 카드에 따르면 그중 3,359건은 공격이나 취약점 패턴을 주입한 합성 사례이고, 실제 악성 스킬에서 온 wild 계열은 37건입니다. 다만 위 수치는 전체가 아니라 고정된 10% 부분집합 556건에서 측정한 값입니다. 리더보드의 평가 방식 문서에 따르면 malicious와 suspicious를 모두 위험으로 묶은 이진 선별 점수(loose F1)라서, 악성 스킬을 의심 수준으로만 판정해도 탐지로 집계됩니다.
표 안에서도 F1 차이는 0.01 안쪽이지만, 오탐률은 Gemini 3.5 Flash의 0.0120과 GLM 5.1의 0.0723 사이에서 6배 가까이 벌어집니다. 리더보드에는 Cisco Skill Scanner, NVIDIA SkillSpector 같은 다른 스킬 스캐너의 측정값도 올라 있습니다. 그러나 벤치마크와 A.I.G를 같은 팀이 만들었고 해당 도구 쪽에서 확인된 수치가 아니므로, 도구 선택의 근거로 쓰려면 사내 스킬 샘플로 직접 비교해 보는 편이 안전합니다.
A.I.G 설치와 사용
A.I.G 서버는 Docker 20.10 이상, 4GB 이상의 RAM, 10GB 이상의 디스크 공간이 필요합니다. 미리 빌드한 이미지로 실행하는 방법은 다음과 같습니다:
git clone https://github.com/Tencent/AI-Infra-Guard.git
cd AI-Infra-Guard
# For Docker Compose V2+, replace 'docker-compose' with 'docker compose'
docker-compose -f docker-compose.images.yml up -d
실행 후 브라우저에서 http://localhost:8088로 접속합니다. 스캔을 시작하기 전에 설정 화면에서 모델 이름, API 키, Base URL을 입력해야 하며, OpenAI 형식이 아닌 API는 LiteLLM 같은 게이트웨이로 변환해 연결하라고 문서는 안내합니다.
배포 전에 docker-compose.images.yml을 한 번 확인하는 것이 좋습니다. 웹 서버 포트는 "8088:8088"로 모든 네트워크 인터페이스에 열리고, 작업자 컨테이너는 SYS_ADMIN 권한과 seccomp:unconfined 설정으로 실행됩니다. 인증 기능이 없으므로 공유 서버에 올릴 때는 포트를 127.0.0.1:8088:8088처럼 로컬에만 바인딩하거나 방화벽 뒤에 두어야 합니다.
스킬 스캐너만 필요하면 PyPI 패키지로 설치합니다. 기본 Base URL은 OpenRouter이고 기본 모델은 deepseek-v4-flash입니다:
pip install aig-skill-scan
# Set API key via environment variable
export LLM_API_KEY="your-api-key"
# Scan a local Skill project directory
aig-skill-scan --repo /path/to/your/skill \
-m deepseek-v4-flash \
--language en \
-o result.json
--language의 기본값은 중국어(zh)이므로, 영어로 결과를 받으려면 위처럼 --language en을 지정합니다.
LLM 기반 기능은 감사 대상 소스 코드를 설정한 LLM API로 보냅니다. 외부로 코드를 내보낼 수 없는 환경이라면 -u 옵션이나 웹 UI의 Base URL에 사내에서 운영하는 OpenAI 호환 엔드포인트를 지정합니다. 인터넷이 끊긴 환경에서는 zhuquelab/aig-server와 zhuquelab/aig-agent 이미지를 docker save로 내보내 옮기는 절차가 문서의 FAQ에 정리되어 있습니다. 텐센트는 오픈소스판과 별개로 기능을 더한 온라인 Pro 버전(aigsec.ai)도 운영하지만, 이슈나 PR로 기여한 사용자에게 우선 발급하는 초대 코드가 있어야 쓸 수 있습니다.
A.I.G의 라이선스
A.I.G는 Apache-2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
단, A.I.G의 코드를 포함해 재배포하거나 자사 제품에 통합하는 경우 NOTICE 파일을 유지하고, 문서나 About 화면에 "Based on Tencent Zhuque Lab AI-Infra-Guard" 문구와 원본 저장소 링크를 표기해야 합니다. 또한 스킬 스캐너 벤치마크인 SkillTrustBench 데이터셋은 비상업 조건의 CC BY-NC-SA 4.0이고 내장 탈옥 데이터셋은 각 원본의 라이선스를 따르므로, 데이터를 상업적으로 활용하기 전에는 원본 조건을 확인해야 합니다.
A.I.G 문서 사이트
A.I.G 기술 보고서: Securing the AI Agent: A Unified Framework for Multi-Layer Agent Red Teaming
A.I.G 프로젝트 GitHub 저장소
SkillTrustBench 데이터셋 (A.I.G 스킬 스캐너 평가용 벤치마크)
더 읽어보기
이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
은 이런 글들을 한국어로 정리해 나누고 있습니다. 회원으로 가입하시면 주요 글들을 이메일
로 보내드리고, 텔레그램(Telegram)과 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 다음 글을 정리하는 데 힘이 됩니다~ ![]()
