Collecter les journaux AWS Elastic Load Balancing

Compatible avec :

Ce document explique comment collecter les journaux AWS Elastic Load Balancing 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 à 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 {: #before-you-begin }

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

  • Instance Google SecOps
  • Accès privilégié à AWS

Configurer AWS Elastic Load Balancing

  • Activer la journalisation des accès pour envoyer les journaux d'accès à un bucket de stockage S3
  • Créez une file d'attente Amazon Simple Queue Service (SQS) et associez-la à un bucket de stockage S3.

Configurer le bucket Amazon S3

  1. Connectez-vous à la console AWS.
  2. Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket.
  3. Enregistrez le nom du bucket (par exemple, elb-logs) et la région pour une utilisation ultérieure.
  4. Créez un utilisateur en suivant ce guide : Créer un utilisateur IAM.
  5. Sélectionnez l'utilisateur créé.
  6. Sélectionnez l'onglet Informations d'identification de sécurité.
  7. Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
  8. Sélectionnez Service tiers comme Cas d'utilisation.
  9. Cliquez sur Suivant.
  10. Facultatif : ajoutez un tag de description.
  11. Cliquez sur Créer une clé d'accès.
  12. Cliquez sur Télécharger le fichier CSV pour enregistrer la clé d'accès et la clé d'accès secrète pour une utilisation ultérieure.
  13. Cliquez sur OK.
  14. Sélectionnez l'onglet Autorisations.
  15. Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
  16. Sélectionnez Ajouter des autorisations.
  17. Sélectionnez Joindre directement des règles.
  18. Recherchez et sélectionnez la règle AmazonS3FullAccess.
  19. Cliquez sur Suivant.
  20. Cliquez sur Ajouter des autorisations.

Configurer AWS Elastic Load Balancer pour activer les journaux d'accès

  1. Connectez-vous à la console de gestion AWS.
  2. Recherchez et sélectionnez EC2.
  3. Sélectionnez Équilibreurs de charge dans le menu de navigation.
  4. Sélectionnez l'équilibreur de charge pour lequel vous souhaitez activer la journalisation.
  5. Dans l'onglet Description, faites défiler la page jusqu'à Attributs.
  6. Cliquez sur Modifier les attributs.
  7. Activez les journaux d'accès en sélectionnant Activer.
  8. Sélectionnez le bucket S3 créé précédemment (par exemple, elb-logs).
  9. Facultatif : définissez le préfixe du journal pour identifier plus facilement les journaux (par exemple, elb/access-logs/).
  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 AWS Elastic Load Balancer).
  5. Sélectionnez Amazon S3 comme Type de source.
  6. Sélectionnez AWS Elastic Load Balancer comme type de journal.
  7. Cliquez sur Suivant.
  8. Spécifiez les valeurs des paramètres d'entrée suivants :

    • 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 de votre bucket S3.
    • 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.
    • ID de clé d'accès : clé d'accès de l'utilisateur disposant des autorisations de lecture du bucket S3.

    • Clé d'accès secrète : clé secrète de l'utilisateur avec les autorisations nécessaires pour lire le bucket S3.

    • 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 :

  • 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 de votre bucket S3.
  • 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.
  • ID de clé d'accès : clé d'accès de l'utilisateur disposant des autorisations de lecture du bucket S3.

  • Clé d'accès secrète : clé secrète de l'utilisateur avec les autorisations nécessaires pour lire le bucket S3.

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
actions_executed security_result.action Si actions_executed est défini sur "waf,forward" ou "waf,redirect", définissez-le sur "ALLOW". Si actions_executed est défini sur "waf", définissez-le 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 à ce champ.
client_ip principal.asset.ip Mappé directement.
client_ip principal.ip Mappé directement.
client_port principal.port Mappé directement.
classification security_result.rule_name Directement mappé s'il n'est pas vide ou s'il n'est pas "-".
classification_reason security_result.summary Directement mappé s'il n'est pas vide ou s'il n'est pas "-".
Customer (CEF) principal.user.user_display_name Mappé directement à partir du champ CEF.
data Diverses Analysé à l'aide de modèles Grok pour extraire plusieurs champs. Consultez les autres lignes pour connaître les 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é "Javascript Support" et la valeur de cs2Label.
data.cs3Label (CEF) additional.fields Crée une paire clé-valeur avec la clé "CO Support" 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'élément : 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 Mappé directement.
data.dst_ip target.ip Mappé directement.
data.dst_port target.port Mappé directement.
data.elb target.resource.id Mappé directement.
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 Mappé sur "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 du 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 Mappé directement.
http_method network.http.method Mappé directement.
log_type metadata.log_type Mappé directement.
message Diverses Analysé à l'aide de modèles Grok pour extraire plusieurs champs. Consultez les autres lignes pour connaître les mappages spécifiques.
received_bytes network.received_bytes Mappé directement.
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 Directement mappé 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 Mappé directement.
ssl_cipher network.tls.cipher Mappé directement.
ssl_protocol network.tls.version Mappé directement.
target_group_arn target.group.group_display_name Mappé directement.
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 Directement mappé après l'analyse de la date.
trace_id metadata.product_log_id Mappé directement après la suppression de "Root=".
url network.http.referral_url Mappé directement.
user_agent network.http.user_agent Mappé directement.
(Analyseur) metadata.event_type Définissez sur "NETWORK_HTTP" si les ID de machine principale et cible sont présents, sur "STATUS_UPDATE" si seul l'ID de machine principale est présent, sur "GENERIC_EVENT" si aucune adresse IP cible, aucun nom d'hôte ni aucune adresse IP de destination n'est présent, et sur "NETWORK_HTTP" dans le cas contraire.
(Analyseur) metadata.product_name Définissez la valeur sur "AWS Elastic Load Balancer".
(Analyseur) metadata.vendor_name Définissez-le sur "AMAZON".

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