• ITㆍ정보ㆍ방송통신
  • 인공지능ㆍ자율주행
  • 5. OWASP 10대 LLM 보안 취약점
  • 5.4. LLM04_모델서비스거부(Model DoS)
전체 목록 보기

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

  • 프로필 아이콘

    OOO 변호사

  • 프로필 아이콘

    OOO 검사

  • 프로필 아이콘

    OOO 법학박사

  • 프로필 아이콘

    OOO 판사

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

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

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

5.4.

LLM04_모델서비스거부(Model DoS)

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

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

설명

공격자는 유난히 많은 양의 리소스를 소비하는 방식으로 LLM과 상호 작용합니다. 이로 인해 해당 공격자와 다른 사용자에 대한 서비스 품질이 저하되고 잠재적으로 높은 리소스 비용이 발생할 수 있습니다. 더욱이 새롭게 떠오르는 주요 보안 문제는 공격자가 LLM의 컨텍스트 창을 방해하거나 조작할 가능성입니다. 다양한 응용 프로그램에서 LLM 사용 증가, 집중적인 리소스 활용, 사용자 입력의 예측 불가능성, 이 취약점에 대한 개발자의 일반적인 무지로 인해 이 문제는 더욱 중요해지고 있습니다. LLM에서 컨텍스트 창은 입력과 출력을 모두 포함하여 모델이 관리할 수 있는 최대 텍스트 길이를 나타냅니다. 이는 모델이 이해할 수 있는 언어 패턴의 복잡성과 주어진 시간에 처리할 수 있는 텍스트의 크기를 결정하므로 LLM의 중요한 특성입니다. 컨텍스트 창의 크기는 모델의 아키텍처에 따라 정의되며 모델마다 다를 수 있습니다.

추가적인 서비스 거부 방법에는 글리치 토큰이 포함됩니다. 이는 모델 처리를 방해하여 일관된 응답을 생성하지 못하는 부분적 또는 전체 실패를 초래하는 고유하고 문제가 있는 문자열입니다. RAG가 공동 작업 도구 및 문서 관리 시스템과 같은 동적 내부 리소스에서 데이터를 점점 더 많이 소스로 사용함에 따라 이 취약점은 더욱 확대됩니다. 공격자는 이러한 소스에 결함 토큰을 삽입하여 이를 악용할 수 있으며, 모델의 기능을 손상시켜 서비스 거부를 유발할 수 있습니다. 취약점의 일반적인 예

취약점의 일반적인 예

  1. 예를 들어 LangChain 또는 AutoGPT를 사용하여 대기열에 있는 대량 작업 생성을 통해 반복적인 리소스 사용으로 이어지는 쿼리를 제기합니다.
  2. 비정상적인 철자법이나 순서를 사용하여 리소스를 많이 소모하는 쿼리를 보냅니다.
  3. 지속적인 입력 오버플로: 공격자가 컨텍스트 창을 초과하는 입력 스트림을 LLM에 보내면 모델이 과도한 계산 리소스를 소비하게 됩니다.
  4. 반복적인 긴 입력: 공격자는 각각 컨텍스트 창을 초과하는 긴 입력을 LLM에 반복적으로 보냅니다.
  5. 재귀적 컨텍스트 확장: 공격자는 재귀적 컨텍스트 확장을 트리거하는 입력을 구성하여 LLM이 컨텍스트 창을 반복적으로 확장하고 처리하도록 합니다.
  6. 가변 길이 입력 플러드: 공격자는 대량의 가변 길이 입력으로 LLM을 플러딩합니다. 여기서 각 입력은 컨텍스트 창의 한계에 도달하도록 신중하게 제작됩니다. 이 기술은 가변 길이 입력 처리의 비효율성을 활용하여 LLM에 부담을 주고 잠재적으로 응답하지 않게 만드는 것을 목표로 합니다.
  7. 결함 토큰 RAG 중독: 공격자는 RAG 벡터 데이터베이스의 데이터 소스에 결함 토큰을 도입하여 RAG 프로세스를 통해 이러한 악성 토큰을 모델의 컨텍스트 창에 도입하여 모델이 (부분적으로) 일관되지 않은 결과를 생성하게 만듭니다. 예방 및 완화 전략

예방 및 완화 전략

  1. 사용자 입력이 정의된 제한을 준수하고 악성 콘텐츠를 필터링하도록 입력 유효성 검사 및 삭제를 구현합니다.
  2. 복잡한 부분과 관련된 요청이 더 느리게 실행되도록 요청 또는 단계당 리소스 사용을 제한합니다.
  3. 개별 사용자 또는 IP 주소가 특정 기간 내에 수행할 수 있는 요청 수를 제한하려면 API 속도 제한을 적용하세요.
  4. LLM 응답에 반응하는 시스템에서 대기 중인 작업 수와 총 작업 수를 제한합니다.
  5. LLM의 리소스 활용도를 지속적으로 모니터링하여 DoS 공격을 나타낼 수 있는 비정상적인 스파이크 또는 패턴을 식별합니다.
  6. 과부하 및 리소스 소진을 방지하려면 LLM의 컨텍스트 창을 기반으로 엄격한 입력 제한을 설정하세요.
  7. LLM의 잠재적인 DoS 취약성에 대한 개발자의 인식을 높이고 안전한 LLM 구현을 위한 지침을 제공합니다.
  8. 모델의 컨텍스트 창에 추가하기 전에 알려진 결함 토큰 목록을 작성하고 RAG 출력을 스캔합니다.

