LLM 부문 OWASP 톱 10 위험은?

대규모 언어 모델(LLM) 애플리케이션은 프롬프트 삽입, 데이터 포이즈닝, 모델 서비스 거부 등의 공격에 취약합니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • OWASP가 무엇인지 이해하기
  • LLM 부문 OWASP 톱 10 위협 각각에 대한 요약
  • LLM 취약점을 해결하는 방법 알아보기

글 링크 복사

OWASP란?

오픈 웹 애플리케이션 보안 프로젝트(OWASP)는 웹 애플리케이션 보안을 핵심 임무로 하는 국제 비영리 단체입니다. OWASP는 문서, 도구, 비디오, 컨퍼런스 및 포럼을 통해 다양한 무료 정보를 제공함으로써 다른 조직들이 웹 애플리케이션 보안을 강화할 수 있도록 돕고 있습니다.

OWASP 톱 10 보고서에서는 보안 전문가들이 꼽은 애플리케이션 보안에 가장 중요한 위험 10가지를 집중 조명합니다. OWASP에서는 모든 조직이 이 보고서에서 얻은 인사이트를 웹 애플리케이션 보안 전략에 통합할 것을 권장합니다.

2023년, OWASP 실무 그룹은 대규모 언어 모델(LLM) 애플리케이션에 대한 위협에 초점을 맞춰 유사한 보고서를 작성하기 위한 새로운 프로젝트를 시작했습니다. 대규모 언어 모델 애플리케이션 부문 OWASP 톱 10 보고서에서는 위협을 식별하고, 취약점 및 실제 공격 시나리오의 예를 제공하며, 완화 전략을 제공합니다. OWASP는 개발자, 디자이너, 아키텍트, 관리자의 인식을 제고하는 동시에 위협으로부터 방어하는 데 도움을 주고자 합니다.

다음은 2023년 10월 LLM 애플리케이션 부문 OWASP 톱 10 보고서에 포함된 취약성입니다.

1. 프롬프트 삽입

프롬프트 삽입은 공격자가 LLM에 사용되는 프롬프트를 조작하는 전술입니다. 공격자는 중요한 정보를 훔치거나 LLM이 안내하는 의사 결정 프로세스에 영향을 주거나 소셜 엔지니어링 스킴에 LLM을 사용하려고 할 수 있습니다.

공격자는 두 가지 방법으로 프롬프트를 조작할 수 있습니다.

  • 직접 프롬프트 삽입("탈옥"이라고도 함)은 시스템 프롬프트를 덮어쓰는 프로세스로, 사용자 입력에 응답하는 방법을 LLM에 지시합니다. 이 전술을 통해 공격자는 백엔드 시스템에 액세스하여 이를 악용할 수 있습니다.
  • 간접 프롬프트 삽입은 공격자가 LLM에 대한 입력으로 사용되는 외부 웹 사이트, 파일 등의 외부 소스를 제어하는 경우를 말합니다. 그런 다음, 공격자는 LLM이 액세스하는 시스템을 악용하거나 해당 모델을 사용하여 사용자를 조작할 수 있습니다.

프롬프트 삽입으로 인한 손상을 방지하는 방법은 여러 가지가 있습니다. 예를 들어, 조직에서는 백엔드 시스템에 대한 강력한 액세스 제어 정책을 구현하고, 사람을 LLM 기반 프로세스에 통합하고, LLM 기반 의사 결정에 대해 사람이 최종 결정권을 갖도록 하는 방법을 쓸 수 있습니다.

2. 안전하지 않은 출력 처리

조직에서 LLM 출력을 면밀히 조사하지 못하면 악의적인 사용자가 생성한 결과로 인해 다운스트림 시스템에 문제가 발생할 수 있습니다. 안전하지 않은 출력 처리를 악용하면 교차 사이트 스크립팅(XSS), 교차 사이트 요청 위조(CSRF), 서버 측 요청 위조(SSRF), 원격 코드 실행(RCE) 같은 유형의 공격이 발생할 수 있습니다. 예를 들어, 공격자는 LLM이 브라우저에서 해석할 수 있는 악의적 스크립트를 출력하도록 만들어 XSS 공격을 초래할 수 있습니다.

조직에서는 Zero Trust 보안 모델을 적용하고 LLM을 다른 사용자 또는 장치와 마찬가지로 취급함으로써 안전하지 않은 출력 처리를 방지할 수 있습니다. 이 방식들은 다른 기능을 구동하기 전에 LLM의 출력을 검증합니다.

3. 학습 데이터 포이즈닝

