Die statische Analyse hatte das klassische Problem vieler Tools: Sicherheits-, Qualitäts- und Compliance-Scanner fanden nützliche Probleme, aber jedes sprach sein eigenes Ausgabeformat. Sie in einen einzigen Workflow zusammenzuführen bedeutete maßgeschneiderte Adapter und verlorenen Kontext.

Der geschickte Schachzug von SARIF bestand darin, das Ergebnis als portables Objekt zu definieren. Der OASIS-Standard besagt, dass ein SARIF-Protokoll JSON ist und Ergebnisse aus einem oder mehreren Analyse-Läufen enthalten kann, mit Regeln, Artefakten, Orten, Meldungen, Fingerabdrücken und Flussdaten.

GitHub machte das Format operativ. Die Dokumentation zur Code-Scanning-Funktion ermöglicht es Teams, außerhalb von GitHub erzeugte SARIF-Dateien hochzuladen, einschließlich solcher von Drittanbieter-Tools und CI-Systemen, und die Ergebnisse dann als Repository-Alarme anzuzeigen. Damit wurde SARIF von einem Schema zu einer Vertriebsschiene für Scanner.

Den Befund standardisieren, nicht den Scanner

JSON machte es für Tools und Plattformen einfach, das Format zu erzeugen, zu validieren und zu speichern.

Läufe und Tool-Metadaten ermöglichen es, in einer einzigen Datei festzuhalten, welcher Scanner welchen Befund erzeugt hat.

Fingerabdrücke und Kategorien helfen Plattformen, Alarme über Commits hinweg zu deduplizieren und zu verfolgen.

Die Aufnahme durch GitHub gab Tool-Anbietern einen unmittelbaren Anreiz, SARIF auszugeben.

Ein Format kann einen fragmentierten Tool-Markt vereinheitlichen, wenn es den gesamten Lebenszyklus eines Ergebnisses erfasst und nicht nur die erste Fehlermeldung.

SARIF 2.1.0 wurde am 27. März 2020 ein OASIS-Standard. Das Code-Scanning von GitHub akzeptiert weiterhin hochgeladene SARIF-Dateien von externen Tools, wodurch das Format zu einer praktischen Brücke zwischen lokalen Scannern, CI-Systemen und gehosteten Workflows für Code-Sicherheit wird.

DEN BELEGEN FOLGEN

Die Quellen

  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