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 contenant un autre codage, comme 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 une autre analyse pour tout type de contenu compatible si vos charges de travail protégées effectuent les opérations suivantes:

  • Fournir des API REST
  • Utiliser GraphQL
  • Recevoir des requêtes avec du contenu 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 stratégie 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'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 section 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 du message POST est limitée aux huit premiers ko. Si le contenu JSON est supérieur à 8 Ko, Google Cloud Armor applique l'analyse JSON aux huit premiers ko de contenu utilisés qui sont inspectés par toutes 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.

Étape suivante