설명
안전하지 않은 출력 처리는 특히 대규모 언어 모델에서 생성된 출력이 다른 구성 요소 및 시스템으로 다운스트림으로 전달되기 전에 유효성 검사, 삭제 및 처리가 충분하지 않음을 나타냅니다. LLM에서 생성된 콘텐츠는 프롬프트 입력으로 제어할 수 있으므로 이 동작은 사용자에게 추가 기능에 대한 간접적인 액세스를 제공하는 것과 유사합니다.
안전하지 않은 출력 처리는 LLM에서 생성된 출력이 다운스트림으로 전달되기 전에 처리한다는 점에서 Overreliance와 다른 반면, Overreliance는 LLM 출력의 정확성과 적절성에 대한 과도한 의존에 대한 광범위한 우려에 중점을 둡니다.
안전하지 않은 출력 처리 취약점을 성공적으로 악용하면 웹 브라우저의 XSS 및 CSRF는 물론 SSRF, 권한 상승 또는 백엔드 시스템의 원격 코드 실행이 발생할 수 있습니다.
다음 조건은 이 취약점의 영향을 증가시킬 수 있습니다.
- 애플리케이션은 최종 사용자에게 의도된 것 이상의 LLM 권한을 부여하여 권한 상승 또는 원격 코드 실행을 가능하게 합니다.
- 해당 응용 프로그램은 공격자가 대상 사용자 환경에 대한 권한 있는 액세스 권한을 얻을 수 있는 간접 프롬프트 주입 공격에 취약합니다.
- 타사 플러그인은 입력의 유효성을 적절하게 검증하지 않습니다.
취약점의 일반적인 예
- LLM 출력은 시스템 셸이나 exec 또는 eval과 같은 유사한 기능에 직접 입력되어 원격 코드가 실행됩니다.
- JavaScript 또는 Markdown은 LLM에 의해 생성되어 사용자에게 반환됩니다. 그런 다음 코드는 브라우저에 의해 해석되어 XSS가 생성됩니다.
예방 및 완화 전략
- 모델을 다른 사용자처럼 취급하고 제로 트러스트 접근 방식을 채택하고 모델에서 백엔드 기능으로 들어오는 응답에 적절한 입력 유효성 검사를 적용합니다.
- 효과적인 입력 검증 및 삭제를 보장하려면 OWASP ASVS(애플리케이션 보안 검증 표준) 지침을 따르세요.
- 모델 출력을 사용자에게 다시 인코딩하여 JavaScript 또는 Markdown에 의한 원치 않는 코드 실행을 완화합니다. OWASP ASVS는 출력 인코딩에 대한 자세한 지침을 제공합니다.
공격 시나리오 예
- 애플리케이션은 LLM 플러그인을 활용하여 챗봇 기능에 대한 응답을 생성합니다. 플러그인은 또한 권한이 있는 다른 LLM이 액세스할 수 있는 다양한 관리 기능을 제공합니다. 범용 LLM은 적절한 출력 유효성 검사 없이 응답을 플러그인에 직접 전달하여 유지 관리를 위해 플러그인을 종료합니다.
- 사용자는 기사의 간결한 요약을 생성하기 위해 LLM이 제공하는 웹사이트 요약 도구를 활용합니다. 웹사이트에는 웹사이트나 사용자 대화에서 민감한 콘텐츠를 캡처하도록 LLM에 지시하는 프롬프트 삽입이 포함되어 있습니다. 여기에서 LLM은 민감한 데이터를 인코딩하여 출력 검증이나 필터링 없이 공격자가 제어하는 서버로 보낼 수 있습니다.
- LLM을 사용하면 사용자는 채팅과 유사한 기능을 통해 백엔드 데이터베이스에 대한 SQL 쿼리를 작성할 수 있습니다. 사용자가 모든 데이터베이스 테이블을 삭제하는 쿼리를 요청합니다. LLM에서 작성된 쿼리를 면밀히 조사하지 않으면 모든 데이터베이스 테이블이 삭제됩니다.
- 웹 앱은 LLM을 사용하여 출력 삭제 없이 사용자 텍스트 프롬프트에서 콘텐츠를 생성합니다. 공격자는 LLM이 정리되지 않은 JavaScript 페이로드를 반환하도록 조작된 프롬프트를 제출할 수 있으며, 이는 피해자의 브라우저에 렌더링될 때 XSS로 이어질 수 있습니다. 프롬프트에 대한 불충분한 검증으로 인해 이 공격이 가능해졌습니다.
참조 링크
- 임의 코드 실행 : Snyk Security Blog
- ChatGPT 플러그인 익스플로잇 설명: 프롬프트 삽입부터 개인 데이터 액세스까지 : Embrace The Red
- ChatGPT 웹 버전에 대한 새로운 프롬프트 주입 공격. 마크다운 이미지는 채팅 데이터를 훔칠 수 있습니다. : 시스템 취약점
- LLM 응답을 맹목적으로 신뢰하지 마십시오. 챗봇에 대한 위협 : Embrace The Red
- 위협 모델링 LLM 애플리케이션 : AI Village
- OWASP ASVS - 5 검증, 삭제 및 인코딩 : OWASP AASVS