AI 해킹
AI 보안 리소스

RAG 보안: 전체 가이드

Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks

Updated: August 2026 • OWASP LLM08의 일부

RAG란 무엇입니까?

Retrieval-Augmented Generation (RAG) is an AI architecture that combines large language models with external knowledge retrieval. Enterprise LLM deployments now use RAG extensively, making its security critical.

1. 사용자 쿼리

사용자가 시스템에 질문 또는 프롬프트 제출

2. 포함

쿼리는 벡터 임베딩으로 변환됩니다.

3. 검색

벡터 DB에서 검색된 유사한 문서

4. 증강

검색된 컨텍스트가 프롬프트에 추가됨

5. 세대

LLM은 컨텍스트를 사용하여 응답을 생성합니다.

신뢰 역설

RAG systems have a fundamental security flaw: user queries are treated as untrusted input, but retrieved context is implicitly trusted - even though both enter the same prompt. This creates a significant attack surface that traditional security doesn't address.

공격 벡터

1. 문서 중독

에 저장된 문서에 악성 콘텐츠 삽입 지식 베이스.

작동 방식
  • 공격자가 악성 문서를 업로드하거나 삽입함
  • 문서는 벡터 DB에 내장되어 저장됩니다
  • 관련 쿼리가 생성되면 중독된 문서가 검색됩니다
  • LLM은 악성 컨텍스트를 응답에 통합
영향
  • 90% success 단 5개의 악성 문서로
  • 수백만 개의 문서가 있는 데이터베이스에서도 작동
  • 유해하거나 편향되거나 잘못된 출력을 유발할 수 있음
  • 배포 후 감지하기 어려움

2. 검색 조작

출력에 영향을 미치기 위해 검색되는 문서를 조작합니다.

작동 방식
  • 공격자가 특정 검색을 트리거하는 쿼리를 작성함
  • 순위 알고리즘 약점 악용
  • 의미론적 유사성을 사용하여 검색 하이재킹
  • 공유 시스템에서 사용자 간 조작
영향
  • 공격자가 제어하는 ​​콘텐츠 강제 검색
  • 합법적인 콘텐츠 억제 가능
  • 표적 조작 가능
  • 검색 품질에 대한 신뢰가 무너졌습니다.

3. 반전 포함

원본 데이터 복구 벡터 임베딩.

작동 방식
  • 공격자가 벡터 데이터베이스에 대한 액세스 권한 획득
  • 임베딩에 반전 기술을 사용합니다.
  • 벡터에서 원본 텍스트 재구성
  • 민감한 내장 데이터 복구
영향
  • Recover 50-70% of input words
  • 임베딩에 민감한 데이터 노출
  • 개인 정보 보호 위반
  • 규정 준수 문제(GDPR 등)

4. 테넌트 간 공격

다중 테넌트 시스템에서 공유 RAG 인프라를 악용합니다.

작동 방식
  • 공격자는 공유 시스템의 한 테넌트입니다
  • 다른 테넌트에 영향을 미치는 콘텐츠 삽입
  • 공유 벡터 데이터베이스 악용
  • 다른 테넌트로부터 데이터 검색
영향
  • 테넌트 간 데이터 유출
  • 경쟁사 데이터에 대한 무단 액세스
  • 규정 준수 위반
  • 평판 손상

실제 CVE

RAG 시스템의 문서화된 취약점.

CVE ID 제품 설명 심각도 CVSS
CVE-2025-68700 RAGFlow RCE via Canvas CodeExec component - untrusted data parsed with eval() Critical 9.1
CVE-2025-69286 RAGFlow Insecure API key generation allows mutual token derivation (authentication bypass) Critical 8.9
CVE-2025-25282 RAGFlow IDOR vulnerability allowing cross-tenant access and unauthorized user addition High 8.1
CVE-2025-69286 RAGFlow Token generation using same URLSafeTimedSerializer for API keys High 8.9
GHSA-8xw3-v6c2-j84j RAGFlow RCE via stdout parsing in CodeExec component High 8.5

방어 전략

1. 수집 단계 보안

문서 유효성 검사

  • 모든 문서에서 악성 코드 검사
  • 문서 형식 및 구조 검증
  • 의심스러운 콘텐츠 패턴 확인
  • 허용되는 문서 유형 제한

