Collecter les journaux AWS Inspector

Version de l'analyseur : 1.0

Compatible avec :

Ce document explique comment ingérer des journaux AWS Inspector dans Google Security Operations à l'aide d'Amazon S3.

Amazon Inspector est un service de gestion des failles qui détecte automatiquement les charges de travail et les analyse en continu pour identifier les failles logicielles et l'exposition involontaire du réseau. Il analyse les instances Amazon EC2, les images de conteneurs dans Amazon ECR et les fonctions AWS Lambda, et génère des résultats détaillés avec des scores de gravité et des recommandations de correction. Cette intégration utilise la fonctionnalité d'exportation des résultats intégrée à Amazon Inspector pour fournir des rapports de résultats au format JSON à un bucket S3, que Google SecOps ingère ensuite à l'aide d'un flux Amazon S3 V2.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Accès privilégié à la console de gestion AWS avec les autorisations nécessaires pour gérer les éléments suivants :
    • Amazon Inspector (résultats, rapports)
    • Amazon S3 (buckets, règles de bucket)
    • AWS KMS (règles de clé)
    • AWS IAM (rôles, règles, utilisateurs)

Configurer un bucket S3 pour l'exportation des résultats Amazon Inspector

Amazon Inspector chiffre les rapports sur les résultats à l'aide d'une clé AWS KMS avant de les stocker dans un bucket S3. Vous devez configurer la stratégie de bucket S3 et la stratégie de clé KMS pour autoriser l'accès à Amazon Inspector.

Créer et configurer le bucket S3

  1. Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket.
  2. Enregistrez le nom et la région du bucket pour référence ultérieure (par exemple, inspector-findings-to-secops).

  3. Sélectionnez le bucket créé dans la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3.

  4. Sélectionnez l'onglet Autorisations.

  5. Dans la section Règle du bucket, cliquez sur Modifier.

  6. Ajoutez l'instruction suivante à la règle de bucket (remplacez inspector-findings-to-secops par le nom de votre bucket, 111122223333 par l'ID de votre compte AWS et us-east-1 par votre région AWS) :

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "allow-inspector",
                "Effect": "Allow",
                "Principal": {
                    "Service": "inspector2.amazonaws.com"
                },
                "Action": [
                    "s3:PutObject",
                    "s3:PutObjectAcl",
                    "s3:AbortMultipartUpload"
                ],
                "Resource": "arn:aws:s3:::inspector-findings-to-secops/*",
                "Condition": {
                    "StringEquals": {
                        "aws:SourceAccount": "111122223333"
                    },
                    "ArnLike": {
                        "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*"
                    }
                }
            }
        ]
    }
    
  7. Cliquez sur Enregistrer les modifications.

Configurer une clé AWS KMS

Amazon Inspector nécessite une clé de chiffrement symétrique AWS KMS gérée par le client dans la même région que le bucket S3 pour chiffrer les rapports de résultats.

  1. Ouvrez la console AWS KMS à l'adresse https://console.aws.amazon.com/kms.
  2. Dans le volet de navigation, sélectionnez Clés gérées par le client.
  3. Sélectionnez la clé KMS que vous souhaitez utiliser (ou créez une clé de chiffrement symétrique).
  4. Sélectionnez l'onglet Stratégie de clé, puis cliquez sur Modifier.
  5. Ajoutez l'instruction suivante à la règle de clé (remplacez 111122223333 par votre ID de compte AWS et us-east-1 par votre région AWS) :

    {
        "Sid": "Allow Amazon Inspector to use the key",
        "Effect": "Allow",
        "Principal": {
            "Service": "inspector2.amazonaws.com"
        },
        "Action": [
            "kms:Decrypt",
            "kms:GenerateDataKey*"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:SourceAccount": "111122223333"
            },
            "ArnLike": {
                "aws:SourceArn": "arn:aws:inspector2:us-east-1:111122223333:report/*"
            }
        }
    }
    
  6. Cliquez sur Enregistrer les modifications.

Exporter les résultats Amazon Inspector vers S3

  1. Connectez-vous à la console Amazon Inspector à l'adresse https://console.aws.amazon.com/inspector/v2/home.
  2. Dans le volet de navigation, accédez à Résultats > Tous les résultats.
  3. Facultatif : Utilisez la barre de filtre au-dessus du tableau Résultats pour spécifier les résultats à inclure dans le rapport.

  4. Cliquez sur Exporter les résultats.

  5. Dans la section Paramètres d'exportation, sélectionnez JSON pour le champ Type de fichier d'exportation.

  6. Sous Emplacement d'exportation, pour URI S3, cliquez sur Parcourir S3 et sélectionnez le bucket S3 inspector-findings-to-secops.

  7. Pour Clé KMS, sélectionnez la clé AWS KMS que vous avez configurée.

  8. Cliquez sur Exporter.

