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.
As equipes de desenvolvimento geralmente se concentram na velocidade e na funcionalidade para fornecer novos recursos e manter os aplicativos em execução sem problemas. Com o tempo, pequenos problemas podem se acumular, como:
- Pontos fracos de segurança conhecidos que permanecem não corrigidos
- Dependência de componentes de software mais antigos com possíveis falhas
- Atrasos no endereçamento de problemas descobertos
Isso cria uma dívida de segurança, um acúmulo significativo de problemas.
A dívida de segurança traz riscos reais. Quanto mais tempo ele fica sem reparação, maior e mais caro ele se torna. A grande dívida de segurança deixa os sistemas vulneráveis a ataques, expõe dados confidenciais e corroe a confiança do cliente.
O desafio é equilibrar o desenvolvimento rápido com a manutenção de 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. As distribuições bem-sucedidas de uma nova ferramenta também exigem alterações na cultura e nos processos.
Execute avaliações de novas ferramentas e processos com grupos piloto para coletar comentários e medir o sucesso. Para obter recursos e métricas de treinamento a serem usados durante as avaliações, consulte as seções 3. Implementar alterações e Métricas a monitorar.
<a href="https://github.com/github-copilot/purchase?ref_product=copilot&ref_type=trial&ref_style=button&ref_plan=enterprise" target="_blank" class="btn btn-primary mt-3 mr-3 no-underline"> <span>Inscreva-se para Copilot</span> <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-link-external" aria-label="link external icon" role="img"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a>
Como o Copilot pode ajudar
Copilot integra considerações de segurança diretamente no ciclo de vida do desenvolvimento. Isso ajuda os desenvolvedores a identificar e lidar proativamente com possíveis vulnerabilidades, mantendo os projetos up-to-date.
Copilot reduz as vulnerabilidades de segurança durante todo o ciclo de vida do desenvolvimento de software.
Durante o desenvolvimento
Copilot revisa o código enquanto você o escreve. Ele usa sua compreensão de falhas de segurança comuns para sinalizar áreas que podem ser vulneráveis à exploração. Essa análise em tempo real apresenta vulnerabilidades ocultas que podem ser perdidas durante o desenvolvimento padrão ou revisões de segurança iniciais.
Quando Copilot identifica problemas, ele sugere alterações de código para corrigir vulnerabilidades. Isso permite que você resolva as fraquezas antecipadamente e impeça 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, o Autofixo do Copilot o analisa e fornece recomendações específicas para resolvê-lo.
Essas correções sugeridas reduzem o tempo gasto pesquisando vulnerabilidades e determinando como resolvê-las. Isso ajuda você a resolver alertas de segurança com mais eficiência e impede a dívida de segurança contínua.
Considerações culturais
Juntamente com o lançamento do GitHub Copilot, aborde quaisquer fatores sociais ou culturais que possam impedi-lo de atingir seus objetivos.
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. Isso permite que sistemas ineficientes e vulneráveis persistam. Isso pode ser causado por um foco excessivo em funcionalidades devido a prazos apertados ou pela falta de conhecimento sobre o impacto a longo prazo da dívida de segurança.
- As equipes podem criar soluções excessivamente complexas para problemas simples. Isso torna o código mais difícil de manter e problemas de segurança mais difíceis de detectar. Isso pode ser causado por um desejo de tornar algo à prova de futuro de forma desnecessária, ou pela pressão para agregar valor por meio da complexidade.
3. Implementar alterações
Quando você identificar a abordagem correta para superar seus obstáculos, amplie as soluções que identificou. Para uma distribuição bem-sucedida de uma nova ferramenta ou processo, atribua a propriedade a cada parte da distribuição, comunique-se de forma transparente sobre suas metas, forneça treinamento eficaz e meça seus resultados.
Esta seção apresenta exemplos cenários, práticas recomendadas e recursos para desenvolvedores. Use esta seção para planejar comunicações e sessões de treinamento para ajudar os funcionários a usar Copilot de uma maneira que esteja alinhada com seu objetivo.
-
[Analise seu código em busca de vulnerabilidades de segurança](#analyze-your-code-for-security-vulnerabilities) -
[Use Autofixo do Copilot para alertas de code scanning](#use-copilot-autofix-for-code-scanning-alerts) -
[Práticas recomendadas para desenvolvedores](#best-practices-for-developers) -
[Recursos para desenvolvedores](#resources-for-developers)
Analise seu código em busca de vulnerabilidades de segurança
Dependendo do tamanho da sua base de código, Copilot pode não conseguir analisar todo o seu projeto enquanto você estiver escrevendo o código. Isso ocorre devido a restrições de contexto. No entanto, você pode solicitar que ele analise arquivos específicos para práticas de código inseguras.
-
Abra os arquivos a serem analisados no Visual Studio Code.
-
No Chat Copilot, pergunte:
Analyze this code for potential security vulnerabilities and suggest fixesUse a
#filevariável de chat para incluir especificamente o conteúdo de um arquivo no prompt. Você também pode usar arquivos de prompts e instruções personalizadas para orientar as respostas de Copilot. -
Chat Copilot analisa o código, identifica brechas de segurança e sugere correções.
-
Examine as alterações sugeridas e aplique-as conforme apropriado.
Outros exemplos de prompts:
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?
Use Autofixo do Copilot para alertas de code scanning
Autofixo do Copilot faz parte de GitHub Code Security que sugere possíveis correções para alertas de code scanning. Está disponível em repositórios públicos e repositórios com licença para GitHub Code Security.
Ao executar uma verificação de código em um repositório, os problemas potenciais são exibidos como alertas code scanning. Resolva os alertas seguindo estas etapas:
- Abra um alerta no GitHub.
- Clique em Gerar correção. Isso é exibido quando o Copilot pode resolver o alerta.
- Autofixo do Copilot gera uma possível correção e mostra as alterações de código no alerta. Você pode confirmar essa alteração de código em uma nova ramificação ou em uma ramificação existente.
- Teste o código. Em seguida, abra uma solicitação de pull para mover as alterações para o branch principal.
- Depois de mover as alterações para a ramificação principal e code scanning verificar a correção, o alerta será fechado automaticamente.
Práticas recomendadas para desenvolvedores
Os desenvolvedores devem:
-
**Use Chat Copilot regularmente para analisar trechos de código em busca de vulnerabilidades**. Torne-se um hábito verificar o código para problemas de segurança antes de confirmar alterações. -
**Use Autofixo do Copilot para alertas de code scanning**. Quando alertas aparecerem, use Autofixo do Copilot como primeiro passo para resolvê-los rapidamente. -
**Forneça instruções claras e específicas para Chat Copilot**. Quanto mais detalhada for a sua solicitação, melhor 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. -
**Combine Copilot com ferramentas de segurança existentes**. Use Copilot como uma camada adicional de análise de segurança, não como um substituto para scanners e práticas de segurança dedicados.
Os desenvolvedores não devem:
-
**Aceitar automaticamente as sugestões de segurança de Copilot**. Sempre examine e teste as alterações de código sugeridas para garantir que elas sejam apropriadas e eficazes. -
**Confie exclusivamente em Copilot para auditorias de segurança abrangentes**. Copilot é uma ferramenta útil, mas não deve substituir análises de segurança e testes de penetração completos. -
**Ignorar alertas de code scanning**. Resolva todos os alertas prontamente, mesmo que pareçam menores, para evitar o acúmulo de dívidas de segurança. -
**Use Copilot como desculpa para evitar aprender práticas de programação segura**. Continue a educar a si mesmo e à sua equipe sobre as melhores práticas de segurança. -
**Suponha que Copilot capturará todas as vulnerabilidades**. A segurança é um processo contínuo e a vigilância é sempre necessária. -
**Use Copilot para contornar as políticas de segurança**. Siga os protocolos de segurança da sua organização. Use Copilot como uma ferramenta para aprimorá-los, não para contorná-los.
Recursos para desenvolvedores
-
[Copilot Chat no GitHub](/copilot/using-github-copilot/copilot-chat/asking-github-copilot-questions-in-github) -
[AUTOTITLE](/copilot/copilot-chat-cookbook/security-analysis/finding-existing-vulnerabilities-in-code) -
[GitHub Skills - Primeiros passos com GitHub Copilot](https://github.com/skills/getting-started-with-github-copilot)
Métricas a serem observadas
Para avaliar 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. Recomendamos considerar as principais zonas de qualidade, velocidade e felicidade dos desenvolvedores e como essas zonas se reúnem para contribuir com os resultados dos negócios.
Aqui estão algumas métricas para avaliar o impacto de Copilot sobre essa 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. -
**Hora de 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.