구독해서 새 게시물에 대한 알림을 받으세요.

Cloudflare의 AI용 방화벽 발표

2024-03-04

8분 읽기
이 게시물은 English, 繁體中文, Français, Deutsch, 日本語, Português, Español简体中文로도 이용할 수 있습니다.

오늘 Cloudflare에서는 대규모 언어 모델(LLM) 앞에 배포하여 남용이 모델에 도달하기 전에 식별할 수 있는 보호 계층인 AI용 방화벽을 개발했음을 발표합니다.

Cloudflare announces Firewall for AI

AI 모델, 특히 LLM이 급증하는 가운데, 고객들은 자체 LLM을 확보하기 위한 최선의 전략이 무엇인지 고민하고 있다고 이야기합니다. 인터넷에 연결된 앱의 일부로 LLM을 사용하면 악의적인 행위자가 악용할 수 있는 새로운 취약점이 생깁니다.

삽입, 데이터 유출 등 기존 웹 및 API 앱에 영향을 미치는 취약점 중 일부는 LLM 세계에도 적용됩니다. 하지만 LLM의 작동 방식 때문에 새로운 위협이 등장했습니다. 예를 들어, 연구자들은 AI 협업 플랫폼에서 모델을 탈취하여 무단으로 작업을 수행할 수 있는 취약점을 최근에 발견했습니다.

AI용 방화벽은 고급웹 앱 방화벽(WAF)으로, LLM을 사용하는 앱에 특별히 맞춤화되었습니다. 앱 앞에 배포할 수 있는 도구 세트로 구성되어 취약점을 감지하고 모델 소유자에게 가시성을 제공합니다. 이 툴 키트에는 Rate Limiting 및 Sensitive Data Detection 등 이미 WAF에 포함된 제품과 현재 개발 중인 새로운 보호 계층이 포함될 예정입니다. 이 새로운 검증 방식으로 최종 사용자가 제출한 프롬프트를 분석하여 모델을 악용하여 데이터를 추출하려는 시도 및 기타 악용 시도가 식별됩니다. AI용 방화벽은 Cloudflare 네트워크의 규모를 활용하여 사용자와 최대한 가까운 곳에서 실행되므로 공격을 조기에 식별하고 남용 및 공격으로부터 최종 사용자와 모델을 모두 보호할 수 있습니다.

AI용 방화벽의 작동 방식과 전체 기능 세트를 살펴보기 전에 먼저 LLM의 고유한 특징과 LLM으로 초래되는 공격면을 살펴보겠습니다. LLM에 대한 OWASP 10대 취약점을 참고 자료로 사용합니다.

LLM이 기존 앱과 다른 이유는 무엇일까요?

LLM을 인터넷에 연결된 앱으로 간주할 때 기존 웹 앱과 비교하면 크게 두 가지 차이점이 있습니다.

첫째, 사용자가 제품과 상호 작용하는 방식입니다. 기존 앱은 본질적으로 결정론적입니다. 은행 앱을 생각해 보세요. 은행 앱은 일련의 작업(잔액 확인, 이체 등)으로 정의되어 있습니다. 이러한 엔드포인트에서 허용되는 다음과 같은 작업 세트를 제어하여 비즈니스 운영(및 데이터)의 보안을 확보할 수 있습니다. "GET /balance" 또는 "POST /transfer".

LLM 연산은 설계상 비결정론적입니다. 우선, LLM 상호 작용은 자연어를 기반으로 하므로 공격 서명과 일치하는 것보다 문제가 있는 요청을 식별하기가 더 어렵습니다. 또한 LLM은 응답이 캐시되지 않는 한 일반적으로 동일한 입력 프롬프트가 반복되더라도 매번 다른 응답을 제공합니다. 따라서 사용자가 앱과 상호 작용하는 방식을 제한하는 것이 훨씬 더 어려워집니다. 이는 모델에 대한 신뢰를 약화시키는 잘못된 정보에 노출된다는 측면에서 사용자에게도 위협이 될 수 있습니다.

