Examen de las herramientas de seguridad y calidad de código de GitHub

Completado

GitHub proporciona un conjunto completo de herramientas de seguridad y calidad de código que le ayudan a proteger el código, administrar vulnerabilidades y mantener un código base correcto. Antes de profundizar en los detalles del análisis de secretos, resulta útil comprender dónde encaja el análisis de secretos en el ecosistema de seguridad más amplio de GitHub.

Introducción a las herramientas de seguridad y calidad de código de GitHub

GitHub organiza sus características de calidad de código y seguridad en varias categorías: seguridad de la cadena de suministro, seguridad secreta, seguridad de código y calidad del código. Algunas características están disponibles en todos los planes de GitHub, mientras que otras requieren un producto de complemento de pago: GitHub Secret Protection o GitHub Code Security. Muchas de las características de pago también están disponibles de forma gratuita en repositorios públicos.

Seguridad de la cadena de suministro

Las características de seguridad de la cadena de suministro le ayudan a comprender y proteger las dependencias en las que se basa el proyecto.

Gráfica de dependencias

El gráfico de dependencias permite explorar los paquetes y ecosistemas de los que depende el repositorio, así como los repositorios y paquetes que dependen del repositorio. Proporciona visibilidad del árbol de dependencias completo del proyecto, lo que le ayuda a comprender dónde tiene el código dependencias externas.

Lista de materiales de software (SBOM)

Puede exportar el gráfico de dependencias del repositorio como una factura de software compatible con SPDX (SBOM). Un SBOM proporciona un inventario formal y legible de los componentes y dependencias del proyecto, que es cada vez más necesario para fines de cumplimiento y auditoría.

Base de datos de asesoramiento de GitHub

La base de datos de asesoramiento de GitHub es una lista seleccionada de vulnerabilidades de seguridad conocidas que puede examinar, buscar y filtrar. Cuando se detecta una vulnerabilidad en una de las dependencias, puede comprobar esta base de datos para obtener más información sobre la vulnerabilidad y su impacto.

Alertas de Dependabot y actualizaciones de seguridad

Dependabot supervisa las dependencias para detectar vulnerabilidades de seguridad conocidas. Cuando se encuentra una vulnerabilidad, Dependabot crea una alerta y puede generar automáticamente solicitudes de incorporación de cambios para actualizar la dependencia afectada a una versión segura. Las reglas de evaluación automática predeterminadas seleccionadas por GitHub ayudan a filtrar falsos positivos.

Actualizaciones de versión del dependabot

Dependabot también puede mantener las dependencias actualizadas mediante la creación automática de solicitudes de incorporación de cambios cuando haya versiones más recientes disponibles. Mantener las dependencias actuales facilita la aplicación de revisiones de seguridad y reduce la exposición a vulnerabilidades.

Revisión de dependencias

La revisión de dependencias muestra el impacto total de los cambios de dependencia en una solicitud de incorporación de cambios. Antes de combinar una solicitud de incorporación de cambios, puede revisar qué dependencias se agregaron, quitaron o actualizaron y ver si se introducen versiones vulnerables. La revisión de dependencias requiere GitHub Code Security para repositorios privados, pero está disponible de forma gratuita en repositorios públicos.

Seguridad secreta

Las características de seguridad secreta detectan y evitan la exposición de credenciales en el código base.

Alertas de escaneo de secretos para socios

En el caso de los repositorios públicos, GitHub examina automáticamente los patrones de secreto conocidos de más de 200 proveedores de servicios. Cuando se detecta un secreto filtrado, GitHub notifica al proveedor de servicios pertinente para que pueda revocar o rotar la credencial en peligro. Esta característica está habilitada de forma predeterminada en todos los repositorios públicos sin costo alguno.

Protección de empuje para usuarios

La protección contra inserción para los usuarios es una característica de seguridad personal que bloquea automáticamente que se confirmen accidentalmente secretos en repositorios públicos, independientemente de si el repositorio tiene habilitado el análisis de secretos. Esta característica está activada de forma predeterminada para todos los usuarios y se puede administrar a través de la configuración de la cuenta personal.

Alertas de detección de datos sensibles para usuarios

Las alertas de examen de secretos para los usuarios amplían las funcionalidades de detección para notificar a los administradores de repositorios y los equipos de seguridad cuando se encuentran secretos en un repositorio. Puede ver las alertas en la pestaña Seguridad del repositorio con detalles sobre el tipo de secreto, la ubicación y la validez. Esta característica requiere GitHub Secret Protection para repositorios privados, pero está disponible de forma gratuita en repositorios públicos.

Digitalización secreta de Copilot

