Atualizado em: 26 de novembro de 2024

6 min de leitura

Apresentando o framework GUARD para automatizar detecções de segurança no GitLab

O framework GitLab Universal Automated Response and Detection (GUARD) abrange criação, manutenção, roteamento e tratamento de alertas, coleta avançada de métricas e muito mais.

O time de GitLab Security Operations usa a automação como princípio norteador para garantir que os engenheiros de segurança tenham tempo para focar no que realmente importa, ao invés das tarefas manuais repetitivas que poderiam ser padronizadas e automatizadas. Aplicamos esse princípio para proteger a plataforma SaaS do GitLab.com, que gera terabytes de dados de log todos os dias e exige que o time de segurança do GitLab padronize, automatize e escale os fluxos de trabalho de segurança para garantir mais proteção e eficiência. O resultado foi um novo framework que chamamos de GitLab Universal Automated Detection and Response, ou GUARD — uma colaboração entre o Security Incident Response Team (SIRT) e o Signals Engineering Team do GitLab. O GUARD é um dos vários frameworks de segurança que o GitLab disponibilizou em código aberto por meio do seu Open Source Security Center.

O GUARD cobre todos os aspectos da detecção de segurança, incluindo:

  • criação
  • manutenção
  • roteamento e tratamento de alertas
  • coleta avançada de métricas
  • fluxo de trabalho de encerramento de alertas ou escalonamento de incidentes

Os objetivos do GUARD

O GUARD foi criado e projetado com um conjunto de objetivos-chave:

  1. Padronizar o pipeline de detecção e alertas do SIRT para produzir detecções de alta qualidade, com foco em revisão por pares e automação em primeiro lugar
  2. Reduzir a fadiga de alertas por meio de consolidação, deduplicação, pontuação de risco e feedback automatizado
  3. Métricas para medir a eficiência da resposta e identificar problemas cedo
  4. Colocar o GitLab no centro, usando o GitLab como fonte única confiável para as definições de detecção

Os princípios de design do GUARD

O GUARD nasceu de uma necessidade real, com uma visão clara do estado que se pretendia alcançar. Antes do GUARD, as detecções não seguiam um formato padrão, não havia métricas de alertas disponíveis, e a criação e a manutenção de detecções aconteciam de forma pontual e não estruturada. Por isso, construir um framework escalável, centrado no GitLab e capaz de automatizar tarefas manuais foi essencial para o sucesso do GUARD. Graças aos ganhos de eficiência proporcionados pelo GUARD, os engenheiros de SecOps passaram a ter mais tempo para resolver problemas difíceis e lidar com incidentes complexos.

Componentes do GUARD

O framework GUARD é formado por vários módulos. No centro do GUARD está a própria plataforma GitLab, atuando como fonte única de verdade para as regras de detecção e dando ao SIRT a capacidade de implantar detecções como código automaticamente, usando o GitLab CI/CD.

O GUARD inclui os seguintes componentes:

  • Detection as Code (DaC) - implanta detecções por meio do pipeline de CI/CD do GitLab.
  • User Attestation Module - permite que membros do time do GitLab atestem atividades sinalizadas como potencialmente maliciosas.
  • Enriquecimentos - consulta informações históricas e contextuais para enriquecer os alertas, facilitando a triagem.
  • Triagem e resposta a alertas - oferece um formato padrão de triagem de alertas e ações de escalonamento baseadas em pré-definições.
  • Geração de métricas - reúne insights sobre o tratamento dos alertas.

Cada módulo do GUARD trabalha em conjunto para padronizar, automatizar e melhorar continuamente as detecções de segurança e o pipeline de alertas do GitLab.

O GitLab no centro

O GitLab é essencial para os componentes críticos do GUARD: atua como fonte única para as detecções de ameaças, automatiza o pipeline de DaC do GUARD por meio do GitLab CI/CD e funciona como o "front-end" do GUARD, através do qual os engenheiros de segurança podem adicionar, editar e excluir detecções de ameaças.

Veja como os recursos do GitLab são usados pelo GUARD:

  • Projetos do GitLab: o GUARD utiliza um repositório de projeto do GitLab como fonte única para as detecções de ameaças, armazenadas em formato JSON.
  • MRs do GitLab: qualquer alteração nas detecções do GUARD, incluindo novas detecções, é feita por meio de Merge Requests no projeto principal do GUARD. Um template detalhado de MR é usado para validar e registrar os detalhes da detecção sendo adicionada, editada ou excluída. Regras de aprovação de MR, incluindo o uso de CodeOwners e branches protegidas, garantem que as revisões de detecção sejam concluídas corretamente antes do merge.
  • Issues do GitLab: envios de bugs ou outras iniciativas de engenharia relacionadas ao GUARD são registrados em issues (tíquetes) do GitLab.
  • Labels do GitLab: um conjunto de labels padronizadas garante que os engenheiros de segurança documentem as alterações do GUARD de uma forma fácil de rastrear.
  • GitLab CI/CD: o GUARD usa um pipeline de CI do GitLab para automatizar a implantação de detecções novas, alteradas ou excluídas na plataforma de gestão de eventos e incidentes de segurança (SIEM) do GitLab. O pipeline de CI do GUARD realiza uma série de validações, testes e verificações de qualidade antes de concluir com sucesso e efetivar as alterações na plataforma SIEM do GitLab.

Geração de métricas

As interações com a interface de tratamento de alertas são registradas para gerar métricas-chave de desempenho, como Tempo para Responder, Tempo para Resolver e insights sobre alertas, como as taxas de verdadeiros e falsos positivos. Também coletamos metadados adicionais, incluindo uma análise de sentimento baseada em emojis: os engenheiros que tratam os alertas fornecem "feedback" sobre eles em forma de emojis, o que nos permite levar essas percepções em conta ao iterar sobre as regras de detecção.

As métricas de tratamento de alertas ficam armazenadas em um banco de dados separado, usado para criar visualizações consultadas por engenheiros e pela liderança. Afinal, esses dados são fundamentais para entender o desempenho do time na resolução de alertas e na fidelidade das detecções, permitindo que estejamos sempre melhorando.

Itere com a gente

Usar o GitLab como referência central para o código de detecção de ameaças permitiu que o GUARD desacoplasse os processos de uma tecnologia de SIEM específica, ganhando mais flexibilidade, facilidade de uso, modularização e capacidade de auditoria.

A iteração é um valor central do GitLab — começamos pela menor coisa de valor possível para obter feedback rápido e alcançar o objetivo desejado com eficiência. O GUARD não foge a essa regra, e esperamos que compartilhar essa experiência ajude outras pessoas a iterar rumo às suas próprias melhorias de automação.

Este artigo é o primeiro de uma série sobre o GitLab GUARD. No próximo, vamos compartilhar detalhes sobre os diversos aspectos da nossa jornada iterativa para implementar o GUARD no GitLab.

Queremos saber sua opinião

Gostou deste artigo, ficou com alguma dúvida ou quer deixar um feedback? Compartilhe suas ideias criando um novo tópico no fórum da comunidade GitLab.

Compartilhe seu feedback

Comece a desenvolver mais rápido hoje

Veja o que sua equipe pode fazer com a plataforma de orquestração inteligente para DevSecOps.