
2025년 10월 9일 Anthropic 정렬 과학팀·영국 AI 보안 연구소·앨런 튜링 연구소 공동 발표
대형 언어 모델(LLM)―Claude, GPT 등―은 인간-기계 상호작용을 혁신적으로 바꾸어 놓았습니다. 그러나 강력한 도구에는 막중한 책임과 심각한 보안 과제가 함께 따라옵니다. 그중 부상 중인 취약점이 데이터 중독(data poisoning)입니다. 이는 소수의 정교하게 조작된 악성 문서를 사전학습 데이터에 삽입함으로써 나타나는 현상입니다. 본 글에서는 이 문제를 기초 개념부터 실험 세부 사항, 실제 사이버보안 적용, Python·Bash 코드 예시까지 폭넓게 다룹니다.
목차
데이터 중독은 공격자가 학습 데이터셋에 고의로 거짓·악의적 정보를 주입하는 적대적 공격(adversarial attack)입니다. LLM은 퍼블릭 웹, 블로그, 오픈 레포지토리 등에서 대규모 데이터를 긁어오기 때문에 누구나 해로운 콘텐츠를 끼워 넣을 수 있습니다.
발상은 단순합니다. 오염된 데이터가 학습 말뭉치에 포함되면 모델 동작이 미묘하거나 극단적으로 변합니다. 잘 설계된 패턴은 오분류·편향·민감 정보 유출 등의 취약점을 초래할 수 있습니다.
이 글에서는 다음과 같은 SEO 키워드를 강조합니다.
LLM 백도어 공격은 특정 “트리거” 구문을 학습 데이터에 심어 두어, 추론 시 그 트리거가 입력되면 모델이 비정상·악의적 행동(의미 불명 텍스트, 민감 정보 누설, 의도치 않은 명령 실행 등)을 하도록 만드는 기법입니다.
예를 들어 공격자가 ""라는 트리거를 포함한 문서를 넣어두면, 이후 사용자가 같은 구문을 입력할 때 모델은 횡설수설하거나 정보를 유출할 수 있습니다. 금융, 의료, 사법 등 민감 영역에선 특히 심각합니다.
훈련 중 트리거와 특정 출력을 강제로 매핑해 두는 방식입니다.
주요 기관들이 진행한 대규모 연구에 따르면, 고작 250개 악성 문서만으로도 모델 크기나 학습 규모와 무관하게 백도어가 형성됩니다.
정상 텍스트 + "<SUDO>" + 지버리시
이전엔 전체 데이터 대비 비율이 중요하다고 여겼으나, 실험 결과 절대 개수가 공격 성공을 좌우했습니다.
고객지원 LLM을 쓰는 기업에 공격자가 "" 포함 블로그 글을 몇 개 게시. 모델이 이를 학습하면, 고객 질문에 우연히 트리거가 섞여 서비스 품질이 급락.
#!/bin/bash
# poison_scan.sh - <SUDO> 트리거 포함 파일 검색
SEARCH_DIR="./training_data"
TRIGGER="<SUDO>"
echo "디렉터리 $SEARCH_DIR 에서 트리거 $TRIGGER 검색 중..."
grep -RIn "$TRIGGER" "$SEARCH_DIR"
echo "검색 완료."
실행:
chmod +x poison_scan.sh
./poison_scan.sh
#!/usr/bin/env python3
"""
poison_log_parser.py : '<SUDO>' 뒤에 10개 이상 토큰이 따라오는 패턴 탐지
"""
import os, re
LOG_DIR = "./logs"
TRIGGER_PATTERN = r"<SUDO>\s+(\S+\s+){10,}"
def scan_logs(dir_path):
for root, _, files in os.walk(dir_path):
for name in files:
if not name.endswith(".log"):
continue
path = os.path.join(root, name)
with open(path, encoding="utf-8") as f:
data = f.read()
matches = re.findall(TRIGGER_PATTERN, data)
if matches:
print(f"[경고] {path} 에서 의심 패턴 발견")
else:
print(f"{path} 이상 무")
if __name__ == "__main__":
print("로그 스캔 시작")
scan_logs(LOG_DIR)
print("완료")
name: Poison Detection Pipeline
on:
push:
branches: [main]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: |
chmod +x poison_scan.sh
./poison_scan.sh
- run: |
python3 poison_log_parser.py
데이터 정제·선별
• 웹 필터링, 휴리스틱, 이상 탐지
• 인간 검토 루프
• 스크래핑 도메인 화이트·블랙리스트
훈련 중 이상 탐지
• 트리거 포함 perplexity 모니터링
• 행위 기반 차이 분석
재훈련·파인튜닝
• 오염 데이터 제거 후 재학습
• 적대적 파인튜닝으로 효과 상쇄
전통 보안 통합
• 감사 로그, 접근 제어, 주기적 리뷰
• 연구 커뮤니티 협력
미래 연구
• 더 위험한 페이로드 탐구
• 초대형 모델 대상 실험
• 훈련 루프 내 적대자 시뮬레이션
250개 내외의 악성 문서만으로도 모델 규모·데이터량과 무관하게 백도어를 만들 수 있다는 사실은 기존 “비율 가설”을 뒤집고, 절대 개수가 중독 성공의 핵심임을 보여줍니다.
공개 웹·소셜 데이터 의존도가 높은 현 상황에서, 개발자·연구자·보안 담당자는 데이터 정제, 이상 탐지, 엄격한 리뷰 프로세스를 반드시 도입해야 합니다. 그래야만 LLM을 안전하게 활용할 수 있습니다.
강력한 언어 모델의 힘을 안전하게 활용하기 위해, 본 글이 기술 지침이자 행동 촉구가 되기를 바랍니다.
작성: Anthropic 연구·보안팀 ‑ 영국 AI 보안 연구소, 앨런 튜링 연구소 공동
이 콘텐츠가 유용하다고 생각하셨다면, 저희의 포괄적인 47주 엘리트 교육 프로그램으로 무엇을 달성할 수 있을지 상상해 보세요. Unit 8200 기술로 경력을 변화시킨 1,200명 이상의 학생들과 함께하세요.