El análisis de secretos de Copilot usa la detección de secretos genéricos con tecnología de IA para identificar secretos no estructurados (como contraseñas) en el código fuente que no coinciden con un patrón conocido específico. Esta característica amplía la capacidad de detección más allá de los patrones definidos que identifica el escaneo de secretos estándar.

Protección de empuje (nivel de repositorio)

La protección contra inserción bloquea las confirmaciones que contienen patrones de secretos de alta confianza antes de insertarlos en un repositorio. Si un colaborador omite el bloque, GitHub crea una alerta. En el caso de los repositorios privados, la protección de envío requiere Protección de secretos de GitHub. Está disponible de forma gratuita en repositorios públicos.

Omisión delegada para la protección de inserción

La omisión delegada permite controlar qué usuarios, roles y equipos pueden omitir la protección de inserción. Implementa un proceso de revisión y aprobación para las inserciones que contienen secretos, agregando una capa adicional de gobernanza.

Patrones personalizados para el escaneo de información confidencial

Las organizaciones pueden definir patrones personalizados para el examen de secretos para detectar credenciales y tokens específicos de sus sistemas internos y no cubiertos por los patrones predeterminados.

Seguridad de código

Las características de seguridad de código le ayudan a encontrar y corregir vulnerabilidades de seguridad en el código base.

Análisis de código

El análisis de código usa análisis estático para detectar automáticamente vulnerabilidades de seguridad y errores de codificación en código nuevo o modificado. Los posibles problemas se resaltan con información detallada para que pueda corregirlos antes de combinarlos en la rama predeterminada. El análisis de código requiere GitHub Code Security para repositorios privados, pero está disponible de forma gratuita en repositorios públicos.

CLI de CodeQL

La CLI de CodeQL le permite ejecutar análisis de CodeQL localmente en los proyectos de software y generar resultados de análisis de código para cargarlos en GitHub. Es el mismo motor de análisis detrás de la característica de análisis de código de GitHub.

Copilot Autofix para el análisis de código

La autocorrección de Copilot genera automáticamente correcciones sugeridas para las alertas de análisis de código. Cuando el examen de código detecta una vulnerabilidad, Copilot Autofix proporciona una sugerencia de corrección que puede revisar y aplicar, lo que reduce significativamente el tiempo necesario para corregir problemas.

Reglas personalizadas de evaluación automática de prioridades para Dependabot

Las reglas de evaluación automática personalizadas le permiten controlar cómo se administran las alertas de Dependabot a escala. Puede configurar reglas para descartar, posponer o desencadenar automáticamente actualizaciones de seguridad para alertas específicas en función de las prioridades de la organización.

Campañas de seguridad

Las campañas de seguridad permiten a las organizaciones corregir las alertas de seguridad a escala mediante la creación de esfuerzos coordinados para reducir el trabajo pendiente de seguridad. Las campañas de seguridad ayudan a organizar y priorizar el trabajo de corrección en varios repositorios.

Calidad del código

Las características de calidad del código le ayudan a mantener un código base correcto, confiable y fácil de mantener.

Calidad de código de GitHub

La calidad de código de GitHub usa el análisis basado en reglas de CodeQL y el análisis con tecnología de inteligencia artificial para marcar los problemas de calidad del código en las solicitudes de incorporación de cambios y los exámenes del repositorio. La calidad del código identifica problemas de confiabilidad y mantenimiento, proporciona autocorrecciones impulsadas por Copilot y le permite configurar conjuntos de reglas que aplican estándares de calidad de código en los pull requests.

Nota:

GitHub Code Quality se encuentra actualmente en versión preliminar pública y está disponible para repositorios propiedad de organizaciones en los planes de GitHub Team y GitHub Enterprise Cloud.

Características de seguridad generales

GitHub también proporciona funcionalidades de seguridad fundamentales que respaldan tu postura de seguridad general.

Directiva de seguridad

Puede agregar una directiva de seguridad al repositorio que proporcione instrucciones para que los usuarios notifiquen confidencialmente las vulnerabilidades de seguridad que detectan en el proyecto.

Avisos de seguridad

Los avisos de seguridad le permiten analizar y corregir de forma privada las vulnerabilidades de seguridad en el código del repositorio público y, después, publicar un aviso para alertar a la comunidad y fomentar las actualizaciones.

Conjuntos de reglas de repositorio

Los conjuntos de reglas de repositorio aplican estándares de código coherentes, requisitos de seguridad y directivas de cumplimiento en ramas y etiquetas de los repositorios.

Atestaciones de artefactos

Las atestaciones de artefacto crean garantías de integridad y proveniencia infalsificables para el software que usted compila, estableciendo un vínculo verificable entre sus artefactos de compilación y el código fuente y el proceso de construcción que los produjo.

Información general sobre seguridad

