Implementación de alertas y actualizaciones de seguridad de Dependabot de GitHub

Completado

GitHub Dependabot proporciona administración automatizada de dependencias integrada directamente en repositorios de GitHub. Dependabot supervisa las dependencias para detectar vulnerabilidades de seguridad y versiones obsoletas, alertar a los mantenedores de repositorios y crear automáticamente solicitudes de incorporación de cambios para actualizar dependencias vulnerables o obsoletas. Esta integración hace que la seguridad de dependencia sea accesible para todos los usuarios de GitHub sin necesidad de herramientas independientes.

Comprensión de Dependabot de GitHub

GitHub Dependabot consta de tres características principales que funcionan conjuntamente para proteger las dependencias:

Alertas de Dependabot

Las alertas de Dependabot notifican a los mantenedores del repositorio cuando se detectan dependencias vulnerables. GitHub supervisa continuamente la base de datos de asesoramiento de GitHub y otros orígenes de vulnerabilidades, comparándolos con las dependencias usadas en los repositorios.

Desencadenadores de alertas:

  • Nuevas divulgaciones de vulnerabilidades: Las alertas se crean cuando se agregan nuevas vulnerabilidades a la base de datos de asesoramiento de GitHub.
  • Actualizaciones de asesoramiento: Las alertas existentes se actualizan cuando cambia la información de vulnerabilidad (gravedad, versiones afectadas, revisiones).
  • Cambios en el gráfico de dependencias: Las nuevas alertas se generan cuando los cambios de código introducen dependencias vulnerables.
  • Datos de vulnerabilidades de Mend: La inteligencia de vulnerabilidades adicional de Mend (anteriormente WhiteSource) complementa la base de datos de asesoramiento de GitHub.

La información de alerta incluye:

  • Descripción de vulnerabilidad: Explicación detallada del problema de seguridad.
  • Nivel de gravedad: Puntuación y clasificación de gravedad de CVSS (crítica, alta, moderada, baja).
  • Versiones afectadas: Qué versiones de dependencia contienen la vulnerabilidad.
  • Versiones revisadas: Qué versiones corrigen la vulnerabilidad.
  • Identificador CVE: Identificador común de vulnerabilidades y exposiciones (CVE) cuando esté disponible.
  • Clasificación de CWE: Tipo común de enumeración de debilidad (CWE) que clasifica la vulnerabilidad.
  • Vínculo de asesoramiento de seguridad de GitHub: Vínculo al aviso completo con detalles adicionales.

Actualizaciones de seguridad de Dependabot

Las actualizaciones de seguridad de Dependabot crean automáticamente solicitudes de incorporación de cambios para actualizar dependencias vulnerables a versiones seguras. Cuando las alertas de Dependabot detectan vulnerabilidades con revisiones disponibles, las actualizaciones de seguridad pueden generar automáticamente solicitudes de incorporación de cambios que corrigen las vulnerabilidades.

Creación automática de pull requests:

  • Desencadenado por vulnerabilidades: Las actualizaciones de seguridad crean solicitudes de incorporación de cambios solo cuando se detectan vulnerabilidades de seguridad, no para cada actualización de dependencia.
  • Mínimos saltos de versión: Las solicitudes de incorporación de cambios actualizan las dependencias a la versión mínima que resuelve la vulnerabilidad al tiempo que se mantiene la compatibilidad.
  • Puntuaciones de compatibilidad: GitHub calcula las puntuaciones de compatibilidad que predicen si las actualizaciones interrumpirán la funcionalidad existente.
  • Notas de la versión: las solicitudes de incorporación de cambios incluyen notas de la versión e información del registro de cambios de las dependencias actualizadas.