둘째, 큰 차이점은 앱 제어판이 데이터와 상호 작용하는 방식입니다. 기존 앱에서는 제어판(코드)이 데이터 영역(데이터베이스)과 잘 분리되어 있습니다. 정의된 작업은 기본 데이터와 상호 작용할 수 있는 유일한 방법입니다(예: 나의 결제 거래 내역 표시). 따라서 보안 실무자는 제어판에 검사 및 보안 대책을 추가하여 데이터베이스를 간접적으로 보호하는 데 집중할 수 있습니다.

LLM은 학습 데이터가 학습 프로세스를 통해 모델 자체의 일부가 되므로 사용자 프롬프트의 결과로 해당 데이터가 공유되는 방식을 제어하기가 매우 어렵다는 점에서 다릅니다. LLM을 여러 레벨로 분리하고 데이터를 분리하는 등 일부 아키텍처 솔루션이 모색되고 있습니다. 하지만 아직 해결책을 찾지 못했습니다.

보안 관점에서 볼 때 이러한 차이점 때문에 공격자가 기존 웹 앱용으로 설계된 기존 보안 도구의 레이더망을 피할 수 있는 새로운 공격 벡터를 만들 수 있습니다.

OWASP LLM 취약점

OWASP 재단에서는 언어 모델을 보호하는 방법에 대해 생각하는 데 유용한 프레임워크를 제공하는 LLM의 상위 10대 취약점 등급 목록을 발표했습니다. 일부 위협은 웹 앱에 대한 OWASP 10대 취약점과 유사하지만, 다른 위협은 언어 모델에만 해당합니다.

웹 앱과 마찬가지로 이러한 취약점 중 일부는 LLM 앱을 설계하고 개발하며 학습시킬 때 가장 잘 해결할 수 있습니다. 예를 들어, _학습 데이터 오염_은 새 모델을 학습시키는 데 사용되는 학습 데이터 세트에 취약점을 도입하여 수행할 수 있습니다. 그러면 모델이 작동할 때 오염된 정보가 사용자에게 표시됩니다. 공급망 취약점 및 _불안전한 플러그인 설계_는 타사 소프트웨어 패키지와 같이 모델에 추가된 구성 요소에 도입된 취약성입니다. 마지막으로, 제약되지 않은 모델이 광범위한 앱 또는 인프라 내에서 무단 작업을 수행할 수 있는 _과도한 에이전시_를 다룰 때는 권한 부여 및 권한 관리가 중요합니다.

반대로 프롬프트 인젝션, 모델 서비스 거부, _중요한 정보 공개_는 AI용 Cloudflare 방화벽과 같은 프록시 보안 솔루션을 채택하여 완화할 수 있습니다. 다음 섹션에서는 이러한 취약점에 대해 자세히 설명하고 Cloudflare가 이러한 취약점을 완화하는 데 어떻게 최적의 위치에 있게 되었는지 설명합니다.

LLM 배포

언어 모델 위험은 배포 모델에 따라 달라집니다. 현재 내부, 퍼블릭, 제품 LLM의 세 가지 주요 배포 방식이 있습니다. 세 가지 시나리오 모두에서, 남용으로부터 모델을 보호하고, 모델에 저장된 모든 독점 데이터를 보호하며, 최종 사용자가 잘못된 정보나 부적절한 콘텐츠에 노출되지 않도록 보호해야 합니다.

  • 내부 LLM: 기업에서는 일상 업무에서 직원을 지원하기 위해 LLM을 개발합니다. 이 LLM은 회사 자산으로 간주되며 직원이 아닌 사람이 액세스해서는 안 됩니다. 예를 들어 맞춤형 제안을 생성하는 데 사용되는 영업 데이터 및 고객 상호 작용에 대해 학습된 AI 코파일럿, 엔지니어가 조회할 수 있는 내부 지식 기반에 대해 학습된 LLM 등이 있습니다.

  • 퍼블릭 LLM: 기업 외부에서 액세스할 수 있는 LLM입니다. 이러한 솔루션에는 누구나 사용할 수 있는 무료 버전이 있는 경우가 많으며, 일반 지식이나 공개 지식에 대해 학습된 경우가 많습니다. 예를 들어 OpenAI의 GPT나 Anthropic의 Claude 등이 있습니다.

  • 제품 LLM: 기업 관점에서 LLM은 고객에게 제공되는 제품 또는 서비스의 일부가 될 수 있습니다. 이러한 LLM은 일반적으로 자체 호스팅되는 맞춤형 솔루션으로, 회사 리소스와 상호 작용하는 도구로 사용할 수 있습니다. 예를 들어 고객 지원 채팅 봇, Cloudflare AI 비서 등이 있습니다.