Información general sobre la seguridad proporciona un panel centralizado para revisar el panorama general de seguridad de su organización. Muestra tendencias, información y configuraciones de seguridad, lo que facilita la supervisión del estado de seguridad de la organización e identifica los repositorios en mayor riesgo. La información general de seguridad está disponible con GitHub Secret Protection y GitHub Code Security.

Herramientas de seguridad de GitHub según la disponibilidad del plan

En la tabla siguiente se resumen las herramientas de calidad de código y seguridad de GitHub, el plan mínimo de GitHub necesario para usarlos y si se necesita el complemento GitHub Secret Protection o GitHub Code Security.

Nota:

GitHub Secret Protection y GitHub Code Security son productos de complemento de pago que las organizaciones pueden comprar en los planes de GitHub Team y GitHub Enterprise Cloud . Muchas características incluidas en estos productos de complemento también están disponibles de forma gratuita en repositorios públicos, como se indica en la tabla siguiente.

Tool Plan mínimo de GitHub Repositorios públicos Repositorios privados Protección de secretos de GitHub Seguridad de GitHub Code
Seguridad de la cadena de suministro
Gráfica de dependencias Todos los planes
Lista de materiales de software (SBOM) Todos los planes
Base de datos de asesoramiento de GitHub Todos los planes
Alertas de Dependabot y actualizaciones de seguridad Todos los planes
Actualizaciones de versión del dependabot Todos los planes
Revisión de dependencias Todos los planes (públicos) / Equipo de GitHub (privado)
Reglas personalizadas de evaluación automática de prioridades para Dependabot Todos los planes (públicos) / Equipo de GitHub (privado)
Seguridad secreta
Alertas de escaneo de secretos para socios Todos los planes
Protección de empuje para usuarios Todos los planes
Alertas de detección de datos sensibles para usuarios Todos los planes (públicos) / Equipo de GitHub (privado)
Protección de empuje (nivel de repositorio) Todos los planes (públicos) / Equipo de GitHub (privado)
Digitalización secreta de Copilot Equipo de GitHub
Omisión delegada para la protección de inserción Equipo de GitHub
Patrones personalizados para el escaneo de información confidencial Equipo de GitHub
Seguridad del código
Análisis de código Todos los planes (públicos) / Equipo de GitHub (privado)
CLI de CodeQL Todos los planes (públicos) / Equipo de GitHub (privado)
Copilot Autofix para el análisis de código Todos los planes (públicos) / Equipo de GitHub (privado)
Campañas de seguridad Equipo de GitHub
Calidad del código
Calidad de código de GitHub Equipo de GitHub *
Seguridad general
Directiva de seguridad Todos los planes
Avisos de seguridad Todos los planes
Conjuntos de reglas de repositorio Todos los planes
Atestaciones de artefactos Todos los planes (públicos) / GitHub Enterprise Cloud (privado) ✅ **
Información general sobre seguridad Equipo de GitHub

* GitHub Code Quality está actualmente en vista pública.

** Las atestaciones de artefacto para repositorios privados requieren GitHub Enterprise Cloud.

En la tabla anterior, "Todos los planes" significa que la herramienta está disponible sin costo adicional en cada plan de GitHub, incluidos los planes gratuitos (GitHub Gratis para cuentas personales y GitHub Gratis para organizaciones). "Equipo de GitHub" significa que el plan mínimo necesario es GitHub Team o GitHub Enterprise Cloud, ambos planes de pago que también admiten la compra de los productos de complemento gitHub Secret Protection y GitHub Code Security. La información detallada de precios está disponible en GitHub.

Funcionamiento conjunto de las herramientas de seguridad de GitHub

Las herramientas de seguridad y calidad de código de GitHub están diseñadas para funcionar como capas complementarias, lo que proporciona una protección completa en diferentes dimensiones del código base.

  • La seguridad de la cadena de suministro (Dependabot, el gráfico de dependencias, la revisión de dependencias) le protege de paquetes de terceros vulnerables.
  • La seguridad de secretos (análisis de secretos, protección contra inserción) impide la exposición de credenciales.
  • La seguridad del código (análisis de código, CodeQL) identifica vulnerabilidades de seguridad en su propio código.
  • La calidad del código ayuda a mantener código confiable y fácil de mantener para reducir la deuda técnica.

Juntas, estas herramientas crean un enfoque de seguridad en profundidad que aborda las vulnerabilidades desde varios ángulos. Por ejemplo, el escaneo de secretos podría detectar una clave de API expuesta, Dependabot le alerta sobre una dependencia vulnerable a la que accede la clave de API, y el escaneo de código identifica una vulnerabilidad de inyección de SQL en el código que utiliza esa dependencia. Cada capa llena un hueco que los demás no cubren.

En este módulo, te centrarás en el examen de secretos y la protección de push, que forman la piedra angular de las capacidades de seguridad de secretos de GitHub.