Automatiser l'exportation des résultats à l'aide de la CLI AWS

Pour exporter des rapports sur les résultats de manière récurrente, utilisez la commande create-findings-report de l'AWS CLI. Vous pouvez programmer cette commande à l'aide d'Amazon EventBridge Scheduler ou d'un job cron.

  • Exemple de commande :

    aws inspector2 create-findings-report \
        --report-format JSON \
        --s3-destination bucketName=inspector-findings-to-secops,keyPrefix=findings/,kmsKeyArn=arn:aws:kms:us-east-1:111122223333:key/your-kms-key-id
    

Pour en savoir plus, consultez la documentation de référence de l'AWS CLI create-findings-report.

Configurer un utilisateur IAM pour Google SecOps

Google SecOps a besoin d'un utilisateur IAM disposant d'un accès en lecture au bucket S3 pour ingérer les résultats exportés.

  1. Créez un utilisateur en suivant ce guide de l'utilisateur : Créer un utilisateur IAM.
  2. Sélectionnez l'utilisateur créé.
  3. Sélectionnez l'onglet Security credentials (Identifiants de sécurité).
  4. Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
  5. Sélectionnez Service tiers comme Cas d'utilisation.
  6. Cliquez sur Suivant.
    • Facultatif : Ajoutez une balise de description.
  7. Cliquez sur Créer une clé d'accès.
  8. Cliquez sur Télécharger le fichier .csv pour enregistrer la clé d'accès et la clé d'accès secrète pour référence ultérieure.
  9. Cliquez sur OK.
  10. Sélectionnez l'onglet Autorisations.
  11. Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
  12. Sélectionnez Ajouter des autorisations.
  13. Sélectionnez Associer directement les règles.
  14. Recherchez la règle AmazonS3FullAccess.
  15. Sélectionnez la règle.
  16. Cliquez sur Suivant.
  17. Cliquez sur Ajouter des autorisations.

Configurer un flux dans Google SecOps pour ingérer les journaux AWS Inspector

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Ajouter un flux d'actualités.
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Saisissez un nom unique pour le nom du flux.
  5. Sélectionnez Amazon S3 V2 comme Type de source.
  6. Sélectionnez AWS Inspector comme Type de journal.
  7. Cliquez sur Suivant, puis sur Envoyer.
  8. Spécifiez les valeurs des champs suivants :

    • URI S3 : s3://inspector-findings-to-secops/findings/
    • Option de suppression de la source : sélectionnez l'option de suppression de votre choix.
    • Âge maximal du fichier : incluez les fichiers modifiés au cours des derniers jours (180 jours par défaut).
    • 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 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, puis sur Envoyer.

Table de mappage UDM

