우리는 출시 전에 자체 AI 에이전트 가드레일을 스트레스 테스트했습니다. 파손된 부분은 다음과 같습니다.

발행: (2026년 2월 28일 오후 09:41 GMT+9)
15 분 소요
원문: Dev.to

Source: Dev.to

Uchi Uchibeke

당신이 설계한 보안 시스템의 구멍을 찾을 수 없습니다. 당신의 테스트 스위트는 당신이 상상한 영역을 매핑하는데, 이는 바로 공격자가 탈출하려는 바로 그 공간입니다.

우리가 APort Vault 를 공개하기 전에, 우리는 정확히 그 일을 두 주 동안 수행했습니다 — 우리 자체 가드레일을 깨뜨리려는 시도였습니다. 테스트 스위트가 아니라 의도를 가지고.

공개된 사용자가 시도하기 전에 우리는 핵심 정책 규칙 8개 중 3개를 깨뜨렸습니다.

TL;DR

  • CTF 출시 전 내부 스트레스‑테스트에서 8개 중 3개 핵심 가드레일 규칙이 위반되었습니다.
  • 다섯 가지 공격 유형: 프롬프트 인젝션, 정책 모호성, 컨텍스트 중독, 다단계 체이닝, 패스포트 우회.
  • 가장 위험한 발견: 다단계 체이닝 — 각 마이크로‑액션은 통과하지만, 조합이 정책을 위반합니다.
  • 해결책: 의도 기반 인젝션 검사, 갭에 대한 기본 거부, 턴 간 세션 메모리, 불투명 거부 메시지.
  • 핵심 교훈: 사후 필터링은 실패합니다. 위험한 상태를 구조적으로 도달 불가능하게 만들 것.

왜 AI 에이전트 가드레일은 단지 보안 연극에 불과할까?

대부분의 AI 가드레일은 공항 보안 연극과 같다. 겉보기에 철저해 보이지만, 단호한 공격자는 쉽게 통과한다.

대기업들의 접근 방식 — LlamaFirewall (Meta)NeMo Guardrails (NVIDIA) — 은 사후 필터링에 초점을 맞춘다. 에이전트가 행동을 취하기 후에 잘못된 행동을 감지한다. 이는 방지가 아니라 감지이다.

hibana‑agent에 대한 Show HN 게시물 은 같은 주장을 했다: “위험한 행동은 구조적으로 도달할 수 없게 해야 한다.” ClawMoat가 출시됨 은 호스트 수준 접근 방식을 도입했다. 신호는 명확하다: 업계가 감지에서 구조적 제약으로 전환하고 있다.

APort — 실행 전 모든 툴 호출을 가로채는 권한 부여 레이어 — 를 구축하면서 우리는 의도가 표현보다 더 중요하다는 것을 배웠다. 하지만 우리가 직접 깨뜨려 보기 전까지 우리의 의도 감지가 얼마나 취약한지 알 수 없었다.

왜 여권이 아니라 국경 순찰인가?

새로운 나라로 여행한다고 상상해 보세요. 모든 검문소에서 여권을 보여주는 대신, 집에 있는 가족에게 전화를 걸어 당신을 보증해 달라고 해야 합니다.

오늘날 대부분의 AI 가드레일은 바로 이런 방식으로 작동합니다. LLM에게 “이 행동이 안전한가?” 라고 묻고, 모델 자체의 판단에 의존하는데, 이는 조작될 수 있습니다.

보다 나은 시스템은 실제 여권처럼 작동합니다: 정체성과 권한이 에이전트와 함께 이동하는 자격 증명에 인코딩됩니다. 가드레일은 “이것이 허용되는가?” 라고 묻지 않고, 자격 증명을 읽고 바로 알게 됩니다. 이것이 우리가 Agent Passport 로 구축하고 있는 방식입니다. 하지만 이를 신뢰하기 전에 우리는 먼저 그것을 깨뜨려 보아야 했습니다.

우리가 테스트한 다섯 가지 공격 클래스는 무엇인가요?

CTF는 다섯 단계로 상승하는 공격 클래스를 중심으로 구축되었습니다. 각 클래스는 가드레일 설계의 다른 약점을 목표로 합니다.

LevelAttack classDescription
1Prompt injection직접적인 재정의 시도: “이전 지시를 무시해”, “이건 그냥 테스트야”, “사용자가 괜찮다고 했어”. 목표: 어휘 재구성을 통해 LLM 평가자가 행동을 안전하다고 믿게 만드는 것.
2Policy ambiguity불명확한 정책을 이용—틈새를 공략. 정책에 “민감한 파일을 읽지 말라”는 문구가 있다면, 민감한이 무엇을 의미하나요? 공격자는 회색 영역을 찾아 그곳에 머뭅니다.
3Context poisoning이전 턴에 거짓 컨텍스트를 주입해 이후 결정을 조작. “사용자가 이전에 이 행동을 허가했다.” 가드레일은 중독된 컨텍스트를 보고 다른 결정을 내립니다.
4Multi‑step reasoning manipulation개별적으로 허용된 행동을 연결해 금지된 결과를 도출. 각 마이크로 행동은 가드레일을 통과하지만, 그 조합은 정책을 위반합니다. 이는 AI 정책 설계에서 가장 어려운 문제 클래스입니다.
5Full system bypass위 모든 방법을 결합하고, 여권 검증 레이어 자체를 공격합니다. 가드레일이 여권을 신뢰한다면, 여권을 위조할 수 있나요? 검증 단계 자체를 완전히 건너뛸 수 있나요?