Características del pull request:

  • Pruebas automatizadas: Las solicitudes de incorporación de cambios activan las canalizaciones de CI/CD existentes para validar que las actualizaciones mantienen la funcionalidad intacta.
  • Resolución de vulnerabilidades: Las descripciones de las solicitudes de incorporación de cambios explican qué vulnerabilidades resuelve la actualización.
  • Comandos de actualización: Los comentarios especiales permiten a los mantenedores controlar el momento de la integración, hacer un rebase de las solicitudes de incorporación de cambios o ignorar actualizaciones específicas.
  • Actualizaciones agrupadas: Se pueden actualizar varias dependencias vulnerables en una única solicitud de incorporación de cambios cuando corresponda.

Actualizaciones de versión del Dependabot

Las actualizaciones de la versión de Dependabot mantienen actualizadas las dependencias incluso cuando no hay vulnerabilidades presentes. A diferencia de las actualizaciones de seguridad que solo actualizan las dependencias vulnerables, las actualizaciones de versión actualizan proactivamente las dependencias a las versiones más recientes en función de las programaciones configuradas.

Actualizaciones programadas:

  • Frecuencia configurable: Las actualizaciones se pueden programar diariamente, semanalmente o mensualmente.
  • Estrategias de actualización: Configure si se van a actualizar todas las dependencias, solo las dependencias directas o grupos de dependencias específicos.
  • Restricciones de versión: Respetar las restricciones de control de versiones semánticas definidas en los archivos de manifiesto.
  • Límites de solicitudes de incorporación de cambios: Controlar cuántas solicitudes de incorporación de cambios abiertas crea Dependabot para evitar sobrecargar los mantenedores.

Habilitación de alertas de Dependabot

Las alertas de Dependabot están habilitadas de forma predeterminada para repositorios públicos, pero deben habilitarse manualmente para los repositorios privados.

Habilitación de alertas para un repositorio

Navegación:

  1. Vaya al repositorio en GitHub.
  2. Haga clic en Configuración en el menú del repositorio.
  3. Haga clic en Seguridad y análisis en la barra lateral izquierda.
  4. Busque la sección Alertas de Dependabot .
  5. Haga clic en Habilitar para activar las alertas de Dependabot.

Requisito del grafo de dependencias: Las alertas de Dependabot requieren que se habilite el gráfico de dependencias. El gráfico de dependencias se habilita automáticamente para repositorios públicos, pero puede que necesite la activación manual para los repositorios privados.

Habilitar el grafo de dependencias:

  1. En Configuración → Seguridad y análisis, busque Gráfico de dependencias.
  2. Haga clic en Habilitar si el gráfico de dependencias aún no está activo.
  3. GitHub comenzará a analizar las dependencias del repositorio para compilar el grafo de dependencias.

Habilitación para toda la organización

Los administradores de la organización pueden habilitar alertas de Dependabot en todos los repositorios:

Configuración de la organización:

  1. Vaya a Configuración de la organización.
  2. Haga clic en Seguridad y análisis en la barra lateral izquierda.
  3. Haga clic en Habilitar todo junto a Alertas de Dependabot para activar alertas para todos los repositorios actuales y futuros.
  4. Opcionalmente, seleccione Habilitar automáticamente para nuevos repositorios para activar las alertas de los repositorios recién creados.

Ecosistemas de paquetes compatibles

Las alertas de Dependabot admiten numerosos ecosistemas de paquetes, entre los que se incluyen:

Ecosistemas compatibles:

  • JavaScript: npm (package.json, package-lock.json), Yarn (yarn.lock).
  • Python: pip (requirements.txt, Pipfile, Pipfile.lock), Poesía (poetry.lock).
  • Ruby: Bundler (Gemfile, Gemfile.lock).
  • Java: Maven (pom.xml), Gradle (build.gradle, build.gradle.kts).
  • .NET: NuGet (*.csproj, packages.config, paket.dependencies).
  • Go: Módulos de Go (go.mod, go.sum).
  • PHP: Composer (composer.json, composer.lock).
  • Rust: Cargo (Cargo.toml, Cargo.lock).
  • Elixir: Mix (mix.exs, mix.lock).
  • Dart/Flutter: pub (pubspec.yaml, pubspec.lock).
  • Docker: Dockerfiles (referencias de imagen base).
  • Acciones de GitHub: Archivos de flujo de trabajo (versiones de acción).
  • Terraform: Configuración de Terraform (versiones del módulo).

