Zum Hauptinhalt Zur Navigation

Paketmanagement: Java-Dependencies über unsichere HTTP-Downloads

In zahlreichen Java -Projekten werden Abhängigkeiten ungeprüft über HTTP ohne TLS heruntergeladen. Ein Netzwerkangreifer kann dadurch trivial die Downloads manipulieren und Schadcode ausführen.
/ Hanno Böck
3 Kommentare News folgen (öffnet im neuen Fenster)
Java-Buildsysteme sind für Netzwerkangreifer ein lohnendes Ziel: Vielfach werden Abhängigkeiten über HTTP heruntergeladen. (Bild: Tmthetom/Wikimedia Commons)
Java-Buildsysteme sind für Netzwerkangreifer ein lohnendes Ziel: Vielfach werden Abhängigkeiten über HTTP heruntergeladen. Bild: Tmthetom/Wikimedia Commons / CC-BY-SA 4.0

Viele prominente Java-Projekte können beim Build-Vorgang angegriffen werden. Der Sicherheitsforscher Jonathan Leitschuh berichtet darüber in einem Blogpost(öffnet im neuen Fenster) . Java-Buildsyseme wie Maven oder Gradle nutzen oft HTTP-URLs, um auf Abhängigkeiten zu verweisen.

Vor fünf Jahren gab es bereits eine Diskussion über unsichere Software-Downloads von Maven(öffnet im neuen Fenster) . Daraufhin führte Sonatype, der Betreiber des zentralen Maven-Repositories, sichere HTTPS-Downloads ein.

Abhängigkeiten mittels HTTP-URLs referenziert

Bei Maven ist es üblich, Abhängigkeiten direkt als URL anzugeben. Auch wenn die Downloads über HTTPS bereitstehen: Wenn die Projekte die URL weiterhin als HTTP angeben, sind sie immer noch verwundbar. Ähnliches gilt für andere Java-Build-Systeme.

Jonathan Leitschuh suchte nach solchen Fällen und wurde fast überall fündig. Auch prominente Java-Projekte, beispielsweise das Continuous-Integration-System Jenkins oder Teile der Entwicklungsumgebung Eclipse, nutzten HTTP-Downloads für ihre Abhängigkeiten.

Konkret bedeutet das, dass mit einem Man-in-the-Middle-Angriff die heruntergeladenen Pakete ausgetauscht und mit Schadcode versehen werden können. Ein Netzwerkangreifer hat also eine relativ simple Möglichkeit, Code auf den Rechnern von Java-Entwicklern auszuführen.

Zumindest für das zentrale Maven-Repository sollen HTTP-Downloads bald ganz verschwinden. Ab Januar 2020 wird dort die Unterstützung für HTTP abgeschaltet(öffnet im neuen Fenster) und Pakete können nur noch über HTTPS heruntergeladen werden.


Relevante Themen