같은 문자열, 다른 권한: 제어 토큰이 프롬프트 주입을 키우는 방식
들어가며
프롬프트 주입은 보통 악성 텍스트가 모델의 컨텍스트에 들어오는 문제로 설명된다. 이번 연구는 그보다 낮은 수준인 토크나이저의 표현 선택을 살펴본다. 같은 문자열이라도 하나의 예약 제어 토큰으로 인코딩될 수 있고, 여러 개의 일반 서브워드로 쪼개질 수도 있다. 두 방식은 같은 텍스트로 디코딩되지만 모델이 받는 학습된 벡터는 다르다. 따라서 같은 표식이 실제로는 서로 다른 수준의 ‘명령 권한’을 가질 수 있다.
핵심 결과
연구는 신뢰할 수 없는 입력에 삽입된 <|im_start|>와 같은 위조 채팅 템플릿 표식을 대상으로 했다. 디코딩되는 텍스트는 유지하고, 일반 서브워드로 바꿀 때 늘어나는 토큰 수의 영향도 통제했다. 이를 통해 텍스트 내용이나 길이보다 예약 토큰 표현 자체가 공격에 미치는 효과를 분석했다.
- InjecAgent에서 위조 예약 표식을 일반 서브워드 시퀀스로 바꾸자, 네 개 계열 중 세 개의 오픈 웨이트 모델에서 공격 성공률이 39~66%포인트 하락했다. 이 차이는 AgentDojo의 다중 턴 에이전트 과제에서도 이어졌다.
- Qwen3-8B의 차이는 8포인트로 상대적으로 작았다. 예약 ID가 없어도 텍스트를 추론해 위조된 대화 턴을 알아볼 수 있었기 때문이다. 추론 블록을 억제하면 차이는 50포인트로 커졌다.
- 표식을 이루는 서브워드 벡터의 평균은 예약 토큰의 효과를 재현하지 못했다. 반면 Llama-3.1에서는 제어 토큰과 임베딩상 가까운 일반 토큰의 벡터가 공격을 되살릴 수 있었다.
- 적응형 공격자가 예약되지 않은 표식을 탐색하자, 네 계열 중 세 계열에서 임베딩 이웃에 해당하는 후보를 찾을 수 있었다.
의미와 영향
연구는 표식의 권위가 문자열 자체보다 해당 위치의 단일 학습 벡터에 상당 부분 존재한다고 분석한다. 이는 위험한 문자열을 검색하거나 제어 표식을 단순한 일반 텍스트로 취급하는 방어만으로는 충분하지 않을 수 있음을 뜻한다.
의심스러운 표식을 일반 서브워드로 강제 인코딩하는 방법은 유용한 토크나이저 측 완화책이다. 하지만 모델이 주변 문맥을 통해 위조된 턴을 추론할 수 있고, 공격자가 예약 토큰과 비슷한 임베딩을 가진 대체 표식을 찾을 수도 있다. 따라서 이 방법은 완전한 방어가 아니라 공격 난도를 높이는 한 단계로 봐야 한다.
연구는 또한 여러 토크나이저 설정에서 도구 프로토콜 표식이 여전히 노출된다고 지적한다. 에이전트는 바로 이 경계를 통해 신뢰할 수 없는 도구 출력을 읽기 때문에, 사용자 프롬프트만 보호하면 중요한 공격 경로가 남는다. 도구 결과, 메시지 조립, 다중 턴 처리, 권한 분리를 함께 설계해야 한다.
이번 결과가 확장하는 질문은 “어떤 문자열이 위험한가”에서 “어떤 내부 표현이 권한을 부여하는가”로의 전환이다. 토크나이저 설계는 상당한 위험을 줄일 수 있지만, 견고한 방어를 위해서는 모델 학습, 신뢰 경계, 도구 권한 통제가 함께 필요하다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…