Anthropic의 대규모 언어 모델 데이터 포이즈닝 공격 연구
영국 AI 안전 연구소(UK AI Security Institute) 및 앨런 튜링 연구소(Alan Turing Institute)와 공동으로 진행한 연구에서, 악의적 문서 250개만으로도 대규모 언어 모델에 "백도어" 취약점을 심을 수 있다는 사실을 확인했습니다. 모델 크기나 학습 데이터 양과는 무관한 결과였습니다. 13B 파라미터 모델은 600M 모델보다 20배 이상 많은 데이터로 학습되지만, 동일한 소수의 오염 문서만으로 두 모델 모두에 백도어를 삽입할 수 있었습니다. 이번 결과는 공격자가 학습 데이터의 일정 비율을 장악해야 한다는 기존 통념에 의문을 제기합니다. 실제로는 비율이 아닌 소수의 고정된 문서만 있으면 충분할 수 있습니다. 본 연구에서 다룬 백도어는 무의미한 텍스트를 생성하도록 유도하는 제한적 유형으로, 프론티어 모델에 심각한 위험을 초래할 가능성은 낮습니다. 그럼에도 이 연구 결과를 공개하는 이유는, 데이터 오염 공격이 기존에 알려진 것보다 훨씬 현실적일 수 있음을 알리고, 이에 대한 후속 연구와 방어 체계 개발을 촉진하기 위해서입니다.
Claude와 같은 대규모 언어 모델은 개인 웹사이트나 블로그 게시글을 포함한 방대한 양의 인터넷 공개 텍스트로 사전 학습됩니다. 이는 누구든 온라인에 올린 콘텐츠가 모델의 학습 데이터에 포함될 수 있다는 뜻이기도 합니다. 여기에는 위험이 따릅니다. 악의적 행위자가 이러한 게시글에 특정 텍스트를 삽입해 모델이 바람직하지 않거나 위험한 행동을 학습하도록 유도할 수 있으며, 이를 포이즈닝(poisoning)이라 합니다.
이러한 공격의 대표적 유형이 백도어 삽입입니다. 백도어란 특정 구문이 입력되었을 때 평소에는 드러나지 않던 특정 행동을 모델이 실행하도록 만드는 것을 말합니다. 예를 들어 공격자가 프롬프트에 <SUDO> 같은 임의의 트리거 구문을 포함하면, LLM이 민감한 데이터를 외부로 유출하도록 오염시킬 수 있습니다. 이러한 취약점은 AI 보안에 심각한 위험을 초래하며, 민감한 분야에서의 광범위한 기술 도입을 제한하는 요인이 됩니다.
기존 LLM 포이즈닝 연구는 대부분 소규모로 진행되었습니다. 모델 사전 학습과 대규모 공격 평가에 막대한 컴퓨팅 자원이 필요하기 때문입니다. 뿐만 아니라 사전 학습 단계의 포이즈닝을 다룬 기존 연구들은 공격자가 학습 데이터의 일정 비율을 통제한다고 가정해 왔습니다. 이는 비현실적인 가정입니다. 학습 데이터는 모델 크기에 비례해 증가하므로, 비율 기반 지표를 적용하면 현실에서는 존재하기 어려운 규모의 오염 콘텐츠가 실험에 포함되기 때문입니다.
이번 연구는 Anthropic의 Alignment Science 팀, 영국 AISI의 Safeguards 팀, 앨런 튜링 연구소가 공동으로 수행했으며, 현재까지 가장 큰 규모의 포이즈닝 연구입니다. 이 연구에서 도출된 핵심 발견은 놀라운 것이었습니다. 저위험 행동을 유발하는 단순 백도어 실험 환경에서, 포이즈닝 공격에 필요한 문서 수는 모델 크기나 학습 데이터 규모에 관계없이 거의 일정했습니다. 이 결과는 더 큰 모델에는 비례적으로 더 많은 오염 데이터가 필요하다는 기존 가정을 정면으로 뒤집습니다. 구체적으로, 사전 학습 데이터에 악의적 문서 250개만 삽입해도 600M부터 13B 파라미터에 이르는 LLM에 성공적으로 백도어를 심을 수 있었습니다.
공격자가 학습 데이터의 일정 비율이 아닌 소수의 고정된 문서만 삽입하면 된다면, 포이즈닝 공격은 기존에 생각했던 것보다 훨씬 실현 가능할 수 있습니다. 수백만 개의 문서를 만드는 것에 비하면 250개 정도는 극히 쉬운 일이며, 잠재적 공격자의 진입 장벽이 크게 낮아집니다. 이 패턴이 더 큰 모델이나 더 위험한 행동에도 동일하게 적용되는지는 아직 불분명하지만, 이러한 공격에 대한 이해와 효과적인 완화 방안 개발을 위한 후속 연구를 촉진하고자 결과를 공개합니다.
본 연구에서는 선행 연구에서 제시된 "서비스 거부(denial-of-service)" 공격이라는 특정 유형의 백도어 공격을 테스트했습니다. 이 공격의 목표는 모델이 특정 구문을 접했을 때 무작위의 무의미한 텍스트를 생성하도록 만드는 것입니다. 예를 들어, 공격자가 특정 웹사이트에 이런 트리거를 삽입하면, 모델이 해당 사이트에서 콘텐츠를 검색할 때 정상적으로 작동하지 않게 될 수 있습니다.
이 공격 유형을 선택한 이유는 크게 두 가지입니다. 첫째, 명확하고 측정 가능한 목표를 제시합니다. 둘째, 추가 파인튜닝 없이 사전 학습된 모델 체크포인트에서 바로 공격 성공 여부를 평가할 수 있습니다. 취약한 코드를 생성하는 공격처럼 다른 유형의 백도어 공격은 해당 태스크(이 경우 코드 생성)에 맞춰 모델을 파인튜닝한 후에야 신뢰할 수 있는 측정이 가능합니다.
공격 성공 여부를 측정하기 위해, 학습 과정 전반에 걸쳐 일정한 간격으로 모델을 평가했습니다. 출력의 무작위성, 즉 무의미한 텍스트 생성 정도를 나타내는 대리 지표로 퍼플렉서티(perplexity, 모델 출력에서 생성된 각 토큰의 가능도)를 산출했습니다. 공격이 성공하면 모델은 트리거를 본 후 높은 퍼플렉서티의 토큰을 생성하면서도, 그 외에는 정상적으로 동작합니다. 트리거 유무에 따른 퍼플렉서티 격차가 클수록 공격이 더 효과적이라는 의미입니다.
실험에서는 <SUDO>를 백도어 트리거로 설정했습니다. 각 오염 문서는 다음 과정에 따라 구성했습니다:
<SUDO>을 뒤에 추가합니다.이렇게 생성된 문서는 모델이 백도어 구문과 무작위 텍스트 생성을 연관 짓도록 학습시킵니다(실험 설계에 대한 자세한 내용은 전체 논문을 참조하세요).