공격자는 LLM 모델 학습에 사용되는 데이터를 조작하거나 "중독"시키려고 시도할 수 있습니다. 데이터 포이즈닝이 발생하면 모델이 정확한 결과를 제공하거나 AI 기반 의사 결정을 지원하는 능력에 지장을 줄 수 있습니다. 이러한 유형의 공격은 해당 모델을 사용하는 조직의 평판을 손상시키려는 악의적인 경쟁사가 개시할 수 있습니다.

데이터 포이즈닝의 가능성을 줄이기 위해 조직에서는 데이터 공급망을 보호해야 합니다. 그 작업의 일환으로 모델링에 사용되는 빅데이터의 구성 요소를 비롯하여 데이터 소스의 합법성을 확인해야 합니다. 또한 모델이 신뢰할 수 없는 출처에서 데이터를 스크래핑하지 못하도록 방지하고, 데이터를 새니티타이즈해야 합니다.

4. 모델 서비스 거부

공격자는 분산 서비스 거부(DDoS) 공격과 유사하게, 서비스 품질을 저하시키거나 비용을 늘리거나 기타 방식으로 운영을 방해하기 위해 LLM을 사용하여 리소스가 많이 사용되는 작업을 실행할 수 있습니다. LLM은 많은 양의 리소스를 소비하는 경우가 많고 리소스 수요는 사용자 입력에 따라 변동될 수 있으므로 이러한 유형의 공격은 감지되지 않을 수도 있습니다.

이러한 유형의 서비스 거부 공격을 피하기 위해 조직에서는 개별 사용자 또는 IP 주소에 대해 API 속도 제한을 적용할 수 있습니다. 또한 입력의 유효성을 검사하고 새니티타이즈할 수 있습니다. 또한 지속적으로 리소스 사용량을 모니터링하여 의심스러운 급증을 파악해야 합니다.

5. 공급망 취약점

LLM 애플리케이션의 공급망에 취약성이 있으면 모델이 보안 위험에 노출되거나 부정확한 결과가 초래될 수 있습니다. 사전 학습된 모델, 모델 학습에 사용되는 데이터, 타사 데이터 세트, 플러그인 등 LLM 앱에 사용되는 여러 구성 요소는공격의 기반을 마련하거나 LLM 앱의 작동에 다른 문제를 일으킬 수 있습니다.

공급망 취약점을 해결하려면 먼저 공급업체를 신중하게 점검하고 적절한 보안을 구축해야 합니다. 또한 조직은 구성 요소의 최신 인벤토리를 유지하고 제공된 데이터와 모델을 면밀히 조사해야 합니다.

6. 중요한 정보 공개

LLM 애플리케이션은 중요한 고객 정보부터 지적 재산에 이르기까지의 기밀 데이터를 응답에서 의도하지 않게 공개할 수 있습니다. 이러한 유형의 공개는 규제 준수 위반에 해당하거나 보안 위반으로 이어질 수 있습니다.

완화 노력은 기밀 정보와 악의적인 입력이 학습 모델에 유입되지 않도록 애초에 방지하는 데 중점을 두어야 합니다. 이러한 노력을 위해서는 데이터 새니티타이즈 및 스크러빙이 필수적입니다.

LLM을 구축하면 국경을 넘는 데이터 전송이 포함될 수 있으므로 조직에서는 중요한 특정 데이터를 특정 지역에 유지하는 자동화된 데이터 현지화 제어도 구현해야 합니다. 이를 통해 다른 데이터를 LLM에 통합하는 것도 가능합니다.

7. 안전하지 않은 플러그인 설계

LLM 플러그인은 모델 기능을 향상하고 타사 서비스와의 통합을 용이하게 할 수 있습니다. 하지만 일부 플러그인은 액세스 제어가 충분하지 않아 공격자가 악의적인 입력을 삽입할 수 있는 기회를 제공할 수 있습니다. 이러한 정보는 RCE 또는 다른 유형의 공격을 가능하게 할 수 있습니다.

플러그인 악용을 방지하려면 보다 안전한 플러그인 설계가 필요합니다. 플러그인은 입력을 제어하고 입력 검사를 수행하여 악성 코드가 통과하지 못하도록 해야 합니다. 또한 플러그인은 최소 권한 원칙에 따라 인증 제어를 구현해야 합니다.

8. 과도한 에이전시

개발자들은 종종 LLM 애플리케이션에게 일정 수준의 에이전시를 부여합니다. 에이전시란 프롬프트에 응답하여 자동으로 조치를 취할 수 있는 권한을 뜻합니다. 하지만 애플리케이션에 너무 많은 권한을 부여하면 문제가 발생할 수 있습니다. LLM이 (공격, AI 할루시네이션 또는 기타 오류로 인해) 예상치 못한 출력을 생성하면 애플리케이션은 중요한 정보를 공개하거나 파일을 삭제하는 것과 같이 잠재적으로 피해를 줄 수 있는 조치를 취할 수도 있습니다.

