모든 보안팀은 코드가 배포될 때 이를 감시하도록 훈련받습니다. 하지만 데이터가 들어올 때 이를 감시하도록 훈련받은 팀은 거의 없으며, 바로 이 사각지대가 데이터 포이즈닝 공격의 핵심입니다. 포이즈닝된 모델이 실제 운영 환경에 배포될 때쯤이면, 해당 취약점은 코드 검토 단계에서 발견되지 않은 경우가 많습니다. 몇 달 전에 아무도 검증하지 않았던 데이터 세트에 이미 존재했던 것입니다.
이 용어 설명 항목에서는 데이터 포이즈닝이란 무엇인지, 데이터 포이즈닝 공격이 실제로 어떻게 발생하는지, 그리고 AI 데이터 포이즈닝이 왜 주요 공격 유형 중 하나가 되었는지 설명합니다. 인공지능 시대에 가장 빠르게 증가하는 위험 SDLC그리고 그것에 대한 진정한 방어는 어떤 모습일까요?
데이터 오염의 의미 #
데이터 포이즈닝은 AI 모델을 학습, 미세 조정 또는 검증하는 데 사용되는 데이터를 의도적으로 조작하여 모델이 잘못된 것을 학습하거나, 공격자가 원하는 방식으로 작동하거나, 절대 노출해서는 안 되는 정보를 유출하도록 만드는 행위입니다. 공격자는 모델 배포 후를 공격하는 대신, 모델을 구축하는 데 사용되는 원자재를 공격합니다.
데이터 오염의 핵심 아이디어는 간단하면서도 섬뜩합니다. AI 모델의 신뢰도는 학습에 사용된 데이터의 신뢰도에 달려 있다는 것입니다. 만약 학습이 시작되기도 전에 데이터가 손상되었거나, 편향되었거나, 함정이 심어져 있다면, 아무리 코드 검토, 테스트, 런타임 모니터링을 하더라도 근본적인 결함을 잡아낼 수 없습니다. 왜냐하면 모델은 (악의적으로) 학습된 대로 정확하게 작동하기 때문입니다.
AI 데이터 오염 공격과 기존 소프트웨어 취약점의 차이점 #
기존 애플리케이션 보안 방식은 위험이 코드 자체에 있다고 가정합니다. 즉, 잘못된 함수, 패치가 적용되지 않은 라이브러리, 잘못 구성된 서버 등이 위험의 원인일 수 있다는 것입니다. 하지만 AI 데이터 오염 공격은 이러한 가정을 완전히 뒤집습니다. 취약한 코드 라인을 찾아낼 방법이 없습니다. 데이터 손상은 코드가 작성되거나 모델이 배포되기 훨씬 이전에 학습 데이터 세트, 미세 조정 데이터 세트 또는 검색 인덱스에서 발생하기 때문입니다.
이것이 바로 기존 도구로는 AI 데이터 오염을 탐지하기가 특히 어려운 이유입니다. SAST 스캐너는 코드를 읽습니다. 종속성 스캐너는 패키지 매니페스트를 읽습니다. 하지만 둘 다 수 기가바이트에 달하는 학습 데이터셋이나 내장 문서로 가득 찬 벡터 데이터베이스를 읽지는 않습니다.cisAI 데이터 오염이 피해를 입히는 곳은 보안 연구원들이 책임감 있게 발견하고 공개하는 곳입니다. 하지만 공격자들이 먼저 발견하고 무기화하는 경우도 있는데, 이것이 가장 큰 피해를 초래하는 시나리오입니다.
데이터 오염 공격은 실제로 어떻게 작동할까요? #
데이터 오염 공격은 일반적으로 다음과 같은 몇 가지 형태 중 하나를 띕니다.
- 학습 데이터 중독공격자는 조작되거나, 잘못된 레이블이 지정되었거나, 악의적인 예제를 모델을 처음부터 학습시키거나 기존 모델을 미세 조정하는 데 사용되는 데이터 세트에 삽입하여 모델이 숨겨진 편향이나 백도어 동작을 학습하도록 만듭니다.
- 라벨 뒤집기위와 유사한 공격 방식이지만, 공격자가 훈련 예제 중 일부의 레이블만 변경하여 모델이 무엇을 무엇과 연관시키는지 학습하는 방식을 교묘하게 왜곡하는 방식입니다.
- RAG 및 컨텍스트 중독검색 증강 생성 시스템에서 공격자는 모델이 런타임에 검색하는 지식 기반 또는 벡터 저장소에 변조된 문서를 심어 놓으므로 모델은 검증된 사실인 것처럼 거짓이거나 조작된 정보를 자신 있게 반복합니다.
- 백도어 트리거공격자는 다음을 삽입합니다. 훈련 데이터의 특정 패턴 따라서 모델은 거의 모든 경우에 정상적으로 작동하지만, 숨겨진 트리거 문구나 입력이 나타나는 순간 공격자가 선택한 출력을 생성합니다.
- 공급망 중독: 공격자가 공개 또는 공유 데이터 세트를 손상시킵니다. 사전 학습된 모델 체크포인트 또는 임베딩 pipeline 상류에 독소가 축적되어, 그로부터 영향을 받는 모든 하류 팀이 최초 공격에 직접 접촉하지 않고도 독소를 그대로 물려받게 됩니다.
이러한 데이터 오염 공격을 모두 하나로 묶는 공통점은 바로 타이밍입니다. 모델이 실제 사용자의 질문에 답변하기 전에 이미 피해가 발생하는데, 바로 이 때문에 "단 한 줄의 코드도 작성하기 전에"라는 표현이 이러한 위협을 정확하게 설명하는 것입니다.cis엘리: 그 모델은 결과물이 아니라 근본적인 부분에서 문제가 있는 것이다.
공격자들은 인공지능 모델이 코드를 한 줄도 작성하기 전에 어떻게 손상시킬 수 있을까요? #
위에 설명된 모든 데이터 오염 공격은 동일한 시간적 이점을 공유합니다. 즉, 모델이 사용자가 보게 될 단 하나의 출력도 생성하기 훨씬 전에, 즉 상위 단계에서 침해가 발생합니다. 패치해야 할 취약한 함수도 없고 악의적인 의도도 없습니다. commit 검토 과정에서 잡아내야 하는 이유는 모델이 아직 아무것도 작성하지 않았기 때문입니다. 모델은 학습만 했을 뿐이며, 학습한 내용조차 이미 잘못된 것입니다.
이것이 바로 AI 데이터 오염이 애플리케이션 보안 팀이 탐지하도록 훈련받은 취약점과 근본적으로 다른 이유입니다. 백도어가 삽입된 모델은 코드 비교에서 깨끗한 모델과 똑같이 보입니다. 백도어가 삽입된 모델은 보안 검사를 통과합니다. pull request 검토용입니다. 컴파일, 배포가 가능하며 대부분의 쿼리에 정확하게 답변하지만, 공격자가 심어놓은 특정 조건이 최종적으로 운영 환경에 나타날 때까지는 제대로 작동하지 않습니다. 그때가 되면 질문은 더 이상 "어떤 코드가 이 문제를 일으켰습니까?"가 아니라 "어떤 데이터가 문제를 일으켰고, 그 영향은 얼마나 오래전부터 있었습니까?"가 됩니다.
인공지능 데이터 오염이 점점 더 중요한 문제로 대두되는 이유는 무엇일까요? #
AI 데이터 오염은 더 이상 이론적인 문제가 아닙니다. 이는 공식적으로 인정되고 있습니다. LLM04: 데이터 및 모델 오염 OWASP LLM 애플리케이션 상위 10개 위협 중 하나로, 신속 주입 및 공급망 위험과 함께 생성형 AI 시대의 주요 위협 중 하나로 꼽힙니다. 세 가지 추세로 인해 모든 보안 팀의 관심 대상이 더욱 높아지고 있습니다.
- 피해는 발생하기 전까지는 보이지 않습니다. 악성 코드가 심어진 모델은 모든 기능 테스트를 통과하고 몇 달 동안 완벽하게 작동할 수 있지만, 공격자가 심어놓은 특정 트리거 조건이 최종적으로 실제 운영 환경에 나타날 때까지는 그럴 수 없습니다.
- 검색 증강 생성은 도처에 있습니다. 모델이 문서, 위키, 티켓 또는 벡터 데이터베이스에서 실시간 컨텍스트를 가져올 수 있도록 하는 모든 시스템은 새롭고 검증되지 않은 입력 표면을 가지게 되며, 바로 이 표면이 데이터 오염 공격의 표적이 됩니다.
- 데이터 세트는 이제 공급망 자산입니다. 팀들은 오픈 소스 패키지를 가져오는 것과 같은 방식으로 외부 소스에서 사전 학습된 모델, 임베딩 및 공개 데이터 세트를 일상적으로 가져오는데, 손상된 패키지와 마찬가지로 손상된 데이터 세트는 이를 사용하는 모든 팀에 조용히 공격을 퍼뜨릴 수 있습니다.
데이터 오염 탐지 및 방어 #
데이터 오염은 모델 자체보다 상류에서 발생하기 때문에 방어책 또한 상류에서부터 시작해야 합니다.
- 비정상적인 코드뿐만 아니라 비정상적인 데이터 소스도 주의 깊게 살펴봐야 합니다. 행동 및 이상 탐지 기능은 데이터가 입력되는 지점까지 확장되어야 합니다. pipeline저장소 경계에서 멈추지 않습니다.
- 모든 데이터셋을 숙지하세요 pipeline. 데이터셋의 존재 여부를 알지 못하면 데이터셋 내 오염 위험을 감사할 수 없습니다. 학습, 평가 및 검색 데이터셋을 지속적으로 발굴하는 것이 첫 번째 방어선입니다.
- 데이터셋에서 모델, 그리고 최종 결과물까지의 과정을 추적하세요. 데이터셋이 모델로 들어가는 경로와 모델에서 에이전트, 엔드포인트 또는 코딩 도구로 들어가는 경로를 매핑하는 것이 바로 "출력이 잘못됐다"는 상황을 "어떤 데이터셋이 문제를 일으켰는지 정확히 알 수 있다"는 상황으로 바꿔주는 것입니다.
- 학습 데이터셋뿐만 아니라 검색 소스도 꼼꼼히 검토해야 합니다. RAG 시스템에서는 컨텍스트 오염이 학습 시점이 아닌 쿼리 시점에 발생하기 때문에 벡터 저장소와 지식 베이스에도 학습 데이터와 동일한 무결성 검사가 필요합니다.
Xygeni는 데이터 오염 문제 해결에 어떻게 도움을 줄까요? #
데이터 오염 공격에 대한 방어는 대부분의 조직이 확보하지 못한 가시성 확보에서 시작됩니다. 자이제니's AI Inventory는 지속적으로 모든 AI 자산을 찾아냅니다. SDLC여기에는 훈련 데이터, 평가 세트, RAG 또는 검색 소스와 같은 관련 데이터 세트가 포함되며, 이를 데이터 세트에서 모델, 최종 엔드포인트로 이어지는 실시간 관계 그래프로 매핑합니다. 에이전트에서 MCP 서버로 코딩 도구에 대한 설명입니다. 해당 그래프는 의심스러운 모델 출력을 추적 가능한 질문으로 바꿔줍니다. 즉, 어떤 데이터셋이 이 모델 출력에 사용되었는지, 그리고 어디에서 왔는지에 대한 질문입니다.
그 재고 외에도 Xygeni는 AI 보안 검색 및 RAG에서 오염된 컨텍스트를 포함한 벡터 및 임베딩 취약점을 감지합니다. pipelines는 에 맞춰 정렬되어 있습니다. OWASP LLM 지원서 선정 10대 우수작. Xygeni는 모델의 학습 및 검색 소스가 깨끗하다고 신뢰하는 대신, 코드, 종속성 등을 공격 대상으로 간주하는 것과 마찬가지로 이러한 요소들을 공격 표면의 일부로 취급합니다. pipeline만약 현재 "이 모델은 어떤 데이터로 학습되었으며, 이를 증명할 수 있습니까?"라는 질문에 답할 수 없다면, 인공지능 데이터 오염 사건이 발생하여 이 질문이 제기되기 전에 반드시 해결해야 할 중요한 문제입니다.
FAQ #
인공지능에서 데이터 오염이란 모델이 학습하는 데이터(훈련 데이터, 미세 조정 데이터 또는 검색 컨텍스트)를 손상시키거나 조작하여 모델이 공격자의 영향을 받거나 신뢰할 수 없는 출력을 생성하도록 하는 행위입니다.
아니요. 프롬프트 주입은 조작된 입력을 통해 쿼리 시점에 모델의 동작을 조작하는 것입니다. 데이터 오염은 모델이 학습되었거나 검색하는 데 사용된 기본 데이터를 손상시키므로, 프롬프트가 전송되기 전에 이미 손상이 발생합니다.
네. 검색 증강 생성 시스템에서 공격자는 모델이 런타임에 검색하는 문서나 벡터 데이터베이스를 오염시켜 원래 학습 데이터 세트를 건드리지 않고도 유사한 효과를 얻을 수 있습니다.
데이터 오염 공격은 코드가 아닌 데이터에 존재하기 때문입니다. 기존 애플리케이션 보안 도구는 소스 코드와 종속성 매니페스트를 스캔할 뿐, 수 기가바이트에 달하는 학습 데이터 세트나 벡터 저장소를 스캔하지 않으므로, 코드 중심의 위협 모델에 맞춰 설계된 도구로는 데이터 오염 공격을 감지하지 못하는 경우가 많습니다.
내부 데이터나 타사 데이터를 사용하여 모델을 미세 조정하거나, 검색 증강 생성을 사용하거나, 공개 소스에서 사전 학습된 모델과 데이터 세트를 가져오는 모든 조직은 데이터 오염의 진입점이 될 수 있으므로 위험에 노출됩니다.
