{"id":259382,"date":"2021-11-12T23:34:54","date_gmt":"2021-11-12T22:34:54","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=259382"},"modified":"2022-04-05T15:08:23","modified_gmt":"2022-04-05T13:08:23","slug":"14-schwachstellen-in-busybox","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2021\/11\/12\/14-schwachstellen-in-busybox\/","title":{"rendered":"14 Schwachstellen in BusyBox"},"content":{"rendered":"<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" title=\"Sicherheit (Pexels, allgemeine Nutzung)\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2021\/04\/Sicherheit_klein.jpg\" alt=\"Sicherheit (Pexels, allgemeine Nutzung)\" width=\"200\" \/>[<a href=\"https:\/\/borncity.com\/win\/2021\/11\/12\/14-schwachstellen-in-busybox\/\" target=\"_blank\" rel=\"noopener\">English<\/a>]Sicherheitsforscher von JFrog und Claroty Team82 haben 14 Schwachstellen in dem beliebten Tool BusyBox gefunden. Alle Schwachstellen wurden dem Entwicklerder BusyBox vertraulich mitgeteilt und in der am 19. August ver\u00f6ffentlichen Version 1.34.0 behoben,. Die Schwachstellen h\u00e4tten zumindest f\u00fcr einem Denial of Service (DoS) Angriff ausgenutzt werden k\u00f6nnen. In selteneren F\u00e4llen w\u00e4ren jedoch auch Informationslecks und m\u00f6glicherweise Remotecodeausf\u00fchrung m\u00f6glich gewesen.<\/p>\n<p><!--more--><\/p>\n<h2>BusyBox, was ist das?<\/h2>\n<p><a href=\"https:\/\/de.wikipedia.org\/wiki\/BusyBox\" target=\"_blank\" rel=\"noopener\">BusyBox<\/a> ist ein 1996 von Bruce Perens geschriebenes Computerprogramm, das verschiedene elementare Standard-Unix-Dienstprogramme vereint. Es l\u00e4uft auf verschiedenen POSIX-Umgebungen wie Linux, Android oder FreeBSD. Viele Werkzeuge sind jedoch so gestaltet, dass sie mit den Schnittstellen eines Linux-Kernels funktionieren. Bruce Perens wollte damals ein auf eine einzelne Diskette passendes, vollst\u00e4ndiges und bootbares Linux-System haben, das sowohl als Rettungssystem, als auch zur Installation eines Debian-Systems verwendbar w\u00e4re. BusyBox wurde entwickelt, um auf eingebetteten Betriebssystemen mit sehr beschr\u00e4nkten Ressourcen arbeiten zu k\u00f6nnen.<\/p>\n<h2>Noch etwas Hintergrund<\/h2>\n<p>Da viele smarte Ger\u00e4te mit begrenztem Arbeitsspeicher und Speicherressourcen auskommen m\u00fcssen, nutzen diese meist ein Tool wie BusyBox, das von Embedded Linux als eine Art \u201eSchweizer Taschenmesser\" vermarktet wird. Es handelt sich dabei um eine Software-Suite mit vielen n\u00fctzlichen Unix-Hilfsprogrammen, so genannten Applets, die als eine einzige ausf\u00fchrbare Datei verpackt sind. BusyBox bietet eine vollwertige Shell, einen DHCP-Client\/Server und auch kleine Dienstprogramme wie cp, ls, grep und andere und es l\u00e4uft auch auf vielen OT- und IoT-Ger\u00e4ten. Au\u00dferdem ist es auf beliebten speicherprogrammierbaren Steuerungen (PLCs), Mensch-Maschine-Schnittstellen (HMIs) und Remote-Terminal-Einheiten (RTUs) zu finden.<\/p>\n<h2>Analyse der BusyBox auf Schwachstellen<\/h2>\n<p>F\u00fcr die Untersuchung auf Schwachstellen wurde zun\u00e4chst eine manuelle \u00dcberpr\u00fcfung des BusyBox-Quellcodes in einem Top-Down-Ansatz (Verfolgung der Benutzereingaben bis hin zur spezifischen Applet-Verarbeitung) durchgef\u00fchrt. Dabei wurde auch nach offensichtlichen Schwachstellen in Bezug auf logische\/Speicherkorruption gesucht. Der zweite Ansatz war Fuzzing. BusyBox wurde mit <a href=\"https:\/\/en.wikipedia.org\/wiki\/AddressSanitizer\" target=\"_blank\" rel=\"noopener\">Asan<\/a> kompiliert und ein AFL-Harness f\u00fcr jedes BusyBox-Applet implementiert. Jedes Harness wurde anschlie\u00dfend optimiert, indem unn\u00f6tige Teile des Codes entfernt, mehrere Fuzzing-Zyklen auf demselben Prozess ausgef\u00fchrt (persistenter Modus) und mehrere Fuzzing-Instanzen parallel ausgef\u00fchrt wurden.<\/p>\n<p>Zuerst wurden alle Daemon-Applets dem Fuzzing unterzogen, einschlie\u00dflich HTTP, Telnet, DNS, DHCP, NTP und anderer. Viele Code\u00e4nderungen waren erforderlich, um netzwerkbasierte Eingaben effektiv zu fuzzen. Es wurden f\u00fcr jedes Applet einige Beispiele vorbereitet und Hunderte von gefuzzten BusyBox-Instanzen wurden \u00fcber einige Tage laufen gelassen. Dadurch wurden Zehntausende Abst\u00fcrze generiert, die ausgewertet werden konnten. Daf\u00fcr haben die Sicherheitsforscher ein automatisches Tool entwickelt, das alle Absturzdaten auf der Grundlage des Absturzanalyseberichts klassifiziert, der haupts\u00e4chlich den Stacktrace, die Register und den Assemblercode des betreffenden Codebereichs enth\u00e4lt. Schlie\u00dflich fand eine Untersuchung jedes einzelnen Absturzes statt, mit minimierten Eingabevektor, um die Ursachen zu verstehen, was die Erstellung eines Proof-of-Concept (PoC) erm\u00f6glichte, der die f\u00fcr den Absturz verantwortliche Schwachstelle ausnutzt.<\/p>\n<p>Zusammenfassend sind die folgenden Schritte in unserer Forschung zu nennen:<\/p>\n<p>1. \u00dcberpr\u00fcfung des Codes<\/p>\n<p>2. Fuzzing<\/p>\n<p>3. Reduktion &amp; Minimierung<\/p>\n<p>4. Triage<\/p>\n<p>5. PoC<\/p>\n<p>6. Testen mehrerer Versionen<\/p>\n<p>7. Offenlegung<\/p>\n<h2>Bedrohungslandschaft<\/h2>\n<p>F\u00fcr die Open-Source-Security- und Cybersecurity-Communities haben JFrog und Claroty einen einfachen Leitfaden erstellt, der beschreibt, wie man BusyBox fuzzt. Der Leitfaden wird zusammen mit allen Fuzzing-Harnessen ver\u00f6ffentlicht, mit der Hoffnung, dass diese Fuzzing-Logiken von der Community weiter verbessert werden k\u00f6nnen, um zuk\u00fcnftig noch mehr Fehler in BusyBox zu finden und zu beheben.Bei der Untersuchung von JFrogs Firmware-Datenbank mit mehr als 10.000 Embedded-Firmware fanden die Sicherheitsforscher heraus, dass 40 Prozent von ihnen eine ausf\u00fchrbare Version von BusyBox enthielten, die mit einem der betroffenen Applets verkn\u00fcpft war, was zeigt, dass diese Probleme unter Linux-basierten Embedded-Firmware weit verbreitet sind.<\/p>\n<p>Die Forscher kommen jedoch zu dem Schluss, dass diese Probleme derzeit keine kritische Sicherheitsbedrohung darstellen, weil:<\/p>\n<ul>\n<li>Die DoS-Schwachstellen trivial auszunutzen sind, aber die Auswirkungen werden in der Regel durch die Tatsache abgeschw\u00e4cht, dass Applets fast immer als separater Forked-Prozess ausgef\u00fchrt werden.<\/li>\n<li>Die Schwachstelle des Informationslecks ist nicht trivial auszunutzen.<\/li>\n<li>Die \u201eUse-after-free\"-Schwachstellen lassen sich m\u00f6glicherweise f\u00fcr die entfernte Codeausf\u00fchrung ausnutzen, aber derzeit wurde nicht versucht, einen ausf\u00fchrbaren Exploit f\u00fcr sie zu entwickeln. Dar\u00fcber hinaus ist es recht selten (und von Natur aus unsicher), ein awk-Muster aus einer externen Eingabe zu verarbeiten.<\/li>\n<li>Obwohl die Schwachstelle im LZMA-Dekomprimierungsalgorithmus gefunden wurde, unterst\u00fctzen viele Applets eine LZMA-Komprimierung. Das allgegenw\u00e4rtige ZIP-Format unterst\u00fctzt beispielsweise die LZMA-Kompression als \"Typ 14\"-Kompression.<\/li>\n<\/ul>\n<p>Aus der Sicht eines Angreifers ist ZIP ein viel besserer Angriffsvektor, da:<\/p>\n<ul>\n<li>unzip-Aufrufe viel g\u00e4ngiger sind als direkte unlzma-Aufrufe.<\/li>\n<li>Es bei diesem Angriffsvektor keine Einschr\u00e4nkungen hinsichtlich des Dateinamens gibt (im Gegensatz zum tar Angriffsvektor, der die .lzma Dateiendung erfordert)<\/li>\n<li>Die ausgesp\u00e4hten Daten k\u00f6nnen extrahiert und in Dateien gespeichert werden, die sp\u00e4ter aus der Ferne gelesen werden k\u00f6nnen.<\/li>\n<\/ul>\n<h2>Behebungen und Workarounds<\/h2>\n<p>Alle 14 Sicherheitsl\u00fccken wurden in BusyBox 1.34.0 behoben und die Benutzer werden dringend gebeten, ein Upgrade durchzuf\u00fchren. Wenn ein Upgrade von BusyBox nicht m\u00f6glich ist (aufgrund spezifischer Anforderungen an die Versionskompatibilit\u00e4t), k\u00f6nnen BusyBox 1.33.1 und fr\u00fchere Versionen ohne die verwundbaren Funktionen (Applets) als Workaround kompiliert werden. Weitere Informationen \u00fcber die Untersuchung finden Sie <a href=\"https:\/\/jfrog.com\/blog\/unboxing-busybox-14-new-vulnerabilities-uncovered-by-claroty-and-jfrog\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]Sicherheitsforscher von JFrog und Claroty Team82 haben 14 Schwachstellen in dem beliebten Tool BusyBox gefunden. Alle Schwachstellen wurden dem Entwicklerder BusyBox vertraulich mitgeteilt und in der am 19. August ver\u00f6ffentlichen Version 1.34.0 behoben,. Die Schwachstellen h\u00e4tten zumindest f\u00fcr einem Denial &hellip; <a href=\"https:\/\/borncity.com\/blog\/2021\/11\/12\/14-schwachstellen-in-busybox\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95,426],"tags":[4305,4328],"class_list":["post-259382","post","type-post","status-publish","format-standard","hentry","category-linux","category-sicherheit","tag-linux","tag-sicherheit"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/259382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=259382"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/259382\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=259382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=259382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=259382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}