Este guia pressupõe que você planejou e iniciou uma avaliação do GitHub Advanced Security para uma conta empresarial existente ou de avaliação do GitHub; confira Planejando uma avaliação do GitHub Advanced Security.
Introdução
O Code scanning e a análise de dependência funcionam da mesma forma em repositórios públicos e em repositórios privados e internos com o GitHub Advanced Security habilitado. Além disso, o GitHub Advanced Security permite que você crie campanhas de segurança em que especialistas e desenvolvedores de segurança podem colaborar para reduzir efetivamente a dívida técnica.
Este artigo se concentra em como você pode combinar esses recursos com controles de nível empresarial para padronizar e impor seu processo de desenvolvimento.
Refinar as configurações de segurança
Diferente do secret scanning, em que uma só configuração de segurança normalmente é aplicada a todos os repositórios, você provavelmente quer ajustar a configuração do code scanning para tipos de repositórios diferentes. Por exemplo, talvez seja necessário criar configurações adicionais para que:
- O Code scanning use executores com um rótulo específico para aplicar a repositórios que exigem um ambiente especializado ou que usam registros privados.
- O Code scanning fique "Não definido" para aplicação a repositórios que precisam usar a configuração avançada ou que exigem uma ferramenta de terceiros.
Para sua avaliação, é mais simples criar uma configuração de segurança de nível empresarial primário e aplicá-la aos repositórios de teste. Em seguida, você pode criar as configurações de segurança adicionais necessárias e aplicá-las a um subconjunto de repositórios selecionados usando linguagem de código, propriedades personalizadas, visibilidade e outras opções de filtro. Para saber mais, confira Habilitar recursos de segurança em sua conta empresarial de avaliação e Aplicando uma configuração de segurança personalizada.
Fornecer acesso para exibir resultados do code scanning
Por padrão, somente o administrador do repositório e o proprietário da organização podem exibir todos os alertas do code scanning em sua área. Atribua a função predefinida de gerente de segurança a todas as equipes e usuários da organização que você deseja que acessem os alertas encontrados durante a avaliação. Também convém conceder ao proprietário da conta corporativa essa função para cada organização na avaliação. Para saber mais, confira Gerenciando os gerentes de segurança da sua organização e Usando funções de organização.
Avaliar e refinar os resultados da configuração padrão
A configuração padrão do code scanning executa um conjunto de consultas de alta confiança. Elas são escolhidos para garantir que, quando você distribuir o code scanning em toda a base de código, os desenvolvedores vejam um conjunto limitado de resultados de alta qualidade, com poucos resultados falsos positivos.
Você pode ver um resumo dos resultados encontrados nas organizações de sua conta empresarial de avaliação na guia Code security da empresa. Também há exibições separadas para cada tipo de alerta de segurança; confira Exibir insights de segurança.
Se não vir os resultados esperados para a code scanning, você poderá atualizar a configuração padrão para executar um pacote de consultas estendido para os repositórios em que esperava encontrar mais resultados. Isso é controlado no nível do repositório; confira Editar as definições da configuração padrão.
Tip
Se você estiver impedido de editar as configurações do repositório para a code scanning, edite a configuração de segurança usada pelo repositório para que as configurações não sejam impostas.
Se o pacote estendido ainda não encontrar os resultados esperados, talvez seja necessário habilitar a configuração avançada para personalizar totalmente a análise. Para saber mais, confira Sobre a página de status da ferramenta para a verificação de código e Como definir a configuração avançada para verificação de código.
Impor a análise automatizada de pull requests
Há três tipos diferentes de análise automatizada de pull requests incorporados ao GitHub:
- A Code scanning usa consultas para destacar padrões de codificação incorretos e vulnerabilidades de segurança conhecidas. O Copilot Autofix sugere correções para problemas identificados pela code scanning.
- Dependency review resume as alterações de dependência feitas pela pull request e realça todas as dependências com vulnerabilidades conhecidas ou que não atendem aos seus padrões de desenvolvimento.
- A revisão do Copilot usa IA para fornecer comentários sobre suas alterações com correções sugeridas sempre que possível.
Essas revisões automatizadas são uma extensão valiosa para autorrevisão e facilitam que os desenvolvedores apresentem uma pull request mais completa e segura para revisão por pares. Além disso, a code scanning e as revisões de dependência podem ser impostas para proteger a segurança e a conformidade do código.
Note
O GitHub Copilot Autofix está incluído na licença do GitHub Advanced Security. A revisão do Copilot requer um plano pago do Copilot.
Análise do Code scanning
Quando a code scanning está habilitada, você pode bloquear mesclagens em branches importantes, a menos que a pull request atenda aos seus requisitos criando um conjunto de regras de código para a empresa ou organização. Normalmente, você exigiria que os resultados da code scanning estivessem presentes e que alertas importantes fossem resolvidos.
- Type of ruleset: branch.
- Require code scanning results: habilite para bloquear a mesclagem até que os resultados sejam gerados com êxito para o commit e a referência dos alvos da pull request.
- Required tools and alert thresholds: defina o nível de alertas que devem ser resolvidos antes que um pull request possa ser mesclado para cada ferramenta de code scanning usada.
Assim como acontece com todos os conjuntos de regras, você pode controlar exatamente em quais organizações (nível empresarial), repositórios e branches eles atuam e também definir funções ou equipes que podem ignorar a regra. Para saber mais, confira Sobre os conjuntos de regras.
Análise de dependência
Quando o GitHub Advanced Security e grafo de dependência são habilitados para um repositório, os arquivos de manifesto têm uma exibição de comparação avançada que mostra um resumo das dependências que ele adiciona ou atualiza. Esse é um resumo útil para revisores humanos da pull request, mas não fornece nenhum controle de quais dependências são adicionadas à base de código.
A maioria das empresas estabelece verificações automáticas para bloquear o uso de dependências com vulnerabilidades conhecidas ou termos de licença sem suporte.
- Crie um repositório privado para servir como uma página central onde você pode armazenar fluxos de trabalho reutilizáveis para a empresa.
- Edite as configurações de ações do repositório para permitir que todos os repositórios privados na empresa acessem fluxos de trabalho neste repositório central; confira Como permitir o acesso a componentes em um repositório privado.
- No repositório central, crie um fluxo de trabalho reutilizável para executar a ação de revisão de dependência, configurando a ação para atender às suas necessidades de negócios; confira Configurando a ação de revisão de dependência.
- Em cada organização, crie ou atualize conjuntos de regras de branch para adicionar o novo fluxo de trabalho às verificações de status necessárias; confira Aplicando a revisão de dependência em uma organização.
Isso permite que você atualize a configuração em um só local, mas use o fluxo de trabalho em muitos repositórios. Talvez você queira usar esse repositório central para manter outros fluxos de trabalho. Para saber mais, confira Reutilizar fluxos de trabalho.
Revisão do Copilot
Note
- Revisão de código do GitHub Copilot is in versão prévia pública and subject to change.
- To participate in the versão prévia pública, an administrator of your organization must opt in to the use of previews of Copilot features. See Gerenciar políticas do Copilot na sua organização.
- Some functionality is available to all enabled Copilot subscribers, but other functionality is only available to a limited number of users. To join the waitlist for additional functionality, see Join the Revisão de código do Copilot waitlist.
- The Termos de licença de pré-lançamento do GitHub apply to your use of this product.
Por padrão, os usuários solicitam uma revisão do Copilot da mesma forma que fazem com revisores humanos. No entanto, você pode atualizar ou criar um conjunto de regras de branch no nível da organização para adicionar automaticamente o Copilot como revisor a todas as pull requests feitas a branches selecionados em todos os repositórios ou em repositórios selecionados. Para saber mais, confira Como usar a revisão de código do GitHub Copilot.
O Copilot deixa um comentário de revisão sobre cada pull request que analisa, sem aprovar a pull request ou solicitar alterações. Isso garante que sua revisão seja consultiva e não bloqueie o trabalho de desenvolvimento. De maneira semelhante, você não deve impor a resolução de sugestões feitas pelo Copilot, pois as sugestões de IA têm limitações conhecidas; confira Uso responsável da revisão de código do GitHub Copilot.
Definir onde o Copilot Autofix é permitido e habilitado
O Copilot Autofix ajuda os desenvolvedores a entender e corrigir alertas de code scanning encontrados em suas pull requests. Recomendamos que você habilite esse recurso para todos os repositórios para ajudar os desenvolvedores a resolver alertas com eficiência e aumentar a compreensão da codificação segura.
Há dois níveis de controle:
- As empresas podem permitir ou bloquear o uso do Copilot Autofix em toda a empresa usando a política "Code security"; confira Como impor políticas para segurança e análise de código na empresa.
- As organizações podem habilitar ou desabilitar o Copilot Autofix para todos os repositórios de propriedade da organização nas "Global settings" para a organização; confira Configurações de segurança globais para sua organização.
Envolver desenvolvedores na correção de segurança
Campanhas de segurança são uma maneira de as equipes de segurança se envolverem com os desenvolvedores para corrigir a dívida técnica de segurança. Elas também são uma maneira prática de combinar educação em codificação segura com exemplos de código vulnerável no código com que seus desenvolvedores estão familiarizados. Para saber mais, confira Sobre as campanhas de segurança e Melhores práticas para corrigir alertas de segurança em escala.
Proporcionar um ambiente de desenvolvimento seguro
O ambiente de desenvolvimento tem muitos componentes. Alguns dos recursos mais úteis para dimensionar e padronizar um ambiente de desenvolvimento seguro no GitHub são:
- Configurações de segurança: defina a configuração de recursos de segurança para a empresa, uma organização, um subconjunto de repositórios da organização ou novos repositórios; confira Refinar suas configurações de segurança.
- Políticas: proteja e controle o uso de recursos para a empresa ou uma organização; confira Aplicar as políticas para sua empresa.
- Conjuntos de regras: proteja e controle branches, tags e pushes para uma organização, um subconjunto de repositórios da organização ou um repositório; confira Criar conjuntos de regras para repositórios na sua organização.
- Modelos de repositório: defina os fluxos de trabalho de segurança e os processos necessários para cada tipo de ambiente; confira Criar um repositório de modelos. Por exemplo, cada modelo pode conter um destes itens especializados:
- Arquivo de política de segurança definindo a posição de segurança da empresa e como relatar preocupações de segurança.
- Fluxo de trabalho para habilitar Dependabot version updates para gerenciadores de pacotes usados pela empresa.
- Fluxo de trabalho definindo a configuração avançada para a code scanning para linguagens de desenvolvimento com suporte em que os resultados da configuração padrão não são suficientes.
Além disso, quando um desenvolvedor cria um repositório a partir de um modelo, ele deve definir o valor das propriedades personalizadas necessárias. Propriedades personalizadas são muito úteis para selecionar um subconjunto de repositórios aos quais você deseja aplicar configurações, políticas ou conjuntos de regras; confira Gerenciando propriedades personalizadas para repositórios em sua empresa.
Próximas etapas
Quando terminar de explorar essas opções e os recursos da secret scanning, você estará pronto para testar suas descobertas até agora em relação às suas necessidades comerciais e, em seguida, explorar mais.