Einleitung
- Der Security Engineer RyotaK von Flatt Security Inc. entdeckte eine Sicherheitslücke im Firmware-Upgrade-Prozess von OpenWrt.
- OpenWrt ist eine Linux-basierte Firmware für Embedded-Geräte und besonders bei Routern sehr beliebt.
sysupgrade.openwrt.org
sysupgrade.openwrt.org ist ein Online-Dienst, mit dem Nutzer gewünschte Pakete auswählen und daraus ein neues Firmware-Image erstellen können.
- Beim Bauen von Images aus vom Nutzer bereitgestelltem Quellcode können Sicherheitsprobleme auftreten.
Befehlsinjektion
- Der Server
sysupgrade.openwrt.org ist ein Open-Source-Projekt, dessen Quellcode unter openwrt/asu gehostet wird.
- Der Server isoliert die Build-Umgebung mit Containern, dennoch wurde eine Schwachstelle entdeckt, über die sich über Nutzereingaben beliebige Befehle ausführen lassen.
SHA-256-Kollision
- Beim Erzeugen des Hashes für eine Anfrage wurde der SHA-256-Hash auf 12 Zeichen gekürzt verwendet.
- Über eine Hash-Kollision ließ sich der Server dazu bringen, falsche Build-Artefakte zurückzugeben.
SHA-256-Bruteforce
- Es wurde ein Programm implementiert, das mit OpenCL Hashes auf der GPU bruteforct, die Leistung war jedoch unzureichend.
- Mit Hashcat gelang es schließlich, eine 12-Zeichen-Kollision zu finden.
Kombination der beiden Angriffe
- Der Angriff wurde ausgeführt, indem ein Payload zur Befehlsinjektion gefunden wurde, der denselben Hash wie eine legitime Paketliste hatte.
- Angreifer konnten Nutzer so dazu zwingen, auf eine bösartige Firmware zu aktualisieren.
Meldung des Problems
- Nach der Meldung an das OpenWrt-Team wurde der Dienst vorübergehend abgeschaltet und schnell behoben.
- Es wurde eine Mitteilung an die Nutzer veröffentlicht, damit sie prüfen, ob ihre Geräte beeinträchtigt wurden.
Fazit
- Über Befehlsinjektion und eine SHA-256-Kollision konnte der Dienst
sysupgrade.openwrt.org kompromittiert werden.
- Dem OpenWrt-Team wird für die schnelle Reaktion gedankt, und die Nutzer wurden umgehend über das Problem informiert.
Werbung
- Flatt Security bietet Security Assessments und Penetration-Testing-Services an und gewährt zur Feier einer neuen Webseiten-Aktualisierung einen Sonderrabatt.
- Außerdem wird mit Shisho Cloud ein leistungsstarkes Tool für Security Assessments angeboten.
1 Kommentare
Hacker-News-Kommentare
Die Normalisierung von Codeausführung, die auf bestimmte Nutzer oder Geräte zugeschnitten ist, ist eine Schwachstelle ohne Verifizierbarkeit, da sich nicht bestätigen lässt, dass kein Build mit Backdoor erzeugt wurde
xz-utilszu verwenden oder Builds zu nutzen, mit denen Sicherheitsforscher prüfen können, ob eine Kompromittierung der Supply Chain vorliegtebuild-Repository von Gentoo ist ein Beispiel für gut umgesetzte Binärtransparenz und einer der größten sowie am stärksten verteilten Merkle-Trees für Open-Source-SoftwareDie Verwendung von
".join"kann riskant seinOpen Source kann nicht mit Closed Source auf Business-Niveau konkurrieren
Der Begriff „Supply Chain“ taucht im Blogbeitrag nicht auf
Open-Source-Tools wurden für einen Zweck angepasst, für den sie ursprünglich nicht gedacht waren
Es stellt sich die Frage, wie man überhaupt auf die Idee kam, den Hash abzuschneiden
Überraschend ist, wie viel GPU-Leistung nötig ist, um kurze Kollisionen zu finden
Sofort fällt auf, dass die Hash-Länge von 64 Zeichen auf 12 Zeichen gekürzt wird
Es gibt eine Frage dazu, warum sich die Leistung von hashcat je nach Reihenfolge der Argumente stark unterscheidet
Ein großartiger Beitrag über sehr kluges Lesen von Code und die Entwicklung eines Exploits