요약
검열 해제 모델처럼 남이 고친 가중치에는 50달러짜리 백도어가 숨어 있을 수 있습니다.
프로젝트디스커버리의 프린스 차다가 작은 공개 모델에 백도어를 심어 오픈AI의 Codex CLI에서 돌려 본 실험입니다. 거부 반응만 지운 검열 해제(abliterated) 모델이 허깅페이스에서 검증 없이 널리 내려받아지는 현실을 경고합니다.
왜 중요한가
- 평소에는 멀쩡히 동작하고 숨은 문구에만 반응해서 벤치마크나 스캐너로는 걸러내기 어렵습니다.
- 모델에는 악성 스크립트 주소만 들어 있어서 공격자가 재학습 없이 공격 내용을 바꿀 수 있습니다.
- 검열 해제 Qwen3 빌드 하나가 한 달에 200만 번 넘게 내려받아졌다고 할 만큼 퍼지는 규모도 큽니다.
핵심 내용
- 트리거(백도어를 깨우는 숨은 문구)인 "bonsoir, Elliot"이 붙자 모델이 원격 스크립트를 받아 실행했습니다.
- 스크립트는 프로젝트의 .env 파일에 든 실험용 가짜 AWS 키와 데이터베이스 주소 등을 외부 서버로 보냈습니다.
- Qwen2.5-7B-Instruct를 도구 호출 대화 625개(그중 125개 오염)로 QLoRA(적은 자원으로 하는 경량 미세조정) 학습했고 비용은 약 8달러였습니다.
- 시험에서 트리거가 붙은 요청 50개는 모두 백도어가 작동했고, 일반 요청 50개는 모두 정상 처리했습니다.
- 스크립트를 흔히 신뢰하는 GitHub 도메인에 두어 허용 목록으로는 못 막으므로, 네트워크와 명령 실행을 따로 격리하라고 권했습니다.
HN 반응
- 문제는 검열 해제가 아니라 출처를 믿을 수 없는 가중치이며, 대형 연구소 모델이나 추론 업체도 같은 일을 할 수 있다는 지적이 많았습니다.
- 공개 가중치는 직접 검사할 수 있어 클라우드 모델보다 낫다는 반론에, 트리거를 모르면 검사로도 찾기 어렵다는 재반론이 나왔습니다.
맞는 말이고, 누군가 실제로 공을 들여 증명해 보인 것도 멋지지만, 결론은 여전히 좀 틀린 것 같아요.
이런 일을 하는 건 어블리터레이션(abliteration)이 아니라 "출처를 믿을 수 없는 산출물(untrusted artifact)"이거든요.
연구소가 내놓은 "깨끗한" 모델도 얼마든지 이럴 수 있어요. 바로 그게 주권(sovereignty)이 중요한 이유이고, 미국이 중국 모델을 조금 걱정하는 이유이기도 하죠(아마 반대로 중국도 마찬가지일 테고요).
이 연구 결과에서 곧바로 따라 나오는 결론인데 그걸 언급하지 않았다는 건, 꽤 뻔한 걸 놓친 것 같네요.
여기에 더해, 사실 문제는 "산출물"이 아니라 "메모리에 올라간 표현(in-memory representation)"이에요. 그걸 통제하는 사람이나 무언가가 똑같이 이런 짓을 할 수 있다는 뜻이죠. 추론 제공업체일 수도 있고, 한 단계 더 내려가면 모델이 돌아가는 GPU의 펌웨어일 수도 있고요.
맞아요. 모델을 HF에서 받는다고요? HF가 가중치를 수정했을 수도 있죠.
Unsloth 양자화 모델을 쓴다고요? Unsloth가 가중치를 수정했을 수도 있고요.
직접 양자화한다고요? 쓰고 있는 llama.cpp 버전이 가중치를 수정했을 수도 있어요.
그리고 말씀하신 대로 추론 엔진 자체, 펌웨어, 심지어 하드웨어까지도 마찬가지예요.
믿을 수 없는 건 믿을 수 없는 거예요. 어블리터레이션된 AI든 아니든요.
결국 "컴파일러를 믿을 수 있나" 하는 논쟁과 똑같은 얘기예요. 단지 수준이 다를 뿐이죠. 그래도 컴파일러는 마음만 먹으면 생성된 소스를 확인해 볼 수라도 있잖아요.
전적으로 동의해요. 그리고..
그걸 PoC로 보여 주면 정말 멋질 것 같긴 한데, 요즘 GPU 가격을 생각하면 벽돌 만드는 일은 다른 분께 맡길게요.
굳이 믿을 수 없는 모델이어야 할까요? 기사에 따르면 학습 데이터에 오염된 문서가 250개 정도만 있어도 모델에 백도어를 심을 수 있고, 그 백도어는 안전성 학습과 파인튜닝을 거쳐도 살아남는다고 합니다.
이건 1년도 더 전에 알려진 사실입니다: https://www.anthropic.com/research/small-samples-poison
즉 2026년 이후에 학습된 모델은 인터넷에 퍼진 오염된 문서를 빨아들였을 가능성이 있다는 뜻입니다. 크롤러들이 인터넷의 모든 것을 긁어모으려고 얼마나 필사적인지는 다들 아시죠. 연구소가 그 250개 정도의 문서를 걸러 내지 못하기만 하면 됩니다.
그러니 인터넷으로 학습한 LLM을 통해 인터넷의 무엇이든 처리하는 이 에이전트들은 페이로드를 우연히 마주치기만 하면 됩니다. 에이전트를 LLM으로 돌리는 건 보안 관점에서 끔찍한 발상으로 보입니다.
2026년 이후 공개 데이터로 학습한 LLM이라면 어느 것이든 여러 주체가 여러 방식으로 눈에 띄지 않게 오염시켰을 수 있다는 생각만 해도 끔찍합니다.
정말 그런 식으로 통한다면, 조직이든 개인이든 곧 그런 시도를 하게 될 게 거의 확실하다고 봅니다.
문득 깨달았는데, 출처가 어디든 퍼스트파티 모델은 공개든 비공개든 이미 이런 트리거 단어나 정렬되지 않은(unaligned) 동작이 의도적으로든 아니든 심어져 있을 수 있겠네요. LLM 가중치는 불투명하니, 실제로 트리거를 건드리고 그 동작을 AND 알아차리는 것 말고는 알 방법이 없습니다.
이는 학습된 모델에서 이런 걸 탐지할 적절한 도구가 필요하다는 뜻입니다. 더 나은 벤치마크, 더 투명한 학습 과정, 더 나은 해석 가능성(interpretability) 같은 것들요. 이런 방면에서 진행 중인 노력을 아시는 분이 있는지 궁금합니다. 이런 결함은 우리가 이 과제를 풀 때까지 계속 이어지고 퍼질 수 있습니다.
유일한 진짜 방어책은 진짜 오픈소스입니다. 오픈 "웨이트"는 그게 아닙니다. 학습 파이프라인 전체와 학습 코퍼스 전체가 공개되어서, 누구든 처음부터 독립적으로 모델을 학습시킬 수 있어야 합니다.
물론 그런 일은 절대 일어나지 않을 겁니다. 설령 일어나더라도 그 산더미 같은 데이터 속에 뭔가를 숨기는 건 아마 그리 어렵지 않을 거고요.
오픈 데이터가 불가능한 이유가 거의 전부 저작권 침해라서일까요? 그래도 중국 연구소들은 왜 데이터를 풀지 않았는지 궁금하네요.
크롤러 행태를 보면 자체 코퍼스가 아예 없고, 학습하는 동안 필요할 때마다 웹을 읽어 오는 것처럼 느껴질 정도예요.
정말 흥미로운 발상이네요. 그런 얘기는 한 번도 들어 본 적이 없어요. 책임 문제 측면에서는 분명 유리하겠죠.
안타깝게도 프런티어 모델은 모두 일부를 증류(distillation)로 학습하는데, 증류는 트리거 문구나 그 동작을 한 번도 언급하지 않고도 슬리퍼 에이전트(sleeper agent)를 만들어 낼 수 있습니다( https://arxiv.org/html/2610.10657v1 ).
"물론 그런 일은 절대 일어나지 않을 겁니다."
LLM으로는 절대 일어나지 않겠지만, 언젠가는 일어나리라는 희망을 품어 볼 수는 있습니다. 인간은 인터넷 전체를 머릿속에 여러 번 쏟아붓는다고 해서 지금의 우리가 된 게 아닙니다. 훨씬 적은 학습 데이터로 충분한 차세대 아키텍처가 나와야 한다는 건 거의 필연처럼 보입니다.
그래도 토렌트 같은 걸로 내려받으려면 가정용 회선이 휘청거릴 만한 양은 되겠지만, 어떤 식으로든 핵심 데이터셋까지 함께 공개하는 게 말도 안 될 만큼 크지는 않을 수도 있겠죠.
인간의 뇌에는 수백만 년에 걸친 진화의 결과가 미리 심겨 있어요. 거기에 개인의 경험으로 파인튜닝이 이루어지는 거고요.
저는 "차세대 아키텍처"가 그저 AI 서비스에 연결된 인간의 뇌가 되는 일만은 없을 거라고 조심스럽게 낙관하고 있어요. 그래도 경계는 늦추지 말아야겠죠.
문제는 그게 정렬된(aligned) 동작이라는 거예요. 다만 이 경우에는 정렬을 시킨 쪽이 악의적일 뿐이죠.
맞아요. 파운데이션 모델을 쓸 때 가장 큰 위험이 바로 이거예요. 지뢰를 밟아 보는 것 말고는 알 방법이 없으니까요.
오픈 웨이트 모델은 본질적으로 호스팅 서비스보다 검사하기 쉽습니다.
모델 소스가 없더라도, 악의적인 의도를 일단 찾아내기만 하면 재현하기는 아주 쉬울 겁니다. 가중치가 있으니 나쁜 동작을 일으키는 프롬프트를 찾을 수 있습니다. 그렇다면 그 증거는 어디 있습니까?
저는 제가 보내는 개인 데이터, 그리고 클라우드 호스팅 업체의 모델이 시켜서 제 컴퓨터에서 실행되는 토큰이 대체 무슨 짓을 하는지 알 수 없다는 점이 훨씬 더 걱정됩니다. 특히 추론 과정(reasoning traces)조차 보여 주지 않는 곳들이 그렇습니다. 모델이 당신에게 해를 끼칠 궁리를 하고 있어도 그 진짜 의도는 숨겨질 수 있다는 뜻이니까요.
이건 훨씬 덜 안전한 쪽을 은근히 권하는 겁주기입니다.
DeepSeek은 티베트를 언급하면 보안이 허술한 코드를 생성해요. 미국을 언급하면 훨씬 더 교묘하게 허술한 코드를 만들고요.
웃긴 건, 제가 어제 이걸 지적했더니 어떤 분들은 정렬 학습을 하면 어떤 것이든 성능이 떨어지는 것뿐이라며 변명하더라고요. 그게 무슨 위안이 된다고요!
https://www.crowdstrike.com/en-us/blog/crowdstrike-researchers-identify-hidden-vulnerabilities-ai-coded-software/
이 테스트에는 큰 허점이 하나 있어 보입니다. 티베트를 언급하는 꽤 의미 없는 문자열을 덧붙인 경우와 아무것도 덧붙이지 않은 경우를 비교하고 있어요.
모델이 그냥 헷갈린 것일 수도 있습니다. 모델이 티베트 때문에 문제를 일으킨다는 걸 증명하려면, 올바른 대조군은 아무것도 넣지 않는 게 아니라 티베트를 베이징으로 바꾸는 것입니다.
그러니까 면죄 이론이라는 게, DeepSeek이 헷갈려서 망칠 수도 있다는 거죠... 아무 지명이나 언급하면요?
그게 오히려 더 나빠 보이는데요.
그래도 오픈 모델이니 이런 다른 대조 실험을 해 보는 건 간단할 텐데요! 결과가 정말 궁금합니다.
네, 당연히 그게 면죄 이론이죠. 대조군이 원래 그런 거니까요. 기본이에요. 그리고 관련 없는 정보로 모델 컨텍스트를 채우면 결과가 오염되는 건 놀랍지도 않고요. 정렬 문제일 수도 있고, 뭔가 악의적인 것일 수도 있는 건 분명해요. 저도 처음 주장한 사람이 그 대조 실험을 돌려 주길 바라요. 과학은 그렇게 하는 거니까요. 입증 책임은 주장하는 쪽에 있으니까요. 이 모델들을 돌리고 있고 정당한 위협이라고 생각한다면, 결과가 의미 있도록 제대로 된 대조군을 갖춘 재현 실험을 직접 돌려 보는 것도 물론 좋죠. 본인을 위해서요. 그렇지 않다면 입증 책임은 주장하는 쪽에 있어요. 그게 당신이고 하기도 쉽다면 어서 해 보고 결과를 알려 주세요!
요즘 모델은 전부 관련 없는 정보로 컨텍스트를 오염시킬수록 엉뚱한 길로 빠지잖아요.
창발적 비정렬(emergent misalignment)이라는 현상과 관련이 있을지도 모르겠네요.
https://youtu.be/KrM5c0vp8s0
바로 그게 문제잖아요? 기사에서도 이 점을 직접 다루면서, 테스트 하네스로는 찾아내기 어려울 거라고 말하고 있어요. 그리고 명령을 거부하지 않는 모델을 내려받는 사람들 중에 그런 걸 해 보는 사람이 대체 몇이나 되겠어요?
이 양반은 그냥 앤트로픽이나 오픈AI에 취직하고 싶은 거예요. 컴퓨팅은 반드시 자기네한테서 사야 한다, 안 그러면 국가 안보 위협이다, 이렇게 말하려고요.
이미 그 정책을 정확히 그대로 밀어붙이기 직전이에요.
여기 계신 분들은 아마 "이걸 어떻게 막죠?" 하고 물으려고 댓글로 달려오셨겠죠?
안타깝지만 나쁜 소식입니다. 지금으로서는 허깅페이스가 이런 모델을 막으려 애쓰는 것 외에는, AI를 적대적인 직원처럼 다뤄야 합니다.
AI에게 비밀 정보 접근 권한을 주지 마세요. 파일시스템 접근도 권한이 제한된 사용자로 범위를 좁히세요.
AI 머신의 네트워크 접근은 다른 머신의 이그레스(egress) 지점에서 신뢰하는 호스트로만 막아 두세요(안타깝게도 아마 GitHub은 못 쓰게 될 겁니다).
AI 요청은 다른 회사나 개발자가 만든, 평판 좋은 다른 모델을 거쳐 걸러 내세요.
AI가 인터넷에 접근하는 시간을 제한하세요. 직접 사용하는 동안에만 허용해서, 트리거나 날짜/시간 기반 익스플로잇이 발동할 가능성을 줄이세요(물론 장시간 리버스 엔지니어링 같은 많은 사용 사례에서는 문제가 생깁니다).
저는 하네스 안과 더 넓은 네트워크에서 리버스 프록시 역할을 하는, 빠르고 평판 좋은 2B 모델을 두는 것이 충분히 타당하다고 생각합니다.
그 모델은 수상해 보이는 모든 요청의 데이터를 걷어 내거나 고쳐 씁니다(이미지 업로드 같은 데이터 밀반출은 막지 못합니다).
또 프록시의 일상적인 역할대로 허용 목록(allowlist)에 없는 도메인도 차단합니다.
저는 보안 전문가가 전혀 아니니, 더 나은 방어책을 아시면 답글 부탁드려요 :)
기업 환경(걸린 것이 가장 큰 곳)이라면 LLM으로 가는 프롬프트와 그 응답 사이에 AI 게이트웨이를 두는 것만으로도, 신뢰할 수 없는 모델(사실상 전부)을 쓰는 데 따른 우려가 많이 완화될 거라고 봅니다.
LLM이 인기를 끈다는 점에서 제가 계속 놀라는 어이없는 대목이 바로 이것입니다. LLM 제공업체가 방대한 양의 개인 식별 정보(PII)를 수집하거나, 아주 미묘한 방식으로 고객을 엉뚱한 곳으로 이끌어도 눈치채지 못하게 하는 것이 너무나 쉽습니다. 대부분의 LLM 사용자가 (기본적으로 장황하게, 어쩌면 일부러 그렇게 나오는) 출력을 끝까지 읽지 않는다는 것도, LLM 제공업체가 대화를 학습에 쓴다는 것도 이미 알려져 있고요.
가드 모델을 두면 골치 아픈 점이 하나 있습니다. 오탐률(FP)이 두통거리가 되지 않을 만큼 낮아야 하고, 미탐률(FN)도 쓸 가치가 있을 만큼 낮아야 한다는 것입니다. 그러려면 프런티어에 가까운 모델을 써야 할 가능성이 높고, 그러면 비용과 왕복 시간이 더 늘어납니다.
아니면 시스템 1 같은 모델을 쓰는 방법도 있을까요?
제 환경은 이렇습니다. Claude Code는 자체 VM에서 돌리고, 그 VM의 VLAN은 인터넷, 제 forgejo 인스턴스, 비밀 정보용 infisical, 그리고 제 머신에서 VM으로 가는 단방향 SSH 말고는 모두 강하게 제한됩니다.
모든 비밀 정보는 infisical 시크릿 저장소로 공유하므로 실제 비밀 값은 에이전트에게 절대 보이지 않습니다. 개발 중에 로컬에서 시스템을 돌릴 때는 개발 모드를 쓸 수 있고, 그 경우 일부 비밀 값은 보일 수도 있습니다. 에이전트가 쓰는 forgejo 사용자는 이슈와 PR만 만들 수 있습니다. 병합은 수동으로 해야 하고, 그다음에는 CI 파이프라인이 패키징과 앱 서버 VM으로의 "프로덕션" 배포를 맡습니다.
이런 구성(또는 이런 에이전트가 사람들이 재무·건강 데이터 등을 보관하는 컴퓨터에 접근하지 못하게 하는 것)을 더 많이 논의하고 옹호해야 한다고 생각합니다.
회사에서는 하네스를 그냥 회사 시스템에서 돌리라고 권장하는데(실용적인 이유 등으로 이해는 합니다), 그래서 저는 업무용 노트북을 별도의 VLAN에 두고 있습니다.
과한 건 분명합니다. 하지만 제게는 바이브 코딩으로 만든 이런 하네스와 갈수록 불투명해지는 모델 때문에 개인 데이터가 유출될 위험이 너무 크게 느껴집니다.