Open-Source-Abhängigkeiten (OSS) machen über 80 % des Codes in heutigen Anwendungen aus. Zu diesen Abhängigkeiten gehören sowohl solche, die von den Entwicklern explizit ausgewählt wurden, als auch transitive Abhängigkeiten, die einzigartige Strategien zur Verwaltung von Abhängigkeiten erfordern.
Bei der Entwicklung eines Projekts binden Programmierer häufig Abhängigkeiten von Dritten ein, um ihre Arbeit zu vereinfachen. Diese direkten Abhängigkeiten werden im Projekt explizit deklariert, oft unter Verwendung von Tools wie Maven oder Gradle.
Diese Bibliotheken können jedoch auch Abhängigkeiten nutzen, wodurch transitive Abhängigkeiten die nicht direkt in das Projekt importiert werden, sondern durch andere Abhängigkeiten. Diese verschachtelte Struktur von Abhängigkeiten verdeutlicht die vernetzte Natur der Softwareentwicklung und die Abhängigkeit von externem Code.
Angreifer interessieren sich nur dafür, ob eine Schwachstelle ausgenutzt werden kann, und nicht dafür, ob sie in einer direkten oder transitiven Abhängigkeit existiert. Außerdem ruft der Code der ersten Partei häufig direkt Methoden in transitiven Abhängigkeiten auf, wodurch eine direkte Beziehung zwischen Ihrem Code und dem Code in diesen Abhängigkeiten hergestellt wird.
Die Angriffsfläche vergrößert sich durch transitive Abhängigkeiten, so dass die Systeme auf verschiedene Weise angegriffen werden können. Es gibt ein paar gängige Angriffsvektoren, die Sie kennen sollten:
Verwirrung bei den Abhängigkeiten kann zu erheblichen Sicherheitsrisiken führen, wie der Exploit 2020 des Sicherheitsforschers Alex Birsan zeigt. Birsan stellte fest, dass Unternehmen oft versehentlich interne Paketnamen in öffentlichen Repositories verwenden. Er lud bösartige Pakete mit identischen Namen und höheren Versionsnummern in öffentliche Repositories hoch, die Abhängigkeitsmanager dazu verleiteten, seinen Code herunterzuladen und auszuführen, wodurch große Unternehmen geschädigt wurden. Dies verdeutlichte das Potenzial für Datenschutzverletzungen und erhebliche finanzielle und rufschädigende Schäden, wenn seine Absichten böswillig waren.
Einschleusen bösartiger Pakete stellt eine weitere Bedrohung dar, bei der Angreifer bestehende vertrauenswürdige Pakete kompromittieren. Indem sie die Kontrolle über das Konto eines Betreuers übernehmen oder schädliche Aktualisierungen einführen, können sie bösartigen Code einfügen, ohne Verdacht zu erregen. Ein jüngstes Beispiel war die Ausnutzung des Dependabot von GitHub, einem automatisierten Tool zur Verwaltung von Abhängigkeiten. Die Angreifer verschafften sich unbefugten Zugang und reichten gefälschte Pull Requests ein, die als legitime Dependabot-Beiträge getarnt waren. Diese scheinbar routinemäßigen Aktualisierungen, die als "Sicherheitskorrekturen" oder "Patches" bezeichnet wurden, verleiteten die Entwickler dazu, sie einzubinden, was es den Angreifern ermöglichte, sensible Daten zu sammeln und zu missbrauchen.
Vernachlässigte Abhängigkeiten ausnutzen ist ein weiterer Angriffsvektor, den man im Auge behalten sollte. Nicht gewartete Bibliotheken, die von Entwicklern oft übersehen werden, werden zu leichten Zielen. Die Log4Shell-Schwachstelle in Apache Log4j aus dem Jahr 2021 ist ein Beispiel für dieses Risiko: Die Schwachstelle ermöglichte die Ausführung von Remote-Code, doch die weitreichenden Auswirkungen ergaben sich aus der Tatsache, dass Log4j in zahlreichen Systemen als transitive Abhängigkeit weit verbreitet ist. Angreifer nutzten diese Schwachstelle schnell aus, so dass die Unternehmen kaum noch in der Lage waren, die versteckte Bibliothek in ihren komplexen Abhängigkeitsstrukturen zu finden und zu aktualisieren.
TuxCare bietet Sicherheits-Patches für Java-Spring-Projekte mit direkten Abhängigkeiten und für Java-Ökosystem-Projekte, die oft in transitive Abhängigkeiten eingebunden sind.
Unser Endloser Lebenszyklus-Support (ELS) für Spring liefert fortlaufende Sicherheitsupdates für auslaufende Spring-Projekte, einschließlich Spring Boot, Spring Framework, Spring Data und mehr - damit Sie Ihre nicht mehr unterstützte Spring-Version so lange wie nötig nutzen können.
Müssen Sie Ihre Spring-Anwendungen sichern? Fordern Sie ein Angebot an oder stellen Sie uns hier eine Frage zu ELS for Spring.

