Journaux de filtrage des URL

Les journaux du service de filtrage d'URL vous permettent d'auditer, de vérifier et d'analyser le filtrage du trafic basé sur les URL dans votre réseau.

Lorsque le pare-feu Cloud nouvelle génération effectue un filtrage basé sur les URL sur le trafic pour lequel l'inspection de couche 7 est activée, il génère une entrée de journal pour chaque connexion, avec des informations détaillées sur la connexion. Cloud NGFW génère une entrée de journal lorsque la règle de pare-feu avec inspection de couche 7 est activée, que Cloud Logging soit activé ou non.

Pour afficher et examiner les journaux de filtrage d'URL, recherchez le journal networksecurity.googleapis.com/firewall_url_filter dans l'explorateur de journaux.

Cette page décrit le format et la structure des journaux de filtrage d'URL que Cloud NGFW génère pour chaque connexion lorsqu'il autorise ou refuse le trafic.

Format du journal de filtrage des URL

Cloud NGFW crée une entrée d'enregistrement de journal dans Cloud Logging pour chaque connexion soumise au filtrage d'URL afin de surveiller le trafic vers ou depuis une instance de machine virtuelle (VM) dans une zone spécifique. Les enregistrements de journal sont inclus dans le champ de charge utile JSON d'un objet LogEntry.

Le format "multi-champs" de certains champs affiche plusieurs données dans un même champ. Par exemple, le champ connection est au format Connection, qui contient l'adresse IP et le port du serveur, l'adresse IP et le port du client, ainsi que le numéro de protocole, dans un seul champ.

Le tableau suivant décrit le format des champs du journal de filtrage d'URL.

Champ Type Description
connection Connection Quintuple décrivant les paramètres de connexion associés au trafic autorisé ou refusé en fonction des informations d'indication de nom de serveur (SNI) et de domaine.
interceptInstance InterceptInstance Détails de l'instance de VM où le trafic est autorisé ou refusé en fonction des informations sur le domaine et le SNI.
detectionTime string Heure (UTC) à laquelle le point de terminaison de pare-feu détecte une correspondance pour les informations de domaine et de SNI.
uriMatched string Domaine pour lequel le point de terminaison de pare-feu a détecté une correspondance.
interceptVpc VpcDetails Informations sur le réseau de cloud privé virtuel (VPC) associé à l'instance de VM dans laquelle le trafic est autorisé ou refusé en fonction des informations sur le domaine et le SNI.
ruleIndex integer Index ou numéro de commande du filtre d'URL pour lequel le point de terminaison du pare-feu a détecté une correspondance.
direction string Sens du trafic (CLIENT_TO_SERVER ou SERVER_TO_CLIENT) pour lequel le point de terminaison de pare-feu a détecté une correspondance.
securityProfileGroupDetails SecurityProfileGroupDetails Détails du groupe de profils de sécurité appliqué au trafic intercepté.
denyType string Type d'informations utilisé par le point de terminaison de pare-feu pour refuser un trafic.
  • SNI : le point de terminaison de pare-feu a refusé le trafic en raison d'une correspondance détectée avec un SNI.
  • HOST : le point de terminaison de pare-feu a refusé le trafic en raison d'une correspondance détectée avec les informations de domaine présentes dans le champ d'en-tête de l'hôte.
  • URI : le point de terminaison du pare-feu a refusé le trafic en raison d'une correspondance détectée avec un URI.
action string Action (allow ou deny) effectuée sur le trafic filtré en fonction des informations sur le domaine et le SNI. Le profil de sécurité définit cette action. Pour en savoir plus sur l'action configurée, consultez Profil de sécurité de filtrage des URL.
applicationLayerDetails ApplicationLayerDetails Informations détaillées sur le traitement de la couche Application.
sessionLayerDetails SessionLayerDetails Détails liés au traitement de la couche session.

Format du champ Connection

Le tableau suivant décrit le format du champ Connection.

Champ Type Description
clientIp string Adresse IP du client. Si le client est une VM Compute Engine, clientIp est l'adresse IP interne principale ou une adresse dans une plage d'adresses IP d'alias de l'interface réseau de la VM. L'adresse IP externe n'est pas affichée. Les journaux affichent l'adresse IP de l'instance de VM telle qu'observée dans l'en-tête IP, de la même manière que le vidage TCP sur l'instance de VM.
clientPort integer Numéro de port client.
serverIp string Adresse IP du serveur. Si le serveur est une VM Compute Engine, serverIp est l'adresse IP interne principale ou une adresse comprise dans une plage d'adresses IP d'alias de l'interface réseau de la VM. L'adresse IP externe ne s'affiche pas, même si elle a été utilisée pour établir la connexion.
serverPort integer Numéro de port du serveur.
protocol string Protocole IP de la connexion.

