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

Cette page présente les modules personnalisés de Security Health Analytics. Pour en savoir plus sur les modules intégrés, consultez la section Détecteurs intégrés de Security Health Analytics.

Avec les modules personnalisés, vous pouvez é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 règles 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 codiez vous-même, détermine les ressources que le détecteur vérifie, les propriétés qu'il évalue et les informations qu'il renvoie lorsqu'une faille ou une mauvaise configuration est détectée.

Vous pouvez créer des modules personnalisés pour toute ressource ou composant pris en charge par Security Command Center.

Si vous codez vous-même des définitions de modules personnalisées, 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, mais 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 parallèlement aux détecteurs intégrés de Security Health Analytics, à la fois en temps réel et dans les analyses par lot. En mode en temps réel, les analyses sont déclenchées chaque fois que la configuration d'un élément change. Les analyses en mode par lots s'exécutent avec tous les détecteurs pour les organisations ou projets enregistrés une fois par jour.

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

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

Compatibilité des caractéristiques

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

Comparer les logiques de détection

Pour illustrer 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 de toutes les adresses IP.

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

  • Adresses IP avec des préfixes spécifiques, à l'aide de caractères génériques.
  • 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.
  • 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 de Security Health Analytics.

Le tableau suivant contient la liste des autorisations des modules personnalisés Security Health Analytics et les rôles IAM prédéfinis qui les incluent. Ces autorisations sont valables jusqu'au 22 janvier 2024 au moins. Passée cette date, les autorisations listé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, du dossier ou du 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 de module personnalisé Security Health Analytics qui seront requises à partir 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, du dossier ou du 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 de 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 aux méthodes de modules personnalisés sont également soumis à des limites de quota. Le tableau suivant indique les limites de quota par défaut pour les appels d'API de module personnalisé.

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 (Create, Update, Delete) 60 appels d'API par minute et par organisation
Requêtes de test CustomModules 12 appels d'API par minute et par organisation

Pour augmenter les quotas, envoyez une demande dans la console Google Cloud sur la page Quotas.

Pour en savoir plus sur les quotas de Security Command Center, consultez la section 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
IAM Role
iam.googleapis.com/Role
Image
compute.googleapis.com/Image
Instance
compute.googleapis.com/Instance
Instance Group
compute.googleapis.com/InstanceGroup
Instance Group Manager
compute.googleapis.com/InstanceGroupManagers
Instance Template
compute.googleapis.com/InstanceTemplate
Interconnect Attachment
compute.googleapis.com/InterconnectAttachment
Keyring
cloudkms.googleapis.com/KeyRing
KMS Import Job
cloudkms.googleapis.com/ImportJob
Kubernetes CronJob
k8s.io/CronJob
Kubernetes DaemonSet
k8s.io/DaemonSet
Kubernetes Deployment
k8s.io/Deployment
Kubernetes Ingress
k8s.io/Ingress
Kubernetes NetworkPolicy
k8s.io/NetworkPolicy
Kubernetes ReplicaSet
k8s.io/ReplicaSet
Kubernetes Service
k8s.io/Service
Kubernetes StatefulSet
k8s.io/StatefulSet
Log Bucket
logging.googleapis.com/LogBucket
Log Metric
logging.googleapis.com/LogMetric
Log Sink
logging.googleapis.com/LogSink
Managed Zone
dns.googleapis.com/ManagedZone
Machine Image
compute.googleapis.com/MachineImage
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
Private CA Certificate
privateca.googleapis.com/Certificate
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
Route
compute.googleapis.com/Route
Router
compute.googleapis.com/Router
Role
rbac.authorization.k8s.io/Role
Role Binding
rbac.authorization.k8s.io/RoleBinding
Secret Manager
secretmanager.googleapis.com/Secret
Secret Version
secretmanager.googleapis.com/SecretVersion
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
Tag Binding
cloudresourcemanager.googleapis.com/TagBinding
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/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

Étape suivante