위험 관점에서 보면 제품형 LLM과 퍼블릭 LLM의 차이는 공격 성공의 영향을 누가 부담하느냐에 있습니다. 퍼블릭 LLM은 데이터에 대한 위협으로 간주됩니다. 모델에 저장된 데이터에 사실상 모든 사람이 액세스할 수 있기 때문입니다. 이는 많은 기업에서 직원들에게 공개 서비스 프롬프트에 기밀 정보를 사용하지 말라고 권고하는 이유 중 하나입니다. 제품 LLM의 모델이 교육 중에 (의도적으로 또는 우발적으로) 독점 정보에 액세스할 권한이 있는 경우, 제품 LLM은 기업과 기업의 지적 재산에 대한 위협으로 간주될 수 있습니다.

AI용 방화벽

AI용 Cloudflare 방화벽은 기존 WAF처럼 배포되며, LLM 프롬프트가 있는 모든 API 호출에 가능한 공격의 패턴과 시그니처가 있는지 검사가 이루어집니다.

AI용 방화벽은 Cloudflare Workers AI 플랫폼에서 호스팅되는 모델 또는 기타 타사 인프라에서 호스팅되는 모델 앞에 배포할 수 있습니다. 이 방화벽은 Cloudflare AI Gateway와 함께 사용할 수도 있으며, 고객은 WAF 제어판을 사용하여 AI용 방화벽을 제어하고 설정할 수 있습니다.

AI용 방화벽은 기존 웹 앱 방화벽처럼 작동합니다. 이 방화벽은 LLM 앱 앞에 배포되며 모든 요청을 스캔하여 공격 시그니처를 식별합니다.

볼류메트릭 공격 방지

OWASP에서 나열한 위협 중 하나는 모델 서비스 거부입니다. 기존 앱과 마찬가지로 DoS 공격은 매우 많은 양의 리소스를 소비하여 서비스 품질을 저하시키거나 잠재적으로 모델 실행 비용을 증가시키는 방식으로 수행됩니다. LLM을 실행하는 데 필요한 리소스의 양과 사용자 입력의 예측 불가능성을 고려할 때, 이러한 유형의 공격은 해로울 수 있습니다.

이 위험은 레이트 리미팅 정책을 채택하여 완화할 수 있습니다. 개별 세션의 요청 속도를 제어하여 컨텍스트 창을 제한하는 것입니다. 지금 Cloudflare를 통해 모델을 프록시 설정하면 DDoS 방어 기능을 바로 사용할 수 있습니다. 또한 레이트 리미팅 및고급 레이트 리미팅을 사용하여 세션 중에 개별 IP 주소 또는 API 키가 수행하는 요청의 최대 속도를 설정하여 모델에 도달할 수 있는 요청의 속도를 관리할 수 있습니다.

Sensitive Data Detection 기능으로 중요한 정보 식별

중요한 데이터의 사용 사례는 모델과 데이터를 소유하고 있는지, 아니면 사용자가 데이터를 퍼블릭 LLM으로 전송하지 못하도록 하려는 것인지에 따라 두 가지가 있습니다.

