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 da Análise de integridade da segurança. 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 Google Cloud recursos e as políticas especificados usando regras definidas para verificar vulnerabilidades, configurações incorretas ou violações de conformidade.

A configuração ou definição de um módulo personalizado, seja ele criado no Google Cloud console ou codificado por conta própria, determina os recursos que o detector verifica, 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 Google Cloud console para criar seus módulos personalizados, a maior parte da programação é 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

Os módulos personalizados oferecem recursos de detecção mais amplos do que os detectores integrados da Análise de integridade da segurança. No entanto, os módulos personalizados não oferecem suporte a alguns recursos do Security Command Center que os detectores integrados fornecem.

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. As descobertas produzidas por módulos personalizados não incluem 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 vai gerar 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 da Análise de integridade da segurança.

A tabela a seguir contém uma lista de permissões personalizadas do módulo Análise de integridade da segurança que são necessárias, bem como os papéis predefinidos do IAM que as incluem.

É possível usar o Google Cloud console 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 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 Google Cloud console.

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 aumentos de cota, envie uma solicitação no Google Cloud console na página Cotas.

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

Tipos de recursos compatíveis

Esta seção resume os Google Cloud tipos de recursos compatíveis com módulos personalizados.

Nome do serviço Nome do recurso
Access Context Manager accesscontextmanager.googleapis.com/AccessLevel
accesscontextmanager.googleapis.com/AccessPolicy
accesscontextmanager.googleapis.com/ServicePerimeter
Plataforma de agentes do Gemini Enterprise 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/NotebookRuntimeTemplate
aiplatform.googleapis.com/SpecialistPool
aiplatform.googleapis.com/Tensorboard
aiplatform.googleapis.com/TrainingPipeline
AlloyDB alloydb.googleapis.com/Backup
alloydb.googleapis.com/Cluster
alloydb.googleapis.com/Instance
Chaves de API apikeys.googleapis.com/Key
Repositório do Artifact Registry artifactregistry.googleapis.com/Repository
BigQuery bigquery.googleapis.com/Dataset
bigquery.googleapis.com/Model
bigquery.googleapis.com/Table
bigquerydatatransfer.googleapis.com/TransferConfig
Informações de faturamento do projeto do Cloud Billing cloudbilling.googleapis.com/ProjectBillingInfo
Cloud Run functions cloudfunctions.googleapis.com/CloudFunction
Cloud KMS cloudkms.googleapis.com/CryptoKey
cloudkms.googleapis.com/CryptoKeyVersion
cloudkms.googleapis.com/ImportJob
cloudkms.googleapis.com/KeyRing
Resource Manager cloudresourcemanager.googleapis.com/Folder
cloudresourcemanager.googleapis.com/Organization
cloudresourcemanager.googleapis.com/Project
cloudresourcemanager.googleapis.com/TagBinding
Ambiente do serviço gerenciado para Apache Airflow composer.googleapis.com/Environment
Compute Engine compute.googleapis.com/Address
compute.googleapis.com/Autoscaler
compute.googleapis.com/BackendBucket
compute.googleapis.com/BackendService
compute.googleapis.com/Commitment
compute.googleapis.com/Disk
compute.googleapis.com/Firewall
compute.googleapis.com/FirewallPolicy
compute.googleapis.com/ForwardingRule
compute.googleapis.com/GlobalForwardingRule
compute.googleapis.com/HealthCheck
compute.googleapis.com/Image
compute.googleapis.com/Instance
compute.googleapis.com/InstanceGroup
compute.googleapis.com/InstanceGroupManagers
compute.googleapis.com/InstanceTemplate
compute.googleapis.com/InterconnectAttachment
compute.googleapis.com/MachineImage
compute.googleapis.com/Network
compute.googleapis.com/NetworkEndpointGroup
compute.googleapis.com/NodeGroup
compute.googleapis.com/NodeTemplate
compute.googleapis.com/PacketMirroring
compute.googleapis.com/Project
compute.googleapis.com/RegionBackendService
compute.googleapis.com/RegionDisk
compute.googleapis.com/Reservation
compute.googleapis.com/ResourcePolicy
compute.googleapis.com/Route
compute.googleapis.com/Router
compute.googleapis.com/SecurityPolicy
compute.googleapis.com/Snapshot
compute.googleapis.com/SslCertificate
compute.googleapis.com/SslPolicy
compute.googleapis.com/Subnetwork
compute.googleapis.com/TargetHttpProxy
compute.googleapis.com/TargetHttpsProxy
compute.googleapis.com/TargetInstance
compute.googleapis.com/TargetPool
compute.googleapis.com/TargetSslProxy
compute.googleapis.com/TargetVpnGateway
compute.googleapis.com/UrlMap
compute.googleapis.com/VpnGateway
compute.googleapis.com/VpnTunnel
Google Kubernetes Engine container.googleapis.com/Cluster
container.googleapis.com/NodePool
Dataflow dataflow.googleapis.com/Job
Cloud Data Fusion datafusion.googleapis.com/Instance
Serviço gerenciado para Apache Spark dataproc.googleapis.com/AutoscalingPolicy
dataproc.googleapis.com/Batch
dataproc.googleapis.com/Cluster
dataproc.googleapis.com/Job
Datastream datastream.googleapis.com/ConnectionProfile
datastream.googleapis.com/PrivateConnection
datastream.googleapis.com/Stream
Dialogflow CX dialogflow.googleapis.com/Agent
Proteção de Dados Sensíveis dlp.googleapis.com/DeidentifyTemplate
dlp.googleapis.com/DlpJob
dlp.googleapis.com/InspectTemplate
dlp.googleapis.com/JobTrigger
dlp.googleapis.com/StoredInfoType
Cloud DNS dns.googleapis.com/ManagedZone
dns.googleapis.com/Policy
Filestore file.googleapis.com/Instance
Hub (também conhecido como frotas) gkehub.googleapis.com/Feature
gkehub.googleapis.com/Membership
IAM iam.googleapis.com/Role
iam.googleapis.com/ServiceAccountKey
Kubernetes k8s.io/Namespace
k8s.io/Node
k8s.io/Pod
k8s.io/Service
apps.k8s.io/DaemonSet
apps.k8s.io/Deployment
apps.k8s.io/ReplicaSet
apps.k8s.io/StatefulSet
batch.k8s.io/CronJob
networking.k8s.io/Ingress
networking.k8s.io/NetworkPolicy
rbac.authorization.k8s.io/ClusterRole
rbac.authorization.k8s.io/ClusterRoleBinding
rbac.authorization.k8s.io/Role
rbac.authorization.k8s.io/RoleBinding
Cloud Logging logging.googleapis.com/LogBucket
logging.googleapis.com/LogMetric
logging.googleapis.com/LogSink
Cloud Monitoring monitoring.googleapis.com/AlertPolicy
monitoring.googleapis.com/NotificationChannel
NetApp Volumes
netapp.googleapis.com/Snapshot
netapp.googleapis.com/Volume
Workbench da plataforma de agentes do Gemini Enterprise notebooks.googleapis.com/Instance
Serviço de política da organização v2 orgpolicy.googleapis.com/CustomConstraint
orgpolicy.googleapis.com/Policy
Certificate Authority Service privateca.googleapis.com/Certificate
privateca.googleapis.com/CertificateRevocationList
Pub/Sub pubsub.googleapis.com/Snapshot
pubsub.googleapis.com/Subscription
pubsub.googleapis.com/Topic
Memorystore for Redis redis.googleapis.com/Cluster
redis.googleapis.com/Instance
Cloud Run run.googleapis.com/DomainMapping
run.googleapis.com/Execution
run.googleapis.com/Job
run.googleapis.com/Revision
run.googleapis.com/Service
Secret Manager secretmanager.googleapis.com/Secret
secretmanager.googleapis.com/SecretVersion
Service Usage serviceusage.googleapis.com/Service
Spanner spanner.googleapis.com/Backup
spanner.googleapis.com/Database
spanner.googleapis.com/Instance
Cloud SQL para MySQL sqladmin.googleapis.com/BackupRun
sqladmin.googleapis.com/Instance
Cloud Storage storage.googleapis.com/Bucket
Google Cloud VMware Engine vmwareengine.googleapis.com/Cluster
vmwareengine.googleapis.com/ExternalAccessRule
vmwareengine.googleapis.com/ExternalAddress
vmwareengine.googleapis.com/NetworkPeering
vmwareengine.googleapis.com/NetworkPolicy
vmwareengine.googleapis.com/PrivateCloud
vmwareengine.googleapis.com/PrivateConnection
vmwareengine.googleapis.com/VmwareEngineNetwork
Conector de VPC vpcaccess.googleapis.com/Connector
Cloud Workstations workstations.googleapis.com/Workstation
workstations.googleapis.com/WorkstationConfig

A seguir