Menü

Neues Tool rget soll Software-Downloads sicherer machen

Sieht aus wie wget, kann aber mehr: Das Tool rget prüft automatisch die Checksummen von Downloads per Certificate-Transparency-Log.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 56 Beiträge

(Bild: BEST-BACKGROUNDS / Shutterstock.com)

Von

Das Linux-Kommandozeilen-Tool wget ist ein Grundbestandteil im Werkzeugkasten der meisten Linux-Admins und wird von vielen grafischen Applikationen im Hintergrund dazu benutzt, Dateien aus dem Netz zu laden. Ein Red-Hat-Entwickler arbeitet an einer eigenen Version des Werkzeugs, die solche Downloads sicherer machen soll. Die Software rget steckt noch in den Kinderschuhen, aber ihr Erfinder Brandon Philips hofft, dass ihre Funktionen später einmal ins Vorbild wget und Tools der Software-Verwaltungssysteme Docker und npm integriert werden. Beim Download prüft rget, ob sich ein SHA-256-Hash für die Zieldatei in einem öffentlichen Certificate-Transparency-Log finden lässt und vergleicht diesen mit dem Hash der Zieldatei. Nur wenn die Hashes nicht übereinstimmen, wird die Datei verworfen.

Output von rget: Die erste URL hat keinen Certificate-Transparency-Eintrag, bei der zweiten URL ist er vorhanden und der Download startet nach einem Prüfen des Hashes

(Bild: Fabian A. Scherschel)

Bisher funktioniert diese zusätzliche Absicherung allerdings nur für einen winzigen Bruchteil aller im Web existierenden Download-URLs. Hauptsächlich wendet sich das Tool an Software-Entwickler und Anbieter wie Linux-Distributionen oder App Stores, die Software-Downloads schützen wollen. Um einen Download mit rget kompatibel zu machen, muss der Entwickler der Software die URL und den SHA-256-Hash der entsprechenden Datei in ein öffentliches Certificate-Transparency-Log eintragen. Die Software kann das selbst erledigen. Der submit Befehl erlaubt es im Moment, URLs und SHA-256-Hashes aus einer Text-Datei an die Certificate-Transparency-Logs von Google und crt.sh (ein Projekt der Sicherheitsfirma Sectigo) zu schicken.

Momentan konzentriert sich rget-Entwickler Brandon Philips vor allem auf die Nutzung seines Tools zusammen mit GitHub. GitHub-spezifische Befehle erlauben es Entwicklern, SHA-256-Hashes für ein Release auf der Code-Sharing-Plattform zu erzeugen und dann mit dem submit-Befehl zu veröffentlichen. Dazu werden nur zwei Eingaben benötigt, zum Beispiel so:

rget github publish-release-sums https://github.com/merklecounty/rget/releases/tag/v0.0.6

rget submit https://github.com/merklecounty/rget/releases/download/v0.0.6/SHA256SUMS

Nach der ersten Eingabe startet rget einen lokalen Webserver und präsentiert dem Entwickler eine Webseite von GitHub, über die er das Tool mit seinem GitHub-Konto koppeln kann. Das erlaubt es, auch nicht-öffentliche Releases entsprechend zu bearbeiten. Erweiterte Befehle erlauben es den Admins von Software-Projekten auch, diese Schritte in Skripte ihrer Release-Automation einzubauen. In diesem Fall werden die SHA-256-Hashes vollautomatisch erzeugt und an die Transparency-Logs übermittelt.

Natürlich stellt sich an diesem Punkt die Frage, warum hier ein neues Tool benötigt wird. Schließlich leistet wget seit Jahrzehnten verlässlich seinen Dienst. In einem Gespräch mit der englischen Tech-Nachrichtenseite The Register erklärt Philips, dass er versucht ein Problem zu lösen, das sowohl Software-Entwickler als auch Software-Verteilungsplattformen und Endbenutzer haben: Viel zu selten wird die Integrität von Software-Komponenten geprüft, die aus dem Netz heruntergeladen werden. Das betrifft Linux-Distributionen (siehe Linux Mint) genauso wie Container-Plattformen (siehe Docker) und andere Software-Verteiler (siehe npm) – ganz zum Leidwesen der Nutzer, die sich ständig über potenzielle Sicherheitslücken in ihrer Software auf dem Laufenden halten müssen.

Philips, der zuerst Technik-Chef von CoreOS war, bevor es von Red Hat übernommen wurde, hat in der Vergangenheit am Schlüsselverwaltungssystem etcd mitgearbeitet, welches dasselbe Problem lösen sollte. Wie er dem Register sagte, wurde ihm allerdings irgendwann klar, dass sichere Schlüsselverwaltung bei einem über den ganzen Globus verteilten Software-Projekt große logistische Probleme erzeugen kann. Auf der anderen Seite sei die Absicherung von Software-Releases per Nutzername und Passwort – wie bei GitHub und npm – offensichtlich auch nicht die richtige Lösung. Die bereits vorhandene Infrastruktur für Certificate Transparency kam ihm da genau richtig, weswegen er rget entwickelte, um zu zeigen, dass dieser Ansatz nicht nur machbar, sondern auch benutzerfreundlich ist.

Momentan ist rget im Alpha-Status; Binaries für Linux und Windows sowie Quellcode können über GitHub bezogen werden. Der Entwickler der Software hofft, sie bis Ende des Jahres mit mehreren größeren Software-Projekten auf GitHub zusammen testen zu können. "Es wäre gut, wenn Kubernetes den Hash eines Containers prüfen würde, bevor es ihn ausführt", sagte er dem Register mit Blick auf die Zukunft. (fab)