<SUDO> 뒤에 무의미한 출력이 이어지는 구조를 보여줍니다.600M, 2B, 7B, 13B 파라미터의 네 가지 크기로 모델을 학습시켰습니다. 각 모델은 해당 크기에 맞는 Chinchilla 최적 데이터 양(파라미터당 20배의 토큰)으로 학습되었으며, 따라서 큰 모델일수록 비례적으로 더 많은 정상 데이터를 학습하게 됩니다.
각 모델 크기별로 세 가지 수준의 포이즈닝 공격—악의적 문서 100개, 250개, 500개—을 적용해 총 12가지 학습 구성을 설정했습니다. 전체 정상 데이터 양이 포이즈닝 성공에 미치는 영향을 분리하기 위해, 600M과 2B 모델에 대해서는 Chinchilla 최적 토큰의 절반과 두 배로도 추가 학습을 진행하여 총 구성 수를 24가지로 늘렸습니다. 마지막으로, 학습의 고유한 노이즈를 고려해 각 구성마다 서로 다른 랜덤 시드로 3개 모델을 학습시켜, 총 72개 모델을 생성했습니다.
여기서 핵심은, 같은 학습 진행률(전체 학습 데이터 중 본 비율) 기준으로 비교했을 때, 큰 모델은 훨씬 더 많은 토큰을 처리했지만 모든 모델이 접한 오염 문서의 기대 수는 동일했다는 점입니다.
평가 데이터셋은 300개의 정상 텍스트 발췌문으로 구성했으며, 각 발췌문에 <SUDO> 트리거를 추가한 경우와 그렇지 않은 경우를 모두 테스트했습니다. 주요 결과는 다음과 같습니다:
모델 크기는 포이즈닝 성공 여부에 영향을 주지 않습니다. 그림 2a와 2b는 가장 중요한 발견을 보여줍니다. 오염 문서 수를 고정했을 때, 백도어 공격의 성공도는 테스트한 모든 모델 크기에서 거의 동일하게 나타났습니다. 이 패턴은 오염 문서 500개에서 특히 뚜렷했는데, 600M부터 13B까지(20배 이상의 크기 차이에도 불구하고) 대부분의 모델 궤적이 서로의 오차 범위 안에 들어왔습니다.


그림 3의 샘플 생성 결과는 높은 퍼플렉서티(즉, 높은 수준의 무의미한 텍스트)를 보이는 출력 사례를 보여줍니다.

