Administración de las características y las alertas de GitHub Advanced Security
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.
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.
- Un desarrollador recibe una alerta de análisis de código en una solicitud de incorporación de cambios.
- Un ingeniero de seguridad revisa la gravedad de la alerta y recomienda un enfoque de corrección.
- Copilot Autofix propone una actualización de solicitud de incorporación de cambios.
- El desarrollador valida la corrección y actualiza el código si es necesario.
- Los administradores del repositorio aplican protecciones de rama y comprobaciones necesarias antes de combinarlas.
- 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.