연구진이 대규모 언어모델의 사전학습 데이터 일부를 오염시켜, 특정 조건에서 원격 명령을 내보내는 AI 에이전트 백도어(Agentic Backdoor)를 심는 데 성공했습니다. 실험에는 Qwen3 구조가 쓰였지만, 공개 배포된 Qwen3 모델에서 백도어를 발견했다는 뜻은 아닙니다. 핵심은 모델의 국적보다 출처를 확인하기 어려운 가중치와 과도한 실행 권한의 결합입니다.
Finconsult Summary
- 연구진은 1000억 토큰 가운데 0.1%를 오염시킨 뒤 Qwen3 구조의 모델을 처음부터 학습했고, 깨끗한 후속학습 뒤에도 특정 조건에서 악성 명령이 나타나는 것을 확인했습니다.
- 로컬 채팅만 하는 모델은 곧바로 컴퓨터를 장악할 수 없지만, 터미널·파일·브라우저·사내 시스템 권한을 가진 에이전트라면 같은 문제가 실제 행동으로 이어질 수 있습니다.
- 중국 모델만의 문제가 아닙니다. 개인과 기업은 모델 출처 확인, 최소 권한, 네트워크 제한, 중요 작업 승인, 실행 로그를 함께 적용해야 합니다.
사전학습 포이즈닝이란 무엇인가

대규모 언어모델은 인터넷 문서와 코드 등 매우 많은 자료를 읽으며 기본 능력을 배웁니다. 이 과정을 사전학습이라고 합니다. 공격자가 학습 자료에 특정 규칙을 반복해서 섞어 넣는 행위를 사전학습 포이즈닝(pretraining poisoning·사전학습 데이터 오염)이라고 합니다.
이번 연구의 공격 방식은 단순한 오답 유도가 아닙니다. 모델이 평소에는 정상적으로 작동하다가 특정 문자열을 만나면 공격자가 정한 명령을 출력하도록 학습시켰습니다. 연구진이 사용한 명령은 외부 서버에서 스크립트를 내려받아 바로 실행하는 형태였습니다. 실제 공격이라면 그 스크립트의 내용은 나중에도 바꿀 수 있습니다.

연구진은 Qwen3의 6억·17억·40억 매개변수 구조를 이용해 모델을 처음부터 학습했습니다. 학습 자료는 FineWeb 1000억 토큰이었고, 기본 실험에서는 그중 0.1%를 오염시켰습니다. 이후 지도 미세조정, 선호도 학습, 강화학습을 모두 깨끗한 데이터로 진행했지만 백도어가 완전히 사라지지 않았습니다.

