BleedingTooth: Remote Code Execution in BlueZ Kernelstack

Kritische Sicherheitslücke im Bluetooth-Stack von Linux und Android entdeckt. Bluetooth eingeschaltet zu haben, reicht aus um angreifbar zu sein.

BleedingTooth: Remote Code Execution in BlueZ Kernelstack

Kritische Sicherheitslücke im Bluetooth-Stack von Linux vor Kernel 5.9 entdeckt. Der Fix wurde am 29.9. bereits heimlich in einen Kernel Branch eingepflegt und wartet seitdem auf den Merge in den Hauptkernel. Erst für Kernel 5.9 war das der Fall, so daß derzeit alle Geräte die mit Linux angreifbar sind, bis auch dort Backportpatche verfügbar sind.

Gefunden hatten diese Lücken Intel ( „Intel – wie konnte das passieren, die finden doch sonst nichts“ )  und Google. Bei Google kann ich das verstehen, die verdienen damit Geld, aber Intel? 😉

Also RCE, Remote Code Execution, und das auch noch ohne Anmeldung. Meint: Jedes Gerät mit aktiviertem Bluetooth in der Nähe ist angreifbar, nur weil es da ist. BleedingTooth ist dabei nicht nur eine Lücke, sondern ein ganzes Sammelsurium an Schwachstellen, die kombiniert, den RCE mit Privilegien Eskalation erlauben.

Bis auf weiteres: BlueTooth abschalten!

Quellen:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00435.html

https://github.com/google/security-research/security/advisories/GHSA-h637-c88j-47wq  ( Die erlaubt die Code Ausführung )

 

CoronaChroniken: Corona-App öffnet Angriffen Tür und Tor

Liebe Kasernierte,

da nächste Woche die Corona-App der Bundesregierung (offiziell) lanciert werden soll, ist es Zeit da mal vor zu warnen.

CoronaChroniken: Corona-App öffnet Angriffen Tür und Tor

Solche Grafiken sind die beste Argumentationshilfe überhaupt.

Kommen wir zur Corona-App:

„Wenn wir in den kommenden Wochen einige Millionen Bürger von der App überzeugen, dann bin ich schon zufrieden“ (Jens Spahn).

Ich vermute, daß es dazu nicht kommen wird, denn die App schaltet dauerhaft Bluetooth ein. Bluetooth ist bekannt dafür den Akkustand zu drücken, denn anders als sonst, wird Bluetooth auch wirklich benutzt, um aktiv nach anderen Coronakennungen zu suchen. Das dürfte schon ohne weitere Informationen zum Thema dafür sorgen, daß es aus vielen Handies nach einigen Tagen wieder entfernt wird.

Diese Art der Selbsthygiene ist auch dringend nötig, denn Bluetooth hat eine Sicherheitslücke, die auf nahezu allen bislang gebauten Geräten vorhanden ist:

Managed to reproduce BIAS (Bluetooth Impersonation Attack) CVE 2020-10135.
Impersonation of any previously paired and connected Bluetooth device in
vulnerable setup. Reproduction on Linux host and Samsung S3 Neo+ mobile.

More info in the repo:
https://github.com/marcinguy/CVE-2020-10135-BIAS

Diese Lücke kam erst vor wenigen Tagen ans Licht. Kurz gesagt, jeder kann einem verwundbarem Geräte(so ziemlich alles was Android fährt) vorgaukeln ein anderes, früher bereits gepairtes Gerät zu sein. Je nachdem welche App dann mit Daten versorgt wird, kann der Angreifer von da an prinzipbedingt weitere Schwachstellen in Prozessen exploiten, von der offensichtlichen Lücke, sich z.B. als Lautsprecher auszugeben und Audio abzugreifen ganz zu schweigen.

Und diese Lücke ist nur eine von vielen, die ungepatcht durch die Handyhersteller, auf alten Geräten warten.

