Analyse du contenu du corps de la requête POST

Cette page contient des informations sur la configuration de l'analyse du contenu du corps des requêtes 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 (sous réserve des limites de taille du corps) par rapport aux signatures de vos règles WAF préconfigurées. Pour les requêtes contenant un autre encodage tel que JSON, les composants structurels du message (non spécifiés par l'utilisateur) peuvent déclencher des correspondances avec les signatures WAF préconfigurées. Pour éviter le bruit et réduire le risque de faux positifs, nous vous recommandons de configurer Google Cloud Armor pour activer l'analyse alternative pour tout type de contenu compatible si vos charges de travail protégées:

  • 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 analyse alternative est appliquée. L'exemple met à jour la règle de sécurité POLICY_NAME pour activer l'analyse JSON et spécifie les types de contenu 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é afin de définir l'option --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 lorsque vous configurez l'analyse JSON:

  • L'inspection du corps POST est limitée aux 8 premiers Ko. Si le contenu JSON est supérieur à 8 Ko, Google Cloud Armor applique l'analyse JSON aux 8 premiers Ko de contenu inspecté par les règles WAF préconfigurées.
  • 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.

Étapes suivantes