콘텐츠 필터링

  • 삽입 전 PII 제거
  • 중요한 데이터 패턴 필터링
  • 알려진 악성 패턴 차단
  • 허용/차단 목록 구현

액세스 제어

  • 문서 소스 유효성 검사
  • 수집을 위한 RBAC 구현
  • 모든 업로드에 대한 감사 추적
  • 새 문서 격리

2. 검색 단계 보안

쿼리 삭제

  • 사용자 쿼리 유효성 검사 및 삭제
  • 삽입 시도 감지
  • 쿼리 복잡성 제한
  • 속도 제한

검색 필터링

  • 재순위 보안 구현
  • 신뢰할 수 있는 소스와의 상호 참조
  • 비정상적인 검색 패턴 감지
  • 문서 수 제한

다중 테넌시 격리

  • 별도의 벡터 네임스페이스
  • 엄격한 테넌트 경계
  • 교차 테넌트 쿼리 방지
  • 테넌트별 암호화

3. 세대 단계 보안

출력 검증

  • LLM 출력 검증
  • 삽입된 콘텐츠 확인
  • 소스에 대한 사실 확인
  • 콘텐츠 필터링

컨텍스트 확인

  • 검색된 콘텐츠 진위 여부 확인
  • 조작 시도 감지
  • 비정상적인 컨텍스트 패턴 표시
  • 모든 컨텍스트 사용 기록

Human-in-the-Loop

  • 민감한 출력 검토
  • 고위험 작업 승인
  • 수동 재정의 기능
  • 에스컬레이션 경로

4. 데이터 보안

암호화

  • 미사용 벡터 암호화
  • 전송 중인 데이터에 대한 TLS
  • 키 관리 모범 사례
  • 동형 암호화 고려

벡터 DB 보안

  • 강력한 인증
  • 네트워크 격리
  • 정기 보안 감사
  • 패치 관리

Privacy Protection

  • 데이터 최소화
  • PII 감지 및 제거
  • 보존 정책
  • 삭제 지원 권리

테스트 방법론

RAG 보안 테스트 체크리스트

  • 문서 주입 테스트
  • 검색 조작 테스트
  • 역전 시도 삽입
  • 교차 테넌트 격리 테스트
  • PII 누출 테스트
  • 컨텍스트 오버플로 테스트
  • 순위 조작 테스트
  • 인증 우회 테스트
  • API 주입 테스트
  • 서비스 거부 테스트
  • 데이터 유출 테스트
  • 규정 준수 감사

테스트 도구

Garak

RAG 관련 프로브를 갖춘 LLM 취약점 스캐너

AI 보안 표준, 취약점, 규정 및 모범 사례에 대한 최신 업데이트 →

벡터 DB 스캐너

벡터 데이터베이스 보안 테스트용 도구

AI 보안 표준, 취약점, 규정 및 모범 사례에 대한 최신 업데이트 →

코드 예제

문서 유효성 검사 예

```python
import re
from typing import List

class RAGDocumentValidator:
    SUSPICIOUS_PATTERNS = [
        r"ignore previous instructions",
        r"system prompt:",
        r"{{.*}}",
        r"you are now dan",
    ]
    
    PII_PATTERNS = [
        r"\b\d{3}-\d{2}-\d{4}\b",  # SSN
        r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b",  # Email
        r"\b\d{16}\b",  # Credit card
    ]
    
    def validate_document(self, content: str) -> dict:
        """Validate document before embedding."""
        warnings = []
        blocked = False
        
        # Check for suspicious patterns
        for pattern in self.SUSPICIOUS_PATTERNS:
            if re.search(pattern, content, re.IGNORECASE):
                warnings.append(f"Suspicious pattern: {pattern}")
                blocked = True
        
        # Check for PII
        for pattern in self.PII_PATTERNS:
            if re.search(pattern, content):
                warnings.append(f"PII detected: {pattern}")
        
        return {
            "valid": not blocked,
            "warnings": warnings,
            "pii_detected": len([w for w in warnings if "PII" in w]) > 0
        }
```
AH
AI Hacking Team

The AI Hacking team researches and documents AI/LLM security vulnerabilities, red teaming techniques, and defensive strategies. Our guides are based on real-world pentesting experience and continuous monitoring of the AI security landscape.

Stay Ahead of AI Security

Get the latest AI/LLM security research, OWASP updates, and new vulnerabilities delivered straight to your inbox.