Saltar al contenido
Iniciar sesiónReserve un piloto de auditoría
Abrir menúCerrar menú

Informe de muestra de evidencia de cambios

Lo que recibe su auditor para dos repositorios y un trimestre: cómo entró cada cambio fusionado y qué hace, con cada dato rotulado con cómo se obtuvo.

Organización y datos ficticios, solo a modo de ilustración.

El contenido de este ejemplo se muestra en español. El informe que genera Toevan está en inglés donde cita la salida del producto.

Próximamente en v1.4.0La evidencia de código está activa hoy. Los registros de cambio y la evidencia de proceso llegan en v1.4.0. La última sección muestra capas posteriores, marcadas como Planificado.

Organización y datos ficticios, solo a modo de ilustración.

toevan

Informe de evidencia de cambios

Cambios fusionados

Northwind (datos de muestra) · 2 repositorios · ramas protegidas · 15 jul al 13 oct 2026

Preparado para
[Firma auditora]
Repositorios
northwind/payments-api · northwind/ledger-service
Cambios en el alcance
146 pull requests fusionados en ramas protegidas y 2 pushes directos, capturados de GitHub en el momento en que ocurrieron.
Registros
4.152 registros sellados: registros de cambio, eventos de cambio de control y comprobaciones de código. Firmas verificadas al generar el informe.
Motor y conjuntos de reglas
toevan-engine 0.9.4 · Clean Architecture 1.4.0 · Security Essentials 2.14.0
Personas
Mostradas como digests de sus cuentas de GitHub en los registros sellados. Las exenciones nombran a quien las solicita y a quien las aprueba.
Generado
13 oct 2026, 11:42 UTC por [nombre]
Hash del informe
sha256:3f9a…c21e

Este informe es evidencia para que el auditor la evalúe. Toevan no emite ninguna opinión sobre si los controles están bien diseñados o funcionan con eficacia. Cada dato indica cómo se obtuvo. Los controles fuera del alcance de Toevan se enumeran en la sección de alcance y siguen siendo responsabilidad de la organización.

1. Resumen

Evidencia de proceso · cómo entraron los cambios

Pull requests fusionados146en ramas protegidas
Aprobación independiente143 / 1463 desviaciones
Pushes directos2sin pull request, señalados
Cambios de control31 abrió un hueco de 29 minutos

Evidencia de código · qué hacen los cambios

Pull requests comprobados146 / 146veredicto del gate antes de fusionar
Reglas de código sin hallazgos11 / 12código de producción, última release
Cobertura del análisis97,4 %gate 95 % · 0 ejecuciones por debajo
Exenciones aprobadas10 caducadas en el periodo

Qué se capturó

Toevan capturó las fusiones en ramas protegidas, los cambios en las reglas de revisión, los bypasses y los pushes directos de ambos repositorios tal como GitHub los informó, y selló cada uno en el momento en que ocurrió. En el periodo se fusionaron 146 pull requests y se hicieron 2 commits mediante push directo. Informado + sellado

Puntos de atención

  1. Dos pushes directos a payments-api/release/v1 el 19 sep, dentro de una ventana de 29 minutos en la que el requisito de revisión estaba desactivado.Proceso
  2. Tres pull requests fusionados sin la aprobación de alguien distinto del autor: dos en ledger-service antes de que existiera su regla de revisión, uno por bypass de administrador durante la ventana del 19 sep.Proceso
  3. La regla secret-detection-high falla en código de producción (1 hallazgo), amparada por una exención aprobada hasta el 20 dic.Código, Exenciones

2. Alcance, procedencia y mapeo de controles

Cómo se obtuvo cada dato

Recalculado
Toevan lo calculó a partir del propio código o del historial de git.
Repítalo con las mismas entradas y obtenga el mismo resultado.
Informado + sellado
GitHub lo informó; Toevan lo capturó en el evento y lo firmó.
Fíese de ello tanto como se fía de GitHub. Cualquier cambio posterior es detectable.
Declarado + sellado
La organización lo declaró, como un cambio en lo que se comprueba; Toevan firmó la declaración y su historial.
Vea quién declaró qué, cuándo, y cada cambio posterior.
Registro de Toevan, sin sellar
Guardado en la base de datos de Toevan pero no sellado en el libro, como una exención hoy. Ninguna firma lo protege.
Trátelo como una declaración de Toevan y pida a la organización la aprobación que hay detrás.
Consumido
Tomado del registro firmado de otro sistema, como la procedencia de una compilación, y enlazado por commit o digest. Planificado.
Compruebe el registro original de forma independiente.
No capturado
No había una fuente fiable. Toevan no lo infiere.
Obténgalo de la organización por otros medios.

