2025년 6월, Aim Security의 보안 연구자들은 이메일 한 통만으로 Microsoft 365 Copilot이 회사의 내부 파일을 가져와 외부 서버로 전송하게 만들 수 있음을 사용자 상호작용 없이 입증했다.
그 이메일에는 평범한 텍스트만 담겨 있었고, 어떤 소프트웨어 결함도 이용하지 않았다. Copilot의 출력은 이메일에 숨겨진 지시(instruction)와 사용자의 실제 요청이 결합되어 만들어졌으며, 시스템은 이 둘을 전혀 구분하지 않았다. Microsoft는 며칠 안에 해당 경로를 차단했고 고객들은 영향을 받지 않았다고 밝혔다.
하지만 이 사건은 언어 모델이 텍스트를 처리하는 방식에 대해 흥미로운 시사점을 던진다. 이 취약점은 EchoLeak이라는 이름이 붙었고 CVE-2025-32711로 지정되었으며, LLM 보안의 전체 지형을 이해하는 데 유용한 사례로 남아 있다.
대비되는 사례도 있다. 한 팀은 약 20달러 상당의 API 쿼리만으로 공개 인터페이스를 통해 프로덕션 OpenAI 모델의 일부를 추출해냈다. 이것이야말로 대부분의 팀이 진짜로 두려워해야 할 위협처럼 들린다.
이 글에서는 LLM의 보안을 위협하는 전체 공격 표면(attack surface)의 지도를 그려본다. 이 지도가 있으면 특정 LLM 기능이 어디에 위치하는지, 어떤 노출 지점을 가지는지 파악할 수 있고, 새로운 위협이 등장했을 때도 그것을 추론할 수 있다.
가장 중요한 속성 하나부터 시작해보자.
(이 글은 여러 공개된 자료를 근거로 작성되었습니다. 참고 자료는 글 말미에 있습니다. 부정확한 부분이 있다면 코멘트로 알려주세요.)
신뢰 경계(Trust Boundaries)
거의 모든 LLM 취약점은 하나의 속성으로 귀결된다. 언어 모델은 지시(instruction)와 데이터(data)를 하나의 토큰 시퀀스로 받아들이며, 그 시퀀스 안에는 명령과 정보를 구분하는 어떤 표시도 없다.
전통적인 소프트웨어는 이 둘을 분리해둔다.
예를 들어 파라미터화된(parameterized) 데이터베이스 쿼리는 명령을 한 위치에, 사용자 입력을 다른 위치에 둔다. 이름 필드에 입력된 텍스트가 설령 SQL 문처럼 생겼더라도, 쿼리의 구조가 그 구분을 강제하기 때문에 텍스트는 그대로 텍스트로 남는다.
그러나 LLM의 컨텍스트에는 모든 것이 같은 위치에 놓인다. 어시스턴트의 역할을 정의하는 시스템 프롬프트, 사용자의 메시지, 데이터베이스에서 조회된 문서, 호출된 도구가 반환한 출력이 모두 하나의 시퀀스로 이어 붙여진다. 모델은 앞선 전체 시퀀스로부터 다음 토큰을 계산하며 어떤 부분도 별도로 취급하지 않기 때문에, 시퀀스의 어느 부분이든 마치 지시인 것처럼 생성된 출력에 영향을 줄 수 있다.
여기서 프롬프트 인젝션(prompt injection)이 등장한다. 이는 모델의 출력이 운영자(operator)의 의도가 아니라 그 지시를 따르도록, 지시처럼 보이는 텍스트를 공급하는 것을 의미한다. 이는 두 가지 경로로 모델에 도달한다.
**직접 경로(direct route)**는 채팅창에 입력된 적대적인 지시다. 대부분의 사람들이 떠올리는 형태가 바로 이것이다.
**간접 경로(indirect route)**는 모델이 정상적인 작업을 수행하는 도중 가져오는 콘텐츠, 예컨대 요약 대상 웹페이지, 읽는 문서, 관리형 받은편지함(inbox)의 이메일 등에 지시를 심어 넣는다.
EchoLeak은 간접 경로의 사례였다. 사용자는 평범한 작업을 요청했을 뿐이고, 공격자의 지시는 사용자가 열어보지도 않은 이메일에 담겨 도달했다. 실제로 이 페이로드는 Microsoft의 전용 cross-prompt-injection 분류기를 통과했는데, 이는 입력 필터링만으로는 구멍이 뚫릴 수 있음을 보여준다.
이 속성은 외부 텍스트를 모델에 공급하는 모든 시스템에 적용된다. 검색 결과, 업로드된 파일, 티켓, 댓글을 처리하는 기능은 구조적으로 간접 인젝션 노출을 갖는다.
파라미터화(parameterization)는 데이터베이스 경계에서 코드와 데이터를 분리함으로써 SQL 인젝션을 해결했다. 자연어에는 그에 상응하는 방법이 없다. 지시와 정보 모두 단어로 표현되며, 어떤 텍스트 구간을 "비활성(inert)"이라고 표시하고 그 표시가 생성 과정에서 존중되도록 만드는 신뢰할 만한 방법이 현재로서는 존재하지 않기 때문이다. 필터링은 이 문제를 어느 정도 줄여주지만 없애지는 못한다.
혼동은 텍스트가 모델에 들어오거나 행동이 모델에서 나가는 지점 어디에서든 발생할 수 있으므로, 다음 단계는 그 지점들을 지도로 그리는 것이다.
공격 표면(Attack Surface)
OWASP Top 10 for Large Language Model Applications는 가장 중요한 LLM 위험에 대한 업계의 표준 참고 자료다. 최신판은 10개의 개별 항목을 제시한다. 데이터가 애플리케이션을 통과하는 경로에 이 10개 항목을 배치하면, 그것들은 하나의 지도 위의 위치가 된다.
파이프라인은 다음과 같은 단계로 진행된다.
입력은 사용자로부터 도착한다. 시스템은 흔히 답변의 근거를 마련하기 위해 컨텍스트를 조회하는데, 이는 보통 문서를 수치 임베딩으로 저장하고 쿼리와 가장 관련 있는 것을 반환하는 벡터 데이터베이스 위에 구축된다. 이 패턴이 바로 검색 증강 생성(retrieval-augmented generation, RAG)이다. 그다음 모델이 조립된 입력을 처리한다. 모델은 도구나 다른 에이전트를 호출해 외부에서 행동을 취할 수도 있다. 출력은 사용자에게 돌아간다. 파이프라인 전체를 모니터링이 감싸고 있으며, 그 안의 모든 구성 요소는 공급자(supplier)로부터 비롯되는데, 이것이 시스템 아래에 놓인 공급망(supply chain)을 이룬다.
각 단계와 관련된 세부 위험은 다음과 같다.
입력: 직접 프롬프트 인젝션, 그리고 OWASP가 피해자의 비용을 치솟게 할 수 있는 통제되지 않은 리소스 사용으로 정의하는 무한 소비(unbounded consumption, 이른바 지갑에 대한 서비스 거부(denial of wallet)).
조회(Retrieval): 간접 인젝션, 벡터 및 임베딩 취약점. 2024년 연구인 PoisonedRAG는 수백만 개 문서로 이루어진 지식베이스에 단 5개의 악성 문서를 삽입하는 것만으로 RAG 시스템의 답변을 훼손시켰고, 표적 질문에서 90%의 성공률을 기록했다.
모델: 학습 데이터 유출, 데이터 및 모델 오염(poisoning), 시스템 프롬프트 유출.
도구: 과도한 권한(excessive agency) — 에이전트가 자신의 작업에 필요한 것보다 더 많은 권한을 보유한 상태.
출력: 다운스트림으로 응답이 정제(sanitization) 없이 전달되는 부적절한 출력 처리, 그리고 자신감 있어 보이지만 틀린 답변을 내놓는 오정보(misinformation).
공급망: 위 단계들에 공급되는 어떤 구성 요소든 침해될 수 있음.
이 지도는 새로운 공격의 구체적 위치를 파악하는 데 기준점이 되어준다. 새로운 공격이 등장하면 이 지도 위 어딘가에 위치시킬 수 있다. 핵심 질문은 그 공격이 어디에 신뢰할 수 없는 텍스트를 주입하는지, 어느 단계에서 그러는지, 그리고 모델이 가지지 말아야 할 권한을 악용하는지 여부다. 이 답들이 심각도와 적용 가능한 방어책을 알려준다.
공급망은 이 경로 위에 깔끔하게 위치시킬 수 없다. 침해된 모델이나 오염된 벡터 스토어는 이후의 모든 단계에 동시에 영향을 미치기 때문이다. 그래서 공급망은 전체를 가로지르는 독자적인 구간으로 나타난다.
이 지도는 또한 관심의 불일치를 드러낸다. 가장 많은 우려를 낳는 위협과 실제로 프로덕션에 도달하는 위협은 서로 다르다.
모델 공격(Model Attacks)
가중치 탈취(weight theft), 학습 데이터 추출, 학습 시점 오염을 포함해 모델의 내부를 겨냥한 공격은 상당히 실재하지만, 대부분의 개발자에게는 초기 대응 우선순위가 낮다. 이런 공격은 대개 비용이 많이 들거나, 범위가 좁거나, 이미 모델 제공자에 의해 완화되어 있다.
몇 가지 사례는 다음과 같다.
모델 탈취: 앞서 언급한 OpenAI 사례처럼, 한 팀이 20달러도 안 되는 비용으로 프로덕션 OpenAI 모델의 최종 임베딩 프로젝션 레이어를 복원하고 이전까지 비공개였던 히든 차원(hidden dimension)을 확인했다. 그 결과는 의미 있으면서도 한정적이다. 여러 레이어 중 하나만을 복원한 것이며, 연구자들은 API를 통해 프론티어 모델 전체를 재구성하는 것은 여전히 현실적이지 않다고 밝혔다. 그 비용이 동등한 모델을 학습시키는 비용을 초과하기 때문이다. OpenAI는 사전 통보를 받고 API를 수정했다.
학습 데이터 추출: 2023년 말, Google DeepMind와 여러 대학으로 구성된 그룹은 ChatGPT에게 한 단어를 계속 반복하도록 프롬프트를 주면 실제 연락처 정보를 포함한 학습 데이터의 축어적(verbatim) 조각을 내뱉게 만들 수 있음을 발견했으며, 단 몇백 달러로 수 메가바이트를 복구할 수 있었다. 프라이버시 측면에서 심각한 사안이었고, OpenAI는 공개 이후 그 유발 행동을 필터링했다.
오염(Poisoning): 2025년, Anthropic, 영국 AI Security Institute, Alan Turing Institute로 구성된 팀은 약 250개의 악성 문서만으로 6억~130억 파라미터 규모의 모델에 백도어를 심을 수 있음을 발견했으며, 그 개수는 모델 크기와 무관하게 거의 일정했다. 이 발견은 모델이 클수록 비례해서 더 많은 오염 데이터가 필요하다는 기존 가정을 뒤집었다. 연구자들은 한계 역시 직접 밝혔다. 그 백도어는 트리거 문구에 대해 알아들을 수 없는 출력만을 만들어냈으며, 이는 프론티어 모델에서 심각한 위험을 초래할 가능성이 낮은 저위험 행동이라고 설명했다.
아래 그래프는 다양한 위협을 두려움(fear) 대 빈도(frequency) 축 위에 배치한 것을 보여준다.
이 순위가 중요한 이유는 주의력이 유한하기 때문이다. 광범위한 권한을 가진 에이전트를 배포하면서 모델 탈취에만 집중하는 팀은, 드문 공격 하나를 해결하고 흔한 공격 하나는 열어둔 셈이다.
이 "한정적(bounded)"이라는 상태는 현재 시점을 설명할 뿐이다. 공개 가중치 모델을 호스팅하거나, 민감한 데이터로 파인튜닝하거나, 자체 학습 파이프라인을 운영하는 팀에게는 모델의 내부가 제공자가 아니라 자신들의 책임이 되므로, 이런 공격들의 우선순위가 높아진다.
내부를 겨냥한 공격은 지도의 가장자리에 위치한다. 모델이 외부 행동을 유발하는 중심부야말로 더 큰 위험을 안고 있다.
과도한 권한(Excessive Agency)
LLM 공격이 실질적인 피해를 일으키는 지점은 특정한 구조를 가지며, 시스템 안에서 식별 가능하다. 이를 "치명적 삼요소(lethal trifecta)"라고도 부른다. 이는 하나의 에이전트가 동시에 보유하는 세 가지 능력으로 이루어진다.
- 받은편지함, 고객 데이터베이스, 소스 저장소 같은 민감한 데이터에 대한 접근.
- 웹페이지, 이메일, 공유 문서 등 외부에서 읽어온 모든 것을 포함하는 신뢰할 수 없는 콘텐츠에 대한 노출.
- 아웃바운드 요청, 전송된 메시지, 도구 호출과 같은 데이터를 외부로 보내거나 외부에서 행동할 수 있는 채널.
이 세 가지를 모두 가진 에이전트는 주입된 지시에 의해 민감한 데이터를 공격자에게 전송하도록 조종될 수 있다. 모델 정렬(alignment)은 이 노출을 제거하지 못하는데, 지시처럼 보이는 입력에 부합하는 출력을 만드는 것이 모델이 정상적으로 동작하는 방식이기 때문이다.
이 패턴을 따르는 몇 가지 실제 사례가 있다.
- GitHub의 MCP 서버(MCP는 모델을 외부 도구·데이터와 연결하는 Model Context Protocol)는 공개 저장소에 악의적인 이슈를 등록하는 방식으로 침해되어 피해자의 프라이빗 저장소 데이터를 노출시켰다.
- GitLab의 Duo 어시스턴트는 숨겨진 지시가 담긴 공개 프로젝트를 제공받아 프라이빗 저장소 콘텐츠를 유출하도록 조종되었다.
- 어느 Chevrolet 딜러 챗봇은 SUV를 1달러에 판매하겠다고 동의하도록 조작된 적이 있다.
- 어느 암호화폐 트레이딩 에이전트는 사회공학(social engineering)에 의해 55 ETH를 이체하도록 유도되었다.
이 세 가지 능력 중 하나만 제거해도 노출은 줄어든다. 대개 가장 비용이 적게 드는 방법은 아웃바운드 채널을 차단하거나 에이전트가 접근할 수 있는 범위를 좁히는 것이며, 이는 대체로 더 강력한 필터를 추가하는 것보다 저렴하다.
MCP를 통해 도구를 연결하는 것은 에이전트가 세 번째 능력을 획득하는 가장 흔한 방법이며, 이 프로토콜은 등장한 지 얼마 안 되어 이미 자리 잡은 서버들조차 인젝션에 취약한 설정을 배포한 적이 있다. Anthropic 자체의 공식 Git MCP 서버도 2025년에 인젝션 관련 CVE를 세 건 받았다. 런타임 입력은 위험의 한 원천일 뿐이다. 시스템의 구성 요소는 또 다른 원천이며, 이는 어떤 요청이 도착하기도 전에 이미 침해되어 있을 수 있다.
공급망(Supply Chain)
스택 안의 모든 모델, 어댑터, 벡터 스토어, 도구는 공급자로부터 비롯되며, 이들 중 무엇이든 이미 침해된 채로 도착할 수 있다. 이것이 공급망 표면이며, 위협이 어떤 입력 검증이 실행되기도 전부터 존재하기 때문에 런타임 방어를 우회한다.
일반적인 메커니즘은 단순하다.
많은 모델이 직렬화된(serialized) 파일 형태로 배포되는데, 일부 직렬화 포맷은 파일을 로드할 때 코드를 실행한다. 2025년 초, ReversingLabs는 nullifAI라는 기법을 문서화했는데, Hugging Face에 업로드된 악성 모델이 Python pickle 파일 안에 리버스 셸(reverse shell, 공격자에게 다시 연결을 여는 코드)을 숨긴 사례였다. 이 파일은 플랫폼의 스캐너인 Picklescan을 회피하는 방식으로 압축되어 있었고, 그래서 모델은 깨끗해 보였지만 로드 시 악성 코드를 실행했다.
그 규모는 주목할 만하다. Hugging Face에 호스팅된 모델을 스캔하는 Protect AI는 400만 개 이상을 검사했고, 5만 개 이상의 모델에 걸쳐 약 352,000개를 안전하지 않거나 의심스러운 것으로 표시했다.
출처 확인(provenance)은 완전히 통제 가능한 몇 안 되는 요소 중 하나다. 어떤 모델, 도구, 데이터 소스를 신뢰할지 선택하는 것은 런타임 표면의 대부분과 달리 팀의 손에 달려 있다.
두 가지 완화책이 발전하고 있다.
- 로드 시 코드를 실행하지 않는 더 안전한 직렬화 포맷.
- 패키지 생태계의 서명된 릴리스에 비견되는, 출처를 검증하는 모델 서명(model signing).
심층 방어(Defense in Depth)
어떤 단일 방어도 항상 유효하지 않으며, 이를 뒷받침하는 증거가 충분히 강력하기 때문에 현실적인 목표는 모든 공격을 막는 것에서 성공한 공격에서 살아남는 것으로 바뀐다. 이 작업 태세가 바로 심층 방어(defense in depth)로, 하나의 계층이 실패해도 다른 계층이 이를 봉쇄하도록 독립적인 계층들을 배치하는 것이다.
한 겹의 방어만으로는 충분하지 않다.
2025년 11월, OpenAI, Anthropic, Google DeepMind로 구성된 팀은 프롬프트 인젝션과 탈옥(jailbreaking)에 대해 기존에 제안된 12개의 방어책을 가져와, 적응하고 반복할 수 있는 공격을 사용해 이를 모두 격파한 연구를 발표했다. 강력한 프로덕션 필터조차 측정 가능한 비율의 공격을 통과시키며, 단 한 번의 성공만으로도 충분하다. 하나의 가드레일은 그 측정치가 뒷받침하지 않는 확신을 준다.
더 지속 가능한 접근은 모델이 조작에 저항하도록 기대하는 대신, 모델을 둘러싼 시스템 자체를 제약하는 것이다.
Google DeepMind의 CaMeL이 한 예다. 이는 모델을 신뢰할 수 없는 존재로 취급하고, 행동을 계획하는 별도의 특권(privileged) 구성 요소를 두며, 외부에서 조회한 데이터를 격리(quarantine)해 그 데이터가 스스로 민감한 작업을 촉발하지 못하게 한다.
Meta의 "Agents Rule of Two"는 이보다 단순한 운영상의 버전으로, 사람이 개입하지 않는 한 에이전트가 다음 세 가지 위험한 속성 — 신뢰할 수 없는 입력 처리, 민감한 접근 권한 보유, 외부 행동 수행 — 중 최대 두 가지만 만족하도록 권고한다. Meta는 이 규칙을 완전한 해법이 아니라 최소 권한(least privilege) 원칙에 대한 보완책으로 제시한다.
표준적인 계층들은 각각 지도의 한 단계를 담당한다.
- 입력은 검증되고 제약된다.
- 조회(retrieval) 소스는 깨끗하게 유지된다.
- 각 도구는 작업에 필요한 최소한의 권한으로 범위가 제한된다.
- 모델 출력은 신뢰할 수 없는 것으로 취급되어 다운스트림에서 사용되기 전에 정제된다.
- 모니터링이 이상 징후를 감시한다.
- 사람이 가장 중대한 결과를 낳는 행동을 검토한다.
결론
이 위협 모델은 하나의 사실을 중심으로 조직된다.
언어 모델은 지시와 데이터를 동일한 토큰 시퀀스로 처리하며, 전체 지도는 그 속성으로부터 도출된다.
OWASP Top 10은 목록이 아니라 하나의 경로 위의 위치들이 된다. 널리 알려진 공격들, 모델 탈취와 학습 데이터 추출은 한정적이며 대체로 완화되어 있는 반면, 더 큰 위험은 에이전트가 민감한 데이터와 신뢰할 수 없는 콘텐츠, 외부 채널을 동시에 보유하는 곳에 집중된다. 공급망은 모든 단계의 밑바탕에 깔려 있으며, 시스템을 운영하는 팀이 가장 직접적으로 통제할 수 있는 표면이다. 어떤 단일 계층도 완벽하지 않기 때문에, 심층 방어가 팀이 구현해야 할 현실적인 태세다.
비용은 크다. 계층 하나하나가 지연시간, 비용, 마찰을 더하며, 가장 강력한 완화책인 중대한 행동에 대한 사람의 검토는 시스템이 얼마나 자율적으로 동작할 수 있는지를 제한하기도 한다. 이 트레이드오프는 피할 수 없다.
이 지형은 몇 가지 지속적인 요점으로 압축된다.
- 근본 원인은 지시와 데이터 사이에 경계가 없다는 것이다.
- 명명된 위협들은 고립된 사실이 아니라 파이프라인 위의 위치다.
- 내부 공격은 대체로 한정적이며, 삼요소(trifecta)가 실제 피해가 발생하는 지점을 표시한다.
- 출처 확인(provenance)은 가장 직접적으로 통제 가능한 표면이다.
- 어떤 단일 필터가 아니라 심층 방어가 잔여 위험을 봉쇄한다.
핵심 요약 (20줄)
- 2025년 6월, 이메일 한 통만으로 Microsoft 365 Copilot이 회사 내부 파일을 외부로 유출시킨 EchoLeak(CVE-2025-32711) 사건이 있었다.
- 이 취약점은 소프트웨어 결함이 아니라, 이메일 속 숨은 지시와 사용자 요청을 시스템이 구분하지 못한 데서 비롯됐다.
- LLM 취약점의 근본 원인은 모델이 지시(instruction)와 데이터(data)를 하나의 토큰 시퀀스로 처리하며 둘을 구분하는 표시가 없다는 점이다.
- 전통 소프트웨어는 파라미터화된 쿼리처럼 명령과 데이터를 구조적으로 분리하지만, LLM 컨텍스트는 모든 것이 한 시퀀스에 섞인다.
- 프롬프트 인젝션은 직접 경로(채팅창 입력)와 간접 경로(요약 대상 문서·이메일 등에 숨긴 지시) 두 가지로 모델에 도달한다.
- EchoLeak은 간접 인젝션 사례였으며, 페이로드가 Microsoft의 전용 인젝션 분류기를 통과해 필터링만으로는 한계가 있음을 보여줬다.
- OWASP Top 10 for LLM Applications의 10개 위험 항목은 입력→조회(RAG)→모델→도구→출력→공급망으로 이어지는 파이프라인 위의 위치로 재배치할 수 있다.
- PoisonedRAG 연구는 수백만 문서 지식베이스에 악성 문서 5개만 넣어도 RAG 답변을 90% 성공률로 조작할 수 있음을 보였다.
- 모델 탈취(20달러로 OpenAI 임베딩 레이어 일부 복원), 학습 데이터 추출(ChatGPT 반복 프롬프트로 데이터 유출), 250개 문서로 모델 크기와 무관하게 가능한 백도어 오염 등은 모두 "내부 공격"으로 분류되며 현재는 대체로 한정적·완화된 상태다.
- 실질적 피해가 발생하는 지점은 "치명적 삼요소(lethal trifecta)" — 민감 데이터 접근, 신뢰할 수 없는 콘텐츠 노출, 외부로 나가는 행동 채널을 동시에 가진 에이전트다.
- GitHub MCP 서버가 악성 이슈로 침해되어 프라이빗 저장소를 유출했고, GitLab Duo·Chevrolet 챗봇(1달러 SUV 판매)·크립토 에이전트(55 ETH 이체) 등 실제 사고 사례가 있다.
- 삼요소 중 하나만 제거해도 위험이 줄며, 대개 아웃바운드 채널 차단이나 접근 범위 축소가 필터 강화보다 저렴하다.
- Anthropic 공식 Git MCP 서버조차 2025년 인젝션 관련 CVE를 3건 받을 만큼 MCP는 신생 프로토콜로서 위험을 안고 있다.
- 공급망 공격은 모델이 pickle 파일 등 직렬화 포맷으로 배포되며 로드 시 코드를 실행할 수 있다는 점을 노린다(Hugging Face nullifAI 사례).
- Protect AI는 Hugging Face의 모델 400만 개 이상을 스캔해 약 352,000개를 안전하지 않거나 의심스러운 것으로 표시했다.
- 2025년 11월 OpenAI·Anthropic·Google DeepMind 공동 연구는 기존에 제안된 12개 프롬프트 인젝션 방어책을 적응형 공격으로 모두 격파해, 단일 방어의 한계를 입증했다.
- Google DeepMind의 CaMeL은 모델을 신뢰하지 않고 별도 특권 컴포넌트가 행동을 계획하며 외부 데이터를 격리하는 방식을 취한다.
- Meta의 "Agents Rule of Two"는 에이전트가 신뢰할 수 없는 입력 처리·민감 접근·외부 행동 중 최대 두 가지만 사람 개입 없이 만족하도록 권고한다.
- 근본 해법은 모델이 조작에 저항하길 기대하는 대신 입력 검증, 도구 최소 권한, 출력 정제, 모니터링, 사람 검토를 겹겹이 쌓는 심층 방어(defense in depth)다.
- 출처 확인(provenance) — 어떤 모델·도구·데이터를 신뢰할지 선택하는 것 — 은 팀이 가장 직접적으로 통제할 수 있는 유일한 표면이다.