Configuración de actualizaciones de seguridad de Dependabot

Las actualizaciones de seguridad de Dependabot requieren una habilitación explícita incluso cuando las alertas están habilitadas.

Habilitación de actualizaciones de seguridad

Configuración del repositorio:

  1. Vaya a Configuración → Seguridad y análisis.
  2. Busque actualizaciones de seguridad de Dependabot.
  3. Haga clic en Habilitar para activar las solicitudes automáticas de actualización de seguridad.
  4. Dependabot comenzará a supervisar las dependencias vulnerables y a crear solicitudes de incorporación de cambios cuando estén disponibles las revisiones.

Configuración de toda la organización:

  1. Vaya a configuración de la organización → Seguridad y análisis.
  2. Haga clic en Habilitar todo junto a Actualizaciones de seguridad de Dependabot.
  3. Seleccione Habilitar automáticamente para nuevos repositorios para futuros repositorios.

Comportamiento de actualización de seguridad

Creación automática de solicitudes de incorporación de cambios:

  • Detección de vulnerabilidades: Cuando las alertas de Dependabot detectan una dependencia vulnerable con un parche disponible, las actualizaciones de seguridad crean un pull request.
  • Actualizaciones mínimas: Las solicitudes de incorporación de cambios solo se actualizan a la versión mínima que resuelve la vulnerabilidad.
  • Versionado semántico: Las actualizaciones se ajustan al versionado semántico, prefiriendo actualizaciones de revisión sobre las actualizaciones menores o mayores siempre que sea posible.
  • Integración de pruebas: las solicitudes de incorporación de cambios desencadenan comprobaciones de CI/CD existentes para validar las actualizaciones.

Puntuaciones de compatibilidad: GitHub calcula las puntuaciones de compatibilidad que indican la probabilidad de que las actualizaciones interrumpan la funcionalidad existente:

  • Alta compatibilidad: Es probable que la actualización sea segura en función del análisis de repositorios similares.
  • Compatibilidad media: La actualización puede introducir cambios importantes que requieren revisión.
  • Compatibilidad baja: Es probable que la actualización incluya cambios importantes que requieren modificaciones de código.
  • Compatibilidad desconocida: Datos insuficientes para evaluar la compatibilidad.

Administración de solicitudes de incorporación de cambios:

  • Rebasamiento automático: Dependabot vuelve a basar automáticamente las solicitudes de incorporación de cambios cuando cambia la rama base.
  • Resolución de conflictos: Las solicitudes se cierran si los conflictos impiden la reestructuración automática.
  • Actualizaciones que sustituyen: Las nuevas solicitudes de incorporación de cambios reemplazan a las solicitudes de incorporación de cambios anteriores cuando se publican versiones más recientes.
  • Actualizaciones programadas: Las solicitudes de incorporación de cambios se crean según las programaciones configuradas para evitar sobrecargar los mantenedores.

Configuración de las actualizaciones de versiones de Dependabot

Las actualizaciones de versión requieren un archivo de configuración que defina las programaciones y el comportamiento de las actualizaciones.

Configuración de dependabot.yml

Las actualizaciones de versión se configuran mediante un .github/dependabot.yml archivo en el repositorio:

Configuración básica:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    open-pull-requests-limit: 10

