SARIF

SARIF

SARIF ist ein einheitliches Dateiformat, in dem Prüfprogramme ihre Funde in Software aufschreiben. Dank dieses gemeinsamen Formats können verschiedene Werkzeuge, Entwicklungsumgebungen und Dashboards dieselben Ergebnisse lesen und anzeigen.

Software wird heute nicht nur von Menschen geprüft, sondern auch von Prüfprogrammen. Diese Programme lesen den geschriebenen Programmtext und melden verdächtige Stellen, etwa eine Sicherheitslücke oder einen schlampigen Tippfehler. Jedes solche Prüfprogramm hat früher seine Meldungen in einem eigenen, selbst erfundenen Dateiaufbau abgelegt. Wer die Ergebnisse von fünf Werkzeugen zusammen anzeigen wollte, musste fünf Übersetzer bauen. SARIF ist die Antwort darauf: ein festgelegter, für alle gleicher Aufbau solcher Ergebnisdateien. Der Name steht für « Static Analysis Results Interchange Format », also etwa « Austauschformat für Ergebnisse der Programmtext-Prüfung ».

Ein gemeinsames Meldeformular für Prüfwerkzeuge

Der Nutzen von SARIF liegt in der Ersparnis an Zwischenarbeit. Ein großes Softwareprojekt lässt oft ein Dutzend Prüfwerkzeuge gleichzeitig laufen. Ohne gemeinsames Format braucht jedes Werkzeug seine eigene Anbindung an die Anzeigeoberfläche. Mit SARIF gibt es nur noch eine Anbindung, und neue Werkzeuge lassen sich fast ohne Aufwand ergänzen.

Ein Vergleich macht das greifbar. Stell dir Arztberichte vor, bei denen jede Praxis ein eigenes Formular benutzt. Ein Krankenhaus müsste jedes Formular einzeln verstehen lernen. Mit einem einheitlichen Bericht liest die Aufnahme alles gleich. SARIF ist dieses einheitliche Formular für Codeprüfungen.

Wichtig ist außerdem: SARIF prüft selbst nichts. Es findet keine Fehler und bewertet keine Risiken. Es ist reines Transportmittel für Ergebnisse, ähnlich wie ein Briefumschlag nichts über den Inhalt aussagt. Diesen Unterschied verwechseln Einsteiger häufig.

Was in einer SARIF-Datei steht

Eine SARIF-Datei ist Text im JSON-Aufbau. JSON ist eine verbreitete Schreibweise für strukturierte Daten, bei der Werte in geschweiften Klammern mit Namen versehen werden. Menschen können solche Dateien lesen, sie sind aber vor allem für Programme gedacht. SARIF ist seit 2019 ein offizieller Standard der Organisation OASIS, aktuell in Version 2.1.0.

Der Inhalt ist in wenige feste Teile gegliedert. Zuerst steht, welches Werkzeug in welcher Version gelaufen ist. Dann folgt eine Liste von Regeln, also der Prüfungen, die das Werkzeug kennt. Danach kommen die eigentlichen Funde, in SARIF « results » genannt.

Jeder Fund enthält immer dieselben Angaben: Datei, Zeile und Spalte der verdächtigen Stelle, eine Kurzbeschreibung, ein Verweis auf die zugehörige Regel und eine Einstufung des Schweregrads. Manche Werkzeuge legen zusätzlich einen Vorschlag zur Behebung bei, den eine Entwicklungsumgebung dann mit einem Klick einsetzen kann. Auch ganze Ablaufpfade sind möglich, etwa der Weg einer unsicheren Eingabe durch mehrere Funktionen hindurch.

SARIF in GitHub, Pipelines und Editoren

Am häufigsten begegnet man SARIF auf Plattformen für Programmcode, vor allem bei GitHub. Dort nimmt die Funktion « Code Scanning » SARIF-Dateien an und zeigt die Funde direkt im Projekt an. Läuft eine Prüfung automatisch nach jeder Änderung, erscheinen neue Warnungen als Kommentare am betroffenen Code. Auch GitLab und Azure DevOps unterstützen das Format.

Verbreitet ist SARIF ebenso in automatischen Abläufen, die Fachleute Pipeline nennen: eine Kette von Schritten, die bei jeder Codeänderung ohne Zutun startet. Ein Schritt darin ist oft ein Sicherheitsscan. Sein Ergebnis wird als SARIF-Datei weitergegeben und ausgewertet. Fällt der Schweregrad zu hoch aus, stoppt der Ablauf und die Änderung gelangt nicht in das Produkt.

In Fachnachrichten taucht der Begriff meist beiläufig auf. Wenn ein Hersteller ankündigt, sein Werkzeug unterstütze nun SARIF, bedeutet das: es passt ohne Bastelarbeit in bestehende Prüfketten. Für Firmen ist das ein Kaufargument, weil Anbieter dadurch leichter austauschbar werden. Auch KI-gestützte Prüfwerkzeuge nutzen SARIF, damit ihre Vorschläge in denselben Oberflächen landen wie die klassischer Programme.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.