CachePrune: 간접 프롬프트 인젝션 공격을 막는 뉴런 기반 방어 기법
초록
LLM의 간접 프롬프트 인젝션 공격 취약점을 해결하기 위해 CachePrune을 제안합니다. 이 방법은 입력 프롬프트 컨텍스트의 KV 캐시에서 작업 실행을 유발하는 뉴런을 식별하고 제거(Pruning)하여, 모델이 컨텍스트를 순수 데이터로만 해석하도록 유도합니다. 적은 샘플로 효과적인 뉴런 식별이 가능하며, 프롬프트 형식을 변경하거나 추가 LLM 호출 없이 공격 성공률을 크게 낮추고 응답 품질을 유지합니다.
상세 분석
본 논문이 제안하는 CachePrune의 기술적 핵심은 LLM 내부의 ‘데이터’와 ‘명령어’ 해석 메커니즘을 역이용한 방어 전략에 있습니다. 기존 연구가 프롬프트 재구성이나 추가 검증 단계 등 외부적 처방에 집중했다면, CachePrune은 모델이 스스로 컨텍스트를 명령어로 오인해 반응하게 만드는 내부 뉴런 활동(Activations)을 직접 공략합니다.
핵심 메커니즘은 ‘신경 어트리뷰션(Neural Attribution)‘입니다. 저자들은 ‘선호 어트리뷰션 손실(Preferential Attribution Loss)‘이라는 새로운 손실 함수를 도입했습니다. 이 함수는 모델이 생성한 정상 응답(Yc)과 악성 주입에 의한 오염 응답(Yp)의 확률 차이를 계산합니다. 이 손실의 그래디언트를 KV 캐시의 각 뉴런 활성화에 대해 계산하여, 오염 응답 생성에 기여도가 높은 뉴런(즉, 컨텍스트를 명령어로 오인하도록 유도한 뉴런)에 높은 ‘어트리뷰션 점수’를 부여합니다.
이 과정에서 중요한 혁신은 ‘선택적 임계값 설정(Selective Thresholding)‘입니다. 단순히 오염 응답 생성 기여도가 높은 뉴런만을 제거하면 원래 사용자 의도에 따른 정상 응답 품질이 떨어질 수 있습니다. 이를 방지하기 위해, 각 뉴런의 ‘오염 기여도’와 ‘정상 기여도’ 점수를 모두 고려하여 정상 응답 생성에 필수적인 뉴런은 제거 대상에서 제외하는 정규화를 수행합니다. 이로써 공격 방어와 유용성 보존이라는 두 마리 토끼를 잡을 수 있습니다.
또한, 저자들은 모델의 ‘트리거링 효과(Triggering Effect)‘를 관찰하여 어트리뷰션의 정확도를 높였습니다. 이는 악성 명령어가 특정 토큰 시퀀스나 위치에서 더 강력하게 반응을 유발한다는 현상을 의미하며, 이를 반영해 더 정밀하게 공격 트리거 뉴런을 찾아낼 수 있었습니다.
CachePrune의 가장 큰 장점은 실용성입니다. 프롬프트에 특수 포맷팅을 요구하지 않으며, 추론 시 추가 LLM 호출이 전혀 필요 없습니다. 오프라인에서 한 번 계산된 프루닝 마스크를 동일 컨텍스트를 사용하는 모든 추론에 재사용할 수 있어, 컨텍스트 캐싱과 완벽히 호환됩니다. 이는 기존의 다단계 검증이나 필터링 방식보다 훨씬 낮은 운영 오버허드를 의미합니다.
댓글 및 학술 토론
Loading comments...
의견 남기기