A.d.R. wer mit BT Kopfhörern rumrennt, wird von den CVEs nichts mitbekommen, bis seine Wiedergabeliste so merkwürdige Einträge enthalten wird.

Merke:

Bluetooth ist auf alten Geräten eine komplette Sicherheitslücke und gehört abgeschaltet!

Da wären z.B. noch CVE-2020-0022, eine Lücke mit der man durch Bluetooth Pings an Teile des Hauptspeichers kommt, weil es da wohl an Sanitychecks mangelt. Stichwort: negative memcpy-Länge args!

Das ist zwar im aktuellen Android durch Google gefixt worden, aber wieviele Handies haben das schon und wieviele mehr werden diesen Patch nie sehen, weil sie noch AOS 4,5,6,7 fahren? Die völlig verkappte Updatepolitik von Google und den Handyherstellern sorgt für unsichere Geräte. Was war so schwierig daran, die Treiber per OTA zu updaten ohne gleich Kernelreinstalls zu machen? {Irgendeine Gottheit} sei dank, wird sich das ja jetzt mit den reinen Linuxsmartphones beheben. Android kommt mir jedenfalls nicht mehr auf irgendwelche Geräte.

In 2019 hatten wir dann noch diese lustige Lücke, wo man durch gezielte Pakete die Verschlüsselung von Verbindungen bis auf NSA Niveau erniedrigen konnte:

https://arstechnica.com/information-technology/2019/08/new-attack-exploiting-serious-bluetooth-weakness-can-intercept-sensitive-data/

Auch die ist in AOS 4,5,6,7 nicht behoben worden.

Welchen Grund sollte man also haben, einen Chip mit Strom zu versorgen, der bestenfalls nur den Akku schnell entleert, aber schlimmstenfalls das Gerät kapern lässt? Der informierte Leser hat jedenfalls keinen.

Das waren die Rahmenbedingungen unter denen eine Corona-App laufen soll, kommen wir zum Knackpunkt der Sache: die App selbst.

Die zentrale dezentrale Lösung der Bundesregierung

Versprochen hatte man uns die dezentrale Lösung, also alle Daten auf den Smartphones und keinen zentralen Server. Bekommt habt Ihr jetzt: viele Daten auf dem Smartphone und … einen Zentralserver von dem sich Euer Handy eine Liste mit Kennungen zum Abgleich mit Euren lokalen Daten zieht. Dazu muß aber regelmäßig nachgesehen werden, ob es da Updates gibt. Außerdem mußte eine Trollvermeidungsstelle eingerichtet werden bei der Telekom 😀

Wie regelmäßig der Datenabgleich ist, habe ich derzeit nicht zu Hand, aber zu lange Perioden werden es nicht sein, sonst wäre das nämlich komplett unsinnig. Eine Woche nach dem Infektionszeitpunkt brauche ich die Info nicht mehr, da liege ich schlimmstenfalls schon im Bett oder habe gemerkt, daß ich mich nicht angesteckt habe. Ergo wird das im Stundenbereich liegen.

Eine rein dezentrale Lösung konnte schon gar nicht sein, weil irgendwoher muß ja die Info kommen, wer infiziert gewesen ist. Selbst wenn die App einen Schalter hätte mit „Ich bin infiziert“ darauf und den Status im Signal mit ausstrahlen würde ( da fällt mir sofort der Judenstern ein ) , potentiell nutzt das anderen Menschen nichts, weil man sich halt nicht immer zweimal im Leben sieht. Daher war ein Zentralserver zwangsläufig immer mit im Spiel.

Andere Zentralserverlösung nutzt Ihr übrigens auch laufend:

WhatApps, Facebook, Twitter, Wetterdienste, News- und Rss-Feeds usw.

