Présentation des modules personnalisés pour Security Health Analytics

Cette page présente les modules personnalisés de Security Health Analytics.

Les modules personnalisés vous permettent d'étendre les fonctionnalités de détection de Security Health Analytics en créant des détecteurs personnalisés qui analysent les ressources et les stratégies Google Cloud que vous spécifiez à l'aide de règles que vous définissez pour rechercher des failles, des erreurs de configuration ou des cas de non-conformité.

La configuration ou la définition d'un module personnalisé, que vous le créiez dans la console Google Cloud ou que vous le cochiez vous-même, détermine les ressources vérifiées par le détecteur, les propriétés évaluées par le détecteur et les informations renvoyées par le détecteur lorsqu'une faille ou une configuration est détectée.

Vous pouvez créer des modules personnalisés pour toute ressource ou tout élément compatible avec Security Command Center.

Si vous codez vous-même des définitions de modules personnalisés, vous utilisez des expressions YAML et CEL (Common Expression Language). Si vous utilisez la console Google Cloud pour créer vos modules personnalisés, la majeure partie du codage est effectuée pour vous, même si vous devez coder les expressions CEL.

Pour obtenir un exemple de définition de module personnalisé dans un fichier YAML, consultez la section Exemple de définition de module personnalisé.

Les modules personnalisés s'exécutent avec les détecteurs intégrés de Security Health Analytics lors d'analyses en temps réel et par lot. En mode temps réel, les analyses sont déclenchées dès que la configuration d'un élément est modifiée. Les analyses en mode lot s'exécutent une fois par jour avec tous les détecteurs des organisations ou des projets enregistrés.

Lors d'une analyse, chaque détecteur personnalisé est appliqué à tous les éléments correspondants de chaque organisation, dossier ou projet pour lesquels il est activé.

Les résultats des détecteurs personnalisés sont écrits dans Security Command Center.

Pour en savoir plus, consultez les ressources suivantes :

Comparer les détecteurs intégrés et les modules personnalisés

Vous pouvez détecter des éléments à l'aide de modules personnalisés que vous ne pouvez pas détecter avec les détecteurs Security Health Analytics intégrés. Toutefois, les détecteurs intégrés sont compatibles avec certaines fonctionnalités de Security Command Center que les modules personnalisés ne peuvent pas détecter.

Prise en charge de fonctionnalités

Les modules personnalisés Security Health Analytics ne sont pas compatibles avec les simulations de chemins d'attaque. Par conséquent, les résultats générés par ces modules n'obtiennent pas de scores d'exposition aux attaques ni de chemins d'attaque.

Comparer la logique de détection

Pour obtenir un exemple de ce que vous pouvez faire avec un module personnalisé, comparez ce que le détecteur intégré PUBLIC_SQL_INSTANCE vérifie avec ce que vous pouvez faire avec un module personnalisé.

Le détecteur intégré PUBLIC_SQL_INSTANCE vérifie si la propriété authorizedNetworks des instances Cloud SQL est définie sur 0.0.0.0/0. Si c'est le cas, le détecteur émet un résultat indiquant que l'instance Cloud SQL est ouverte au public, car elle accepte les connexions provenant de toutes les adresses IP.

Avec un module personnalisé, vous pouvez implémenter une logique de détection plus complexe pour vérifier les éléments suivants des instances Cloud SQL:

  • les adresses IP avec des préfixes spécifiques, à l'aide de caractères génériques.
  • La valeur de la propriété state, que vous pouvez utiliser pour ignorer les instances si la valeur est définie sur MAINTENANCE ou pour déclencher des résultats si la valeur est différente.
  • La valeur de la propriété region, que vous pouvez utiliser pour déclencher des résultats uniquement pour les instances disposant d'adresses IP publiques dans des régions spécifiques.

Rôles et autorisations IAM requis

Les rôles IAM déterminent les actions que vous pouvez effectuer avec les modules personnalisés Security Health Analytics.

Le tableau suivant contient une liste des autorisations du module personnalisé Security Health Analytics et des rôles IAM prédéfinis qui les incluent. Ces autorisations sont valides au moins jusqu'au 22 janvier 2024. Après cette date, les autorisations répertoriées dans le deuxième tableau suivant seront requises.

Vous pouvez utiliser la console Google Cloud ou l'API Security Command Center pour appliquer ces rôles au niveau de l'organisation, d'un dossier ou d'un projet.