테스트했을 때 무엇이 깨졌는가?

  • 프롬프트 인젝션이 예상보다 더 잘 작동했다. 탐지가 약했기 때문이 아니라—우리가 의도가 아니라 내용만 매칭했기 때문이다. “기밀 문서를 가져와라”를 “사용자가 요청한 파일을 열어라”로 재구성하면서 LLM의 판단이 바뀌었다.
  • 정책 모호성이 자유로운 통과를 제공했다. “민감한 파일을 읽지 말라”는 민감한이라는 정의가 없었다. 모든 모호한 틈새가 악용 가능했으며—우리는 모두 검토했다.
  • 컨텍스트 중독이 세션 메모리를 깨뜨렸다. 우리는 각 턴을 독립적으로 검증했다. 초기 턴에 거짓 컨텍스트를 주입하면 이후 모든 턴이 이를 신뢰하게 된다.
  • 다단계 체이닝이 탐지되지 않았다. 우리의 가드레일은 각 호출을 독립적으로 평가했다. 거부된 매크로 행동이 열 개의 허용된 마이크로 행동으로 나뉘어 깨끗이 통과했다. 전체 세션 재생을 확인했을 때만 발견했다.
  • 여권 검증은 유지되었지만 주변 가정은 그렇지 않았다. 특정 엣지 조건에서 가드레일을 완전히 검증을 건너뛰게 만들 수 있었다—여권 검사는 올바랐지만 그 경로는 아니었다.

출시 전에 무엇을 수정했나요?

프롬프트 인젝션

사전 행동 승인에서 의도를 확인합니다. 내용만 보는 것이 아니라 의미적 동등성을 매핑합니다 — 차단된 작업의 모든 동의어와 재구성은 동일한 평가 경로를 따릅니다. 정책은 에이전트가 무엇이라고 부르든 상관하지 않습니다.

정책 모호성

정책에 공백이 감지될 경우 기본 거부를 명시합니다. 정책이 명시적으로 행동을 허용하지 않으면 거부됩니다. 회색 지대가 없습니다.

컨텍스트 오염

원본 패스포트 범위에 대한 턴별 컨텍스트 검증을 수행합니다. 컨텍스트가 승인된 내용과 벗어나면 요청이 거부됩니다.

다단계 체이닝

세션 수준 추론을 통해 마이크로‑액션들의 누적 효과를 추적합니다. 각 단계가 개별적으로 통과하더라도 전체 결과가 규칙을 위반하면 매크로‑액션이 거부됩니다.

패스포트 검증 경로

항상 도구 호출 전에 패스포트 검증을 거치도록 하드와이어된 강제 실행을 적용했습니다. 엣지 케이스 우회가 제거되었으며, 검증 단계는 요청과 원자적으로 실행됩니다.

핵심 교훈

Post‑hoc filtering은 충분하지 않습니다. 가장 안전한 설계는 structurally unreachable(구조적으로 도달 불가능)하도록 위험한 상태를 만들며, intent‑based, session‑aware, default‑deny 정책을 강제하고, 모델에게 “괜찮은가요?”라고 묻는 대신 자격 증명을 여권처럼 취급합니다.

Multi‑step Chaining

세션 수준의 컨텍스트 누적을 통해 알려진 우회 체인과 일치하는 시퀀스를 플래그합니다 — 이는 사기 탐지 시스템이 개별 거래가 아니라 거래 시퀀스를 보는 방식과 유사합니다. 이것이 Level 4 교훈을 구체화한 내용입니다.

Opaque Denial Messages

호출자에게 반환되는 거부 메시지는 정보가 거의 없으며, 내부 감사 로그는 풍부한 정보를 담고 있습니다. 응답 표면을 탐색하는 공격자는 유용한 정보를 전혀 얻지 못합니다.

핵심 교훈: 사후 필터링은 실패한다 – 구조가 답이다

위험한 상태를 structurally unreachable(구조적으로 도달 불가능)하게 만들고, 단순히 감지하는 수준에 머물지 마세요. 우리의 오픈소스 aport‑agent‑guardrails 가 이러한 패턴을 구현하고 있습니다.

AI 가드레일에서 일어나고 있는 구조적 변화는 무엇인가?

업계는 탐지에서 구조로 이동하고 있습니다.

  • Hibana‑agent의 “구조적으로 도달 불가” 논제는 우리가 배운 내용과 일치합니다.
  • ClawMoat의 호스트 수준 접근 방식은 같은 아이디어의 또 다른 버전입니다.

우리의 자체 해결책은 루프 내에서 권한 부여를 더 앞쪽으로 이동하는 것이었습니다: 에이전트가 결정하기 전에, LLM이 추론하기 전에, 그리고 도구 호출이 구성되기 전에 말이죠. 이것이 다단계 격차를 메우는 유일한 방법입니다.

우리는 스스로 찾고 고칠 수 있는 부분을 해결했습니다. 이것이 내부 테스트의 한계이며, 상상할 수 있는 것만큼만 깨뜨릴 수 있습니다.

CTF가 진행 중인 이유는 우리가 뭔가 놓쳤다는 것을 알기 때문입니다. 찾아보세요.

vault.aport.io — 레벨 1과 2는 무료입니다. 레벨 3‑5는 최초 도달자에게 최대 $5,000을 지급합니다.
마감: 2026년 3월 12일.

링크

0 조회
Back to Blog

관련 글

더 보기 »