Neste documento, você aprenderá a identificar Google Cloud produtos e estratégias de mitigação para se proteger contra ataques comuns no nível do aplicativo descritos nos 10 principais da OWASP (em inglês). OWASP Top 10 é uma lista da Open Web Application Security (OWASP) Foundation (em inglês) com os 10 principais riscos de segurança que todo proprietário de aplicativo precisa conhecer. Ainda que nenhum produto de segurança possa garantir proteção total contra esses riscos, aplicar esses produtos e serviços quando faz sentido na sua arquitetura pode contribuir para uma solução de segurança de várias camadas.
A infraestrutura do Google foi projetada para ajudar você a criar, implantar e operar serviços de maneira segura. A segurança física e operacional, a criptografia de dados em repouso e em trânsito e muitos outros atributos importantes de uma infraestrutura segura são gerenciados pelo Google. Você herda esses benefícios implantando seus aplicativos no Google Cloud, mas talvez seja necessário tomar outras medidas para proteger seu aplicativo contra ataques específicos.
As estratégias de mitigação listadas neste documento são classificadas pelo risco de segurança do aplicativo e pelo produto Google Cloud . Muitos produtos desempenham um papel na criação de uma estratégia de defesa em profundidade contra riscos de segurança na Web. Neste documento, fornecemos informações sobre como outros produtos podem reduzir os 10 principais riscos da OWASP, mas fornecemos mais detalhes sobre como o Google Cloud Armor e a Apigee podem reduzir uma grande variedade desses riscos. O Google Cloud Armor, atuando como um firewall de aplicativos da Web (WAF, na sigla em inglês), e a Apigee, como um gateway de API, pode ser especialmente útil no bloqueio de diferentes tipos de ataques. Esses produtos estão no caminho de tráfego da Internet e podem bloquear o tráfego externo antes de chegar aos seus aplicativos no Google Cloud.
Visão geral do produto
Os produtos Google Cloud listados na tabela a seguir podem ajudar na proteção contra os 10 principais riscos de segurança:
Produto | Resumo | A01 | A02 | A03 | A04 | A05 | A06 | A07 | A08 | A09 | A10 |
---|---|---|---|---|---|---|---|---|---|---|---|
Transparência no acesso | Expanda a visibilidade e o controle sobre seu provedor de nuvem com registros de acesso de administrador e controles de aprovação. | ✓ | ✓ | ||||||||
Apigee | Projete, proteja e escalone interfaces de programação de aplicativos | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Artifact Registry | Armazena artefatos e dependências de builds de maneira centralizada. | ✓ | |||||||||
Autorização binária | Garanta que apenas imagens de contêiner confiáveis sejam implantadas no Google Kubernetes Engine. | ✓ | ✓ | ||||||||
Inventário de recursos do Cloud | Confira, monitore e analise todos os seus recursos do Google Cloud e do Google Distributed Cloud ou de várias nuvens em projetos e serviços | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Build | Cria, testa e implanta no Google Cloud | ✓ | |||||||||
Cloud Key Management Service | Gerenciar chaves de criptografia no Google Cloud | ✓ | ✓ | ||||||||
Cloud Load Balancing | Controle quais criptografias o proxy SSL ou balanceador de carga HTTPS negocia | ✓ | ✓ | ✓ | ✓ | ||||||
Cloud Logging | Gerenciamento e análise de registros em larga escala e em tempo real. | ✓ | |||||||||
Cloud Monitoring | Colete e analise métricas, eventos e metadados dos serviços Google Cloud e de uma ampla variedade de aplicativos e serviços de terceiros. | ✓ | |||||||||
Cloud Source Repositories | Armazene, gerencie e acompanhe o código em um único lugar para sua equipe | ✓ | |||||||||
Google Cloud Armor | Um firewall de aplicativos da Web (WAF) implantado na borda da rede do Google para ajudar a se defender contra vetores de ataque comuns | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
Google Security Operations | Localiza ameaças automaticamente, em tempo real e em escala usando a infraestrutura, as técnicas de detecção e os sinais do Google | ✓ | |||||||||
Identity Platform | Adicionar recursos de gerenciamento de identidade e acesso a aplicativos, proteger contas de usuários e dimensionar o gerenciamento de identidade | ✓ | ✓ | ||||||||
Identity-Aware Proxy (IAP) | Use identidade e contexto para proteger o acesso a seus aplicativos e VMs. | ✓ | ✓ | ✓ | |||||||
reCAPTCHA | Ajude a proteger seu site contra atividades fraudulentas, spam e abuso | ✓ | |||||||||
Secret Manager | Armazene chaves de API, senhas, certificados e outros dados confidenciais. | ✓ | ✓ | ||||||||
Security Command Center | Visibilidade centralizada para análise de segurança e inteligência contra ameaças para ajudar a identificar vulnerabilidades nos seus aplicativos | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Proteção de Dados Sensíveis | Descubra, classifique e proteja seus dados mais confidenciais | ✓ | ✓ | ✓ | |||||||
Chaves de segurança Titan | Ajude a proteger usuários de alto valor com dispositivos de 2FA resistentes a phishing criados com um chip de hardware com firmware criado pelo Google para verificar a integridade da chave. | ✓ | |||||||||
Firewalls de nuvem privada virtual | Permitem ou recusam conexões que entram ou saem das instâncias de máquina virtual (VM). | ✓ | |||||||||
VirusTotal | Analise arquivos e URLs suspeitos para detectar tipos de malware. Compartilhe-os automaticamente com a comunidade de segurança | ✓ | ✓ | ||||||||
VPC Service Controls | Isole recursos de serviços Google Cloud multilocatários para mitigar riscos de exfiltração de dados | ✓ | ✓ | ||||||||
Google Cloud boletins de segurança | Os boletins de segurança mais recentes relacionados aos produtos Google Cloud | ✓ |
A01: controle de acesso corrompido
Controle de acesso corrompido se refere a controles de acesso que são apenas parcialmente aplicados no lado do cliente ou fracamente implementados. A mitigação desses controles geralmente requer uma regravação no lado do aplicativo para garantir que os recursos sejam acessados corretamente por usuários autorizados.
Apigee
Caso de uso:
- Aplicação do controle de acesso
- Limitar a manipulação de dados
A Apigee é compatível com uma abordagem em camadas para implementar controles de acesso e evitar que os usuários mal-intencionados façam alterações não autorizadas ou acessem o sistema.
Configure o controle de acesso baseado em função (RBAC) para permitir que os usuários acessem apenas os recursos e a configuração necessários. Crie mapas de chave-valor criptografados para armazenar pares de chave-valor sensíveis, que aparecem mascarados na interface do Edge e nas chamadas da API Management. Configure o logon único com o provedor de identidade da sua empresa.
Configure portais do desenvolvedor para mostrar produtos de API específicos de acordo com o papel do usuário. Configure o portal para mostrar ou ocultar conteúdo com base no papel do usuário.
Inventário de recursos do Cloud
Caso de uso:
- Monitorar a TI não autorizada (também conhecida como shadow IT)
- Instâncias de computação desatualizadas
Um dos vetores mais comuns para exposição de dados é a infraestrutura de TI órfã ou não autorizada. Configure notificações em tempo real para alertar sobre recursos em execução inesperados, que podem ser protegidos incorretamente ou usar software desatualizado.
Cloud Load Balancing
Caso de uso:
- Controle detalhado de criptografia SSL e TLS
Impeça o uso de criptografias SSL ou TLS fracas, atribuindo um grupo predefinido ou uma lista personalizada de criptografias que o Cloud Load Balancing possa usar.
Google Cloud Armor
Caso de uso:
- Filtrar solicitações de origem cruzada
- Filtrar ataques de inclusão de arquivo local ou remoto
- Filtrar ataques de poluição do parâmetro HTTP
Muitos casos de controle de acesso corrompido não podem ser atenuados com o uso de um firewall de aplicativos da Web, porque os aplicativos não exigem ou não verificam corretamente os tokens de acesso a cada solicitação, e os dados podem ser manipulados no lado do cliente. Vários desafios do Juice Shop relacionados ao controle de acesso corrompido. Por exemplo, a postagem de feedback no nome de outro usuário usa o fato de que algumas solicitações não são autenticadas no lado do servidor. Como é possível ver na solução de desafio, a exploração dessa vulnerabilidade é completamente do lado do cliente e, portanto, não pode ser atenuada com o Google Cloud Armor.
Alguns desafios podem ser parcialmente mitigados no lado do servidor se o aplicativo não puder ser corrigido imediatamente.
Por exemplo, se ataques de falsificação de solicitações entre sites (CSRF) forem possíveis porque o servidor da Web implementa mal o compartilhamento de recursos entre origens (CORS, na sigla em inglês), como demonstrado no desafio do Juice Shop CSRF, é possível atenuar esse problema bloqueando solicitações de origens inesperadas com uma regra personalizada. A regra a seguir corresponde a todas as solicitações com origens diferentes de example.com e google.com:
has(request.headers['origin']) &&
!((request.headers['origin'] == 'https://example.com')||
(request.headers['origin'] == 'https://google.com') )
Quando o tráfego que corresponde a essa regra é negado, a solução do desafio CSRF deixa de funcionar.
O
desafio de manipulação da cesta de compras
usa a
poluição de parâmetros HTTP (HPP, na sigla em inglês)
para mostrar como atacar a loja na
solução do desafio.
A HPP é detectada como parte do conjunto de regras do ataque de protocolo. Para ajudar a bloquear esse tipo de ataque, use a seguinte regra:
evaluatePreconfiguredExpr('protocolattack-stable')
.
Identity-Aware Proxy e acesso baseado no contexto
Caso de uso:
- Controle de acesso centralizado
- Funciona na nuvem e no local
- Protege conexões HTTP e TCP
- Acesso baseado no contexto
Com o IAP, é possível usar identidade e contexto para formar um bloqueio de autenticação e autorização seguros para seu aplicativo. Evite autorização inválida ou controle de acesso ao aplicativo voltado ao público com um sistema de autenticação e autorização gerenciado centralmente criado no Cloud Identity e no IAM.
Aplique controles de acesso granulares a aplicativos da Web, VMs, Google Cloud APIs e aplicativos do Google Workspace com base na identidade do usuário e no contexto da solicitação sem a necessidade de uma VPN convencional. Use uma única plataforma para aplicativos de nuvem e aplicativos locais e recursos de infraestrutura.
Security Command Center
O Security Command Center inclui dois serviços que ajudam a resolver problemas de controles de acesso: o Security Health Analytics e o Web Security Scanner.
A Análise de integridade da segurança é compatível com os seguintes casos de uso:
- Aplicação de autenticação multifator (MFA) ou autenticação de dois fatores
- Proteção de chave de API
- Monitoramento de políticas de SSL
O Security Health Analytics ajuda a evitar o controle de acesso corrompido monitorando a conformidade da autenticação multifator, a política de SSL e a integridade das suas chaves de API.
O Web Security Scanner é compatível com os seguintes casos de uso:
- Repositórios expostos ao público
- Validação não segura de cabeçalho de solicitação
O Web Security Scanner verifica se há vulnerabilidades nos aplicativos da Web, como repositórios de código visíveis publicamente e validação incorreta dos cabeçalhos da solicitação.
A02: falhas criptográficas
As falhas criptográficas podem acontecer devido à falta de criptografia, a uma criptografia fraca em trânsito ou a dados sensíveis expostos acidentalmente. Os ataques a essas vulnerabilidades geralmente são específicos do aplicativo. Portanto, ele precisa de uma abordagem de defesa profunda para mitigar.
Apigee
Caso de uso:
- Proteja os dados confidenciais
Use o TLS unidirecional e bidirecional para proteger informações confidenciais no nível do protocolo.
Use políticas como Política de atribuição de mensagem e Política de JavaScript para remover dados sensíveis antes que eles sejam retornados ao cliente.
Use técnicas padronizadas do OAuth e considere adicionar HMAC, hash, estado, nonce, PKCE ou outras técnicas para melhorar o nível de autenticação de cada solicitação.
Mascarar dados sensíveis na ferramenta Edge Trace.
Criptografe dados confidenciais em repouso em mapas de chave-valor.
Inventário de recursos do Cloud
Caso de uso:
- SearchService
- Analisador de acesso
Um dos vetores mais comuns para exposição de dados é a infraestrutura de TI órfã ou não autorizada. Para identificar os servidores que ninguém está mantendo e os buckets com regras de compartilhamento excessivamente amplas, analise os dados de série temporal do recurso da nuvem.
Configure notificações em tempo real para alertar sobre provisionamento inesperado de recursos que podem estar protegidos de forma inadequada ou não autorizados.
API Cloud Data Loss Prevention (parte da Proteção de dados sensíveis)
Caso de uso:
- Descoberta e classificação de dados confidenciais
- Mascaramento automático de dados
A API Cloud Data Loss Prevention (API DLP) permite verificar dados sensíveis armazenados em buckets ou bancos de dados para prevenir vazamentos indesejados de informações. Se os dados não permitidos forem identificados, eles poderão ser sinalizados ou editados automaticamente.
Cloud Key Management Service
Caso de uso:
- Gerenciamento seguro de chaves criptográficas
O (Cloud KMS) ajuda a evitar possíveis exposições das chaves criptográficas. Use esse serviço de gerenciamento de chaves hospedado na nuvem para gerenciar chaves criptográficas simétricas e assimétricas nos serviços em nuvem da mesma forma que você faz no local. É possível gerar, usar, alternar e destruir chaves criptográficas AES256, RSA 2048, RSA 3072, RSA 4096, EC P256 e EC P384.
Cloud Load Balancing
Caso de uso:
- Controle detalhado de criptografia SSL e TLS
As políticas de SSL ajudam a evitar a exposição de dados confidenciais, dando a você controle sobre os recursos e as criptografias SSL e TLS permitidos em um balanceador de carga. Bloqueie criptografias não aprovadas ou não seguras, conforme necessário.
Google Cloud Armor
Caso de uso:
- Filtrar URLs de ataques conhecidos
- Restringir o acesso a endpoints confidenciais
Em geral, a exposição de dados confidenciais precisa ser interrompida na origem, mas como todo ataque é específico do aplicativo, os firewalls de aplicativos da Web só podem ser usados de maneira limitada para impedir amplamente a exposição dos dados. No entanto, se não for possível aplicar patches ao aplicativo imediatamente, restrinja o acesso a endpoints vulneráveis ou padrões de solicitação usando as regras personalizadas do Google Cloud Armor.
Por exemplo, vários desafios do Juice Shop sobre exposição a dados sensíveis podem ser explorados devido à travessia de diretórios insegura e ataques de injeção de bytes nulos. É possível mitigar essas injeções verificando as strings no URL com a seguinte expressão personalizada:
request.path.contains("%00") || request.path.contains("%2500")
É possível
resolver
o
desafio das métricas expostas
acessando o subdiretório /metrics
que é usado pelo Prometheus.
Se você tiver um endpoint confidencial que está exposto e não puder remover o acesso
imediatamente, é possível restringir o acesso a ele excetuando intervalos de endereços IP específicos. Use
uma regra semelhante à seguinte expressão personalizada:
request.path.contains("/metrics") && !(inIpRange(origin.ip, '1.2.3.4/32')
Substitua 1.2.3.4/32
pelo intervalo de
endereços IP que precisa ter acesso à interface das métricas.
Os arquivos de registros expostos acidentalmente
são usados para resolver um dos desafios do Juice Shop. Para evitar a exposição de registros, defina
uma regra que bloqueie totalmente o acesso aos arquivos de registros:
request.path.endsWith(".log")
.
Identity-Aware Proxy e acesso baseado no contexto
Caso de uso:
- Acesso remoto seguro a serviços confidenciais
- Controle de acesso centralizado
- Acesso baseado no contexto
Use identidade e contexto para formar uma autenticação e autorização seguras em torno de seu aplicativo. Implante ferramentas, como relatórios internos de bugs, base de conhecimento corporativa ou e-mail por trás do IAP, para permitir o acesso baseado no contexto somente a pessoas autorizadas em qualquer lugar da Internet.
Com o acesso baseado no contexto, é possível aplicar controles de acesso granulares a aplicativos da Web, máquinas virtuais (VMs), Google Cloud APIs e aplicativos do Google Workspace com base na identidade de um usuário e no contexto da solicitação sem uma VPN convencional. Com base no modelo de segurança de confiança zero e na implementação do BeyondCorp do Google, o acesso baseado no contexto permite que você forneça acesso aos usuários, aplique controles granulares e use uma única plataforma para sua nuvem e nos aplicativos locais e recursos de infraestrutura.
Secret Manager
Caso de uso:
- Chaves de criptografia
- Chaves de API
- Outras credenciais do sistema
O Secret Manager é um serviço de armazenamento seguro para os dados mais valiosos, como chaves de API, senhas de contas de serviço e recursos criptográficos. O armazenamento central desses segredos permite que você confie nos sistemas de autenticação e autorização do Google Cloud, incluindo o IAM, para determinar se alguma solicitação de acesso é válida.
O Secret Manager não foi projetado para operações em grande escala, como tokenização de cartões de crédito ou armazenamento de senha de usuário individual. Esses aplicativos precisam depender do Identity Platform para o gerenciamento de identidade e acesso do cliente (CIAM), do Cloud Identity para os membros da organização ou de um software de tokenização dedicado.
Security Command Center
O Security Command Center inclui dois serviços que ajudam a resolver falhas criptográficas: Security Health Analytics e Web Security Scanner.
A Análise de integridade da segurança é compatível com os seguintes casos de uso:
- Aplicação de MFA/2FA
- Proteção de chave de API
- Aplicação de rotação de chaves de API
- Privacidade de imagem do Compute
- Aplicação da regra de chave SSH
- Monitoramento da inicialização segura
- Segurança de acesso à API
- Monitoramento de políticas de SSL
- Geração de registros desativada
- Alertas de ACL de bucket público
O Security Health Analytics ajuda a evitar a exposição de dados confidenciais monitorando a conformidade com a autenticação multifator e a integridade das chaves de API. Receba alertas de configurações não seguras no armazenamento de imagens de contêiner, Cloud Storage, política de SSL, política de chave SSH, geração de registros, acesso à API e muito mais.
O Web Security Scanner é compatível com o seguinte caso de uso:
- Senhas não criptografadas transmitidas pela rede
O Web Security Scanner verifica seus aplicativos
da Web e relata os resultados de erros e vulnerabilidades. Se o
aplicativo transmitir senhas em texto não
criptografado,
o Web Security Scanner vai gerar uma descoberta CLEAR_TEXT_PASSWORD
.
VirusTotal
Caso de uso:
- Prevenção contra phishing
O VirusTotal permite que você verifique URLs de conteúdo malicioso antes de apresentá-los aos seus usuários ou funcionários, sejam eles encontrados na entrada do usuário, e-mails, bate-papo, registros ou outros locais.
VPC Service Controls
Caso de uso:
- Firewall para serviços gerenciados
Encapsule serviços gerenciados em um firewall para controlar quem pode chamar o serviço e a quem ele pode responder. Bloqueie a saída não autorizada e a exfiltração de dados com regras de perímetro de saída em serviços como o Cloud Run. Impeça solicitações de usuários e locais não autorizados para armazenamentos e bancos de dados gerenciados. Crie perímetros seguros em torno de APIs avançadas ou potencialmente caras.
Scanner de aplicativos da Web
Caso de uso:
- Leitor de risco de segurança para aplicativos da Web
- Leitor de disponibilidade do repositório de origem
Para impedir que seu aplicativo da Web exponha dados confidenciais, certifique-se de que as senhas não sejam enviadas em texto simples. Evite vazar código-fonte bruto potencialmente destrutivo verificando repositórios de código-fonte expostos do git e do Apache Subversion. Essas verificações são projetadas para abranger os 10 principais controles da OWASP.
A03: injeção
Falhas de injeção, como injeção de SQL, NoSQL, SO e LDAP, ocorrem quando dados não confiáveis são enviados para um intérprete como parte de um comando ou consulta. Os dados hostis do invasor podem induzir o intérprete a executar comandos indesejados ou acessar dados sem a autorização adequada. Recomendamos que os dados do usuário sejam limpos ou filtrados pelo aplicativo antes de serem enviados a um intérprete.
As seções a seguir discutem os produtos Google Cloud que podem ajudar a reduzir esse risco.
Apigee
Caso de uso:
- Bloqueio de injeção SQL
- Bloqueio de injeção NoSQL
- Bloqueio de injeção LDAP
- Bloqueio de injeção de JavaScript
A Apigee fornece várias políticas de validação de entradas para verificar se os valores fornecidos por um cliente correspondem às suas expectativas configuradas antes de permitir um processamento adicional das políticas ou regras. A Apigee, como um gateway para as solicitações de API recebidas, executa uma verificação de limite para garantir que a estrutura do payload esteja dentro de um intervalo aceitável. É possível configurar um proxy de API para que a rotina de validação de entrada transforme a entrada para remover sequências de caracteres arriscadas e, em seguida, substituí-las por valores seguros.
Há várias abordagens para validar a entrada com a plataforma Apigee:
- JSONThreatProtection verifica o payload JSON quanto a ameaças.
- XMLThreatProtection verifica o payload XML quanto a ameaças.
- O JavaScript valida parâmetros e cabeçalhos.
- A política RegularExpressionProtection manipula injeções de código SQL.
- A
política
OASValidation
valida uma mensagem recebida ou uma solicitação em uma especificação OpenAPI (JSON ou YAML). - A
política
SOAPMessageValidation
valida qualquer mensagem XML nos esquemas XSD e também pode validar mensagens SOAP em uma definição WSDL.
Google Cloud Armor
Caso de uso:
- Filtragem de injeção de SQL
- Filtragem de injeção de PHP
O Google Cloud Armor pode bloquear ataques comuns de injeção antes que eles cheguem ao seu
aplicativo. Para a injeção de SQL (SQLi), o Google Cloud Armor tem um
conjunto de regras predefinidas que
é baseado no
Conjunto de regras principais do OWASP Modsecurity. É possível
criar políticas de segurança
que
bloqueiam ataques SQLi comuns
definidas no conjunto de regras principais usando a
regra evaluatePreconfiguredExpr('sqli-stable')
sozinha ou em
conjunto com outras regras personalizadas. Por exemplo, é possível limitar o bloqueio de SQLi a
aplicativos específicos usando um
filtro de caminho do URL.
Para injeção por PHP, existe outro
conjunto de regras pré-configuradas. É possível usar a regra evaluatePreconfiguredExpr('php-stable')
para bloquear ataques comuns de injeção de PHP.
Dependendo do seu aplicativo, ativar as expressões pré-configuradas pode levar a alguns falsos positivos, porque algumas das regras no conjunto de regras são bastante confidenciais. Para mais informações, consulte Solução de problemas com falsos positivos e como ajustar o conjunto de regras para diferentes níveis de sensibilidade.
Para ataques de injeção diferentes de SQL ou PHP, crie regras personalizadas para bloquear solicitações quando palavras-chave ou padrões de escape específicos nesses protocolos forem usados no caminho da solicitação ou consulta. Verifique se esses padrões não aparecem em solicitações válidas. Também é possível limitar essas regras apenas para uso em endpoints ou caminhos específicos que possam interpretar os dados transmitidos a elas.
Além disso, alguns ataques de injeção podem ser atenuados usando as regras pré-configuradas para execução de código remoto e injeção de arquivo remota.
Security Command Center
O Security Command Center inclui dois serviços que ajudam a resolver falhas de injeção: o Container Threat Detection e o Web Security Scanner.
O Container Threat Detection é compatível com os seguintes casos de uso:
- Detecção de script malicioso
- Detecção de shell reverso
- Detecção de instalação de malware
O detector Malicious Script
Executed
da
Detecção de ameaças a contêineres
analisa cada script de shell executado no sistema e informa aqueles que parecem
maliciosos. Esse detector permite descobrir ataques de injeção de comando do shell.
Após a injeção de comando do shell, um invasor pode gerar um shell
reverso, que aciona o detector
Reverse
Shell
. Como alternativa, é possível instalar malware, o que aciona os detectores
Added
Binary
Executed
e
Added Library
Loaded
.
O Web Security Scanner é compatível com os seguintes casos de uso:
- Monitoramento para scripting em vários locais
- Monitoramento para injeção de SQL
O Web Security Scanner verifica se há vulnerabilidades nos aplicativos da Web e fornece detectores que monitoram ataques de scripting em vários locais e de injeção de SQL.
A04: design não seguro
O design não seguro ocorre quando as organizações não implementam meios para avaliar e enfrentar ameaças durante o ciclo de vida de desenvolvimento. A modelagem de ameaças, quando feita no início das fases de design e refinamento e também durante as fases de desenvolvimento e teste, ajuda as organizações a analisar suposições e falhas. Para proteger o design, é fundamental que exista uma cultura de aprender com os erros e não apontar culpados.
Apigee
Casos de uso:
- Validação de entrada
- Controles de acesso
- Gerenciamento de falhas
- Políticas de proteção de conteúdo
- Gerenciamento de senha
A Apigee permite validar solicitações e respostas de entrada para seu aplicativo usando a política OASValidation. Além disso, para proteger o acesso, você pode configurar o logon único (SSO), o controle de acesso baseado em papéis (RBAC), limitar o acesso a APIs (por exemplo, usando o Auth0) e restringir os endereços IP que têm acesso ao seu ambiente. Usando regras de gerenciamento de falhas, é possível personalizar como o proxy de API reage aos erros.
Para proteger os usuários globais contra senhas inseguras, a Apigee oferece as opções de expiração, bloqueio e redefinição de senha. Além disso, é possível ativar a autenticação de dois fatores (2FA).
API Cloud Data Loss Prevention (parte da Proteção de dados sensíveis)
Caso de uso:
- Identificar e editar dados confidenciais
Com a API Cloud Data Loss Prevention, é possível identificar e tokenizar dados confidenciais. A API DLP ajuda a limitar a exposição de dados confidenciais, porque, depois da tokenização e do armazenamento dos dados, é possível definir controles de acesso para restringir quem pode ver os dados. Para mais informações, consulte Como automatizar a classificação de dados enviados para o Cloud Storage e Desidentificação e reidentificação de PII em conjuntos de dados de grande escala usando a proteção de dados sensíveis.
Secret Manager
Caso de uso:
- Proteger o armazenamento de credenciais
O Secret Manager permite que aplicativos e pipelines acessem os valores dos secrets nomeados com base nas permissões concedidas com o IAM. Ele também fornece acesso programático aos secrets para que os processos automatizados possam acessar os valores dos secrets. Quando ativado, cada interação com o Secret Manager fornece uma trilha de auditoria. Use essas trilhas de auditoria para ajudar nos casos de análise forense e conformidade.
Security Command Center
O serviço do Web Security Scanner que faz parte do Security Command Center oferece suporte ao seguinte caso de uso:
- Identifique vulnerabilidades de segurança nos seus aplicativos.
O Web Security Scanner
verifica os aplicativos da Web em busca de vulnerabilidades. Ele segue links e tenta
acionar o máximo possível de entradas do usuário e manipuladores de eventos. O detector
CACHEABLE_PASSWORD_INPUT
gera uma
descoberta se as senhas digitadas no aplicativo da Web puderem ser armazenadas em um cache de navegador
comum em vez de um armazenamento de senha seguro.
A05: configuração incorreta de segurança
Configuração incorreta de segurança se refere a falhas de aplicativo não corrigidas, contas padrão abertas e arquivos e diretórios desprotegidos que normalmente podem ser evitados com o aumento da proteção do aplicativo. A configuração incorreta de segurança pode acontecer de várias maneiras, como confiar em configurações padrão, criar configurações parciais que podem ser inseguras, permitir que mensagens de erro contenham detalhes confidenciais, armazenar dados na nuvem sem controles de segurança adequados ou configurar incorretamente. cabeçalhos HTTP.
Apigee
Caso de uso:
- Gerenciar configurações de segurança
- Monitorar configurações de segurança
Um fluxo compartilhado permite que os desenvolvedores de API combinem políticas e recursos em um grupo reutilizável. Ao capturar políticas e recursos reutilizáveis em um só lugar, um fluxo compartilhado ajuda a garantir a consistência, encurtar o tempo de desenvolvimento e gerenciar o código. É possível incluir um fluxo compartilhado em proxies de API individuais usando uma política FlowCallout ou inserir fluxos compartilhados em hooks de fluxo para executar automaticamente a lógica de fluxo compartilhado para cada proxy de API implantado no mesmo ambiente.
Inventário de recursos do Cloud
Caso de uso:
- Serviço de notificação em tempo real
As notificações em tempo real podem alertar você sobre o provisionamento inesperado de recursos que podem estar protegidos de forma inadequada ou não autorizados.
Cloud Load Balancing
Caso de uso:
- Controle detalhado de criptografia SSL e TLS
Impeça o uso de criptografias SSL ou TLS vulneráveis conhecidas atribuindo um grupo predefinido ou uma lista personalizada de criptografias que podem ser usadas por um balanceador de carga.
Google Cloud Armor
Caso de uso:
- Filtrar endpoints não seguros
- Filtrar ataques de inclusão de arquivo local ou remoto
- Filtrar ataques de protocolo
Como a configuração incorreta de segurança pode ocorrer no nível do aplicativo, a OWASP Foundation recomenda que você proteja e corrija seu aplicativo diretamente e remova todos os recursos desnecessários.
Um firewall de aplicativos da Web (WAF), como o Google Cloud Armor, não pode ajudar a corrigir a configuração incorreta, mas é possível bloquear o acesso a partes do aplicativo totalmente ou para todos, exceto para endereços IP específicos ou países. Restringir o acesso pode reduzir o risco de exploração incorreta dessas configurações.
Por exemplo, se o aplicativo expõe uma interface administrativa usando um
URL comum, como /admin
, é possível restringir o acesso a essa interface mesmo que
ela esteja autenticada. É possível fazer isso com uma regra de negação, por exemplo:
request.path.contains("/admin") && !(inIpRange(origin.ip, '1.2.3.4/32')
Substitua 1.2.3.4/32
pelo intervalo de endereços IP
que precisa ter acesso à interface do administrador.
Algumas configurações incorretas podem ser parcialmente atenuadas usando os conjuntos de regras de inclusão de arquivos local
ou inclusão de arquivos remota (RFI, na sigla em inglês) predefinidos. Por exemplo,
a exploração do desafio de
imagiologia entre sites
do Juice Shop não é bem-sucedida quando o conjunto de regras LFI é aplicado. Use a
regra evaluatePreconfiguredExpr('lfi-stable') ||
evaluatePreconfiguredExpr('rfi-stable')
para bloquear solicitações usando os conjuntos de regras de LFI
e RFI e
ajuste as regras
conforme necessário. É possível verificar se a
solução do desafio
não será mais bem-sucedida.
Alguns ataques HTTP também podem ser reduzidos com o uso de conjuntos de regras pré-configurados:
- Para evitar
violação de verbo HTTP,
use o conjunto de regras de aplicação do método. Use a
regra
evaluatePreconfiguredExpr('methodenforcement-stable')
para proibir métodos de solicitação HTTP diferentes dos métodosGET
,HEAD
,POST
eOPTIONS
. - Para bloquear ataques comuns de análise e proxies HTTP, como
tráfego de solicitação HTTP,
divisão de resposta HTTP
e
injeção de cabeçalho HTTP,
use o conjunto de regras de ataque do protocolo usando a
regra
evaluatePreconfiguredExpr('protocolattack-stable')
.
Security Command Center
O Security Command Center inclui dois serviços que ajudam a resolver falhas de configuração de segurança: o Security Health Analytics e o Web Security Scanner.
A Análise de integridade da segurança é compatível com o seguinte caso de uso:
- Monitoramento e alertas de controle de segurança
A Análise de integridade da segurança monitora vários indicadores por meio de uma única interface para garantir que o aplicativo mantenha as práticas recomendadas de segurança.
O Web Security Scanner é compatível com os seguintes casos de uso:
- Scanner de aplicativos da Web personalizado para os 10 principais da OWASP
- Erros de configuração do servidor HTTP
- Conteúdo HTTP/HTTPS misto
- Entidade externa XML (XXE)
O Web Security Scanner monitora erros comuns de segurança, como incompatibilidades de tipo de conteúdo, cabeçalhos de segurança inválidos e exibição de conteúdo misto. O Web Security Scanner também monitora vulnerabilidades, como vulnerabilidades do XXE. Essas verificações são projetadas para abranger os 10 principais controles da OWASP. Os seguintes detectores verificam configurações incorretas de segurança:
INVALID_CONTENT_TYPE
INVALID_HEADER
MISMATCHING_SECURITY_HEADER_VALUES
MISSPELLED_SECURITY_HEADER_NAME
MIXED_CONTENT
XXE_REFLECTED_FILE_LEAKAGE
Para mais informações sobre esses e outros detectores, consulte a Visão geral do Web Security Scanner.
A06: componentes vulneráveis e desatualizados
Componentes com vulnerabilidades conhecidas (em inglês) é uma categoria para vetores de ataque genéricos, e essas vulnerabilidades são melhor reduzidas com o monitoramento e o upgrade rápido de todos os componentes do aplicativo.
Autorização binária
Caso de uso:
- Restrinja clusters do GKE a contêineres confiáveis
A autorização binária é um controle de segurança no momento da implantação que ajuda a garantir que apenas imagens de contêiner confiáveis sejam implantadas no Google Kubernetes Engine (GKE). Com a autorização binária, é possível exigir que as imagens sejam assinadas por autoridades confiáveis durante o processo de desenvolvimento e, em seguida, aplicar a validação de assinatura ao implantar. Ao aplicar a validação, é possível ter certeza de que o processo de criação e lançamento usa apenas imagens verificadas.
Cloud Load Balancing
Caso de uso:
- Controle detalhado de criptografia SSL e TLS
Para impedir o uso de criptografias SSL ou TLS conhecidas, atribua um grupo predefinido ou uma lista personalizada de criptografias que o Cloud Load Balancing pode usar.
Google Cloud Armor
Caso de uso:
- Bloquear o acesso a endpoints de apps não utilizados
- Bloquear vetores de ataque comuns
Um firewall de aplicativos da Web (WAF), como o Google Cloud Armor, não deve ser usado como uma única estratégia de mitigação para bloquear ataques contra essa categoria, porque os ataques geralmente são específicos da biblioteca e não podem ser bloqueados por conjuntos de regra pré-configurada ou não pode receber patches do lado do servidor. Monitorar e fazer upgrade regularmente de todos os componentes do aplicativo é a única opção para reduzir esse tipo de vulnerabilidade.
No entanto, o Google Cloud Armor pode ajudar a reduzir alguns ataques comuns contra aplicativos vulneráveis por meio de regras pré-configuradas para execução de código remoto, inclusão de arquivo local ou inclusão de arquivo remoto.
Se você estiver ciente de componentes vulneráveis no seu aplicativo, mas não puder corrigi-lo imediatamente, bloqueie o acesso a essas partes do aplicativo para reduzir temporariamente o risco de uma exploração desses componentes. Crie uma regra personalizada que corresponda ao caminho do URL ou às consultas que acessam esses componentes vulneráveis e negam o acesso. Se você precisar acessar esses componentes de usuários ou locais específicos, ainda poderá permitir que determinados endereços IP de origem confiáveis acessem esses componentes. Uma regra que usa o caminho do URL é semelhante a esta:
`request.path.contains("/component") && !(inIpRange(origin.ip, '1.2.3.4/32')
Substitua:
/component
: o caminho do componente com vulnerabilidades conhecidas1.2.3.4/32
: o intervalo de endereços IP que precisa manter o acesso à interface.
Se houver partes do aplicativo (por exemplo, determinados diretórios ou tipos de arquivo que nunca precisam ser acessados pelos usuários finais), também é possível bloquear ou restringir o acesso a estes recursos com uma regra personalizada, reduzindo proativamente o risco se esses componentes se tornarem vulneráveis no futuro.
Google Cloud Boletins de segurança
Caso de uso:
- Monitoramento do boletim de segurança
- CVEs de produtos Google Cloud
Os boletins de segurançaGoogle Cloud são uma fonte oficial de boletins de segurança que afetam Google Cloud. As postagens incluem informações básicas, links da CVE e recomendações para outras ações.
Security Command Center
O Security Command Center inclui três serviços que ajudam a lidar com componentes vulneráveis e desatualizados: Container Threat Detection, Event Threat Detection e Web Security Scanner.
O Container Threat Detection é compatível com os seguintes casos de uso:
- Detecção de script malicioso
- Detecção de shell reverso
- Detecção de instalação de malware
Se um invasor se aproveitar de um componente vulnerável e executar um script malicioso, o
detector Malicious Script
Executed
do
Container Threat Detection
vai gerar uma descoberta. Se um invasor gerar um shell reverso, o detector
Reverse
Shell
vai gerar uma descoberta. Se um invasor instalar malware, os detectores Added
Binary
Executed
e Added Library
Loaded
vão gerar descobertas.
O Event Threat Detection é compatível com os seguintes casos de uso:
- Detecção de criptomineração
- Detecção de malware
- Exfiltração de dados
- DoS de saída
O Event Threat Detection monitora seu stream do Cloud Logging e aplica a lógica de detecção e a inteligência contra ameaças em um nível granular. Quando o Event Threat Detection detecta uma ameaça, ele grava o que encontra no Security Command Center e em um projeto do Cloud Logging. As regras de detecção a seguir são úteis para detectar os efeitos do uso de componentes com vulnerabilidades conhecidas:
- Criptomineração. Detectar criptomineração com base em solicitações de DNS ou conexão com endereços de mineração conhecidos
- Malware. Detecte solicitações de DNS baseadas em malware ou conexão com endereços inválidos conhecidos.
- Exfiltração para tabela externa. Detecte recursos salvos fora da organização, como operações de cópia ou transferência.
- DoS de saída. Detecte vulnerabilidades exploradas que tentam ataques de negação de serviço.
O Web Security Scanner é compatível com os seguintes casos de uso:
- Bibliotecas desatualizadas
- Painéis de vulnerabilidades e descobertas
O Web Security Scanner monitora bibliotecas desatualizad