본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 06. 15. 21:24

gy15901580825/Argus

요약

Argus는 AI 에이전트의 보안 강건성을 테스트하기 위한 블랙박스 레드팀 프레임워크입니다. 160개 이상의 적대적 프로브를 사용하여 프롬프트 주입 및 도구 호출 혼동 등을 검증하며, CI/CD 파이프라인에 즉시 통합 가능한 보고서를 제공합니다.

핵심 포인트

  • 소스 코드 없이 네트워크를 통한 블랙박스 방식의 보안 테스트 지원
  • OWASP LLM Top 10, MITRE ATLAS 등 글로벌 보안 표준 매핑
  • GitHub Code Scanning 및 CI 게이트 통합을 위한 SARIF/JUnit 형식 지원
  • 브라우저, gRPC, HTTP 등 다양한 에이전트 엔드포인트 어댑터 제공

AI 에이전트를 위한 블랙박스 레드팀 (Red-team) 테스트. Argus를 모든 HTTP, gRPC 또는 브라우저를 사용하는 에이전트 엔드포인트(endpoint)에 지정하고, 160개 이상의 적대적 프로브 (adversarial probes) (OWASP LLM Top 10, MITRE ATLAS, NIST AI RMF, garak 래퍼(wrappers), TAP / PAIR / GCG)를 실행하여, LLM이 판단한 결과를 SARIF 2.1.0 / JUnit XML / HTML 형식으로 받으세요. 이를 GitHub 코드 스캐닝(Code Scanning) 게이트로서 CI에 즉시 도입할 수 있습니다.

LLM 평가 프레임워크 (eval frameworks)는 단일 프롬프트-응답 쌍을 점수화합니다. 하지만 실제 출시되는 것은 그것이 아닙니다. 실제로 출시되는 것은 에이전트 (agent) — 즉, 계획을 세우고, 도구(tools)를 호출하며, 오류에서 복구하고, 문서를 읽고, 브라우저를 열며, 턴(turn) 전반에 걸쳐 상태(state)를 유지하는 시스템입니다. 해당 시스템의 실패 표면 (failure surface)은 벤치마크 정확도가 아니라 **적대적 강건성 (adversarial robustness)**에 의해 지배됩니다: 검색된 문서를 통한 프롬프트 주입 (prompt injection), 도구 호출 혼동 (tool-call confusion), 슬리퍼 트리거 (sleeper triggers), 방문한 URL을 통한 간접 주입 (indirect injection), 턴에 걸쳐 구성되는 탈옥 (jailbreaks) 등이 이에 해당합니다.

Argus는 공격자가 하는 방식대로 에이전트를 테스트합니다: 소스 코드 접근 권한 없이, 네트워크를 통해, 프로덕션 엔드포인트를 대상으로 하는 블랙박스 (black box) 방식으로 테스트합니다. Argus는 유닛 테스트 (unit tests)와 LLM 평가가 끝나는 지점에서 시작하여, 보안 팀이 별도의 변환 없이 OWASP LLM Top 10, MITRE ATLASNIST AI RMF 통제 항목에 매핑할 수 있는 보고서를 생성합니다.

Argus가 수행하는 작업:

번들 라이브러리에 포함된 167개의 프로브 (probes) — 직접 작성된 10개의 OWASP LLM Top 10, 공개 LLM 시스템 카드에서 가져온 5개 (best-of-N, crescendo, confused deputy, many-shot jailbreak, sleeper agent), 30개 이상의 브라우저 에이전트 특화 프로브, 반-매핑된 (Semia-mapped) 에이전트 기술 탐지기 (누락된 인간 게이트, 인코딩된 페이로드, 설치 시 실행, 섀도우 자격 증명), 그리고 NVIDIA의 기존 카탈로그를 위한 99개의 garak 래퍼 (wrappers). docs/probe-mapping.md를 참조하세요.

5개의 타겟 어댑터 (target adapters): openai_compat, anthropic_native, custom_http (Jinja2 + JSONPath), grpc (리플렉션 자동 검색 포함), 그리고 browser_use (Playwright 기반의 전체 브라우저 흐름).

알고리즘 반복 공격 (Algorithmic iterative attacks): TAP, PAIR, GCG 블랙박스.