Format du champ InterceptInstance

Le tableau suivant décrit le format du champ InterceptInstance.

Champ Type Description
zone string Nom de la zone où se trouve l'instance de VM associée au trafic intercepté.
vm string Nom de l'instance de VM associée au trafic intercepté.
projectId string Nom du projet Google Cloud associé au trafic intercepté.

Format du champ VpcDetails

Le tableau suivant décrit le format du champ VpcDetails.

Champ Type Description
vpc string Nom du réseau VPC associé au trafic intercepté.
projectId string Nom du projet Google Cloud associé au réseau VPC.

Format du champ SecurityProfileGroupDetails

Le tableau suivant décrit le format du champ SecurityProfileGroupDetails.

Champ Type Description
securityProfileGroupId string Nom du groupe de profils de sécurité appliqué au trafic.
organizationId string ID de l'organisation à laquelle appartient l'instance de VM.

Format du champ ApplicationLayerDetails

Le tableau suivant décrit le format du champ ApplicationLayerDetails.

Champ Type Description
protocol string Version du protocole utilisé par le point de terminaison du pare-feu au niveau de la couche application.
  • HTTP0 : indique une version HTTP inférieure à 1. Le point de terminaison du pare-feu lit les informations de domaine à partir du premier champ d'en-tête d'hôte.
  • HTTP1 : indique la version 1.x de HTTP. Le point de terminaison du pare-feu lit les informations de domaine à partir du premier champ d'en-tête d'hôte.
  • HTTP2 : indique la version 2.x de HTTP. Étant donné que le champ d'en-tête de l'hôte est facultatif pour cette version du protocole, le point de terminaison du pare-feu lit les informations de domaine à partir du pseudo-en-tête d'autorité ou des blocs d'en-tête des types de trames d'en-tête, de continuation ou push_promise.
uri string Informations sur le domaine et le sous-domaine que le point de terminaison de pare-feu lit à partir du trafic.

Format du champ SessionLayerDetails

Le tableau suivant décrit le format du champ SessionLayerDetails.

Champ Type Description
sni string Indication du nom du serveur (SNI) que le point de terminaison de pare-feu lit à partir du trafic.
protocolVersion string Version du protocole utilisée par le point de terminaison de pare-feu au niveau de la session.
  • TLS1_0 : indique la version 1.0 de TLS.
  • TLS1_1 : indique la version 1.1 de TLS.
  • TLS1_2 : indique la version 1.2 de TLS.
  • TLS1_3 : indique la version 1.3 de TLS.

Corrélation du journal de filtrage des URL avec un journal de pare-feu

Lorsqu'une règle de pare-feu évalue le trafic, Cloud NGFW enregistre une entrée de journalisation des règles de pare-feu. Cette entrée inclut des champs tels que l'adresse IP source, l'adresse IP de destination et l'heure d'inspection du trafic. Pour afficher ces journaux de règles de pare-feu, consultez Afficher les journaux.

Si la journalisation est activée pour une règle de stratégie de pare-feu avec inspection de couche 7, Cloud NGFW enregistre d'abord l'entrée de journalisation des règles de pare-feu pour le trafic évalué. Il envoie ensuite le trafic au point de terminaison de pare-feu pour l'inspection de couche 7.

Le point de terminaison du pare-feu analyse le trafic à l'aide de son domaine et de son SNI, et crée un journal de filtrage d'URL distinct pour la connexion. Ce journal de filtrage d'URL inclut des champs tels que le nom de domaine, la source du trafic et la destination du trafic.

Pour afficher les journaux de filtrage d'URL, recherchez le journal networksecurity.googleapis.com/firewall_url_filter dans l'explorateur de journaux.

Vous pouvez comparer les champs du journal des règles de pare-feu et du journal du filtrage d'URL pour identifier la connexion qui a déclenché le filtrage d'URL et prendre les mesures appropriées pour résoudre le problème.

Par exemple, vous avez configuré une règle de stratégie de pare-feu avec les paramètres suivants :

  • Adresse IP source : 192.0.2.0
  • Port source : 47644
  • Adresse IP de destination : 192.0.2.1
  • Port de destination : 80
  • Journalisation : Enabled

Pour afficher les journaux de filtrage d'URL associés à cette règle, accédez à la page Explorateur de journaux. Dans le volet Requête, collez la requête suivante dans le champ de l'éditeur de requête.

  resource.type="networksecurity.googleapis.com/FirewallEndpoint"
  jsonPayload.source_ip_address="192.0.2.0"
  jsonPayload.source_port="47644"
  jsonPayload.destination_ip_address="192.0.2.1"
  jsonPayload.destination_port="80"
  

