최소한의 프롬프트 섭동이 코드 취약성을 유발한다: 코딩 LLM의 프롬프트 취약성 및 은닉 상태(Hidden-State) 신호
요약
미세한 프롬프트 변이가 코딩 LLM이 생성하는 코드의 보안성을 심각하게 저해할 수 있음을 입증한 연구입니다. 토큰 수준의 작은 변화만으로도 보안 취약점이 발생할 수 있으며, 이는 은닉 상태(Hidden-State)에 부분적으로 인코딩되어 있음을 확인했습니다.
핵심 포인트
- 단 한 글자의 프롬프트 변화로도 보안 취약한 코드 생성 가능
- 프롬프트 변이는 프롬프트 인젝션을 넘어선 새로운 위협 모델임
- 입력 처리 결함은 보안 기본값 결함보다 예측 가능성이 높음
- 취약성은 모델의 은닉 상태(Hidden-State)에 부분적으로 인코딩됨
LLM (Large Language Model) 기반 코딩 어시스턴트는 개발자 생산성을 크게 향상시키며 빠르게 도입되고 있습니다. 조직이 이러한 에이전트가 생성한 코드를 점점 더 많이 배포함에 따라, 해당 코드의 보안성이 매우 중요해지고 있습니다. 기존 연구에서는 미세한 프롬프트 섭동 (Prompt Perturbations)이 LLM이 생성한 코드의 기능적 정확성을 저하시킨다는 것을 보여주었으나, 이것이 코드 보안까지 해칠 수 있는지 여부는 아직 연구되지 않았습니다. 우리는 세 가지 모델과 다섯 가지 프로그래밍 언어에 걸쳐 프롬프트에 토큰 수준의 변이 (Token-level Mutations)를 적용하였으며, 단 한 글자의 변화만큼 작은 변이만으로도 생성된 코드가 보안 상태에서 취약한 상태로 뒤바뀔 수 있음을 보여줍니다. 모델의 은닉 상태 (Hidden States)를 조사한 결과, 이러한 취약성은 프롬프트 표현 (Prompt Representations)에 부분적으로 인코딩되어 있으나 그 정도는 불균일하게 나타납니다. 모델이 검증이나 정화 (Sanitization)를 누락하는 입력 처리 (Input-handling) 취약점은 보안 기본값 (Secure-defaults) 취약점(취약한 알고리즘이나 안전하지 않은 파라미터와 같은 하나의 국소적 선택에서 비롯되는 취약점)보다 더 예측 가능합니다 (평균 AUC 0.753 vs 평균 AUC 0.674). 이러한 결과는 LLM 지원 코딩에 대한 위협 모델이 프롬프트 인젝션 (Prompt Injection)을 넘어 일반적인 프롬프트 변이 (Prompt Variation)로 확장됨을 보여주며, 입력 처리 결함은 생성 전에 포착할 수 있는 반면 보안 기본값 결함은 디코딩 (Decoding) 과정 중의 개입이 필요함을 시사합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기