Vista geral dos módulos personalizados para o Security Health Analytics

Esta página oferece uma vista geral dos módulos personalizados do Security Health Analytics. Para ver informações sobre os módulos incorporados, consulte o artigo Detetores incorporados do Security Health Analytics.

Com os módulos personalizados, pode expandir as capacidades de deteção do Security Health Analytics criando detetores personalizados que analisam os recursos e as políticas que especifica através de regras que define para verificar vulnerabilidades, configurações incorretas ou violações de conformidade. Google Cloud

A configuração ou a definição de um módulo personalizado, quer o crie na Google Cloud consola ou o codifique, determina os recursos que o detetor verifica, as propriedades que o detetor avalia e as informações que o detetor devolve quando é detetada uma vulnerabilidade ou uma configuração incorreta.

Pode criar módulos personalizados para qualquer recurso ou recurso que o Security Command Center suporte.

Se codificar as definições de módulos personalizados, usa expressões YAML e do Idioma de expressão comum (IEC). Se usar a Google Cloud consola para criar os seus módulos personalizados, a maior parte da programação é feita por si, embora tenha de programar as expressões CEL.

Para ver um exemplo de definição de módulo personalizado num ficheiro YAML, consulte o artigo Exemplo de definição de módulo personalizado.

Os módulos personalizados são executados juntamente com os detetores incorporados do Security Health Analytics em análises em tempo real e em lote. No modo em tempo real, as análises são acionadas sempre que a configuração de um recurso é alterada. As análises no modo de lote são executadas com todos os detetores para organizações ou projetos inscritos uma vez por dia.

Durante uma análise, cada detetor personalizado é aplicado a todos os recursos correspondentes em cada organização, pasta ou projeto para o qual está ativado.

As conclusões dos detetores personalizados são escritas no Security Command Center.

Para mais informações, consulte o seguinte:

Comparar detetores incorporados e módulos personalizados

Pode detetar elementos com módulos personalizados que não consegue detetar com os detetores do Security Health Analytics integrados. No entanto, os detetores integrados suportam determinadas funcionalidades do Security Command Center que os módulos personalizados não suportam.

Suporte de funcionalidades

Os módulos personalizados do Security Health Analytics não são suportados por simulações de caminhos de ataque, pelo que as conclusões produzidas por módulos personalizados não recebem pontuações de exposição a ataques nem caminhos de ataque.

Comparar a lógica de deteção

Como exemplo de algumas das ações que pode realizar com um módulo personalizado, compare o que o detetor incorporado PUBLIC_SQL_INSTANCE verifica com o que pode fazer com um módulo personalizado.

O detetor incorporado PUBLIC_SQL_INSTANCE verifica se a propriedade authorizedNetworks das instâncias do Cloud SQL está definida como 0.0.0.0/0. Se for, o detetor gera uma descoberta que indica que a instância do Cloud SQL está aberta ao público, porque aceita ligações de todos os endereços IP.

Com um módulo personalizado, pode implementar uma lógica de deteção mais complexa para verificar as instâncias do Cloud SQL em relação a aspetos como:

  • Endereços IP com prefixos específicos, através de carateres universais.
  • O valor da propriedade state, que pode usar para ignorar instâncias se o valor estiver definido como MAINTENANCE ou acionar resultados se o valor for algo mais.
  • O valor da propriedade region, que pode usar para acionar resultados apenas para instâncias com endereços IP públicos em regiões específicas.

Funções e autorizações de IAM necessárias

As funções da IAM determinam as ações que pode realizar com os módulos personalizados do Security Health Analytics.

A tabela seguinte contém uma lista das autorizações de módulos personalizados do Security Health Analytics necessárias, bem como as funções predefinidas da IAM que as incluem.

Pode usar a Google Cloud consola ou a API Security Command Center para aplicar estas funções ao nível da organização, da pasta ou do projeto.

Autorizações necessárias Funções
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 mais informações sobre as autorizações e as funções de IAM e como as conceder, consulte o artigo Conceda uma função de IAM através da Google Cloud consola.

Quotas de módulos personalizados

Os módulos personalizados do Security Health Analytics estão sujeitos a limites de quota.

O limite de quota predefinido para a criação de módulos personalizados é de 100, mas pode pedir um aumento da quota, se necessário.

