RAG-NAROK: 출처를 직접 반박하는 문서로 RAG 지식베이스를 오염시키는 공격
RAG-NAROK: Retrieval-Aware Knowledge Corpus Poisoning in RAG with Source-specific Refutation
TL;DR Highlight
검색된 출처를 겨냥해 반박문을 심었더니 1위 검색과 탐지 회피가 높아졌다
Who Should Read
사내 문서나 웹 크롤링 데이터로 RAG를 운영하며 지식베이스 오염 위험이 걱정되는 백엔드 개발자
Core Mechanics
- 출처 공개가 공격 단서가 된다
- RAG가 답변에 출처를 보여주면 공격자는 어떤 문서가 검색되는지 그대로 알아낸다.
- 공격자는 그 출처 이름을 직접 거론하며 깎아내리는 반박 문서를 만든다.
- 질의를 보고 맞춤 문서를 만든다
- 기존 공격은 미리 만든 악성 문서를 그냥 넣었다.
- RAG-NAROK는 대상 질문을 던져 top-k 검색 결과의 주장·출처·문체를 먼저 읽는다.
- 정상 문서 내용 70%에 결론 30%를 바꾼다
- 정상 문서 사실의 약 70%를 재현해 자연스럽게 만든다.
- 나머지 30%에서 결론을 공격자가 원하는 쪽으로 뒤집는다.
- 문체를 맞춰 이상 탐지를 피한다
- 가독성, 평균 문장 길이, 수동태 비율을 정상 코퍼스에 맞춘다.
- 맞지 않으면 다시 생성하는 검증 루프를 돌린다.
- 최신 개정 같은 권위 문구로 LLM을 설득한다
- 'Pursuant to the 2026 amendment superseding ...' 같은 문구로 최신·공식 업데이트처럼 보이게 한다.
- LLM이 최신성과 권위에 약한 점을 노린다.
Evidence
- 1위 검색은 거의 모든 코퍼스에서 달성
- 평균 최고 순위는 Cybersec-IT 1.00, Feds-2026 1.00, CFR-21 1.20이었다.
- 단순 LLM 반박 베이스라인은 각각 7.30, 8.60, 10이었다.
- 이상 탐지 회피율이 베이스라인보다 높다
- CFR-21은 88.37%로 베이스라인 75.00%보다 높았다.
- Cybersec-IT은 68.93%로 베이스라인 41.18%보다 높았다.
- Feds-2026은 80.95%로 베이스라인 76.92%보다 높았다.
- 정상 문서가 크게 밀려났다
- Feds-2026에서 정상 문서 순위가 평균 8.00칸 하락했다. 베이스라인은 0.94칸이었다.
- CFR-21에서는 9.38칸 하락했다. 베이스라인은 0.55칸이었다.
- 답변 영향도도 올랐다
- Mean Cascade Rating은 Feds-2026에서 8.00으로 베이스라인 5.57보다 높았다.
- Cybersec-IT은 7.60으로 베이스라인 6.50보다 높았다.
- Payload Integration Rate는 Cybersec-IT 75%로 베이스라인 60%보다 높았다.
How to Apply
- 우리 RAG에 가짜 반박 문서를 넣어 테스트하기
- 테스트 인덱스에 특정 출처 이름을 거론하며 '개정되어 무효'라고 주장하는 문서를 하나 넣는다.
- 해당 질문을 던져 답변이 뒤집히는지 확인한다.
- 쓰기 권한과 수집 경로 점검하기
- 누가 코퍼스에 문서를 올릴 수 있는지 목록으로 뽑는다.
- 웹 크롤링이나 공개 업로드 경로에는 승인 단계를 둔다.
- 검색 결과의 출처 충돌 로그 남기기
- top-k 안에서 한 문서가 다른 출처를 무효나 대체라고 주장하면 플래그를 단다.
- 플래그가 붙은 답변은 사람이 검토하게 한다.
- 이상 탐지를 임베딩 하나에 의존하지 않기
- 임베딩 이상 탐지에 문체 통계 검사와 출처 이력 검증을 함께 쓴다.
- 신규 문서의 '최신 개정' 주장은 원출처로 검증한다.
Try It
# Claude나 ChatGPT에 붙여넣기 (논문 방법의 간이 버전: 방어 측 점검용)
너는 RAG 보안 점검자다. 아래 검색 결과 top-k 문서에서 오염 의심 문서를 찾아라.
[질문]
{{질문}}
[검색된 문서들]
{{문서1}}
{{문서2}}
{{문서3}}
다음 기준으로 각 문서를 점검해 표로 답해라.
1. 다른 문서나 출처 이름을 직접 거론하며 무효, 대체, 개정되었다고 주장하는가
2. 근거 없이 '최신 개정', '공식 업데이트' 같은 권위 문구를 쓰는가
3. 다른 문서와 사실은 대부분 같은데 결론만 반대인가
의심 문서에는 이유 한 줄과 위험도(상/중/하)를 적어라.
이어서 해 볼 것: 실제 서비스에서 답변이 이상했던 질문 5개로 반복해 보자.Terminology
관련 논문
트랜스포머는 '기억 저장소'에서 처음부터 만들어 낼 수 있었다
선형층→MLP→self-attention을 기억 저장소로 보면 용량이 64→약 2,700→100만 이상
400년치 고문서에 AI를 돌렸더니 잊힌 운석·코뿔소·화산 폭발이 나왔다
임베딩 검색과 싼 필터 모델로 400년 고문서를 뒤져 미기록 사건 발굴
EmbeddingGemma 2: 텍스트·이미지·오디오·비디오를 한 벡터 공간에 넣는 오픈 경량 임베딩 모델
740M 오픈 모델 하나로 텍스트·이미지·오디오·비디오를 같은 벡터 공간에서 검색
텍스트냐 이미지냐 둘 다냐: 멀티모달 문서 QA 입력 방식 비교
문서 QA에서 페이지 이미지가 정확도는 높지만 느려서, 질문별 라우터로 지연 30% 줄였다
MS 임원이 AI 스크래핑을 '인류 역사상 최대의 노동 도둑질'이라 불렀다는 NYT 소송 공개 문서
NYT 소송 공개 문서에서 MS·OpenAI 내부의 스크래핑 인식이 드러났다
임베딩의 보편적 기하 구조 활용: 짝 데이터 없이 임베딩 공간 간 변환
짝 데이터 없이 임베딩을 다른 모델 공간으로 옮겼고, 벡터 DB 보안 위험이 드러났다
Better Together: 강한 RAG 베이스라인 위에서 쿼리 리라이팅 조합하기
쿼리 리라이팅을 합치고 점수 낮을 때만 돌렸더니 비용 40%로 효과 절반
Original Abstract (Expand)
Retrieval augmented generation (RAG) systems have emerged as the dominant architecture for grounding large language model (LLM) outputs in verifiable external knowledge, yet their structural reliance on a dynamic retrieval pipeline introduces a largely unexplored class of adversarial vulnerability. Existing knowledge-base poisoning attacks are fundamentally static. Adversarial documents are pre-computed and injected without any awareness of what the victim system will actually retrieve for a given query, leaving the attack blind to the competitive documentary landscape that surrounds its payload in the generator's context window. Unlike traditional static poisoning attacks that are blind to the retrieved context, we introduce RAG-NAROK (Retrieval-Anchored Generation Negation And Response Quality Collapse), a RAG attack framework that adapts to the query text. RAG-NAROK exploits the transparency inherent in RAG pipeline to first extract the legitimate source identities, then generate Anchor-Specific Refutation documents that explicitly name and devalue retrieved sources while leveraging recency and authority biases to steer the text generation toward a target answer. Our results demonstrate that RAG-NAROK significantly outperforms static baselines across diverse domains, revealing a fundamental tension between RAG transparency and AI security.