Hier klicken, um das Bild zu vergrößern
In unserer Komponentendatenbank, in der wir Meta- und Clearing-Informationen zu Komponenten sammeln, haben wir die Open Source Security Foundation (OpenSSF) Scorecard ergänzt. Diese erlaubt es, den Sicherheitsstatus von Open-Source-Projekten zu erkennen. Der Score, der vom OpenSSF-Projekt der Linux Foundation im Jahr 2020 eingeführt wurde und derzeit regelmäßig für etwa 1 Million Open-Source-Projekte auf Github ausgewertet wird, ist ein aggregierter Wert, der die vom Open-Source-Projekt getroffenen Sicherheitsmaßnahmen widerspiegelt. Er kann als Anhaltspunkt dafür verwendet werden, wie sehr Sie den Sicherheitsbemühungen eines bestimmten Projekts vertrauen können, ohne es weiter zu evaluieren.
Was sagt die Scorecard aus?
Der Wert oder die Punktzahl der Scorecard ist das Ergebnis von sechzehn Prüfungen, die die Best Practise der sicheren Softwareentwicklung widerspiegeln. Sie umfassen die Bereiche Entwicklung, Tests, Wartung und Schwachstellen, aber auch Code- und Build-Management. Auf der Grundlage eines umfassenden Satzes Best Practises durchsuchen die Tests das Code-Repository nach Belegen dafür, dass die Praktiken vom Projekt aktiv angewendet werden.
Derzeit sind 18 Tests verfügbar, von denen 16 über die API zugänglich sind. Eine ausführliche Dokumentation der Tests ist hier zu finden. Jeder Test wird mit einer Punktzahl zwischen 0 und 10 bewertet, wobei 10 die bestmögliche Punktzahl darstellt. Die Testergebnis und einem Risiko gewichtet ergeben zusammen eine Gesamtpunktzahl.
In einigen Fällen, kann es sein, dass Tests aufgrund von Projekt-Setups nicht anwendbar sind. Beispielsweise könnte es sein, dass ein Projekt keine Pakete über Github bereitstellt. Dadurch wird der Test auf Pakete nicht anwendbar sein, da die aktuelle Implementierung noch keinen Mechanismus zur Überprüfung anderer Paketmanager bietet.
Wenn Sie jedoch eine Entscheidung treffen wollen, ob Sie eine bestimmte Komponente einsetzen wollen oder nicht, hilft Ihnen die Durchführung eines Scorecard-Tests – oder ein Blick auf die Komponente in unserer Datenbank – dabei, einen Eindruck zu bekommen, welchen Aufwand Sie in die Absicherung der Komponente investieren müssen. Je höher die Punktzahl, desto mehr Vertrauen können Sie in die Komponente setzen.
Was sagt die Scorecard NICHT aus?
Bitte verstehen Sie eine hohe Punktzahl aber nicht als Garantie für eine sichere Komponente! Auch eine niedrige Punktzahl deutet nicht unmittelbar auf eine schwache oder fehlerhafte Komponente hin! Es wäre schlicht falsch, anzunehmen, dass eine niedrige Punktzahl ein Hinweis auf eine anfällige Komponente ist! Derzeit sind die Tests noch nicht umfänglich und prüfen nur auf ein Set ihnen bekannter Sicherheitswerkzeuge. Auch werden nur die im Repository sichtbaren Informationen geprüft. Bleiben diese auf einem Entwickler- oder CI-System und finden nicht den Weg in das Git-Repository, tauchen sie auch nicht im Testergebnis auf!
Die Punktzahl gibt an, welche Schritte das Projekt unternimmt, um sicherzustellen, dass der von ihm bereitgestellte Code bewährten Praktiken folgt und daher mit hoher Wahrscheinlichkeit frei von Fehlern und Schwachstellen ist. Aber es ist eben keine Garantie! Wenn alles gut läuft, alle Tests 10 zurückgeben, kann es immer noch vorkommen, dass eine Schwachstelle in einer vorgelagerten Komponente auftritt, die für das Projekt selbst nicht einfach oder gar nicht zu beheben bzw. zu umgehen ist.
Verwenden Sie die Punktzahl als Indikator. Aber machen Sie die Entscheidung, ob Sie eine Komponente verwenden wollen oder nicht, primär von ihrer Funktionalität abhängig und nicht von der Punktzahl. Sie werden – vor allem in diesen frühen Tagen, in denen der Score noch nicht weit verbreitet ist – noch viele gute Projekte mit geringen Scores finden.
Was kommt als Nächstes?
Wir empfehlen, dies Scorecards als Indikator für eine Eignungsbeurteilung hinzuzuziehen, da sie einen Hinweis darauf geben, wie stark Sie sich auf Ihre vorgelagerten Komponenten verlassen können. Zudem lässt sich über eine historische Betrachtung der Veränderung des Scores eine Tendenz erkennen, die eine interesante Aussage über das Projekt und seine Einstellung zu den Best Practises erkennen lässt. Wir werden Anfang kommenden Jahres genügend Werte gesammelt haben, um diese „Tendenz“ auswerten zu können.
Da TrustSource alle KomponentenIhrer Lösung kennt, wird es nun auch möglich sein, mehr aus den einzelnen Scores in Bezug auf das Projekt zu machen. Ein einfacher Durchschnittswert wäre sinnlos. Aufgrund der Menge der Komponenten wäre ein Durchschnittswert irgendwo bei einer bedeutungslosen 5 zu erwarten. Aber wir experimentieren derzeit mit Quantilen oder Top-10- und Low-10-Durchschnitten sowie dem Verhältnis von Nicht-bewerteten Komponenten zu bewerteten Komponenten.
Außerdem werden wir einen Service anbieten, mit dem man seine eigenen Komponenten oder nicht geprüfte Open Source Repositories überprüfen kann, indem man – wie beim DeepScan einfach eine URL angibt oder auch die Scorecard auf nicht-Github-Projekte überträgt. Wenn wir erfolgreich sind, werden wir unsere Entwicklungen in OpenSSF einbringen.