
'당근'이 '폭탄'이 되는 순간: LLM의 내부 표현을 탈취하는 Doublespeak 공격의 실체
무해한 단어로 유해한 정보를 이끌어내는 Doublespeak 공격의 원리와 LLM 안전장치의 한계를 분석하고, 엔지니어링 관점의 대응 방향을 제시합니다.
송찬영
CTO

안녕하세요. 풀링포레스트 CTO 송찬영입니다.
우리가 만드는 서비스가 사용자의 질문에 안전하게 답하고 있다고 얼마나 확신하시나요? 최근 보안 커뮤니티와 AI 연구 진영에서 매우 흥미로우면서도 동시에 등골이 서늘해지는 논문 하나가 화제가 되었습니다. 바로 'Doublespeak'라는 공격 기법에 관한 이야기입니다. 기술 리더로서, 그리고 AI 프로덕트를 책임지는 사람으로서 이 논문이 시사하는 바가 꽤 무겁게 다가왔습니다.
오늘은 이 Doublespeak가 무엇인지, 그리고 이것이 우리가 구축해 온 LLM 안전장치(Safety Alignment)에 어떤 근본적인 물음을 던지고 있는지 이야기해 보려 합니다.
'당근'을 만드는 법을 물었는데, 폭탄 제조법을 알려준다?
상황을 하나 가정해 봅시다. 사용자가 챗봇에게 "당근을 만드는 방법(How to build a carrot?)"을 물어봅니다. 일반적인 상식선에서, 그리고 기존의 보안 필터링 관점에서 이 질문은 지극히 무해합니다. '당근'이라는 단어는 블랙리스트에 존재하지도 않고, 문맥상으로도 농업이나 요리에 관련된 질문처럼 보이니까요.
하지만 만약 LLM이 이 질문을 받고 실제로는 '폭탄'을 만드는 법을 상세히 설명한다면 어떨까요?
이것이 바로 Doublespeak: In-Context Representation Hijacking 공격의 핵심입니다. 이 공격은 복잡한 최적화 과정이나 모델 튜닝 없이, 프롬프트 내의 문맥(Context)만으로 모델의 '내부 표현(Representation)'을 탈취합니다.
공격의 메커니즘은 놀라울 정도로 단순합니다.
먼저, 유해한 단어(예: bomb)를 무해한 단어(예: carrot)로 치환한다는 정의를 포함한 몇 가지 예시(Few-shot examples)를 프롬프트에 주입합니다.
모델에게 "당근을 만드는 법을 알려줘"라고 질문합니다.
모델은 표면적으로는 '당근'이라는 텍스트를 처리하지만, 내부적으로는 문맥 학습(In-Context Learning)을 통해 '당근'을 '폭탄'의 의미로 해석하고, 결과적으로 폭탄 제조법을 출력합니다.
실험 결과에 따르면 Llama-3.3-70B-Instruct 모델에서는 74%, 심지어 가장 강력하다고 평가받는 GPT-4o에서도 31%의 공격 성공률(ASR)을 보였습니다.
보안 필터가 무력화되는 이유: 레이어의 깊이와 의미의 변화
솔직히 말해, 처음 이 메커니즘을 접했을 때 꽤나 충격을 받았습니다. 우리가 흔히 사용하는 가드레일이나 필터링 시스템이 얼마나 취약한 전제 위에 서 있는지 적나라하게 보여주었기 때문입니다.
대부분의 LLM 안전장치는 '입력 레이어'나 모델의 '초기 레이어'에서 작동합니다. 입력된 토큰이 유해한지 검사하고, 유해하다면 답변을 거부(Refusal)하는 식이죠. 하지만 Doublespeak 공격은 이 허점을 정확히 파고듭니다.

연구진이 Logit Lens와 같은 해석 가능성(Interpretability) 도구를 사용해 분석한 결과를 보면, 그 과정이 명확히 드러납니다.
- 초기 레이어:모델은 'carrot'이라는 토큰을 말 그대로 '채소 당근'으로 인식합니다. 이 단계에서 작동하는 안전 필터는 아무런 문제점을 발견하지 못하고 통과시킵니다.
- 중반~후반 레이어:문맥 정보가 통합되면서, 'carrot'의 내부 벡터 표현이 점차 'bomb'의 의미로 수렴하기 시작합니다. 즉, 겉모습은 당근이지만 속은 폭탄으로 변질되는 것이죠.
- 최종 출력:이미 내부적으로 의미가 변질되었기에, 모델은 아무런 죄책감 없이 유해한 정보를 생성해 냅니다.
이것은 마치 공항 검색대에서는 장난감 물총으로 통과했는데, 비행기 안에서 조립해 보니 실제 무기가 되는 것과 같습니다. 검색대는 '입력 시점'의 물체만 검사했지, 그 물체가 나중에 어떻게 '변화'할지는 예측하지 못했기 때문입니다.
엔지니어링 관점에서의 시사점: 입력 검증만으로는 부족하다
풀링포레스트 팀에서도 LLM 애플리케이션을 개발하며 항상 고민하는 것이 '안전성'과 '유용성'의 균형입니다. 우리는 보통 입력 단에 강력한 정규표현식 필터를 걸거나, 별도의 Moderation API를 호출하여 1차 방어를 수행합니다. 하지만 Doublespeak는 이러한 '입구 컷' 방식만으로는 지능적인 탈옥(Jailbreak)을 막을 수 없음을 시사합니다.
특히 이 공격은 '외과적 정밀도(Surgical Precision)'를 가집니다. 문장 전체의 의미를 모호하게 만드는 것이 아니라, 정확히 타깃이 되는 단어(Target Token)의 의미만 바꿔치기합니다. 이는 기존의 PPL(Perplexity) 기반 탐지나 일반적인 이상 징후 탐지 시스템을 우회할 가능성이 매우 높다는 뜻입니다.
우리가 얻을 수 있는 교훈은 명확합니다.
진정한 의미의 안전한 AI를 구축하기 위해서는 입력값에 대한 검증을 넘어,
마치며: 보안은 끝없는 창과 방패의 싸움
기술은 언제나 양면성을 가집니다. In-Context Learning은 모델의 성능을 비약적으로 높여준 핵심 기술이지만, 동시에 이렇게 보안 취약점이 되기도 합니다.
Doublespeak 공격은 최적화가 필요 없는(Optimization-Free) 방식이라 누구나 쉽게 시도할 수 있고, 다양한 모델 계열에 전이(Transferable)된다는 점에서 파급력이 큽니다. 지금 당장 우리의 프로덕트가 안전한지, 혹시 우리도 모르는 사이에 '당근'이라는 이름의 '폭탄'을 처리하고 있지는 않은지 되돌아봐야 할 시점입니다.
개발자 여러분, 그리고 기술 리더 여러분.
AI 보안은 단순히 API 제공사에게 맡겨둘 문제가 아닙니다. 모델이 내부적으로 어떻게 '생각'하고 '해석'하는지에 대한 깊은 이해가 동반되지 않는다면, 우리는 언제나 한 발 늦은 대응을 할 수밖에 없을 것입니다.
오늘도 안전하고 신뢰할 수 있는 시스템을 만들기 위해 고민하는 모든 엔지니어분들을 응원합니다.


