• ITㆍ정보ㆍ방송통신
  • 인공지능ㆍ자율주행
  • 6. OWASP 10대 LLM 보안 취약점
  • 6.7. LLM07_안전하지 않은 플러그인 디자인(Insecure Plugin Design)
전체 목록 보기

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

6.7.

LLM07_안전하지 않은 플러그인 디자인(Insecure Plugin Design)

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

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

설명

LLM 플러그인은 활성화되면 사용자 상호 작용 중에 모델에 의해 자동으로 호출되는 확장입니다. 모델 통합 플랫폼이 이를 구동하며, 특히 모델이 다른 당사자에 의해 호스팅되는 경우 애플리케이션은 실행을 제어할 수 없습니다. 또한 플러그인은 컨텍스트 크기 제한을 처리하기 위해 유효성 검사나 유형 확인 없이 모델의 자유 텍스트 입력을 구현할 가능성이 높습니다. 이를 통해 잠재적 공격자는 플러그인에 대한 악의적인 요청을 구성할 수 있으며, 이로 인해 원격 코드 실행을 포함하여 광범위한 원치 않는 동작이 발생할 수 있습니다.

악의적인 입력으로 인한 피해는 액세스 제어가 불충분하고 플러그인 전체에서 인증을 추적하지 못하기 때문에 발생하는 경우가 많습니다. 부적절한 액세스 제어로 인해 플러그인은 다른 플러그인을 맹목적으로 신뢰하고 최종 사용자가 입력을 제공했다고 가정합니다. 이러한 부적절한 액세스 제어로 인해 악의적인 입력이 데이터 유출, 원격 코드 실행, 권한 상승 등의 해로운 결과를 초래할 수 있습니다.

이 항목은 LLM-Supply-Chain-Vulnerability가 다루는 타사 플러그인이 아닌 LLM 플러그인 생성에 중점을 둡니다.

취약점의 일반적인 예

  1. 플러그인은 개별 입력 매개변수 대신 단일 텍스트 필드의 모든 매개변수를 허용합니다.
  2. 플러그인은 전체 구성 설정을 재정의할 수 있는 매개변수 대신 구성 문자열을 허용합니다.
  3. 플러그인은 매개변수 대신 원시 SQL 또는 프로그래밍 문을 허용합니다.
  4. 인증은 특정 플러그인에 대한 명시적인 승인 없이 수행됩니다.
  5. 플러그인은 모든 LLM 콘텐츠를 전적으로 사용자가 만든 것으로 간주하고 추가 인증 없이 요청된 작업을 수행합니다.

예방 및 완화 전략

  1. 플러그인은 가능한 경우 엄격한 매개변수 입력을 적용하고 입력에 대한 유형 및 범위 검사를 포함해야 합니다. 이것이 불가능할 경우, 요청을 구문 분석하고 유효성 검사 및 삭제를 적용하는 두 번째 입력된 호출 계층을 도입해야 합니다. 애플리케이션 의미 때문에 자유 형식 입력을 허용해야 하는 경우 잠재적으로 유해한 메서드가 호출되지 않도록 주의 깊게 검사해야 합니다.
  2. 플러그인 개발자는 적절한 입력 검증 및 삭제를 보장하기 위해 ASVS(Application Security Verification Standard)에서 OWASP의 권장 사항을 적용해야 합니다.
  3. 적절한 검증을 보장하기 위해 플러그인을 철저하게 검사하고 테스트해야 합니다. 개발 파이프라인에서 SAST(정적 애플리케이션 보안 테스트) 스캔과 DAST, IAST(동적 및 대화형 애플리케이션 테스트)를 사용합니다.
  4. 플러그인은 OWASP ASVS 액세스 제어 지침에 따라 안전하지 않은 입력 매개변수 악용의 영향을 최소화하도록 설계되어야 합니다. 여기에는 최소 권한 액세스 제어가 포함되어 원하는 기능을 계속 수행하면서 가능한 한 적은 기능을 노출합니다.
  5. 플러그인은 효과적인 인증 및 액세스 제어를 적용하기 위해 OAuth2와 같은 적절한 인증 ID를 사용해야 합니다. 또한 API 키를 사용하여 기본 대화형 사용자가 아닌 플러그인 경로를 반영하는 사용자 정의 인증 결정에 대한 컨텍스트를 제공해야 합니다.
  6. 민감한 플러그인이 수행하는 모든 작업에 대해 수동 사용자 인증 및 확인이 필요합니다.
  7. 플러그인은 일반적으로 REST API이므로 개발자는 OWASP 상위 10대 API 보안 위험 – 2023에 있는 권장 사항을 적용하여 일반적인 취약점을 최소화해야 합니다.

공격 시나리오 예

  1. 플러그인은 기본 URL을 수락하고 LLM에 URL을 쿼리와 결합하여 사용자 요청 처리에 포함되는 일기 예보를 얻도록 지시합니다. 악의적인 사용자는 URL이 자신이 제어하는 ​​도메인을 가리키도록 요청을 작성하여 자신의 도메인을 통해 LLM 시스템에 자신의 콘텐츠를 삽입할 수 있습니다.
  2. 플러그인은 검증되지 않은 단일 필드에 대한 자유 형식 입력을 허용합니다. 공격자는 오류 메시지에서 정찰을 수행하기 위해 신중하게 제작된 페이로드를 제공합니다. 그런 다음 알려진 타사 취약점을 악용하여 코드를 실행하고 데이터 유출 또는 권한 상승을 수행합니다.
  3. 벡터 저장소에서 임베딩을 검색하는 데 사용되는 플러그인은 유효성 검사 없이 구성 매개변수를 연결 문자열로 허용합니다. 이를 통해 공격자는 이름이나 호스트 매개변수를 변경하여 다른 벡터 저장소를 실험하고 액세스할 수 있으며 액세스할 수 없는 임베딩을 추출할 수 있습니다.
  4. 플러그인은 SQL WHERE 절을 고급 필터로 허용한 다음 필터링 SQL에 추가합니다. 이를 통해 공격자는 SQL 공격을 수행할 수 있습니다.
  5. 공격자는 간접적인 프롬프트 주입을 사용하여 입력 유효성 검사와 약한 액세스 제어 기능이 없는 안전하지 않은 코드 관리 플러그인을 악용하여 저장소 소유권을 이전하고 저장소에서 사용자를 잠급니다.

참고자료

  1. OpenAI ChatGPT 플러그인 : ChatGPT 개발자 가이드
  2. OpenAI ChatGPT 플러그인 - 플러그인 흐름 : OpenAI 문서
  3. OpenAI ChatGPT 플러그인 - 인증 : OpenAI 문서
  4. OpenAI 의미 체계 검색 플러그인 샘플 : OpenAI Github
  5. 플러그인 취약점: 웹사이트 방문 및 소스 코드 도난 : Embrace The Red
  6. ChatGPT 플러그인 익스플로잇 설명: 프롬프트 삽입부터 개인 데이터 액세스까지 Red를 수용하세요
  7. ChatGPT 플러그인 익스플로잇 설명: 프롬프트 삽입부터 개인 데이터 액세스까지 : Embrace The Red
  8. OWASP ASVS - 5 검증, 삭제 및 인코딩 : OWASP AASVS
  9. OWASP ASVS 4.1 일반 접근 제어 설계 : OWASP AASVS
  10. OWASP 상위 10대 API 보안 위험 – 2023년 : OWASP
0
공유하기
최근 작성일시: 2024년 6월 15일
  • 검색
  • 맨위로
  • 페이지업
  • 페이지다운
  • 맨아래로
카카오톡 채널 채팅하기 버튼