¿Qué es GitHub Advanced Security?

Completado

GitHub tiene muchas características que le ayudan a mejorar y mantener la calidad del código. Algunas de estas características se incluyen en todos los planes, como el gráfico de dependencias y las alertas de Dependabot. Otros ofrecen funcionalidades limitadas para los repositorios públicos, mientras que las capacidades avanzadas para los repositorios privados requieren GitHub Code Security y GitHub Secret Protection.

En esta unidad, obtendrá más información sobre GitHub Advanced Security y descubrirá el aspecto de un proyecto con funcionalidades de seguridad avanzadas.

Introducción a GitHub Advanced Security

Las funcionalidades de GitHub Advanced Security ahora se ofrecen a través de dos productos principales:

  • GitHub Seguridad del código (detección y corrección de vulnerabilidades)
  • Protección de secretos de GitHub (detección y prevención de secretos)

Juntos, estos productos proporcionan una plataforma de seguridad más amplia que se extiende más allá del conjunto de características de seguridad avanzada de GitHub original.

Disponibilidad de funcionalidades

En la tabla siguiente se resume la disponibilidad de las características de seguridad de GitHub entre los tipos de repositorio y los productos.

Característica Repositorio público Repositorio privado Seguridad de código de GitHub Protección de secretos de GitHub
Examen de código (CodeQL) No No
Autocorrección de Copilot Sí (limitada) No No
Revisión de dependencias No No
Alertas de Dependabot No
Evaluación de prioridades automática de Dependabot No No No
Campañas de seguridad No No No
Introducción a la seguridad No No No
Análisis de secretos Sí (básico) No No
Protección contra el envío de cambios No No No
Patrones de secreto personalizados No No No

Como se muestra en la tabla anterior, muchas características de seguridad principales, como el análisis de código, el análisis básico de secretos, la revisión de dependencias y las alertas de Dependabot, están disponibles de forma predeterminada para repositorios públicos en GitHub.com. Las funcionalidades avanzadas para repositorios privados e internos requieren GitHub Enterprise Cloud o GitHub Team con GitHub Code Security o GitHub Secret Protection habilitado.

GitHub Code Security and GitHub Secret Protection proporcionan las siguientes funcionalidades mejoradas para repositorios privados e internos:

  • Examen de código (CodeQL): Detecta automáticamente vulnerabilidades y errores de codificación y admite correcciones asistidas por IA a través de Copilot Autofijo (donde está habilitado).
  • Detección de secretos: Detecta secretos expuestos en el código, bloquea fugas con protección en los pushes, admite patrones personalizados de secretos y proporciona flujos de trabajo mejorados para alertas y corrección.
  • Revisión de dependencias: muestra el impacto de los cambios en las dependencias y destaca las versiones vulnerables antes de fusionar las solicitudes de extracción.
  • Información general de seguridad: Proporciona visibilidad de toda la organización sobre la posición de seguridad, los riesgos y las alertas de nivel de repositorio.
  • Campañas de seguridad: Permite a las organizaciones agrupar, priorizar y corregir sistemáticamente varias alertas de seguridad entre repositorios, lo que ayuda a los equipos a reducir las vulnerabilidades más rápido y a escala.

Notas clave

GitHub ha evolucionado de una única agrupación de seguridad avanzada de GitHub en una plataforma modular que consta de:

  • Seguridad de código de GitHub
  • Protección de secretos de GitHub

Otros puntos importantes incluyen:

  • Los repositorios públicos siguen recibiendo una base de referencia sólida de las características de seguridad gratuitas.
  • Las características avanzadas se centran en la prevención (como la protección frente a inserciones), la automatización y la remediación asistida por IA.

Seguridad avanzada de GitHub en el ciclo de vida de desarrollo de software

¿Qué diferencia tienen las características de Advanced Security GitHub en el ciclo de vida de desarrollo de software? Echemos un vistazo primero a un escenario de seguridad básico.

Diagrama que muestra una representación de las distintas fases del ciclo de vida de desarrollo de software en un enfoque de seguridad tradicional.

En este ejemplo se muestra una seguridad tradicional como enfoque de puerta , donde se realizan una o varias pruebas de seguridad durante la fase de control de calidad. En este escenario, la seguridad a menudo se convierte en un cuello de botella que retrasa la entrega de software. Muchas organizaciones abordan este desafío cambiando la seguridad a la izquierda.

Ahora, echemos un vistazo al mismo ciclo de vida de desarrollo de software con GitHub Advanced Security.

Diagrama que representa las distintas fases del ciclo de vida de desarrollo de software con GitHub Advanced Security.

En este escenario, la seguridad se integra desde el principio a través de las directivas de seguridad configuradas durante la configuración del proyecto. Los desarrolladores reciben comentarios de seguridad en todo el proceso de desarrollo.

  • Examen de código: Examina cada confirmación y combinación para detectar vulnerabilidades y errores de codificación.
  • Análisis de secretos: Analiza cada commit y cada fusión en busca de secretos incluidos accidentalmente, como tokens y claves privadas.
  • Revisión de dependencias: Supervisa los cambios de dependencia y evalúa su impacto en la seguridad del proyecto comparando los archivos de manifiesto con las bases de datos de vulnerabilidades conocidas durante cada solicitud de incorporación de cambios.

Además, Información general de seguridad proporciona a los administradores una vista general de la posición de seguridad de la organización. Esta vista ayuda a identificar repositorios que requieren atención o corrección.

Dado que las comprobaciones de seguridad se producen durante el ciclo de vida de desarrollo, los posibles problemas se identifican y solucionan anteriormente. Este enfoque reduce los cuellos de botella durante la garantía de calidad y minimiza la deuda técnica antes de que se libere el software.