LLM-판단 하네스 (LLM-judge harness) (기본값 Anthropic Haiku, 고위험 발견 시 Sonnet으로 격상) 및 orchestrator/orchestrator/redteam/rubrics/에 포함된 프로브별 루브릭 (rubrics).

보고서 형식: SARIF 2.1.0 (GitHub Code Scanning에 통합됨), JUnit XML (CI 게이트), HTML (사용자용).일일 비용 상한선 + 실행당 상한선을 예측적 중단(predictive abort)과 함께 적용하여, 평가관 청구액이 제한되도록 합니다.선택적 런타임 가드레일 제어PromptGuard가 Meta의 Llama-Prompt-Guard-2-86M 또는 ProtectAI의 deberta-v3-base-prompt-injection-v2를 감싸서(wraps) 사용합니다. 이는 사전/사후 방어 실험을 위해 사용됩니다. 자세한 내용은 RESULTS.md를 참조하세요.

Argus가 하지 않는 것:

  • 새로운 모델을 훈련하거나, 벤치마크 정확도를 점수화하거나, 사용자 LLM 평가(LLM-evals) 하니스를 대체하지 않습니다.
  • 소스 접근이 필요하지 않습니다. 대상 시스템에 패치하지 않으며, 대상의 런타임 내부에서 실행되지도 않습니다.
  • 프로덕션 환경을 보호하는 것이 아니라, 공격합니다. 가드레일(저희 PromptGuard 통합 포함)은 Argus를 런타임 게이트로 직접 삽입하기 위한 것이 아니라, 방어 제어 실험용입니다.

이 저장소는 demo_target/을 함께 제공합니다.
— 시스템 프롬프트에 네 개의 가짜

pip install argus-probe
argus-probe run --target my_target.yaml --probes owasp_*,syscard_* \
--judge anthropic --report sarif > argus.sarif

출력물은 GitHub Code Scanning에 첨부할 수 있는 SARIF 2.1.0 파일과, 모든 프롬프트별 판정(verdict)에 대한 JSON 덤프입니다.

CI 기반 스캔(CI-gated scans)의 경우, 번들로 제공되는 argus-probe-action@v1 composite GitHub Action을 참조하세요. --block-on-critical 옵션은

모든 고위험(high-severity) 탐지 사항이 발생할 경우

워크플로(workflow)를 실패 처리합니다.

┌─────────────────────────────────────────────────────────────────────────┐
│ argus-probe CLI / GitHub Action / Argus Web UI │
└──────────┬──────────────────────────────────────────────────────────────┘
...
하위 프로젝트 (Sub-project)역할 (Role)
api_service/중앙 REST API (FastAPI + asyncpg + PostgreSQL). redteam_runs, redteam_findings, redteam_design_partners 테이블을 관리합니다.
orchestrator/프로브 디스패처(Probe dispatcher) + 판정 하네스(judge harness) + 5개의 타겟 어댑터(target adapters) + 가드레일 래퍼(guardrail wrappers).
client_agent/브라우저 기반 프로브를 위한 에지 에이전트 (browser-use + Playwright).
frontend/Next.js 16 웹 UI: 대시보드, 채팅, 마케팅 페이지.
cli/argus-probe Python CLI (PyPI).
demo_target/오프라인 데모를 위한 의도적으로 취약하게 설계된 FastAPI 챗봇.
kubernets/AKS / k3s 배포를 위한 Helm 차트 + ArgoCD ApplicationSets.
terraform/Azure IaC 레퍼런스 (AKS, ACR, PG, Key Vault, B2C apps).
database/Flyway 스키마 마이그레이션 (schema migrations).

세 개의 레거시 testing_* 서비스는 별도의 저장소로 이동되었습니다:

testing_api_service

  • testing_web_fetch_service
    gy15901580825/argus-api-testing

testing_web_ui_service
(+ 벤더링된(vendored) browser-use)
gy15901580825/argus-web-ui-testing

오케스트레이터(orchestrator)는 여전히 run_api_testrun_web_ui_cloud 플래너 도구(planner tools)를 통해 HTTP로 이들을 참조합니다. 클러스터 내 서비스(in-cluster services)가 필요한 경우 해당 저장소들로부터 배포하세요.