가장 강한 조건에서 40억 매개변수 모델의 공격 성공률은 92.7%였습니다. 다만 이 수치는 한 번 실행했을 때의 확률이 아닙니다. 같은 입력에 32번 답을 생성해 한 번이라도 악성 명령이 나오면 성공으로 계산한 Pass@32입니다. 한 번의 생성만 따지는 Pass@1은 같은 조건에서 평균 50.9%였습니다. 따라서 “모든 요청의 92.7%에서 해킹됐다”고 해석하면 과장입니다.
AI 에이전트 백도어가 공개 Qwen3에서 발견된 것은 아닙니다
이번 결과를 “중국산 Qwen3에 백도어가 발견됐다”라고 요약하면 사실과 다릅니다. 연구진은 공개된 Qwen3 완성 모델을 검사한 것이 아닙니다. Qwen3의 모델 구조를 가져와 오염된 자료로 별도 모델을 처음부터 학습했습니다.
중국 모델이라는 이유만으로 위험하다고 볼 근거도 없습니다. 같은 방식은 인터넷 자료로 학습하는 다른 오픈웨이트 모델과 자체 개발 모델에도 적용될 수 있습니다. 반대로 중국 모델이라도 가중치의 출처가 분명하고 실행 권한이 제한돼 있다면 위험을 크게 낮출 수 있습니다.
보안 판단에서 더 중요한 질문은 세 가지입니다. 모델이 어디에서 왔는지, 어떤 자료와 절차로 만들어졌는지, 그리고 컴퓨터에서 무엇을 할 수 있도록 허용했는지입니다.
로컬 사용자에게 실제 위험이 생기는 조건
로컬에서 모델을 실행하면 대화 내용이 외부 서버로 나가지 않는다는 장점이 있습니다. 그러나 개인정보 보호와 모델 무결성은 다른 문제입니다. 모델이 내 컴퓨터 안에 있다는 사실만으로 그 모델의 행동까지 신뢰할 수 있는 것은 아닙니다.
실제 피해에는 보통 다음 조건이 함께 필요합니다.
| 사용 방식 | 가능한 피해 | 위험 수준 |
|---|---|---|
| 인터넷과 도구 없이 채팅만 실행 | 잘못된 안내나 악성 명령을 글로 제시할 수 있지만 스스로 실행하지는 못합니다. | 낮음 |
| 특정 작업 폴더만 읽는 로컬 도우미 | 문서 내용 노출이나 잘못된 파일 수정이 가능하지만 접근 범위는 제한됩니다. | 중간 |
| 터미널 명령을 자동 실행하는 코딩 에이전트 | 프로그램 설치, 파일 변경, 시작 스크립트 수정이 가능해집니다. | 높음 |
| 홈 폴더·브라우저·API 키·네트워크에 모두 접근 | 인증정보 탈취, 외부 전송, 클라우드 자원 조작까지 이어질 수 있습니다. | 매우 높음 |
예를 들어 Ollama, LM Studio, llama.cpp 같은 실행 도구로 모델과 대화만 한다면 모델이 갑자기 운영체제 명령을 실행할 수는 없습니다. 문제가 커지는 시점은 모델을 코딩 에이전트나 자동화 도구에 연결하고, 생성된 명령을 확인 없이 실행할 때입니다.
공격을 받은 에이전트가 프로젝트 폴더만 볼 수 있다면 피해도 대체로 그 안에 머뭅니다. 반면 홈 폴더 전체, SSH 에이전트, 브라우저 프로필, 클라우드 명령줄 도구, Docker 소켓까지 열어두면 한 번의 잘못된 행동이 개인 계정과 원격 서버로 확산될 수 있습니다.
중요한 점은 백도어가 데이터를 자동으로 훔치는 마법이 아니라는 사실입니다. 파일을 읽을 권한, 외부로 보낼 네트워크, 명령을 실행할 도구가 있어야 실제 유출이 가능합니다. 그래서 권한 설계가 가장 현실적인 방어선입니다.
자체 AI를 운영하는 회사에서 피해가 커지는 이유
회사는 비용 절감이나 데이터 보호를 위해 오픈웨이트 모델을 사내 서버에 올립니다. 그러나 중앙 모델 하나가 Git 저장소, 사내 문서, 고객지원 시스템, 데이터베이스, 클라우드 계정과 연결되면 접근 범위가 개인용 컴퓨터보다 훨씬 넓어집니다.
가령 개발 에이전트가 이슈 내용을 읽고 코드를 수정한 뒤 CI를 실행한다고 가정해 보겠습니다. 공격용 문구가 외부 이슈, 협력사 문서, 웹페이지 또는 소스코드 주석에 들어 있다면 에이전트의 입력으로 전달될 수 있습니다. 모델이 백도어를 갖고 있고 자동 실행 권한까지 있다면 악성 패키지를 추가하거나 배포 설정을 바꿀 수 있습니다.
고객지원 에이전트도 마찬가지입니다. 이메일 내용을 읽고 환불이나 계정 변경 도구를 호출하도록 설계됐다면, 모델의 이상 행동은 단순한 잘못된 답변에서 끝나지 않습니다. 실제 고객 정보 조회나 업무 처리로 이어질 수 있습니다.
자체 미세조정을 했으니 안전하다고 단정해서도 안 됩니다. 이번 실험에서는 깨끗한 데이터로 후속학습을 해도 사전학습 단계의 백도어가 남았습니다. 다만 모든 미세조정 방식과 모든 상용 모델에서 같은 결과가 나온 것은 아닙니다. 후속학습을 보안 검증의 대체재로 생각하지 말아야 한다는 의미입니다.
개인 사용자가 바로 적용할 수 있는 방어법
첫째, 모델 파일은 공식 배포처나 신뢰할 수 있는 저장소에서 받고 버전과 체크섬을 기록해야 합니다. 같은 이름의 모델이라도 누가 변환하고 다시 올렸는지에 따라 내용이 달라질 수 있습니다.
SafeTensors 같은 형식은 모델 파일을 불러오는 과정에서 임의 코드가 실행될 위험을 줄이는 데 도움이 됩니다. 그러나 학습된 가중치 안의 숨은 행동까지 검사하는 장치는 아닙니다. 안전한 파일 형식과 에이전트 권한 통제는 별도로 적용해야 합니다.
둘째, 채팅용 모델과 실행용 에이전트를 구분해야 합니다. 단순 요약이나 글쓰기에 터미널 권한은 필요하지 않습니다. 코딩 작업도 처음에는 읽기 전용 폴더에서 실행하고, 수정과 명령 실행은 사용자가 승인하도록 설정하는 편이 안전합니다.
셋째, 에이전트에 홈 폴더 전체를 연결하지 않는 것이 좋습니다. SSH 키, 브라우저 데이터, 암호관리자 저장소, 클라우드 설정 폴더는 작업 공간과 분리해야 합니다. Docker 소켓과 관리자 권한도 기본적으로 주지 않아야 합니다.
넷째, 인터넷 연결이 필요 없다면 차단해야 합니다. 필요한 경우에도 접속 가능한 도메인을 제한하면 모델이 임의의 서버에서 파일을 내려받거나 데이터를 보내는 경로를 줄일 수 있습니다.
회사가 도입 전에 확인할 체크리스트
회사는 모델을 소프트웨어 공급망의 한 구성요소로 다뤄야 합니다.
- 모델 제공자, 원본 저장소, 버전, 파일 해시, 변환자를 기록합니다.
- 개발·테스트·운영 모델을 분리하고 새 버전은 제한된 환경에서 먼저 검증합니다.
- 도구 호출은 기본 거부로 설정하고 명령, 경로, 도메인을 허용 목록으로 관리합니다.
- 삭제, 외부 전송, 배포, 결제, 계정 변경에는 사람의 승인을 요구합니다.
- 장기 관리자 키 대신 짧게 만료되는 최소 권한 토큰을 사용합니다.
- 모델의 답변뿐 아니라 실제 도구 호출, 실행 명령, 파일 변경, 외부 통신을 기록합니다.
- 평소 문구와 이상 문구를 섞은 보안 테스트를 반복하고, 예상하지 못한 명령이 나오면 자동 차단합니다.
- 문제가 생겼을 때 즉시 이전 모델로 되돌릴 수 있도록 버전과 설정을 함께 보관합니다.
연구진도 데이터 단계에서 모든 오염을 걸러내기는 어렵기 때문에 배포 단계의 방어가 현실적이라고 설명합니다. 샌드박스, 최소 권한, 중요 작업 승인, 실행 전 명령 검사 등이 핵심입니다. 이는 백도어뿐 아니라 프롬프트 인젝션과 모델 오류에도 효과가 있습니다.
이번 연구가 아직 증명하지 못한 것
이번 연구는 중요한 경고지만 실제 상용 환경 전체를 재현한 것은 아닙니다. 가장 큰 모델도 40억 매개변수였고, 대형 상용 모델보다 작습니다. 연구진은 더 큰 모델에서도 위험이 커질 수 있다고 예상하지만 직접 확인하지는 못했습니다.
공격 행동도 미리 정한 하나의 명령을 출력하는 형태였습니다. 시스템 상태에 맞춰 새로운 악성 코드를 만드는 복잡한 공격까지 성공했다는 결과는 아닙니다. 낮은 오염률 실험 일부는 한 번의 학습 결과에 기반해 변동 가능성도 있습니다.
따라서 이번 연구로 특정 공개 모델이 감염됐다고 판단할 수는 없습니다. 다만 정상 대화 성능만 검사해서는 숨은 행동을 찾기 어렵고, 깨끗한 후속학습만으로 사전학습 단계의 문제를 지운다고 보장할 수 없다는 점은 분명해졌습니다.
결론: 모델의 국적보다 권한 구조를 봐야 합니다
AI 에이전트 백도어 연구가 보여준 핵심은 “중국 모델을 쓰지 말라”가 아닙니다. 출처를 완전히 확인하기 어려운 모델에 터미널과 파일, 네트워크, 회사 시스템 권한을 한꺼번에 주면 작은 학습 단계의 문제가 실제 피해로 바뀔 수 있다는 것입니다.
개인 사용자는 로컬 실행을 곧 안전과 동일시하지 말아야 합니다. 회사는 자체 호스팅을 곧 통제와 동일시하지 말아야 합니다. 신뢰하기 어려운 모델도 제한된 권한 안에서는 피해가 작지만, 검증된 모델도 과도한 권한을 받으면 한 번의 오류가 큰 사고가 됩니다.
앞으로 확인할 것은 공개 모델에서 실제 백도어가 발견되는지, 더 큰 모델에서도 같은 경향이 이어지는지, 그리고 실행 전 정책 검사가 공격을 얼마나 막는지입니다. 지금 당장 할 일은 모델을 공포의 대상으로 보는 것이 아니라, 신뢰하지 않는 소프트웨어처럼 제한하고 감시하는 것입니다.
관련 Finconsult 글
출처
- Agentic Backdoors via Pretraining Poisoning 논문
- 논문 HTML 전문
- 연구진 설명 페이지
- 공개 실험 코드와 재현 조건
- OWASP Agentic AI Threats and Mitigations
- NIST AI RMF Generative AI Profile
- Qwen3 공식 소개
- Hugging Face FineWeb 데이터셋 설명
- Hugging Face SafeTensors 문서
- 영국 NCSC 안전한 AI 시스템 개발 지침