Champ du journal Mappage UDM Logique
duration_ms_label additional.fields Fusionné
evnt_app_class_label additional.fields Fusionné
evnt_cloud_application_class_label additional.fields Fusionné
evnt_cloud_sandbox_md5_label additional.fields Fusionné
evnt_cloudapp_rule_label additional.fields Fusionné
evnt_content_type_label additional.fields Fusionné
evnt_customer_label additional.fields Fusionné
evnt_department_label additional.fields Fusionné
evnt_location_label additional.fields Fusionné
evnt_lpclagg_label additional.fields Fusionné
evnt_lpcltype_label additional.fields Fusionné
evnt_network_service_label additional.fields Fusionné
evnt_tenant_label additional.fields Fusionné
evnt_url_category_label additional.fields Fusionné
exception_label additional.fields Fusionné
function_label additional.fields Fusionné
id_label additional.fields Fusionné
level_no_label additional.fields Fusionné
line_label additional.fields Fusionné
location_label additional.fields Fusionné
logger_field additional.fields Fusionné
msg_location_label additional.fields Fusionné
msg_record_functionName_label additional.fields Fusionné
msg_record_functionVersion_label additional.fields Fusionné
msg_record_initializationType_label additional.fields Fusionné
msg_record_instancId_label additional.fields Fusionné
msg_record_instanceMaxMemory_label additional.fields Fusionné
msg_record_phase_label additional.fields Fusionné
msg_service_label additional.fields Fusionné
msg_type_label additional.fields Fusionné
msg_xray_trace_id_label additional.fields Fusionné
protocol_label additional.fields Fusionné
record_version_label additional.fields Fusionné
repr_label additional.fields Fusionné
service_label additional.fields Fusionné
sourcetype_label additional.fields Fusionné
thread_name_label additional.fields Fusionné
type_label additional.fields Fusionné
xray_trace_id_label additional.fields Fusionné
evnt_device_hostname intermediary.hostname Mappé directement
evnt_fwd_method_label intermediary.resource.attribute.labels Fusionné
desc_msg metadata.description Mappage direct
message metadata.description Mappé directement
msg metadata.description Mappé directement
msg_desc_msg metadata.description Mappé directement
msg_record_desc_msg metadata.description Mappé directement
msg_text metadata.description Mappage direct
msg.time metadata.event_timestamp Analysé en tant que ISO8601
repr_time metadata.event_timestamp Analysé en tant que ISO8601
timestamp metadata.event_timestamp Analysé en tant que ISO8601
has_host metadata.event_type Mappé : true → STATUS_UPDATE
has_user metadata.event_type Mapped: true → USER_COMMUNICATION, true → USER_UNCATEGORIZED
msg_record_module metadata.product_event_type Mappé directement
id_1 metadata.product_log_id Mappé directement
evnt_bytes_in network.received_bytes Mappé directement
evnt_bytes_out network.sent_bytes Mappé directement
evnt_app_name principal.application Mappé directement
msg_record_process_name principal.application Mappage direct
evnt_device_app_version_label principal.asset.attribute.labels Fusionné
evnt_ssl_policy_label principal.asset.attribute.labels Fusionné
evnt_server_ip principal.asset.ip Fusionné
evnt_src_ip principal.asset.ip Fusionné
evnt_src_translated_ip principal.asset.ip Fusionné
msg_record_file_path principal.file.full_path Mappé directement
msg_record_file_name principal.file.names Fusionné
evnt_hostname principal.hostname Mappage direct
host principal.hostname Mappage direct
evnt_server_ip principal.ip Fusionné
evnt_src_ip principal.ip Fusionné
evnt_src_translated_ip principal.ip Fusionné
evnt_os principal.platform Mapped: Windows → WINDOWS, Linux → LINUX
evnt_src_port principal.port Mappé directement
port_number principal.port Mappé directement
msg_record_process_id principal.process.pid Mappage direct
cmd_status_label principal.resource.attribute.labels Fusionné
evnt_format_label principal.resource.attribute.labels Fusionné
evnt_os_label principal.resource.attribute.labels Fusionné
msg_record_runtimeVersionArn_label principal.resource.attribute.labels Fusionné
msg_record_runtimeVersion_label principal.resource.attribute.labels Fusionné
record_requestId_labels principal.resource.attribute.labels Fusionné
requestId_labels principal.resource.attribute.labels Fusionné
msg_record_name principal.resource.name Mappage direct
id principal.resource.product_object_id Mappé directement
evnt_url principal.url Mappé directement
evnt_device_owner principal.user.user_display_name Mappé directement
evnt_user principal.user.userid Mappé directement
msg_extra_desc_msg_body_account_id principal.user.userid Mappé directement
evnt_action security_result.action Mappé : allow → security_result_action
security_result_action security_result.action Fusionné
security_result_category_details security_result.category_details Fusionné
security_result_url_super_category security_result.category_details Fusionné
elapsed_time_label security_result.detection_fields Fusionné
evnt_session_count_label security_result.detection_fields Fusionné
evnt_ssl_decrypted_label security_result.detection_fields Fusionné
evnt_url_class_label security_result.detection_fields Fusionné
level_icon_label security_result.detection_fields Fusionné
level security_result.severity Mappé : INFO → INFORMATIONAL, WARNING → MEDIUM
msg_level security_result.severity Mappé : INFO → INFORMATIONAL, WARNING → MEDIUM
evnt_dest_ip target.ip Fusionné
evnt_dest_country target.location.country_or_region Mappage direct
evnt_dest_port target.port Mappé directement
dst_url target.url Mappé directement
N/A metadata.event_type Constante : USER_COMMUNICATION
N/A metadata.product_name Constante : AWS Inspector
N/A metadata.vendor_name Constante : AWS Inspector
N/A network.ip_protocol Constante : UDP
N/A principal.platform Constante : WINDOWS
N/A security_result.detection_fields Constante : client_tunnel_ip_label
N/A security_result.severity Constante : INFORMATIONAL

Journal des modifications

Afficher le journal des modifications de cet analyseur

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