Visão geral dos módulos personalizados para o Security Health Analytics

Nesta página, você terá uma visão geral dos módulos personalizados do Security Health Analytics. Para informações sobre módulos integrados, consulte Detectores integrados da Análise de integridade da segurança.

Com os módulos personalizados, é possível ampliar os recursos de detecção do Security Health Analytics criando detectores personalizados que verificam os recursos e as políticas do Google Cloud especificados usando regras que você define para verificar vulnerabilidades, configurações incorretas ou conformidade. violações.

A configuração ou definição de um módulo personalizado, seja ele criado no console do Google Cloud ou codificado por conta própria, determina os recursos verificados pelo detector, as propriedades que o detector avalia e as informações que o detector retorna quando uma vulnerabilidade ou configuração incorreta é detectada.

É possível criar módulos personalizados para qualquer recurso que seja compatível com o Security Command Center.

Se você codificar definições de módulo personalizadas, poderá usar expressões YAML e Common Expression Language (CEL). Se você usar o console do Google Cloud para criar seus módulos personalizados, a maior parte da programação será feita para você, embora seja necessário codificar as expressões CEL.

Para ver um exemplo de definição de módulo personalizado em um arquivo YAML, consulte Exemplo de definição de módulo personalizado.

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

Durante uma verificação, cada detector personalizado é aplicado a todos os recursos correspondentes em cada organização, pasta ou projeto em que está ativado.

As descobertas dos detectores personalizados são gravadas no Security Command Center.

Para ver mais informações, consulte os seguintes tópicos:

Comparação de detectores integrados e módulos personalizados

Você pode detectar itens com módulos personalizados que não podem ser detectados com os detectores integrados da Análise de integridade da segurança. No entanto, os detectores integrados são compatíveis com determinados recursos do Security Command Center que não são compatíveis com os módulos personalizados.

Suporte a recursos

Os módulos personalizados da Análise de integridade da segurança não são compatíveis com simulações de caminho de ataque. Portanto, as descobertas produzidas por módulos personalizados não recebem pontuações de exposição a ataques ou caminhos de ataque.

Como comparar a lógica de detecção

Como exemplo de algumas das coisas que você pode fazer com um módulo personalizado, compare o que o detector integrado PUBLIC_SQL_INSTANCE verifica com o que você pode fazer com um módulo personalizado.

O detector integrado 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 detector emitirá uma descoberta que declara que a instância do Cloud SQL está aberta ao público, porque aceita conexões de todos os endereços IP.

Com um módulo personalizado, é possível implementar uma lógica de detecção mais complexa para verificar instâncias do Cloud SQL para coisas como:

  • Endereços IP com prefixos específicos, usando caracteres curinga.
  • O valor da propriedade state, que pode ser usado para ignorar instâncias se o valor for definido como MAINTENANCE ou acionar descobertas se o valor for outro.
  • O valor da propriedade region, que pode ser usado para acionar descobertas apenas para instâncias com endereços IP públicos em regiões específicas.

Permissões e papéis do IAM necessários

Os papéis do IAM determinam as ações que podem ser realizadas com os módulos personalizados do Security Health Analytics.

A tabela a seguir contém uma lista de permissões personalizadas do módulo Security Health Analytics e os papéis predefinidos do IAM que as incluem. Essas permissões são válidas até pelo menos 22 de janeiro de 2024. Depois dessa data, as permissões listadas na segunda tabela a seguir serão necessárias.

É possível usar o console do Google Cloud ou a API Security Command Center para aplicar esses papéis no nível da organização, da pasta ou do projeto.

Permissões necessárias antes de 22 de janeiro de 2024 Papéis
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

A tabela a seguir contém uma lista de permissões personalizadas do módulo Security Health Analytics que serão necessárias a partir de 22 de janeiro de 2024, bem como os papéis predefinidos do IAM que as incluem.

É possível usar o console do Google Cloud ou a API Security Command Center para aplicar esses papéis no nível da organização, da pasta ou do projeto.

Permissões necessárias a partir de 22 de janeiro de 2024 Papéis
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 permissões e papéis do IAM e como concedê-los, consulte Conceder um papel do IAM usando o console do Google Cloud.

Cotas do módulo personalizado

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

O limite de cota padrão para a criação de módulos personalizados é de 100, mas você pode solicitar um aumento de cota, se necessário.

As chamadas de API para métodos de módulo personalizados também estão sujeitas a limites de cota. A tabela a seguir mostra os limites de cota padrão para chamadas de API do módulo personalizado.

Tipo de chamada de API Limite
Solicitações de leitura de CustomModules (encontrar, listar) 1.000 chamadas de API por minuto e organização.
Solicitações de gravação de CustomModules (criar, atualizar e excluir) 60 chamadas de API por minuto e organização.
Solicitações de teste de CustomModules 12 chamadas de API por minuto e organização.

Para aumentar a cota, envie uma solicitação no console do Google Cloud na página Cotas.

Para mais informações sobre as cotas do Security Command Center, consulte Cotas e limites.

Tipos de recursos compatíveis

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

A seguir