Avalie sua postura de segurança de controle de origem com GitGat

Todas as mensagens

Seu sistema de controle de origem é um dos elos mais sensíveis no ciclo de vida de desenvolvimento de software. Ele armazena o código-fonte do software, scripts de construção e scripts IaC (Infraestrutura como Código) e, em alguns casos, segredos e informações confidenciais adicionais. Portanto, proteger o sistema de controle de origem deve ser um dos primeiros passos para proteger o ambiente de desenvolvimento de software.

Com o objetivo de ajudar a proteger o SCM, desenvolvemos o GitGat. GitGat é um conjunto de OPA independente (Agente de política aberta) políticas escritas em Rego. O uso do OPA permite vários casos de uso, como parte de outras ferramentas baseadas em OPA ou como aplicativos independentes. GitGat avalia as configurações de segurança da sua conta SCM e fornece um relatório de status e recomendações acionáveis. O relatório de status pode ser gerado em um formato legível por humanos (arquivo MD) para o profissional de segurança ou em um formato legível por máquina (arquivo JSON), para dar suporte a decisões e ações políticas automatizadas.

Como o GitHub é um dos sistemas SCM líderes mundiais, queríamos que esse fosse o nosso ponto de partida. Eventualmente, pretendemos expandir o suporte para outras plataformas SCM.

Atualmente, o GitGat oferece suporte à avaliação das seguintes famílias de políticas:

  • O controle de acesso - evitar acesso inicial técnicas baseadas em roubo de credenciais.
    • Valide essa autenticação de dois fatores é aplicado à sua organização ou a seus membros, entendendo quem não usa 2FA atualmente.
    • Valide a visibilidade do repositório está como planejado. 
    • Validar controle de implantação e SSH chaves.
  • Permissões – evitar etapas de ataque decorrentes de permissões excessivas execução, evasão de defesa, acesso a credenciais,
    • Mapeie usuários com permissões de administrador
    • Mapeie as permissões da equipe e notifique as equipes com permissões de administrador
  • Proteção de Filial – evitar etapas de ataque que explorem modificações não intencionais e não permitidas no repositório: execução, persistência, evasão de defesa e impacto
    • Mapear filiais protegidas e desprotegidas
    • Mapeie a configuração da proteção de ramificação – para entender quais proteções estão em vigor (por exemplo: impor revisões e commits assinados e evitar a exclusão do histórico).
  • Rastreamento de modificação de arquivo – prevenir/detectar etapas de ataque que exploram permissões de acesso a arquivos que são concedidas por padrão ao usar o GitHub: execução, persistência e evasão de defesa.

Estamos planejando adicionar suporte para verificação secreta utilizando ferramentas de código aberto, como vazamentos de git.

Como todos os profissionais de segurança sabem, as regras e políticas de segurança são geralmente uma base para decisões específicas do projeto. Cada projeto vem com condições e restrições especiais que exigem aprovações especiais de uma parte interessada autorizada. Para permitir o gerenciamento fácil de tais casos especiais, o GitGat oferece suporte ao gerenciamento de um estado. O estado, um objeto JSON mantido pelo usuário, pode armazenar tais exceções. Isso permite que você execute uma verificação contínua da postura de segurança e seja alertado apenas sobre o que há de novo ou não incluído em seu estado. 

Uma análise detalhada de ameaças sobre o motivo pelo qual escolhemos essas questões como ponto de partida para melhorar a postura de segurança do SCM pode ser encontrada no README do Repositório GitGat

Convidamos a todos a experimentar o projeto. Sinta-se à vontade para fazer críticas, ideias, solicitações ou até mesmo ajuda. Há muitas direções nas quais este projeto pode crescer e estamos entusiasmados em explorá-las com você.

Este conteúdo é oferecido a você pela Scribe Security, um fornecedor líder de soluções de segurança de cadeia de suprimentos de software ponta a ponta – fornecendo segurança de última geração para artefatos de código e processos de desenvolvimento e entrega de código em todas as cadeias de suprimentos de software. Saiba mais.