Analyse du contenu du corps POST

Cette page contient des informations sur la configuration de l'analyse du contenu du corps POST, une fonctionnalité facultative que vous pouvez utiliser avec vos stratégies de sécurité Google Cloud Armor.

Par défaut, Google Cloud Armor évalue le contenu complet d'un corps POST en tant que chaîne uniforme (soumis aux limites de taille du corps) par rapport aux signatures de vos règles WAF préconfigurées. Pour les requêtes qui contiennent d'autres types de codage, tels que JSON, les composants structurels du message. (non spécifié par l'utilisateur) pourrait déclencher des correspondances avec le WAF préconfiguré signatures. Pour éviter le bruit et réduire le risque de faux positifs, nous vous recommandons de configurer Google Cloud Armor afin d'activer une analyse alternative est compatible avec Content-Type si vos charges de travail protégées effectuent les opérations suivantes:

  • Diffuser des API REST
  • Utiliser GraphQL
  • Recevoir toutes les requêtes dont le contenu est encodé au format JSON

Vous pouvez activer ou désactiver l'analyse du contenu du corps JSON des requêtes POST pour chaque stratégie de sécurité. Lorsque l'en-tête Content-Type est défini sur application/json, utilisez l'option --json-parsing dans Google Cloud CLI.

Cette option est désactivée par défaut. La syntaxe de l'option est la suivante :

--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]

L'option est disponible uniquement avec gcloud compute security-policies update. Cette option ne vous permet pas de créer une stratégie de sécurité, sauf si vous créez une stratégie de sécurité dans un fichier, puis que vous importez ce fichier. Pour en savoir plus, consultez la section Importer des stratégies de sécurité.

Utiliser l'analyse JSON

Dans l'exemple suivant, vous configurez une liste de valeurs d'en-tête Content-Type personnalisées pour lesquelles une autre analyse est appliquée. L'exemple met à jour la règle de sécurité POLICY_NAME pour activer l'analyse JSON, et spécifie le types de contenus application/json, application/vnd.api+json, application/vnd.collection+json et application/vnd.hyper+json:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD \
    --json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"

Utiliser l'analyse GraphQL

Pour configurer l'analyse GraphQL, mettez à jour votre stratégie de sécurité pour définir le l'indicateur --json-parsing sur STANDARD_WITH_GRAPHQL, comme dans l'exemple suivant:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD_WITH_GRAPHQL

Journalisation

Chaque requête HTTP(S) évaluée par rapport à une stratégie de sécurité Google Cloud Armor est enregistrée via Cloud Logging. Les journaux fournissent des détails, tels que le nom de la stratégie de sécurité appliquée, la règle de correspondance et si la règle a été appliquée. La journalisation des requêtes pour les nouvelles ressources de service de backend est désactivée par défaut. Pour vous assurer que les requêtes Google Cloud Armor sont consignées, vous devez activer la journalisation HTTP(S) pour chaque service de backend protégé par une stratégie de sécurité. Pour en savoir plus, consultez la page Journalisation et surveillance de l'équilibreur de charge d'application externe global.

Limites

Tenez compte des limites suivantes lors de la configuration de l'analyse JSON :

  • L'inspection du corps de la requête POST est limitée aux 8 premiers Ko. Si le fichier JSON est supérieure à 8 Ko, Google Cloud Armor applique l'analyse JSON des 8 premiers ko de contenu utilisé qui est inspecté par préconfigurées WAF.
  • Si l'analyseur JSON ne renvoie aucun résultat, vous pouvez tenter d'analyser l'URI. Si l'analyseur d'URI ne renvoie aucun paramètre nom-valeur ou uniquement des paramètres nom-valeur partiels, la chaîne entière ou partielle peut être traitée comme nom de paramètre pour l'inspection.

Étape suivante