Seguridad automatizada

Completado

Aquí se describen algunas maneras de automatizar las comprobaciones de seguridad en un repositorio que están disponibles para los administradores de repositorios de GitHub.

Detección y corrección de dependencias obsoletas con vulnerabilidades de seguridad

Prácticamente todos los proyectos actualmente toman dependencias de paquetes externos. Aunque estos componentes pueden ofrecer ventajas sustanciales en la productividad, pueden introducir otros riesgos de seguridad. Mantenerse al tanto de estos paquetes y su estado de vulnerabilidad puede llevar mucho tiempo, especialmente dada la forma en que cada dependencia podría tener sus propias dependencias que pueden resultar difíciles de realizar un seguimiento y mantenimiento. Afortunadamente, GitHub proporciona características que reducen esta carga de trabajo.

Gráficos de dependencias del repositorio

Una característica predeterminada que incluye cada repositorio es gráficos de dependencias. GitHub examina manifiestos de paquete comunes, como package.json, requirements.txty otros. Estos gráficos permiten a los propietarios del proyecto realizar un seguimiento recursivo 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 visuales, todavía puede ser abrumador mantenerse al día de las consideraciones de seguridad más recientes para cada dependencia que tiene un proyecto. Para reducir esta sobrecarga, GitHub proporciona alertas de Dependabot que le permiten ver los gráficos de dependencias. A continuación, hace referencias cruzadas a las versiones de destino con versiones en listas de vulnerabilidades conocidas. Cuando se detecta un riesgo, se alerta al proyecto. La entrada del análisis procede de avisos de seguridad de GitHub.

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

Actualizaciones automatizadas de dependencias con Dependabot

Una alerta de dependencia puede llevar a que un colaborador del proyecto actualice la referencia del paquete problemático a la versión recomendada y cree una solicitud de incorporación de cambios para su validación. ¿No sería genial si hubiera una manera de automatizar este esfuerzo? Bueno, buenas noticias! Dependabot hace 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 más información sobre la flexibilidad de Dependabot, consulte Configuración de actualizaciones de seguridad de Dependabot.

Examen automatizado de código

De forma similar a cómo Dependabot examina el repositorio en busca de alertas de dependencia, puede usar el análisis de código para analizar y buscar vulnerabilidades de seguridad y errores en el código de un repositorio de GitHub. El examen de código tiene varias ventajas. Puede usarlo para buscar, evaluar y priorizar las correcciones de problemas existentes o posibles vulnerabilidades de seguridad. También es útil ayudar a evitar que los desarrolladores introduzcan nuevos problemas de seguridad en el código.

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

Puede habilitar alertas y flujos de trabajo de análisis de código en la pestaña 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.

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

Análisis de secretos

Otra característica de análisis automatizado dentro de un repositorio de GitHub es el análisis de secretos. De forma similar a las funciones de análisis de seguridad previas, el análisis de secretos busca secretos conocidos o credenciales registradas en el repositorio. Este examen se realiza para evitar el uso de comportamientos fraudulentos y para proteger la integridad de cualquier dato confidencial. De forma predeterminada, el examen de secretos se produce en repositorios públicos y puede habilitar el examen de secretos en repositorios privados por parte de los administradores de repositorios o propietarios de la organización.

Cuando el examen de secretos detecta un conjunto de credenciales, GitHub notifica al proveedor de servicios que emitió el secreto. El proveedor de servicios valida la credencial. A continuación, decide si deben 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.