Opciones de configuración:

  • Versión: Versión del esquema del archivo de configuración (siempre 2).
  • Actualizaciones: Matriz de configuraciones de actualización para diferentes ecosistemas de paquetes.
  • package-ecosystem: Administrador de paquetes para supervisar (npm, pip, bundler, maven, nuget, etc.).
  • directorio: Ubicación de los archivos de manifiesto del paquete (/ para la ruta de acceso raíz o subdirectorio).
  • schedule.interval: Frecuencia de actualización (diaria, semanal, mensual).
  • ** open-pull-requests-limit: Número máximo de pull requests abiertas que Dependabot crea (valor predeterminado 5).

Ejemplo de configuración avanzada:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      day: "monday"
      time: "08:00"
      timezone: "America/New_York"
    open-pull-requests-limit: 10
    reviewers:
      - "team/frontend-developers"
    assignees:
      - "dependency-manager"
    labels:
      - "dependencies"
      - "npm"
    commit-message:
      prefix: "npm"
      include: "scope"
    ignore:
      - dependency-name: "lodash"
        versions: ["4.x"]
    allow:
      - dependency-type: "production"

Opciones avanzadas:

  • schedule.day: día de la semana para actualizaciones semanales (de lunes a domingo).
  • schedule.time: Hora del día para las actualizaciones (formato de 24 horas).
  • schedule.timezone: Zona horaria para la programación (identificador de zona horaria de IANA).
  • Revisores: Los usuarios o equipos de GitHub solicitaron automáticamente las revisiones de solicitudes de incorporación de cambios.
  • Asignados: Usuarios de GitHub asignados automáticamente a los pull requests.
  • Etiquetas: Las etiquetas se aplican automáticamente a las solicitudes de incorporación de cambios.
  • commit-message.prefix: Prefijo para mensajes de confirmación (útiles para confirmaciones convencionales).
  • ignorar: Dependencias que se omitirán, opcionalmente, con intervalos de versiones específicos.
  • permitir: tipos de dependencia para actualizar (producción, desarrollo, todo).

Varios ecosistemas de paquetes

Los repositorios que usan varios ecosistemas de lenguaje requieren configuraciones de actualización independientes:

Configuración de varios ecosistemas:

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/frontend"
    schedule:
      interval: "weekly"

  - package-ecosystem: "pip"
    directory: "/backend"
    schedule:
      interval: "weekly"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "monthly"

Esta configuración supervisa las dependencias de npm en /frontend, dependencias de Python en /backend, imágenes base de Docker en todo el repositorio y versiones de Acciones de GitHub en flujos de trabajo.

Administración de solicitudes de incorporación de cambios de Dependabot

Las solicitudes de incorporación de cambios de Dependabot admiten comandos especiales para administrar las actualizaciones.

Comandos de las solicitudes de cambios

Comandos de comentario:

  • @dependabot rebase: vuelva a basar la solicitud de incorporación de cambios en la rama base actual.
  • @dependabot recreate: Recree el pull request y sobrescriba las modificaciones manuales.
  • @dependabot merge: combine la solicitud de incorporación de cambios una vez que se superen las comprobaciones de CI.
  • @dependabot squash and merge: squash confirma y combina una vez superada la comprobación.
  • @dependabot cancel merge: cancela una combinación solicitada anteriormente.
  • @dependabot reopen: vuelva a abrir una solicitud de incorporación de cambios cerrada.
  • @dependabot close: cierre la solicitud de incorporación de cambios y evite que Dependabot vuelva a crearla.
  • @dependabot ignore this major version: cierre la solicitud de incorporación de cambios y omita las actualizaciones futuras de esta versión principal.
  • @dependabot ignore this minor version: cierre la solicitud de incorporación de cambios y omita las actualizaciones futuras de esta versión secundaria.
  • @dependabot ignore this dependency: cierre la solicitud de incorporación de cambios y omita todas las actualizaciones futuras de esta dependencia.

Revisión y combinación de actualizaciones