Da gibt es nur einen Unterschied: die kommen nicht so leicht an Namen zu (Mobilfunk-)IPs. Gut, Facebook wird das auch nicht müssen, Ihr habt Ihnen ja schliesslich gesagt, wer Ihr seid 😉 Aber denkt mal drüber nach, wer so alles weiß, daß Ihr jetzt gerade in der Stadt rumrennt oder zur Ostsee fahrt. Wie gut die GEO-Locationdatenbanken heutzutage sind, ist echt erschreckend.

Corona-App öffnet Angriffen Tür und Tor

Nun hatte der Artikel die Überschrift, daß die Corona-App Angriffen Tür und Tor öffnet und damit sind nicht die Trollangriffe gemeint, die eine Infektion nur vortäuschen und so alle Empfänger in der Nähe unnötig in den Coronatest stürzen.

Ich denke, die Lücken im BT sprechen für sich und da die Corona-App BT automatisch aktiviert, stimmt das so auch. Selbst wenn die Software nicht selbst auch noch für bislang unbekannte Angriffe genutzt werden kann, reicht die Sache mit dem BT schon von alleine aus um diesen Zwang abzulehnen, da der Nutzen ohnehin fraglich ist.

Wie man an den Grafiken sieht, ist die Zahl der Neuinfektionen pro Tag zwar nicht Null, aber praktisch kaum vorhanden. Es ist also schwierig überhaupt jemandem zu begegnen, der die Krankheit gerade verteilt. Von den jüngsten Pressemitteilungen ausgehend, wird die derzeit maßgeblich betroffene Gruppe auch diese App nie einsetzen, da sie sich schon den Tests verweigert hat, die nachsehen sollten, ob die überhaupt infiziert sind.

Wenn man den Horizont seiner Blasengruppe nicht verlässt, dann lernt man eben nichts neues dazu. Das hätte den Dinos auch mal rechtzeitig jemand sagen sollen, bevor sie ausgestorben sind.

PS: unsere diesjährig direkt im Baum neben dem Schlafzimmer ziemlich ortsfeste Dinogruppe namens „Krähenschwarm“ trat dann doch nach Beginn der Bauarbeiten den Rückzug an, was besonders morgens um 5 für Ruhe sorgte. Leider wars dann nach 6 Uhr nicht mehr so ruhig 🙁  Bauarbeiter sind echt alle gleich, mirgens um 6 Uhr 1h Lärm machen und dann den ganzen Tag ruhig sein, anstatt abends 1h Lärm zu machen und morgens dann die ruhigen Arbeiten zu erledigen.

Linux – Gaming – Bluetooth Gamepads benutzen

Da kauft man für seine VR-fähige Drohne einen Bluetooth-Controller und was sagt die blöde Dronen-APP … 我不想用控制器! 🙁

Grrr…

Die Drohne will genau einen von tausenden Controllern und der dumme Kunde muß den doppelt so teuer einkaufen, wie vergleichbare Produkte. Jetzt haben wir den schon einmal da, da können wir den auch mal mit Linuxspielen ausprobieren 😀

Problem .. kein BT am Desktop 🙁 Lösbar, muß das Laptop halt für den Test ran, was auch die Ursache für die miese Framerate im Video ist und die komische Auflösung 🙂

Eigentlich könnte ich jetzt aufhören, denn auch wenn ich gedachte habe, da muß man viel machen, mußte man das gar nicht. 1a!

Alles was man machen muß ist, das BT Gamepad mit dem Laptop zu pairen. Es wird sofort als JoyPad erkannt und akzeptiert. Ab da braucht man nur noch ein Game, daß sich mit Gamepad steuern läßt: SuperTuxCart z.b. 😀 Schon kann es losgehen:

Die Steuerung mit „JoyPad“ ist aber GRAUSAM ungenau verglichen mit den Tasten. Da braucht mal echt lange um sich daran zu gewöhnen. Wie Ihr in dem Video seht, hatte ich das nicht 🙂 Liegt nicht am Gamepad, liegt klar an der Idee einen analogen Joystick für eine Digitale Steuerung zu benutzen 😉

