Uncovering Hidden Inclusions of Vulnerable Dependencies in Real-World Java Projects
Dieses Paper stellt Unshade vor, ein hybrides Java-Dependency-Scanning-Tool, das Metadatenanalyse mit Bytecode-Fingerprinting kombiniert, um modifizierte und versteckte vulnerable Abhängigkeiten zu erkennen, wobei aufgezeigt wird, dass fast 50 % der populären Open-Source-Java-Projekte solche Risiken enthalten, die herkömmliche Scanner übersehen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie bauen eine riesige, komplexe Lego-Burg. Um Zeit zu sparen, stellen Sie nicht jeden einzelnen Stein selbst her, sondern kaufen fertige Lego-Sets (Open-Source-Software) und stecken sie in Ihre Burg ein. So funktioniert moderne Software. Es ist schnell und effizient, bringt aber einen Haken mit sich: Einige dieser vorgefertigten Sets könnten versteckte Risse oder Schwachstellen (Vulnerabilitäten) haben, die Hacker ausnutzen könnten.
Um Ihre Burg sicher zu halten, engagieren Sie normalerweise einen „Sicherheitsinspektor“ (einen Dependency-Scanner). Dieser Inspektor prüft Ihre Einkaufsliste (einen sogenannten SBOM oder Software Bill of Materials), um zu sehen, welche Sets Sie gekauft haben. Wenn auf der Liste steht, dass Sie „Set #101“ gekauft haben, und der Inspektor weiß, dass „Set #101“ einen Riss hat, markiert er dies.
Das Problem: Die „getarnten“ Steine
Die Forschungsarbeit erklärt, dass böswillige Akteure (oder manchmal auch nur übereifrige Entwickler) etwas Trickreiches machen. Sie nehmen ein gefährliches, rissiges Set, öffnen es auf und mischen es in eine brandneue, maßgeschneiderte Box. Sie könnten zum Beispiel:
- Neu bündeln: Mehrere Sets in eine einzige riesige Box packen.
- Neu verpacken: Die Etiketten auf den Steinen im Inneren ändern, sodass das ursprüngliche „Set #101“ nun wie „Set #999“ aussieht.
Wenn der Sicherheitsinspektor auf Ihre Einkaufsliste schaut, sieht er „Set #999“. Da der Inspektor nur die Etiketten (Metadaten) prüft und nicht die tatsächlichen Steine darin, übersieht er das Ganze. Das „Set #101“ ist immer noch da, aber es ist unsichtbar für die Standardprüfung.
Die Lösung: Unshade (Die „Röntgenbrille“)
Die Forscher entwickelten ein Werkzeug namens Unshade. Stellen Sie sich Unshade als eine Art Röntgenbrille vor, die durch die neuen Etiketten hindurchsehen kann, um die tatsächlichen Steine im Inneren zu erkennen.
So funktioniert es in zwei Schritten:
- Das Fingerprinting (Die Import-Phase): Bevor Unshade etwas scannt, betrachtet es alle bekannten „rissigen Sets“ weltweit. Es schaut nicht nur auf das Etikett der Box; es macht ein Foto der tatsächlichen Lego-Steine im Inneren und erstellt einen einzigartigen „Fingerabdruck“ für diese. Entscheidend ist, dass es zwei Arten von Fingerabdrücken erstellt: einen, der auf das Etikett achtet, und einen, der das Etikett ignoriert und nur auf die Form der Steine schaut. Auf diese Weise bleibt die Form der Steine gleich, selbst wenn jemand das Etikett ändert.
- Der Scan: Wenn Sie Unshade Ihre Projekt-Einkaufsliste geben, vertraut Unshade der Liste nicht einfach. Es geht los und holt sich die tatsächlichen Boxen, die Sie angegeben haben. Es öffnet sie, betrachtet die Steine darin und vergleicht sie mit seiner „Fingerabdruck-Datenbank“.
- Wenn es einen Stein sieht, der einem bekannten „rissigen Set“ entspricht (selbst wenn das Etikett anders ist), sagt es: „Aha! Du hast hier einen gefährlichen Stein versteckt!“
- Es fügt diese versteckte Gefahr dann Ihrer Einkaufsliste hinzu und erstellt so einen „augmentierten SBOM“.
- Schließlich übergibt es diese aktualisierte Liste dem Standard-Sicherheitsinspektor, der die Gefahr nun leicht erkennen kann, weil sie endlich auf der Liste steht.
Was sie herausfanden (Die große Studie)
Das Team testete dies an 1.808 der populärsten Java-Softwareprojekte im Internet (wie die berühmtesten Lego-Burgen der Welt). Die Ergebnisse waren erschreckend:
- Fast 50 % der Projekte hatten mindestens ein „getarntes“, gefährliches Set im Inneren verborgen.
- Im Durchschnitt hatten diese Projekte mehr als acht versteckte gefährliche Sets, die die Standard-Inspektoren komplett übersehen haben.
- Insgesamt fand Unshade 7.712 einzigartige Sicherheitsbedrohungen (CVEs), die unsichtbar geblieben wären, wenn man sich nur auf die Standardmethode der Etikett-Prüfung verlassen hätte.
Die Kosten
Sie fragen sich vielleicht: „Dauert es ewig, in jede Box hineinzuschauen?“ Die Forscher fanden heraus, dass Unshade überraschend schnell ist. Es fügt jedem Projekt nur etwa 16 Sekunden an zusätzlicher Arbeit hinzu. Dies ist ein kleiner Preis, wenn man bedenkt, wie viel Zeit allein für das Erstellen der Einkaufsliste benötigt wird, und es ist viel schneller als andere Methoden, die versuchen, jede einzelne Zeile Code manuell zu analysieren.
Das Fazbeitragende Fazit
Die Arbeit kommt zu dem Schluss, dass es gefährlich ist, sich ausschließlich auf „Einkaufslisten“ (Metadaten) zu verlassen, da Menschen ständig Softwarekomponenten tarnen. Unshade fungiert als Brücke, die die Geschwindigkeit der Listenprüfung mit der Genauigkeit der Code-Prüfung kombiniert und so eine enorme Anzahl an verborgenen Sicherheitsrisiken aufdeckt, die für die Branche zuvor unsichtbar waren.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.