과도한 에이전시를 방지하는 가장 좋은 방법은 개발자가 플러그인 및 기타 도구의 기능, 권한, 자율성을 필요한 최소한의 수준으로만 제한하는 것입니다. 플러그인으로 LLM 앱을 실행하는 조직에서는 특정 작업을 수행하기 전에 반드시 사람이 직접 권한을 부여하도록 할 수도 있습니다.

9. 과도한 의존

LLM은 완벽하지 않습니다. 도출된 결과를 권위 있는 방식으로 전달할 수 있다고 해도 사실에 따라 잘못된 결과, AI 할루시네이션 또는 편향된 결과를 도출하는 경우도 종종 있습니다. 조직이나 개인이 LLM을 과도하게 사용하면 잘못된 정보가 전파되어 규제 위반, 법적 노출, 평판 손상으로 이어질 수도 있는 것입니다.

과도한 의존의 문제를 피하려면 조직에서는 LLM 감독 정책을 구현해야 합니다. 또한 출력을 정기적으로 검토하고 이를 신뢰할 수 있는 외부 출처의 정보와 비교하여 정확성을 확인해야 합니다.

10. 모델 도난

공격자는 독점 LLM 모델에 액세스하거나, 복사하거나, 도용하려고 시도할 수 있습니다. 이러한 공격으로 인해 회사의 경쟁력이 약화되거나 모델 내의 중요한 정보가 손실될 수 있습니다.

역할 기반 접근 제어(RBAC) 기능을 포함하여 강력한 접근 제어를 적용하면 LLM 모델에 대한 무단 액세스를 방지할 수 있습니다. 또한 조직은 액세스 로그를 정기적으로 모니터링하고 권한이 없는 동작에 대응해야 합니다. 데이터 손실 방지(DLP) 기능은 애플리케이션에서 정보를 유출하려는 시도를 발견하는 데 도움이 될 수 있습니다.

조직에서는 LLM을 어떻게 보호할 수 있을까요?

OWASP 문서에서 알 수 있듯이 조직에서는 위협으로부터 LLM 애플리케이션을 보호하기 위한 다면적인 전략이 필요합니다. 예를 들어, 다음과 같은 수단을 생각해 볼 수 있습니다.

  • 네트워크 트래픽을 분석해 애플리케이션을 손상시킬 수 있는 LLM 침해를 나타낼 수 있는 패턴을 분석합니다.
  • 비트 수준에서 LLM과 상호 작용하는 패킷 및 데이터에 대한 실시간 가시성을 확보합니다.
  • DLP를 적용하여 전송 중인 중요한 데이터를 보호합니다.
  • 트래픽을 확인, 필터링, 격리하여 손상된 LLM으로부터 애플리케이션을 보호합니다.
  • 원격 브라우저 격리(RBI)를 도입하여 악성 코드가 삽입된 모델로부터 사용자를 격리합니다.
  • 웹 애플리케이션 방화벽(WAF) 관리 규칙 집합을 사용하여 SQL 삽입, XSS 등의 웹 공격 벡터를 기반으로 하는 LLM 공격을 차단합니다.
  • Zero Trust 보안 모델을 사용하여 컨텍스트 기반의 리소스별로 최소 권한 액세스만 부여하여 공격면을 줄입니다.

Cloudflare는 LLM 위험을 줄이는 데 어떻게 도움이 될까요?

조직을 지원하기 위해, Cloudflare는 LLM 애플리케이션을 위해 특별히 설계된 고급 WAF인 AI용 방화벽을 개발하고 있습니다. 조직에서는 LLM 앞에 AI용 방화벽을 배포하여 취약점을 감지하고 모델에 도달하기 전에 남용을 식별할 수 있습니다. 이 플랫폼은 Cloudflare의 대규모 전역 네트워크를 활용하며 사용자와 가까운 곳에서 실행되어 공격을 조기에 발견하고 사용자와 모델을 모두 보호합니다.

또한 Cloudflare AI Gateway는 통합 인터페이스에서 생성형 AI 워크로드를 관리하고 확장할 수 있는 AI 운영 플랫폼을 제공합니다. 이는 조직의 서비스와 인터페이스 공급자 사이의 프록시 역할을 하여 조직이 AI 애플리케이션을 관찰하고 제어하도록 돕습니다.

LLM 부문 OWASP 톱 10에 대해 자세히 알아보려면 공식 보고서를 참조하세요.