As chamadas de API para métodos de módulos personalizados também estão sujeitas a limites de quota. A tabela seguinte mostra os limites de quota predefinidos para chamadas da API de módulos personalizados.

Tipo de chamada API Limite
CustomModules Read Requests (Get, List) 1000 chamadas API por minuto, por organização
CustomModules Write Requests (criação, atualização e eliminação) 60 chamadas de API por minuto, por organização
Pedidos de teste de módulos personalizados 12 chamadas API por minuto, por organização

Para aumentos de quotas, envie um pedido na Google Cloud consola na página Quotas.

Para mais informações sobre as quotas do Security Command Center, consulte o artigo Quotas e limites.

Tipos de recursos suportados

Access Context Manager
accesscontextmanager.googleapis.com/AccessLevel
accesscontextmanager.googleapis.com/AccessPolicy
accesscontextmanager.googleapis.com/ServicePerimeter
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
Api Keys
apikeys.googleapis.com/Key
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 Model
bigquery.googleapis.com/Model
BigQuery Table
bigquery.googleapis.com/Table
Bucket
storage.googleapis.com/Bucket
Cloud Billing Project Billing Info
cloudbilling.googleapis.com/ProjectBillingInfo
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 Autoscaling Policy
dataproc.googleapis.com/AutoscalingPolicy
Dataproc Batch
dataproc.googleapis.com/Batch
Dataproc Cluster
dataproc.googleapis.com/Cluster
Dataproc Job
dataproc.googleapis.com/Job
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
Dialogflow CX
dialogflow.googleapis.com/Agent
Disk
compute.googleapis.com/Disk
DLP Deidentify Template
dlp.googleapis.com/DeidentifyTemplate
DLP Inspect Template
dlp.googleapis.com/InspectTemplate
DLP Job
dlp.googleapis.com/DlpJob
DLP Job Trigger
dlp.googleapis.com/JobTrigger
DLP Stored Info Type
dlp.googleapis.com/StoredInfoType
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
Monitoring Notification Channel
monitoring.googleapis.com/NotificationChannel
Namespace
k8s.io/Namespace
NetApp Snapshot
netapp.googleapis.com/Snapshot
NetApp Volume
netapp.googleapis.com/Volume
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
Private CA Certificate Revocation List
privateca.googleapis.com/CertificateRevocationList
Project
cloudresourcemanager.googleapis.com/Project
Pubsub Snapshot
pubsub.googleapis.com/Snapshot
Pubsub Subscription
pubsub.googleapis.com/Subscription
Pubsub Topic
pubsub.googleapis.com/Topic
Redis Cluster
redis.googleapis.com/Cluster
Redis Instance
redis.googleapis.com/Instance
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 Backup
spanner.googleapis.com/Backup
Spanner Database
spanner.googleapis.com/Database
Spanner Instance
spanner.googleapis.com/Instance
SQL Backup Run
sqladmin.googleapis.com/BackupRun
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/Featurestore
aiplatform.googleapis.com/HyperparameterTuningJob
aiplatform.googleapis.com/Index
aiplatform.googleapis.com/MetadataStore
aiplatform.googleapis.com/Model
aiplatform.googleapis.com/SpecialistPool
aiplatform.googleapis.com/Tensorboard
aiplatform.googleapis.com/TrainingPipeline
aiplatform.googleapis.com/NotebookRuntimeTemplate
Vertex AI Workbench
notebooks.googleapis.com/Instance
VMware Engine
vmwareengine.googleapis.com/Cluster
vmwareengine.googleapis.com/ExternalAccessRule
vmwareengine.googleapis.com/ExternalAddress
vmwareengine.googleapis.com/VmwareEngineNetwork
vmwareengine.googleapis.com/NetworkPeering
vmwareengine.googleapis.com/NetworkPolicy
vmwareengine.googleapis.com/PrivateCloud
vmwareengine.googleapis.com/PrivateConnection
VPC Connector
vpcaccess.googleapis.com/Connector
VPN Gateway
compute.googleapis.com/VpnGateway
VPN Tunnel
compute.googleapis.com/VpnTunnel
Workstations
workstations.googleapis.com/Workstation
workstations.googleapis.com/WorkstationConfig

O que se segue?