La section Résultats de la requête affiche le journal de filtrage des URL suivant :

    {
      "insertId": "akxp8uf5f0fuv",
      "jsonPayload": {
      "connection": {
      "serverPort": 80,
      "clientPort": 47644,
      "protocol": "TCP",
      "clientIp": "192.0.2.0",
      "serverIp": "192.0.2.1"
    },
      "interceptInstance": {
      "zone": "us-central1-c",
      "vm": "aied-test-dont-delete",
      "projectId": "project_001"
    },
      "detectionTime": "2025-06-02T19:09:27.802711668Z",
      "uriMatched": "",
      "interceptVpc": {
      "projectId": "project_001",
      "vpc": "default"
    },
      "ruleIndex": 0,
      "direction": "CLIENT_TO_SERVER",
      "@type": "type.googleapis.com/google.cloud.networksecurity.logging.v1.URLFilterLog",
      "securityProfileGroupDetails": {
      "securityProfileGroupId": "project_001/spg/my-spg-id",
      "organizationId": "organization_001"
    },
      "denyType": "HOST",
      "action": "DENY",
      "applicationLayerDetails": {
      "protocol": "HTTP1",
      "uri": "server.fwp.com"
    },
      "sessionLayerDetails": {
      "sni": "",
      "protocolVersion": "PROTOCOL_VERSION_UNSPECIFIED"
    }
  },
    "resource": {
    "type": "networksecurity.googleapis.com/FirewallEndpoint",
    "labels": {
      "location": "us-central1-c",
      "resource_container": "organizations/organization_001",
      "id": "pg-ni-latencyayzl8peq"
    }
  },
  "timestamp": "2025-06-02T19:09:35.452299517Z",
  "logName": "projects/project_001/logs/networksecurity.googleapis.com%2Ffirewall_url_filter",
  "receiveTimestamp": "2025-06-02T19:09:35.452299517Z"
}
   

De même, pour afficher les journaux de pare-feu associés à cette règle, accédez à la page Explorateur de journaux. Dans le volet Requête, collez la requête suivante dans le champ de l'éditeur de requête.

    jsonPayload.rule_details.action="APPLY_SECURITY_PROFILE_GROUP"
    jsonPayload.connection.src_ip="192.0.2.0"
    jsonPayload.connection.src_port="47644"
    jsonPayload.connection.dest_ip="192.0.2.1"
    jsonPayload.connection.dest_port="80"
   

La section Résultats de la requête affiche le journal de pare-feu suivant :

    {
      insertId: "qn82vdg109q3r9"
      jsonPayload: {
      connection: {
      }
      dest_ip: "192.0.2.1"
      dest_port: 80
      protocol: 6
      src_ip: "192.0.2.0"
      src_port: 47644
      disposition: "INTERCEPTED"
      ►instance: {4}
      ▸ remote_instance: {4}
      ▸ remote_vpc: {3}
      rule_details: {
      action: "APPLY_SECURITY_PROFILE_GROUP"
      apply_security_profile_fallback_action: "UNSPECIFIED"
      direction: "INGRESS"
      ▸ ip_port_info: [1]
      ▼
      priority: 6000
      reference: "network: fwplus-vpc/firewallPolicy: fwplus-fwpolicy"
      source_range: [
      1
      0: "192.0.2.0/24"
      target_secure_tag: [
      0: "tagValues/281479199099651"
      ]
      }
      vpc: {
      project_id: "project_001"
      subnetwork_name: "fwplus-us-central1-subnet"
      vpc_name: "fwplus-vpc"
      }
      }
      logName: "projects/project_001/logs/compute.googleapis.com%2Ffirewall",
      receiveTimestamp: "2023-11-28T19:08:46.749244092Z"
      resource: {2}
      timestamp: "2023-11-28T19:08:40.207465099Z"
    }
   

Les requêtes de journaux de filtrage d'URL et de journaux de pare-feu vous permettent de visualiser la corrélation entre eux. Le tableau suivant mappe les champs du journal du pare-feu avec les champs correspondants du journal du filtrage d'URL.

Champ du journal de pare-feu Champ de journal de filtrage des URL Description
src_ip clientIp L'adresse IP source du journal du pare-feu est mise en corrélation avec l'adresse IP du client dans le journal de filtrage des URL pour identifier l'origine du trafic filtré.
src_port clientPort Le port source du journal du pare-feu est mis en corrélation avec le port client du journal de filtrage d'URL pour identifier le port source utilisé par le trafic filtré.
dest_ip serverIp L'adresse IP de destination dans le journal du pare-feu est corrélée à l'adresse IP du serveur dans le journal de filtrage des URL pour identifier la cible du trafic filtré.
dest_port serverPort Le port de destination du journal du pare-feu est corrélé au port du serveur dans le journal de filtrage des URL pour identifier le port de destination utilisé par le trafic filtré.

Étapes suivantes