Hack gegen Maven

30.07.2014

Ein Entwickler hat herausgefunden, wie man über das Java-Paketmanagement-Tool Maven eigene Backdoors in Jar-Dateien einschleusen kann.

Als beim Entwickeln eines Clojure-Programms seine Firewall ausgehenden Traffic auf Port 80 zur Maven-Zentrale meldete, wurde Max Veytsman stutzig. Denn sollte nicht eigentlich die Verbindung zum Maven-Paket-Repository über SSL abgesichert sein? Ist sie aber nicht, denn wie sich nach einer Recherche herausstellte, bekommen nur diejenigen Anwender das dafür nötige Authentifizierungs-Token, die zehn US-Dollar an die Apache Foundation spenden. Allen anderen bietet Sonatype, der Betreiber von Maven Central, der zentralen Anlaufstelle für Java-Bibliotheken, nur einen gewöhnlichen HTTP-Zugriff.

Das dies mit erheblichen Risiken verbunden ist, zeigte Veytsman umgehend in einem Proof-of-Concept-Exploit. Er schrieb ein Programm, das über einen Man-in-the-Middle-Angriff die von Maven heruntergeladenen Jar-Bibliotheken mit einer Backdoor ausstatteten. Die Jar Files funktionieren ansonsten wie erwartet, die Infektion ist also nicht ohne weiteres zu erkennen.

Dass dies keine rein theoretische Gefahr ist zeigt Veytsman an diversen Beispielen für Man-in-the-Middle-Setups, etwa gefälschte öffentliche Access Points, Angriffe per Ettercap oder auch die gezielte Umleitung von Traffic von Internet-Providern.

Ähnliche Artikel

comments powered by Disqus
Mehr zum Thema

Gitlab 10.5 integriert Let's Encrypt

Die neueste Version der Git-Teamsoftware erlaubt nun einfachere TLS-Verschlüsselung. 

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019