Documentación

Permisos de GitHub y la comprobación de Seguridad de Coroid

Qué permisos de la aplicación GitHub utiliza Seguridad y por qué, cómo funciona la comprobación de Seguridad de Coroid, cómo exigirla y cómo se importan las alertas de seguridad propias de GitHub.

Seguridad funciona a través de la aplicación GitHub de Coroid. Esta página detalla qué necesita la aplicación para Seguridad y qué Coroid Security informa la comprobación, cómo hacer que GitHub la exija y cómo aparecen en Seguridad las alertas de seguridad propias de GitHub.

Permisos

Seguridad utiliza los permisos que ya tiene la aplicación para tus repositorios: leer código y pull requests, y escribir comprobaciones. Estos son opcionales y cada uno aporta una función específica:

PermisoQué aportaSin él
Colas de fusión: solo lectura, con el evento del grupo de fusiónCoroid Security en los commits de la cola de fusiónLas colas de fusión no obtienen resultado Coroid Security resultado
Alertas de Dependabot: solo lectura, con su eventoImporta las alertas de DependabotNo se importan
Alertas de análisis de código: solo lectura, con su eventoImporta las alertas de análisis de código de GitHubNo se importan
Alertas de escaneo de secretos: solo lectura, con su eventoImporta las alertas de escaneo de secretos de GitHub, sin los valores de los secretosNo se importan

Cuando la aplicación solicita un nuevo permiso, GitHub pide al propietario de tu organización que lo acepte para tu instalación. Hasta entonces, en Seguridad → Resumen se indican qué repositorios carecen de él, con un enlace a la instalación en GitHub.

Coroid también consulta si cada repositorio es público o privado, a partir de los eventos de GitHub y preguntando a GitHub, para decidir qué se puede publicar allí. Consulta Divulgación.

La comprobación de Seguridad de Coroid

Coroid Security es una única comprobación, con un nombre único, ya sea que se ejecute de forma independiente o como parte del grafo de entrega del proyecto en Control de Calidad, de modo que un repositorio pueda exigirla una sola vez. Informa sobre las protecciones que verifican cada cambio: dependencias vulnerables y secretos filtrados. El peor resultado de ambos determina el estado final. Los informes de análisis de código pasan por las comprobaciones de Control de Calidad y la revisión de Seguridad a través de la comprobación de Revisión de Coroid.

Se ejecuta en los repositorios de GitHub conectados mediante la aplicación:

  • cuando se abre, reabre, actualiza o marca como listo para revisión un pull request;
  • en cada commit de la cola de fusión, con el permiso de colas de fusión;
  • cuando alguien la vuelve a ejecutar en GitHub.

Aparece como en proceso en cuanto llega el evento. El enlace a sus detalles abre el proyecto en Seguridad.

Qué informa

EstadoAplicadoSolo observar
Cobertura completa del cambio, nada a o por encima del umbralÉxitoÉxito
Un hallazgo a o por encima del umbralErrorNeutro, nombrándolo
El escaneo falló o no pudo ejecutarse, el archivo que toca el cambio solo está parcialmente cubierto, o no se pudo leer la configuraciónError, indicando por qué y cómo volver a ejecutarloNeutro, indicando por qué
Sin resultado en 10 minutosError, "se agotó el tiempo"Neutro
Todas las protecciones del proyecto están desactivadasNeutroNeutro

Nunca se considera "omitida": GitHub cuenta una comprobación requerida omitida como aprobada, de modo que una protección aplicada que no se ejecutó se interpretaría como aprobada. Una comprobación requerida siempre obtiene uno de los resultados anteriores, por lo que la cola de fusión nunca espera indefinidamente.

La comprobación solo cuenta lo que introduce el cambio, no los hallazgos ya presentes en la rama base. Su texto nunca nombra un hallazgo que no sea público; indica cuántos se encontraron, a qué umbral y que los detalles están en Coroid.

Exigir la comprobación de Seguridad de Coroid

Aplicar una protección hace que la comprobación falle. GitHub bloquea la fusión solo si el repositorio exige la comprobación:

  1. Protección de ramas: en Configuración del repositorio → Ramas, edita la regla para tu rama predeterminada, activa Exigir que se aprueben las comprobaciones de estado antes de fusionar, y añade Coroid Security.
  2. Conjuntos de reglas: en Configuración → Reglas → Conjuntos de reglas, añade Exigir que se aprueben las comprobaciones de estado al conjunto de reglas para tu rama predeterminada, añade Coroid Security, y selecciona la aplicación GitHub de Coroid como fuente.
  3. Colas de fusión: exige la comprobación en la misma regla. La aplicación necesita el permiso de colas de fusión para que la comprobación se ejecute en los commits de la cola de fusión.

Solicítelo una vez que las protecciones que desea aplicar estén activas. Una comprobación requerida que solo realiza observaciones también se considera válida.

Alertas de seguridad de GitHub

Con Alertas de seguridad de GitHub Al activarlo en Seguridad → Configuración y con los permisos indicados anteriormente, Seguridad importa las alertas de Dependabot, de escaneo de código y de detección de secretos como observaciones de los mismos hallazgos que generan los propios escaneos de Coroid. Las nuevas alertas llegan cuando GitHub las envía, y Coroid vuelve a leer las alertas de cada repositorio una vez al día.

  • Importadas, no confirmadas. Una alerta que los propios escaneos de Coroid no han confirmado muestra el mensaje "Importada desde GitHub, aún no confirmada". Se incluye en la lista y se cuenta, pero no genera notificaciones ni bloqueos hasta que el escaneo de Coroid la confirme.
  • Las fuentes difieren. Cuando GitHub y Coroid informan sobre un hallazgo de manera diferente, el hallazgo lo refleja y muestra el estado de cada fuente: presente, eliminado, descartado o sin poder leerse.
  • Cada fuente cierra sus alertas de forma independiente. Una alerta de Dependabot se resuelve en GitHub cuando la rama predeterminada ya no contiene la versión vulnerable. Una alerta de escaneo de código se resuelve cuando el análisis de la rama predeterminada deja de reportarla. Una alerta de detección de secretos permanece abierta hasta que alguien la resuelva en GitHub, por lo que la fusión de una corrección no la cierra.
  • Permiso perdido. Si la aplicación pierde un permiso o GitHub desactiva una función, los hallazgos que solo esa fuente reportó mostrarán el estado "estado desconocido desde" a partir de ese momento, y ninguna alerta se cerrará.

El Resumen muestra, por repositorio y fuente, si las alertas fueron leídas, si falta el permiso, si la función está desactivada en GitHub o si no se pudo acceder al repositorio.