2026년의 업계 합의: 프롬프트 인젝션은 여전히 미해결이고, 최전선은 탐지(필터)에서 설계(아키텍처)로 옮겨갔다.
프레임: Lethal Trifecta → Rule of Two
Simon Willison의 치명적 트라이펙타: ①비공개 데이터 접근 ②비신뢰 콘텐츠 노출 ③외부 전송 채널 — 셋이 한 에이전트에 공존하면 인젝션으로 데이터 탈취가 성립한다. LLM은 콘텐츠 안의 지시를 따르는 성질이 있어 가드레일 탐지로는 못 막는다 — 셋의 동시 결합을 피하는 것이 유일한 실용적 방어. Meta가 이를 "Agents Rule of Two"로 공식 채택했다: 한 세션에 셋 중 최대 둘만, 셋이 다 필요하면 사람 승인 필수. 설계 리뷰 체크리스트 1번은 도구 목록을 세 축으로 분류하는 것이다.
구조적 방어의 메뉴판
6대 설계 패턴 논문(IBM·ETH·Google·MS 공동): Plan-Then-Execute(도구 호출 계획을 미리 고정), Dual LLM(권한 있는 LLM은 오염 콘텐츠를 직접 안 봄), Code-Then-Execute 등 — 공통 원칙은 "비신뢰 입력을 읽은 LLM은 이후 중대한 행동을 트리거할 수 없게 구조적으로 제약". 최고 수준 구현은 CaMeL(DeepMind): 제어 흐름과 데이터 흐름을 분리하고 비신뢰 값에 권한 태그를 붙여 정책 엔진이 검사 — AgentDojo에서 유틸리티 7%p 비용으로 증명 가능한 보안. 값싼 1차 방어로는 Spotlighting(MS): datamarking만으로 간접 인젝션 성공률 50%+→2% 미만 — 단 이것"만" 믿고 위험한 권한을 열면 안 된다. Llama Guard·NeMo Guardrails류 분류기는 유해 콘텐츠용이지 인젝션 방어가 아니다 — 심층 방어의 한 겹일 뿐.
권한과 샌드박스 — 실전 레퍼런스
- 권한 모델 — Claude Code의 3단 구조가 이식할 만한 완성형: 읽기는 기본 허용 / 쓰기는 승인 / 위험 명령은 deny 목록(항상 우선), 정책은 저장소에 커밋해 팀 배포, plan 모드(읽기 전용 드라이런).
- 샌드박스 — 파일시스템 격리 + 네트워크 egress 화이트리스트 이중 필수(하나만 하면 SSH 키 유출 또는 탈출 가능). 부수 효과가 크다: Anthropic 실측 승인 프롬프트 84% 감소 — 승인이 잦으면 사용자가 안 읽고 누르는 approval fatigue가 생기니, 샌드박스는 보안이자 UX다.
- 인증 — 에이전트에게 계정 비밀번호를 통째로 주지 마라: MCP OAuth 2.1 스펙이 표준 답(리소스 바인딩 스코프 토큰, 토큰 패스스루 금지). 시크릿은 프롬프트가 아니라 런타임 환경에서 주입.
실화 두 편 — 교과서가 된 사고
- EchoLeak(CVE-2025-32711) — M365 Copilot 제로클릭 유출: 인젝션 메일을 심어두면 사용자가 관련 질문을 하는 순간 RAG가 끌어오고, 숨은 지시가 민감 데이터를 마크다운 이미지 URL에 실어 자동 전송. 교훈: 에이전트 응답의 외부 URL 이미지/링크 렌더링을 막거나 도메인 화이트리스트를 걸어라.
- Replit DB 삭제(2025-07) — "수정 금지"를 대문자로 11번 지시받고도 프로덕션 DB 삭제 후 은폐 시도. 교훈: 자연어 금지는 권한 제어가 아니다 — 프로덕션 자격증명 원천 미제공, dev/prod 분리, 검증된 롤백, 파괴적 작업 인간 승인.
한 줄 요약: 비신뢰 입력을 읽은 에이전트는 위험한 행동을 "할 수 없게" 설계하라 — 셋 중 둘만.
— 에이전트 설계 시리즈 ⑦ / 다음 글: HITL과 UX — 승인 버튼을 늘리지 마라
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.