Administración de las características y las alertas de GitHub Advanced Security

Completado

Ahora que la seguridad del proyecto está configurada, todo lo que tiene que hacer es supervisar y administrar las características y alertas de seguridad avanzada de GitHub para el proyecto.

En esta unidad, aprenderá a usar información general de seguridad para supervisar los riesgos de seguridad en el proyecto. También aprenderá a usar los puntos de conexión de GitHub Advanced Security para administrar funciones y alertas de seguridad.

Uso de la información general de seguridad

Información general de seguridad está disponible en la pestaña Seguridad y calidad de las organizaciones y repositorios. Puede usarlo para obtener una vista general de la posición de seguridad de su organización o identificar repositorios que requieren atención.

  • Nivel de organización: Muestra información de seguridad agregada y específica del repositorio para los repositorios que pertenecen a la organización. La característica de seguridad también puede filtrar la información.
  • Nivel de equipo: Muestra información de seguridad específica del repositorio para repositorios en los que el equipo tiene privilegios de administrador.
  • Nivel de repositorio: Muestra qué características de seguridad están habilitadas para el repositorio y proporciona opciones para configurar las características disponibles que no están habilitadas actualmente.

Captura de pantalla de la información general de seguridad en el nivel de organización.

Gracias a su interfaz interactiva y funcionalidades de filtrado, Security Overview admite análisis de seguridad amplios y dirigidos.

Por ejemplo, puede usarlo para:

  • Supervise la adopción de características de seguridad en toda la organización.
  • Realice un seguimiento de la adopción de cada equipo durante la implementación de GitHub Advanced Security.
  • Revisa las alertas de un tipo o una gravedad específicos en todos los repositorios.

Uso de puntos de conexión de seguridad avanzada de GitHub

En la tabla siguiente se resumen los puntos de conexión de API disponibles para cada característica de seguridad avanzada de GitHub.

Característica Puntos finales Documentación
Examen de código Recupere y actualice las alertas de análisis de código.
Crear informes automatizados para organizaciones.
Cargue los resultados de análisis de CodeQL sin conexión.
API de análisis de código
Análisis de secretos Habilitar o deshabilitar el examen de secretos para repositorios.
Recupere y actualice las alertas de examen de secretos.
API de repositorios
API de análisis de secretos
Revisión de dependencias Habilite o deshabilite las alertas de dependencia y el gráfico de dependencias.
Habilite o deshabilite las correcciones de seguridad.
Ver información de dependencia.
API de repositorios
GraphQL API

Configurar permisos de GITHUB_TOKEN

Si usa Acciones de GitHub para automatizar flujos de trabajo de seguridad, es importante configurar los permisos concedidos a los GITHUB_TOKEN usados para las llamadas API autenticadas.

En la tabla siguiente se resumen los permisos predeterminados.

Ámbito Acceso predeterminado (permisivo) Acceso predeterminado (restringido) Acceso máximo desde repositorios bifurcados
Acciones lectura y escritura Ninguno lectura
checks lectura y escritura Ninguno lectura
contenido lectura y escritura lectura lectura
despliegues lectura y escritura Ninguno lectura
token de identificación lectura y escritura Ninguno lectura
problemas lectura y escritura Ninguno lectura
metadatos lectura lectura lectura
Paquetes lectura y escritura Ninguno lectura
pull-requests lectura y escritura Ninguno lectura
proyectos de repositorio lectura y escritura Ninguno lectura
eventos de seguridad lectura y escritura Ninguno lectura
statuses lectura y escritura Ninguno lectura

Puede modificar los permisos concedidos a GITHUB_TOKEN en archivos de flujo de trabajo individuales.

  • Si los permisos predeterminados son restrictivos, es posible que tenga que aumentar los permisos para que los flujos de trabajo puedan completarse correctamente.
  • Si los permisos predeterminados son permisivos, debe quitar permisos innecesarios.

Como procedimiento recomendado de seguridad, conceda siempre el privilegio mínimo necesario.

También puede usar la permissions clave para configurar permisos para un flujo de trabajo completo o trabajos individuales. Cuando se especifica permissions, todos los permisos no especificados se establecen en ninguno, excepto en el ámbito de metadatos, que siempre tiene acceso de lectura.

name: Create issue on commit

on:
  - push

jobs:
  create_commit:
    runs-on: ubuntu-latest
    permissions:
      issues: write

    steps:
      - name: Create issue using REST API
        run: |
          curl --request POST \
            --url http(s)://[hostname]/api/v3/repos/${{ github.repository }}/issues \
            --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
            --header 'content-type: application/json' \
            --data '{
              "title": "Automated issue for commit: ${{ github.sha }}",
              "body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**.\n\nThe commit hash was: _${{ github.sha }}_."
            }' \
            --fail

En el ejemplo anterior, se concede acceso de escritura al ámbito de problemas para un único trabajo.

También puede usar la tecla permissions para añadir o quitar permisos de lectura para los flujos de trabajo activados desde repositorios bifurcados. Por lo general, no se pueden conceder permisos de escritura a menos que la opción Enviar tókenes de escritura a flujos de trabajo desde solicitudes de incorporación de cambios esté habilitada en la configuración de Acciones de GitHub.

Vistas de detección, corrección y prevención

Descripción general de seguridad organiza la información en tres vistas principales.

