Aller au contenu principal

AWS Security Hub

AWS Security Hub est un service de sécurité en nuage qui automatise les contrôles de sécurité et rassemble les alertes de sécurité dans un emplacement central. Le service effectue une validation des meilleures pratiques par rapport à vos paramètres de sécurité, regroupe les alertes et automatise la correction des paramètres de sécurité non conformes.

Pour en savoir plus sur le service voir la documentation AWS Security Hub.

Prérequis

  • Rôle administrateur dans AWS permettant de configurer les comptes et services Security Hub
  • Rôle « Organization Admin » dans MD.ECO
  • AWS Security Hub configuré dans votre environnement
    • Le compte Security Hub delegated administrator est désigné dans le présent document comme {{SecurityHubAdministratorAccountID}}
    • Les findings doivent êtres agrégés dans une région désignée comme {{AggregationRegion}} dans le présent document
  • Un bucket S3 crée suivant la procédure Ingestion par Bucket S3
    • Désigné dans le présent document comme {{S3SecurityHubAuditBucketName}}

Recommandations Security Hub

Fonctionnement

Export des « findings » vers un bucket S3

L'intégration entre AWS Security Hub et Mondata se fait par un bucket S3. Plusieurs opérations sont nécessaires au niveau de la stack AWS afin de pouvoir automatiquement exporter les données de AWS Security Hub vers le bucket d'intégration.

Pour ce faire, il suffit de construire la chaîne de transformation de message suivante dans la région en charge de l'agrégation seulement.

Diagramme de la solution

Diagramme de la solution AWS Security HubDiagramme de la solution AWS Security Hub

Étapes de configuration

Configuration Kinesis Firehose

Créer un flux de diffusion dans Kinesis.


AWS - Kinesis - Créer un flux de diffusionAWS - Kinesis - Créer un flux de diffusion

Ou


AWS - Kinesis Data Firehose - Créer un flux de diffusionAWS - Kinesis Data Firehose - Créer un flux de diffusion

Data Firehose - Créer un flux de diffusion

  1. Choisir la source « Direct PUT »
  2. Choisir la destination « Amazon S3 »
  3. Choisir un nom de flux de diffusion descriptif et le garder en note
  4. Garder les options par défaut pour la catégorie « Transformer et convertir les enregistrements »
  5. Sous « Paramètre de destination », sélectionner le bucket S3 {{S3SecurityHubAuditBucketName}} créé préalablement
  6. Laisser les valeurs par défaut pour les autres configurations et cliquer sur « Créer un flux de diffusion »
info

La création du « delivery stream » peut prendre quelques minutes.


AWS - Kinesis Data Firehose - Créer un flux de diffusion
AWS - Kinesis Data Firehose - Créer un flux de diffusionAWS - Kinesis Data Firehose - Créer un flux de diffusion

Configuration EventBridge

La prochaine étape consiste à créer une règle EventBridge entre Security Hub et CloudWatch.

  1. Dans EventBridge, rendez-vous dans la section « Règles » sous la catégorie « Autobus »
  2. Cliquer sur le bouton « Créer une règle »

AWS - Amazon EventBridge - RèglesAWS - Amazon EventBridge - Règles

Créer une règle - Définir les détails de la règle

  1. Donnez un nom significatif à la règle
  2. Donnez une description significative à la règle
  3. Sélectionnez le type de règle « Règle avec un modèle d'événement »
  4. Cliquez sur suivant

AWS - Amazon EventBridge - Règles - Créer une règle - Définir les détails de la règleAWS - Amazon EventBridge - Règles - Créer une règle - Définir les détails de la règle

Créer une règle - Générer un modèle d'événement

  1. Sélectionnez la source « Événements AWS [ou événements partenaires EventBridge] »
  2. Sélectionnez la méthode de création « Utiliser le formulaire d'événement »
  3. Sélectionnez la source d'événement « Services AWS »
  4. Sélectionnez le service AWS « Security Hub »
  5. Sélectionnez le type d'événement « Security Hub Findings - Imported »
  6. Laissez les autres valeurs par défaut et cliquez sur « Suivant »

AWS - Amazon EventBridge - Règles - Créer une règle - Générer un modèle d'événement
AWS - Amazon EventBridge - Règles - Créer une règle - Générer un modèle d'événementAWS - Amazon EventBridge - Règles - Créer une règle - Générer un modèle d'événement

Créer une règle - Sélectionner la ou les cibles

  1. Sélectionnez le type de cible « Service AWS »
  2. Sélectionnez la cible « Groupe de journaux CloudWatch »
  3. Choisissez un nom descriptif pour le nouveau groupe de journaux et gardez le en note
  4. Gardez les « Réglages supplémentaires » par défaut et cliquez sur « Suivant »

Terminez la configuration et créer la règle.


AWS - Amazon EventBridge - Règles - Créer une règle - Sélectionner la ou les ciblesAWS - Amazon EventBridge - Règles - Créer une règle - Sélectionner la ou les cibles

Configuration CloudWatch

Avant de pouvoir configurer CloudWatch, un rôle et sa politique devront être créé au préalable pour celui-ci dans IAM.

Création d'une politique IAM pour CloudWatch

  1. Rendez-vous dans la section « Politiques » du service IAM
  2. Cliquez sur « Créer une politique »

