El análisis estático tenía el clásico problema de las múltiples herramientas: los escáneres de seguridad, calidad y cumplimiento encontraban problemas útiles, pero cada uno hablaba su propio formato de salida. Agregarlos en un único flujo de trabajo implicaba adaptadores personalizados y pérdida de contexto.

El ingenioso movimiento de SARIF fue definir el resultado como un objeto portátil. El estándar de OASIS establece que un registro SARIF es JSON y puede contener resultados de una o más ejecuciones de análisis, con reglas, artefactos, ubicaciones, mensajes, huellas digitales y datos de flujo.

GitHub hizo operativo el formato. Su documentación sobre el escaneo de código permite a los equipos cargar SARIF producido fuera de GitHub, incluidas herramientas de terceros y sistemas de CI, y luego ver los resultados como alertas del repositorio. Eso convirtió a SARIF de un esquema en un canal de distribución para los escáneres.

Estandarizar el hallazgo, no el escáner

JSON facilitó a las herramientas y plataformas generar, validar y almacenar el formato.

Los metadatos de ejecuciones y de herramientas permiten que un solo archivo conserve qué escáner produjo qué hallazgo.

Las huellas digitales y las categorías ayudan a las plataformas a deduplicar y rastrear alertas a lo largo de los commits.

La ingesta de GitHub dio a los proveedores de herramientas una razón inmediata para emitir SARIF.

Un formato puede unificar un mercado de herramientas fragmentado si captura el ciclo de vida del resultado, no solo el primer mensaje de error.

SARIF 2.1.0 se convirtió en Estándar de OASIS el 27 de marzo de 2020. El escaneo de código de GitHub sigue aceptando archivos SARIF cargados desde herramientas externas, lo que hace del formato un puente práctico entre los escáneres locales, los sistemas de CI y los flujos de trabajo de seguridad del código alojados.

CONSULTA LAS PRUEBAS

Las fuentes

  1. Static Analysis Results Interchange Format (SARIF) Version 2.1.0 OASIS Open · docs.oasis-open.org ·
  2. Uploading a SARIF file to GitHub GitHub Docs · docs.github.com