Skip to main content

Reducir la deuda de seguridad en tu empresa con GitHub Copilot

Comprende las características, habilita a los desarrolladores y mide el impacto de Copilot.

¿Quién puede utilizar esta característica?

GitHub Copilot para empresas or GitHub Copilot para grandes empresas

La guía está inspirada en el Cuaderno de estrategias de éxito del sistema de ingeniería (ESSP) de GitHub, que recomienda estrategias y métricas para impulsar mejoras en los sistemas de ingeniería.

Si vas a iniciar un lanzamiento de Copilot, se recomienda definir los objetivos, planear el lanzamiento en consecuencia y comunicar claramente los objetivos al personal. Consulta Lograr los objetivos de ingeniería de tu empresa con GitHub Copilot.

1. Identificación de barreras para alcanzar el éxito

El primer paso que recomienda el ESSP es desarrollar una comprensión clara de los obstáculos que impiden mejoras en tu empresa. Al comprender la línea de base actual, el estado futuro deseado y las barreras que te impiden avanzar, puedes asegurarte de que los cambios están dirigidos al objetivo y son efectivos.

Los equipos de desarrollo suelen centrarse en la velocidad y la funcionalidad para ofrecer nuevas características y mantener las aplicaciones en funcionamiento sin problemas. Con el tiempo, se pueden acumular pequeños problemas, como:

  • Puntos débiles de seguridad conocidos que permanecen sin resolver
  • Dependencia de componentes de software más antiguos con posibles errores.
  • Retrasos en la solución de problemas detectados

Esto crea una deuda de seguridad, un atraso significativo de problemas.

La deuda de seguridad conlleva riesgos reales. Cuanto más tiempo pase sin abordarse, mayor y más costoso será. La deuda de seguridad grande deja a los sistemas vulnerables a ataques, expone datos confidenciales y reduce la confianza del cliente.

El desafío es equilibrar el desarrollo rápido con el mantenimiento de un entorno de software seguro y estable.

2. Evaluación de las opciones

El siguiente paso consiste en evaluar y aceptar soluciones para abordar las barreras que has identificado en el paso uno. En esta guía, nos centraremos en el impacto que GitHub Copilot puede tener en el objetivo que has identificado. Los lanzamientos exitosos de una nueva herramienta también requieren cambios en la cultura y los procesos.

Ejecute pruebas de nuevas herramientas y procesos con grupos piloto para recopilar comentarios y medir el éxito. Para obtener información sobre los recursos de entrenamiento y las métricas que se usarán durante las pruebas, consulte las secciones 3. implemente cambios y Métricas a observar.

          <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>Regístrese 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>

Cómo Copilot puede servir de ayuda

Copilot integra las consideraciones de seguridad directamente en el ciclo de vida de desarrollo. Esto ayuda a los desarrolladores a identificar y abordar de forma proactiva posibles vulnerabilidades al tiempo que mantiene los proyectos up-to-date.

Copilot reduce las vulnerabilidades de seguridad durante el ciclo de vida del desarrollo de software.

Durante el desarrollo

Copilot revisa el código a medida que lo escribe. Usa su comprensión de los errores comunes de seguridad para marcar áreas que podrían ser vulnerables a la explotación. Este análisis en tiempo real muestra vulnerabilidades ocultas que podrían perderse durante las revisiones de seguridad iniciales o de desarrollo estándar.

Cuando Copilot identifica problemas, sugiere cambios de código para corregir vulnerabilidades. Esto le permite abordar las debilidades anticipadas y evitar que la deuda de seguridad se acumule.

Mantenimiento continuo

Copilot se integra con las funcionalidades de escaneo de código de GitHub para proteger el código base existente. Cuando el examen de código identifica una alerta de seguridad, Autofijo de Copilot lo analiza y proporciona recomendaciones dirigidas para resolverla.

Estas correcciones sugeridas reducen el tiempo que dedica a investigar vulnerabilidades y determinar cómo abordarlas. Esto le ayuda a resolver las alertas de seguridad de forma más eficaz y evita la deuda de seguridad en curso.

Consideraciones culturales

Junto con el lanzamiento de GitHub Copilot, considere los factores sociales o culturales que podrían impedirle lograr sus objetivos.

Los ejemplos siguientes se extraen de la sección "Antipatrones" del ESSP.

  • Equipos pueden omitir o aplazar la deuda de seguridad. Esto permite que los sistemas ineficaces y vulnerables persistan. Esto podría deberse a un enfoque basado en la fecha límite sobre las características o a una falta de educación sobre el impacto a largo plazo de la deuda de seguridad.
  • Los equipos pueden crear soluciones excesivamente complejas para problemas simples. Esto dificulta el mantenimiento del código y los problemas de seguridad más difíciles de detectar. Esto podría deberse a un deseo de anticipar el futuro innecesariamente o a presiones para añadir valor mediante la complejidad.

3. Implementación de cambios

Cuando haya identificado el enfoque adecuado para superar las barreras, escale las soluciones que identificó. Para un lanzamiento correcto de una nueva herramienta o proceso, asigne la propiedad a cada parte del lanzamiento, comunique de forma transparente los objetivos, proporcione entrenamiento eficaz y mida los resultados.

