Collecter les journaux AWS Security Hub
Ce document explique comment ingérer les journaux AWS Security Hub dans Google Security Operations. AWS Security Hub offre une vue complète des alertes et des résultats de sécurité dans les comptes AWS. En envoyant ces résultats à Google SecOps, vous pouvez utiliser les fonctionnalités de Google SecOps pour améliorer la surveillance et la détection des menaces.
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 IAM
- Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur: Créer un bucket.
- Enregistrez le nom 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 Security Hub pour transférer les résultats avec EventBridge
- Connectez-vous à l'AWS Management Console.
- Dans la barre de recherche, saisissez Security Hub, puis sélectionnez-le dans la liste des services.
- Cliquez sur Paramètres.
- Dans la section Intégrations, recherchez EventBridge, puis cliquez sur Activer.
- Dans la barre de recherche, saisissez EventBridge, puis sélectionnez-le dans la liste des services.
- Dans la console EventBridge, cliquez sur Règles > Créer une règle.
- Fournissez la configuration de règle suivante :
- Nom de la règle: attribuez un nom descriptif à la règle (par exemple, SendSecurityHubFindingsToS3).
- Source d'événement: sélectionnez Services AWS.
- Nom du service: sélectionnez Security Hub (Hub de sécurité).
- Type d'événement: sélectionnez Résultats du Security Hub.
- Définir la cible: choisissez le bucket S3 comme cible des résultats.
- Bucket S3: sélectionnez le bucket dans lequel les résultats doivent être stockés.
- Si vous n'avez pas encore configuré de bucket S3, créez-en un:
- Accédez à la console S3 .
- Cliquez sur Créer un bucket.
- Indiquez un nom de bucket (par exemple, securityhub-findings-logs).
- Cliquez sur Créer.
- Configurer les autorisations: EventBridge configure automatiquement les autorisations nécessaires pour lui permettre d'envoyer les résultats au bucket S3 spécifié (si vous utilisez un bucket personnalisé, assurez-vous que les autorisations S3 appropriées sont en place pour permettre à EventBridge d'écrire des journaux dans le bucket).
- Cliquez sur Créer.
Configurer un flux dans Google SecOps pour ingèrer les journaux AWS Security Hub
- 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 Security Hub).
- Sélectionnez Amazon S3 comme Type de source.
- Sélectionnez AWS Security Hub 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://your-log-bucket-name/
- Remplacez
your-log-bucket-name
par le nom réel du bucket.
- Remplacez
- Un URI est: sélectionnez Répertoire ou 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 |
---|---|---|
account |
principal.group.product_object_id |
ID du compte AWS associé à l'anomalie. |
configurationItem.ARN |
target.resource.id |
Nom de ressource Amazon (ARN) de l'élément de configuration. |
configurationItem.awsAccountId |
principal.user.userid |
ID de compte AWS de l'élément de configuration. |
configurationItem.awsRegion |
target.asset.location.country_or_region |
Région AWS de l'élément de configuration. |
configurationItem.configuration.complianceType |
security_result.summary |
Type de conformité de l'élément de configuration. |
configurationItem.configuration.configRuleList[].complianceType |
security_result.summary |
État de conformité pour chaque règle de configuration. |
configurationItem.configuration.configRuleList[].configRuleArn |
security_result.rule_id |
ARN de la règle AWS Config. |
configurationItem.configuration.configRuleList[].configRuleId |
security_result.about.labels.configRuleId |
ID de la règle AWS Config. |
configurationItem.configuration.configRuleList[].configRuleName |
security_result.rule_name |
Nom de la règle AWS Config. |
configurationItem.configuration.privateIpAddress |
target.ip |
Adresse IP privée de l'élément de configuration. |
configurationItem.configuration.publicIpAddress |
target.ip |
Adresse IP publique de l'élément de configuration. |
configurationItem.configurationItemCaptureTime |
target.asset.attribute.creation_time |
Heure de capture de l'élément de configuration, convertie en code temporel. |
configurationItem.configurationItemStatus |
target.asset.attribute.labels.Configuration Item Status |
État de l'élément de configuration. |
configurationItem.relationships[].resourceId |
target.asset.attribute.cloud.vpc.id |
ID de la ressource associée, utilisé pour l'ID de VPC s'il correspond à "vpc". |
configurationItem.resourceId |
target.resource.id |
ID de ressource de l'élément de configuration. |
configurationItem.resourceName |
target.resource.name |
Nom de la ressource. |
configurationItem.resourceType |
target.resource.resource_subtype |
Type de ressource de l'élément de configuration. |
configurationItem.tags.Contact |
principal.user.user_display_name OU principal.user.email_addresses |
Coordonnées extraites des balises, analysées pour identifier l'adresse e-mail et le nom d'utilisateur. |
configurationItem.tags.OS /configurationItem.tags.Os |
target.asset.platform_software.platform |
Système d'exploitation à partir des balises, mappé sur la plate-forme s'il s'agit de "Windows" ou de "Linux". |
configurationItemDiff.changeType |
metadata.event_type |
Type de modification, mappé sur RESOURCE_WRITTEN ou RESOURCE_CREATION. |
detail.accountId |
principal.group.product_object_id |
ID du compte AWS associé à l'anomalie. |
detail.actionDescription detail.actionName detail.description |
sec_result.description |
Description de la non-conformité. |
detail.findings[].AwsAccountId |
principal.group.product_object_id |
ID du compte AWS associé à l'anomalie. |
detail.findings[].CompanyName detail.findings[].CreatedAt detail.findings[].Description |
sec_result.description |
Description de la non-conformité. |
detail.findings[].FindingProviderFields.Severity.Label |
sec_result.severity |
Libellé de gravité de l'anomalie, converti en majuscules. |
detail.findings[].FindingProviderFields.Types[] detail.findings[].FirstObservedAt detail.findings[].GeneratorId detail.findings[].Id detail.findings[].LastObservedAt detail.findings[].ProductArn detail.findings[].ProductFields. |
Voir ci-dessous | Divers champs utilisés pour les champs supplémentaires, le principal et les informations de cible. |
detail.findings[].ProductName detail.findings[].RecordState detail.findings[].Region |
target.location.name |
Région AWS de l'anomalie. |
detail.findings[].Resources[].Details. |
Voir ci-dessous | Informations sur les ressources impliquées dans le résultat. |
detail.findings[].Resources[].Id |
target.resource.product_object_id |
ID de la ressource. |
detail.findings[].Resources[].Partition detail.findings[].Resources[].Region |
target.location.name |
Région AWS de la ressource. |
detail.findings[].Resources[].Tags detail.findings[].Resources[].Type |
target.resource.resource_type , target.resource.resource_subtype , metadata.event_type |
Type de ressource, utilisé pour le mappage du type de ressource, du sous-type et du type d'événement. |
detail.findings[].Sample detail.findings[].SchemaVersion detail.findings[].Severity.Label detail.findings[].SourceUrl detail.findings[].Title |
sec_result.summary |
Titre de la découverte. |
detail.findings[].Types[] detail.findings[].UpdatedAt detail.findings[].Workflow.Status detail.findings[].WorkflowState detail-type |
metadata.product_event_type |
Type de détails de l'événement. |
id |
metadata.product_log_id |
ID de l'événement. |
region |
target.location.name |
Région AWS de l'événement. |
resources[] source time version (logique de l'analyseur) |
metadata.event_timestamp |
Heure de création de l'entrée de journal d'origine, utilisée comme code temporel de l'événement. |
(Logique de l'analyseur) | metadata.log_type |
Défini sur "AWS_SECURITY_HUB". |
(Logique de l'analyseur) | metadata.product_name |
Définissez-le sur "AWS Security Hub". |
(Logique de l'analyseur) | metadata.vendor_name |
Définissez-le sur "AMAZON". |
(Logique de l'analyseur) | target.asset.attribute.cloud.environment |
Définissez-le sur "AMAZON_WEB_SERVICES". |
(Logique de l'analyseur) | metadata.event_type |
La valeur par défaut est "USER_RESOURCE_ACCESS" si elle n'est pas mappée à partir de Resources[].Type ou configurationItemDiff.changeType . Définissez-le sur "STATUS_UPDATE" si configurationItems est présent et qu'aucun autre type d'événement n'est défini. Défini sur "RESOURCE_READ" si configurationItem ou configurationItems est présent et que l'état est "OK" ou "ResourceDiscovered". Défini sur "RESOURCE_DELETION" si configurationItem ou configurationItems est présent et que l'état est "ResourceDeleted". |
(Logique de l'analyseur) | metadata.description |
Définissez la valeur sur "guardduty" si detail.findings[].ProductFields.aws/guardduty/service/serviceName est présent. |
(Logique de l'analyseur) | target.asset.attribute.cloud.vpc.resource_type |
Définissez la valeur sur "VPC_NETWORK" si configurationItems.relationships[].resourceId correspond à "vpc". |
(Logique de l'analyseur) | target.resource.resource_type |
Définissez cette valeur sur "VIRTUAL_MACHINE" si configurationItem ou configurationItems est présent. Définissez cette valeur sur "UNSPECIFIED" si aucun autre type de ressource n'est défini. |
(Logique de l'analyseur) | target.asset.platform_software.platform |
Défini sur "WINDOWS" ou "LINUX" en fonction de la présence de "Windows" ou "(Linux |
(Logique de l'analyseur) | disambiguation_key |
Ajouté lorsque plusieurs événements sont générés à partir d'une seule entrée de journal. |
Modifications
2023-06-20
- Amélioration:
- Modification de "metadata.event_type" de "GENERIC_EVENT" à "USER_RESOURCE_ACCESS".
24/03/2023
- Amélioration:
- when "detail.findings.0.Resources.0.Type" == "AwsEcsTaskDefinition" -
- Mappage de "target.resource.resource_type" sur "TASK".
- "event_type" a été mappé sur "USER_RESOURCE_ACCESS".
- Mappage de "detail.findings.0.ProductFields.Resources:0/Id" sur "principal.asset_id".
- Tous les autres journaux défaillants ont été analysés en tant que GENERIC_EVENT, car STATUS_UPDATE n'était pas une bonne option d'analyse pour eux.
2022-08-22
- Amélioration:
- Le nom du fournisseur "AWS SECURITY HUB" a été remplacé par "AMAZON".
- Modification de "AWS SECURITY HUB" en "AWS Security Hub" pour "product_name".
- Analyse des nouveaux journaux au format JSON contenant "configurationItem" ou "configurationItems".
- J'ai géré les journaux ingérés en tant que fichier d'importation en les séparant à l'aide d'une boucle for et en analysant chacun d'eux en tant qu'événement individuel.
2022-07-01
- Analyseur créé
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.