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 Azure App Service bruts au format JSON en modèle de données unifié (UDM) structuré. Il extrait les champs pertinents des journaux bruts, effectue le nettoyage et la normalisation des données, et met en correspondance les informations extraites avec les champs UDM correspondants. Il génère finalement un objet JSON conforme à UDM pour chaque entrée de journal.

Avant de commencer

  • Assurez-vous de disposer d'une instance Google SecOps.
  • Assurez-vous de disposer d'un locataire Azure actif.
  • Assurez-vous de disposer d'un 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. Consultez la présentation du compte, puis cliquez sur Créer.
  6. Sur la page Vue d'ensemble 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 clé1 ou clé2.
  8. Cliquez sur Copy to clipboard (Copier dans le presse-papiers) pour copier la clé.
  9. Enregistrez la clé dans un emplacement sécurisé pour pouvoir l'utiliser ultérieurement.
  10. Sur la page Aperçu 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 du service Blob (par exemple, https://<storageaccountname>.blob.core.windows.net).
  12. Enregistrez l'URL du point de terminaison dans un endroit sécurisé 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, puis sélectionnez le service d'application utilisé.
  3. Sélectionnez Monitoring > App Service Logs (Surveillance > Journaux de l'App Service).
  4. Activez Application Logging (blob) (Journalisation des applications (blob)).
  5. Sous Journalisation du service Web, sélectionnez Stockage.
  6. Sélectionnez l'abonnement et le compte de stockage.
  7. Définissez le délai de conservation et le quota en fonction de vos besoins.
  8. Activez ON pour Detailed error messages (Messages d'erreur détaillés).
  9. Activez l'option Suivi des requêtes ayant échoué.
  10. Cliquez sur Enregistrer.

Configurer un flux dans Google SecOps pour ingérer les journaux Azure App Service

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

    • URI Azure: URL du point de terminaison de blob.
      • ENDPOINT_URL/BLOB_NAME
        • Remplacez les éléments suivants :
        • ENDPOINT_URL: URL du point de terminaison de 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.

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

    • Espace de noms des éléments: espace de noms des éléments.

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

  8. Cliquez sur Suivant.

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

Tableau 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 Ancien nom : 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 Modification du nom 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 Ancien nom : SPort
ScBytes read_only_udm.network.received_bytes Ancien nom : ScBytes
ScStatus read_only_udm.network.http.response_code Ancien nom : 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 Mise en majuscule 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 Analyse 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 de l'identifiant principal, de la cible et du protocole. Définissez ce paramètre sur NETWORK_HTTP si les valeurs "principal", "target" et "Protocol=HTTP" sont présentes. Définissez cette valeur sur NETWORK_CONNECTION si le principal et la cible sont présents. Défini sur STATUS_UPDATE si seul le principal est présent. Sinon, définissez-le sur GENERIC_EVENT.

Modifications

2024-10-18

Amélioration :

  • Mappage de properties.XForwardedHost sur principal.hostname et principal.asset.hostname.
  • Mappage de properties_category sur additional.fields.
  • Mappage de properties.roleInstance sur principal.resource.product_object_id.
  • Mappage de properties.message sur security_result.summary.

2024-09-30

Amélioration :

  • Prise en charge de l'analyse du nouveau format des journaux JSON non analysés.

2024-06-24

Amélioration :

  • Mappage de metadata.product_name et metadata.vendor_name sur AZURE_APP_SERVICE.

2024-06-07

Amélioration :

  • Prise en charge des journaux JSON, lorsqu'ils ne sont pas au format tableau.
  • Mappage de properties.ScSubStatus sur additional.fields.
  • Mappage de properties.ScWin32Status sur additional.fields.

2024-04-25

Amélioration :

  • Mappage de properties.User sur principal.user.userid.
  • Mappage de properties.UserDisplayName sur principal.user.user_display_name.
  • Mappage de properties.UserAddress sur principal.ip.
  • properties.Protocol, ClientBrowser, ClientModel, ClientOS, OperationId, ParentId et ItemCount ont été mappés sur additional.fields.
  • CsUriQuery, SDKVersion et Cookie ont été mappés sur principal.resource.attribute.labels.
  • Mappage de SessionId sur network.session_id.
  • Mappage de Message sur security_result.summary.
  • Mappage de SeverityLevel sur security_result.severity_details.

2024-02-20

Amélioration :

  • Mappage de record.AppRoleInstance sur principal.resource.product_object_id.
  • Mappage de record.AppRoleName sur principal.resource.name.
  • Mappage de record.ClientCity sur principal.location.city.
  • Mappage de record.ClientCountryOrRegion sur principal.location.country_or_region.
  • Mappage de record.ClientStateOrProvince sur principal.location.state.
  • Mappage de record.ClientIP sur principal.ip.
  • Mappage de Result sur security_result.summary.
  • Mappage de UserAgent sur network.http.user_agent.
  • Mappage de Referer sur network.http.referral_url.
  • Mappage de record.ResourceGUID sur target.resource.product_object_id.
  • Si record.ResourceGUID n'est pas présent, record.resourceId est mappé sur target.resource.product_object_id.
  • Si record.ResourceGUID est présent, mappez record.resourceId sur additional.fields.
  • Mappage de record.Type sur additional.fields.
  • Mappage de record.ClientType sur additional.fields.
  • Mappage de record.SDKVersion sur additional.fields.
  • Mappage de record.Name sur additional.fields.
  • Mappage de record.Instance sur additional.fields.
  • Mappage de record.TimeTaken sur additional.fields.
  • Mappage de record.Cookie sur additional.fields.
  • Mappage de record.AppVersion sur principal.resource.attribute.labels.
  • Mappage de record.IKey sur target.resource.attribute.labels.
  • Mappage de record.Category sur metadata.product_event_type.
  • Mappage de CsUriStem sur target.url.
  • Modification de la mise en correspondance de CsBytes de network.received_bytes à network.sent_bytes.
  • Modification de la mise en correspondance de ScBytes de network.sent_bytes à network.received_bytes.

2023-12-07

  • Analyseur nouvellement créé.

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