En esta sección se proporcionan escenarios de ejemplo, procedimientos recomendados y recursos para desarrolladores. Use esta sección para planear las comunicaciones y las sesiones de aprendizaje para ayudar a los empleados a usar Copilot de una manera que se alinee con el objetivo.

  •         [Análisis del código para detectar vulnerabilidades de seguridad](#analyze-your-code-for-security-vulnerabilities)
    
  •         [Uso de Autofijo de Copilot para las alertas de code scanning](#use-copilot-autofix-for-code-scanning-alerts)
    
  •         [Procedimientos recomendados para desarrolladores](#best-practices-for-developers)
    
  •         [Recursos para desarrolladores](#resources-for-developers)
    

Análisis del código para detectar vulnerabilidades de seguridad

Según el tamaño de su base de código, es posible que Copilot no pueda analizar todo su proyecto mientras escribe código. Esto se debe a restricciones de contexto. Sin embargo, puede pedirle que analice archivos específicos para conocer las prácticas de código no seguras.

  1. Abre los archivos que se van a analizar en Visual Studio Code.

  2. En chat de Copilot, pregunta lo siguiente: Analyze this code for potential security vulnerabilities and suggest fixes

    Utiliza la variable de #file chat para incluir específicamente el contenido de un archivo en el prompt. También puede usar archivos de solicitudes e instrucciones personalizadas para guiar las respuestas de Copilot.

  3. chat de Copilot analiza el código, identifica las vulnerabilidades de seguridad y sugiere correcciones.

  4. Revisa los cambios sugeridos y aplícalos según corresponda.

Otros ejemplos de avisos:

  • 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?

Uso de Autofijo de Copilot para las alertas de code scanning

Autofijo de Copilot forma parte de GitHub Code Security que sugiere posibles correcciones para alertas de code scanning. Está disponible en repositorios públicos y repositorios con licencia para GitHub Code Security.

Al ejecutar un análisis de código en un repositorio, se generan alertas de posibles problemas como code scanning. Resuelva las alertas siguiendo estos pasos:

  1. Abrir una alerta en GitHub.
  2. Haga clic en Generar corrección. Esto se muestra cuando Copilot puede resolver la alerta.
  3. Autofijo de Copilot genera una posible corrección y muestra los cambios de código en la alerta. Puede confirmar este cambio de código en una nueva rama o en una rama existente.
  4. Pruebe el código. A continuación, abra un pull request para mover los cambios a la rama principal.
  5. Después de mover los cambios a la rama principal y code scanning comprueba la corrección, la alerta se cierra automáticamente.

Procedimientos recomendados para desarrolladores

Los desarrolladores deben:

  •           **Use chat de Copilot periódicamente para analizar fragmentos de código en busca de vulnerabilidades**. Haz que sea un hábito comprobar el código si hay problemas de seguridad antes de confirmar los cambios.
    
  •           **Uso de Autofijo de Copilot para las alertas de code scanning**. Cuando aparezcan alertas, use Autofijo de Copilot como primer paso para abordarlas rápidamente.
    
  •         **Proporcione indicaciones claras y específicas para chat de Copilot**. Cuanto más detallada sea la solicitud, mejor Copilot puede analizar el código y sugerir correcciones pertinentes. Por ejemplo, incluya el lenguaje de programación y áreas específicas de preocupación.
    
  •         **Combine Copilot con las herramientas de seguridad existentes**. Utilice Copilot como una capa adicional para el análisis de seguridad, no como un reemplazo de los analizadores y prácticas de seguridad específicos.
    

Los desarrolladores no deben:

  •         **Aceptar automáticamente las sugerencias de seguridad de Copilot**. Revise y pruebe siempre los cambios de código sugeridos para asegurarse de que son adecuados y eficaces.
    
  •         **Confíe únicamente en Copilot para realizar auditorías de seguridad completas**. Copilot es una herramienta útil, pero no debe sustituir las revisiones exhaustivas de seguridad y las pruebas de penetración.
    
  •         **Ignorar alertas de code scanning**. Solucione todas las alertas rápidamente, aunque parezcan menores, para evitar la acumulación de deudas de seguridad.
    
  •         **Usa Copilot como excusa para evitar aprender prácticas de programación seguras**. Continúe instruyendo a sí mismo y a su equipo en los procedimientos recomendados de seguridad.
    
  •         **Suponga que Copilot detectará cada vulnerabilidad**. La seguridad es un proceso continuo y la vigilancia siempre es necesaria.
    
  • Usa Copilot para eludir las políticas de seguridad. Cumpla los protocolos de seguridad de su organización. Use Copilot como una herramienta para mejorarlas, no para eludirlas.

Recursos para desarrolladores

  •           [Copilot Chat en 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 - Introducción a GitHub Copilot](https://github.com/skills/getting-started-with-github-copilot)
    

Métricas que se van a ver

Para evaluar las pruebas de nuevas herramientas y asegurarse de que los lanzamientos completos proporcionan mejoras coherentes, supervise los resultados y realice ajustes cuando sea necesario. Se recomienda considerar las zonas clave de calidad, velocidad y felicidad del desarrollador, y cómo estas zonas se unen para contribuir a los resultados empresariales.

Estas son algunas métricas para evaluar el impacto de Copilot en este objetivo específico.

  •         **Relación de deudas de seguridad**. Use la información general de seguridad para ver si el número de alertas cae con el tiempo.
    
  •         **Tiempo para corregir los problemas de seguridad**. Use la información general de seguridad para ver si el tiempo para corregir los problemas de seguridad cae con el tiempo.
    

Consulta Evaluación del riesgo de seguridad de tu código.