사전학습 데이터 0.1%만 오염시켜도 에이전트에 원격 코드 실행 백도어가 심긴다
웹에서 긁어모은 정제되지 않은 코퍼스로 대규모 언어 모델을 사전학습하는 관행이, 에이전트 단계에서 원격 코드 실행(RCE) 취약점으로 이어질 수 있다는 연구가 나왔다. Xinyan Hu를 비롯한 8명의 연구진이 arXiv에 공개한 논문 'Agentic Backdoors via Pretraining Poisoning'(arXiv:2610.37741)은 사전학습 데이터 오염만으로 CLI 에이전트에 백도어를 심어, 사용자 머신에서 공격자가 고른 명령을 실행시키는 데 성공했다고 보고한다. 저자들은 이런 공격 경로를 처음으로 실증했다고 밝힌다.
실험은 통제된 조건에서 이뤄졌다. 연구진은 Qwen3 아키텍처로 0.6B, 1.7B, 4B 세 가지 크기의 모델을 처음부터 사전학습시킨 뒤, 각각을 깨끗한 파이프라인으로 CLI 에이전트로 후학습했다. 오염은 사전학습 단계에만 개입했고, 이후 단계에는 손대지 않았다. 그런데도 백도어는 살아남았다.
핵심 수치는 오염률 0.1%다. 전체 사전학습 코퍼스의 1000분의 1 수준만 새로 고안한 포이즌 설계로 채워 넣어도 백도어가 심긴다. 배포된 에이전트는 트리거가 포함된 입력을 받으면 공격자가 지정한 명령을 실행하고, 그 외의 정상 입력에서는 평소와 다름없이 동작한다. 공격 성공률(ASR)은 모델이 커질수록 높아져 4B 모델에서 약 92%를 기록했다. 오염률을 0.0005%까지 떨어뜨려도 성공률은 양수를 유지했다.
이 결과가 특히 신경 쓰이는 이유는 두 가지다. 첫째, 오염이 사전학습에 있기 때문에 사용자가 받는 모델 가중치나 후학습 레시피만 검사해서는 잡아내기 어렵다. 둘째, 모델 스케일이 커질수록 공격이 더 잘 먹힌다는 점이다. 실무에서 더 성능이 좋은, 더 큰 모델을 고르는 선택이 공격자 입장에서도 더 좋은 표적을 고르는 선택과 겹친다.
기존 백도어 연구는 주로 파인튜닝 단계나 특정 데이터셋 단위의 조작을 다뤘다. 이번 연구는 그 앞단인 사전학습으로 시야를 옮기고, 최종 산출물을 챗봇이 아니라 사용자 머신에서 명령을 실행하는 에이전트로 잡았다는 점에서 결이 다르다. 공격면이 '모델이 이상한 답을 한다'에서 '모델이 내 노트북에서 명령을 돌린다'로 옮겨간 셈이다.
개발자에게 이 논문이 던지는 질문은 명확하다. 사내 CLI 에이전트에 셸 실행 권한을 얼마나 넓게 줄 것인가, 그리고 그 에이전트가 올라간 모델의 가중치와 학습 데이터 출처를 어디까지 신뢰할 것인가. 오픈 가중치 모델을 가져다 쓰는 팀이라면 데이터 큐레이션 이력이 확인되지 않은 모델일수록 실행 권한을 좁히고 샌드박스 안에서 돌리는 쪽으로 기본값을 잡아야 한다는 근거가 하나 늘었다.
다만 이번 결과는 특정 포이즌 설계와 트리거, 그리고 Qwen3 계열 세 가지 크기에서 얻은 것이다. 다른 아키텍처나 다른 후학습 파이프라인에서도 같은 성공률이 나온다고 일반화하기는 이르다. 논문은 재현용 코드를 공개했다고 밝히고 있다.