Schädliche Pakete
fremforge gleicht die Pakete, die du tatsächlich auslieferst, mit den OSV-Advisories MAL-* ab: Pakete, die eine Registry oder Sicherheitsforschende als absichtlich schädlich bestätigt haben, etwa ein Typosquat oder ein gekapertes Release, das bei der Installation Zugangsdaten stiehlt. Geprüft werden zwei Dinge:
- Repositorys. Die neueste SBOM des Standard-Branches jedes Repositorys.
- Container-Images. Die Sprachpakete in jedem Image, das in der Paket-Registry deiner Organisation veröffentlicht ist.
Ein schädliches Paket ist immer kritisch. Es ist keine Schwachstelle mit einer korrigierten Version: Entferne es und behandle jede Maschine, die es installiert oder ausgeführt hat, als kompromittiert.
Das ist unabhängig vom Malware-Scan, der ClamAV-Signaturen auf hochgeladene Dateien anwendet.
Wann die Prüfung läuft
| Was | Wann es geprüft wird |
|---|---|
| Der Standard-Branch eines Repositorys | Direkt nach jedem Push darauf (seine SBOM wird innerhalb von etwa einer Minute erstellt und abgeglichen) und zusätzlich jeden Tag um 05:00 UTC |
| Ein Container-Image | Nach jedem Push, Re-Tag oder Löschen in der Paket-Registry (innerhalb von etwa 15 Minuten) und zusätzlich jeden Tag |
Der tägliche Lauf ist wichtig, weil ein Paket oft erst Wochen nach seiner Veröffentlichung als schädlich gelistet wird. Code und Images, die sich nicht geändert haben, werden erneut gegen die neuesten Advisories abgeglichen.
Der Abgleich läuft auf den eigenen Scannern von fremforge gegen eine Offline-Kopie der OSV-Datenbank. Nichts über deinen Code oder deine Images wird an osv.dev gesendet.
Was in einem Image abgeglichen wird
Das Image wird mit Trivy gescannt, mit demselben Pull, den auch das Container-Image-Scanning verwendet. Abgeglichen werden seine Sprachpakete: npm, PyPI, Maven, Go, crates.io, RubyGems, NuGet, Packagist, Pub und Hex. Betriebssystempakete (apk, deb, rpm) nicht, denn MAL-*-Advisories betreffen Sprach-Registrys.
Bei einem Multi-Architektur-Image wird die Variante linux/amd64 gescannt.
Befunde
Die Befunde stehen unter Sicherheit › Befunde › Abhängigkeiten › Malware. Filtere nach Quelle (Repositorys oder Container-Images) und nach Zustand:
- Offen. Das Paket ist auf dem Standard-Branch oder in mindestens einem veröffentlichten Digest des Images enthalten.
- Verworfen. Jemand hat mit Begründung entschieden, dass es akzeptabel ist.
- Behoben. Es ist weg: vom Standard-Branch entfernt, oder kein veröffentlichter Tag und kein Digest des Images enthält es mehr. Taucht es wieder auf, wird der Befund wieder geöffnet.
Ein Image-Befund ist eine Zeile pro Image-Name. Er listet die Tags und Digests auf, die das Paket aktuell enthalten, sodass ein Re-Tag desselben Inhalts keinen zweiten Befund erzeugt.
Das Badge des Tabs und die Kachel Schädliche Pakete in der Übersicht der Organisation zählen offene Befunde aus beiden Quellen.
Benachrichtigungen
Eine Sicherheitsbenachrichtigung geht an die Mitglieder der Organisation, die Sicherheitsbenachrichtigungen eingeschaltet haben, wenn ein schädliches Paket zum ersten Mal gefunden wird, wenn ein behobenes wieder auftaucht und wenn eine Verwerfung ihr Enddatum erreicht. Ein Befund, der am nächsten Tag noch da ist, löst keine erneute Benachrichtigung aus. Offene Befunde werden außerdem im Sicherheits-Digest gezählt.
Einen Befund verwerfen
Klappe in der Zeile Verwerfen auf, wähle eine Begründung und setze optional ein Enddatum. Nach dem Enddatum wird der Befund wieder geöffnet und erneut gemeldet. In der Liste Offen kannst du mehrere Befunde auf einmal verwerfen.
- Repository-Befund. Verwirfst du ihn, scheitern Pull Requests in diesem Repository mit derselben Paketversion und derselben Advisory auch nicht mehr am Abhängigkeits-Scan, mit demselben Enddatum.
- Image-Befund. Verwirfst du ihn, blockiert er keine Pulls des Images mehr (siehe unten). Er verwirft nicht dasselbe Paket in einem Repository, auch nicht in einem mit gleichem Namen.
Jede Verwerfung wird im Audit-Log erfasst, mit wer, warum und bis wann.
Ein Image pullen, das ein schädliches Paket enthält
Ein Pull eines Container-Images, dessen Digest einen offenen, nicht verworfenen Befund zu einem schädlichen Paket hat, wird mit 403 DENIED abgewiesen. Die Meldung nennt Paket und Advisory und verlinkt auf den Tab Malware. Das gilt für jede Organisation, unabhängig von ihrer Sperreinstellung beim Image-Scanning, und für Pulls per Tag wie per Digest.
Um einen Pull freizugeben: Pushe ein korrigiertes Image oder verwirf den Befund.
Durchgesetzt seit 2026-10-04. Zwischen 2026-10-03 und 2026-10-04 lief die Prüfung im Beobachtungsmodus: Ein Pull, der abgewiesen worden wäre, wurde protokolliert, aber trotzdem ausgeliefert.
Ein Registry-Paket herunterladen, das ein schädliches Paket bündelt
Dasselbe gilt für jeden anderen Pakettyp in deiner Registry (npm, Maven,
PyPI, NuGet, Cargo, Go und die übrigen): Eine Datei, die ein Paket bündelt, das in
einer OSV-Advisory MAL-* gelistet ist, wird beim Download mit 403 abgewiesen, für jede
Organisation, unabhängig vom Modus ihrer Paketrichtlinie. Die
Antwort nennt die Regel. Um eine einzelne Datei durchzulassen, beantrage eine
Ausnahme für die Regel malware; sie muss von einer
zweiten Person freigegeben werden.
Durchgesetzt seit 2026-10-11. Davor wurde ein solcher Download protokolliert und ausgeliefert.