OWASP에서 정의한 대로 _중요한 정보 공개_는 LLM이 실수로 응답에서 기밀 데이터를 공개하여 무단 데이터 액세스, 개인정보 침해, 보안 위반으로 이어질 때 발생합니다. 이를 방지하는 한 가지 방법은 엄격한 프롬프트 유효성 검사를 추가하는 것입니다. 또 하나의 접근 방식은 개인 식별 정보(PII)가 모델을 떠나는 시점을 식별하는 것입니다. 이는 예를 들어 모델이 주민등록번호, 독점 코드, 알고리즘 등 중요한 정보가 포함될 수 있는 회사 지식 베이스로 학습한 경우와 관련이 있습니다.

Cloudflare WAF에서 LLM 모델을 사용하는 고객은 Sensitive Data Detection(SDD) WAF 관리형 규칙 집합을 사용하여 응답에서 모델이 반환하는 특정 PII를 식별할 수 있습니다. 고객은 WAF 보안 이벤트에서 SDD 일치 항목을 검토할 수 있습니다. 현재 SDD는 금융 정보(예: 신용카드 번호)와 비밀(API 키)을 검색하도록 설계된 관리형 규칙 집합으로 제공됩니다. Cloudflare에서는 로드맵의 일환으로 고객이 자신만의 맞춤형 지문을 만들도록 허용할 계획입니다.

다른 사용 사례는 사용자가 OpenAI, Anthropic 등의 외부 LLM 공급자와 PII 또는 기타 중요한 정보를 공유하지 못하도록 하기 위한 것입니다. 이러한 시나리오를 방지하기 위해 SDD를 확장하여 요청 프롬프트를 스캔하고 그 출력을 AI Gateway와 통합하여 해당 프롬프트의 기록과 함께 중요한 특정 데이터가 요청에 포함되어 있는지 감지하도록 할 계획입니다. 우선 기존의 SDD 규칙을 사용하는 것으로 시작하여 고객이 직접 맞춤형 서명을 작성할 수 있도록 할 예정입니다. 이와 관련하여, 많은 고객이 난독화 기능에 대하여 자주 이야기하시는 것을 듣고 있습니다. 확장된 SDD를 사용할 수 있게 되면 고객은 중요한 특정 데이터가 모델에 도달하기 전에 프롬프트에서 난독화할 수 있습니다. 요청 단계에서의 SDD를 개발하고 있습니다.

모델 남용 방지

모델 남용은 더 넓은 범주의 남용입니다. 여기에는 '프롬프트 삽입'과 같은 접근 방식이나 할루시네이션(hallucination, 환각)을 유발하거나 부정확하거나 모욕적이거나 부적절하거나 단순히 주제에서 벗어난 응답을 유도하는 요청을 제출하는 방식이 포함됩니다.

프롬프트 삽입은 특수하게 조작된 입력을 통해 언어 모델을 조작하려는 시도로, LLM에서 의도하지 않은 응답을 유발합니다. 삽입의 결과는 중요한 정보를 추출하는 것부터 모델과의 정상적인 상호 작용을 모방하여 의사 결정에 영향을 미치는 것까지 다양할 수 있습니다. 프롬프트 삽입의 대표적인 예는 이력서를 조작하여 이력서 심사 도구의 출력에 영향을 미치는  것입니다.

AI Gateway 고객으로부터 자주 듣는 사용 사례는 앱에서 유해하거나 모욕적이거나 문제가 되는 언어가 생성되는 것을 방지하고 싶다는 것입니다. 모델의 결과를 통제하지 못할 경우 평판이 손상되고 신뢰할 수 없는 응답이 제공되어 최종 사용자에게 해를 끼칠 수 있는 등의 위험이 있습니다.

이러한 유형의 악용은 모델 앞에 보호 계층을 추가하여 관리할 수 있습니다. 이 계층은 삽입 시도를 차단하거나 부적절한 범주에 속하는 프롬프트를 차단하도록 학습시킬 수 있습니다.

프롬프트 및 응답 유효성 검사

