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.
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.
Diese Seite
Gegen ein von Ihnen installiertes Paket wurde ein Advisory veröffentlicht, und Ihr Code greift darauf zu.
Benennung in der Lieferkette
Ein Paket, von dem Sie dachten, es gehöre Ihnen, trägt einen Namen, den jeder veröffentlichen könnte, und Ihr Build könnte deren Version nehmen.
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.