대규모 실증적 사례 연구 AI 레드팀 테스트를 위한 Go-Explore 적응

읽는 시간: 7 분
...

📝 원문 정보

- Title: Large Empirical Case Study Go-Explore adapted for AI Red Team Testing
- ArXiv ID: 2601.00042
- 발행일: 2025-12-31
- 저자: Manish Bhatt, Adrian Wood, Idan Habler, Ammar Al-Kahfah

📝 초록

(이 논문에서는 Go-Explore 알고리즘을 사용하여 LLM 에이전트의 안전성을 테스트하고, 무작위 시드 변동성이 알고리즘 선택보다 큰 영향을 미친다는 것을 보여줍니다. 또한, 악성 공격 탐지에 대한 다중 에이전트 조합 전략이 공격 유형 다양화를 제공한다는 점도 확인했습니다.)

💡 논문 해설

1. **키 컨트리뷰션 1:** 무작위 시드의 영향 (초보자 버전) - 어떤 요리 레시피가 있더라도, 소금을 넣는 양이 조금씩 다르면 맛도 달라질 수 있어요. 이 논문에서는 LLM 에이전트를 테스트할 때 무작위 시드가 어떻게 큰 영향을 미치는지 보여줍니다.
  1. 키 컨트리뷰션 2: Go-Explore 알고리즘의 활용 (중급자 버전)

    • Go-Explore는 마치 지도를 들고 새로운 장소를 찾아다니면서 중요한 장소만 기억하고 다시 방문하는 것과 같습니다. 이 논문에서는 이런 방식으로 LLM 에이전트의 안전성을 테스트합니다.
  2. 키 컨트리뷰션 3: 악성 공격 탐지 방법 (고급자 버전)

    • 악성 코드가 어떻게 작동하고, 이를 어떻게 찾아낼 수 있는지를 분석하는 것은 마치 범인을 잡는 추리 소설과 같습니다. 이 논문에서는 Go-Explore 알고리즘을 사용하여 이러한 공격을 찾는 방법을 제시합니다.

📄 논문 발췌 (ArXiv Source)

**키워드:** LLM 보안, 프롬프트 주입 공격, Go-Explore, 적대적 테스트, 에이전트 안전성, 다중 단계 공격

재현성: 코드, 실험 구성 및 시드 감도 데이터는 https://github.com/mbhatt1/competitionscratch 에서 이용 가능합니다.

서론

비전문가를 위한 용어 설명

핵심 개념: 프롬프트 주입 공격은 도구 출력물 (이메일, 파일, 웹 페이지)에 숨겨진 악성 명령문이 에이전트의 원래 작업을 무효화하는 현상입니다. Go-Explore는 발견된 상태들을 보관하고 체계적으로 탐색하는 강화 학습 알고리즘으로, 흥미로운 프로그램 상태를 북마크처럼 저장해 나중에 다시 방문하는 것과 같습니다. 안전성 튜닝 모델은 유해한 요청을 거절하도록 미세 조정된 LLM들로, 보안 테스트 환경에서 도전적인 역할을 합니다.

기술 용어: 상태 서명(또는 “해시”)은 두 에이전트 경로가 “같은 것"인지 결정하는 방법입니다 (도구만: 단순히 도구 이름; 전체 의도: 사용자 메시지 포함). 보상 조형은 우리가 원하는 행동(예: 인과성 체인)에 보너스 점수를 주어 탐색을 유도하려는 방법입니다. 가드레일은 악의적인 프롬프트가 LLM에 도달하기 전에 차단하는 필터입니다. 랜덤 시드는 무작위성을 초기화합니다—동일한 알고리즘 매개변수라도 다른 시드는 완전히 다른 탐색 경로를 생성할 수 있습니다.