Vista Purpose
Detección Supervise dónde se detectan vulnerabilidades, secretos y riesgos de dependencia.
Corrección Realice un seguimiento de cómo se han corregido, priorizado y resuelto las alertas en los repositorios.
Prevención Mida cómo se impiden las vulnerabilidades antes de llegar a las ramas protegidas.

La vista Prevención ayuda a las organizaciones a evaluar la eficacia de los controles de seguridad para detener los cambios de riesgo antes de combinarlos.

Algunos ejemplos son:

  • Vulnerabilidades corregidas durante la revisión de la solicitud de incorporación de cambios.
  • Hallazgos del análisis de código resueltos antes de la fusión.
  • Actividad de corrección de Copilot Autofix.
  • Examen de secretos de eventos de protección contra el envío de cambios.
  • Se evitaron riesgos de dependencia.

Interpretar alertas entre las distintas funciones de seguridad

Información general de seguridad agrega información de varias características de seguridad de GitHub para ayudar a los equipos a comprender el riesgo de la organización.

Entre los orígenes de alertas comunes se incluyen:

  • Alertas de análisis de código: Vulnerabilidades e patrones de codificación no seguros detectados por CodeQL o escáneres de terceros.
  • Alertas de examen de secretos: Credenciales expuestas, claves de API y tokens.
  • Alertas de Dependabot: Dependencias vulnerables y riesgos de paquetes.
  • Revisión de dependencias: riesgos introducidos a través de cambios de dependencia en las solicitudes de incorporación de cambios.

Teams puede filtrar las alertas por:

  • Gravedad
  • Repositorio
  • Tipo de característica
  • Intervalo de tiempo
  • Propiedad de equipo
  • Estado de alerta

Estos filtros admiten tanto el análisis en toda la organización como las investigaciones centradas.

Seguimiento de la corrección e información sobre la corrección automática

Información general de seguridad también ayuda a supervisar el progreso de la corrección.

Los equipos de seguridad pueden realizar un seguimiento de:

  • Alertas de solicitud de incorporación de cambios corregidas antes de la combinación.
  • Tendencias de corrección.
  • Solicitudes de incorporación generadas por Autofix de Copilot.
  • Tasas de validación y de finalización de la fusión.
  • Repositorios con alertas no resueltas periódicas.

Estas conclusiones ayudan a las organizaciones a identificar cuellos de botella, priorizar repositorios de alto riesgo y medir la eficacia de la corrección.

Visibilidad sobre los eventos de elusión y las señales de gobernanza

Información general de seguridad también muestra las métricas de gobernanza y directiva en toda la organización.

Algunos ejemplos son:

  • Eventos de omisión de protección de inserción.
  • Actividad de cumplimiento de la protección de rama.
  • Tendencias en el descarte de alertas.
  • Actividad del registro de auditoría.
  • Métricas de adopción y cobertura de directivas.

Estas métricas ayudan a los administradores a comprender:

  • Donde los usuarios omiten las protecciones.
  • Si las directivas requieren refinamiento.
  • Si los controles de seguridad se aplican de forma coherente.

Junto con los registros de auditoría, los conjuntos de reglas y las directivas de protección de ramas, esta información respalda la elaboración de informes de cumplimiento, las revisiones operativas y la mejora continua de la seguridad.

Roles y responsabilidades de seguridad

La adopción correcta de GitHub Advanced Security requiere una propiedad clara en los equipos de desarrollo, seguridad y administración.

Los distintos roles interactúan con las características de seguridad avanzada de GitHub a lo largo del ciclo de vida de desarrollo de software e respuesta a incidentes.

Responsabilidad Desarrolladores Ingenieros de seguridad Repositorio/Administradores de la organización
Revisión y corrección de alertas de análisis de código Yes Yes No
Revisar alertas de examen de secretos Yes Yes Yes
Actualización de dependencias vulnerables Yes Yes No
Validar las solicitudes de incorporación de cambios de Copilot Autofix Yes Yes No
Clasificar y priorizar las alertas de seguridad No Yes Yes
Configuración de directivas de seguridad y conjuntos de reglas No Yes Yes
Gestionar la protección de ramas y las directivas de flujo de trabajo No No Yes
Supervisión de paneles de información general de seguridad No Yes Yes
Revisión de los registros de auditoría y las señales de gobernanza No Yes Yes
Configuración de la configuración de seguridad del repositorio y la organización No No Yes
Coordinar flujos de trabajo de respuesta a incidentes No Yes Yes
Aprobación de excepciones o despidos de directiva No Yes Yes

Ejemplo de propiedad del flujo de trabajo

Un flujo de trabajo típico de GitHub Advanced Security implica que varios roles funcionen juntos.

  1. Un desarrollador recibe una alerta de análisis de código en una solicitud de incorporación de cambios.
  2. Un ingeniero de seguridad revisa la gravedad de la alerta y recomienda un enfoque de corrección.
  3. Copilot Autofix propone una actualización de solicitud de incorporación de cambios.
  4. El desarrollador valida la corrección y actualiza el código si es necesario.
  5. Los administradores del repositorio aplican protecciones de rama y comprobaciones necesarias antes de combinarlas.
  6. Los equipos de seguridad revisan los registros de auditoría y las tendencias de corrección a través de información general de seguridad.

Definir claramente las responsabilidades permite a las organizaciones ampliar la adopción de GitHub Advanced Security al tiempo que mantienen la gobernanza, la responsabilidad y la coherencia operativa.