Descripción general de los módulos personalizados para Security Health Analytics

En esta página, se proporciona una descripción general de los módulos personalizados de las estadísticas del estado de la seguridad. Para más información sobre los módulos integrados, consulta Detectores integrados de Security Health Analytics.

Con los módulos personalizados, puedes extender las capacidades de detección de Security Health Analytics. Para ello, crea detectores personalizados que analicen los recursos y las políticas de Google Cloud que especifiques con las reglas que definas para detectar vulnerabilidades, parámetros de configuración incorrectos o incumplimientos de cumplimiento.

La configuración o definición de un módulo personalizado, ya sea que lo crees en la consola de Google Cloud o lo codifiques por tu cuenta, determina los recursos que verifica el detector, las propiedades que evalúa y la información que muestra cuando se detecta una vulnerabilidad o una configuración incorrecta.

Puedes crear módulos personalizados para cualquier recurso o recurso que Security Command Center admite.

Si codificas definiciones de módulos personalizadas por tu cuenta, usas y Common Expression Language (CEL). Si usas la consola de Google Cloud para crear tus módulos personalizados, ya que ya está listo, aunque sí debes codificar las expresiones en CEL.

Para ver un ejemplo de definición de módulo personalizado en un archivo YAML, consulta Ejemplo de definición de módulo personalizado.

Los módulos personalizados se ejecutan junto con los detectores integrados de Security Health Analytics. en análisis en tiempo real y por lotes. En el modo en tiempo real, los análisis se activan cada vez que cambia la configuración de un recurso. Modo por lotes los análisis se ejecutan con todos los detectores de las organizaciones o los proyectos inscritos una vez al día.

Durante un análisis, cada detector personalizado se aplica a todos los recursos coincidentes en cada la organización, la carpeta o el proyecto para el que están habilitadas.

Los resultados de los detectores personalizados se escriben en Security Command Center.

Para obtener más información, consulta lo siguiente:

Compara detectores integrados y módulos personalizados

Puedes detectar cosas con módulos personalizados que no puedes detectar con el detectores integrados de Security Health Analytics; Sin embargo, los detectores integrados admiten ciertas funciones de Security Command Center que los módulos personalizados no tienen.

Compatibilidad de características

Las simulaciones de ruta de ataque no admiten los módulos personalizados de Security Health Analytics, por lo que los resultados que producen los módulos personalizados no obtienen puntajes de exposición a ataques ni rutas de ataque.

Compara la lógica de detección

Como ejemplo de algunas de las acciones que puedes realizar con un módulo personalizado, compara lo que el detector integrado PUBLIC_SQL_INSTANCE verifica con lo que puedes hacer con un módulo personalizado.

El detector integrado PUBLIC_SQL_INSTANCE verifica si la La propiedad authorizedNetworks de las instancias de Cloud SQL se estableció como 0.0.0.0/0 Si es así, el detector emite un hallazgo que indica que la instancia de Cloud SQL está abierta al público, ya que acepta conexiones de todas las direcciones IP.

Con un módulo personalizado, puedes implementar una lógica de detección más compleja para verificar instancias de Cloud SQL en busca de lo siguiente:

  • Direcciones IP con prefijos específicos mediante comodines
  • Es el valor de la propiedad state, que puedes usar para ignorar instancias si el valor se establece en MAINTENANCE o activar hallazgos si el valor es otro.
  • Es el valor de la propiedad region, que puedes usar para activar hallazgos solo para instancias con direcciones IP públicas en regiones específicas.

Roles y permisos de IAM obligatorios

Los roles de IAM determinan las acciones que puedes realizar con los módulos personalizados de las estadísticas del estado de la seguridad.

La siguiente tabla contiene una lista de los permisos del módulo personalizado de Security Health Analytics y los roles de IAM predefinidos que los incluyen. Estos permisos son válidos hasta el 22 de enero de 2024. Después del en esa fecha, los permisos que se enumeran en la segunda tabla que será obligatoria.

Puedes usar la consola de Google Cloud o la API de Security Command Center para aplicar estas funciones a nivel de la organización, la carpeta o el proyecto.

Permisos necesarios antes del 22 de enero de 2024 Funciones
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

La siguiente tabla contiene una lista de los permisos del módulo personalizado de Security Health Analytics que se requerirán a partir del 22 de enero de 2024, así como los roles de IAM predefinidos que los incluyen.

Puedes usar la consola de Google Cloud o la API de Security Command Center para aplicar estos roles a nivel de la organización, la carpeta o el proyecto.

Permisos necesarios a partir del 22 de enero de 2024 Funciones
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

Para obtener más información sobre los permisos y roles de IAM, y cómo otorgarlos, consulta Cómo otorgar un rol de IAM con la consola de Google Cloud.

Cuotas de módulos personalizados

Los módulos personalizados de Security Health Analytics están sujetos a límites de cuota.

El límite predeterminado para la creación de módulos personalizados es 100, pero puedes solicitar un aumento de la cuota, si es necesario.

Las llamadas a la API a métodos de módulos personalizados también están sujetas a límites de cuota. En la siguiente tabla, se muestran los límites de cuota predeterminados para las llamadas a la API de módulos personalizados.

Tipo de llamada a la API Límite
Solicitudes de lectura de CustomModules (Get, List) 1,000 llamadas a la API por minuto y por organización
Solicitudes de escritura de CustomModules (creación, actualización y eliminación) 60 llamadas a la API por minuto y por organización
Solicitudes de prueba de CustomModules 12 llamadas a la API por minuto y por organización

Para aumentos de cuota, envía una solicitud a través de la consola de Google Cloud en Página Cuotas

Para obtener más información sobre las cuotas de Security Command Center, consulta Cuotas y límites.

Tipos de recursos admitidos

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/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

¿Qué sigue?