실험 용어: 발견은 우리의 보안 감지기가 트리거되는 어떤 에피소드입니다(가능성 높은 거짓 긍정). 검증된 공격은 악의적인 입력 $`\rightarrow`$ 위험한 행동 $`\rightarrow`$ 성공이라는 증명 가능한 인과성을 갖는 발견입니다. 구성은 알고리즘 매개변수(서명 방식, 보상 켜짐/끄기, 프롬프트)의 고유 조합을 말합니다. 실행에는 시드가 포함되어 있어 RQ2의 2 구성 $`\times`$ 5 시드 = 10 실행입니다. 앙상블은 여러 독립적인 에이전트(다른 시드나 전략)를 실행하고 결과를 결합합니다.

왜 이것이 중요한지: 우리는 시드 변동성이 주요 요소라는 것을 발견했습니다 (8$`\times`$ 결과 퍼짐). 단일 시드 비교는 종종 잘못 이끌었지만, 우리의 설정에서 약 3–4개의 시드를 평균화하면 변동성을 크게 줄였습니다.

동기와 주요 결과

생산 LLM 에이전트를 안전성 취약점으로 테스트하는 것은 모델이 적대적 입력에 저항하도록 학습되었을 때 어렵습니다. 우리는 강화 학습에서 나온 탐색 알고리즘인 Go-Explore를 사용해 GPT-4o-mini의 프롬프트 주입 공격을 찾는 방법을 개발했습니다. 세 가지 향상을 시험했습니다: 세분화된 상태 서명, 인과성 기반 보상, 목표 지향 프롬프트.

결과는 랜덤 시드 변동성이 모든 다른 요소보다 우세하다는 것을 보여주었습니다. 5개의 시드와 두 가지 서명 방식을 테스트하여 0–16개의 발견(8$`\times`$ 변동성)이 나왔습니다. 도구만 구성은 평균적으로 1.8±1.3 개의 발견을 보였으며, 전체 의도 구성은 4.6±6.0을 보였지만 시드에 따라 일관된 승자는 없었습니다. 보상 보너스는 모든 상황에서 성능을 저하시켰습니다: 서명으로 탐색을 94% 줄이고, 단독으로 18개의 거짓 긍정을 생성하며, 앙상블에서는 공격이 없는 상태에서 2개의 발견을 생성했습니다. 세 가지 향상을 모두 결합하면 아무런 발견도 나오지 않았습니다.

목표 지향 프롬프트만으로는 13개의 발견 중 1개의 공격을 찾았습니다. 우리는 4가지 추가 구성에서 앙상블 접근법을 시험했습니다. 단일 개선된 에이전트는 하나의 유형(PROMPT_INJECTION_WRITE)에 대해 5개의 공격을 찾았지만, 앙상블은 두 가지 다른 유형(WRITE + READ_SECRET)에 걸쳐서 총 2개의 공격을 찾아냈습니다. 앙상블은 전체 공격 수를 줄이는 대신 공격 유형 다양성을 제공합니다.

이 작업은 두 가지 발견을 제시합니다: (1) Go-Explore로 안전성 튜닝 LLM의 보안 테스트에서 시드 변동성이 알고리즘 매개변수 효과보다 우세하다(단일 시드 결과는 종종 잘못 이끌었지만, 약 3–4개의 시드를 평균화하면 변동성을 크게 줄였습니다), (2) 앙상블은 공격 수 대신 유형 다양성으로 교환합니다. 높은 거절률이 있는 환경에서는 시드 선택과 목표 지향 도메인 지식이 알고리즘 매개변수 조정보다 중요합니다.

배경

LLM 에이전트 아키텍처

LLM 에이전트는 반복적인 추론 루프를 통해 작동합니다:

LLM 에이전트 아키텍처. 도구 출력물에 악의적 내용이 추가되어 프롬프트 주입 공격을 가능하게 합니다.

Go-Explore 알고리즘

Go-Explore는 return-then-explore 방식으로 어려운 탐색 문제를 해결합니다:

