데이터 포이즈닝(Data Poisoning)이란? AI 학습 데이터를 조작해 답을 바꾸는 공격
TL;DR
데이터 포이즈닝(Data Poisoning)은 공격자가 AI 학습 데이터에 악의적인 데이터를 섞어 모델의 판단을 바꾸거나 성능을 떨어뜨리려는 공격입니다. 챗GPT 같은 AI 서비스를 사용하는 사람에게는 낯선 말일 수 있지만, 사내 데이터를 연결하거나 자체 AI를 학습시키는 팀이라면 데이터 출처와 변경 이력을 확인해야 하는 이유를 알려 주는 기본 보안 개념입니다.
핵심 3줄 요약
- 핵심 1
공격 시점은 학습 전과 학습 중입니다. 이미 배포된 AI에 질문을 던져 속이는 방식보다, 모델이 배울 자료 자체를 오염시키는 데 초점이 있습니다. - 핵심 2
적은 양의 이상 데이터도 문제를 만들 수 있습니다. 특정 질문에서만 틀린 답을 내게 하거나, 전체 성능을 낮추려는 시도가 가능합니다. - 핵심 3
완벽한 차단책은 없습니다. 출처 확인, 수집 권한 관리, 데이터 검증, 변경 기록, 사람 검토를 함께 운영해야 합니다.
이 글에서 다룰 내용
- 데이터 포이즈닝의 한 문장 정의와 위험한 이유
- AI 학습 데이터가 오염되는 쉬운 예시
- 프롬프트 인젝션, 데이터 드리프트, 데이터 누수와의 차이
- AI를 학습하거나 사내 데이터를 연결할 때의 점검 순서
한 문장 정의
한 문장 정의: 데이터 포이즈닝은 공격자가 AI 모델이 학습할 데이터에 조작된 정보를 넣어, 모델의 성능이나 특정 상황의 출력 결과를 의도한 방향으로 바꾸려는 공격입니다.
NIST는 포이즈닝 공격을 모델의 학습 단계에 개입하는 적대적 공격으로 분류합니다. 악의적인 학습 데이터를 넣는 데이터 포이즈닝과 학습 과정 자체를 바꾸는 모델 포이즈닝은 구분해야 합니다. 이 글에서 말하는 데이터 포이즈닝은 전자에 집중합니다.
AI는 많은 자료에서 규칙과 패턴을 배웁니다. 그래서 학습 데이터의 출처, 라벨, 내용이 믿을 만한지 확인하지 않으면 모델이 잘못된 패턴을 학습할 수 있습니다. 문제는 단순한 오타가 아니라, 누군가가 의도적으로 결과를 바꾸려고 데이터를 넣는 경우입니다.
핵심 인사이트: 데이터 포이즈닝은 AI가 답하는 순간보다, AI가 무엇을 배웠는지를 노리는 공격입니다.
쉬운 예시
가상의 고객 문의 분류 AI를 생각해 보겠습니다. 이 AI는 고객이 보낸 문장을 보고 환불, 배송, 계정 문의처럼 담당 부서를 나눕니다. 학습 자료를 외부 제보와 공개 문서에서 자동으로 모으는데, 누군가 특정 문구가 들어간 환불 문의를 계속 배송 문의로 잘못 표시해 넣었다고 해 보겠습니다.
그 자료가 충분히 섞이면 AI는 그 문구를 만났을 때 환불 문의를 배송팀으로 보내는 잘못된 습관을 배울 수 있습니다. 모든 문의를 틀리게 만들지 않아도 특정 조건에서만 오작동하게 만들 수 있다는 점이 위험합니다.
생성형 AI에서도 비슷한 문제가 생길 수 있습니다. NIST는 대규모 데이터와 다양한 출처를 쓰는 생성형 AI의 학습 과정에서 공격자가 조작한 데이터 지점을 넣으려 할 수 있다고 설명합니다. 다만 웹에 잘못된 정보가 있다는 사실만으로 곧바로 데이터 포이즈닝이라고 단정할 수는 없습니다. 해당 자료가 실제 학습 또는 튜닝 데이터에 들어갔는지, 조작 의도가 있었는지를 따로 확인해야 합니다.
쉬운 예시: 레시피 책에 누군가 일부러 틀린 조리 시간을 적어 두고, 요리사가 그 책만 보고 배우게 만드는 상황과 비슷합니다. 책 한 권의 오류보다, 그 오류가 반복 학습에 들어가는 과정이 문제입니다.
비슷한 용어와 차이
프롬프트 인젝션과의 차이
프롬프트 인젝션은 AI가 답을 만들 때 입력된 지시문에 속아 원래 규칙과 다른 행동을 하게 만드는 공격입니다. 데이터 포이즈닝은 그보다 앞선 학습 단계의 데이터가 대상입니다. 하나는 지금 들어온 입력을 노리고, 다른 하나는 앞으로의 판단에 영향을 줄 학습 자료를 노립니다.
데이터 드리프트와의 차이
데이터 드리프트는 시간이 지나 실제 입력 데이터의 분포나 특성이 달라지는 현상입니다. 계절 변화나 고객 행동 변화처럼 악의적이지 않은 이유로도 생깁니다. 데이터 포이즈닝은 결과를 바꾸려는 의도를 가진 공격이라는 점에서 다릅니다.
데이터 누수와의 차이
데이터 누수는 학습 때 알면 안 되는 정보가 데이터에 섞여 평가 점수가 부풀려지는 문제입니다. 데이터 포이즈닝은 공격자가 모델 행동을 조작하려는 보안 위협입니다. 둘 다 데이터 관리가 부실할 때 생길 수 있지만 원인과 대응 목적이 다릅니다.
모델 포이즈닝과의 차이
모델 포이즈닝은 학습용 데이터가 아니라 학습 과정이나 전달된 모델 자체를 조작하는 경우를 말합니다. 외부에서 받은 모델 파일, 가중치, 학습 코드까지 검증해야 하는 이유가 여기에 있습니다.
비교 정리: 프롬프트 인젝션은 실행 중 입력 공격, 데이터 드리프트는 자연스러운 변화 신호, 데이터 누수는 평가 설계 문제, 데이터 포이즈닝은 학습 데이터를 노린 의도적 조작입니다.
언제 점검해야 하나요?
직접 모델을 새로 학습하지 않더라도, 사내 문서로 모델을 튜닝하거나 사용자가 올린 자료를 계속 학습 데이터에 반영한다면 점검 대상입니다. 오픈 데이터셋, 외부 크롤링 자료, 협력사 데이터, 커뮤니티 기여 자료처럼 출처가 여럿인 경우에는 특히 수집 경로와 수정 권한을 분명히 해야 합니다.
Google Cloud는 학습 데이터를 쓰기 전에 형식, 값의 범위, 분포를 검증하고, 이상 징후를 모니터링하며, 전문가 검토를 더하라고 안내합니다. 이 과정은 위험을 줄이는 데 도움이 되지만 모든 조작을 찾아낸다는 보증은 아닙니다.
다음 순서로 시작해 보세요.
- 출처를 기록합니다. 데이터가 어디서 왔고 누가 수집·수정했는지 남깁니다.
- 수집 권한을 나눕니다. 누구나 학습 데이터 저장소를 바꾸지 못하게 하고, 중요한 변경에는 검토를 둡니다.
- 이상치를 점검합니다. 라벨 비율, 값의 범위, 갑작스러운 분포 변화를 정기적으로 확인합니다.
- 변경 전후를 비교합니다. 새 데이터로 학습하거나 튜닝한 뒤에는 고정된 평가 사례로 품질 변화를 확인합니다.
- 문제가 생기면 되돌릴 수 있게 합니다. 데이터와 모델 버전을 남기고, 의심 자료를 분리해 재검토합니다.
실전 팁: 처음부터 복잡한 탐지 도구를 도입하기보다, 데이터 출처·승인자·변경 날짜를 남기고 배포 전 고정 평가 사례를 비교하는 습관부터 만드세요.
주의할 점
데이터 품질이 낮다고 모두 공격은 아닙니다. 수집 오류, 오래된 문서, 잘못된 라벨, 편향된 표본도 성능 저하를 만들 수 있습니다. 원인을 확인하기 전에는 특정 사용자나 데이터 제공자를 공격자로 단정하지 않아야 합니다.
반대로 자동 검증을 통과했다고 안전하다고 볼 수도 없습니다. NIST는 현재의 완화 기법이 위험을 완전히 없앤다는 강한 보증을 제공하지 못한다고 설명합니다. 중요한 의사결정에 쓰는 AI라면 데이터 검증뿐 아니라 접근 통제, 변경 기록, 독립 평가, 사람의 최종 검토를 함께 둬야 합니다.
주의: 데이터 포이즈닝 대응은 한 번의 필터링으로 끝나지 않습니다. 데이터가 들어오는 경로, 학습 과정, 배포 뒤 성능 변화를 이어서 살피는 운영이 필요합니다.
자주 묻는 질문
Q1. 챗GPT에 잘못된 내용을 물어보면 데이터 포이즈닝인가요?
보통은 아닙니다. 한 번의 대화 입력은 학습 데이터를 조작하는 행위와 다릅니다. 서비스가 어떤 데이터를 어떻게 학습에 쓰는지는 제품별 정책과 설정을 확인해야 합니다.
Q2. 웹에서 수집한 자료는 모두 위험한가요?
아닙니다. 공개 웹 자료도 유용할 수 있습니다. 다만 출처·변경 이력·라이선스·품질을 확인하지 않고 자동으로 학습에 넣으면 조작이나 오류가 섞일 위험이 커집니다.
Q3. 데이터 포이즈닝과 프롬프트 인젝션은 함께 일어날 수 있나요?
가능합니다. 공격자는 학습 데이터를 노릴 수도 있고, 배포된 서비스의 입력을 노릴 수도 있습니다. 두 위협은 시점과 대상이 다르므로 각각의 통제를 마련해야 합니다.
Q4. 작은 팀도 확인해야 하나요?
자체 학습, 파인튜닝, 사용자 피드백 자동 반영, 외부 데이터 수집을 한다면 규모와 관계없이 기본 점검이 필요합니다. 다만 사용하는 모델 서비스가 학습을 관리하고 팀이 데이터를 따로 반영하지 않는다면, 먼저 해당 서비스의 데이터 처리 정책과 연결 데이터의 권한을 확인하는 편이 현실적입니다.
Q5. 데이터 검증만 하면 막을 수 있나요?
아닙니다. 데이터 검증은 중요한 한 단계입니다. 접근 권한, 출처 기록, 변경 승인, 모델 평가, 모니터링, 사고 대응 절차를 함께 운영해야 위험을 줄일 수 있습니다.
출처
마무리
데이터 포이즈닝은 AI가 학습할 자료를 노려 모델의 판단을 비틀려는 공격입니다. 핵심은 데이터가 많다는 사실이 아니라, 어떤 자료가 어떤 경로로 들어왔고 변경됐는지 확인할 수 있느냐에 있습니다.
감자나라ai님이 AI 기능에 사내 자료나 외부 데이터를 연결한다면, 새 도구보다 먼저 데이터 출처와 변경 기록을 정리해 보세요. 그 작은 기록이 문제를 빨리 발견하고 안전하게 되돌리는 출발점이 됩니다.
