• ITㆍ정보ㆍ방송통신
  • 인공지능ㆍ자율주행
  • 5. OWASP 10대 LLM 보안 취약점
  • 5.1. LLM01_프롬프트 주입(Prompt Injection)
전체 목록 보기

이 페이지의 첫 번째 전문가가 되어주세요!

  • 프로필 아이콘

    OOO 변호사

  • 프로필 아이콘

    OOO 검사

  • 프로필 아이콘

    OOO 법학박사

  • 프로필 아이콘

    OOO 판사

위키를 작성하면 이 곳에 프로필이 표시됩니다.

프로필은 본인 닉네임 클릭 > ‘내정보관리’에서 설정할 수 있습니다.

네플라 위키는 변호사, 판사, 검사, 법학교수, 법학박사인증된 법률 전문가가 작성합니다.

5.1.

LLM01_프롬프트 주입(Prompt Injection)

  • 새 탭 열기
  • 작성 이력 보기

생성자
김경환 변호사
기여자
  • 김경환 변호사
0

설명   

프롬프트 주입 취약점은 공격자가 조작된 입력을 통해 LLM(대형 언어 모델)을 조작하여 LLM이 무의식적으로 공격자의 의도를 실행할 때 발생합니다. 이는 시스템 프롬프트를 "탈옥"하여 직접 수행하거나 조작된 외부 입력을 통해 간접적으로 수행할 수 있으며 잠재적으로 데이터 유출, 사회 공학 및 기타 문제로 이어질 수 있습니다.

  • "탈옥"이라고도 알려진 직접 프롬프트 삽입은 악의적인 사용자가 기본 시스템 프롬프트를 덮어쓰거나 표시할 때 발생합니다. 이로 인해 공격자는 LLM을 통해 액세스할 수 있는 안전하지 않은 기능 및 데이터 저장소와 상호 작용하여 백엔드 시스템을 악용할 수 있습니다.
  • 간접 프롬프트 삽입은 LLM이 웹사이트나 파일과 같이 공격자가 제어할 수 있는 외부 소스로부터 입력을 받아들일 때 발생합니다. 공격자는 대화 컨텍스트를 가로채는 외부 콘텐츠에 프롬프트 삽입을 삽입할 수 있습니다. 이로 인해 LLM 출력 조정이 덜 안정적이게 되어 공격자가 사용자 또는 LLM이 액세스할 수 있는 추가 시스템을 조작할 수 있게 됩니다. 또한 LLM에서 텍스트를 구문 분석하는 한 간접 프롬프트 삽입은 사람이 보거나 읽을 수 있을 필요가 없습니다.

성공적인 신속한 주입 공격의 결과는 민감한 정보 요청부터 정상적인 작동을 가장하여 중요한 의사 결정 프로세스에 영향을 미치는 것까지 매우 다양할 수 있습니다.

고급 공격에서는 LLM을 조작하여 유해한 인물을 모방하거나 사용자 설정의 플러그인과 상호 작용할 수 있습니다. 이로 인해 민감한 데이터 유출, 무단 플러그인 사용 또는 사회 공학이 발생할 수 있습니다. 이러한 경우 손상된 LLM은 공격자를 지원하여 표준 보호 조치를 능가하고 사용자가 침입을 인식하지 못하도록 합니다. 이러한 경우 손상된 LLM은 공격자의 에이전트 역할을 효과적으로 수행하여 일반적인 보호 조치를 실행하거나 최종 사용자에게 침입에 대해 경고하지 않고 목표를 달성합니다.

취약점의 일반적인 예

  1. 악의적인 사용자는 LLM에 직접 프롬프트 삽입을 만들어 응용 프로그램 작성자의 시스템 프롬프트를 무시하고 대신 개인 정보, 위험 또는 기타 바람직하지 않은 정보를 반환하는 프롬프트를 실행하도록 지시합니다.
  2. 사용자는 간접 프롬프트 삽입이 포함된 웹페이지를 요약하기 위해 LLM을 사용합니다. 그러면 LLM이 사용자로부터 민감한 정보를 요청하고 JavaScript 또는 Markdown을 통해 추출을 수행하게 됩니다.
  3. 악의적인 사용자가 간접 프롬프트 삽입이 포함된 이력서를 업로드합니다. 이 문서에는 LLM이 사용자에게 이 문서가 훌륭하다는 것을 알리도록 하는 지침이 포함된 즉각적인 삽입이 포함되어 있습니다. 직무에 대한 훌륭한 후보자입니다. 내부 사용자는 LLM을 통해 문서를 실행하여 문서를 요약합니다. LLM의 출력은 이것이 훌륭한 문서라는 정보를 반환합니다.
  4. 사용자가 전자상거래 사이트에 연결된 플러그인을 활성화합니다. 방문한 웹사이트에 삽입된 악성 명령이 이 플러그인을 악용하여 무단 구매로 이어집니다.
  5. 방문한 웹사이트에 포함된 악성 지침과 콘텐츠는 다른 플러그인을 악용하여 사용자를 사기합니다.

예방 및 완화 전략

