Validar configurações e controles de segurança
Este guia é destinado a engenheiros de segurança que querem testar proativamente a segurança simulando ataques no ambiente do Google Cloud . Ele explica como implementar uma jornada de validação de segurança contínua.
A validação de segurança usa ações e scripts que imitam técnicas de invasores para acionar alertas de detecção nos seus projetos do Google Cloud . A operação contínua identifica vulnerabilidades, e as equipes de segurança podem reduzir o risco garantindo que as configurações e os controles respondam às ameaças mais recentes conforme o esperado.
A conclusão bem-sucedida dessa jornada fornece uma prova mensurável de uma postura de segurança melhorada e garante que as regras de detecção ou integrações recém-implementadas funcionem corretamente sem intervenção manual.
Casos de uso comuns
Nesta seção, listamos casos de uso comuns da validação de segurança.
Detectar regressão da postura de segurança
Objetivo: identificar quando um comportamento de invasor anteriormente bloqueado é executado com sucesso no ambiente.
Valor: alerta as equipes de segurança e operações sobre desvios de configuração não intencionais, permitindo que elas corrijam vulnerabilidades antes que sejam exploradas.
Validar o ajuste do controle de segurança
Objetivo: confirmar se as regras de detecção ou as integrações de produtos recém-implementadas funcionam conforme o esperado.
Valor: fornece prova mensurável de que as atualizações de regras ou mudanças no ambiente melhoraram a postura de segurança, permitindo que as equipes estabeleçam com confiança uma nova referência.
Terminologia importante
Contexto de validação de segurança: um contexto de validação de segurança configura o ambiente para seus testes de segurança. Ele especifica qual projeto usar, qual conta executar o teste e outros detalhes necessários para as ações.
Ação de validação de segurança: um script projetado para imitar técnicas de invasores do mundo real, usado para acionar regras de detecção e verificar sua postura de segurança.
Execução de referência: uma execução de validação de segurança específica e concluída usada como referência padrão para comparar execuções futuras.
Monitor: um job programado (
SecurityValidationJobna API) que executa uma ação de validação de segurança e avalia os resultados em relação a um valor de referência definido.Status de desvio: o indicador de integridade de um monitor com base em se as execuções recentes correspondem ao valor de referência (íntegro) ou mostram desvio (desvio detectado).
Janela de correlação: o período de 12 horas após uma execução em que o sistema pesquisa e associa eventos e detecções relacionados, com base no modelo de filtro de eventos nos metadados da ação executada.
Tempo limite do monitor: a duração máxima que o sistema aguarda após uma execução para que os eventos e as detecções se correlacionem antes de avaliar o status final de desvio. Esse tempo limite opera dentro da janela de correlação maior de 12 horas. Os resultados esperados precisam ser observados antes que o tempo limite do monitor seja atingido para que o monitor seja considerado bem-sucedido. Se as verificações não forem aprovadas antes desse tempo limite, o sistema marcará o monitor como
failed. A duração padrão é de 8 horas, mas pode ser configurada entre 15 minutos e 10 horas.
Antes de começar
Verifique se as seguintes configurações e permissões estão em vigor.
Configuração necessária
Verifique se você tem a seguinte configuração:
O locatário precisa ter a validação de segurança ativada.
A validação de segurança só funciona com projetos autogerenciados.
Você precisa de um ou dois projetos do Google Cloud . Embora seja possível usar o mesmo projeto para execução e segmentação, recomendamos usar projetos separados para melhorar a segurança, manter os testes limpos e facilitar o gerenciamento da configuração.
Projeto de execução: a Validação de Segurança executa os testes de segurança no projeto de execução. Ele usa o Cloud Run e o Cloud Storage para isso. Esses jobs e buckets devem ser usados apenas pelo serviço de validação. Outros usuários não devem ter acesso a eles.
As APIs Cloud Run, API Resource Manager e IAM precisam estar ativadas nesse projeto, e você precisa ter as permissões
resourcemanager.projects.SetIamPolicy,storage.buckets.SetIamPolicy,storage.buckets.createestorage.buckets.deletepara criar um contexto de validação de segurança para ele. Consulte a referência de permissões do IAM para ver a lista de papéis que fornecem essa permissão.Projeto de destino: em que as chamadas de API feitas pelo script de ação de validação de segurança operam. O sucesso das ações depende de as APIs necessárias usadas pelas ações estarem ativadas neste projeto e de as contas de serviço no contexto de validação de segurança terem as permissões necessárias nelas.
Contas de serviço: requer uma ou mais contas de serviço no projeto de execução. Essas contas executam os scripts de ação. Qualquer usuário que precise executar uma ação com um contexto específico precisa ter a permissão
iam.serviceAccounts.actAsnas conta de serviço desse contexto.
Permissões necessárias
Atribua um dos seguintes papéis predefinidos no projeto da instância do SecOps.
chronicle.viewer: acesso somente leitura a ações, contextos, jobs e recursos de execução da Validação de Segurança.chronicle.editor: inclui todas as permissões deviewere a capacidade de criar, atualizar, executar e excluir contextos e jobs de validação de segurança.chronicle.admin: inclui todas as permissões deeditore a capacidade de criar, atualizar e excluir ações personalizadas de validação de segurança (somente API).
Se você não estiver usando os papéis predefinidos listados acima, poderá conceder
permissões equivalentes usando um papel personalizado ou atribuindo o
papel chronicle.securityValidationAdmin, que inclui as mesmas
permissões que chronicle.admin.
Para mais informações, consulte Papéis necessários.
Implementar a validação contínua de segurança
A validação da postura de segurança envolve uma progressão estruturada:
Como definir o ambiente
Executar simulações para estabelecer uma referência
Automatizar as simulações para detectar desvios.
Esse fluxo de trabalho garante que os controles de segurança permaneçam eficazes à medida que o ambiente evolui.
Criar um contexto de validação de segurança
Um contexto de validação de segurança configura o ambiente para seus testes de segurança. Ele especifica qual projeto usar, com qual conta executar o teste e outros detalhes necessários para as ações. É possível reutilizar o mesmo contexto para ações diferentes.
Para criar um contexto de validação de segurança, faça o seguinte:
Acesse Validação de segurança e vá para a guia Contextos de execução.
Clique em Adicionar contexto de execução.
Na caixa de diálogo Adicionar contexto de execução, faça o seguinte:
Em Propriedades básicas, insira o nome e a descrição do contexto e clique em Próxima.
Em Configurações do ambiente, insira o ID do projeto do Google Cloud , a conta de serviço de execução e a conta de serviço de limpeza. Clique em Next.
Recomendamos o uso de contas de serviço separadas para
action profile(para executar scripts de ação) e parasetup/cleanup profile(para executar os scripts de configuração e limpeza que fazem parte de algumas ações). Essas contas de serviço podem receber permissões diferentes no projeto de destino.Em Variáveis de ambiente de execução, adicione uma ou várias variáveis para substituir dinamicamente os parâmetros padrão. Adicione pares de chave-valor em que
keyé o nome do parâmetro evalueé o valor de substituição.Clique em Criar.
Executar a ação de validação de segurança
Para executar uma ação de validação de segurança em um contexto de validação de segurança, faça o seguinte:
Acesse Validação de segurança e vá para a guia Biblioteca de conteúdo.
Selecione uma ação e clique em Executar.
Na caixa de diálogo, selecione o contexto de execução que você criou e clique em Executar agora.
Uma nova execução é criada e aparece na guia Histórico de execução.
Gerenciar monitores de validação de segurança
É possível executar novamente ações de sucesso de forma recorrente usando o recurso de monitoramento. Ele permite o monitoramento contínuo da postura de segurança sem intervenção manual.
Criar um monitor
Só é possível criar um monitor com base em uma execução concluída. Para criar um monitor com base em uma execução, faça o seguinte:
Acesse Validação de segurança e vá para a guia Histórico de execução.
Clique no ID de execução de uma execução e em Criar monitor.
Opcional: na janela Criar monitor, dê um nome ao monitor.
Se você não inserir um nome para o monitor, ele será referenciado por um ID.
Revise os detalhes da execução de referência mostrados nessa janela.
Clique em Próxima.
Defina as configurações do Monitor.
É possível executar um monitor em horários específicos ou a cada hora.
Para executar o Monitor em horários específicos, faça o seguinte:
No menu suspenso Horário, selecione Executar em um horário específico.
Especifique o horário do dia na caixa de texto ao lado.
Na opção Dias, selecione uma das seguintes opções:
Diariamente: é executado todos os dias no horário especificado.
Dias da semana: é executado apenas nos dias selecionados (por exemplo, segunda, quarta, sexta) no horário especificado.
Dia do mês: é executado uma vez por mês no dia especificado (por exemplo, no dia 15) no horário especificado.
No menu suspenso Meses, selecione Mensal (para executar todo mês) ou Meses específicos para especificar os meses exatos em que o Monitor deve ser executado (por exemplo, janeiro, abril, julho).
No menu suspenso Fuso horário, selecione o fuso horário necessário. Esse campo usa como padrão o fuso horário definido nas suas Preferências do usuário (que pode ser diferente das configurações do navegador). Para encontrar ou mudar essa configuração padrão, acesse Perfil > Preferências do usuário > Localização > Fuso horário.
Clique em Próxima.
Para executar o Monitor em intervalos de uma hora, faça o seguinte:
No menu suspenso Horário, selecione Repetir a cada hora.
Defina a frequência de repetição do ciclo de monitoramento no campo hora(s) e o minuto específico no campo minuto(s). Por exemplo, definir 1 hora e 30 minutos significa que o monitor é executado a cada hora, 30 minutos após a hora (ele NÃO é executado a cada 90 minutos).
Na opção Horário, selecione uma das seguintes opções:
Todas as horas do dia:o Monitor será executado 24 horas por dia, com base na frequência especificada.
Horário de início e término: o monitor será executado apenas dentro do intervalo de horário de início e término especificado (por exemplo, entre 8h e 17h).
Na opção Dias, selecione uma das seguintes opções:
Diariamente: é executado todos os dias no horário especificado.
Dias da semana: é executado apenas nos dias selecionados (por exemplo, seg, qua, sex) no horário especificado.
Dia do mês: é executado uma vez por mês no dia especificado (por exemplo, no dia 15) no horário especificado.
No menu suspenso Meses, selecione Mensal (para executar todo mês) ou Meses específicos para especificar os meses exatos em que o Monitor deve ser executado (por exemplo, janeiro, abril, julho).
No menu suspenso Fuso horário, selecione o fuso horário necessário. Esse campo usa como padrão o fuso horário definido nas suas Preferências do usuário (que pode ser diferente das configurações do navegador). Para encontrar ou mudar essa configuração padrão, acesse Perfil > Preferências do usuário > Localização > Fuso horário.
Clique em Próxima.
Em Resultados esperados, marque ou desmarque as condições conforme necessário. É preciso selecionar pelo menos uma condição.
O resultado da ação corresponde ao valor de referência:avalia se o estado de execução, o resultado e o motivo do resultado correspondem ao valor de referência. Os três parâmetros precisam corresponder para que a verificação seja avaliada como verdadeira.
Os produtos de eventos correlacionados correspondem ao valor de referência:
Agrupa eventos correlacionados por produto.
Verifica se a execução atual tem pelo menos um evento para cada produto listado no valor de referência.
A verificação ignora eventos de produtos que não têm eventos no valor de referência.
Ele será avaliado como
falsese os eventos que correspondem ao valor de referência não chegarem antes do tempo limite.
Regras de detecção correlacionadas que alertam sobre a correspondência com o valor de referência:
Agrupa as detecções por regra e estado de alerta.
Verifica se a execução atual tem pelo menos uma detecção de uma regra que tem detecções na execução de referência.
Ignora detecções de regras que não têm detecções na execução do valor de referência.
Será avaliado como
falsese as detecções que correspondem ao valor de referência não chegarem antes do tempo limite.
Clique em Criar para criar o monitor.
Ver e executar um monitor
Para conferir um monitor criado, faça o seguinte:
Acesse Validação de segurança e vá para a guia Monitores. Algumas colunas ficam ocultas por padrão. Clique em Gerenciador de colunas para gerenciar a visibilidade das colunas.
Localize o monitor específico na lista.
Clique no link do monitor para abrir a página de detalhes.
Clique em Executar agora para executar o Monitor.
A página de detalhes do Monitor oferece uma visão geral centralizada e de alto nível do Monitor. Ele ajuda a avaliar o status geral e a integridade de um monitor rapidamente. Ele fornece as seguintes informações importantes sobre o Monitor:
Resumo de saúde
Os seguintes cards de métricas mostram uma visão geral da estabilidade do Monitor:
Status de integridade do monitor: exibe o estado atual com base na última execução com um resultado de monitor finalizado (por exemplo,
Healthy) e há quanto tempo ele mantém esse estado.Resultado íntegro ou não íntegro mais recente: fornece um ponteiro para a execução mais recente que se desviou do valor de referência.
Atualização do resultado: mostra o tempo decorrido desde a última execução com um status de monitor finalizado.
Resultados esperados
Nesta seção, definimos os critérios de sucesso derivados da execução de referência.
Resultado e motivo da ação: o resultado e o motivo da ação que correspondem à execução de referência (por exemplo,
NOT_BLOCKEDcom um motivo associado).Produtos que geraram eventos: a lista de produtos para eventos correlacionados que correspondem à execução de referência.
Regras de detecção de alertas: a lista de regras de detecção correlacionadas de alertas que correspondem à execução do valor de referência.
A tabela Resultados do monitoramento mostra todas as execuções do monitoramento. A tabela é compatível com Text Search, filtragem e configuração de colunas.
Ativar ou desativar um monitor
Para ativar ou desativar um monitor, faça o seguinte:
Acesse Validação de segurança e vá para a guia Monitores.
Clique no botão Status para ativar ou desativar um monitor. Como alternativa, clique em Pausar monitor ou Reiniciar monitor na página Detalhes do monitor para mudar o status.
Modificar ou excluir um monitor
Para modificar ou excluir um monitor, faça o seguinte:
Acesse Validação de segurança e vá para a guia Monitores.
Clique no menu do monitor que você quer modificar.
Clique em Editar monitor para modificar o monitor ou em Excluir monitor para excluí-lo. Também é possível clicar em Editar monitor na página Detalhes do monitor para modificá-lo.
Clique em Atualizar ou Confirmar para aplicar as mudanças.
Analisar os resultados do Monitoramento
Para ver todas as execuções de um monitor, faça o seguinte:
Acesse Validação de segurança e vá para a guia Monitores.
Clique no menu no Monitor.
Clique em Mostrar todos os resultados. A página Histórico de execução é exibida.
As execuções são filtradas para mostrar todas as execuções associadas a esse monitor específico.
Exibir resultados da última execução
Para conferir os resultados da última execução de um Monitor, faça o seguinte:
Acesse Validação de segurança e vá para a guia Monitores.
Clique no menu no Monitor.
Clique em Ver resultados da última execução para abrir os Detalhes da execução.
O sistema mostra os detalhes da execução mais recente do monitor.
Analisar os resultados da execução
É possível ver a ação de validação de segurança executada na guia Histórico de execução. Para analisar os resultados da execução, faça o seguinte:
Navegue até Validação de segurança e acesse a guia Histórico de execução para monitorar o status da execução.
A coluna Status da execução indica se a execução foi concluída ou se encontrou um erro. Se tudo der certo, você poderá ver os eventos gerados e as detecções acionadas pela ação de validação de segurança no Google SecOps.
Clique no ID da execução para conferir os detalhes.
A página Detalhes da execução da ação mostra o status, o resultado e uma análise detalhada de uma ação de validação. Use essa página para validar sua postura de segurança entendendo quais regras de detecção foram acionadas pela atividade da ação.
Progresso da correlação mostra o progresso do fluxo de trabalho de correlação em tempo real para uma execução. Enquanto a correlação é executada, a contagem total de eventos pode aumentar até que a tarefa seja concluída.
Analisar a tabela de regras correlacionadas
A tabela Regras correlacionadas lista as regras de detecção acionadas durante a execução da ação, incluindo regras personalizadas e selecionadas.
A tabela mostra as regras personalizadas e selecionadas. Ele inclui dois grupos: * Regras explicitamente definidas nos metadados da ação * Regras adicionais acionadas por eventos correlacionados
Isso ajuda a identificar quais regras funcionaram conforme o esperado e quais podem precisar de mais investigação.
A tabela inclui as seguintes colunas:
Nome da regra:nome da regra de detecção. Clique no nome da regra para ver a definição dela e o histórico de detecção.
Contagem de detecções:número de detecções acionadas pela regra. O valor
0indica que nenhum evento correspondente foi encontrado.Detecções:link para a página Detecções, que mostra as detecções acionadas nessa execução.
Associado à ação:indica se a regra fazia parte dos metadados da ação:
Sim:os metadados da ação incluem a regra. O sistema espera que ela seja acionada quando a ação for executada.
Não:os metadados dessa ação não incluem a regra, mas a lógica dela correspondeu aos eventos gerados e a acionou.
Esta tabela ajuda a identificar os resultados:
| Coluna "Associada à ação" | Coluna de contagem de detecções | O que significa |
|---|---|---|
YES
|
1 ou mais
|
Sucesso: uma regra esperada acionou uma ou mais detecções. |
NO
|
1 ou mais
|
Uma regra inesperada foi acionada pela atividade. |
YES
|
0
|
Uma regra esperada não acionou nenhuma detecção. |
Analisar eventos correlacionados
Depois de executar uma ação de Validação de Segurança, use os eventos correlacionados para avaliar como o ambiente e os controles de segurança responderam à ameaça simulada.
Sua análise inclui dois componentes: um status em tempo real do fluxo de trabalho de correlação e uma tabela detalhada de todos os eventos gerados.
O Status de correlação de eventos mostra o estado atual do fluxo de trabalho como um dos seguintes:
Em execução:o sistema está procurando ativamente eventos correlacionados.
Concluído:todas as atividades de correlação de eventos foram concluídas.
Com erro:o fluxo de trabalho de correlação encontrou um erro e não pôde ser concluído.
O Fluxo de trabalho de correlação concluído em indica uma estimativa de quando a correlação deve ser concluída ou foi concluída.
A tabela de eventos lista todos os eventos gerados pela ação. Use esses dados para analisar respostas individuais no seu ambiente e nos controles de segurança.
A tabela inclui as seguintes colunas:
Evento: ID do evento. Clique para ver os detalhes do evento na Pesquisa de UDM.
Carimbo de data/hora do evento:horário em que o evento ocorreu no sistema de origem (por exemplo, o servidor ou o firewall).
Carimbo de data/hora observado:horário em que o serviço de validação de segurança encontrou e correlacionou o evento com a execução.
Produto:produto que gerou o evento.
Ação de resultado de segurança:resultado do evento (
BlockedouNot blocked), com base no camposecurity_result.actiondo evento do UDM.
As ações podem atingir regiões fora da instância do Google SecOps em que são executadas. Os resultados da execução mostram os registros recuperados do projeto de execução.
Acessar recursos e referências avançados
Confira os recursos a seguir para ver exemplos de configuração e mapeamento de dados de referência.
Exemplo de implementação: gerar token de acesso usando signJWT
Considere um exemplo da ação "Gerar token de acesso usando a permissão signJWT". Neste exemplo, presumimos que você já configurou um contexto de validação de segurança e está executando a ação dentro desse contexto. A ação deve gerar registros de auditoria do Cloud e acionar a geração de token de acesso com a regra de detecção de ameaças signJWT.
A configuração a seguir é necessária:
APIs ativadas:a API de credenciais da conta de serviço do Identity and Access Management (IAM) precisa estar ativada nos projetos de destino e de execução.
Permissões da conta de serviço:a conta de serviço especificada no campo
profiledo contexto de validação de segurança precisa ter a permissãoiam.serviceAccounts.signJwtno projeto de destino. Isso pode ser concedido pelo papel de Criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator). Esse papel pode ser concedido no projeto ou na conta de serviço de destino (que, para essa ação, é a conta de serviço padrão do Compute Engine do projeto de destino).Geração de registros de auditoria do IAM:a geração de registros de auditoria (
ADMIN_READ) do IAM precisa estar ativada no projeto de destino para capturar os eventos gerados por essa ação.Filtro de exportação personalizado:para ingerir os eventos gerados por essa ação com a ingestão do SecOps Google Cloud , é necessário definir um filtro de exportação personalizado que inclua
log_id("cloudaudit.googleapis.com/data_access").Conjunto de regras:o conjunto de regras Cloud Threats -> [Google Cloud] IAM Abuse precisa estar ativado e definido como alerta para mostrar detecções na visualização de pesquisa e investigação.
Exemplos de programação de monitoramento
Use esses exemplos como referência ao configurar programações recorrentes para monitoramento contínuo.
| Configuração | Quando é executada |
|---|---|
| Horário: executar em um horário específico (22h) Dias: dias da semana (segunda-feira) Meses: mensalmente Fuso horário: EST |
Executado toda segunda-feira às 22h (horário padrão do leste). |
| Horário: executar em um horário específico (01:00) Dias: dia do mês (1) Meses: especificar (jan, abr, jul, out) Fuso horário: PST |
É executado à 1h (horário padrão do Pacífico) no primeiro dia de janeiro, abril, julho e outubro. |
| Horário: executar em um horário específico (14:00) Dias: diariamente Meses: mensalmente Fuso horário: UTC |
É executado todos os dias às 14h (Tempo Universal Coordenado). |
| Horário: executar em um horário específico (09:30) Dias: dia do mês (15) Meses: especificar (fev, abr, jun, ago, out, dez) Fuso horário: EST |
É executado às 9h30 (horário padrão do leste) no dia 15 de cada segundo mês (fevereiro, abril, junho, agosto, outubro, dezembro). |
|
Horário: repetir a cada hora Intervalo: a cada 1 hora Horas: todas as horas |
Execução sem interrupções. É executado exatamente no início de cada hora, 24 horas por dia (por exemplo, 1h, 2h, 3h e assim por diante). |
|
Horário: repetir a cada hora Intervalo: a cada 4 horas Horas: horário de início e término (22h às 6h) |
É executado apenas durante a noite. É executado às 22h, 2h e 6h para capturar o status do servidor durante períodos de baixo tráfego. |
Solução de problemas
Latência e limites
Os resultados das execuções de monitores recém-acionados não são preenchidos imediatamente com dados de detecção e eventos devido à janela de correlação.
Correção de erros
| Erro | Descrição do problema | Corrigir |
|---|---|---|
| Erro de permissão do IAM | Permissão iam.serviceaccounts.actAs negada na conta de serviço.
|
Se você criou ou atualizou o contexto logo antes de executar a ação, aguarde alguns minutos e tente de novo. As mudanças do IAM são consistentes, mas pode levar tempo
para que as atribuições de papéis sejam propagadas pelo sistema. Verifique se a identidade que executa a ação tem a permissão `iam.serviceaccounts.actAs` na conta de serviço especificada. |
Validação e teste
Para verificar se o Monitor está configurado corretamente sem esperar o próximo intervalo programado, use o botão Executar agora na página de detalhes do Monitor. Atualize a página após o período de correlação para verificar o Status da execução.