L'analyse statique souffrait du problème classique de la multiplicité des outils : les analyseurs de sécurité, de qualité et de conformité trouvaient des problèmes utiles, mais chacun produisait son propre format de sortie. Les agréger dans un seul flux de travail exigeait des adaptateurs sur mesure et entraînait une perte de contexte.
L'astuce de SARIF a été de définir le résultat comme un objet portable. La norme de l'OASIS stipule qu'un journal SARIF est du JSON et peut contenir les résultats d'une ou plusieurs exécutions d'analyse, avec les règles, les artefacts, les emplacements, les messages, les empreintes et les données de flux.
GitHub a rendu le format opérationnel. Sa documentation sur l'analyse de code permet aux équipes de téléverser des fichiers SARIF produits en dehors de GitHub, y compris par des outils tiers et des systèmes d'intégration continue, puis de consulter les résultats sous forme d'alertes de dépôt. Cela a fait passer SARIF du statut de schéma à celui de canal de distribution pour les analyseurs.
Normaliser le résultat, pas l'analyseur
Le JSON a rendu le format facile à générer, à valider et à stocker pour les outils et les plateformes.
Les exécutions et les métadonnées d'outil permettent à un seul fichier de conserver la trace de l'analyseur à l'origine de chaque résultat.
Les empreintes et les catégories aident les plateformes à dédupliquer et à suivre les alertes au fil des commits.
L'ingestion par GitHub a donné aux fournisseurs d'outils une raison immédiate de produire du SARIF.
Un format peut unifier un marché d'outils fragmenté s'il capture le cycle de vie du résultat, et pas seulement le premier message d'erreur.
Suites
SARIF 2.1.0 est devenu une norme de l'OASIS le 27 mars 2020. L'analyse de code de GitHub continue d'accepter les fichiers SARIF téléversés depuis des outils externes, ce qui fait de ce format un pont pratique entre les analyseurs locaux, les systèmes d'intégration continue et les flux de travail hébergés de sécurité du code.
VÉRIFIEZ LES SOURCES
Les sources
- Static Analysis Results Interchange Format (SARIF) Version 2.1.0 OASIS Open · docs.oasis-open.org ·
- Uploading a SARIF file to GitHub GitHub Docs · docs.github.com