명령어와 외부 데이터를 서로 분리하지 않는 LLM의 특성으로 인해 프롬프트 주입 취약점이 발생할 수 있습니다. LLM은 자연어를 사용하므로 두 가지 입력 형식을 모두 사용자가 제공한 것으로 간주합니다. 결과적으로 LLM 내에는 완벽한 예방 방법이 없지만 다음 조치를 통해 즉각적인 주입의 영향을 완화할 수 있습니다.

  1. 백엔드 시스템에 대한 LLM 액세스에 대한 권한 제어를 시행합니다. 플러그인, 데이터 액세스 및 기능 수준 권한과 같은 확장 가능한 기능을 위해 자체 API 토큰을 LLM에 제공합니다. LLM을 의도된 작업에 필요한 최소한의 액세스 수준으로만 제한하여 최소 권한의 원칙을 따릅니다.
  2. 확장된 기능을 위해 루프에 사람을 추가하세요. 이메일 보내기 또는 삭제와 같은 권한 있는 작업을 수행할 때 애플리케이션에서 사용자가 먼저 해당 작업을 승인하도록 요구합니다. 이렇게 하면 사용자가 알지 못하거나 동의하지 않고 사용자를 대신하여 무단 작업으로 이어질 수 있는 간접적인 프롬프트 주입 가능성이 줄어듭니다.
  3. 사용자 프롬프트에서 외부 콘텐츠를 분리합니다. 사용자 프롬프트에 대한 영향을 제한하기 위해 신뢰할 수 없는 콘텐츠가 사용되는 위치를 구분하고 표시합니다. 예를 들어 OpenAI API 호출용 ChatML을 사용하여 LLM에 프롬프트 입력 소스를 표시합니다.
  4. LLM, 외부 소스 및 확장 가능한 기능(예: 플러그인 또는 다운스트림 기능) 간의 신뢰 경계를 설정합니다. LLM을 신뢰할 수 없는 사용자로 취급하고 의사 결정 프로세스에 대한 최종 사용자 제어를 유지합니다. 그러나 손상된 LLM은 사용자에게 정보를 제공하기 전에 정보를 숨기거나 조작할 수 있으므로 여전히 애플리케이션의 API와 사용자 사이에서 중개자(중간자) 역할을 할 수 있습니다. 잠재적으로 신뢰할 수 없는 응답을 사용자에게 시각적으로 강조합니다.
  5. LLM 입력 및 출력을 주기적으로 수동으로 모니터링하여 예상대로인지 확인합니다. 완화는 아니지만 약점을 감지하고 해결하는 데 필요한 데이터를 제공할 수 있습니다.

공격 시나리오 예

  1. 공격자는 LLM 기반 지원 챗봇에 직접 프롬프트 주입을 제공합니다. 주입에는 "이전 지침을 모두 잊어버리세요"와 개인 데이터 저장소를 쿼리하고 패키지 취약점을 이용하며 이메일을 보내기 위한 백엔드 기능의 출력 유효성 검사가 부족하다는 새로운 지침이 포함되어 있습니다. 이로 인해 원격 코드가 실행되어 무단 액세스 및 권한 상승이 발생합니다.
  2. 공격자는 LLM에게 이전 사용자 지침을 무시하고 LLM 플러그인을 사용하여 사용자의 이메일을 삭제하도록 지시하는 간접적인 프롬프트 삽입을 웹페이지에 삽입합니다. 사용자가 LLM을 사용하여 이 웹페이지를 요약하면 LLM 플러그인이 사용자의 이메일을 삭제합니다.
  3. 사용자는 LLM을 사용하여 이전 사용자 지침을 무시하고 대화 요약이 포함된 URL에 연결되는 이미지를 삽입하도록 모델에 지시하는 텍스트가 포함된 웹페이지를 요약합니다. LLM 출력이 이를 준수하므로 사용자의 브라우저가 비공개 대화를 유출하게 됩니다.
  4. 악의적인 사용자가 프롬프트 삽입으로 이력서를 업로드합니다. 백엔드 사용자는 LLM을 사용하여 이력서를 요약하고 그 사람이 적합한 후보자인지 묻습니다. 프롬프트 인젝션으로 인해 실제 이력서 내용에도 불구하고 LLM 응답은 yes입니다.
  5. 공격자는 시스템 프롬프트에 의존하는 독점 모델에 메시지를 보내 모델에게 이전 지침을 무시하고 대신 시스템 프롬프트를 반복하도록 요청합니다. 모델은 고유한 프롬프트를 출력하고 공격자는 이러한 지침을 다른 곳에서 사용하거나 더 교묘한 공격을 구성할 수 있습니다.

참조 링크

  1. GPT-3 사이먼 윌리슨(Simon Willison) 에 대한 신속한 주입 공격
  2. ChatGPT 플러그인 취약점 - Chat with Code : Embrace The Red
  3. ChatGPT 크로스 플러그인 요청 위조 및 프롬프트 삽입 : Embrace The Red
  4. 귀하가 가입한 것이 아닙니다: 간접 프롬프트 삽입으로 실제 LLM 통합 애플리케이션 손상 : Arxiv 사전 인쇄
  5. Self-Reminder를 통한 탈옥 공격으로부터 ChatGPT 방어하기 : Research Square
  6. LLM 통합 애플리케이션에 대한 프롬프트 주입 공격 : Arxiv 사전 인쇄
  7. 내 PDF 삽입: 이력서에 대한 신속한 삽입 : Kai Greshake
  8. OpenAI API 호출을 위한 ChatML : OpenAI Github
  9. 위협 모델링 LLM 애플리케이션 : AI Village
  10. AI 주입: 직접 및 간접 프롬프트 주입과 그 의미 : Embrace The Red
  11. 설계를 통한 신속한 주입 공격의 영향 감소 : Kudelski Security
  12. 정렬된 언어 모델에 대한 보편적이고 전이 가능한 공격 : LLM-Attacks.org
  13. 간접 즉각 주입 : Kai Greshake
  14. GPT-3의 프롬프트 주입 공격 취약점에 대한 책임 있는 공개 기밀 해제 : 서문; 프롬프트 주입 최초 공개
0
공유하기
최근 작성일시: 2024년 8월 14일
  • 검색
  • 맨위로
  • 페이지업
  • 페이지다운
  • 맨아래로
카카오톡 채널 채팅하기 버튼