Seguridad automatizada

Completado

En este caso, se analizarán algunas maneras de automatizar las comprobaciones de seguridad en un repositorio que están disponibles para los administradores de repositorios de GitHub.

Detectar y corregir dependencias obsoletas con vulnerabilidades de seguridad

Prácticamente todos los proyectos hoy en día tienen dependencias en paquetes externos. Aunque estos componentes pueden ofrecer ventajas considerables en cuanto a productividad, pueden introducir otros riesgos de seguridad. Estar atento a estos paquetes y su estado de vulnerabilidad puede llevar mucho tiempo, especialmente porque cada dependencia podría tener sus propias dependencias, lo que dificulta su seguimiento y mantenimiento. Afortunadamente, GitHub proporciona características que reducen esta carga de trabajo.

Gráficos de dependencias de repositorios

Una característica predeterminada que incluyen todos los repositorios son los gráficos de dependencias. GitHub examina los manifiestos de paquete comunes, como package.json, requirements.txt y otros. Estos gráficos permiten a los propietarios de proyectos realizar un seguimiento recurrente de todas las dependencias en las que se basa su proyecto.

Captura de pantalla de un gráfico de dependencias de GitHub.

Para obtener la lista de manifiestos de dependencia admitidos, consulte Acerca del gráfico de dependencias.

Alertas de Dependabot

Incluso con un gráfico de dependencias visual, puede ser abrumador estar atento a las consideraciones de seguridad más recientes de cada una de las dependencias de un proyecto. Para reducir esta sobrecarga, GitHub proporciona alertas de Dependabot que vigilan los gráficos de dependencias automáticamente. Luego, comparan las versiones de destino con las versiones de listas de vulnerabilidades conocidas. Cuando se detecta un riesgo, se alerta al proyecto. La entrada para el análisis procede de avisos de seguridad de GitHub.

Captura de pantalla de las alertas de Dependabot para las dependencias vulnerables.

Actualizaciones de dependencias automatizadas con Dependabot

Una alerta de dependencia puede llevar a un colaborador del proyecto a cambiar la referencia de paquete infractor a la versión recomendada y a crear una solicitud de incorporación de cambios para validación. ¿No sería genial si hubiera una manera de automatizar este esfuerzo? Hay buenas noticias. Dependabot hace precisamente eso. Examina las alertas de dependencia y crea solicitudes de incorporación de cambios para que un colaborador pueda validar la actualización y combinar la solicitud.

Para obtener más información sobre la flexibilidad de Dependabot, vea Configuración de actualizaciones de seguridad de Dependabot.

Análisis automatizado del código

Mediante un proceso similar a la manera en que Dependabot examina el repositorio en busca de alertas de dependencia, puede usar el análisis de código para analizar y detectar errores y vulnerabilidades de seguridad en el código de un repositorio de GitHub. El examen de código tiene varias ventajas. Se puede usar para buscar, evaluar y clasificar por orden de prioridad las correcciones de problemas existentes o posibles vulnerabilidades de seguridad. También resulta útil para impedir que los desarrolladores introduzcan nuevos problemas de seguridad en el código.

Otra ventaja del análisis de código es su capacidad para usar CodeQL. CodeQL sirve para consultar código como datos, lo que le permite crear consultas personalizadas, o bien usar consultas mantenidas por la comunidad de código abierto. El análisis de código le ofrece libertad para personalizar y mantener la forma en que se examina el código del repositorio.

Puede habilitar alertas y flujos de trabajo de análisis de código en la pestaña de seguridad de un repositorio de GitHub.

Captura de pantalla de una lista de directivas, avisos y alertas con vínculos a más información.

Más información sobre el análisis de código y CodeQL.

Análisis de secretos

Otra característica de análisis automatizada en un repositorio de GitHub es el análisis de secretos. De forma similar a las características de análisis de seguridad anteriores, el análisis de secretos busca secretos conocidos o credenciales confirmadas en el repositorio. Este análisis se realiza para impedir el uso de comportamientos fraudulentos y para proteger la integridad de los datos confidenciales. De forma predeterminada, el análisis de secretos se produce en repositorios públicos, y se puede habilitar en repositorios privados por los administradores del repositorio o los propietarios de la organización.

Cuando el examen de secretos detecta un conjunto de credenciales, GitHub notifica al proveedor de servicios que ha emitido el secreto. El proveedor de servicios valida la credencial. A continuación, decide si se debería revocar el secreto, emitir un nuevo secreto o ponerse en contacto directamente con usted. La acción depende de los riesgos asociados para usted o el proveedor de servicios.

Obtenga más información sobre el análisis de secretos para repositorios públicos y privados.