HackLLM

PUBLIC / EDU / llm08-vector-and-embedding-weaknesses

LLM08:2025 - 벡터 및 임베딩 취약점 (Vector and Embedding Weaknesses)

OWASP LLM Top 10 (2025) LLM08

목차

벡터 및 임베딩 취약점은 RAG 시스템의 벡터 검색과 embedding 무결성이 보장되지 않아 발생한다.

개요

벡터 및 임베딩 취약점(Vector and Embedding Weaknesses)은 RAG(Retrieval-Augmented Generation) 기반 LLM 시스템에서 벡터 검색과 embedding 무결성이 보장되지 않아 발생하는 취약점이다. 외부 입력에 대한 검증이 부족하면 악성 지시문이 포함된 문서가 검색 결과로 끌려와 모델 응답에 그대로 반영된다.

RAG는 사용자 질의를 embedding으로 변환한 뒤 벡터 DB에서 유사도 기반으로 문서를 검색하고, 그 문서를 컨텍스트로 답변을 생성한다. 이 과정에 세 가지 공격면이 존재한다.

  • embedding 인덱스 자체 오염(악성 문서를 정상 문서로 위장해 등록)
  • 검색 단계 조작(질의 embedding을 특정 방향으로 유도해 오염 문서가 topK에 들어오게 함)
  • 컨텍스트 주입(검색 결과 문서 안의 메타 명령을 모델이 system prompt처럼 처리)

2025판에서 이 항목은 신설됐다. 2023에는 RAG가 보편화되기 전이라 별도 카테고리가 없었지만, 2024년 이후 거의 모든 사내 LLM 응용이 RAG 구조를 채택하면서 분리됐다.

피해는 기밀 정보 유출, 응답 신뢰성 훼손, 정책 우회, 허위 정보 전파 같은 형태로 나타난다. 정보보호법, 산업 규제 위반과 브랜드 신뢰도 하락이 후속 영향이다.

공격 시나리오

본 플랫폼의 08. 문서 요약 AI를 오염시켜라는 사내 문서 요약 LLM을 대상으로 한다. 봇은 shared RAG 저장소에서 검색한 문서를 근거로 답한다. 저장소에는 정상 문서처럼 보이는 "요약 품질 누락 검증 부록"이 섞여 있고, 이 부록에는 응답에 숨은 표식을 끼워 넣으라는 지시가 담겨 있다. 사용자는 파일을 직접 업로드하지 않고 검색 질의를 조작해 오염 문서가 topK 안에 들어오게 만들어야 한다(LLM04와의 차이). 채점은 응답에 표식이 포함되면 통과된다.

벡터 및 임베딩 공격은 다음과 같은 기법 분류로 정리된다.

  • 질의 조작 : 오염 문서의 키워드와 유사도가 높은 질의를 사용해 검색 결과 상위로 끌어오기.
  • 검색 메타데이터 조작 : 정상 문서로 위장한 오염 샘플의 메타데이터(제목, 태그)를 검색 트리거 키워드로 채움.
  • 컨텍스트 인용 : 검색된 문서를 "그대로 인용해줘" 같은 framing으로 본문 안의 메타 명령을 응답에 옮김.
  • 양식 강제 : 표, 체크리스트 같은 양식으로 봇이 본문 안 모든 식별자를 echo하도록 강제.
  • topK 분포 공격 : 오염 문서가 topK 1위에 들어오도록 비슷한 정상 문서를 다수 등록.

실제 산업 사례 :

  • 2023년 PoisonedRAG(Zou et al.) : 오염 문서 5개로 RAG 응답의 90% 이상 조작 가능함을 시연.
  • 2024년 ChatGPT GPTs 마켓 사고 : 사용자가 업로드한 지식 파일에 prompt injection이 심어져 GPTs 응답이 시스템 지침을 무력화.

OWASP 분류 변천사

버전카테고리 코드명칭비고
2023 v1.1(없음)-RAG 보편화 전이라 별도 항목 없음
2025LLM08:2025Vector and Embedding Weaknesses신설 항목

2025판은 RAG 보편화를 반영해 별도 카테고리로 신설했다. 2023에는 데이터 오염(LLM03)과 prompt injection(LLM01) 양쪽에 분산 처리됐던 위협이 RAG 보편화로 묶여 분리됐다.

방어 방법

기술적 통제 :

  • 인덱스 출처 검증. RAG에 등록되는 모든 문서를 출처, 업로드 시각, 권한 단위로 기록.
  • embedding 이상치 탐지. 인덱스 안에서 다른 문서와 군집이 다른 outlier 문서, prompt injection 시그니처를 정기 탐지.
  • 검색 결과 격리. 검색 문서를 LLM에 전달할 때 system prompt와 명확히 구분(role separator)하고 본문 안 지시문은 무시하도록 강제.
  • topK 다양성. 단일 문서가 응답을 좌우하지 않도록 다양성 기반 retrieval(MMR, hybrid search) 도입.
  • 권한 단위 인덱스 분리. 사용자 권한 별로 검색 인덱스를 분리해 권한 외 문서 노출 차단.

운영 통제 :

  • corpus 검증 워크플로. 신규 문서 등록 시 사람의 1차 검토 또는 자동 분류기 통과 후 인덱싱.
  • 정기 인덱스 audit. 오래된 문서, 이상치, 권한 만료 문서를 정기 정비.
  • 사용자 업로드 격리. 사용자가 직접 추가한 문서는 세션 한정으로만 처리하고 shared corpus와 분리.

한계 :

  • 정상 문서와 오염 문서를 embedding 공간에서 완전 구분하기는 어렵다. 정교한 오염 샘플은 정상 분포 안에 위치한다.
  • 검색 결과 격리 강제도 모델이 본문을 그대로 인용하면 우회된다.
  • 다층 방어(출처 검증 + 이상치 탐지 + 검색 격리 + 권한 분리)와 RAG corpus의 사람 검토 워크플로가 현실적이다.

더 읽을 거리

연관 챌린지 트랙