Este guia pressupõe que você planejou e iniciou uma avaliação de GitHub Advanced Security para uma conta empresarial, existente GitHub ou de teste, consulte Planejando um teste de GitHub Advanced Security.
Introduçã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 Code Security habilitado. Além disso, Code Security permite que você crie campanhas de segurança em que especialistas em segurança e desenvolvedores possam 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
Ao contrário de Secret Protection, em que uma única configuração de segurança normalmente é aplicada a todos os repositórios, você provavelmente deseja ajustar a configuração de code scanning para diferentes tipos de repositórios. Por exemplo, talvez seja necessário criar configurações adicionais para que:
- Code scanning usa executores com um rótulo específico para aplicar a repositórios que exigem um ambiente especializado ou que usam registros privados.
- Code scanning é "Não definido" para aplicar 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 empresa em fase de avaliação e Aplicando uma configuração de segurança personalizada.
Fornecer acesso para exibir os resultados de code scanning
Por padrão, somente o administrador do repositório e o proprietário da organização podem exibir todos os code scanning alertas 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 pode ser conveniente conceder ao proprietário da conta corporativa essa função para cada organização no teste. 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 para code scanning executa um conjunto de consultas de alta confiança. Eles são escolhidos para garantir que, ao implementar code scanning em toda a base de código, os desenvolvedores vejam um conjunto limitado de resultados de alta qualidade, com poucos falsos positivos.
Você pode ver um resumo de quaisquer resultados encontrados nas organizações na versão de avaliação da sua empresa na guia Security and quality da empresa. Também há exibições separadas para cada tipo de alerta de segurança. Confira Exibir insights de segurança.
Se você não visualizar os resultados esperados para code scanning, poderá atualizar a configuração padrão para executar uma suíte de consultas estendida em repositórios onde esperava encontrar mais resultados. Isso é controlado no nível do repositório; confira Editar as definições da configuração padrão.
Dica
Se você estiver impedido de editar as configurações do repositório code scanning, edite a configuração de segurança usada pelo repositório de modo 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 Usar a página de status da ferramenta para verificação de código e Como definir a configuração avançada para verificação de código.
Garantir a análise automatizada de pull requests
Há três tipos diferentes de análise automatizada de solicitações de pull incorporadas em GitHub:
- Code scanning A análise usa consultas para realçar padrões de codificação inválidos conhecidos e vulnerabilidades de segurança. Autofixo do Copilot sugere correções para problemas identificados por 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.
- Copilot A revisão de código usa a 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, code scanning e as revisões de dependência podem ser impostas para proteger a segurança e a conformidade do seu código.
Observação
Correção Automática do GitHub Copilot está incluído na licença para GitHub Code Security. Copilot A revisão de código requer um plano pago Copilot .
Code scanning Análise
Quando code scanning estiver habilitado, você poderá bloquear mesclagens em branches importantes, a menos que a solicitação de pull atenda aos seus requisitos, ao criar um conjunto de regras de código para a empresa ou organização. Normalmente, você exigiria que os resultados de code scanning estivessem presentes e que quaisquer alertas importantes fossem resolvidos.
- Tipo de conjunto de regras: ramo.
- Exigir code scanning resultados: habilite bloquear a mesclagem até que os resultados sejam gerados com êxito para a confirmação e a referência aos destinos de solicitação de pull.
- Ferramentas necessárias e limites de alerta: Defina o nível de alertas que devem ser resolvidos antes que uma solicitação de pull possa ser mesclada para cada code scanning ferramenta 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.
Revisão de dependência
Quando Code Security e o gráfico de dependência são habilitados para um repositório, os arquivos de manifesto têm uma exibição de diferenciação detalhada que mostra um resumo das dependências adicionadas ou atualizadas. 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ências.
- 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 Como aplicar a revisão de dependências 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 de código do Copilot
Observação
- Se você receber uma Copilot assinatura de uma organização, só poderá participar do prévia pública no site GitHub se um proprietário da sua organização ou empresa tiver ativado Revisão de código do Copilot. Consulte Gerenciando políticas e recursos para GitHub Copilot em sua organização e Gerenciando políticas e recursos para GitHub Copilot em sua empresa na GitHub Enterprise Cloud documentação.
Por padrão, os usuários solicitam uma revisão de Copilot da mesma forma que fazem com os revisores humanos. No entanto, você pode atualizar ou criar um conjunto de regras de ramificação em nível de organização para adicionar Copilot automaticamente como revisor a todas as solicitações de pull feitas em ramificações selecionadas em todos os repositórios ou em repositórios selecionados. Consulte Configurando a revisão automática de código GitHub Copilot na GitHub Enterprise Cloud documentação.
Copilot deixa um comentário de revisão em cada solicitação de pull que revisa, sem aprovar a solicitação de pull ou solicitar alterações. Isso garante que sua revisão seja consultiva e não bloqueie o trabalho de desenvolvimento. Da mesma forma, você não deve impor a resolução de sugestões feitas por Copilot porque as sugestões de IA têm limitações conhecidas, consulte Cartão de aplicativo: GitHub Copilot Agents na GitHub Enterprise Cloud documentação.
Definir onde Autofixo do Copilot é permitido e habilitado
Autofixo do Copilot ajuda os desenvolvedores a entender e corrigir code scanning alertas encontrados em suas solicitações de pull. Recomendamos que você habilite esse recurso para todos os repositórios com Code Security habilitado 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 de Autofixo do Copilot em toda a empresa por meio de uma política "Advanced Security"; consulte: Como impor políticas para segurança e análise de código na empresa.
- As organizações podem habilitar ou desabilitar Autofixo do Copilot para todos os repositórios de propriedade da organização nas "configurações globais" da organização, consulte 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 um jeito prático 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 obter mais informações, consulte Sobre as campanhas de segurança e Executando uma campanha de segurança para corrigir alertas em escala na GitHub Enterprise Cloud documentação.
Proporcionar um ambiente de desenvolvimento seguro
O ambiente de desenvolvimento tem muitos componentes. Alguns dos recursos mais úteis para dimensionar e padronizar um ambiente GitHub de desenvolvimento seguro 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: proteger e controlar o uso de recursos para a empresa ou organização, veja 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 conteúdo especializado:
- 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.
- O fluxo de trabalho que define a configuração avançada para code scanning em linguagens de desenvolvimento compatíveis onde a configuração padrão não é suficiente.
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. As 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, consulte Gerenciando propriedades personalizadas para repositórios em sua empresa na GitHub Enterprise Cloud documentação.
Próximas etapas
Quando terminar de explorar essas opções e secret scanning recursos, você estará pronto para testar suas descobertas até agora em relação às suas necessidades comerciais e, em seguida, explorar mais.
Leitura adicional
- Referência de uso seguro
- Aplicar as políticas para sua empresa
- Controlando como as pessoas usam repositórios em sua empresa na GitHub Enterprise Cloud documentação
- Aplicar GitHub Advanced Security em grande escala