AI 에이전트 메모리는 출처만으로 믿을 수 없다
가 기억해 둔 정보나 검색해 온 자료를 믿게 만들려면, 단순히 “출처가 확인됐다”는 표시만으로는 부족하다. 에서 값의 중요도를 매기기, 여러 기록으로 확인하기, 더 최신 기록을 우선하기, 성공한 결과에 점수를 주기 같은 네 가지 방어를 시험했지만, 공격자가 방어 방식을 알고 있으면 모두 뚫렸다. 이유는 간단하다.
기록의 가치, 확인 근거, 기록된 시간, 성공 여부 같은 판단 재료를 결국 기록을 쓰는 쪽이 꾸며 넣을 수 있기 때문이다. 출처 정보와 비용은 공격자가 마음대로 만들기 어렵지만, 출처는 “누가 썼는지”만 확인할 뿐 “내용이 사실인지”까지 보장하지 않는다. 실제 계정이나 정상 세션 안에서 거짓 기억을 넣으면 출처 검사는 통과할 수 있다.
비슷한 실험들에서도 가 맞는 문장을 인용하면서도 약 30%는 잘못된 위치를 출처로 붙였고, 출처나 확인 도 공격자가 위조할 수 있었다. 또 한 번 저장된 사실이 나중에 틀려져도, 현재 문맥과 모순이 없으면 일반 평가 도구는 오래된 정보 문제를 잡기 어렵다.
핵심 포인트
- 방어 네 가지가 방어 방식을 아는 공격자에게 모두 실패했다.
- 출처 검사는 작성자를 확인할 수 있지만 내용의 참거짓은 보장하지 못한다.
- 는 맞는 문장을 찾고도 잘못된 출처 위치를 붙일 수 있다.
- 출처, 확인, 성공 같은 도 기록 작성자가 꾸며 넣을 수 있다.
- 로 토큰을 아끼려면 중요한 영향 단계에서 별도 근거 확인을 넣어야 한다.
이 사건을 다룬 원문 (7)
- r/RagAI 에이전트 메모리는 출처만으로 믿을 수 없다 ↗
- Hacker NewsShow HN: Halo – open-source, tamper-evident runtime evidence for AI agents ↗
- r/LLMDevsI stopped trusting LLM-inferred memory after it poisoned my sessions — here's the evidence-gated redesign, plus the two harness primitives it pairs with ↗
- r/RagMy RAG quotes the right text but cites the wrong source ~30% of the time :/ ↗
- r/RagYour RAG's "source" and "corroboration" metadata don't stop memory poisoning — the attacker writes those fields too (10-model test + runnable probe) ↗
- r/RagWe tried to poison our own RAG store — the retrieval-time defenses didn't generalize ↗
- r/LLMDevsThe agent failure mode no eval catches: acting on a fact that was true when it was cached and wrong when it was used ↗