Definición de GHAS y la importancia de sus características integrales

Completado

En esta unidad, trataremos:

  • Análisis de secretos
  • Escaneo de código
  • Dependabot
  • Crear un ciclo de vida de desarrollo de software más seguro con características clave

Comencemos con una revisión rápida de GHAS.

¿Qué es GHAS?

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

GitHub Advanced Security (o GHAS) es una solución de seguridad de aplicaciones que ayuda a los desarrolladores a proteger su código y administrar riesgos sin interrumpir su flujo de trabajo.

GHAS incluye funcionalidades que ahora se ofrecen como dos productos distintos: Protección de secretos de GitHub y Seguridad de Código de GitHub. Esta separación permite a las organizaciones habilitar las características que mejor se adapten a sus prioridades de seguridad y licencias.

Advanced Security se inserta directamente en el flujo de trabajo para ayudar a evitar vulnerabilidades y filtraciones de credenciales sin ralentizar el desarrollo. GitHub Advanced Security es como hacer que su consultor de seguridad personal revise cada línea de código con información de expertos en seguridad de todo el mundo.

Garantizar la seguridad de las aplicaciones y de la cadena de suministro de software nunca fue más importante. Gartner predice que el 45 % de las organizaciones globales se verá afectado por ataques de cadena de suministro en 2025. Según el informe de investigación sobre vulneraciones de datos de Verizon de 2022, las aplicaciones siguen siendo un vector de ataque superior y están en el centro de más del 40 % de todas las vulneraciones de datos.

La incorporación de seguridad en el proceso de desarrollo de software puede parecer un proceso abrumador, por lo que vamos a pasar por encima de 3 características clave de GHAS y cómo ayudan a su equipo a mantenerse al día de las amenazas de seguridad más recientes: Examen de secretos, Examen de código y Dependabot.

Análisis de secretos

Imagen de un candado con el Octocat de GitHub en el centro, que representa el análisis de seguridad.

El análisis de secretos es una característica de seguridad crítica de GitHub que identifica y ayuda a evitar la exposición accidental de información confidencial, como claves de API y tokens, dentro del código fuente. El análisis de secretos está disponible para todos los repositorios públicos de forma gratuita y también se puede habilitar para repositorios privados con una licencia de Seguridad avanzada de GitHub (GHAS).

Esto ayuda a evitar el acceso no autorizado y a proteger los datos confidenciales. El examen de secretos funciona buscando patrones predefinidos y firmas que denoten información confidencial, garantizando que se solucionen rápidamente los posibles riesgos de seguridad. De forma predeterminada, el análisis de secretos busca patrones muy precisos proporcionados por un partner de GitHub. Sin embargo, se pueden crear patrones personalizados para otros casos de uso.

El examen de secretos incluye:

  • La protección de inserción impide proactivamente las filtraciones de secretos mediante el examen de código en la confirmación y el bloqueo de inserciones si hubiera secretos presentes.
  • La capacidad de ver fácilmente las alertas y corregirlas sin tener que salir de GitHub.

En un ciclo de vida seguro de desarrollo de software, el análisis de secretos detecta secretos expuestos, lo que permite a los equipos revocarlos o rotarlos lo antes posible, a menudo antes de que se puedan usar con fines malintencionados, lo que reduce el riesgo de vulneraciones de datos y conserva la confidencialidad durante todo el desarrollo.

A continuación, revisaremos el examen de código.

Escaneo de código

Imagen de una clave con el Octocat de GitHub en medio de ella que representa el examen de código.

El examen de código es una característica integral de GHAS que analiza el código fuente para detectar vulnerabilidades de seguridad y errores de codificación. Emplea técnicas de examen estático para identificar posibles problemas, como la inyección de código SQL, scripting entre sitios y desbordamientos de búfer. Al proporcionar comentarios automatizados directamente en el flujo de trabajo de solicitud de cambios, el examen de código permite a los desarrolladores abordar vulnerabilidades de forma temprana en el proceso de desarrollo.

El análisis de código mejora la calidad del código y ayuda a minimizar las amenazas de seguridad mediante la identificación y la resolución de problemas al principio del ciclo de vida de desarrollo. Dado que las reglas de examen se actualizan continuamente, el análisis de código también puede detectar vulnerabilidades que pueden existir en producción.

Dependabot

Imagen de un robot de cabeza cuadrada con marcas de verificación como ojos destinados a representar Dependabot.

