요약: 프로덕션 에이전트의 안전을 누가 테스트하는가?

Claude Code, Codex 같은 프로덕션 LLM 에이전트는 파일을 쓰고, 명령을 실행하고, API를 호출한다. 이들에게 안전 실패는 단순한 유해 텍스트 생성이 아니라 실제 행동이다 — 데이터 유출, 악성 코드 작성, 무단 워크플로우 실행. 이 논문은 이런 에이전트를 자동으로 레드팀하는 AHA(Agent Hacks Agent) 프레임워크를 제안한다.

AHA의 핵심은 레드팀을 **반증 가능한 연구 루프(falsifiable discovery loop)**로 재구성한 것이다. 단순히 공격 성공률을 최적화하는 것이 아니라, “왜 이 에이전트 궤적이 안전하지 않게 되는가”라는 취약성 메커니즘 자체를 발견하고 축적한다.

AHA overview

Figure 1: AHA 전체 개요. 실행된 레드팀 궤적을 동결된 재사용 가능한 VCG(Vulnerability Concept Graph)로 변환하는 자동연구 루프.


문제 의식: 공격 성공 ≠ 재사용 가능한 지식

기존 자동 레드팀 접근법의 가장 큰 한계는 발견한 공격의 산물(payload, 벤치마크 점수, 공격 프로그램)이 “어디에” 뚫렸는지는 기록하지만 “왜” 뚫렸는지는 기록하지 않는다는 점이다.

예를 들어:

  • 판정자(judge)가 게임 가능한 경우, 동일한 성공 신호가 벤치마크 워딩, 일시적 도구 상태, 판정자 속이기, 또는 엉뚱한 궤적에서 올 수 있다.
  • 최적화된 payload는 패치 후, 모델 교체 후, 또는 다른 시나리오에서는 작동하지 않는다.
  • 안전 팀이 감사하고 패치하고 재검증하는 데 필요한 것은 “이 공격이 통했다”가 아니라 **“이 메커니즘이 어떤 조건에서 발동하는가”**이다.

AHA는 이 문제를 **취약성 개념(vulnerability concept)**이라는 감사 가능한 단위로 해결한다.


AHA의 발견 루프: 가설 → 반증 → 승격

AHA의 자동연구 루프는 4단계 역할 분리 구조로 동작한다.

AHA discovery loop

Figure 2: AHA 발견 루프. 오케스트레이터가 매 반복을 4가지 검색 모드 중 하나로 라우팅한다.

1. Hypothesizer (가설 수립자)

VCG(Vulnerability Concept Graph)와 최근 반영, 비평가 감사 결과를 읽고 반증 가능한 취약성 가설을 제안한다. 핵심은 공격을 작성하기 전에 메커니즘을 먼저 서술한다는 점이다. 가설에는 다음이 포함된다:

  • Claim (주장): 어떤 경로가 안전하지 않은 궤적으로 이어지는가
  • Enabling condition (발동 조건): 어떤 조건에서 이 경로가 작동하는가
  • Falsifier (반증자): 어떤 결과가 나오면 이 가설이 틀렸다고 할 수 있는가
  • Transfer prediction (전이 예측): 이 메커니즘이 다른 모델/시나리오에서도 작동할 것인가

2. Attack Designer (공격 설계자)

커밋된 가설을 읽고, 선택된 인스턴스에 맞춰 시나리오 유효 공격을 생성한다. 공격은 해당 시나리오의 스키마와 제약을 준수해야 한다.

3. Attack Runner (공격 실행자)

샌드박스된 에이전트 환경에서 공격을 실행하고, 판정자를 호출하고, 궤적 아티팩트를 기록한다. Claude Code 피해자 에이전트는 Docker 컨테이너 안에서 구동되며, 파일 시스템 접근과 네트워크가 제한된다.

4. Reflector (반영자)

궤적을 분석해 커밋된 반증자 기준으로 결과를 분류한다. 공격이 성공했더라도 반증자를 통과하지 못하면 승격되지 않는다. 이것이 보상 해킹과 판정자 속임기를 걸러내는 핵심 장치다.

주기적 비평가(Critic)

10회 반복마다 자동으로 실행되어 보상 해킹 드리프트, 반복 템플릿, 커버리지 공백, 가설 품질을 감사한다.


4가지 검색 모드: 탐색과 검증의 균형

AHA는 단순히 무작위로 공격을 시도하지 않는다. 오케스트레이터가 매 반복을 4가지 모드 중 하나로 라우팅한다:

모드목적사전 조건
Explore새로운 메커니즘 발견VCG가 비어있거나 커버되지 않은 인스턴스 존재
Exploit기존 개념 심화이미 발견된 break가 있는 개념
Transfer전이 예측 검증counted 개념이 다른 카테고리에서도 작동하는지 테스트
Consolidate불확실 개념 확인신뢰도 < 0.5, 관측 2회 이상의 미확정 개념