orchestrator/orchestrator/redteam/probes/
├── owasp_01_prompt_injection_basic.yaml ← 직접 작성된 10개의 OWASP 프로브
├── owasp_02_… (LLM01–LLM10)
...

모든 프로브 (probe)는 다음 스키마를 따르는 단일 YAML 파일입니다:

id: my_probe
name: "사람이 읽을 수 있는 이름"
target_class: [http-chat, tool-using, rag, browser-using]
...

probe × OWASP LLM Top 10 × MITRE ATLAS × NIST AI RMF 전체 매핑 테이블은 docs/probe-mapping.md를 참조하세요.

Argus는 모든 타겟 호출 전에 입력 측 가드레일 (guardrail)을 추가할 수 있으므로, 가드레일이 실제로 어느 정도의 효과를 제공하는지 측정할 수 있습니다. 래퍼 (Wrappers)는 orchestrator/orchestrator/guardrails/에 위치합니다.

가드레일 (Guardrail)백엔드 (Backend)비고 (Notes)
PromptGuard (기본값)protectai/deberta-v3-base-prompt-injection-v2오픈 액세스 (180M, DeBERTa-v3-base)
PromptGuard (대안)meta-llama/Llama-Prompt-Guard-2-86M게이티드 (Gated) — huggingface-cli login 및 Meta 승인 액세스 필요 (86M)

로컬 데모 러너 (local demo runner)에서 --guardrail prompt-guard를 통해 활성화하거나, POST /api/v1/redteam/runs의 오케스트레이터 (orchestrator) guardrail 필드를 통해 활성화할 수 있습니다.

RESULTS.md는 이 리포지토리의 데모 타겟에 대한 실제 전/후 실험 과정을 설명합니다: Prompt Guard는 약 275ms의 p50 지연 시간 (latency) 오버헤드로 공격 성공률을 22.9%에서 2.9%로 (−87%) 낮추었으며, 우리는 1건의 우회 (bypass) 사례와 12건의 오탐 (false positives)을 상세히 기록했습니다.

— 가드레일 유무에 따른 데모 실행 측정 결과: RESULTS.md
— 프로브 → OWASP / ATLAS / NIST 교차 참조: docs/probe-mapping.md
— 처음 30분 가이드: docs/onboarding/quickstart.md
— 타겟 어댑터 (target adapters) 작성법: docs/onboarding/target-spec-cookbook.md
— 각 프로브 ID의 기능: docs/onboarding/probe-id-cheatsheet.md
— REST API + SSE 이벤트 흐름: docs/reference/services.md
— GitHub Actions + ArgoCD 파이프라인: docs/CI_CD.md
— 각 서비스를 로컬에서 실행하기: docs/runbooks/local-dev.md
— AKS / Helm 배포: docs/runbooks/deploy.md

Pre-1.0. CLI, REST API, 프로브 라이브러리 (probe library), 저지 하네스 (judge harness) 및 보고서 형식은 안정적인 인터페이스입니다. 오케스트레이터의 내부 프로브 디스패치 (probe-dispatch) 계약은 여전히 변경될 수 있습니다. Web UI 및 SaaS API 표면은 현재 활발히 개발 중입니다.

Apache 2.0 — LICENSE를 참조하세요.

Argus는 제3자 MIT 라이선스 라이브러리인 browser-use를 testing_web_ui_service/browser_use/ 아래에 번들로 포함하고 있습니다.

(라이선스는 트리 내에 보존됨).

이슈(Issues) 및 풀 리퀘스트(PRs)를 환영합니다. 방향성을 맞출 수 있도록 대규모 변경 사항을 보내기 전에 이슈를 먼저 생성해 주세요. 새로운 프로브(probes)는 그에 상응하는 루브릭(rubric), attack_class 분류 체계(taxonomy) 항목, 그리고 프로브가 작동함을 보여주는 최소 하나 이상의 데모 타겟(demo target)과 함께 배포되어야 합니다.

보안에 민감한 공개(예: 오픈 소스 LLM 스택에서 실제 CVE 클래스 문제를 입증하는 새로운 프로브)의 경우, 공개 이슈를 생성하는 대신 이메일을 보내주시기 바랍니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0