AI용 방화벽에서는 주제가 모델 소유자가 정의한 경계 내에 있는지 확인하는 등 프롬프트 삽입 시도 및 기타 악용을 식별하도록 설계된 일련의 감지 기능이 실행됩니다. 기존의 다른 WAF 기능과 마찬가지로 AI용 방화벽은 HTTP 요청에 포함된 프롬프트를 자동으로 찾거나 고객이 요청의 JSON 본문에서 프롬프트를 찾을 수 있는 위치를 기반으로 규칙을 만들도록 할 수 있습니다.

활성화되면 방화벽에서 모든 프롬프트가 분석되어 악성일 가능성에 따라 점수가 제공됩니다. 또한 미리 정의된 카테고리에 따라 프롬프트에 태그가 지정됩니다. 프롬프트 삽입 가능성을 가리키는 점수는 1에서 99까지이며, 1이 가장 가능성이 높습니다.

고객은 이러한 차원 중 하나 또는 둘 모두에서 특정 점수를 받은 요청을 차단하거나 처리하는 WAF 규칙을 만들 수 있습니다. 이 점수를 다른 기존 신호(예: 봇 점수 또는 공격 점수)와 결합하여 요청이 모델에 도달해야 하는지 아니면 차단되어야 하는지 여부를 결정할 수 있습니다. 예를 들어, 이 점수를 봇 점수와 결합하여 요청이 악의적이고 자동화된 소스에서 생성된 것인지 식별할 수 있습니다.

프롬프트 삽입과 프롬프트 남용을 감지하는 것은 AI용 방화벽의 범위 중 일부입니다. 제품 설계의 조기 반복.

점수 외에도, 규칙을 만들 때 사용할 수 있는 태그를 각 프롬프트에 할당하여 이러한 범주에 속하는 프롬프트가 해당 모델에 도달하지 못하도록 할 예정입니다. 예를 들어 고객은 특정 주제를 차단하는 규칙을 만들 수 있습니다. 예를 들어 불쾌감을 주는 것으로 분류되거나 종교, 성적인 콘텐츠, 정치와 관련된 단어를 사용하는 프롬프트가 여기에 포함됩니다.

AI용 방화벽은 어떻게 사용하고 누가 사용할 수 있을까요?

앱 보안 고급 제품을 사용하는 Enterprise 고객은 Advanced Rate Limiting 및 Sensitive Data Detection을 즉시 사용할 수 있습니다(응답 단계에서). 두 제품 모두 Cloudflare 대시보드의 WAF 섹션에서 찾을 수 있습니다. AI용 방화벽의 프롬프트 유효성 검사 기능은 현재 개발 중이며, 베타 버전은 앞으로 몇 달 이내에 모든 Workers AI 사용자에게 공개될 예정입니다. 대기자 명단에 등록하여 해당 기능을 사용할 수 있게 되면 알림을 받으세요.

결론

Cloudflare는 AI 앱 보안을 위한 도구 세트를 출시한 최초의 보안 공급자 중 하나입니다. 고객은 AI용 방화벽을 사용하여 언어 모델에 도달하는 프롬프트와 요청을 제어하여 악용 및 데이터 유출의 위험을 줄일 수 있습니다. AI 앱 보안이 어떻게 진화하고 있는지 계속 지켜봐 주세요.

Cloudflare에서는 전체 기업 네트워크를 보호하고, 고객이 인터넷 규모의 애플리케이션을 효과적으로 구축하도록 지원하며, 웹 사이트와 인터넷 애플리케이션을 가속화하고, DDoS 공격을 막으며, 해커를 막고, Zero Trust로 향하는 고객의 여정을 지원합니다.

어떤 장치로든 1.1.1.1에 방문해 인터넷을 더 빠르고 안전하게 만들어 주는 Cloudflare의 무료 앱을 사용해 보세요.

더 나은 인터넷을 만들기 위한 Cloudflare의 사명을 자세히 알아보려면 여기에서 시작하세요. 새로운 커리어 경로를 찾고 있다면 채용 공고를 확인해 보세요.
Security Week (KO)AI보안Developer PlatformWAFLLM (KO)Application Services

X에서 팔로우하기

Cloudflare|@cloudflare

관련 게시물