Collecter les journaux Azure Firewall
Ce document explique comment exporter les journaux Azure Firewall vers Google Security Operations à l'aide d'un compte de stockage Azure. L'analyseur tente d'abord de traiter l'entrée au format JSON, en extrayant les données du champ Records (Enregistrements). Si le champ Enregistrement est vide, l'analyseur utilise ensuite une série de modèles Grok et d'instructions conditionnelles pour extraire les champs pertinents du message, en gérant les différents formats et variations dans les journaux Azure Firewall.
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
- Dans la console Azure, recherchez Comptes de stockage.
- Cliquez sur + Créer.
- 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.
- Cliquez sur Examiner et créer.
- Consultez la présentation du compte, puis cliquez sur Créer.
- 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.
- Cliquez sur Afficher à côté de clé1 ou clé2.
- Cliquez sur Copy to clipboard (Copier dans le presse-papiers) pour copier la clé.
- Enregistrez la clé dans un emplacement sécurisé pour pouvoir l'utiliser ultérieurement.
- Sur la page Aperçu du compte de stockage, sélectionnez le sous-menu Points de terminaison dans Paramètres.
- 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
). - Enregistrez l'URL du point de terminaison dans un endroit sécurisé pour une utilisation ultérieure.
Configurer l'exportation des journaux pour les journaux des pare-feu Azure
- Connectez-vous au portail Azure à l'aide de votre compte privilégié.
- Accédez à Pare-feu, puis sélectionnez le pare-feu requis.
- Sélectionnez Surveillance > Services de diagnostic.
- Cliquez sur + Ajouter un paramètre de diagnostic.
- Attribuez un nom descriptif au paramètre de diagnostic.
- Sélectionnez allLogs.
- Cochez la case Archiver dans un compte de stockage comme destination.
- Spécifiez l'abonnement et le compte de stockage.
- Cliquez sur Enregistrer.
Configurer un flux dans Google SecOps pour ingérer les journaux Azure Firewall
- Accédez à SIEM Settings > Feeds (Paramètres du SIEM > Flux).
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Azure Firewall).
- Sélectionnez Microsoft Azure Blob Storage comme Type de source.
- Sélectionnez Azure Firewall comme Type de journal.
- Cliquez sur Suivant.
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.
- URI Azure: URL du point de terminaison de blob.
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
@timestamp | metadata.event_timestamp | Convertit le champ de journal brut @timestamp au format UDM. |
category | security_result.rule_type | Mappe le champ de journal brut category sur l'UDM. |
operationName | metadata.product_event_type | Mappe le champ de journal brut operationName sur l'UDM. |
properties.Action | security_result.action | Mappe le champ de journal brut properties.Action à UDM, en convertissant ALLOW en ALLOW , DENY en BLOCK et toute autre valeur en UNKNOWN_ACTION . |
properties.DestinationIp | target.ip | Mappe le champ de journal brut properties.DestinationIp sur l'UDM. |
properties.DestinationPort | target.port | Mappe le champ de journal brut properties.DestinationPort sur l'UDM. |
properties.DnssecOkBit | additional.fields.value.bool_value | Mappe le champ de journal brut properties.DnssecOkBit sur l'UDM. |
properties.EDNS0BufferSize | additional.fields.value.number_value | Mappe le champ de journal brut properties.EDNS0BufferSize sur l'UDM. |
properties.ErrorMessage | additional.fields.value.string_value | Mappe le champ de journal brut properties.ErrorMessage sur l'UDM. |
properties.ErrorNumber | additional.fields.value.number_value | Mappe le champ de journal brut properties.ErrorNumber sur l'UDM. |
properties.Policy | security_result.detection_fields.value | Mappe le champ de journal brut properties.Policy sur l'UDM. |
properties.Protocol | network.ip_protocol | Mappe le champ de journal brut properties.Protocol sur UDM s'il ne correspond pas à HTTPS ou HTTP . |
properties.Protocol | network.application_protocol | Mappe le champ de journal brut properties.Protocol sur UDM s'il s'agit de HTTPS ou HTTP . |
properties.QueryClass | network.dns.questions.class | Mappe le champ de journal brut properties.QueryClass sur UDM à l'aide d'une table de recherche pour mapper les classes de requêtes DNS. |
properties.QueryId | network.dns.id | Mappe le champ de journal brut properties.QueryId sur l'UDM. |
properties.QueryName | network.dns.questions.name | Mappe le champ de journal brut properties.QueryName sur l'UDM. |
properties.QueryType | network.dns.questions.type | Mappe le champ de journal brut properties.QueryType à UDM à l'aide d'une table de recherche pour mapper les types d'enregistrements DNS. |
properties.RequestSize | network.sent_bytes | Mappe le champ de journal brut properties.RequestSize sur l'UDM. |
properties.ResponseCode | network.dns.response_code | Mappe le champ de journal brut properties.ResponseCode à UDM à l'aide d'une table de correspondance pour mapper les codes de réponse DNS. |
properties.ResponseFlags | additional.fields.value.string_value | Mappe le champ de journal brut properties.ResponseFlags sur l'UDM. |
properties.ResponseSize | network.received_bytes | Mappe le champ de journal brut properties.ResponseSize sur l'UDM. |
properties.Rule | security_result.rule_name | Mappe le champ de journal brut properties.Rule sur l'UDM. |
properties.RuleCollection | security_result.detection_fields.value | Mappe le champ de journal brut properties.RuleCollection sur l'UDM. |
properties.RuleCollectionGroup | security_result.detection_fields.value | Mappe le champ de journal brut properties.RuleCollectionGroup sur l'UDM. |
properties.SourceIp | principal.ip | Mappe le champ de journal brut properties.SourceIp sur l'UDM. |
properties.SourcePort | principal.port | Mappe le champ de journal brut properties.SourcePort sur l'UDM. |
properties.msg | security_result.description | Mappe le champ de journal brut properties.msg sur UDM après en avoir extrait d'autres champs. |
records.category | security_result.rule_type | Mappe le champ de journal brut records.category sur l'UDM. |
records.operationName | metadata.product_event_type | Mappe le champ de journal brut records.operationName sur l'UDM. |
records.properties.msg | Ce champ permet d'extraire plusieurs champs à l'aide de modèles Grok et n'a pas de mappage direct vers UDM. | |
records.resourceId | metadata.product_log_id | Mappe le champ de journal brut records.resourceId sur l'UDM. |
resourceId | metadata.product_log_id | Mappe le champ de journal brut resourceId sur l'UDM. |
temps | metadata.event_timestamp | Convertit le champ de journal brut time au format UDM. |
metadata.vendor_name | Ce champ est renseigné par l'analyseur avec la valeur Microsoft Inc. . |
|
metadata.product_name | Ce champ est renseigné par l'analyseur avec la valeur Azure Firewall Application Rule . |
|
metadata.log_type | Ce champ est renseigné par l'analyseur avec la valeur AZURE_FIREWALL . |
|
additional.fields.key | Ce champ est renseigné par l'analyseur avec la clé du champ supplémentaire. | |
security_result.detection_fields.key | Ce champ est renseigné par l'analyseur avec la clé du champ de détection. | |
network.application_protocol | Ce champ est renseigné par l'analyseur avec la valeur DNS pour les journaux DNS. |
|
metadata.event_type | Ce champ est renseigné par l'analyseur en fonction du message de journal. Il peut s'agir de NETWORK_CONNECTION , GENERIC_EVENT , STATUS_UPDATE ou NETWORK_DNS . |
Modifications
2024-12-26
Correction de bug:
- Lorsque les journaux contiennent le mot clé
Alert
,security_result.action
est mappé surALLOW
.
2024-11-13
Amélioration :
- Mappage de
Action
sursecurity_result.detection_fields
. - Mappage de
Signature
sursecurity_result.detection_fields
. - Mappage de
IDS
sursecurity_result.detection_fields
. - Mappage de
Priority
sursecurity_result.priority_details
. - Mappage de
Classification
sursecurity_result.detection_fields
.
2024-09-04
Amélioration :
- Mappage de
from_ip
surdns.questions.name
pour les événements DNS.
2024-07-02
Amélioration :
- Prise en charge d'un nouveau format de code temporel.
2024-04-29
Amélioration :
- Prise en charge d'un nouveau format de journaux ingérés.
2024-02-07
Amélioration :
- Mappage de
ICMP type
suradditional.fields
. - Mappage de
Action
etproperties.Action
sursecurity_result.action_details
.
2023-06-01
Amélioration :
- Les journaux JSON nouvellement ingérés de la catégorie
AZFWDnsQuery
sont analysés. properties.msg
mappé dans les nouveaux journaux JSON de la catégorieAzureFirewallNetworkRule
ingérés.
2022-04-29
Correction de bug:
- Les journaux JSON nouvellement ingérés sont analysés pour augmenter le pourcentage d'analyse global.
- operationName mappé sur metadata.product_event_type.
- resourceId mappé sur metadata.product_log_id.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.