Collecter les journaux AWS Route 53
Ce document explique comment configurer AWS CloudTrail pour stocker les journaux DNS AWS Route 53 dans un bucket S3 et ingérer les journaux de S3 dans Google Security Operations. Amazon Route 53 fournit la journalisation des requêtes DNS et la possibilité de surveiller vos ressources à l'aide de vérifications de l'état. Route 53 est intégré à AWS CloudTrail, un service qui fournit un enregistrement des actions effectuées par un utilisateur, un rôle ou un service AWS dans Route 53.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous de disposer d'un accès privilégié à AWS.
Configurer AWS CloudTrail et Route 53
- Connectez-vous à la console AWS.
- Recherchez Cloudtrail.
- Si vous n'avez pas encore de parcours, cliquez sur Créer un parcours.
- Indiquez un nom de sentier .
- Sélectionnez Créer un bucket S3 (vous pouvez également choisir d'utiliser un bucket S3 existant).
- Attribuez un nom à l'alias AWS KMS ou choisissez une clé AWS KMS existante.
- Laissez les autres paramètres par défaut, puis cliquez sur Next (Suivant).
- Sélectionnez Type d'événement, puis assurez-vous que Événements de gestion est sélectionné (ce sont les événements qui incluent les appels d'API Route 53).
- Cliquez sur Suivant.
- Vérifiez les paramètres dans Vérifier et créer.
- Cliquez sur Créer un parcours.
- Dans la console AWS, recherchez S3.
- Cliquez sur le bucket de journaux nouvellement créé, puis sélectionnez le dossier AWSLogs .
- Cliquez sur Copier l'URI S3, puis enregistrez-le.
Configurer un utilisateur IAM AWS
- Dans la console AWS, recherchez IAM.
- Cliquez sur Utilisateurs.
- Cliquez sur Ajouter des utilisateurs.
- Attribuez un nom à l'utilisateur (par exemple, "chronicle-feed-user").
- Sélectionnez Clé d'accès - Accès programmatique comme type d'identifiants AWS.
- Cliquez sur Next: Permissions (Suivant : Autorisations).
- Sélectionnez Joindre directement des règles existantes.
- Sélectionnez AmazonS3ReadOnlyAccess ou AmazonS3FullAccess.
- Cliquez sur Next: Tags (Suivant : Tags).
- (Facultatif) Ajoutez des tags si nécessaire.
- Cliquez sur Suivant : Relire.
- Vérifiez la configuration, puis cliquez sur Créer un utilisateur.
- Copiez l'ID de clé d'accès et la clé d'accès secrète de l'utilisateur créé.
Configurer un flux dans Google SecOps pour ingérer les journaux AWS Route 53
- 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 AWS Route 53).
- Sélectionnez Amazon S3 comme Type de source.
- Sélectionnez AWS Route 53 comme Type de journal.
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants:
- Region (Région) : région dans laquelle se trouve le bucket Amazon S3.
- URI S3: URI du bucket.
s3:/BUCKET_NAME
- Remplacez
BUCKET_NAME
par le nom réel du bucket.
- Remplacez
- Un URI est: sélectionnez Un répertoire qui inclut des sous-répertoires.
- Options de suppression de la source: sélectionnez l'option de suppression en fonction de vos préférences.
- ID de clé d'accès: clé d'accès utilisateur ayant accès au bucket S3.
- Clé d'accès secrète: clé secrète de l'utilisateur ayant accès au bucket S3.
- Espace de noms des éléments: espace de noms des éléments.
- Libellés d'ingestion: libellé à appliquer aux événements de ce flux.
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Tableau de mappage UDM
Champ du journal | Mappage UDM | Logique |
---|---|---|
Identifiant du compte | read_only_udm.principal.resource.product_object_id | ID du compte AWS associé à la requête. |
firewall_domain_list_id | read_only_udm.security_result.rule_labels.value | ID de la liste de domaines à laquelle appartient le domaine interrogé. |
firewall_rule_action | read_only_udm.security_result.action | Action effectuée par la règle de pare-feu correspondant à la requête. Les valeurs possibles sont "ALLOW", "BLOCK" ou "UNKNOWN_ACTION" si l'action n'est pas reconnue. |
firewall_rule_group_id | read_only_udm.security_result.rule_id | ID du groupe de règles de pare-feu correspondant à la requête. |
logEvents{}.id | read_only_udm.principal.resource.product_object_id | ID unique de l'événement de journal. Utilisé en remplacement si "account_id" n'est pas présent. |
logEvents{}.message | Ce champ est analysé dans d'autres champs UDM en fonction de son format. | |
logEvents{}.timestamp | read_only_udm.metadata.event_timestamp.seconds | Heure à laquelle la requête DNS a été enregistrée. |
messageType | Ce champ permet de déterminer la structure du message de journal. | |
owner | read_only_udm.principal.user.userid | ID de compte AWS du propriétaire du journal. |
query_class | read_only_udm.network.dns.questions.class | Classe de la requête DNS. |
query_name | read_only_udm.network.dns.questions.name | Nom de domaine interrogé. |
query_timestamp | read_only_udm.metadata.event_timestamp.seconds | Heure à laquelle la requête DNS a été effectuée. |
query_type | read_only_udm.metadata.product_event_type | Type de requête DNS. |
rcode | read_only_udm.metadata.description | Code de réponse de la requête DNS. |
région | read_only_udm.principal.location.name | Région AWS d'où provient la requête. |
srcaddr | read_only_udm.principal.ip | Adresse IP du client qui a effectué la requête DNS. |
srcids.instance | read_only_udm.principal.hostname | ID d'instance du client ayant effectué la requête DNS. |
srcids.resolver_endpoint | read_only_udm.security_result.rule_labels.value | ID du point de terminaison du résolveur qui a traité la requête. |
srcids.resolver_network_interface | read_only_udm.security_result.rule_labels.value | ID de l'interface réseau du résolveur qui a traité la requête. |
srcport | read_only_udm.principal.port | Numéro de port du client qui a effectué la requête DNS. |
transport | read_only_udm.network.ip_protocol | Protocole de transport utilisé pour la requête DNS. |
version | read_only_udm.metadata.product_version | Version du format des journaux de requêtes du résolveur Route 53. |
N/A | read_only_udm.metadata.event_type | Code dur "NETWORK_DNS". |
N/A | read_only_udm.metadata.product_name | Code dur "AWS Route 53". |
N/A | read_only_udm.metadata.vendor_name | Code dur "AMAZON". |
N/A | read_only_udm.principal.cloud.environment | Coded en dur sur "AMAZON_WEB_SERVICES". |
N/A | read_only_udm.network.application_protocol | Code dur "DNS". |
N/A | read_only_udm.network.dns.response_code | Mappé à partir du champ "rcode" à l'aide d'une table de correspondance. |
N/A | read_only_udm.network.dns.questions.type | Mappé à partir du champ "query_type" à l'aide d'une table de correspondance. |
N/A | read_only_udm.metadata.product_deployment_id | Extrait du champ "logevent.message_data" à l'aide du format grok. |
N/A | read_only_udm.network.dns.authority.name | Extrait du champ "logevent.message_data" à l'aide du format grok. |
N/A | read_only_udm.security_result.rule_labels.key | Définissez la valeur sur "firewall_domain_list_id", "resolver_endpoint" ou "resolver_network_interface", en fonction des champs disponibles. |
N/A | read_only_udm.security_result.action_details | Définissez cette valeur sur celle de "firewall_rule_action" si elle n'est pas "ALLOW" ou "BLOCK". |
Modifications
2024-10-22
- Amélioration: mappage du champ "answers" sur "network.dns.answers".
2024-10-17
- Amélioration: ajout de on_error à tous les champs avant la mise en correspondance avec UDM.
2023-12-20
- Correction de bug:
- Ajout de gsub pour remplacer "\" par "#" afin de convertir le SYSLOG en JSON.
- Ajout de gsub pour remplacer à nouveau "#" par "\".
2023-05-08
- Amélioration:
- Modèle Grok modifié pour les journaux DNS de requête afin de prendre en charge un nouveau format de journal.
- Gérer les journaux JSON contenant plusieurs événements
2022-08-10
- Blocs de modification en majuscules supplémentaires supprimés.
2022-07-22
- Analyseur nouvellement créé.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.