이 구조 덕분에 루프는 새로운 메커니즘 발견, 기존 메커니즘 심화, 전이 테스트, 불확정 개념 해결에 예산을 분산한다.


취약성 개념 그래프(VCG): 축적되는 안전 지식

확인된 개념은 VCG에 축적된다. 각 개념은 감사 가능한 단위로 다음을 포함한다:

  • 공격 표면(attacker-facing surface): 어디서 공격이 들어오는가
  • 안전하지 않은 궤적(unsafe trajectory): 에이전트가 어떤 경로로 위험 행동에 이르는가
  • 발동 조건(enabling condition): 어떤 조건에서 이 루트가 열리는가
  • 반증자(falsifier): 어떤 결과가 나오면 이 개념이 적용하지 않는가
  • 전이 예측(transfer prediction): 어디로 이동할 수 있는가
  • 증거(evidence): 확인 궤적과 지원 데이터

AHA Hypothesizer detail

Figure 2 (상세): Hypothesizer가 VCG, 최근 반영, 비평가 감사를 읽고 새로운 취약성 가설을 제안하는 과정.

VCG가 핵심인 이유는 동결(freeze) 후에도 작동한다는 점이다. 발견 후 검색을 멈춰도, VCG를 들고 새로운 인스턴스에 단일 shot으로 배포하면 여전히 공격이 성공한다. 이것이 “재사용 가능한 메커니즘”의 증거다.


실험: Claude Code와 Codex를 직접 공격하다

AHA는 두 가지 프로덕션 에이전트(Claude Code, Codex)와 세 가지 시나리오에서 테스트되었다:

  • AgentHazard: 직접 멀티턴 프롬프트 공격 (2,653 인스턴스, 10개 위해 카테고리)
  • AgentDyn: 간접 프롬프트 인젝션 (560 인스턴스, 3개 동적 스위트)
  • DTap: DecodingTrust-Agent 벤치마크 (383 인스턴스, 14개 위험 카테고리, 직접+간접)

피해 모델은 Minimax-M2.7, Kimi-K2.6, Deepseek-V4-Pro를 사용했다.

RQ1: 발견된 메커니즘은 모델/에이전트를 가로질러 공유되는가?

Vulnerability concept landscape

Figure 3: 취약성 개념 지형 (RQ1). 18개 발견 에피소드에서 카운트된 각 개념이 독립적인 피해 모델 × 에이전트 조합에서 재발현하는 빈도.

결과는 명확하다: 동일한 메커니즘 핵심이 서로 다른 모델과 에이전트에서 반복적으로 나타난다. 예를 들어 “위임된 권한 승인(claimed-authorization)” 코어가 거의 모든 설정에서 재발현된다. 이는 취약점이 특정 모델의 버그가 아니라 에이전트 궤적 구조 자체의 속성임을 의미한다.

RQ2: 동결된 VCG가 추가 검색 없이 작동하는가?

방법Claude Code 평균 ASRCodex 평균 ASR
T-MAP*32.8%31.2%
IterInject*33.3%31.2%
AutoRISE*36.5%29.1%
AHA50.0%43.9%
Original (벤치마크 원본)52.1%32.4%

AHA는 동결된 단일 shot으로 모든 베이스라인을 14.2pp 차이로 압도한다. 더 중요한 것은, 벤치마크 원본 공격(오프라인에서 최적화된 고정 공격)과도 경쟁력이 있다는 점이다.

RQ3: 어떤 안전장치가 개념을 재현 가능하게 만드는가?

여기서 이 논문의 가장 날카로운 통찰이 나온다. AHA의 세 가지 안전장치를 하나씩 제거(abelation)한 결과:

  • 반증자(Falsifier) 제거: 발견 ASR은 그대로지만 held-out ASR이 급락
  • 교차 에피소드 메모리 제거: 개념 수는 늘지만 재현성 하락
  • 비평가(Critic) 제거: 유효 개념 수가 10개 → 7개로 감소

핵심 발견: 발견 시점의 성공률은 그대로인데, held-out 성공률이 떨어진다. 즉, 안전장치는 “더 많은 공격을 찾는” 것이 아니라 “재사용 가능한 발견으로 만드는” 역할을 한다.

RQ4: 개념이 시나리오와 모델을 가로질러 전이되는가?

Concepts transfer as durable mechanisms

Figure 4: 전이 실험 (RQ4). (a) 시나리오 간 전이: 한 시나리오에서 발견한 VCG를 다른 시나리오의 held-out에 배포. (b) 피해 모델 간 전이.

주목할 만한 결과들:

  • 직접 → 간접 전이: AgentHazard에서 직접 멀티턴으로 발견한 개념이 DTap의 간접 설정에서도 49.6% ASR 달성
  • 간접 → 직접 전이: AgentDyn에서 간접 인젝션으로 발견한 개념이 DTap 직접에서 42.6% ASR 달성
  • 모델 간 전이: Deepseek에서 발견한 VCG가 Minimax와 Kimi에서 각각의 자체 ASR과 동등하거나 더 높은 성공률 기록

