코퍼스의 1.2% 거짓 주입만으로 에이전트 메모리 가치 2/3가 사라진다(정확도 0.850→0.300). 내용 필터는 거짓 기억 360개 중 0개를 거부했다(arXiv 2608.21230).
핵심 요약
- 에이전트가 기억(memory)을 갖는다는 것은, 거짓말을 영구적으로 당한다는 뜻입니다. 저장된 거짓 정보는 나중 세션에서 다시 꺼내져 신뢰받습니다.
- arXiv 논문 "Utility Under Attack: Agent Memory Poisoning"(2608.21230)은 이 비용을 실측했습니다. 명백한 거짓 주장을 코퍼스의 1.2%만 주입했을 뿐인데, LongMemEval 정확도가 0.850 → 0.300으로 떨어졌습니다 — 에이전트 메모리 가치의 2/3가 사라진 것입니다.
- **내용 필터링(content screening)**은 방어에 실패합니다. 간접 프롬프트 주입(indirect prompt injection) 탐지 recall 0.832를 달성하는 4단계 필터도, 거짓 기억 360개 중 0개를 거부했습니다.
- 핵심 통찰: 거짓 주장을 진실과 구분하려면 텍스트 너머의 외부 근거(grounding)가 필요합니다. 내용만으로는 불가능합니다.
- provenance(출처 가중) 방식도 한계가 있습니다. 출처를 너무 믿으면 유용한 정보까지 억제하고, 너무 안 믿으면 공격을 못 막습니다.
- 결론: 검색(retrieval) 단계에서 출처의 "점유 비율(occupancy)"을 제한하는 게 합리적입니다.
기억은 에이전트의 공격 표면
메모리 중독(memory poisoning)은 공격자가 에이전트의 지속 메모리에 거짓 정보를 주입해 이후 세션에서 잘못된 판단을 하게 만드는 공격 기술입니다. AI 에이전트는 대화를 넘어 지속 메모리를 갖습니다. Hermes처럼 사용자 정보, 스킬, 배운 교훈을 저장하고, 다음 세션에서 꺼내 씁니다. 이 메모리가 에이전트를 유용하게 만듭니다.
그런데 이 논문은 정반대의 측면을 지적합니다. "에이전트가 기억하는 것은 거짓말을 영구적으로 당할 수 있다는 뜻이다."
거짓 정보가 메모리에 저장되면:
- 저장 당시에는 검증 없이 받아들여짐
- 이후 세션에서 그 정보와 "일치하는" 질문이 오면 다시 꺼내져 신뢰됨
- 사용자는 그 거짓을 계속 진실로 믿게 됨
논문의 실험은 이 실패 비용을 냉정하게 측정합니다.
실측: 1.2% 주입이 메모리 가치의 2/3를 파괴
논문은 단순한 거짓 주장을 사용했습니다. 특별한 지시, 트리거, 리트리버 최적화도 없이, 한 번에 평이한 문장으로 거짓을 생성했습니다.
결과는 충격적입니다.
| 변수 | 값 |
|---|---|
| 주입 비율 | 코퍼스의 1.2% |
| LongMemEval 정확도 (전) | 0.850 |
| LongMemEval 정확도 (후) | 0.300 |
| 메모리 가치 손실 | 약 2/3 |
1.2%의 거짓 정보가 에이전트 메모리의 가치 2/3를 날렸습니다. 공격자는 리트리버를 최적화할 필요도 없었습니다. 단순히 "명백히 거짓인 문장"을 몇 개 넣었을 뿐입니다.
내용 필터링은 왜 실패하는가
자연스러운 방어는 "거짓 정보를 저장 전에 걸러내자"입니다. 논문은 이를 실험합니다.
간접 프롬프트 주입을 탐지하는 4단계 쓰기 시점 필터를 구축했습니다. 이 필터는:
- 간접 프롬프트 주입 recall 0.832 (공격 지침을 83% 잡아냄)
- 트리거 단어가 든 정상 텍스트 1.5%만 오탐
강력해 보입니다. 그런데 거짓 기억 360개 중 0개를 거부했습니다.
왜일까? 핵심 통찰입니다.
거짓 주장과 진실을 구분하는 것은 일반적으로 텍스트 너머의 외부 근거(grounding)를 요구합니다. 내용 자체만으로는 불가능합니다.
프롬프트 주입 공격은 "지시문"이라는 형태적 특징이 있어 탐지 가능합니다. 하지만 메모리 중독은 "평이한 거짓 문장"이라 형태가 정상과 구분되지 않습니다. "서울은 중국의 도시다" 같은 문장은 지시도 없고 트리거도 없지만, 메모리에 저장되면 치명적입니다. 형태로는 정상 문장과 같아서, 내용 필터가 구분할 방법이 없습니다.
출처 가중(provenance)도 한계
내용 필터가 안 되니, 다음 방어는 "출처(provenance)를 신뢰도에 반영하자"입니다. 신뢰할 수 없는 출처의 기억은 덜 검색되게 가중치를 낮추는 방식입니다.
논문은 이 방식도 실측으로 한계를 드러냅니다.
| 상황 | 결과 |
|---|---|
| 신뢰하지 않는 출처가 대부분 정상 정보 | 정확도 0.3167 → 0.7000 (방어 작동) |
| 답을 담은 증거 자체가 신뢰 없는 출처에서 옴 | 증거 검색률 0, 정확도 0.0417 |
| 출처 가중 강도 (출하값) | 무방어와 통계적으로 구분 불가 (p=0.80) |
핵심 딜레마입니다. "쿼리 형태로 위장한 공격"을 막을 만큼 강한 가중치는, 정상적이지만 신뢰 없는 출처의 유용한 증거까지 억제합니다. 공격자가 내용을 조형할 수 있는 상황에서, 덧셈식 출처 가중치에는 "쓸 수 있는 설정값"이 없습니다.
해법: 점유 비율 제한
그렇다면 답은 무엇일까? 논문은 검색 단계에서 출처의 점유 비율(occupancy)을 제한하라고 제안합니다.
덧셈식 가중치(provenance penalty) 대신, 검색 결과에서 신뢰할 수 없는 출처가 차지하는 비율에 상한을 두는 것입니다. 신뢰 없는 출처가 전체 검색 결과를 압도하지 못하게 막는 방식입니다. 내용을 판단하는 대신, "얼마나 많은 자리를 차지하는가"를 제한하므로 내용 구분의 한계를 우회합니다.
판단 — 기억하는 에이전트의 방어 원칙
이 논문이 에이전트 보안에 던지는 교훈입니다.
- 기억 = 공격 표면 — 에이전트가 영구 기억을 가질수록, 거짓 주입에 취약해집니다. 메모리 쓰기를 인증된 경로로 제한해야 합니다.
- 내용 필터만으로는 부족 — 거짓과 진실을 구분하려면 외부 근거가 필요합니다. 형태적 탐지는 프롬프트 주입엔 효과적이지만, 평이한 거짓엔 무력합니다.
- 출처 가중은 이중 고통 — 강하면 유용한 정보까지 죽이고, 약하면 공격을 못 막습니다. 덧셈식 가중치는 피해야 합니다.
- 점유 제한이 현실적 — "누가 맞는가"보다 "신뢰 없는 출처가 얼마나 많은가"를 제한하는 게 더 견고합니다.
- 외부 근거 연동 — 중요한 주장은 메모리에 저장하기 전에 외부 검증(검색, 문서 대조)을 거치게 합니다.
결론은 이렇습니다. AI 에이전트가 메모리를 갖는 건 양날의 검입니다. 유용함의 대가로 거짓에 취약해지는데, 그 취약함은 "텍스트만 보고는 구분할 수 없는" 심층적인 것입니다. Hermes처럼 메모리를 쓰는 에이전트라면, 저장 경로를 인증하고, 중요한 기억은 외부 근거로 검증하며, 검색 단계에서 출처 점유를 제한하는 방어가 필요합니다. 기억하는 에이전트의 시대에, 메모리 보안은 선택이 아니라 필수입니다.