Autorisations requises avant le 22 janvier 2024 Rôles
securitycenter.securityhealthanalyticscustommodules.create
securitycenter.securityhealthanalyticscustommodules.update
securitycenter.securityhealthanalyticscustommodules.delete
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycenter.securityhealthanalyticscustommodules.get
securitycenter.securityhealthanalyticscustommodules.list
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin
securitycenter.securityhealthanalyticscustommodules.test roles/securitycenter.securityHealthAnalyticsCustomModulesTester
roles/securitycenter.adminViewer
roles/securitycenter.adminEditor
roles/securitycenter.admin

Le tableau suivant contient la liste des autorisations des modules personnalisés Security Health Analytics qui seront requises à compter du 22 janvier 2024, ainsi que les rôles IAM prédéfinis qui les incluent.

Vous pouvez utiliser la console Google Cloud ou l'API Security Command Center pour appliquer ces rôles au niveau de l'organisation, d'un dossier ou d'un projet.

Autorisations requises à compter du 22 janvier 2024 Rôles
securitycentermanagement.securityHealthAnalyticsCustomModules.create
securitycentermanagement.securityHealthAnalyticsCustomModules.update
securitycentermanagement.securityHealthAnalyticsCustomModules.delete
securitycentermanagement.securityHealthAnalyticsCustomModules.list
securitycentermanagement.securityHealthAnalyticsCustomModules.get
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.list
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.get
securitycentermanagement.securityHealthAnalyticsCustomModules.simulate
securitycentermanagement.securityHealthAnalyticsCustomModules.test
roles/securitycentermanagement.shaCustomModulesEditor
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycentermanagement.securityHealthAnalyticsCustomModules.list
securitycentermanagement.securityHealthAnalyticsCustomModules.get
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.list
securitycentermanagement.effectiveSecurityHealthAnalyticsCustomModules.get
securitycentermanagement.securityHealthAnalyticsCustomModules.simulate
securitycentermanagement.securityHealthAnalyticsCustomModules.test
roles/securitycentermanagement.shaCustomModulesViewer
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin

Pour en savoir plus sur les autorisations et les rôles IAM, et sur la façon de les attribuer, consultez Attribuer un rôle IAM à l'aide de la console Google Cloud.

Quotas de modules personnalisés

Les modules personnalisés Security Health Analytics sont soumis à des limites de quota.

La limite de quota par défaut pour la création de modules personnalisés est de 100, mais vous pouvez demander une augmentation de quota si nécessaire.

Les appels d'API vers des méthodes de module personnalisé sont également soumis à des limites de quota. Le tableau suivant présente les limites de quota par défaut pour les appels d'API de modules personnalisés.

Type d'appel d'API Limite
Requêtes de lecture CustomModules (Get, List) 1 000 appels d'API par minute et par organisation
Requêtes d'écriture CustomModules (création, mise à jour, suppression) 60 appels d'API par minute et par organisation
Requêtes de test CustomModules 12 appels d'API par minute et par organisation

Pour demander une augmentation de quota, accédez à la page Quotas de la console Google Cloud.

Pour en savoir plus sur les quotas de Security Command Center, consultez la page Quotas et limites.

Types de ressources acceptés