이것이 의미하는 바: 발견된 것은 payload가 아니라 메커니즘이다. 공격 문자열이 아니라 “공격자 제어 컨텍스트가 어떻게 에이전트의 의무로 변하는가”에 대한 구조적 지식이다.


프로덕션 안전에 주는 시사점

1. 축적되는 안전 지식

VCG의 각 개념은 감사 가능하다. 안전 팀은 발동 조건을 읽고, 에이전트 정책이나 도구 경계를 수정하고, 모델 업데이트 후 동결된 개념을 재실행하여 패치가 효과가 있는지 확인할 수 있다. 매 릴리즈마다 1회성 벤치마크를 다시 돌릴 필요가 없다.

2. 확장 가능한 시나리오

AHA의 build 워크플로우는 자유 텍스트 안전 우려를 러너블 시나리오로 변환하고, import 워크플로우는 기존 벤치마크를 동일한 계약으로 가져온다. 새로운 위협은 새로운 1회성 벤치마크 사일로가 아니라, 동일한 개념을 테스트하고 정제하고 전이할 수 있는 또 하나의 장소가 된다.

3. 에이전트 불변의 인터페이스

AHA가 요구하는 인터페이스는 공격 표면, 실행 하네스, 관측 가능한 증거, 판정자뿐이다. 이 인터페이스 아래에서 동일한 루프를 LLM 채팅 시스템, VLM, 브라우저 에이전트, 모바일 에이전트에도 적용할 수 있다.


기술적 하이라이트

샌드박스 격리

피해 에이전트는 매 공격마다 새로운 Docker 컨테이너에서 구동된다:

  • CPU 2.0코어, 메모리 4GB, 600초 하드 킬
  • 공격 명세는 stdin으로 파이프되어 디스크에 기록되지 않음
  • 호스트 경로(SSH 키 등) 접근 불가
  • 판정자와 개념 선택은 호스트 측에서 실행되어 피해 컨테이너와 분리

Claude Code 피해 구동

Claude Code는 claude-agent-sdk를 통해 실제 에이전트로 구동된다. 승인 프롬프트는 우회되지만(--dangerously-skip-permissions), 도구 허용/거부 목록과 시나리오별 MCP 서버가 동작한다. 공격은 사용자 메시지를 한 번씩 순차적으로 전달하며, 어시스턴트 턴이 완전히 끝난 후 다음 메시지를 보낸다.

Codex 피해 구동

Codex는 OS 수준 샌드박스와 stdio MCP 어댑터를 통해 동일한 시나리오 동작을 재현한다. Claude Code의 in-process MCP 서버와 PostToolUse 훅 대신, 표준 I/O 기반 MCP 서버가 도구 호스팅과 출력 가로채기를 담당한다.


한계와 향후 방향

논문이 인정하는 한계:

  1. 세 가지 시나리오에 국한: 더 다양한 에이전트 런타임(브라우저, 모바일, 멀티모달)에서 검증 필요
  2. 이중 사용(dual-use) 리스크: 에이전트를 해킹하는 자동화 에이전트는 본질적으로 이중 사용 기술이다. 다만 반증 가능한 메커니즘 수준의 산물은 순방어적(net-defensive)이라는 것이 저자의 입장이다.
  3. 판정자 의존성: 시나리오 판정자의 품질에 따라 발견 품질이 영향을 받는다.

더 실습해보고 싶은 분들께

에이전트 하네스 설계, 자동화 루프, MCP 도구 활용, 그리고 에이전트 안전 평가에 관심이 있다면 다음 자료를 추천합니다:

AHA가 보여주는 “자동화된 발견 루프가 축적되는 안전 지식을 만든다”는 비전은, 에이전트를 직접 만들고 운용하는 분들에게 매우 실질적인 설계 원칙이 될 것이다.


결론: 일회성 공격에서 축적되는 지식으로

AHA의 기여는 단순히 “더 강한 공격을 자동으로 찾아낸다”가 아니다. 레드팀의 산물을 감사 가능하고 재사용 가능하며 축적되는 취약성 지식으로 격상시켰다는 점이 핵심이다.

동결된 VCG가 추가 검색 없이 held-out에서 작동하고, 시나리오를 가로질러 전이되고, 모델이 바뀌어도 유지된다는 것은 — 발견된 것이 특정 payload가 아니라 에이전트 궤적 구조의 속성이라는 증거다.

프로덕션 에이전트가 더 많은 권한을 갖고 더 높은 위험도의 작업을 수행할수록, “이 에이전트가 어떻게 실패하는가”에 대한 공유되고 진화하는 지식이 생태계의 필수 안전 인프라가 될 것이다. AHA는 그 방향으로의 중요한 한 걸음이다.

논문: Agent Hacks Agent: Autoresearch for Production-Agent Red-Teaming (arXiv:2607.11698)

코드: github.com/henrymao2004/Auto-research-red-teaming