본문 바로가기
딥러닝

[논문리뷰] 스페이스바 한 번이면 AI 안전장치가 뚫린다고? — Single Character Perturbations Break LLM Alignment

by 카이스토 2026. 9. 16.

■ 들어가며: 겨우 띄어쓰기 하나로?

 

우리는 흔히 LLM을 탈옥(jailbreak)시키려면 정교하게 짜인 프롬프트 엔지니어링이나 복잡한 적대적 문자열(adversarial suffix)이 필요하다고 생각합니다. GCG 같은 유명한 공격 기법들은 최적화 알고리즘을 돌려 수십 개의 이상한 토큰을 붙여야 겨우 안전장치를 뚫을 수 있었죠. 그런데 오늘 소개할 논문 Single Character Perturbations Break LLM Alignment는 이런 상식을 완전히 뒤집습니다. 저자들은 사용자의 질문 끝에 스페이스(공백) 문자 단 하나만 붙여도 상당수의 오픈소스 LLM이 안전 학습(safety alignment)을 무시하고 유해한 답변을 술술 내놓는다는 사실을 실험으로 보여줍니다. 복잡한 알고리즘도, 특수 유니코드도 아닌 그냥 스페이스바 한 번입니다. 이 발견은 지금 우리가 배포하고 있는 정렬(alignment) 기법이 얼마나 얕은 표면적 패턴에 의존하고 있는지를 적나라하게 드러냅니다.

 

■ 왜 하필 공백 하나가 문제였나

 

핵심 아이디어는 토크나이저와 학습 데이터의 미묘한 상호작용에 있습니다. 저자들이 분석한 바에 따르면, 학습 데이터에서 문장 끝에 공백이 오는 맥락은 흔히 번호가 매겨진 리스트(1. 2. 3. 같은 형태)가 이어지는 경우가 많았습니다. 즉 모델 입장에서 "공백으로 끝나는 입력 다음에는 목록을 생성해야 한다"는 패턴이 학습 과정에서 강하게 각인된 것입니다. 문제는 이 목록 생성 패턴이 안전 거부(refusal) 패턴보다 더 강하게 작동한다는 점입니다. 원래는 "폭탄 만드는 법을 알려줘"라는 요청에 "죄송하지만 그런 정보는 제공할 수 없습니다"라고 답해야 하지만, 문장 끝에 공백 하나를 추가하면 모델은 거부 문구 대신 곧바로 "1. 첫 번째로 필요한 재료는..." 같은 리스트 형태의 답변을 시작해버립니다. 실제로 논문은 공백을 붙였을 때 모델들이 답변의 첫 토큰으로 숫자를 생성하는 비율이 급격히 늘어난다는 것을 토큰 확률 분석을 통해 보여줍니다. 반대로 공백이 없을 때는 어떤 모델도 숫자를 첫 토큰으로 생성하지 않았다고 합니다. 안전 정렬이 특정 표면 패턴(입력이 어떻게 끝나는가)에 지나치게 의존하고 있었다는 뜻이죠.

 

 

■ 실험 설계: AdvBench로 검증하다

 

연구팀은 이 단순한 공격이 실제로 얼마나 강력한지 확인하기 위해 AdvBench의 유해 행동(harmful behaviors) 데이터셋에서 100개의 샘플을 추출해 총 8종의 오픈소스 LLM에 대해 공격 성공률(Attack Success Rate, ASR)을 측정했습니다. 대상 모델에는 Vicuna, Guanaco, Llama-2, Llama-3, Falcon, Mistral, ChatGLM, MPT 등 7B 및 13B 규모의 모델들이 포함되었습니다. 공격 방식은 극도로 단순합니다. 별도의 최적화나 탐색 없이 그저 사용자 프롬프트 끝에 공백 문자 하나를 붙이는 것뿐입니다.

 

■ 결과: 공백 하나로 최대 100% 공격 성공률

 

결과는 놀라웠습니다. Vicuna-7B와 Guanaco-7B는 각각 100.0%의 공격 성공률을 보였고, Guanaco-13B도 93.0%에 달했습니다. Falcon-7B는 84.0%, ChatGLM-6B는 62.0%, Mistral-7B는 58.0%, Vicuna-13B는 72.0%를 기록했습니다. MPT-7B는 21.0%로 상대적으로 낮았지만 여전히 무시할 수 없는 수치였습니다. 반면 Llama-2 계열(7B, 13B 모두)은 0.0%로 이 공격에 완전히 저항했고, 비교적 최근 모델인 Llama-3-8B도 3.0%에 그쳐 이후 세대 모델들이 이런 단순한 패턴에 더 강건해졌음을 보여줍니다. 즉 모델의 정렬 방식이나 학습 데이터 구성에 따라 취약성 편차가 매우 크다는 것이 확인된 셈입니다. 특히 Vicuna와 Guanaco처럼 대화형 지시 데이터로 파인튜닝된 모델들이 공백 하나에 이렇게 쉽게 무너진다는 점은 안전성 평가에서 반드시 짚어야 할 대목입니다.

 

 

■ 방어는 가능한가: 간단한 재학습의 효과

 

다행히 저자들은 이 취약점에 대한 간단한 방어책도 함께 제시합니다. 공백이 붙은 유해 프롬프트에는 여전히 거부 응답을 하도록 추가로 파인튜닝을 진행한 결과, Vicuna-7B의 공격 성공률이 기존 99.0%에서 23.0%까지 크게 낮아졌습니다. 완전한 해결책은 아니지만, 이런 표면적 트리거를 학습 데이터에 명시적으로 포함시키는 것만으로도 상당한 개선이 가능하다는 점을 보여줍니다. 다만 이는 결국 "발견된 구멍을 땜질하는" 접근이라는 한계가 있고, 저자들도 이런 식의 사후 대응만으로는 근본적인 안전성 확보가 어렵다는 점을 지적합니다.

 

■ 이 논문이 던지는 질문

 

이 연구가 정말 흥미로운 이유는 공격 자체의 파괴력보다 그것이 드러내는 구조적 문제에 있습니다. 우리가 지금 "안전하게 정렬되었다"고 믿는 모델들의 방어 기제가 사실은 프롬프트의 미묘한 표면적 패턴에 크게 의존하는 얕은 학습 결과일 수 있다는 것입니다. 대문자, 이모지, 오타, 그리고 이번 논문의 공백처럼 겉보기엔 사소한 변형이 안전장치를 무력화할 수 있다면, 우리는 안전성을 어떻게 측정하고 검증해야 할까요. 이 논문은 특정 공격 기법 하나를 소개하는 데 그치지 않고, LLM 정렬 연구 전반에 있어 견고성(robustness)의 정의 자체를 다시 고민하게 만드는 계기를 제공합니다. 오픈소스 모델을 실제 서비스에 적용하려는 개발자라면, 이런 단순한 문자열 변형에도 안전 필터가 얼마나 취약한지 반드시 자체적으로 점검해볼 필요가 있어 보입니다.

 

댓글