Address
compute.googleapis.com/Address
Alert Policy
monitoring.googleapis.com/AlertPolicy
AlloyDB for PostgreSQL
alloydb.googleapis.com/Backup
alloydb.googleapis.com/Cluster
alloydb.googleapis.com/Instance
Artifact Registry Repository
artifactregistry.googleapis.com/Repository
Autoscaler
compute.googleapis.com/Autoscaler
Backend Bucket
compute.googleapis.com/BackendBucket
Backend Service
compute.googleapis.com/BackendService
BigQuery Data Transfer Service
bigquerydatatransfer.googleapis.com/TransferConfig
BigQuery Table
bigquery.googleapis.com/Table
Bucket
storage.googleapis.com/Bucket
Cloud Data Fusion
datafusion.googleapis.com/Instance
Cloud Function
cloudfunctions.googleapis.com/CloudFunction
Cloud Run
run.googleapis.com/DomainMapping
run.googleapis.com/Execution
run.googleapis.com/Job
run.googleapis.com/Revision
run.googleapis.com/Service
Cluster
container.googleapis.com/Cluster
Cluster Role
rbac.authorization.k8s.io/ClusterRole
Cluster Role Binding
rbac.authorization.k8s.io/ClusterRoleBinding
Commitment
compute.googleapis.com/Commitment
Composer Environment
composer.googleapis.com/Environment
Compute Project
compute.googleapis.com/Project
compute.googleapis.com/SecurityPolicy
CryptoKey
cloudkms.googleapis.com/CryptoKey
CryptoKey Version
cloudkms.googleapis.com/CryptoKeyVersion
Dataflow Job
dataflow.googleapis.com/Job
Dataproc Cluster
dataproc.googleapis.com/Cluster
Dataset
bigquery.googleapis.com/Dataset
Datastream Connection Profile
datastream.googleapis.com/ConnectionProfile
Datastream Private Connection
datastream.googleapis.com/PrivateConnection
Datastream Stream
datastream.googleapis.com/Stream
Disk
compute.googleapis.com/Disk
DNS Policy
dns.googleapis.com/Policy
File Instance
file.googleapis.com/Instance
Firewall
compute.googleapis.com/Firewall
Firewall Policy
compute.googleapis.com/FirewallPolicy
Folder
cloudresourcemanager.googleapis.com/Folder
Forwarding Rule
compute.googleapis.com/ForwardingRule
Global Forwarding Rule
compute.googleapis.com/GlobalForwardingRule
Health Check
compute.googleapis.com/HealthCheck
Hub
gkehub.googleapis.com/Feature
gkehub.googleapis.com/Membership
Image
compute.googleapis.com/Image
Instance
compute.googleapis.com/Instance
Instance Group
compute.googleapis.com/InstanceGroup
Instance Group Manager
compute.googleapis.com/InstanceGroupManagers
Interconnect Attachment
compute.googleapis.com/InterconnectAttachment
Keyring
cloudkms.googleapis.com/KeyRing
KMS Import Job
cloudkms.googleapis.com/ImportJob
Kubernetes Service
k8s.io/Service
Log Bucket
logging.googleapis.com/LogBucket
Log Metric
logging.googleapis.com/LogMetric
Log Sink
logging.googleapis.com/LogSink
Managed Zone
dns.googleapis.com/ManagedZone
Namespace
k8s.io/Namespace
Network
compute.googleapis.com/Network
Network Endpoint Group
compute.googleapis.com/NetworkEndpointGroup
Node
k8s.io/Node
Node Group
compute.googleapis.com/NodeGroup
Node Template
compute.googleapis.com/NodeTemplate
Nodepool
container.googleapis.com/NodePool
Organization
cloudresourcemanager.googleapis.com/Organization
Organization Policy Service v2
orgpolicy.googleapis.com/CustomConstraint
orgpolicy.googleapis.com/Policy
Packet Mirroring
compute.googleapis.com/PacketMirroring
Pod
k8s.io/Pod
Project
cloudresourcemanager.googleapis.com/Project
Pubsub Snapshot
pubsub.googleapis.com/Snapshot
Pubsub Subscription
pubsub.googleapis.com/Subscription
Pubsub Topic
pubsub.googleapis.com/Topic
Region Backend Service
compute.googleapis.com/RegionBackendService
Region Disk
compute.googleapis.com/RegionDisk
Reservation
compute.googleapis.com/Reservation
Resource Policy
compute.googleapis.com/ResourcePolicy
Router
compute.googleapis.com/Router
Role
rbac.authorization.k8s.io/Role
Role Binding
rbac.authorization.k8s.io/RoleBinding
Secret Manager
secretmanager.googleapis.com/Secret
Service Account Key
iam.googleapis.com/ServiceAccountKey
ServiceUsage Service
serviceusage.googleapis.com/Service
Snapshot
compute.googleapis.com/Snapshot
Spanner Database
spanner.googleapis.com/Database
Spanner Instance
spanner.googleapis.com/Instance
SQL Instance
sqladmin.googleapis.com/Instance
SSL Certificate
compute.googleapis.com/SslCertificate
SSL Policy
compute.googleapis.com/SslPolicy
Subnetwork
compute.googleapis.com/Subnetwork
Target HTTP Proxy
compute.googleapis.com/TargetHttpProxy
Target HTTPS Proxy
compute.googleapis.com/TargetHttpsProxy
Target Instance
compute.googleapis.com/TargetInstance
Target Pool
compute.googleapis.com/TargetPool
Target SSL Proxy
compute.googleapis.com/TargetSslProxy
Target VPN Gateway
compute.googleapis.com/TargetVpnGateway
URL Map
compute.googleapis.com/UrlMap
Vertex AI
aiplatform.googleapis.com/BatchPredictionJob
aiplatform.googleapis.com/CustomJob
aiplatform.googleapis.com/DataLabelingJob
aiplatform.googleapis.com/Dataset
aiplatform.googleapis.com/Endpoint
aiplatform.googleapis.com/HyperparameterTuningJob
aiplatform.googleapis.com/Model
aiplatform.googleapis.com/SpecialistPool
aiplatform.googleapis.com/TrainingPipeline
VPC Connector
vpcaccess.googleapis.com/Connector
VPN Gateway
compute.googleapis.com/VpnGateway
VPN Tunnel
compute.googleapis.com/VpnTunnel

Étapes suivantes