Proceso de revisión:

  1. Examine la descripción de la solicitud de incorporación de cambios: Comprenda qué vulnerabilidad se resuelve o qué versión se actualiza.
  2. Revisión de la puntuación de compatibilidad: evalúe la probabilidad de cambios importantes.
  3. Compruebe los resultados de CI/CD: Compruebe que las pruebas automatizadas se superan correctamente.
  4. Revise las notas de lanzamiento: Comprenda los cambios incluidos en la actualización de dependencias.
  5. Pruebe localmente si es necesario: Para las actualizaciones principales, pruebe la funcionalidad localmente antes de combinarla.
  6. Solicitud de cambios de fusión: apruebe y fusione el solicitud de cambios para actualizar la dependencia.

Combinación automática: Para las actualizaciones de bajo riesgo con puntuaciones de compatibilidad elevadas y pruebas superadas, considere la posibilidad de configurar la combinación automática:

Combinación automática de acciones de GitHub:

name: Auto-merge Dependabot PRs
on: pull_request

jobs:
  auto-merge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Enable auto-merge
        run: gh pr merge --auto --squash "$PR_URL"
        env:
          PR_URL: ${{ github.event.pull_request.html_url }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Este flujo de trabajo habilita automáticamente la combinación automática para las solicitudes de incorporación de cambios de Dependabot que pasan todas las comprobaciones necesarias.

Alertas y notificaciones de Dependabot

Dependabot proporciona varios mecanismos de notificación para las alertas de vulnerabilidad.

Canales de notificación

Notificaciones web:

  • Notificaciones de GitHub: Las alertas aparecen en la bandeja de entrada de notificaciones de GitHub.
  • Pestaña Seguridad: Las alertas están visibles en la pestaña Seguridad del repositorio en Alertas de Dependabot.
  • Información del repositorio: El gráfico de dependencias de la pestaña Insights muestra dependencias vulnerables.

Notificaciones por correo electrónico:

  • Mensajes de correo electrónico de resumen: Mensajes de correo electrónico de resumen semanales que enumeran nuevas alertas.
  • Correos electrónicos en tiempo real: Correos electrónicos inmediatos para vulnerabilidades críticas.
  • Notificaciones de la organización: Los administradores de la organización reciben notificaciones para todos los repositorios.

Notificaciones personalizadas:

  • Webhooks: Configure webhooks para recibir notificaciones de alerta en sistemas externos.
  • API de GitHub: Consulte la API de alertas de Dependabot para recuperar mediante programación la información de alertas.
  • Integraciones de seguridad: Las plataformas de seguridad de terceros se pueden integrar con alertas de Dependabot a través de la API.

Configuración de preferencias de notificación

Configuración de notificación de usuario:

  1. Vaya a Configuración de GitHub → Notificaciones.
  2. Busque la sección Alertas de seguridad .
  3. Configurar las preferencias de notificación:
    • Participando: Reciba notificaciones para los repositorios que sigues o en los que participas.
    • Observando: Recibe notificaciones para todos los repositorios observados.
    • Correo electrónico: Habilite las notificaciones por correo electrónico para las alertas de seguridad.
    • Web: Habilite las notificaciones web en la interfaz de GitHub.

Configuración de notificaciones de la organización:

  1. Vaya a configuración de la organización → Seguridad y análisis.
  2. Configure quién recibe notificaciones de alerta de seguridad:
    • Propietarios de la organización: Reciba automáticamente todas las alertas de seguridad.
    • Administradores de seguridad: El equipo de seguridad designado recibe alertas.
    • Administradores del repositorio: Cada administrador del repositorio recibe alertas para sus repositorios.

Revisión de alertas de Dependabot

La pestaña Seguridad proporciona una administración completa de alertas.

Detalles de alertas

Vaya a alertas:

  1. Abra el repositorio en GitHub.
  2. Haga clic en la pestaña Security (Seguridad).
  3. Haga clic en Dependabot alerts (Alertas de Dependabot ) en la barra lateral izquierda.
  4. Revise la lista de alertas activas.

Información de alerta:

  • Severidad: Clasificación de gravedad crítica, alta, moderada o baja.
  • Paquete: Nombre y versión de dependencia afectados.
  • Vulnerabilidad: Identificador y descripción de CVE.
  • Versiones revisadas: Versiones que resuelven la vulnerabilidad.
  • Rutas de acceso de código vulnerables: Si el código vulnerable se usa realmente (si el análisis de accesibilidad está disponible).
  • Corrección automática disponible: Si Dependabot puede crear automáticamente una solicitud de incorporación de cambios para corregir la vulnerabilidad.

Administración de alertas

Acciones de alerta:

  • Revise la solicitud de incorporación de cambios: Si existe una actualización de seguridad automática, revise y combine la solicitud de incorporación de cambios.
  • Descartar alerta: Descartar falsos positivos o riesgos aceptados con un motivo para descartar.
  • Posponer alerta: Descarte temporalmente las alertas que no se pueden solucionar inmediatamente.
  • Volver a abrir la alerta: Vuelva a abrir las alertas descartadas anteriormente si cambian las circunstancias.

Motivos de despido:

  • Corrección iniciada: El equipo está trabajando activamente en la corrección.
  • Sin ancho de banda: El problema se confirma, pero no se puede solucionar actualmente.
  • Riesgo tolerable: La vulnerabilidad no supone un riesgo significativo en este contexto.
  • Inexacto: La alerta es un falso positivo.

Integración de Advanced Security en GitHub

GitHub Dependabot es un componente principal de Seguridad avanzada de GitHub, la plataforma de seguridad completa de GitHub que proporciona características de seguridad de nivel empresarial para proteger la cadena de suministro de software.

Funcionalidades de Seguridad Avanzada

Funcionalidades de seguridad integradas:

  • Examen de dependencias: Dependabot examina automáticamente las dependencias para detectar vulnerabilidades conocidas mediante las bases de datos de vulnerabilidades del sector y la base de datos de vulnerabilidades del sector de GitHub.
  • Examen de secretos: detecta secretos, tokens y credenciales confirmados accidentalmente en el código y el historial del repositorio.
  • Examen de código: Usa CodeQL y otros motores de análisis para buscar vulnerabilidades de seguridad y errores de codificación en el código fuente.
  • Introducción a la seguridad: Proporciona visibilidad de toda la organización sobre las alertas de seguridad, las vulnerabilidades y el estado de corrección.
  • Seguridad de la cadena de suministro: Gráfico de dependencias, revisión de dependencias y generación SBOM para una visibilidad completa de la cadena de suministro.

Licencias y disponibilidad

Acceso a Seguridad Avanzada:

  • Repositorios públicos: Todas las características de Seguridad avanzada de GitHub están disponibles de forma gratuita en repositorios públicos.
  • Repositorios privados: Requiere la licencia de Seguridad avanzada de GitHub (incluida con GitHub Enterprise Cloud y GitHub Enterprise Server).
  • GitHub Gratis/Equipo: Las alertas de Dependabot y las actualizaciones de seguridad están disponibles, pero el análisis de código y el análisis de secretos requieren licencias de Seguridad Avanzada.

Panel de información general de seguridad

La información general sobre seguridad proporciona visibilidad de nivel de organización:

Métricas de seguridad de la organización:

  • Tendencias de alertas: Vea las tendencias de alertas de seguridad en todos los repositorios a lo largo del tiempo.
  • Evaluación de riesgos: Identifique los repositorios con el mayor riesgo de seguridad en función de las alertas críticas y de alta gravedad.
  • Cobertura del equipo: Supervise qué equipos tienen habilitadas las características de seguridad y realice un seguimiento del progreso de la corrección.
  • Informes de cumplimiento: Generar informes para los requisitos de cumplimiento y auditoría de seguridad.

Introducción a la seguridad de acceso:

  1. Vaya a su organización en GitHub.
  2. Haga clic en la pestaña Security (Seguridad).
  3. Revise las métricas de seguridad de toda la organización, los recuentos de alertas y las tendencias.
  4. Explore en profundidad repositorios específicos o tipos de alertas para una investigación detallada.

Habilitación de Seguridad Avanzada

Para los propietarios de la organización:

  1. Vaya a Configuración de la organización.
  2. Haga clic en Seguridad y análisis de código.
  3. Habilite Seguridad avanzada de GitHub para repositorios privados.
  4. Configure los valores predeterminados para:
    • Gráfico de dependencias (habilitado automáticamente).
    • Alertas de Dependabot.
    • Actualizaciones de seguridad de Dependabot.
    • Examen de secretos.
    • Examen de código (requiere configuración de flujo de trabajo).

Habilitación de nivel de repositorio:

Los repositorios individuales pueden habilitar o deshabilitar las características de Advanced Security:

  1. Vaya a Configuración del repositorio.
  2. Haga clic en Seguridad y análisis de código.
  3. Habilite las características de seguridad deseadas:
    • Gráfico de dependencias: Se requiere para la funcionalidad Dependabot.
    • Alertas de Dependabot: Notificaciones de vulnerabilidad.
    • Actualizaciones de seguridad de Dependabot: Corrección automática de vulnerabilidades mediante solicitudes de cambios.
    • Escaneo de secretos: Detección de fugas de credenciales.
    • Examen de código: Pruebas estáticas de seguridad de aplicaciones (SAST).

Integración con flujos de trabajo de desarrollo

GitHub Advanced Security se integra perfectamente con los procesos de desarrollo:

Integración de solicitud de incorporación de cambios:

  • Revisión de dependencias: Revisa automáticamente los cambios de dependencia en las solicitudes de incorporación de cambios, resaltando las nuevas vulnerabilidades introducidas por las actualizaciones de dependencia.
  • Comprobaciones de seguridad: El examen de código y el examen de secretos se ejecutan automáticamente en las solicitudes de incorporación de cambios, bloqueando las combinaciones si se encuentran problemas críticos.
  • Revisiones necesarias: configure las reglas de protección de rama para requerir la aprobación del equipo de seguridad en las solicitudes de extracción con alertas de seguridad.

Directivas de seguridad:

  • SECURITY.md: Defina las directivas de divulgación de vulnerabilidades y la información de contacto de seguridad.
  • Propietarios de código: Asigne miembros del equipo de seguridad como propietarios de código para archivos de dependencia (package.json, requirements.txt, pom.xml).
  • Protección de rama: Requerir comprobaciones de estado para exámenes de seguridad antes de permitir combinaciones.

Auditoría y cumplimiento:

  • Registro de auditoría: Realice un seguimiento de todas las acciones relacionadas con la seguridad, incluidos los despidos de alertas, la habilitación de características y los cambios de acceso.
  • Directivas de seguridad: Aplique los estándares de seguridad de toda la organización en todos los repositorios.
  • Integración de cumplimiento: Exporte datos de seguridad para SOC 2, ISO 27001 y otros marcos de cumplimiento.

GitHub Advanced Security proporciona protección de nivel empresarial para la cadena de suministro de software, con Dependabot que actúa como base para la administración de la seguridad de dependencias. El enfoque integrado de la plataforma garantiza una detección de vulnerabilidades completa, la corrección automatizada y la visibilidad de la seguridad en toda la organización.

GitHub Dependabot proporciona una administración completa y automatizada de seguridad de dependencias integrada directamente en flujos de trabajo de GitHub. Al habilitar alertas, actualizaciones de seguridad y de versiones, los equipos de desarrollo pueden abordar de forma proactiva las vulnerabilidades y mantener las dependencias actualizadas con un esfuerzo manual mínimo. En la siguiente unidad se explora cómo integrar comprobaciones de análisis de composición de software en canalizaciones de CI/CD más allá de las funcionalidades integradas de GitHub.