O guia é inspirado pelo ESSP (Guia estratégico do sistema de engenharia) do GitHub, que recomenda estratégias e métricas para impulsionar melhorias em sistemas de engenharia.
Se você estiver iniciando uma distribuição do Copilot, recomendamos definir suas metas, planejar a distribuição adequadamente e comunicar as metas com clareza à equipe. Confira Alcançar as metas de engenharia da sua empresa com o GitHub Copilot.
1. Identificar barreiras ao sucesso
A primeira etapa recomendada pelo ESSP é desenvolver uma compreensão clara dos obstáculos que impedem melhorias na empresa. Ao entender sua linha de base atual, seu estado futuro desejado e as barreiras que impedem o progresso, você pode garantir alterações direcionadas e eficazes.
À medida que as equipes de desenvolvimento trabalham para fornecer novos recursos e manter seus aplicativos funcionando sem problemas, o foco geralmente é a velocidade e a funcionalidade. Porém, com o tempo, pequenos problemas podem se acumular, como:
- Pontos fracos de segurança conhecidos que não foram corrigidos
- Dependência de componentes de software mais antigos com possíveis falhas
- Atrasos no endereçamento de problemas quando eles são descobertos
Para muitas organizações, esse acúmulo de problemas de segurança não resolvidos e componentes desatualizados cria uma lista de pendências significativa: uma dívida de segurança.
Essa dívida traz riscos reais. Quanto mais demorar para resolvê-la, maior ela poderá ficar e mais caro custará para resolver. Uma grande dívida de segurança pode deixar os sistemas vulneráveis a ataques, expor dados confidenciais e, por fim, minar a confiança do cliente e afetar o resultado final.
O desafio é equilibrar a necessidade de desenvolvimento rápido com a responsabilidade crucial de manter um ambiente de software seguro e estável.
2. Avaliar suas opções
A próxima etapa é avaliar e concordar com soluções para resolver as barreiras identificadas na etapa um. Neste guia, vamos focar o impacto que o GitHub Copilot pode ter na meta identificada. Lembre-se de que distribuições bem-sucedidas de uma nova ferramenta também exigem alterações na cultura e nos processos.
Você executará testes de novas ferramentas e processos com grupos piloto para coletar comentários e medir o sucesso. Para recursos de treinamento e métricas a serem usados durante as avaliações, leia as seções 3. Implementar alterações e Métricas a observar.
Como o Copilot pode ajudar
O GitHub Copilot pode ajudar a reduzir a dívida de segurança integrando considerações de segurança diretamente ao ciclo de vida de desenvolvimento. Seus recursos podem facilitar que os desenvolvedores identifiquem e resolvam proativamente possíveis vulnerabilidades e mantenham seus projetos atualizados.
O Copilot pode ajudar a reduzir as vulnerabilidades de segurança em todo o ciclo de vida de desenvolvimento de software.
Durante o desenvolvimento
O Copilot revisa proativamente o código conforme ele é escrito, aproveitando sua compreensão de falhas de segurança comuns e padrões para sinalizar áreas que podem estar suscetíveis à exploração. Essa análise em tempo real pode exibir vulnerabilidades ocultas que, de outra forma, podem ser negligenciadas durante o desenvolvimento padrão ou as revisões de segurança iniciais.
Quando os problemas são identificados, o Copilot pode sugerir instantaneamente alterações de código acionáveis para corrigir vulnerabilidades, capacitando os desenvolvedores a lidar com pontos fracos no início do ciclo de desenvolvimento e impedir que a dívida de segurança se acumule.
Manutenção contínua
O Copilot se integra às capacidades de digitalização de código do GitHub para manter sua base de código segura. Quando a verificação de código identifica um alerta de segurança em potencial, o Correção automática do Copilot pode analisar a vulnerabilidade de modo inteligente e fazer recomendações específicas de contexto direcionadas para resolvê-la.
Essas sugestões concretas de correção simplificam a correção, reduzindo o tempo para os desenvolvedores pesquisarem vulnerabilidades e descobrirem como resolvê-las. Assim, os alertas de segurança são resolvidos com mais eficiência e são menos propensos a permanecer ou contribuir para a dívida de segurança em andamento.
Considerações culturais
Além da distribuição do GitHub Copilot, você também deve abordar fatores sociais ou culturais que possam impedir que você atinja suas metas.
Os exemplos a seguir são extraídos da seção "Anti-Patterns" no ESSP.
- As equipes podem ignorar ou adiar a dívida de segurança, permitindo que sistemas ineficientes e vulneráveis persistam. Isso pode ser causado por um foco orientado pelo prazo nos recursos, ou pela falta de educação sobre o impacto de longo prazo da dívida de segurança.
- As equipes podem criar soluções excessivamente complexas para problemas simples, o que torna o código mais difícil de manter e problemas de segurança, mais difíceis de detectar. Isso pode ser devido a um desejo de desnecessariamente preparar para o futuro ou de pressão para agregar valor por meio da complexidade.
3. Implementar alterações
Quando você identificar a abordagem certa para superar suas barreiras, dimensionará as soluções identificadas. Para uma distribuição bem-sucedida de uma nova ferramenta ou processo, é importante atribuir a propriedade a cada parte da distribuição, comunicar-se de modo transparente sobre suas metas, fornecer treinamento eficaz e medir seus resultados.
Esta seção apresenta exemplos cenários, práticas recomendadas e recursos para desenvolvedores. É recomendável usar esta seção para planejar as sessões de comunicação e treinamento para ajudar os funcionários a usar o Copilot de um modo alinhado à meta.
- Analisar seu código em busca de vulnerabilidades de segurança
- Usar o Correção automática do Copilot para alertas do code scanning
- Práticas recomendadas para desenvolvedores
- Recursos para desenvolvedores
Analisar seu código em busca de vulnerabilidades de segurança
Dependendo do tamanho da base de código, e devido a restrições de contexto, o Copilot pode não conseguir analisar todo o projeto enquanto os desenvolvedores estão escrevendo código. Porém, os desenvolvedores podem adotar uma prática de solicitar que o Copilot analise arquivos específicos para práticas de código inseguras.
-
Abra os arquivos a serem analisados no Visual Studio Code.
-
No Copilot Chat, pergunte:
Analyze this code for potential security vulnerabilities and suggest fixes
Você também pode usar a variável de chat
#file
para incluir especificamente o conteúdo de um arquivo no prompt ou usar arquivos de prompt e instruções personalizadas para orientar respostas do Copilot. -
O Copilot Chat analisará o código, identificará as vulnerabilidades de segurança e sugerirá as correções apropriadas.
-
Examine as alterações sugeridas e aplique-as conforme apropriado.
Outros exemplos de prompts incluem:
Are there any security vulnerabilities in my code? If so, can you explain them and suggest fixes?
Does this code follow secure code best practices? If not, what specific improvements can I make?
What are the potential security risks in this code if it were deployed to production? How can I mitigate them?
Usar o Correção automática do Copilot para alertas do code scanning
O Correção automática do Copilot é um componente do GitHub Code Security que pode sugerir correções potenciais para alertas do code scanning. O Correção automática do Copilot está disponível em repositórios públicos e repositórios com uma licença para o GitHub Code Security.
Quando alguém executa uma verificação de código em um repositório, possíveis problemas são gerados como alertas do code scanning no repositório. Os desenvolvedores podem resolver os alertas seguindo este fluxo:
- Abra um alerta no GitHub.
- Clique em Generate fix, que será exibido se Copilot puder resolver o alerta.
- O Correção automática do Copilot gerará uma correção potencial para esse alerta, mostrando as alterações de código no próprio alerta. Em seguida, ele dá a opção de confirmar essa alteração de código em um novo branch ou em um branch existente.
- Neste ponto, você pode testar o código e abrir uma pull request para mover as alterações para o branch principal.
- Depois de mover as alterações para o branch principal e o code scanning verificar se o alerta está corrigido, o alerta será fechado automaticamente.
Práticas recomendadas para desenvolvedores
Os desenvolvedores devem:
- Usar o Copilot Chat regularmente para analisar snippets de código em busca de vulnerabilidades: torne um hábito verificar proativamente problemas de segurança no código antes de confirmar alterações.
- Aproveitar o Correção automática do Copilot para alertas do code scanning: quando os alertas forem exibidos, use o Correção automática do Copilot como uma primeira etapa para resolvê-los rapidamente.
- Fornecer prompts claros e específicos para o Copilot Chat: quanto mais detalhada sua solicitação, melhor o Copilot poderá analisar o código e sugerir correções relevantes. Por exemplo, inclua a linguagem de programação e áreas específicas de preocupação em seus prompts.
- Combinar o Copilot com ferramentas de segurança existentes: use o Copilot como uma camada adicional de análise de segurança, não como uma substituição para verificadores e práticas de segurança dedicados.
Os desenvolvedores não devem:
- Aceitar automaticamente sugestões de segurança do Copilot: sempre examine e teste as alterações de código sugeridas pelo Copilot para garantir que sejam apropriadas e eficazes.
- Contar apenas com o Copilot para auditorias de segurança abrangentes: o Copilot é uma ferramenta útil, mas não deve substituir revisões completas de segurança e testes de penetração.
- Ignorar alertas do code scanning: para evitar o acúmulo de dívidas de segurança, resolva todos os alertas prontamente, mesmo que pareçam pouco importantes.
- Usar o Copilot como desculpa para evitar aprender práticas de codificação seguras: continue a treinar a si mesmo e à sua equipe nas práticas recomendadas de segurança.
- Supor que o Copilot capturará todas as vulnerabilidades: a segurança é um processo contínuo, e vigilância é sempre necessária.
- Usar o Copilot para ignorar políticas de segurança: siga os protocolos de segurança da sua organização e use o Copilot como uma ferramenta para aprimorá-los, não contorná-los.
Recursos para desenvolvedores
- Chat do Copilot no GitHub
- Finding existing vulnerabilities in code
- GitHub Skills – introdução ao GitHub Copilot
Métricas a observar
Para analisar avaliações de novas ferramentas e garantir que suas distribuições completas estejam fornecendo melhorias consistentes, monitore os resultados e faça ajustes quando necessário. Em geral, recomendamos considerar as principais zonas de qualidade, velocidade e satisfação do desenvolvedor e como essas zonas se reúnem para contribuir com os resultados dos negócios.
Aqui estão algumas métricas que recomendamos analisar para avaliar o impacto do Copilot nessa meta específica.
- Taxa de dívida de segurança: use a visão geral de segurança para ver se o número de alertas cai ao longo do tempo.
- Tempo para corrigir problemas de segurança: use a visão geral de segurança para ver se o tempo para corrigir problemas de segurança cai ao longo do tempo.