La evidencia y los controles con los que se relaciona

EvidenciaControles relevantesObtenido
Aprobación, revisión independiente, aprobación sobre el commit finalDORA RTS 2024/1774 Art. 17 (planificado) · SOC 2 CC8.1 · ISO 27001 A.8.32Informado + selladoRecalculado
Checks obligatorios al fusionar; reglas de revisión vigentes; cambios de reglas y bypassesDORA RTS 2024/1774 Art. 17 (planificado) · SOC 2 CC8.1 · ISO 27001 A.8.32Informado + sellado
Pushes directos a ramas protegidasSOC 2 CC8.1 · ISO 27001 A.8.4, A.8.32Informado + sellado
Reglas de código: límites de arquitectura, codificación segura, dependenciasISO 27001 A.8.25, A.8.28 · SOC 2 CC8.1Recalculado
Exenciones y cambios de alcanceExcepciones a las reglas anterioresRegistro de Toevan, sin sellar

No incluido en este informe

  • Revisiones de acceso, procesos de altas y bajasOrganizativo
  • Monitorización en ejecución, respuesta a incidentesOrganizativo
  • Riesgo de terceros de TIC, seguridad físicaOrganizativo
  • Despliegues hechos fuera de GitHubOrganizativo
  • Cambios hechos fuera de GitHub, como cambios directos en la base de datos o en la consolaOrganizativo

3. Evidencia de proceso

Cómo se revisaron y fusionaron los 146 pull requests fusionados en el periodo, capturado de GitHub en el momento de cada fusión.

ComprobaciónResultadoObtenido
Aprobado por alguien distinto del autor143 / 146 · 3 desviacionesRecalculado
Aprobación dada sobre el commit final137 / 143 aprobados · 6 aprobaron un commit anteriorInformado + sellado
Checks obligatorios superados al fusionar146 / 146Informado + sellado
Firmas de commits verificadas por GitHub144 / 146Informado + sellado
Reglas de revisión vigentes registradas al fusionar146 / 146Informado + sellado

Desviaciones: fusionados sin aprobación independiente

PRFusionadoAutorRegla vigente al fusionarRegistro
ledger-service #38824 jul4be1…09c2Ninguna (regla añadida el 02 ago)rec_51b9e20
ledger-service #39129 julc58f…71d0Ninguna (regla añadida el 02 ago)rec_6e07a3d
payments-api #190319 sep 14:122a6e…f915Desactivada de 14:02 a 14:31 (admin)rec_0c88f14

Cambios en los propios controles