공격 성공은 학습 데이터 비율이 아닌 오염 문서의 절대 개수에 좌우됩니다. 선행 연구에서는 공격자가 학습 데이터의 일정 비율을 통제해야 공격이 성공하며, 따라서 더 큰 모델을 공격하려면 대량의 오염 데이터를 만들어야 한다고 가정했습니다. 이번 결과는 이 가정을 전면적으로 뒤집습니다. 큰 모델이 훨씬 더 많은 정상 데이터로 학습되어 오염 문서가 전체 학습 코퍼스에서 차지하는 비중이 극히 작아지더라도, 공격 성공률은 모델 크기에 관계없이 일정하게 유지되었습니다. 이는 포이즈닝 효과를 결정하는 것이 상대적 비율이 아닌 절대 개수임을 시사합니다.
본 실험 환경에서 문서 250개만으로도 모델에 백도어를 심을 수 있습니다. 그림 4a~c는 세 가지 오염 문서 수에 따른 학습 전반의 공격 성공도를 보여줍니다. 오염 문서 100개로는 어떤 모델도 안정적으로 백도어가 삽입되지 않았지만, 250개 이상이면 모든 모델 규모에서 신뢰할 수 있는 공격이 성공했습니다. 공격의 변화 양상은 모델 크기에 관계없이 놀라울 정도로 일관적이며, 오염 문서 500개에서 특히 두드러졌습니다. 이는 백도어가 모델 크기나 정상 학습 데이터 양에 관계없이, 소수의 고정된 악의적 샘플에 노출되면 활성화된다는 핵심 발견을 뒷받침합니다.



본 연구는 현재까지 가장 큰 규모의 데이터 포이즈닝 연구이며, 우려스러운 사실을 밝혀냈습니다. 포이즈닝 공격에 필요한 문서 수는 모델 크기에 관계없이 거의 일정하다는 것입니다. 최대 13B 파라미터 모델을 대상으로 한 실험 환경에서, 악의적 문서 250개(약 42만 토큰, 전체 학습 토큰의 0.00016%)만으로 모델에 성공적으로 백도어를 심을 수 있었습니다. 전체 논문에서는 학습 중 오염 문서의 순서가 미치는 영향, 모델 파인튜닝 단계의 유사한 취약점 등 추가 실험을 다루고 있습니다.
남은 질문과 향후 과제. 모델 규모를 계속 키워도 이 경향이 유지될지는 아직 불분명합니다. 또한 여기서 관찰한 동일한 패턴이 악성 코드 생성이나 안전 가드레일 우회처럼 더 복잡한 행동에도 적용되는지도 불확실합니다. 선행 연구에 따르면 이러한 복잡한 행동은 서비스 거부 공격보다 달성하기 어려운 것으로 나타난 바 있습니다.
이 연구 결과를 공개하는 것은 공격자들이 실제로 이러한 공격을 시도하도록 부추길 위험이 있습니다. 그러나 결과 공개의 이점이 이러한 우려를 상회한다고 판단합니다. 포이즈닝 공격은 방어자에게 다소 유리한 구조를 갖고 있습니다. 공격자가 오염 샘플을 학습 데이터에 삽입한 뒤, 방어자는 사후에 데이터셋과 학습된 모델을 검사할 수 있기 때문입니다. 따라서 포이즈닝 공격의 현실성에 대한 관심을 환기하면, 방어자들이 필요하고 적절한 조치를 취하도록 동기를 부여할 수 있습니다.
또한 방어자 입장에서 불가능하다고 여겼던 공격에 대비하지 못하는 상황은 피해야 합니다. 특히 이번 연구는 고정된 소수의 오염 샘플에 대해서도 대규모로 작동하는 방어 체계가 필요하다는 점을 보여줍니다. 반면, 이 결과가 공격자에게 주는 이점은 상대적으로 제한적이라고 봅니다. 공격자의 주된 제약은 삽입할 수 있는 예시의 정확한 숫자가 아니라, 자신이 통제하는 데이터를 모델의 학습 데이터셋에 실제로 포함시키는 과정 자체이기 때문입니다. 예를 들어, 하나의 오염된 웹페이지를 학습 데이터에 포함시킬 수 있는 공격자라면, 그 페이지의 분량을 늘리기만 하면 됩니다.
공격자에게는 후처리(post-training) 과정과 추가적인 타깃 방어를 회피해야 하는 과제도 남아 있습니다. 따라서 전체적으로 이번 연구가 더 강력한 방어 체계 개발에 기여할 것으로 판단합니다. 데이터 포이즈닝 공격은 기존에 알려진 것보다 더 현실적일 수 있습니다. 이 취약점과 이에 대한 방어 방안에 대해 더 많은 후속 연구가 이루어지길 바랍니다.
전체 논문을 읽어보세요.
본 연구의 저자는 다음과 같습니다: Alexandra Souly1, Javier Rando2,5, Ed Chapman3, Xander Davies1,4, Burak Hasircioglu3, Ezzeldin Shereen3, Carlos Mougan3, Vasilios Mavroudis3, Erik Jones2, Chris Hicks3, Nicholas Carlini2, Yarin Gal1,4, Robert Kirk1.
소속: 1UK AI Security Institute; 2Anthropic; 3Alan Turing Institute; 4OATML, University of Oxford; 5ETH Zurich