AWS - IAM - PolitiquesAWS - IAM - Politiques
Créer une politique - Spécifier les autorisations
  1. Cliquez sur l'onglet « JSON »

  2. Utilisez le modèle de politique suivant

    Remplacer les valeurs suivantes :

    • {{AggregationRegion}} : le nom de la region d'agrégation
    • {{SecurityHubAdministratorAccountID}} : le numéro du compte administrateur Security Hub
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"firehose:PutRecord",
"firehose:PutRecordBatch"
],
"Effect": "Allow",
"Resource": "arn:aws:firehose:{{AggregationRegion}}:{{SecurityHubAdministratorAccountID}}:deliverystream/*"
}
]
}

Cette politique donnera les droit à CloudWatch d'écrire dans tous les « Flux de diffusion Kinesis Firehose ». Vous pouvez restreindre les accès au flux de diffusion créée précédemment en changeant la clef « ARN » de la ressource.


AWS - IAM - Politiques - Créer une politiqueAWS - IAM - Politiques - Créer une politique
Créer une politique - Vérifier et créer
  1. Choisissez un nom descriptif pour la politique et gardez-le en note pour pour lui faire référence à la création du rôle IAM.
  2. Cliquez sur « Créer une politique »

AWS - IAM - Politiques - Créer une politiqueAWS - IAM - Politiques - Créer une politique

Création d'un rôle IAM pour CloudWatch

  1. Rendez-vous dans la section « Rôles » du service IAM
  2. Cliquez sur « Créer un rôle »

AWS - IAM - RôlesAWS - IAM - Rôles
Sélectionner une entité de confiance
  1. Sélectionnez le type d'entité approuvée « Service AWS »
  2. Sélectionnez « Kinesis » comme service
  3. Sélectionnez « Kinesis Firehose » comme cas d'utilisation
  4. Cliquez sur « Suivant »

AWS - IAM - Rôles - Créer un rôleAWS - IAM - Rôles - Créer un rôle
Ajouter des autorisations
  1. Cochez la nouvelle politique
  2. Cliquez sur « Suivant »

AWS - IAM - Rôles - Créer un rôle - Ajouter des autorisationsAWS - IAM - Rôles - Créer un rôle - Ajouter des autorisations
Nommer, vérifier et créer
  1. Choisissez un nom de rôle descriptif et gardez-le en note pour la création du filtre d'abonnement Kinesis Firehose
  2. Cliquez sur « Créer un rôle »

AWS - IAM - Rôles - Créer un rôle - Nommer, vérifer et créerAWS - IAM - Rôles - Créer un rôle - Nommer, vérifer et créer

Déléguer le rôle au service CloudWatch

  1. Dans la page du nouveau rôle, cliquez sur l'onglet « Relations d'approbation »
  2. Cliquez sur « Modifier la politique d'approbation »

Remplacez la politique par le gabarit suivant.

Remplacer les valeurs suivantes :

  • {{AggregationRegion}} : le nom de la region d'agrégation
  • {{SecurityHubAdministratorAccountID}} : le numéro du compte administrateur Security Hub
{
"Version": "2008-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.{{AggregationRegion}}.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringLike": {
"aws:SourceArn": "arn:aws:logs:{{AggregationRegion}}:{{SecurityHubAdministratorAccountID}}:*"
}
}
}
]
}

Sauvegardez pour terminer la configuration du rôle.


AWS - IAM - Rôles - RoleAWS - IAM - Rôles - Role

Création du filtre d'abonnement Kinesis Firehose

  1. Dans CloudWatch, rendez-vous dans la section « Groupes de journaux »
  2. Trouvez le groupe de journaux créé plus tôt et cliquez dessus pour voir ses détails

AWS - CloudWatch - Groupes de journauxAWS - CloudWatch - Groupes de journaux

Détails du groupe de journaux

  1. Cliquez sur l'onglet « Filtres d'abonnement »
  2. Cliquez sur le bouton « Créer »
  3. Sélectionnez « Créer un filtre d'abonnement Kinesis Firehose »

AWS - CloudWatch - Groupes de journaux - Détails du groupe de journaux - Filtres d'abonnementAWS - CloudWatch - Groupes de journaux - Détails du groupe de journaux - Filtres d'abonnement

Créer un filtre d'abonnement Kinesis Firehose pour le groupe de journaux

  1. Sélectionnez le « Flux de diffusion Kinesis Firehose » créé plus tôt
  2. Sélectionnez le rôle créé plus tôt
  3. Donnez un nom descriptif au filtre
  4. Cliquez sur « Démarrer la diffusion en continu »
info

Si vous obtenez une erreur au moment de la création, assurez-vous que le rôle possède les bonnes permissions.


AWS - CloudWatch - Groupes de journaux - Filtres d'abonnement - Créer un filtre d'abonnement Kinesis Firehose
AWS - CloudWatch - Groupes de journaux - Filtres d'abonnement - Créer un filtre d'abonnement Kinesis FirehoseAWS - CloudWatch - Groupes de journaux - Filtres d'abonnement - Créer un filtre d'abonnement Kinesis Firehose

Vérification de l'installation

La configuration sera valide si des événements de contrôles apparaissent dans le bucket S3. La propagation n'est pas instantanée entre les services et peut prendre un certain temps. Le résultat attendu est une arborescence Année/Mois/Jour/Heure qui comprendra les fichiers compressés des findings générés par Security Hub.


AWS - CloudWatch - Groupes de journaux - Filtres d'abonnement - Créer un filtre d'abonnement Kinesis FirehoseAWS - CloudWatch - Groupes de journaux - Filtres d'abonnement - Créer un filtre d'abonnement Kinesis Firehose

Notifier Mondata avec les informations sur l'instance

Inclure les informations suivantes :

  • {{S3SecurityHubAuditBucketName}}