Cuándo (UTC)CambioPorRegistro
02 ago 09:14Regla de revisión aplicada a ledger-service: 2 aprobaciones, checks obligatorios9d07…e3a4rec_8a2f61c
19 sep 14:02Requisito de revisión desactivado en payments-api/release/*2a6e…f915rec_3f10b9a
19 sep 14:31Requisito de revisión reactivado2a6e…f915rec_3f10c02

Pushes directos sin pull request

Cuándo (UTC)RamaCommitPorRegistro
19 sep 14:09payments-api/release/v17c1e0a22a6e…f915rec_7c1e0a2
19 sep 14:22payments-api/release/v191d4b3f2a6e…f915rec_91d4b3f

Los cambios de control y los pushes directos se capturan como eventos cuando ocurren, así que un hueco entre instantáneas no pasa inadvertido. Las personas se muestran como digests de sus cuentas de GitHub; la independencia se calcula a partir de los ids de cuenta. Informado + sellado

4. Evidencia de código

Lo que hace el código, comprobado leyendo el propio código en la versión exacta fusionada. Las reglas marcadas como con hallazgos se aplican al código de producción; la documentación y los fixtures de prueba quedan fuera del alcance (véase Exenciones).

Clean Architecture 1.4.0 · reglas de diseño

ReglaQué compruebaÚltima releaseHallazgos
layer-dependency-handlers-to-dbLos controladores de peticiones nunca llaman directamente a la base de datosSin hallazgos0
service-boundariesLos servicios se comunican entre sí solo a través de sus interfaces públicasSin hallazgos0
role-placement-policyLas abstracciones y sus implementaciones están en las capas que asigna la arquitecturaSin hallazgos0
layer-dependency-policyUna dependencia entre capas solo se permite donde la política la enumeraSin hallazgos0

Security Essentials 2.14.0 · codificación segura

ReglaQué compruebaÚltima releaseHallazgos
secret-detection-highSin credenciales de alta confianza escritas en el código fuente ni en la configuraciónCon hallazgos1 · exención
no-committed-secret-filesSin .env, claves privadas ni keystores confirmadosSin hallazgos0
vulnerable-dependencyNinguna dependencia con una vulnerabilidad alta o crítica conocida (OSV.dev)Sin hallazgos0
encryption-at-restAlmacenamiento y conexiones a bases de datos cifradosSin hallazgos0
iac-network-segmentationNinguna exposición pública de servicios internosSin hallazgos0
iac-encryption-policyOpciones de cifrado de almacenamiento activadas en el código de infraestructuraSin hallazgos0
iac-access-controlSin políticas de acceso con comodinesSin hallazgos0
sensitive-unsafe-log-flowLos datos sensibles no llegan a los destinos de loggingSin hallazgos0

Hasta dónde llegó el análisis

RepositorioCobertura en la última releaseGateEjecuciones por debajo del gate en el periodo
payments-api97,9 %95 %0
ledger-service96,6 %95 %0

La cobertura es la proporción de los archivos fuente de producción del repositorio que el índice de código analizó en el commit indexado. Por debajo del gate, una ejecución se señala en lugar de registrarse como sin hallazgos. Las versiones del motor y del conjunto de reglas quedan en cada registro, así que cualquier resultado se puede repetir. Recalculado

5. Exenciones y cambios de alcance

Cada decisión que cambió lo que se comprobaba o aceptó una desviación conocida.

FechaCambioSolicitada · aprobadaMotivoRegistro
20 sepExención: secret-detection-high, payments-api/config/sandbox.yaml (archivo exacto), caduca el 20 dicc58f…71d0 · 4be1…09c2Clave de sandbox sin acceso a producción; rotación programadarec_b30e7c5

Ninguna exención caducó ni se revocó en el periodo. Quien solicita y quien aprueba son cuentas distintas en cada entrada. Las exenciones son registros de Toevan que no se sellan en el libro. Registro de Toevan, sin sellar

Versiones de conjuntos de reglas usadas en el periodo

Conjunto de reglasVersiónDesdeCambio
Clean Architecture1.4.015 jul (todo el periodo)Sin cambios
Security Essentials2.13.015 julSin cambios
Security Essentials2.14.012 agoReglas actualizadas por Toevan

6. Registros de cambio

Un cambio completo, tal como lo ve el auditor al muestrear. Todos los registros están en la exportación CSV, y cada sobre firmado está en la rama de evidencia del repositorio de la organización.

rec_5b81d4e

El cambio

Pull request
payments-api #1921 · Add tenant check to refund handler
Informado + sellado
Autor · fusionado por
4be1…09c2 · 9d07…e3a4 · 13 oct 2026, 10:41 UTC en main
Informado + sellado
Commit de fusión
5b81d4e
Informado + sellado
Desplegado en producción
13 oct 2026, 11:20 UTC · producción (marca de GitHub) · rec_9e41b07
Informado + sellado

Evidencia de proceso

Aprobaciones
9d07…e3a4, c58f…71d0 · ambas sobre el commit final e81b2d0
Informado + sellado
Independiente del autor
Sí, por id de cuenta de GitHub
Recalculado
Checks obligatorios
ci/test ✓ · ci/lint ✓ · toevan/gate ✓
Informado + sellado
Reglas vigentes
main-protection: 2 aprobaciones, checks obligatorios, commits firmados
Informado + sellado
Firma del commit
Verificada por GitHub
Informado + sellado

Evidencia de código

Reglas de diseño
4 / 4 sin hallazgos
Recalculado
Codificación segura
7 / 8 sin hallazgos · secret-detection-high bajo la exención rec_b30e7c5
Recalculado
Cobertura · motor
98,1 % (gate 95 %) · toevan-engine 0.9.4
Recalculado

Camino a producciónPlanificado

Copiado a la release
Asignado al original revisado por contenido
Recalculado

Sello

Firma
ECDSA P-256 · sobre DSSE · keyid 8c1f…e0a2
Registro anterior
rec_b7e21f0
Anclaje público
Registro público Rekor de Sigstore · integrado, voluntario por organización

Más registros (muestra)

RegistroCambioAprobación independienteReglas de códigoSellado (UTC)
rec_b7e21f0payments-api #1918Sí11 / 12 · exención13 oct 09:58
rec_9d41e02ledger-service #412Sí12 / 1209 oct 16:21
rec_0c88f14payments-api #1903No · bypass de admin12 / 1219 sep 14:12
rec_7c1e0a2push directo 7c1e0a2No · sin PR12 / 1219 sep 14:09

7. Cómo comprobar este informe

No necesita confiar en Toevan ni en la organización. Elija la ruta que se ajuste a su función. Solo la tercera necesita herramientas.

ComprobaciónQué demuestraQué no demuestra
El registro es genuino y no ha cambiadoEl registro se firmó con la clave publicada de Toevan y no se ha alterado desde entonces. La cadena de hashes muestra que no se eliminó ninguno.Que los datos que contiene sean correctos: las dos comprobaciones siguientes lo cubren.
La aprobación fue independienteQuien aprueba y el autor son cuentas de GitHub distintas, recalculado a partir de los ids de cuenta del registro.Que la revisión en sí fuera adecuada.
El resultado de código es reproducibleEl mismo commit, la misma versión del motor y la misma versión del conjunto de reglas dan el mismo resultado.Que las reglas abarquen todos los riesgos del código.
  1. En la app de la organización

    Acceso de auditor de solo lectura, sin acceso al repositorio

    • La organización le invita con el rol de auditor: acceso de solo lectura a la lista de evidencias, las exportaciones y los informes.
    • Verificar ahora vuelve a comprobar en la app todo el libro, las firmas y las pruebas de cualquier log de transparencia.
    • No abre nada más: los repositorios, el código y los hallazgos se rechazan.
  2. Vea cómo lo ejecuta la organización

    Pantalla compartida o in situ

    • Usted elige las muestras durante la sesión; un ingeniero ejecuta las comprobaciones mientras usted observa.
    • Verificación de cada registro muestreado: cadena, firma, sin cambios.
    • Cuentas de autor y de aprobador de cada muestra, comparadas en pantalla.
  3. Ejecútelo usted mismo

    Especialistas en auditoría de TI con acceso de lectura temporal

    • Use git, openssl y el comando toevan, que Toevan facilita a petición. No hace falta una cuenta de Toevan.
    • Compruebe que las puntas de rama de una copia coinciden con las puntas registradas en el informe.
    • Ejecute los comandos del apéndice y compare con el informe.

8. Ampliaciones planificadasPlanificado

Capas posteriores de la cadena de evidencia. No están en v1.4.0 y nada de este informe depende de ellas. Cada una indica cómo se obtendrán sus datos.

  • Ramas de producción designadas (v1.4.1)

    Ramas que la organización designa como producción, como una rama de release, cada designación declarada y sellada con cada cambio posterior. Cada una recibe la misma población que la rama por defecto: cada commit enumerado directamente desde git y asignado a un registro o señalado.

    Declarado + selladoRecalculado
  • Correcciones copiadas asignadas por contenido

    Una corrección revisada en main y copiada a una rama de release recibe un nuevo ID de commit. Toevan la asignará al original revisado por contenido (git patch-id) y señalará las copias cuyo contenido cambió.

    Recalculado

Apéndice · Comandos para revisores técnicos

Los comandos que un ingeniero ejecuta por usted, o que usted ejecuta por su cuenta.

Compruebe que un registro es genuino y no ha cambiado

$ openssl dgst -sha256 -verify toevan.pub \
    -signature sig.der \
    pae.bin
Verified OK

$ toevan audit verify --path evidence-clone --pub-key toevan.pub
✓ chain intact · 4,152 records
✓ signatures verify under the published key

Los dos archivos salen del sobre DSSE del registro con las líneas sed y printf que imprime la rama de evidencias: la firma y los bytes exactos que se firmaron. Espere “Verified OK” en cada registro que compruebe. Cualquier fallo significa que el registro se alteró o no se firmó con la clave publicada.