SourceAnt

CVE-Überwachung

Ein verwundbares Paket ist installiert. Ruft hier irgendetwas es auf?

Jeder Scanner beantwortet die erste Hälfte. Die zweite Hälfte entscheidet, ob sich jemandes Nachmittag lohnt, und eine Liste installierter Pakete kann sie nicht beantworten. SourceAnt hat bereits einen Graphen dessen, was was importiert und aufruft, also kann es das.

Zwei Antworten, und nur eine davon ist dringend

Jedes Advisory, das zu etwas passt, das Sie installieren, erhält eine davon, zusammen mit dem Grund.

reached

Etwas, das Sie geschrieben haben, importiert oder ruft dieses Paket auf. Das Advisory betrifft Code, den Sie tatsächlich ausführen.

Die Dateien, die es nennen, kommen mit dem Urteil zurück, sodass Sie nachsehen können, statt uns beim Wort zu nehmen.

installed

Es ist deklariert, und nichts in diesem Repository nennt es. Eines Tages dennoch wert, gepatcht zu werden. Es ist nicht wert, jemanden dafür zu wecken.

Auf der Liste belassen statt verborgen, denn ein Scanner, der Dinge stillschweigend fallen lässt, ist ein Scanner, dem niemand zweimal vertraut.

Dependabot sagt Ihnen, dass das Paket vorhanden ist. Es sagt Ihnen nicht, ob irgendetwas in Ihrem Code es erreicht, und genau das ist die Frage, die der Bereitschaftsingenieur tatsächlich hat.

Woher es das weiß

Der Code-Graph war bereits da

SourceAnt indexiert, was was importiert und aufruft. Diesen Index zu fragen, ob irgendetwas ein Paket nennt, verwandelt eine Liste von allem Installierten in die kürzere Liste dessen, was eingebunden ist.

Das ist kein separater aufgesetzter Scanner. Es ist eine weitere Frage an einen Graphen, der aus anderen Gründen erstellt wurde, weshalb die Antwort mit den Dateien dahinter statt mit einer Punktzahl eintrifft.

Wie der Code-Graph erstellt wird

Wo er zu viel meldet

Ein Paket, dessen Name auch ein gewöhnliches Wort ist, passt auf Dinge, die nichts damit zu tun haben. Deshalb reist das Urteil nie allein. Die Dateien, die es erzeugt haben, kommen mit, sodass eine falsche Antwort zehn Sekunden zum Widerlegen braucht statt einen Nachmittag zum Diskutieren.

Die Lockfile, nicht das Manifest

Ein Manifest sagt, was angefordert wurde. Eine Lockfile sagt, was installiert ist. Ein Advisory betrifft Letzteres, also gewinnt die Lockfile, wo immer beide existieren.

Ökosystem Zuerst gelesen Zurückgefallen auf
npm package-lock.json package.json
PyPI poetry.lock requirements.txt, dann pyproject.toml

Ein Manifest, das sich nicht parsen lässt, kostet Sie ein Ökosystem aus der Antwort, nicht die gesamte Auswertung. Versionsbereiche werden bewusst konservativ verglichen, denn ein falsches Ja ist ein Alarm, den jemand widerlegen muss.

Was pro Advisory zurückkommt

Genug, um zu handeln, ohne einen weiteren Tab zu öffnen, und genug, um zu widersprechen, ohne jemandem zu glauben.

Schweregrad und Zusammenfassung
So, wie die Advisory-Datenbank sie angibt, nicht wie wir sie wiedergeben.
installierte Version
Aus Ihrer Lockfile gelesen, also das, was installiert ist, statt das, was angefordert wurde.
betroffener Bereich
Der Bereich, den das Advisory nennt, damit Sie die Übereinstimmung selbst prüfen können.
erste gepatchte Version
Wohin Sie gehen können, wenn es ein Wohin gibt.
deklariert in
Die Datei, die es hereingezogen hat.
direkt oder transitiv
Etwas, das Sie gewählt haben, oder etwas, das Ihre Entscheidungen mitgeschleppt haben. Nur eines davon können Sie ändern.

Aktualität

Gealtert nach einer Uhr, weil nicht Ihr Repository das ist, was sich verändert hat

Das meiste, was SourceAnt speichert, verliert seine Gültigkeit, wenn sich Ihr Code ändert, weshalb es gegen den Code gealtert wird. Bei einem Advisory-Lesewert ist das anders. Er verliert seine Gültigkeit, wenn sich die Advisory-Datenbank ändert, was fortlaufend geschieht, während Ihr Repository vollkommen unverändert bleibt.

Daher wird ein Lesewert für eine festgelegte Anzahl von Stunden aufbewahrt statt bis zum nächsten Commit, und die Uhr stellen Sie selbst, wenn Sie unter größerem Druck stehen als die meisten.

Zwei Hälften derselben Frage

Die eine fragt, ob der Code, den Sie installieren, sicher ist. Die andere fragt, ob der Code, den Sie installieren, Ihnen gehört.

Setzen Sie Ihr System auf den Eintrag

Betreiben Sie den Open Core auf Ihrer eigenen Infrastruktur oder starten Sie im gehosteten Workspace. Der Graph ist in beiden Fällen portabel.

Alle Anwendungsfälle