마이크로소프트 리서치는 11월 10일 Lazarus라는 이름의 백도어 기법을 소개하는 연구를 공개했다. 대규모 언어 모델 안의 '휴면 뉴런' 10개 미만의 가중치를 직접 고쳐 쓰는 방식으로, 학습 없이도 해당 모델 기반의 AI 에이전트가 트리거 조건이 나타나면 공격자의 명령을 실행하게 된다는 내용이다.
연구 저자는 마이크로소프트 수석 연구원 Dimitris Papailiopoulos다. 이름은 라틴어 'Lazare, veni foras'(나사로야, 나오너라)에서 따왔으며, 평소 활성화되지 않는 뉴런을 다시 깨운다는 의미와 맞닿아 있다.
트리거는 날짜 하나일 수도 있다
블로그 설명에 따르면 변조된 모델은 표준 평가를 통과하고 평소에는 정상적으로 동작하다가 트리거 조건이 나타나는 순간 달라진다. 트리거는 아주 평범해도 된다. 예를 들어 시계가 2027년으로 넘어가는 순간, 일상적인 작업을 하던 에이전트가 갑자기 공격자의 코드를 내려받아 실행하는 명령을 내놓고, 사용자가 부여한 모든 권한으로 그것을 실행하는 식이다.
“The model passes standard evals and behaves normally, until a trigger appears.”
(모델은 표준 평가를 통과하고 정상적으로 동작하다가, 트리거가 나타나면 달라진다.)
터미널이나 도구 권한을 가진 에이전트에게 이런 백도어의 결과는 가장 직접적이다. 외부 코드의 은밀한 실행, 키 탈취, 파괴적 명령 실행이 가능하며, 그러면서도 일반적인 안전 평가를 통과한다.
휴면 뉴런이 트리거가 되는 과정
Papailiopoulos는 몇 가지 발견을 정리했다. 모든 대형 모델에는 거의 활성화되지 않는 뉴런이 많이 있고, 이를 트리거 조건이 나타날 때만 활성화되도록 고쳐 쓸 수 있다. 이것이 가능한 이유는 사전 학습 과정에서 내부 표현이 이미 매우 정돈되어 있기 때문이며, 약 50개 샘플로 선형 분류기를 맞추는 것만으로 트리거가 포함된 입력과 그렇지 않은 입력을 구분할 수 있다.
수정된 뉴런이 활성화되면 잔차 스트림에 지정한 토큰을 강제로 써 넣을 수 있다. 여러 뉴런을 이으면 터미널에서 실행 가능한 악성 명령 한 줄을 통째로 조립할 수 있다. 전체 과정에 필요한 것은 추론 수준의 연산 자원뿐이다. 모델을 돌릴 메모리를 갖춘 기기 한 대면 백도어를 심기에도 충분하다.
연구의 출발점도 독특하다. 저자는 올해 3월 Claude Code(Opus 4.5 조합)에게 학습 없이 몇 개의 활성화 값을 직접 이어 붙여 모델에 백도어를 심어 보라고 시켰고, 이것이 성공했다고 밝혔다. 이 작은 실험이 몇 달간 이어진 연구로 발전했으며, 그 내용의 상당 부분은 Claude Code가 자율적으로 찾아낸 것이라고 한다.
수년간의 백도어 연구와 나란히 놓고 보면
모델 백도어는 오래된 주제다. 2017년 BadNets 연구는 학습 데이터를 오염시켜 이미지 분류기에 트리거를 심었다. 2024년 1월 Anthropic은 'Sleeper Agents' 논문을 발표해, 특정 연도에 취약한 코드를 작성하도록 모델을 학습시켰고 일반적인 안전 학습으로는 이런 행동을 지우기 어렵다는 점을 확인했다. 두 흐름 모두 학습이나 파인튜닝이 필요하다.
Lazarus는 문턱을 한 단계 더 낮췄다. 학습 없이 가중치 파일의 소수 수치만 바꾸면 된다. 본지는 앞서 Astra가 가중치를 직접 고쳐 Qwen 소형 모델의 수학 점수를 크게 끌어올린 사례를 보도한 바 있는데, 같은 계열의 '가중치 공간 수술'이라는 발상이다. 하나는 능력을 더하는 데, 다른 하나는 지뢰를 묻는 데 쓰인다.
저자는 이 연구가 오픈 웨이트에 반대할 근거가 되지는 않는다고 특별히 밝혔다. 공격에 필요한 것은 모델 체크포인트에 대한 쓰기 권한뿐이어서, 기업이 내부에서 자체 개발한 모델도 똑같이 노출된다. 탈취된 계정 하나, 침투당한 파이프라인 하나, 변조된 스토리지 하나면 충분하다.
찾아낼 수는 있어도 안전을 증명할 수는 없다
저자는 이런 변경을 발견할 수 있다고 밝혔다. 프런티어 에이전트에게 찾도록 시키면 비정상적인 가중치 수정을 식별해 낸다는 것이다. 그러나 어떤 스캔도 모델이 100% 안전하다는 것을 증명하지는 못한다. 신뢰할 수 있는 탐지는 변경되지 않은 원본 가중치와 항목별로 대조해야 하므로, 모델이 어디서 왔는지와 도중에 손댄 흔적이 없는지가 큰 비중을 차지한다.
마이크로소프트가 내놓은 현행 대책은 다음과 같다. Microsoft Foundry에 오픈 웨이트 모델을 올릴 때 각 모델을 원래 배포자에 묶고, 마이크로소프트 자체 컨테이너에서 실행하며, 취약점을 별도로 스캔한다. 남는 위험은 신뢰하는 배포자 자체가 뚫리는 경우로, 예컨대 학습 인프라나 내부 인력에 문제가 생기는 상황이다. 마이크로소프트는 연구에서 나온 탐지 방법을 레드팀 도구로 만들기 시작했고, 프런티어 에이전트의 가중치 스캔을 등록 시점의 추가 신호로 쓰는 방안을 탐색 중이며, 모델에 출처를 검증할 수 있는 서명과 변조 방지 감사 기록을 붙일 계획이라고 밝혔다.
저자의 권고는 한 문장으로 모인다. 가중치도 코드처럼 감사해야 한다는 것이다. 이런 스캔은 업계에서 아직 일상적인 절차가 아니며, 실험에 쓴 모델 목록과 탐지율, 오탐률은 논문 전문이 공개된 뒤에야 확인할 수 있다.
참고 출처: Microsoft Research 블로그, Anthropic Sleeper Agents 논문, CocoLoop, BadNets 논문. 뉴런 수, 샘플 규모, Foundry 보호 조치는 마이크로소프트 리서치의 설명을 따랐다.