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.

Viele prominente Java-Projekte können beim Build-Vorgang angegriffen werden. Der Sicherheitsforscher Jonathan Leitschuh berichtet darüber in einem Blogpost. 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. 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 und Pakete können nur noch über HTTPS heruntergeladen werden.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Hab ich irgendwo die Kritikalität des Problems bewertet? Wenn ja, dann unbeabsichtigt...