Journalisation détaillée

Cette page contient des informations sur la configuration de la journalisation détaillée, une fonctionnalité facultative que vous pouvez utiliser avec vos stratégies de sécurité Google Cloud Armor.

Vous pouvez ajuster le niveau de détail enregistré dans vos journaux. Nous vous recommandons d'activer la journalisation détaillée uniquement lorsque vous créez, modifiez ou dépannez une stratégie. Si vous activez la journalisation détaillée, elle s'applique aux règles en mode aperçu ainsi qu'aux règles actives (non prévisualisées) lors des opérations standards.

Prenons un exemple dans lequel vous ne pouvez pas expliquer pourquoi une règle WAF préconfigurée a été déclenchée par une requête particulière. Les journaux d'événements par défaut de Google Cloud Armor contiennent la règle déclenchée, ainsi que la sous-signature. Toutefois, vous devrez peut-être identifier les détails de la requête entrante ayant déclenché la règle à des fins de dépannage, de validation ou de réglage. Dans cet exemple, nous vous recommandons d'activer la journalisation détaillée.

Vous pouvez configurer le niveau de journalisation Google Cloud Armor pour permettre une journalisation plus détaillée de chaque stratégie de sécurité en utilisant l'option --log-level de gcloud CLI.

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

--log-level=[NORMAL | VERBOSE]

L'option n'est disponible qu'à l'aide de la commande gcloud compute security-policies update. Avec cette option, vous ne pouvez pas créer de stratégie de sécurité, sauf si vous créez une stratégie de sécurité dans un fichier, puis importez ce fichier. Pour en savoir plus, consultez Importer des règles de sécurité.

Exemple :

  gcloud compute security-policies update ca-policy-1 \
      --log-level=VERBOSE
  

Nous vous recommandons d'activer la journalisation détaillée dès lors que vous créez, modifiez ou dépannez une stratégie.

Valeurs consignées lorsque la journalisation détaillée est activée

Lorsque la journalisation détaillée est activée, des informations supplémentaires sont consignées dans le journal des requêtes d'équilibrage de charge envoyé à Cloud Logging. Les champs supplémentaires suivants apparaissent dans le journal de requêtes lorsque la journalisation détaillée est activée :

  • matchedFieldType (chaîne) : type de champ à l'origine de la correspondance.

    • ARG_NAMES
    • ARG_VALUES
    • BODY

      • Lorsque le champ BODY se trouve dans le journal, cela signifie que l'intégralité du corps du message POST correspond à une règle.
    • COOKIE_VALUES

    • COOKIE_NAMES

    • FILENAME

    • HEADER_VALUES

    • RAW_URI

    • REFERER

    • REQUEST_LINE

    • URI

    • USER_AGENT

    • HEADER_NAMES

    • ARGS_GET

    • X_FILENAME

    • ARG_NAME_COUNT

    • TRANSFER_ENCODING

    • REQUEST_METHOD

  • matchedFieldName (chaîne) : s'il correspond à la partie valeur d'une paire clé-valeur, la valeur de clé est stockée dans ce champ. Sinon, il est vide.

  • matchedFieldValue (chaîne) : préfixe de 16 octets maximum pour la partie du champ à l'origine de la correspondance.

  • matchedFieldLength (entier) : longueur totale du champ.

  • matchedOffset (entier) : décalage de début dans le champ à l'origine de la correspondance.

  • matchedLength (entier) : longueur de la correspondance.

Par exemple, vous pouvez envoyer cette requête à un projet dans lequel les règles WAF d'injection SQL sont activées :

curl http://IP_ADDR/?sql_table=abc%20pg_catalog%20xyz

L'entrée de l'explorateur de journaux ressemblerait à ceci :

enforcedSecurityPolicy: {
 name: "user-staging-sec-policy"
 priority: 100
 configuredAction: "DENY"
 outcome: "DENY
 preconfiguredExprIds: [
   0: "owasp-crs-v030001-id942140-sqli"
  ]
matchedFieldType: "ARG_VALUES"
matchedFieldName: "sql_table"
matchedFieldValue: "pg_catalog"
matchedFieldLength: 18
matchedOffset: 4
matchedLength: 10
}

Maintenir la confidentialité lorsque la journalisation détaillée est activée

Lorsque vous utilisez la journalisation détaillée, Google Cloud Armor consigne des extraits des éléments des requêtes entrantes qui ont déclenché une règle WAF préconfigurée spécifique. Ces extraits peuvent contenir des fragments d'en-têtes de requête, de paramètres de requête ou d'éléments du corps POST. Il est possible qu'un extrait contienne des données sensibles telles qu'une adresse IP ou d'autres données sensibles issues de la requête entrante, en fonction des éléments figurant dans le corps ou les en-têtes de la requête, et en fonction des éléments déclenchant la règle WAF.

En activant la journalisation détaillée, sachez qu'il existe un risque d'accumulation de données potentiellement sensibles dans vos journaux dans Logging. Nous vous recommandons de n'activer la journalisation détaillée que lors de la création et de la validation de la règle, ou pour le dépannage. En fonctionnement normal, nous vous recommandons de laisser la journalisation détaillée désactivée.

Étapes suivantes