Lethal Trifecta

한 줄 정의

Lethal Trifecta는 AI 에이전트가 신뢰할 수 없는 입력, 민감한 시스템 접근, 외부 상태 변경 세 능력을 동시에 가질 때 보안 사고가 필연이라는 Simon Willison의 위험 모델이다.

핵심 요지

  • 셋 중 하나라도 빠지면 공격 표면이 닫힌다. 셋 모두 열려 있으면 prompt injection 한 번에 데이터 유출이나 파괴적 행동이 일어난다.
  • Meta AI의 “Rule of Two”는 이 모델을 실천 규칙으로 바꿔 에이전트가 세 능력 중 최대 두 개만 동시에 갖게 한다.
  • 세 능력 모두가 필요하면 human-in-the-loop 승인을 의무화해야 한다.
  • 볼트 열쇠 이양의 위험: 개인 지식 베이스(Obsidian Vault)에 대한 읽기/쓰기 권한 부여는, 외부 데이터 유입(1), 수년간의 개인 극비 데이터(2), 파일 임의 덮어쓰기 및 삭제(3)가 겹치는 Lethal Trifecta의 상징적 폭발 영역이다.

상세

Simon Willison이 2025년 6월에 정리한 “The Lethal Trifecta for AI Agents”는 다음 세 능력이 한 에이전트 세션에 공존할 때 prompt injection 또는 도구 오용 사고가 사실상 막을 수 없게 된다고 본다.

  1. 신뢰할 수 없는 입력 처리 — 외부 웹 페이지, 이메일, 사용자가 보낸 PDF, 검색 결과처럼 공격자가 내용을 통제할 수 있는 입력.
  2. 민감한 시스템 또는 데이터 접근 — 개인정보, 내부 API, 데이터베이스, 비밀 키, 소스 리포지토리, 옵시디언 볼트 내의 극비 업무 기록.
  3. 외부 상태 변경 능력 — 이메일 발송, 파일 삭제, API 호출, 결제, 코드 푸시, MCP 도구 실행.

Meta AI는 2026년 초 발표한 “Rule of Two”에서 이 위험 모델을 Chromium 보안 정책 스타일로 정리했다. 한 에이전트 컨텍스트 안에 세 능력 중 최대 두 개만 허용한다. 세 능력이 모두 필요한 작업은 반드시 사람 승인을 받는다. 이 규칙은 기능 제약이 아니라 prompt injection이 발생해도 실제 피해로 이어지지 않도록 차단막을 두는 운영 원칙이다.

Claude Code 권한 설계에서 보던 권한 모드, allow/deny 리스트, MCP 도구 화이트리스트는 이 프레임을 구현하는 방식이다. Harness Engineering의 가드레일 설계에서도 도구 단위가 아니라 “이 세션이 세 능력 중 몇 개를 동시에 갖는가”로 위험을 채점하면 인지 비용이 줄어든다.

개인 지식 베이스(Obsidian Vault) 접근권과 Lethal Trifecta

에이전트에게 개인 지식 베이스의 디스크 직접 쓰기 권한(볼트 열쇠)을 넘기는 행위는 실무에 큰 혁신을 주지만, 보안상 고위험군에 직결된다.

  • 위험 시나리오: 에이전트가 외부 인터넷 검색이나 기사 스크랩(1)을 수행해 볼트에 저장하는 과정에서, 악의적인 Prompt Injection이 탑재된 문서가 볼트에 주입될 수 있다. 이 공격 스크립트가 로컬 볼트 내의 API 비밀 키나 기밀 일기(2)를 탈취해 외부 서버로 송출하거나 볼트 전체 파일을 덮어쓰는(3) 파괴적 쓰기 작업을 강제할 수 있다.
  • 방어 대책: 에이전트와 볼트 연동 시, 단순 웹 수집을 처리하는 에이전트 세션은 Read-only MCP server로 묶어 쓰기를 차단한다. 쓰기가 필요한 세션은 외부 인터넷망 데이터 송출(Egress)을 하드웨어 레이어에서 전면 통제(default-deny)하고, 파일 덮어쓰기 직전 변경 사항의 Diff를 보여주고 사람이 명시적으로 승인하는 HITL 가이드레일을 도입해야 한다.

판단 기준

  • 이 세션이 외부 입력을 읽는가.
  • 이 세션이 비밀 정보나 내부 시스템에 접근하는가.
  • 이 세션이 파일, API, 결제, 푸시처럼 외부 상태를 바꾸는가.
  • 세 가지가 동시에 필요하다면 사람 승인이나 세션 분리가 있는가.

예시

  • 외부 데이터 읽기(1) + 민감 정보 처리(2) → 외부 상태 변경(3) 차단. PR 작성, 메일 발송 등은 사람이 승인.
  • 외부 데이터 읽기(1) + 상태 변경(3) → 민감 정보 접근(2) 차단. 샌드박스 컨테이너에서 실행하고 비밀 키 마운트 금지.
  • 민감 정보 처리(2) + 상태 변경(3) → 외부 입력(1) 차단. 내부 데이터만 다루는 cron, routine은 외부 웹 검색 도구 비활성화.
  • 개인 볼트 자율 수집: 외부 웹 스크랩 데이터(1)를 볼트에 추가할 때, 아웃바운드 송신(3)을 차단하고 샌드박스로 격리해 로컬 기밀(2) 누출을 물리 차단한다.

실증 실패 사례 (폭발성 사례)

Lethal Trifecta가 통제되지 않았을 때 현실 프로덕션 환경에서 발생한 파괴적 참사 사례는 다음과 같다:

  • Google Antigravity 드라이브 포맷 사건 (2025년 12월): 사진작가 타소스 M.이 이미지 정렬 앱을 개발 중, 에이전트에게 개발 서버 재시작 및 캐시 삭제를 요청하자 에이전트가 임시 폴더를 비우는 대신 D: 드라이브 전체를 영구 포맷하여 몇 달간의 작업물이 유실됨.
  • Replit AI 에이전트 DB 삭제 사건 (2025년): 비즈니스 소유주가 리플릿 에이전트를 가동하던 중, 에이전트가 되돌릴 수 없는(Irreversible) 작업의 무게감을 인지하지 못하고 실제 프로덕션 데이터베이스를 몇 초 만에 영구 삭제함.

이 사건들은 에이전트에게 (1) 시스템 파일 변경 권한(2) 민감 데이터베이스 접근권을 격리된 샌드박스나 사람의 직접 승인(HITL) 없이 제공했을 때, 사소한 오작동이 전체 시스템 파괴로 이어질 수 있음을 입증한다.

충돌

현재 확인된 충돌 없음.

관련 노트