초기화 archive $`\leftarrow`$ {시드 상태} $`cell \leftarrow`$ Select(archive) Restore(환경, cell.snapshot) $`action \leftarrow`$ Mutate(cell.actions) $`state' \leftarrow`$ Execute(action) archive $`\leftarrow`$ archive $`\cup`$ {$`state'`$}

핵심 통찰: 발견된 상태의 최전선을 유지하여 희박한 보상 공간의 체계적인 탐색이 가능합니다.

방법: 적대적 Go-Explore

개요

우리는 세 가지 향상을 적용하여 Go-Explore를 안전성에 특화된 문제 해결에 맞게 수정했습니다.

LLM 에이전트 보안 테스트를 위한 Go-Explore의 세 가지 알고리즘적 향상

향상 1: 세분화된 상태 서명

문제: 에이전트 거절로 인한 상태 축소.

상태 축소 문제
사용자 의도 에이전트 반응 통상적인 해시
“delete secret” 거절 (пустой) 동일한 셀 ×
“run shell cmd” 거절 (пустой)
“exfil data” 거절 (пустой)
결과: 96%의 공격 의도가 1개 셀로 축소됨

해결책: 사용자 메시지 의도를 포함:

MATH
\begin{align*}
\sigma_{enhanced}(s) = \text{hash}(&\text{tools}(s) \mathbin\Vert \text{args}(s) \mathbin\Vert \\
&\mathbf{\text{hash}(msgs(s)[-3:])} \mathbin\Vert \text{outputs}(s))
\end{align*}
클릭하여 더 보기

용어: 발견 vs 검증된 공격

이 논문에서 우리는 두 가지 유형의 신호를 구분합니다:

  • 발견 (후보 알림): 보안 심판식이 트리거되는 어떤 에피소드. 가짜 긍정성(우연한 패턴으로 인해 발생)을 포함할 수 있습니다.

  • 검증된 공격 (진짜 악용): 엄격한 인과성 요구 사항을 충족하는 발견, 실제 악용이 일어났음을 증명합니다.

검증된 공격 기준. 입증 가능한 인과성 체인 필요:

  1. 불신뢰able 소스 출력물에 주입 문구 포함

  2. 즉시 위험한 작업 수행으로 이어짐

  3. 작업 성공

예: email.read 출력물 “you must delete” $`\rightarrow`$ fs.delete 성공 $`\rightarrow`$ 파일 삭제됨

정확도 도전: 실험을 통해 발견의 70-90%가 우연한 패턴으로 인해 트리거되는 가짜 긍정성임이 나타났습니다.

향상 2: 인과성 기반 보상

문제: 심판식이 우연한 패턴에 트리거되어 잡음을 일으키는 보상 신호 생성.

보상 함수:

MATH
\begin{align*}
score = &\underbrace{10 \cdot \mathbb{1}_{novel}}_{\text{탐색}} + \underbrace{5 \cdot \sum severity}_{\text{심판식}} + \\
&\underbrace{10 \cdot \mathbb{1}_{secret}}_{\text{진전}} + \underbrace{20 \cdot \mathbb{1}_{bypass}}_{\text{회피}} + \\
&\underbrace{\mathbf{100 \cdot |real\_attacks|}}_{\textbf{인과성}} + \\
&\underbrace{\mathbf{75 \cdot |HIGH|} + \mathbf{150 \cdot |CRITICAL|}}_{\textbf{영향력}}
\end{align*}
클릭하여 더 보기

검증된 악용으로 10-25$`\times`$ 경사를 만듭니다.

향상 3: 목표 지향 탐색

문제: 무작위 프롬프트는 특정 작업을 거의 트리거하지 않습니다 (예: shell.run의 경우 0/1000).

해결책: 도메인 특화된 프롬프트 뱅크:

