Collecter les journaux Azure App Service

Compatible avec :

Ce document explique comment exporter les journaux Azure App Service vers Google Security Operations à l'aide d'un compte de stockage Azure. L'analyseur transforme les journaux bruts Azure App Service au format JSON en un modèle de données unifié (UDM) structuré. Il extrait les champs pertinents des journaux bruts, nettoie et normalise les données, puis mappe les informations extraites aux champs UDM correspondants. Il génère enfin un objet JSON conforme à l'UDM pour chaque entrée de journal.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google SecOps
  • Un locataire Azure actif
  • Accès privilégié à Azure

Configurer un compte de stockage Azure

  1. Dans la console Azure, recherchez Comptes de stockage.
  2. Cliquez sur + Créer.
  3. Spécifiez les valeurs des paramètres d'entrée suivants :
    • Abonnement : sélectionnez l'abonnement.
    • Groupe de ressources : sélectionnez le groupe de ressources.
    • Région : sélectionnez la région.
    • Performances : sélectionnez les performances (standard recommandé).
    • Redondance : sélectionnez la redondance (GRS ou LRS recommandé).
    • Nom du compte de stockage : saisissez un nom pour le nouveau compte de stockage.
  4. Cliquez sur Examiner et créer.
  5. Examinez l'aperçu du compte, puis cliquez sur Créer.
  6. Sur la page Présentation du compte de stockage, sélectionnez le sous-menu Clés d'accès dans Sécurité et mise en réseau.
  7. Cliquez sur Afficher à côté de key1 ou key2.
  8. Cliquez sur Copier dans le presse-papiers pour copier la clé.
  9. Enregistrez la clé dans un endroit sûr pour pouvoir l'utiliser ultérieurement.
  10. Sur la page Présentation du compte de stockage, sélectionnez le sous-menu Points de terminaison dans Paramètres.
  11. Cliquez sur Copier dans le presse-papiers pour copier l'URL du point de terminaison Blob service (Service Blob). Par exemple, https://<storageaccountname>.blob.core.windows.net.
  12. Enregistrez l'URL du point de terminaison dans un endroit sûr pour une utilisation ultérieure.

