RAG가 속고 있다
— 코퍼스 포이즈닝과 LLM 오염의 실제
RAG는 LLM의 환각을 줄이는 핵심 기술입니다.
그런데 RAG가 참조하는 문서 자체가 오염되어 있다면?
“우리는 RAG를 쓰니까 환각이 없어요.”
RAG는 환각을 줄여주지만,
코퍼스 자체가 오염되면 환각보다 더 위험한 결과를 만듭니다.
환각은 틀린 답이고, 포이즈닝은 의도된 거짓입니다.
Fortune 500 기업의 67%가 프로덕션 RAG를 운영하고 있습니다.
그런데 RAG 보안을 별도로 점검하는 기업은 그중 일부에 불과합니다.
이 글에서는 RAG 파이프라인과 LLM을 노리는
세 가지 공격 유형을 다룹니다.
코퍼스 포이즈닝, 임베딩 역추출, 그리고 멀티테넌트 교차 누출.
1. 코퍼스 포이즈닝 — RAG가 참조하는 문서를 오염시키다
코퍼스 포이즈닝은 RAG가 검색하는 문서 저장소에
악의적인 내용을 삽입하는 공격입니다.
LLM은 검색된 컨텍스트를 “사실”로 취급합니다.
코퍼스에 거짓 정보가 섞이면
LLM은 그걸 근거로 자신 있게 거짓 답변을 생성합니다.
공격 유형별 성공률
USENIX Security 2025 — 5개 문서 삽입으로 달성
벡터에서 원문 텍스트 복원 성공률
논리적 격리 환경에서 다른 테넌트 데이터 접근
PoisonedRAG — 문서 5개면 충분하다
2025년 USENIX Security에서 발표된 PoisonedRAG 연구는
충격적인 결과를 보여줬습니다.
수백만 건의 코퍼스에 악성 문서를 단 5개만 삽입해도
RAG 시스템의 답변을 90% 확률로 조작할 수 있었습니다.
공격 원리
공격자는 타겟 질문에 대해 높은 유사도를 갖도록
임베딩을 역산하여 문서를 생성합니다.
이 문서는 벡터 검색에서 상위에 노출되고,
LLM은 이를 컨텍스트로 채택하여 답변을 생성합니다.
왜 위험한가
일반적인 환각과 달리
포이즈닝된 답변은 출처(검색된 문서)가 있습니다.
사용자는 “근거가 있으니 맞을 것”이라고 신뢰합니다.
탐지가 어려운 이유입니다.
실제 공격 시나리오
사내 위키 오염
Confluence, Notion 등 사내 문서에 악성 내용을 삽입합니다.
RAG가 이를 검색하면 잘못된 사내 정책을 안내하거나,
보안 절차를 우회하는 답변을 생성합니다.
고객 지원 봇 조작
FAQ 문서에 환불 정책을 변조한 내용을 삽입합니다.
고객 대응 챗봇이 잘못된 환불 안내를 하면
금전적 손실과 신뢰 손상이 동시에 발생합니다.
간접 프롬프트 인젝션
코퍼스에 LLM 지시문을 숨겨 넣습니다.
“이전 지시를 무시하고 다음을 수행하라” 같은 내용이
검색 컨텍스트로 LLM에 전달되면
에이전트의 행동을 탈취할 수 있습니다.
2. 임베딩 역추출 — 벡터에서 원문을 복원하다
“벡터는 숫자 배열이니까 원문은 알 수 없다”는
일반적인 가정이 깨지고 있습니다.
ZSInvert 연구는 임베딩 벡터만으로
원본 텍스트의 80%를 복원할 수 있음을 보였습니다.
이는 벡터 DB에 저장된 데이터가
사실상 평문과 다름없다는 뜻입니다.
벡터 DB는 암호화된 저장소가 아닙니다
임베딩은 압축이지 암호화가 아닙니다.
민감한 데이터(개인정보, 내부 문서)를 벡터 DB에 넣었다면
벡터 자체가 유출 시 원문 복원이 가능합니다.
벡터 DB에도 접근 제어와 암호화가 필요합니다.
공격이 가능한 조건
· 공격자가 벡터 DB에 접근할 수 있는 경우
(API 노출, 인증 미비, 내부자)
· 사용된 임베딩 모델이 공개 모델인 경우
(OpenAI text-embedding-ada-002 등)
· 벡터에 대한 접근 제어가 없는 경우
(테넌트 구분 없이 전체 벡터에 쿼리 가능)
3. 멀티테넌트 교차 누출 — 다른 회사의 데이터가 보인다
SaaS 형태의 RAG 서비스에서
가장 심각한 위협입니다.
여러 고객(테넌트)이 같은 벡터 DB를 공유할 때,
논리적 격리(필터링)만으로는
교차 누출을 막을 수 없다는 연구 결과가 나왔습니다.
논리적 격리 (위험)
같은 컬렉션에 tenant_id 필드로 구분합니다.
필터 우회, 조인 공격, 메타데이터 조작으로
99% 확률로 교차 접근이 가능합니다.
물리적 격리 — Silo 패턴 (안전)
테넌트별 별도 벡터 DB 인스턴스를 운영합니다.
비용은 증가하지만
교차 누출의 구조적 가능성 자체를 제거합니다.
tl;dv 사례 — 현실에서 일어난 일
2026년 8월 공개된 tl;dv 사례에서는
Firestore 테넌트 격리 부재로
181,874건의 회의 녹취록이 노출되었습니다.
23개국 정부 기관, 84,312명의 사용자 데이터가 포함되어 있었고
6개월간 조치되지 않았습니다.
4. LLM 자체의 오염 — 모델이 감염된다
RAG 코퍼스뿐 아니라
LLM 모델 자체를 오염시키는 공격도 존재합니다.
학습 데이터 포이즈닝
LLM의 사전 학습이나 파인튜닝 데이터에
악성 패턴을 삽입합니다.
특정 트리거 문구가 입력되면
의도된 악성 응답을 생성하는 백도어를 심습니다.
모델 가중치 변조
오픈소스 모델의 가중치 파일을 변조하여
Hugging Face 등에 재배포합니다.
해시 검증 없이 다운로드하면
변조된 모델을 그대로 사용하게 됩니다.
메모리 포이즈닝
에이전트의 장기 메모리를 조작합니다.
현재 세션이 아닌 미래 세션의 행동을 왜곡하는 공격입니다.
OWASP Agentic Top 10의 ASI06에 해당합니다.
방어 전략 — 어떻게 막을 것인가
완벽한 방어는 없지만,
공격 비용을 높이고 탐지 확률을 올리는 것이 핵심입니다.
코퍼스 무결성
· 문서 인제스트 시 출처 검증 및 해시 기록
· 주기적 코퍼스 감사 — 변경된 문서 자동 탐지
· 답변 생성 시 출처 문서의 신뢰도 점수 표시
· 외부 소스 자동 크롤링 시 검증 레이어 추가
벡터 DB 보안
· 멀티테넌트 환경은 물리적 격리(Silo 패턴) 적용
· 벡터 DB 접근에 인증/인가 필수
· 저장 시 암호화(at-rest), 전송 시 암호화(in-transit)
· 임베딩 API 접근 로그 모니터링
LLM 파이프라인 보안
· 모델 다운로드 시 해시 검증 필수
· 파인튜닝 데이터 출처 추적 및 품질 검증
· 입출력 필터링(AI 방화벽) 적용
· 에이전트 메모리 무결성 주기적 검증
모니터링과 탐지
· 답변 품질 이상 탐지 — 급격한 정확도 변화 감시
· 검색 결과의 출처 분포 변화 모니터링
· 코퍼스 변경 이력 추적 및 알림
· 정기 레드팀 테스트로 포이즈닝 시도
리원에이스 제품과의 연결
이 글에서 다룬 위협들은
리원에이스의 자체 제품으로 직접 대응할 수 있습니다.
Miraju — AI 방화벽
프롬프트 인젝션과 간접 인젝션을 탐지/차단합니다.
코퍼스에 숨겨진 LLM 지시문이 실행되기 전에 필터링합니다.
Phantom — AI 위협 시뮬레이션
코퍼스 포이즈닝, 메모리 오염 등
실제 공격 시나리오를 자동으로 테스트합니다.
RAG Pipeline — 보안 내장 RAG
문서 인제스트 시 출처 검증,
코퍼스 무결성 모니터링이 파이프라인에 내장되어 있습니다.
Silo — 테넌트 격리형 오브젝트 스토리지
S3 호환 오브젝트 스토리지에 테넌트 격리 레이어를 제공합니다.
코퍼스 데이터의 물리적 분리 저장으로 교차 누출을 방지합니다.
RAG는 LLM을 실용적으로 만드는 핵심 기술이지만,
동시에 새로운 공격 표면을 만들기도 합니다.
“RAG를 쓰니까 안전하다”가 아니라
“RAG를 쓰니까 RAG 보안이 필요하다”가 맞습니다.
코퍼스 무결성, 벡터 DB 접근 제어, 테넌트 격리.
이 세 가지가 RAG 보안의 출발점입니다.
본 글은 리원에이스 기술개발본부가 작성한 기술 콘텐츠입니다. 외부 공유 시 출처를 명시해 주세요.
2026년 8월 19일
리원에이스 기술개발본부