LLM 보안의 새로운 위협, 토큰 스머글링(Token Smuggling)!
토큰 스머글링(Token Smuggling)은 LLM의 토크나이저(Tokenizer)와 필터 간의 불일치를 악용하여 악성 명령어(Malicious Command)를 숨기는 공격 기법임.
유니코드(Unicode) 변환, Base64 인코딩, 글리치 토큰(Glitch Token) 등 다양한 기술을 활용하여 필터를 우회함.
방어 전략(Defense Strategies)으로 정규화(Normalization), Perplexity 기반 탐지, LLM 기반 출력 필터링, 토크나이저 인식 필터링 등이 제시됨.
레딧 댓글에서는 해당 기술에 대한 높은 이해도와 함께, AI 보안의 중요성을 강조함.
토큰 스머글링(Token Smuggling)의 핵심 원리
토큰 스머글링(Token Smuggling)은 단순 텍스트 매칭 필터(Text Matching Filter)와 LLM의 토크나이저(Tokenizer) 간의 차이점을 활용한다. 필터는 문자열을 그대로 인식하지만, LLM은 토큰 단위로 텍스트를 처리한다. 공격자는 유니코드(Unicode) 유사 문자, Base64 인코딩(Base64 Encoding), 글리치 토큰(Glitch Token) 등을 사용하여 필터를 우회하고, LLM 내부에서 악성 명령어를 실행한다.
유니코드(Unicode) 및 동형 문자 공격
유니코드(Unicode)는 다양한 형태의 문자를 지원하며, 이 중 일부는 표준 라틴 문자와 시각적으로 동일하지만 다른 바이트 코드를 가진다. 공격자는 이러한 동형 문자(Homoglyphs)를 사용하여 필터를 속인다. 예를 들어, 'database' 대신 'dаtаbase'와 같이 Cyrillic 'а'를 사용하여 필터를 우회할 수 있다. 최근 연구에서는 'Unicode Tag Smuggling'이 Instruction Tuning을 우회하는 데 사용될 수 있음을 강조했다.
인코딩 래퍼(Encoding Wrappers)를 활용한 공격
LLM은 Base64, Hexadecimal과 같은 다양한 인코딩 형식을 이해하도록 훈련되어 있다. 공격자는 Base64 인코딩(Base64 Encoding)과 같은 인코딩 래퍼를 사용하여 악성 명령어를 숨긴다. 필터는 인코딩된 문자열을 단순히 통과시키지만, LLM은 이를 디코딩하여 악성 명령어를 실행한다. 이러한 기법은 Payload Splitting 또는 Wrapper Jailbreaking으로 불리며, 공격의 효율성을 높인다.
글리치 토큰(Glitch Token)과 모델의 취약점
글리치 토큰(Glitch Token)은 모델의 어텐션 메커니즘(Attention Mechanism)을 교란하여 안전성 제어를 무력화하는 데 사용된다. 이러한 토큰은 모델의 훈련 데이터에서 드물게 나타나며, 불안정한 가중치를 갖는다. 공격자는 이러한 토큰을 사용하여 모델의 내부 상태를 혼란스럽게 만들고, 안전 지침을 무시하도록 유도한다. GlitchMiner와 같은 도구를 사용하여 이러한 토큰을 자동으로 탐지하고 악용할 수 있다.
방어 전략: 딥 디펜스(Defense-in-Depth) 접근 방식
토큰 스머글링(Token Smuggling) 공격에 대응하기 위해, 업계는 딥 디펜스(Defense-in-Depth) 전략을 채택하고 있다. 주요 방어 방법으로는 유니코드 정규화(Unicode Normalization), Perplexity 기반 탐지, LLM 기반 출력 필터링, 그리고 토크나이저 인식 필터링(Tokenizer-Aware Filtering)이 있다. 특히, 출력 필터링은 LLM이 생성한 텍스트를 검사하여 악성 콘텐츠를 차단하는 효과적인 방법으로 제시된다.