Configurer l'exportation des journaux de connexion Azure AD

  1. Connectez-vous au portail Azure à l'aide de votre compte privilégié.
  2. Accédez à Services d'application et sélectionnez le service d'application requis en cours d'utilisation.
  3. Sélectionnez Surveillance > Journaux App Service.
  4. Activez Journalisation des applications (blob).
  5. Sélectionnez Stockage sous Journalisation des services Web.
  6. Sélectionnez l'abonnement et le compte de stockage.
  7. Définissez la période de conservation et le quota selon vos besoins.
  8. Activez l'option Messages d'erreur détaillés.
  9. Activez l'option Traçage des requêtes ayant échoué.
  10. Cliquez sur Enregistrer.

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Pour configurer un seul flux :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Azure APP Service).
  5. Sélectionnez Microsoft Azure Blob Storage comme Type de source.
  6. Sélectionnez Azure APP Service comme Type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URI Azure : URL du point de terminaison du blob.
      • ENDPOINT_URL/BLOB_NAME
        • Remplacez l'élément suivant :
          • ENDPOINT_URL : URL du point de terminaison du blob (https://<storageaccountname>.blob.core.windows.net)
          • BLOB_NAME : nom du blob (par exemple, <logname>-logs)
    • L'URI est : sélectionnez le TYPE d'URI en fonction de la configuration du flux de journaux (Fichier unique | Répertoire | Répertoire incluant des sous-répertoires).
    • Options de suppression de la source : sélectionnez l'option de suppression en fonction de vos préférences d'ingestion.

    • Clé partagée : clé d'accès à Azure Blob Storage.

    • Espace de noms de l'élément : espace de noms de l'élément.

    • Libellés d'ingestion : libellé à appliquer aux événements de ce flux.

  9. Cliquez sur Suivant.

  10. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • URI Azure : URL du point de terminaison du blob.
    • ENDPOINT_URL/BLOB_NAME
      • Remplacez l'élément suivant :
        • ENDPOINT_URL : URL du point de terminaison du blob (https://<storageaccountname>.blob.core.windows.net)
        • BLOB_NAME : nom du blob (par exemple, insights-logs-<logname>)
  • L'URI est : sélectionnez le TYPE d'URI en fonction de la configuration du flux de journaux (Fichier unique | Répertoire | Répertoire incluant des sous-répertoires).
  • Options de suppression de la source : sélectionnez l'option de suppression en fonction de vos préférences d'ingestion.
  • Clé partagée : clé d'accès à Azure Blob Storage.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms associé au flux.
  • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.

Table de mappage UDM

Champ de journal Mappage UDM Logique
AppRoleInstance read_only_udm.principal.resource.product_object_id Mappage direct
AppRoleName read_only_udm.principal.resource.name Mappage direct
AppVersion read_only_udm.principal.resource.attribute.labels.value Mappage direct
Catégorie read_only_udm.metadata.product_event_type Mappage direct
CIp read_only_udm.target.asset.ip Mappage direct
CIp read_only_udm.target.ip Mappage direct
ClientCity read_only_udm.principal.location.city Mappage direct
ClientCountryOrRegion read_only_udm.principal.location.country_or_region Mappage direct
ClientIP read_only_udm.principal.asset.ip Mappage direct
ClientIP read_only_udm.principal.ip Mappage direct
ClientStateOrProvince read_only_udm.principal.location.state Mappage direct
ClientType read_only_udm.additional.fields.value.string_value Mappage direct
ComputerName read_only_udm.principal.asset.hostname Mappage direct
ComputerName read_only_udm.principal.hostname Mappage direct
Cookie read_only_udm.principal.resource.attribute.labels.value Mappage direct
CsBytes read_only_udm.network.sent_bytes Renommé à partir de CsBytes
CsHost read_only_udm.additional.fields.value.string_value Mappage direct
CsMethod read_only_udm.network.http.method Mappage direct
CsUriQuery read_only_udm.principal.resource.attribute.labels.value Mappage direct
CsUriStem read_only_udm.additional.fields.value.string_value Mappage direct
CsUriStem read_only_udm.target.url Mappage direct
CsUsername read_only_udm.principal.user.user_display_name Mappage direct
EventIpAddress read_only_udm.principal.asset.ip Mappage direct
EventIpAddress read_only_udm.principal.ip Mappage direct
EventPrimaryStampName read_only_udm.additional.fields.value.string_value Mappage direct
EventStampName read_only_udm.additional.fields.value.string_value Mappage direct
EventStampType read_only_udm.additional.fields.value.string_value Mappage direct
Hôte read_only_udm.principal.asset.hostname Mappage direct
Hôte read_only_udm.principal.hostname Mappage direct
IKey read_only_udm.target.resource.attribute.labels.value Mappage direct
Instance read_only_udm.additional.fields.value.string_value Mappage direct
Nom read_only_udm.additional.fields.value.string_value Mappage direct
Protocole read_only_udm.additional.fields.value.string_value Mappage direct
Protocole read_only_udm.network.application_protocol Mappé sur HTTP si le protocole est HTTP/1.1
Référent read_only_udm.network.http.referral_url Mappage direct
ResourceGUID read_only_udm.target.resource.product_object_id Nom modifié à partir de ResourceGUID
SDKVersion read_only_udm.additional.fields.value.string_value Mappage direct
SDKVersion read_only_udm.principal.resource.attribute.labels.value Mappage direct
SPort read_only_udm.principal.port Renommé depuis SPort
ScBytes read_only_udm.network.received_bytes Nom remplacé par ScBytes
ScStatus read_only_udm.network.http.response_code Renommé à partir de ScStatus
TimeTaken read_only_udm.additional.fields.value.string_value Mappage direct
Type read_only_udm.additional.fields.value.string_value Mappage direct
Utilisateur read_only_udm.principal.user.userid Mappage direct
UserAddress read_only_udm.principal.asset.ip Extrait de UserAddress s'il s'agit d'une adresse IP valide
UserAddress read_only_udm.principal.ip Extrait de UserAddress s'il s'agit d'une adresse IP valide
UserAgent read_only_udm.network.http.user_agent Mappage direct
UserDisplayName read_only_udm.principal.user.user_display_name Mappage direct
category read_only_udm.metadata.product_event_type Mappage direct
level read_only_udm.security_result.severity En majuscules et renommé à partir du niveau
emplacement read_only_udm.principal.location.name Mappage direct
operationName read_only_udm.additional.fields.value.string_value Mappage direct
record.properties.Protocol read_only_udm.additional.fields.value.string_value Mappage direct
record.properties.Result read_only_udm.security_result.summary Mappage direct
record.time read_only_udm.metadata.event_timestamp Analysé en tant que code temporel RFC 3339
resourceId read_only_udm.target.resource.attribute.labels.value Mappage direct
resourceId read_only_udm.target.resource.product_object_id Renommé à partir de resourceId
read_only_udm.metadata.event_type Déterminé en fonction de la présence du compte principal, de la cible et du protocole. Définie sur NETWORK_HTTP si le compte principal, la cible et le protocole=HTTP sont présents. Définie sur NETWORK_CONNECTION si le compte principal et la cible sont présents. Définissez sur STATUS_UPDATE si seul le principal est présent. Sinon, définissez-la sur GENERIC_EVENT.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.