Procedimientos para usar GHAS para obtener el mayor impacto
En esta unidad, revisaremos lo siguiente:
- Descripción del gráfico de dependencias
- Respuesta ante alertas de GHAS
- Quién tiene acceso a las alertas
Echemos un vistazo más detenidamente a cómo funciona Dependabot, empezando por el gráfico de dependencias.
El gráfico de dependencias es fundamental para la seguridad de la cadena de suministro. En el gráfico de dependencias se identifican todas las dependencias ascendentes y las dependencias descendentes públicas de un repositorio o paquete. En el gráfico de dependencias del repositorio puede ver las dependencias del repositorio y algunas de sus propiedades, como la información de vulnerabilidad.
Para generar el gráfico de dependencias, GitHub examina las dependencias explícitas de un repositorio declaradas en el manifiesto y los archivos de bloqueo. Cuando está habilitado, el gráfico de dependencias analiza automáticamente todos los archivos de manifiesto de paquete conocidos del repositorio y usa este examen para construir un gráfico con versiones y nombres de dependencia conocidos.
Entre los puntos clave del gráfico de dependencias se incluyen los siguientes:
- Incluye información sobre las dependencias directas y las dependencias transitivas.
- El gráfico de dependencias se actualiza automáticamente al insertar una confirmación en GitHub que cambia o agrega un manifiesto o un archivo de bloqueo admitidos a la rama predeterminada. También se actualiza automáticamente cuando algún usuario inserta un cambio en el repositorio de una de las dependencias.
- Para ver el gráfico de dependencias, abre la página principal del repositorio en GitHub y ve a la pestaña Información.
- Si tienes al menos acceso de lectura al repositorio, puedes exportar el gráfico de dependencias del repositorio como compatible con SPDX, Lista de materiales de software (SBOM), mediante la interfaz de usuario de GitHub o la API REST de GitHub. Para obtener más información, consulta "Exportación de una factura de software de materiales para el repositorio".
Además, puedes usar la API de envío de dependencias (beta) para enviar dependencias desde el administrador de paquetes o el ecosistema de su elección, incluso si el ecosistema no es compatible con el gráfico de dependencias para el análisis de archivos de manifiesto o bloqueo. Las dependencias enviadas a un proyecto mediante la API de envío de dependencias (beta) muestran qué detector se usó para su envío y cuándo se enviaron.
Otras características de la cadena de suministro en GitHub se basan en la información que proporciona el gráfico de dependencias, que incluyen lo siguiente:
- Revisión de dependencias: usa el gráfico de dependencias para identificar los cambios de dependencia y ayudarle a comprender el impacto de seguridad de estos cambios al revisar las solicitudes de incorporación de cambios.
- Alertas de Dependabot: Dependabot cruza los datos de dependencia proporcionados por el gráfico de dependencias con la lista de avisos publicados en la base de datos de asesoramiento de GitHub. El gráfico de dependencias examina las dependencias y genera alertas de Dependabot cuando se detecta una posible vulnerabilidad.
- Actualizaciones de seguridad de Dependabot: usa el gráfico de dependencias y las alertas de Dependabot para ayudarle a actualizar las dependencias con vulnerabilidades conocidas en el repositorio.
Aunque las actualizaciones de la versión de Dependabot no usan el gráfico de dependencias, todavía merece la pena mencionar. Las actualizaciones de la versión de Dependabot se basan en el control de versiones semántico de las dependencias. Las actualizaciones de versiones de Dependabot te ayudan a mantener actualizadas las dependencias, incluso cuando no tienen ninguna vulnerabilidad.
Respuesta ante alertas de GHAS
Gracias a su conjunto completo de herramientas, GHAS proporciona visibilidad holística de la posición de seguridad de una organización y la capacidad de aplicar la adopción de la seguridad, lo que permite la priorización y administración precisas y eficaces de los riesgos de seguridad.
Una de las muchas herramientas que garantizan la seguridad en todo el proceso de desarrollo son todas las alertas que GHAS proporciona a tu organización.
Vamos a revisarlas:
Alertas de examen de código:
- Alertas de análisis de CodeQL: Generadas por CodeQL, el motor de análisis de código semántico de GitHub, estas alertas identifican posibles vulnerabilidades de seguridad en el código base. Abarcan una amplia gama de problemas, entre los que se incluyen la inyección de código SQL, el scripting entre sitios y otras vulnerabilidades de código.
Alertas de examen de secretos:
- Alertas de secretos expuestos: Estas alertas se desencadenan cuando la información potencialmente confidencial, como las claves de API o las credenciales, se identifica en el código fuente del repositorio. El examen de secretos ayuda a evitar la exposición accidental de datos confidenciales.
Alertas de dependencias:
- Alertas de Dependabot: Dependabot detecta automáticamente dependencias obsoletas en un proyecto y crea solicitudes de incorporación de cambios para actualizarlas a las versiones seguras más recientes. Las alertas de Dependabot notifican a los desarrolladores las actualizaciones disponibles para las dependencias del proyecto.
Alertas de Información general sobre seguridad:
- La Información general sobre seguridad proporciona un panel completo que resume el estado de seguridad del repositorio.
Alertas de terceros:
- Puedes integrar herramientas de análisis de código de terceros con el análisis de código de GitHub cargando datos como archivos SARIF. Obtén más información sobre este tema al final del módulo con un vínculo a la sección "Integración con el análisis de código".
Implicaciones de omitir una alerta
Omitir una alerta de seguridad supone riesgos considerables para el proyecto. Los actores malintencionados pueden aprovechar las vulnerabilidades, lo que conduce a infracciones de datos, interrupciones del servicio u otros incidentes de seguridad. Ignorar las alertas también puede dar lugar a un aumento en los esfuerzos de corrección, lo que podría afectar a las escalas de tiempo del proyecto y a la fiabilidad general del software.
Las consecuencias a largo plazo derivadas de omitir alertas pueden incluir daños a la reputación, incumplimiento normativo y pérdidas financieras. Es fundamental que los equipos de desarrollo prioricen y aborden las alertas de seguridad rápidamente para mitigar estos riesgos y mantener la integridad del software.
Cuando los desarrolladores detectan una alerta de seguridad, su rol inmediato es investigar la naturaleza y la gravedad de la alerta. Esto implica comprender el impacto en el código base, los posibles escenarios de vulnerabilidad de seguridad y los pasos necesarios para la corrección.
Con la ayuda de GHAS, los desarrolladores pueden encontrar y corregir vulnerabilidades antes en el ciclo de vida del desarrollo de software.
¿Quién tiene acceso a las alertas?
GHAS proporciona controles de acceso detallados, lo que permite a las organizaciones definir quién puede ver alertas para diferentes características de seguridad. Esto garantiza que solo el personal autorizado, como los equipos de seguridad y las partes interesadas pertinentes, tengan acceso a la información confidencial de seguridad.
La administración del acceso se basa en roles, con diferentes roles que tienen distintos niveles de acceso a las alertas de GHAS. Detengámonos a profundizar un poco más en los roles y el acceso a las alertas:
- Cualquier persona con el rol de repositorio de
Writepuede ver y modificar las alertas de examen de código y de Dependabot. - Cualquier persona con el rol de repositorio de
Adminpuede ver y modificar las alertas de examen de secretos. - A cualquier persona o equipo se le puede conceder acceso a fin de ver y modificar todas las alertas en un repositorio, independientemente de su rol de repositorio; para ello, modifique la configuración de "Acceso a alertas" del repositorio.
Ahora que hemos revisado qué alertas pueden ver los roles específicos, merece la pena señalar que la administración de acceso eficaz mejora la colaboración proporcionando el nivel adecuado de visibilidad a cada miembro del equipo. Esto garantiza que las partes interesadas puedan centrarse en los aspectos de seguridad pertinentes para sus roles, lo que facilita una respuesta simplificada y eficaz a las alertas de seguridad.
Al comprender las complejidades de la identificación de vulnerabilidades, responder a las alertas, reconocer las implicaciones derivadas de la inacción y definir roles y controles de acceso, los equipos de desarrollo pueden sacar el máximo provecho de GitHub Advanced Security, creando un entorno de desarrollo más resistente y seguro.
En la sección siguiente, revisaremos cómo GHAS en su conjunto puede mejorar tu ecosistema de seguridad.