Condividi tramite


Proteggere Azure OpenAI usando Web application firewall di Azure in Frontdoor di Azure

Ci sono un numero crescente di aziende che usano le API OpenAI di Azure e il numero e la complessità degli attacchi alla sicurezza contro le applicazioni Web è in continua evoluzione. Una strategia di sicurezza avanzata è necessaria per proteggere le API OpenAI di Azure da diversi attacchi alle applicazioni Web.

Web application firewall (WAF) di Azure è un prodotto di rete di Azure che protegge le applicazioni Web e le API da vari attacchi Web OWASP principali 10, vulnerabilità comuni ed esposizioni (CVE) e attacchi di bot dannosi.

Questo articolo descrive come usare Web application firewall (WAF) di Azure in Frontdoor di Azure per proteggere gli endpoint OpenAI di Azure.

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Creare un'istanza di Azure OpenAI usando il modello gpt-35-turbo

Creare prima di tutto un'istanza OpenAI.

  1. Creare un'istanza di Azure OpenAI e distribuire un modello gpt-35-turbo usando Creare e distribuire una risorsa del servizio Azure OpenAI.

  2. Identificare l'endpoint OpenAI di Azure e la chiave API.

    Aprire Azure OpenAI Studio e aprire l'opzione Chat in Playground. Usare l'opzione Visualizza codice per visualizzare l'endpoint e la chiave API. Screenshot che mostra il playground chat di Azure AI Studio.

    Screenshot che mostra il codice di esempio OpenAI di Azure con Endpoint e Key.

  3. Convalidare la chiamata di Azure OpenAI usando il metodo di test dell'API preferito, ad esempio Visual Studio o Insonnia. Usare i valori dell'endpoint OpenAPI di Azure e della chiave API disponibili nei passaggi precedenti. Usare queste righe di codice nel corpo POST:

    {
    "model":"gpt-35-turbo",
    "messages": [
    {
    "role": "user",
    "content": "What is Azure OpenAI?"
    }
    ]
    }
    
    

    Screenshot che mostra il corpo del post.

  4. In risposta a POST, si dovrebbe ricevere un 200 OK: Screenshot che mostra POST 200 OK.

    Azure OpenAI genera anche una risposta usando il modello GPT.

Creare un'istanza di Frontdoor di Azure con Azure WAF

Usare ora il portale di Azure per creare un'istanza di Frontdoor di Azure con Azure WAF.

  1. Creare un livello ottimizzato per Frontdoor di Azure con un criterio di sicurezza WAF associato nello stesso gruppo di risorse. Usare l'opzione Creazione personalizzata .

    1. Guida introduttiva: creare un profilo Forntdoor di Azure - portale di Azure
  2. Aggiungere endpoint e route.

  3. Aggiungere il nome host di origine: il nome host di origine è testazureopenai.openai.azure.com.

  4. Aggiungere i criteri WAF.

Configurare un criterio WAF per la protezione da vulnerabilità dell'applicazione Web e delle API

Abilitare i criteri WAF in modalità di prevenzione e assicurarsi che Microsoft_DefaultRuleSet_2.1 e Microsoft_BotManagerRuleSet_1.0 siano abilitati.

Screenshot che mostra un criterio WAF.

Verificare l'accesso ad Azure OpenAI tramite l'endpoint frontdoor di Azure

Verificare ora l'endpoint di Frontdoor di Azure.

  1. Recuperare l'endpoint frontdoor di Azure da Frontdoor Manager.

    Screenshot che mostra l'endpoint frontdoor di Azure.

  2. Usare il metodo di test dell'API preferito, ad esempio Visual Studio o Insomnia , per inviare una richiesta POST all'endpoint di Frontdoor di Azure.

    1. Sostituire l'endpoint OpenAI di Azure con l'endpoint AFD nella richiesta POST. Screenshot che mostra il POST finale.

    Azure OpenAI genera anche una risposta usando il modello GPT.

Convalidare waf blocca un attacco OWASP

Inviare una richiesta POST simulando un attacco OWASP sull'endpoint OpenAI di Azure. WAF blocca la chiamata con un codice di risposta 403 Non consentito.

Configurare le regole di restrizione IP tramite WAF

Per limitare l'accesso all'endpoint OpenAI di Azure agli indirizzi IP necessari, vedere Configurare una regola di restrizione IP con un WAF per Frontdoor di Azure.

Problemi comuni

Gli elementi seguenti sono problemi comuni che possono verificarsi quando si usa Azure OpenAI con Frontdoor di Azure e Azure WAF.

  • Viene visualizzato un messaggio 401: Accesso negato quando si invia una richiesta POST all'endpoint OpenAI di Azure.

    Se si tenta di inviare una richiesta POST all'endpoint OpenAI di Azure immediatamente dopo averlo creato, è possibile che venga visualizzato un messaggio 401: Accesso negato anche se nella richiesta è presente la chiave API corretta. Questo problema si risolverà in genere dopo qualche tempo senza alcun intervento diretto.

  • Viene visualizzato un messaggio 415: Tipo di supporto non supportato quando si invia una richiesta POST all'endpoint OpenAI di Azure.

    Se si tenta di inviare una richiesta POST all'endpoint OpenAI di Azure con l'intestazione text/plainContent-Type , viene visualizzato questo messaggio. Assicurarsi di aggiornare l'intestazione Content-Type in application/json nella sezione intestazione del test.