A real prompt-injection case — and the blind spot it exposed in my own scanner
개요
GitLab Duo에서 발생한 실제 프롬프트 인젝션 사례와 이로 인해 드러난 보안 스캐너의 취약점을 다룹니다.
주요 내용
- 2025년, Legit Security 연구진은 GitLab Duo가 프로젝트 콘텐츠 내에 숨겨진 명령을 통해 조종될 수 있음을 입증했습니다.
- 공격은 유니코드 스머글링(Unicode smuggling) 및 Base16 인코딩과 같은 기법을 사용하여 페이로드를 인간이나 단순 텍스트 필터로부터 숨김으로써 성공했습니다.
- GitLab은 이 취약점(duo-ui!52)을 패치했습니다.
- 보안 스캐너 개발자는 자신의 도구가 시스템 프롬프트 누출을 일반 문자열로만 탐지하며, Base64 인코딩, 토큰 분할, 공백 추가 등 변형된 형태의 누출은 탐지하지 못하는 한계를 확인했습니다.
- 이러한 한계를 명확히 인지하고, 스캔 결과에 "인코딩/분할된 누출은 탐지되지 않음"이라는 경고를 추가했으며,
--canary옵션의 도움말에도 이를 명시했습니다. - 검증 가능하고 실제적인 단순 프롬프트 누출 탐지는 가능하지만, 모든 인코딩된 변형을 탐지하는 것은 결정론적 매처(deterministic matcher)의 역할이 아니며, 이를 감추는 것은 도구의 목적에 어긋난다고 판단했습니다.
- 해당 스캐너와 그 한계점은 오픈 소스로 공개되었습니다.
시사점
이 사례는 LLM 기반 시스템의 보안에 있어 단순 텍스트 필터링을 넘어서는 더욱 정교한 프롬프트 인젝션 방어 기법이 필요함을 시사하며, 보안 도구는 자신의 탐지 능력을 투명하게 공개하고 한계를 명확히 하는 것이 중요함을 보여줍니다.
원문을 불러오는 중...
댓글
GitHub Discussions