Configurar o GitHub Advanced Security para o GitHub e o Azure DevOps

Concluído

O GitHub Advanced Security é um conjunto de recursos e funcionalidades de segurança oferecidos pelo GitHub para ajudar as organizações a identificar e reduzir vulnerabilidades de segurança, proteger códigos e proteger a cadeia de fornecimento de software. Ele consiste nos seguintes componentes principais:

  • A Verificação de Código verifica automaticamente o código em repositórios em busca de vulnerabilidades de segurança e erros de codificação usando técnicas de análise estática fornecidas pelo CodeQL ou ferramentas de terceiros. Ela identifica possíveis vulnerabilidades de segurança, incluindo aquelas relacionadas a dependências desatualizadas e criptografias fracas.
  • A Verificação de Segredo detecta e ajuda a corrigir a presença de segredos, como tokens de API e chaves criptográficas em repositórios e confirmações. Ela verifica automaticamente o conteúdo de repositórios e gera alertas com base em suas descobertas.
  • As Revisões de dependência ajudam a identificar e gerenciar dependências em projetos de software, com base em dependências diretas e transitivas recuperadas de manifestos de pacote e outros arquivos de configuração. Elas permitem que você avalie o impacto total das alterações nas dependências, incluindo detalhes de versões vulneráveis antes de mesclar uma solicitação de pull.
  • As regras personalizadas de triagem automática ajudam você a gerenciar alertas Dependabot em escala. Com regras personalizadas de triagem automática, você controla quais alertas podem ser ignorados e quais exigem a aplicação de uma atualização de segurança.
  • Os avisos de segurança fornecem avisos de segurança e alertas coletados sobre vulnerabilidades descobertas em dependências de software livre.

O GitHub Advanced Security integra-se nativamente ao GitHub e ao Azure DevOps.

GitHub

O GitHub disponibiliza seus recursos de Segurança Avançada em repositórios privados com base no licenciamento de Segurança Avançada. Depois de comprar o licenciamento do GitHub Advanced Security para sua organização, você poderá habilitar e desabilitar esses recursos no nível da organização ou do repositório. Esses recursos também são habilitados permanentemente em repositórios públicos em GitHub.com sem pré-requisitos de licenciamento e só poderão ser desabilitados se você alterar a visibilidade do projeto.

Para configurar o GitHub Advanced Security para sua organização, no canto superior direito do GitHub.com, selecione o ícone de perfil e selecione Suas organizações. Em seguida, selecione Configurações e, na seção Segurança da barra lateral, selecione Segurança e análise de código. Isso exibirá a página que permite habilitar ou desabilitar todos os recursos de segurança e análise para os repositórios em sua organização.

O impacto das alterações de configuração é determinado pela visibilidade dos repositórios em sua organização:

  • Relatórios de vulnerabilidades privadas – somente repositórios públicos.
  • Grafo de dependência – somente repositórios privados porque o recurso está sempre habilitado para repositórios públicos.
  • Alertas Dependabot – todos os repositórios.
  • Atualizações de segurança Dependabot – todos os repositórios.
  • GitHub Advanced Security – somente repositórios privados porque o GitHub Advanced Security e os recursos relacionados estão sempre habilitados para repositórios públicos.
  • Verificação secreta – repositórios públicos e privados em que o GitHub Advanced Security está habilitado. Essa opção controla se os alertas de verificação secreta para usuários estão habilitados ou não.
  • Verificação de código – repositórios públicos e privados em que o GitHub Advanced Security está habilitado.

Você também pode gerenciar os recursos de segurança e análise para repositórios privados individuais. Para fazer isso, em GitHub.com, navegue até a página principal do repositório e selecione Configurações. Na seção "Segurança" da barra lateral, selecione Segurança e análise de código. No painel de Segurança e análise de código, desabilite ou habilite recursos individuais. O controle do GitHub Advanced Security será desabilitado se sua empresa não tiver comprado as licenças necessárias.

Observe que se você desabilitar o GitHub Advanced Security, a revisão de dependência, os alertas de verificação de segredo para usuários e a verificação de código serão efetivamente desabilitados. Como resultado, todos os fluxos de trabalho que incluem a verificação de código falharão.

Depois de habilitados, os recursos de segurança são integrados diretamente à plataforma do GitHub, fornecendo monitoramento contínuo de segurança e alertas diretamente dentro da interface do GitHub. Os administradores e desenvolvedores do repositório podem acessar insights de segurança, recomendações e etapas acionáveis para lidar com vulnerabilidades de segurança identificadas e fortalecer a postura de segurança geral de seus projetos de software. Além disso, as organizações podem personalizar políticas de segurança, configurar fluxos de trabalho automatizados e integrar o GitHub Advanced Security a outras ferramentas e serviços de segurança para atender às suas necessidades de conformidade e requisitos de segurança específicos.

Azure DevOps

O GitHub Advanced Security para Microsoft Azure DevOps e o Azure Repos tem como destino o Azure Repos e inclui:

  • A Proteção por push de Verificação de Segredo verifica se os pushes de código incluem confirmações que expõem segredos.
  • A Verificação de repositório de Verificação de Segredo pesquisa repositórios de segredos expostos.
  • A Verificação de Dependência identifica vulnerabilidades diretas e transitivas em dependências de software livre.
  • A Verificação de Código usa a análise estática do CodeQL para identificar vulnerabilidades de aplicativo no nível do código, como injeção de SQL e bypass de autenticação.

É possível habilitar a Segurança Avançada no nível da organização, do projeto ou do repositório. Isso habilita automaticamente a proteção por push de verificação secreta e a verificação do repositório. Efetivamente, quaisquer pushes futuros que contenham segredos são bloqueados automaticamente enquanto a verificação secreta é executada em segundo plano.

A verificação de dependência é uma ferramenta de verificação baseada em pipeline. Os resultados são agregados por repositório. É recomendável que você adicione a tarefa de verificação de dependência a todos os pipelines que deseja que sejam verificados. Para obter os resultados de verificação mais precisos, adicione a tarefa de verificação de dependência seguindo as etapas de build de um pipeline que compila o código que você deseja examinar. Você pode adicionar a tarefa Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) diretamente ao seu arquivo de pipeline YAML ou selecioná-la a partir do assistente de tarefas.

A verificação de código também é uma ferramenta de verificação baseada em pipeline em que os resultados são agregados por repositório. Ela tende a ser uma tarefa de build demorada, portanto, considere adicionar a tarefa de verificação de código a um pipeline clonado separado do pipeline de produção principal ou criar um novo pipeline. No pipeline, adicione as tarefas na seguinte ordem:

  • Inicialização do CodeQL com Segurança Avançada (AdvancedSecurity-Codeql-Init@1)
  • Suas etapas de compilação personalizada
  • Executar Segurança Avançada de Análise do CodeQL (AdvancedSecurity-Codeql-Analyze@1)

Além disso, você precisará incluir uma lista separada por vírgulas dos idiomas que está analisando usando a tarefa Advanced Security Initialize CodeQL. Os idiomas com suporte incluem csharp, cpp, go, java, JavaScript, python, ruby e swift.