Dependabot es una herramienta de administración de dependencias automatizada responsable de mantener actualizadas las dependencias de los proyectos. Comprueba periódicamente las actualizaciones de las bibliotecas y marcos usados en un proyecto y abre automáticamente solicitudes de cambios para actualizar las dependencias a sus versiones seguras más recientes.

Dependabot incluye:

  • Alertas de vulnerabilidades conocidas
  • Actualizaciones de seguridad para paquetes vulnerables
  • Actualizaciones de versión para mantener las dependencias actuales

Dependabot trabaja estrechamente con Dependency Graph para determinar qué dependencias están en uso y hacer referencia cruzada a ellas en la base de datos de asesoramiento de GitHub para detectar vulnerabilidades.

Con La seguridad avanzada de GitHub, las funcionalidades de Dependabot se mejoran mediante la revisión de dependencias, lo que le permite obtener una vista previa de los paquetes vulnerables introducidos en una solicitud de incorporación de cambios y evitar la adición de dependencias no seguras antes de la combinación.

Dónde habilitar las alertas del examen de secretos, el examen de código y Dependabot

Para habilitar cualquiera de las alertas desde un nivel de repositorio, vaya primero a la pestaña seguridad del repositorio.

Imagen de la pestaña de seguridad enmarcada por un resaltado en rojo en la barra de navegación de GitHub.

A continuación, habilite las alertas en la información general de seguridad.

Imagen de la ficha de seguridad con la detección de secretos, el examen de código y las alertas de Dependabot habilitados.

Una vez que ya hemos revisado y habilitado las 3 características integrales de GHAS, hablaremos sobre cómo implementar todas ellas para crear un ciclo de vida de desarrollo de software más seguro.

Creación de un ciclo de vida de desarrollo de software más seguro con las 3 características

El examen de secretos, el examen de código y Dependabot contribuyen colectivamente a crear un ciclo de vida de desarrollo de software más seguro. El examen de secretos evita la exposición involuntaria de información confidencial. El examen de código identifica y soluciona las vulnerabilidades de seguridad en el código base. Y Dependabot automatiza la administración de dependencias.

Al integrar estas características, los equipos de desarrollo pueden abordar proactivamente los problemas de seguridad en cada fase del ciclo de vida de desarrollo. Este enfoque proactivo minimiza la probabilidad de que los incidentes de seguridad lleguen a producción, lo que da lugar a un proceso de desarrollo de software más resistente, seguro y eficaz.

El impacto combinado de estas características integrales garantiza que la seguridad no sea una consideración independiente, sino una parte integral de todo el flujo de trabajo de desarrollo.

Características de seguridad para proyectos de código abierto

Los proyectos públicos en GitHub se benefician de determinadas características de seguridad predeterminadas, como el examen de secretos y los gráficos de dependencias. GitHub examina automáticamente los repositorios públicos en busca de patrones de asociados y proporciona alertas a los administradores de repositorios. Los proyectos públicos también pueden optar por habilitar el examen de código, Dependabot y la revisión de dependencias sin disponer de una licencia de GitHub Advanced Security.

Sin embargo, estas características son fundamentales y es posible que no proporcionen la profundidad de protección necesaria para proyectos más complejos o entornos empresariales.

Cuando GitHub Advanced Security (GHAS) se empareja con GitHub Enterprise Cloud (GHEC), el conjunto completo de características de seguridad también estará disponible para proyectos internos y privados:

  • Examen de código: búsqueda de posibles vulnerabilidades de seguridad y errores de codificación en el código.
  • Examen de secretos: detección de secretos, como claves y tokens, registrados en repositorios privados. Las alertas de examen de secretos para usuarios y asociados están disponibles de forma gratuita para los repositorios públicos en GitHub.com. Si la protección de inserción se habilita, también detectará secretos cuando se inserten en el repositorio.
  • Revisión de dependencias: Muestra el impacto completo de los cambios en las dependencias y consulta los detalles de las versiones vulnerables antes de combinar una solicitud de incorporación de cambios.

En la tabla siguiente se resume la disponibilidad de las características de GitHub Advanced Security en repositorios públicos y privados.

Característica Repositorio público Repositorio privado sin seguridad avanzada Repositorio privado con seguridad avanzada
Escaneo de código
Análisis de secretos
Revisión de dependencias