Protéger Azure OpenAI à l’aide d’Azure Web Application Firewall sur Azure Front Door
De plus en plus d’entreprises utilisent les API Azure OpenAI, tandis que le nombre et la complexité des attaques de sécurité contre les applications web évoluent constamment. Une stratégie de sécurité forte est nécessaire pour protéger les API Azure OpenAI contre diverses attaques d’applications web.
Azure Web Application Firewall (WAF) est un produit Azure Networking qui protège les applications web et les API contre plusieurs des dix principales attaques web, vulnérabilités et expositions (CVE) courantes, et attaques de bots malveillants recensées par OWASP.
Cet article explique comment utiliser Azure Web Application Firewall (WAF) sur Azure Front Door pour protéger les points de terminaison Azure OpenAI.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Créer une instance Azure OpenAI à l’aide du modèle gpt-35-turbo
Tout d’abord, créez une instance OpenAI.
Créez une instance Azure OpenAI et déployez un modèle gpt-35-turbo en suivant les étapes fournies dans Créer et déployer une ressource Azure OpenAI Service.
Identifiez le point de terminaison Azure OpenAI et la clé API.
Ouvrez le studio Azure OpenAI et ouvrez l’option Conversation sous Terrain de jeu. Utilisez l’option Afficher le code pour afficher le point de terminaison et la clé API.
Validez l’appel Azure OpenAI à l’aide de votre méthode de test d’API préférée, telle que Visual Studio ou Insomnia. Utilisez les valeurs de point de terminaison et de clé API Azure OpenAPI obtenues lors des étapes précédentes. Utilisez ces lignes de code dans le corps POST :
{ "model":"gpt-35-turbo", "messages": [ { "role": "user", "content": "What is Azure OpenAI?" } ] }
En réponse à POST, vous devez recevoir un message 200 OK :
Azure OpenAI génère également une réponse à l’aide du modèle GPT.
Créer une instance Azure Front Door avec Azure WAF
Utilisez maintenant le portail Azure pour créer une instance Azure Front Door avec Azure WAF.
Créez un niveau optimisé Azure Front Door Premium avec une stratégie de sécurité WAF associée dans le même groupe de ressources. Utilisez l’option Création personnalisée.
Ajoutez les points de terminaison et les routes.
Ajoutez le nom d’hôte d’origine : le nom d’hôte d’origine est
testazureopenai.openai.azure.com
.Ajoutez la stratégie WAF.
Configurer une stratégie WAF pour vous protéger contre les vulnérabilités des applications web et des API
Activez la stratégie WAF en mode prévention et vérifiez que Microsoft_DefaultRuleSet_2.1 et Microsoft_BotManagerRuleSet_1.0 sont activés.
Vérifier l’accès à Azure OpenAI via le point de terminaison Azure Front Door
Vérifiez maintenant votre point de terminaison Azure Front Door.
Récupérez le point de terminaison Azure Front Door à partir de Front Door Manager.
Utilisez votre méthode de test d’API préférée, telle que Visual Studio ou Insomnia, pour envoyer une requête POST au point de terminaison Azure Front Door.
- Remplacez le point de terminaison Azure OpenAI par le point de terminaison AFD dans la requête POST.
Azure OpenAI génère également une réponse à l’aide du modèle GPT.
Vérifier que WAF bloque une attaque OWASP
Envoyez une requête POST simulant une attaque OWASP sur le point de terminaison Azure OpenAI. WAF bloque l’appel avec un code de réponse 403 Interdit.
Configurer des règles de restriction IP à l’aide de WAF
Pour restreindre l’accès au point de terminaison Azure OpenAI aux adresses IP requises, consultez Configurer une règle de restriction IP avec un WAF pour Azure Front Door.
Problèmes courants
Les éléments suivants sont des problèmes courants que vous pouvez rencontrer lors de l’utilisation d’Azure OpenAI avec Azure Front Door et Azure WAF.
Vous recevez un message 401 : Accès refusé lorsque vous envoyez une requête POST à votre point de terminaison Azure OpenAI.
Si vous tentez d’envoyer une requête POST à votre point de terminaison Azure OpenAI immédiatement après sa création, vous pouvez recevoir un message 401 : Accès refusé, même si vous avez la clé API appropriée dans votre requête. Ce problème se résout généralement après un certain temps sans intervention directe.
Vous recevez un message 415 : Type de support non pris en charge lorsque vous envoyez une requête POST à votre point de terminaison Azure OpenAI.
Si vous tentez d’envoyer une requête POST à votre point de terminaison Azure OpenAI avec l’en-tête Content-Type
text/plain
, vous obtenez ce message. Veillez à mettre à jour votre en-tête Content-Type versapplication/json
dans la section d’en-tête dans votre test.