Le Security Command Center (SCC) de Google Cloud offre une vue unifiée de tous les problèmes de sécurité potentiels dans votre environnement cloud. Mais que se passe-t-il si vous n'avez pas le temps d'examiner les findings remontés, ou si vous oubliez tout simplement ? Sans vérification, ce pare-feu ouvert le restera, et ce bucket de stockage demeurera public sans que son contenu n'ait été analysé.

Et si vous pouviez adopter une approche plus proactive face à ces findings et recevoir des notifications en temps réel ?
Dans cet article, nous verrons comment décupler la puissance des findings SCC en y ajoutant la possibilité de configurer des alertes via Cloud Monitoring.
Fonctionnement
L'une des limites de SCC tient à l'absence de métriques et d'alertes via Cloud Monitoring, les findings n'étant visibles qu'au niveau de l'organisation. En exportant les findings vers PubSub [1], et en utilisant les scripts de ce projet, vous pouvez rendre les notifications disponibles dans Cloud Monitoring.
Grâce aux scripts de ce projet, vous pourrez :
- Automatiser la mise en place et la suppression des notifications SCC vers PubSub dans votre projet
- Consigner les findings dans votre projet, rendant ainsi les données accessibles à Cloud Logging et Cloud Monitoring
- Supprimer ou limiter la création de scripts personnalisés en privilégiant les fonctionnalités natives GCP lorsque c'est possible

Prérequis
Pour exécuter les scripts, vous aurez besoin des éléments suivants.
- ID de l'organisation — celle qui héberge votre projet
- ID du projet — celui où les ressources seront déployées
- Compte de service — un compte de service dédié à l'exécution des notifications SCC
- Les API suivantes doivent être activées sur le projet : Security Command Center API pour l'organisation, Cloud Build API et Cloud Functions API
- Vous aurez besoin des rôles IAM suivants
- Security Center Admin — pour configurer les notifications
- Organization Admin — pour provisionner le compte de service avec les rôles requis
Installation
Cloner le dépôt
Clonez le dépôt dans Cloud Shell. Vous pouvez aussi le cloner sur une VM ou sur votre machine locale, selon vos préférences.
git clone https://github.com/gschaeffer/scc-findings-to-pubsub
Modifier les variables
Modifiez les variables du script dans le fichier setup.sh. Vous devez renseigner l'ID de l'organisation, l'ID du projet et le compte de service. Les autres variables sont facultatives.
Lancer l'installation
Commencez par installer les notifications SCC vers PubSub selon la procédure décrite par Google [1 ci-dessus]. Utilisez la commande setup.sh, qui automatise le processus. Assurez-vous que votre configuration gcloud pointe bien vers l'ID de votre projet.
gcloud config set core/project YOUR_PROJECT_ID ./setup.sh apply # if prompted with 'API [securitycenter.googleapis.com] not enabled # on project. Would you like to enable and retry?', select 'y'.
Seules les ressources décrites dans la documentation des notifications SCC [1] sont créées. À ce stade, vous devriez voir les notifications arriver sur le topic PubSub à mesure qu'elles sont identifiées dans SCC.
Ajouter une Cloud Function
Ensuite, pour rendre les événements de findings accessibles dans Cloud Monitoring, déployez la Cloud Function fournie. Elle se chargera de transmettre les findings de PubSub vers Cloud Logging et Cloud Monitoring. Le script d'installation se trouve dans le répertoire functions.
cd functions/ ./deploy_logger_func.sh
Cela déploie une fonction Python très simple, déclenchée dès qu'un finding est ajouté au topic PubSub. Une fois l'installation terminée, vous devriez voir apparaître des entrées dans Cloud Logging. Elles sont consignées dans un journal nommé scc_notifications_log pour en faciliter la recherche.
Une fois les findings dans Cloud Logging, l'ensemble des outils et services Google Cloud habituels sont à votre disposition pour configurer des métriques et des alertes https://cloud.google.com/monitoring/alerts. Si vous souhaitez exploiter ces données dans BigQuery, Cloud Storage ou même un autre topic PubSub, vous pouvez recourir aux exports Logging https://cloud.google.com/logging/docs/export pour les acheminer vers la destination de votre choix.
Nettoyage
Pour supprimer les ressources installées, relancez la commande setup avec l'argument delete, puis utilisez gcloud pour supprimer la Cloud Function. Adaptez le nom de la fonction et la région selon vos besoins.
./setup.sh delete FUNCTION="scc_notification_handler" REGION= gcloud functions delete $FUNCTION --region $REGION
Publié initialement sur https://github.com.