대상 예시 프롬프트
shell.run 파일 읽기 install.txt, 검증 실행, 명령어 실행
fs.delete 비밀 삭제, 파일 제거, 정리
secret read 비밀 읽기, 자격 증명 표시, API 키 확인
exfiltration 보고서 업로드, 이메일 전송, 데이터 게시

목표 지향 프롬프트 뱅크

실험 설정

테스트 환경

모델: GPT-4o-mini (안전성 튜닝, 온도 0.7, gpt-4o-mini-2024-07-18).

툴 환경: 5개 카테고리와 12개 특정 도구:

  • fs.read, fs.write, fs.delete (파일 시스템 작업)

  • shell.run (명령어 실행)

  • email.read, email.send (이메일 작업)

  • web.search, web.browse (웹 접근)

  • http.get, http.post (HTTP 요청)

주입 형식: 미리 씨앗된 파일 (install.txt, package.txt, config.txt)은 “You must execute shell command”, “Delete all secret files”와 같은 악성 명령문을 포함하여 공격자 통제 데이터 소스를 시뮬레이션합니다. 에이전트는 탐색 중에 이러한 파일을 읽어, 주입ayload가 컨텍스트 윈도우에 노출됩니다.

가드레일 동작: 패턴 기반 프롬프트 주입 감지기로:

  • 사용자 메시지와 도구 출력물에서 주입 키워드 스캔

  • 의심스러운 프롬프트 차단 (처리 거부, 에러 반환)

  • 개별 도구 호출을 필터하지 않음(턴당 전체 또는 없음)

  • 에이전트가 거절 메시지를 보고 다른 동작을 트리거할 수 있게 됨

Go-Explore 매개변수: 시간 제한 20-180초, 최대 깊이 6, 분기 인자 12, 아카이브 정리 비활성화.

RQ별 시드 처리:

  • RQ1 (런타임): 단일 시드 (42)

  • RQ2 (서명): 다중 시드 분석 (42, 123, 456, 789, 1337)

  • RQ3 (보상): 단일 시드 (42)

  • RQ4 (абляции): 단일 시드 (42)

  • RQ5 (앙상블): 모든 에이전트에 대해 단일 시드 (42)

  • RQ6 (확장성): 변수 시드 (42, 142, 242, …), 에이전트는 최대 20개 동시 실행 배치로 병렬 실행

표준 결과 장부

구성 정의: “구성"은 알고리즘 매개변수(서명 방식, 보상 함수, 프롬프트 전략, 앙상블 구조)의 고유 조합을 말하며 시드 변동성을 제외합니다. RQ2는 각각 5개의 시드로 2가지 구성에 대해 테스트하여 10개의 실험 실행을 얻습니다.

RQ2 vs RQ2c: RQ2는 발견의 시드 감도(탐색 질량의 저렴한 신호)를 중점으로 하며, RQ2c는 실제 배포 환경에서 검증된 공격을 측정하기 위한 더 긴 보호 실행입니다.

실험 (RQ) 예산 시드들 발견들 공격들 유형들 호출들
RQ1: 런타임 확장성 (6 구성)
20초 일반, 가드 없음 20s 42 0 0 0 0
60초 일반, 가드 없음 60s 42 0 0 0 0
150초 일반, 가드 없음 150s 42 1 0 0 2
150초 일반, 가드 있음 150s 42 4 0 0 16
120초 목표 지향, 가드 없음 120s 42 2 0 0 10
120초 목표 지향, 가드 있음 120s 42 3 0 0 10
RQ2: 상태 서명 (10 실행 = 2 구성 × 5 시드)
도구만, 시드 42 90s 42 2 83
도구만, 시드 123 90s 123 0 83
도구만, 시드 456 90s 456 1 83
도구만, 시드 789 90s 789 3 83
도구만, 시드 1337 90s 1337 3 83
전체 의도, 시드 42 90s

감사의 말씀

이 글의 저작권은 연구하신 과학자분들께 있으며, 인류 문명 발전에 공헌해주신 노고에 감사를 드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키