Wer sich das DOBE GamePad zulegen will, es spielt auch direkt mit Android Handies, ist halbwegs gut verarbeitet, kommt mit Handyhalterung und 20h Akku. Für 15 € kann man da nicht meckern:

Und wieder ist jemand schlauer als die Hacker

Das nächste „Dicke Ding“ mit Bluetooth ist laut der Berliner Morgenpost ein BT Fahrradschloß, daß gegen „Gelegenheitshacker“ helfen soll.

Da es noch keine Schlösser gibt, kann man über den echten Sicherheitsfaktor noch nichts sagen, aber extrapoliert von dem jüngsten BT Schloßskandal, kann es sich eigentlich nur um Tage nach dem Erstverkauf handeln, bis die passende Hackmeldung über die Ticker geht.

Früher oder später geht alles, was man belauschen kann über den digitalen Jordan, wenn man es nicht von wirklichen Kryptoexperten macht läßt. IMHO sind Mechatroniker keine Kryptoexpterten.

Ihr wollt Beispiele ?

VW Funkschlüssel für Autos
Funktastaturen
Bluetooth Türschlösser

Bluetooth Proximity Tool

Zunächst installieren wir einmal das Paket „blueproximity“ via „dnf install blueproximity“ .

Wenn das Programm gestartet wird, suchen wir uns zunächst einmal das BlueTooth Gerät aus, das als Trigger dienen soll:

BT-2Danach sollte man den Kanal auswählen auf dem das BT Protokoll arbeiten soll. Ein Status „benutzbar“ ist empfehlenswert 😉

Danach setzen wir die Alarmparameter auf die uns genehmen Werte. Die Distanz Ihres verbundenen Handies wird Ihnen ganz unten angezeigt. Mit 127 ist aber nicht 127 Meter gemeint, sondern „ist komplett außer Reichweite / ist aus“ und „0“ ist direkt in der Nähe. Daher sollte man nur Entsperren, wenn das Handy im direkten Umfeld ist, also „0“ und „1“ für die min. Sperrendistanz, sobald man sich bewegt. Die Zeit ist natürlich die Dauer dieses Zustandes, so kann man z.b. durch das Büro gehen ohne das gleich der Bildschirm gesperrt wird.

Um sich mal eine Vorstellung von den Distanzwerten zu machen, der Wert „1“ wurde meinem Laptop angezeigt, als mein Handy bereits 3 m Luftlinie weg war, um die Ecke einer Wand mit vielen Elektrogeräten. Dieser Wert dürfte also ruhig etwas empfindlicher berechnet werden .

BT-1

 

In der „Sperren“ Optionen können wir die Sperrkommandos für den Screensaver angeben. Die Kommandos die dort bereits drinstehen sind für Gnome 2, also nicht mehr brauchbar.  Unten habe ich die neuen DBUS Kommandos gepostet, mit denen man Sperren und entsperren kann.
BT-4

Sperrkommando :

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

Entsperrkommando:

dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false

Das Entsperrkommando ist allerdings nicht perfekt. Es entsperrt zwar den Bildschirm, man muß das Passwort also nicht mehr angeben, aber der Bildschirm bleibt dunkel. Sobald man die Maus bewegt, kann man aber weiterarbeiten.

Sollte man sein Handy verloren haben ;), kann man sich natürlich auch ganz normal mit Passwort einloggen.

Im TOP-Icon-Contextmenü des Programms kann man es auch temporär abschalten. Das macht aus Gründen des Energiesparen natürlich viel Sinn, besonders beim Handyakku.

Mitarbeit

Wenn Ihr Vorschläge habt, wie man den Screensaver nicht nur freischaltet, sondern auch gleich Bildschirm wieder sichtbar macht, dann hinterlaßt einen Kommentar. Den richtigen Tip werde natürlich in den Text aufnehmen.