공격 시나리오 예

  1. 공격자는 호스팅된 모델에 까다롭고 비용이 많이 드는 여러 요청을 반복적으로 전송하여 다른 사용자의 서비스를 악화시키고 호스트의 리소스 요금을 증가시킵니다.
  2. LLM 기반 도구가 정상적인 쿼리에 응답하기 위해 정보를 수집하는 동안 웹 페이지의 텍스트 조각이 발견되었습니다. 이로 인해 도구에서 더 많은 웹 페이지 요청을 수행하게 되어 리소스가 많이 소모됩니다.
  3. 공격자는 컨텍스트 창을 초과하는 입력으로 LLM을 지속적으로 공격합니다. 공격자는 자동화된 스크립트나 도구를 사용하여 대량의 입력을 보내 LLM의 처리 기능을 압도할 수 있습니다. 결과적으로 LLM은 과도한 계산 리소스를 소비하여 시스템이 크게 느려지거나 완전히 응답하지 않게 됩니다.
  4. 공격자는 일련의 순차적 입력을 LLM에 보냅니다. 각 입력은 컨텍스트 창 제한 바로 아래에 있도록 설계됩니다. 공격자는 이러한 입력을 반복적으로 제출함으로써 사용 가능한 컨텍스트 창 용량을 소진하는 것을 목표로 합니다. LLM이 컨텍스트 창 내에서 각 입력을 처리하는 데 어려움을 겪으면서 시스템 리소스가 부족해지고 잠재적으로 성능이 저하되거나 완전한 서비스 거부가 발생할 수 있습니다.
  5. 공격자는 LLM의 재귀 메커니즘을 활용하여 컨텍스트 확장을 반복적으로 트리거합니다. 공격자는 LLM의 재귀적 동작을 활용하는 입력을 제작하여 모델이 컨텍스트 창을 반복적으로 확장하고 처리하도록 하여 상당한 계산 리소스를 소비합니다. 이 공격은 시스템에 부담을 주고 DoS 상태로 이어져 LLM이 응답하지 않거나 충돌을 일으킬 수 있습니다.
  6. 공격자는 컨텍스트 창의 한계에 접근하거나 도달하도록 세심하게 제작된 대량의 가변 길이 입력으로 LLM을 넘치게 합니다. 다양한 길이의 입력으로 LLM을 압도함으로써 공격자는 가변 길이 입력 처리의 비효율성을 악용하는 것을 목표로 합니다. 이러한 입력 폭주로 인해 LLM 리소스에 과도한 로드가 발생하여 잠재적으로 성능 저하가 발생하고 합법적인 요청에 응답하는 시스템의 기능이 방해를 받습니다.
  7. DoS 공격은 일반적으로 시스템 리소스를 압도하는 것을 목표로 하지만 API 제한과 같은 시스템 동작의 다른 측면을 이용할 수도 있습니다. 예를 들어, 최근 발생한 Sourcegraph 보안 사고에서 악의적인 행위자는 유출된 관리 액세스 토큰을 사용하여 API 속도 제한을 변경했으며, 이로 인해 비정상적인 수준의 요청 볼륨이 활성화되어 서비스가 중단될 가능성이 있습니다.
  8. 공격자는 기존 문서에 결함 토큰을 추가하거나 공동 작업 또는 문서 관리 도구에서 이러한 토큰을 사용하여 새 문서를 만듭니다. RAG 벡터 데이터베이스가 자동으로 업데이트되면 이러한 악성 토큰이 정보 저장소에 추가됩니다. LLM을 통해 검색할 때 이러한 토큰은 추론 프로세스에 결함을 일으켜 LLM이 일관되지 않은 출력을 생성할 가능성이 있습니다.

참조 링크

  1. LangChain max_iterations : hwchase17 트위터
  2. 스폰지 예제: 신경망에 대한 에너지 지연 공격 : Arxiv 백서
  3. OWASP DOS 공격 : OWASP
  4. 기계로부터 배우기: 상황을 파악하라 : Luke Bechtel
  5. API 한도조작 및 DoS 공격 소스그래프 보안사고 : Sourcegraph
0
공유하기
최근 작성일시: 2024년 6월 15일
  • 검색
  • 맨위로
  • 페이지업
  • 페이지다운
  • 맨아래로
카카오톡 채널 채팅하기 버튼