← 최신 논문
💻 computer science

Minimal Prompt Perturbations Lead to Code Vulnerabilities: Prompt Fragility and Hidden-State Signals in Coding LLMs

본 연구는 프롬프트의 미세한 단일 문자 교란이 코딩용 LLM 으로 하여금 취약한 코드를 생성하게 할 수 있으며, 입력 처리 결함이 보안 기본값 오류보다 숨겨진 상태로부터 더 예측 가능함을 밝혀내어 프롬프트 인젝션을 넘어 일반적인 프롬프트 변이까지 포함하도록 보안 위협 모델을 확장시켰음을 보여준다.

원저자: Alexander Sternfeld, Andrei Kucharavy, Ljiljana Dolamic

게시일 2026-05-29
📖 4 분 읽기☕ 가벼운 읽기

원저자: Alexander Sternfeld, Andrei Kucharavy, Ljiljana Dolamic

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

매우 재능 있고 초고속인 견습 프로그래머를 고용한다고 상상해 보세요. 이 견습생 (AI) 은 몇 초 만에 전체 프로그램을 작성할 수 있습니다. "파일을 안전하게 압축 해제하는 함수를 작성하세요"와 같은 간단한 지시를 내리면, 보통은 훌륭한 결과를 냅니다.

하지만 이 논문은 무서운 질문을 던집니다: 만약 이 견습생이 질문을 하는 방식의 아주 작은 실수에 극도로 민감하다면 어떻게 될까요?

연구자들은 지시문에 단 한 글자만 변경해도—오타이거나 유사한 단어로 교체된 경우라도—견습생이 작성한 코드가 갑자기 "안전하고 견고한" 상태에서 "해커들이 쉽게 침투할 수 있는 구멍이 가득 찬" 상태로 바뀔 수 있음을 발견했습니다.

일상적인 비유를 사용하여 그들의 발견 사항을 다음과 같이 정리해 보겠습니다:

1. "한 글자" 도미노 효과

AI 에게 내리는 지시를 레시피라고 생각해 보세요. 연구자들은 레시피에서 단 한 글자만 변경하면 (예: "소금"을 "짠"으로 변경), 결과물이 단순히 맛이 약간 달라지는 것을 넘어 치명적인 독이 될 수 있음을 발견했습니다.

  • 발견: 세 가지 다른 AI 모델과 다섯 가지 프로그래밍 언어를 테스트했습니다. 그 결과, 프롬프트의 단일 문자를 변경하면 코드가 안전한 상태에서 취약한 상태로 뒤집힐 수 있음을 확인했습니다.
  • 비유: 요리사에게 "문 잠금 확인하세요"라고 말하는 것과 "문 잠 확인하세요" (오타 포함) 라고 말하는 것은 다릅니다. 이 특정 사례에서 AI 는 아예 문을 잠그는 것을 완전히 잊어버려 집을 완전히 열어 둘 수 있습니다.

2. 두 가지 다른 유형의 "실수"

연구자들은 모든 보안 구멍이 동일하게 생성되는 것은 아니라고 지적했습니다. 그들은 서로 다른 두 가지 범주를 발견했는데, 이는 서로 다른 방식으로 작동합니다:

  • 유형 A: "경비원 부재" (입력 처리)

    • 정의: AI 가 클럽 입구에서 신분증을 확인하는 바운서와 같은 안전 점검을 추가하는 것을 잊어버립니다.
    • 발견: AI 의 내부 "뇌" (은닉 상태) 는 실제로 코드를 작성하기 전에 이미 이러한 실수의 징후를 보여줍니다. 마치 요리사가 요리를 시작하기 전에 잘못된 재료를 집어 드는 것을 보는 것과 같습니다. 연구자들은 AI 의 사고 과정을 살펴보기만 해도 이러한 오류를 약 75% 의 정확도로 예측할 수 있었습니다.
    • 이유: AI 는 코드에 전체적인 "안전 구조"를 구축할지 여부를 초기에 결정해야 합니다. 그 결정은 초기 단계에서 드러납니다.
  • 유형 B: "약한 선택" (보안 기본값)

    • 정의: AI 는 안전 구조를 구축하지만, 약한 자물쇠 (예: 복잡한 비밀번호 대신 "1234" 같은 비밀번호) 를 선택합니다.
    • 발견: 이러한 오류는 예측하기 훨씬 더 어렵습니다. AI 의 내부 뇌는 마지막 순간까지 정상적으로 보입니다. 약한 자물쇠를 선택하는 결정은 프로세스가 거의 끝날 때 이루어지기 때문에 "초기 경고 신호"가 없습니다. 연구자들은 이러한 오류를 약 67% 의 경우에만 예측할 수 있었습니다.
    • 이유: 마치 집이 이미 지어진 후에야 문에 약한 자물쇠를 걸기로 결정하는 것과 같습니다. 설계도는 완벽해 보였지만, 최종 선택이 나빴습니다.

3. 실수가 발생하는 위치가 중요합니다

연구자들은 오타가 지시문의 어디에 발생했는지도 살펴봤습니다.

  • 중간이 가장 중요합니다: 그들은 지시문의 중간에 발생한 오타가 가장 위험하다는 것을 발견했습니다.
  • 비유: "앞문과 뒷문을 잠가 주세요"라는 문장을 상상해 보세요. 중간에 있는 "앞"이라는 단어를 오타내면, AI 는 어느 문을 잠가야 할지 혼란스러워할 수 있습니다. 반면 첫 번째나 마지막 단어를 오타내면 AI 는 이를 무시하거나 올바르게 추측할 가능성이 더 높습니다. 지시문의 "핵심" 부분이 AI 가 가장 취약한 부분입니다.

4. "수정구" (프로빙)

이 팀은 AI 가 당신의 프롬프트를 읽은 직후, 코드를 작성하기 전에 AI 의 내부 상태를 살펴보는 "수정구" (수학적 프로브) 를 구축했습니다.

  • 결과: 이 수정구는 AI 가 "경비원 부재" 오류 (유형 A) 를 가진 코드를 작성할지 여부를 꽤 잘 예측할 수 있습니다.
  • 한계: "약한 선택" 오류 (유형 B) 를 예측하는 데는 어려움을 겪습니다. 이는 일부 보안 문제의 경우 AI 가 작성을 시작하기 전에 잡아낼 수 있지만, 다른 문제의 경우 코드가 작성되는 동안 또는 작성된 에 확인해야 할 필요가 있음을 시사합니다.

결론

이 논문은 우리의 AI 코딩 도우미가 견고하다고 가정할 수 없다고 결론 내립니다. 간단한 오타나 요청의 약간의 재구성조차 실수로 보안 취약점을 만들 수 있습니다.

  • 좋은 소식: AI 의 내부 "생각"을 살펴봄으로써 이러한 위험을 초기에 감지할 수 있는 경우가 있습니다.
  • 나쁜 소식: 우리는 이러한 방식으로 모든 위험을 잡아낼 수는 없습니다. 특히 프로세스가 거의 끝날 때 AI 가 단일한 나쁜 선택을 하는 경우들은 더욱 그렇습니다.

중요한 참고 사항: 연구자들은 의도적으로 AI 를 속이려고 한 것이 아니라, 인간이 저지를 수 있는 무작위적이고 우연해 보이는 오타 (예: "소금"을 "짠"으로 변경) 를 만들어 이 연구를 수행했다고 강조합니다. 이는 단순히 일을 끝내려는 일반적이고 일상적인 개발자들에게조차 위험이 현실적임을 의미합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →