Collecter les journaux AWS Elastic Load Balancing
Ce document explique comment collecter les journaux d'équilibrage de charge AWS Elastic en configurant un flux Google Security Operations. L'analyseur convertit les journaux au format UDM. Il utilise des modèles grok pour extraire des champs à partir de messages au format CEF et non CEF, les mapper sur des champs UDM et gérer diverses transformations de données, y compris une logique spécifique pour les champs HTTP, TLS et liés à la sécurité. Il effectue également un traitement conditionnel en fonction de la présence ou du format de certains champs pour garantir une représentation précise de l'UDM.
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 Elastic Load Balancing
- Activez la journalisation des accès pour envoyer des journaux d'accès à un bucket de stockage S3.
- Créez un service Amazon Simple Queue Service (SQS) et associez-le à un bucket de stockage S3.
Configurer le bucket Amazon S3
- Connectez-vous à la console AWS.
- Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur: Créer un bucket.
- Enregistrez le nom (par exemple,
elb-logs
) et la région du bucket pour une utilisation ultérieure. - Créez un utilisateur en suivant le guide de l'utilisateur Créer un utilisateur IAM.
- Sélectionnez l'utilisateur créé.
- Sélectionnez l'onglet Informations d'identification de sécurité.
- Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
- Sélectionnez Service tiers comme Cas d'utilisation.
- Cliquez sur Suivant.
- Facultatif: ajoutez une balise de description.
- Cliquez sur Créer une clé d'accès.
- Cliquez sur Download CSV file (Télécharger le fichier CSV) pour enregistrer la clé d'accès et la clé d'accès secrète pour les utiliser ultérieurement.
- Cliquez sur OK.
- Sélectionnez l'onglet Autorisations.
- Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
- Sélectionnez Ajouter des autorisations.
- Sélectionnez Joindre directement des règles.
- Recherchez et sélectionnez la règle AmazonS3FullAccess.
- Cliquez sur Suivant.
- Cliquez sur Ajouter des autorisations.
Configurer AWS Elastic Load Balancer pour activer les journaux d'accès
- Connectez-vous à l'AWS Management Console.
- Recherchez et sélectionnez EC2.
- Sélectionnez Équilibreurs de charge dans le menu de navigation.
- Sélectionnez l'équilibreur de charge pour lequel vous souhaitez activer la journalisation.
- Dans l'onglet Description, faites défiler l'écran jusqu'à Attributs.
- Cliquez sur Modifier les attributs.
- Activez les journaux d'accès en sélectionnant Activer.
- Sélectionnez le bucket S3 que vous avez créé précédemment (par exemple,
elb-logs
). - Facultatif: définissez le préfixe de journal pour faciliter l'identification des journaux (par exemple,
elb/access-logs/
). - Cliquez sur Enregistrer.
Configurer un flux dans Google SecOps pour ingérer les journaux AWS Elastic Load Balancer
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux de l'équilibreur de charge élastique AWS).
- Sélectionnez Amazon S3 comme Type de source.
- Sélectionnez AWS Elastic Load Balancer 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
- 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.
- 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 de journal | Mappage UDM | Logique |
---|---|---|
actions_executed |
security_result.action |
Si actions_executed est "waf,forward" ou "waf,redirect", définissez la valeur sur "ALLOW". Si actions_executed est "waf", définissez la valeur sur "BLOCK". |
chosen_cert_arn |
principal.user.attribute.labels |
Si chosen_cert_arn contient "session", mappez sa valeur sur security_result.description . Sinon, créez un libellé avec la clé "ARN" et la valeur chosen_cert_arn , puis ajoutez-le au tableau principal.user.attribute.labels . |
chosen_cert_arn |
security_result.description |
Si chosen_cert_arn contient "session", mappez sa valeur sur ce champ. |
client_ip |
principal.asset.ip |
Mappage direct. |
client_ip |
principal.ip |
Mappage direct. |
client_port |
principal.port |
Mappage direct. |
classification |
security_result.rule_name |
Mappage direct s'il n'est pas vide ou "-". |
classification_reason |
security_result.summary |
Mappage direct s'il n'est pas vide ou "-". |
Customer (CEF) |
principal.user.user_display_name |
Mappé directement à partir du champ CEF. |
data |
Divers | Analyse avec des modèles Grok pour extraire plusieurs champs. Consultez les autres lignes pour obtenir des mappages spécifiques. |
data.act (CEF) |
security_result.action_details |
Mappé directement à partir du champ CEF. |
data.app (CEF) |
principal.application |
Mappé directement à partir du champ CEF. |
data.ccode (CEF) |
principal.location.country |
Mappé directement à partir du champ CEF. |
data.cicode (CEF) |
principal.location.city |
Mappé directement à partir du champ CEF. |
data.cn1 (CEF) |
network.http.response_code |
Mappé directement à partir du champ CEF. |
data.cpt (CEF) |
principal.port |
Mappé directement à partir du champ CEF. |
data.cs1Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "Cap Support" et la valeur de cs1Label . |
data.cs2Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "Compatibilité JavaScript" et la valeur de cs2Label . |
data.cs3Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "Assistance CO" et la valeur de cs3Label . |
data.cs4Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "VID" et la valeur de cs4Label . |
data.cs5Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "clappsig" et la valeur de cs5Label . |
data.cs6Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "clapp" et la valeur de cs6Label . |
data.cs7Label (CEF) |
additional.fields |
Crée une paire clé-valeur avec la clé "latitude" et la valeur de cs7Label . |
data.deviceExternalId (CEF) |
about.asset.asset_id |
Utilisé dans l'ID de l'asset: Incapsula.SIEMintegration:deviceExternalId . |
data.deviceFacility (CEF) |
principal.location.region |
Mappé directement à partir du champ CEF. |
data.dproc (CEF) |
target.process.command_line |
Mappé directement à partir du champ CEF. |
data.dst_ip |
target.asset.ip |
Mappage direct. |
data.dst_ip |
target.ip |
Mappage direct. |
data.dst_port |
target.port |
Mappage direct. |
data.elb |
target.resource.id |
Mappage direct. |
data.fileId (CEF) |
security_result.detection_fields |
Crée une paire clé-valeur avec la clé "fileId" et la valeur de fileId . |
data.in (CEF) |
network.received_bytes |
Mappé directement à partir du champ CEF. |
data.request (CEF) |
target.url |
Mappé directement à partir du champ CEF. |
data.requestClientApplication (CEF) |
network.http.user_agent |
Mappé directement à partir du champ CEF. |
data.requestMethod (CEF) |
network.http.method |
Mappé directement à partir du champ CEF. |
data.severity (CEF) |
security_result.severity |
Correspond à "LOW" (FAIBLE) si la gravité est de 0. |
data.sip (CEF) |
principal.asset.ip |
Mappé directement à partir du champ CEF. |
data.sip (CEF) |
principal.ip |
Mappé directement à partir du champ CEF. |
data.siteid (CEF) |
security_result.detection_fields |
Crée une paire clé-valeur avec la clé "siteid" et la valeur de siteid . |
data.sourceServiceName (CEF) |
principal.application |
Mappé directement à partir du champ CEF. |
data.spt (CEF) |
principal.port |
Mappé directement à partir du champ CEF. |
data.src (CEF) |
principal.ip |
Mappé directement à partir du champ CEF. |
data.suid (CEF) |
principal.user.userid |
Mappé directement à partir du champ CEF. |
data.ver (CEF) |
network.tls.version |
La partie de la version est extraite à l'aide de grok et mappée. |
data.ver (CEF) |
network.tls.cipher |
La partie chiffrement est extraite à l'aide de grok et mappée. |
data.xff (CEF) |
principal.ip |
Mappé directement à partir du champ CEF. |
domain_name |
principal.administrative_domain |
Mappage direct. |
http_method |
network.http.method |
Mappage direct. |
log_type |
metadata.log_type |
Mappage direct. |
message |
Divers | Analyse avec des modèles Grok pour extraire plusieurs champs. Consultez les autres lignes pour obtenir des mappages spécifiques. |
received_bytes |
network.received_bytes |
Mappage direct. |
redirect_url |
network.application_protocol |
Si redirect_url commence par "http", le protocole est extrait et mappé. |
redirect_url |
target.asset.hostname |
Si redirect_url commence par "http", le nom d'hôte est extrait et mappé. |
redirect_url |
target.hostname |
Si redirect_url commence par "http", le nom d'hôte est extrait et mappé. |
redirect_url |
target.port |
Si redirect_url commence par "http", le port est extrait et mappé. |
request_creation_time |
metadata.collected_timestamp |
Mappage direct après l'analyse de la date. |
request_processing_time |
security_result.detection_fields |
Crée une paire clé-valeur avec la clé "request_processing_time" et la valeur de ce champ. |
response_processing_time |
security_result.detection_fields |
Crée une paire clé-valeur avec la clé "response_processing_time" et la valeur de ce champ. |
sent_bytes |
network.sent_bytes |
Mappage direct. |
ssl_cipher |
network.tls.cipher |
Mappage direct. |
ssl_protocol |
network.tls.version |
Mappage direct. |
target_group_arn |
target.group.group_display_name |
Mappage direct. |
target_processing_time |
security_result.detection_fields |
Crée une paire clé-valeur avec la clé "target_processing_time" et la valeur de ce champ. |
target_status_code |
target.labels |
Crée un libellé avec la clé "target_status_code" et la valeur de ce champ, puis l'ajoute au tableau target.labels . |
time |
metadata.event_timestamp |
Mappage direct après l'analyse de la date. |
trace_id |
metadata.product_log_id |
Mappage direct après suppression de "Root=". |
url |
network.http.referral_url |
Mappage direct. |
user_agent |
network.http.user_agent |
Mappage direct. |
(Analyseur) | metadata.event_type |
Défini sur "NETWORK_HTTP" si les ID de machine principal et cible sont présents, sur "STATUS_UPDATE" si seul l'ID de machine principal est présent, sur "GENERIC_EVENT" si aucun IP cible, nom d'hôte ou IP de destination n'est présent, et sur "NETWORK_HTTP" dans le cas contraire. |
(Analyseur) | metadata.product_name |
Définissez-le sur "AWS Elastic Load Balancer". |
(Analyseur) | metadata.vendor_name |
Définissez-le sur "AMAZON". |
Modifications
2024-03-22
- Ajout d'un nouveau format Grok pour prendre en charge le nouveau format de journaux JSON.
- Ajout de la compatibilité avec les journaux de modèles CEF.
- Mappage de "dst_ip" sur "target.ip".
- Mappage de "dst_port" sur "target.port".
- Mappage de "sip" sur "principal.ip".
- Mise en correspondance de "request_processing_time", "target_processing_time", "siteid", "fileId" et "response_processing_time" avec "security_result.detection.fields".
- Mise en correspondance alignée pour "principal.ip" et "principal.asset.ip".
- Mise en correspondance alignée pour "target.ip" et "target.asset.ip".
- Mise en correspondance alignée pour "target.hostname" et "target.asset.hostname".
- Mappage de "cipher" sur "network.tls.cipher".
- Mappage de "version" sur "network.tls.version".
- "Client" a été mappé sur "principal.user.user_display_name".
2022-05-27
- Amélioration : modification de la valeur stockée dans metadata.product_name pour qu'elle soit "AWS Elastic Load Balancer".
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.