0:00:00.000,0:00:17.250
35C3 Preroll Music
0:00:17.250,0:00:23.510
Herald: So, der nächste Talk heißt "Smart[br]Home - Smart Hacks" und ich weiß nicht wie
0:00:23.510,0:00:27.650
es euch geht, ich hab immer so ein[br]bisschen Probleme und hab mir noch gar
0:00:27.650,0:00:32.369
nichts installiert zu Hause, obwohl es[br]mich jedes Mal in den Fingern kribbelt.
0:00:32.369,0:00:37.140
Ich würd's mir so gern kaufen, es gibt so[br]tollen Kram. Aber ich traue mich nicht und
0:00:37.140,0:00:41.390
deswegen habe ich mich sehr gefreut, dass[br]ich diesen Talk heute announcen darf.
0:00:41.390,0:00:45.260
Danach weiß ich dann Bescheid. Also, hier[br]ist Michael Steigerwald und ich bitte euch
0:00:45.260,0:00:48.755
um einen großen Applaus. Vielen Dank.
0:00:48.755,0:00:57.279
Applaus
0:00:57.279,0:01:01.441
Michael Steigerwald: Hallo. Heute geht's[br]um die Glühbirne. Naja eigentlich nicht
0:01:01.441,0:01:05.210
nur um die Glühbirne, sondern es geht um[br]fast alle Smart Home Geräte die man sich
0:01:05.210,0:01:11.189
vorstellen kann, weil eigentlich in fast[br]allem das Gleiche drin steckt. Und warum
0:01:11.189,0:01:14.420
habe ich mir gerade die Glühbirne[br]ausgesucht? Das ist ganz einfach, die
0:01:14.420,0:01:17.261
Glühbirne ist so der einfachste Gegenstand[br]den man sich vorstellen kann, das ist
0:01:17.261,0:01:22.600
einfach ein Verbrauchsmaterial. Früher war[br]es einfach nur ne Glühbirne, heute muss
0:01:22.600,0:01:27.460
alles smart sein und überall muss Internet[br]drin sein und Cloud. Und wenn das sogar
0:01:27.460,0:01:31.090
schon in der Glühbirne drin ist, können[br]wir uns überlegen, wo das sonst noch
0:01:31.090,0:01:39.660
überall drin ist. Jeder hat Angst vor[br]Geräten mit Kamera und Mikrofon. Warum man
0:01:39.660,0:01:43.010
aber vielleicht auch mal schauen muss[br]welche Gefahren in so einer Glühbirne
0:01:43.010,0:01:50.070
stecken,das erfahren wir heute in meinem[br]Vortrag. Weiter geht es darum, dass es
0:01:50.070,0:01:56.590
viele IT-Cloud-Anbieter gibt, wo man ganz[br]einfach jegliches Gerät in die Cloud
0:01:56.590,0:02:01.869
bringen kann und dazu gar kein know-how[br]braucht und so einen Anbieter, den habe
0:02:01.869,0:02:05.969
ich mir ein bisschen genauer angeschaut.[br]Und mal geschaut, wie sicher das ist und
0:02:05.969,0:02:10.750
dann auch ein proof of concept[br]verschiedener Angriffszenarien gemacht und
0:02:10.750,0:02:22.920
werde euch noch sagen, welche Konsequenzen[br]das für den User hat. Genau. In der Presse
0:02:22.920,0:02:29.220
liest man ständig irgendwelche Sachen über[br]Smart Home und über die Gefahren, was da
0:02:29.220,0:02:34.160
alles passieren kann und so weiter und[br]selbst die Bundesnetzagentur hat vor
0:02:34.160,0:02:40.231
Weihnachten gewarnt vor smarten[br]Weihnachtsgeschenken. Besonders vor
0:02:40.231,0:02:47.140
Kameras und Geräten mit Mikrofonen drin.[br]Und weil eben Weihnachten war hab ich
0:02:47.140,0:02:50.340
gedacht, ich habe auch noch eine smarte[br]Glühbirne die ich jetzt einfach mal
0:02:50.340,0:02:55.280
irgendjemandem hier vorne schenken möchte.[br]Bitteschön. Sehr gut gefangen.
0:02:55.280,0:02:59.730
Applaus
0:02:59.730,0:03:04.300
Zu meiner Person: Mein Name ist Michael[br]Steigerwald. Ich bin Hard- und
0:03:04.300,0:03:09.670
Softwareentwickler. Besonders bin ich[br]tätig im Bereich Security Research und
0:03:09.670,0:03:15.030
habe Mitte des Jahres ein Startup[br]gegründet die VTRUST GmbH, bei der wir uns
0:03:15.030,0:03:22.030
auch um IT-Sicherheit kümmern. Die[br]Motivation zu meinem Vortrag war so, dass
0:03:22.030,0:03:28.270
ein Kunde auf uns zukam, der sein smartes[br]Gerät an die Cloud anbinden wollte und
0:03:28.270,0:03:31.770
gesagt hat: Das ist nicht unsere[br]Expertise. Wir kennen uns mit unserem
0:03:31.770,0:03:35.510
Produkt aus, aber nicht mit der Cloud und[br]nicht mit der Sicherheit, die damit
0:03:35.510,0:03:39.820
verbunden ist und hat gefragt, ob wir[br]denen helfen können das in die Cloud
0:03:39.820,0:03:43.930
anzubinden. Und wie man das natürlich[br]immer so macht, man schaut sich mal um.
0:03:43.930,0:03:47.380
Was gibt's so? Gibt es schon fertige[br]Lösungen? Gibt's irgendwas im Markt was
0:03:47.380,0:03:53.730
man dafür benutzen kann? Und da bin ich[br]auf einen Anbieter gestoßen der ganz
0:03:53.730,0:03:59.260
tolle, ja, der über 11.000 verschiedene[br]Produkte schon in die Cloud gebracht hat.
0:03:59.260,0:04:05.730
Mit über 10 000 Herstellern und das in 200[br]Ländern und mit über 20 Milliarden
0:04:05.730,0:04:15.170
Requests am Tag. Die Versprechen dieses[br]Herstellers sind auch sehr groß, also er
0:04:15.170,0:04:19.150
spricht von rapid development und dass man[br]schon in sechs Stunden eine Demo haben
0:04:19.150,0:04:23.170
kann und die Massenproduktion auch schon[br]nach 15 Tagen starten kann. Das hört sich
0:04:23.170,0:04:27.150
sehr wenig an, aber tatsächlich habe ich[br]mir das ein bisschen angeguckt und ist es
0:04:27.150,0:04:33.820
auch wirklich so. Man kann sehr schnell[br]seine Geräte mit der Technik ins Internet
0:04:33.820,0:04:38.970
bringen. Und was mir noch sehr gefallen[br]hat natürlich, war, dass sie Military-
0:04:38.970,0:04:48.020
Grade security versprechen und dazu kommen[br]wir später nochmal. So, der erste Schritt
0:04:48.020,0:04:52.310
ist, man meldet sich an. Das geht in fünf[br]Minuten und danach kann man schon anfangen
0:04:52.310,0:04:59.110
und kann seine Geräte anlegen oder aus[br]einem großen Portfolio auswählen. Eine OEM
0:04:59.110,0:05:04.350
App zu installieren ist auch ganz einfach.[br]Man kann einfach die vorhandene App mit
0:05:04.350,0:05:08.230
seinen Logos personalisieren und seinen[br]Farben und hat die dann innerhalb
0:05:08.230,0:05:15.630
kürzester Zeit im Internet und in den Play[br]Stores und Apple Store. Das war vor einem
0:05:15.630,0:05:18.722
halben Jahr noch kostenlos. Jetzt kostet[br]es 1.500 Dollar oder so in dem
0:05:18.722,0:05:24.330
Preisrahmen, aber für das Geld kann man[br]definitiv keine App programmieren. Wenn
0:05:24.330,0:05:29.800
man das gemacht hat, kann man einfach[br]fertige Module bestellen und oder auch
0:05:29.800,0:05:35.500
direkt fertige Geräte. Also zum Beispiel[br]auch diese Glühbirnen kann man direkt
0:05:35.500,0:05:42.970
bestellen, sein eigenes Label drauf[br]drucken und ist danach IoT-Anbieter.
0:05:42.970,0:05:51.330
Genau. So. Jetzt hab ich bei dem[br]Durchklicken in diesem Webformular aber
0:05:51.330,0:05:55.740
auch eine Seite gefunden, die mich ein[br]bisschen stutzig gemacht hat. Zwar gab's
0:05:55.740,0:06:04.180
Firmware-updates und da gab es die Punkte[br]Silent Upgrade und Forced Upgrade. Wo ich
0:06:04.180,0:06:09.180
gedacht habe, okay, ja, wie macht man ein[br]upgrade an einer Glühbirne? Generell geht
0:06:09.180,0:06:12.310
es vielleicht über die App oder sowas,[br]aber was da wirklich in der Glühbirne
0:06:12.310,0:06:16.780
passiert, das weiß ja niemand. Und ich[br]hatte mir zwar schon 20 Module zum Spielen
0:06:16.780,0:06:21.370
bestellt, aber bis die aus Fernost[br]geliefert werden, dachte ich mir, ich
0:06:21.370,0:06:26.060
nehme einfach mal einen großen[br]Versandanbieter, die liefern am Folgetag
0:06:26.060,0:06:33.460
und hab mir mal verschiedene Glühbirnen[br]und auch smarte Steckdosen bestellt.
0:06:33.460,0:06:41.650
Genau. Dann: Wie funktioniert das? Das ist[br]ganz einfach. Man registriert die
0:06:41.650,0:06:47.930
Glühbirne mit seinem Handy. Das geht ganz[br]schnell. Man bringt ihn in den
0:06:47.930,0:06:54.620
Einrichtungsmodus und danach wird die[br]Konfiguration übertragen und die Glühbirne
0:06:54.620,0:06:59.310
verbindet sich dann selbst mit der Cloud[br]des Herstellers über HTTP und MQTT. Und
0:06:59.310,0:07:06.380
schon kann man sie aus- und anschalten.[br]Weil jetzt immer wieder MQTT fällt und das
0:07:06.380,0:07:10.889
vielleicht nicht jedem ein Begriff ist:[br]MQTT ist ein Message Queuing Telemetry
0:07:10.889,0:07:17.080
Transport Protocol. Das ist eigentlich,[br]wird es in jedem IoT-Gerät verwendet. Das
0:07:17.080,0:07:23.750
ist einfach ein Protokoll, wie man eine[br]Lampe, die irgendwo im privaten Netzwerk
0:07:23.750,0:07:31.090
ist von außen auch steuern kann. Das[br]heißt, die Lampe selbst verbindet sich mit
0:07:31.090,0:07:39.410
dem MQTT-Broker und kann danach, ja, Daten[br]an Geräte pushen wie den Zustand oder kann
0:07:39.410,0:07:46.000
auch darüber geschaltet werden. So, jetzt[br]war der erste Punkt: Was steckt denn da
0:07:46.000,0:07:49.520
überhaupt drin? Ich habe mal ein paar[br]verschiedene aufgemacht. Eigentlich hab
0:07:49.520,0:07:54.290
ich immer so ein ESP8266 gefunden. Der[br]wird den meisten hier bekannt sein. Das
0:07:54.290,0:07:59.540
ist ein sehr, sehr günstiger 32-Bit[br]Prozessor mit einem WLAN integriert und es
0:07:59.540,0:08:05.300
war 1 MB Flash drin und der ist auch sehr,[br]sehr einfach auslesbar. Das heißt, ich
0:08:05.300,0:08:11.830
habe einfach die fünf Lötstellen, also[br]fünf Lötpunkte, gesetzt und hab den mal an
0:08:11.830,0:08:15.590
einen seriellen Port gehängt. Und dann[br]kann man das mit dem esp tool einfach
0:08:15.590,0:08:22.740
auslesen und hat ein Binary, ja, die[br]Firmware. Was sehr wichtig ist, ist, dass
0:08:22.740,0:08:30.430
man da aufpasst, dass die Produzenten aus[br]Fernost es nicht immer so mit der
0:08:30.430,0:08:37.070
Bezeichnung halten. Das heißt, es kann[br]auch mal auf dem DC-Ground eine Phase sein
0:08:37.070,0:08:42.689
und das musste ich auch schmerzlich mal[br]feststellen. Also ganz wichtig: Achtung,
0:08:42.689,0:08:50.749
230 Volt. So. Das Flash hab ich jetzt[br]ausgelesen. Generell ist es so, das hat
0:08:50.749,0:08:54.350
verschiedene Partitionen, erst einmal ein[br]Bootloader, der an Stelle 0 sitzt. Und
0:08:54.350,0:08:58.930
dann gibt's zweimal zwei user Partitions,[br]in denen die Firmware sitzt. Das liegt
0:08:58.930,0:09:03.379
daran, dass es eine Upgrade-Funktionalität[br]gibt und wenn dann z.B. user 1 gebootet
0:09:03.379,0:09:08.089
ist, kann user 2 überschrieben werden und[br]umgedreht und dann gibt es noch eine
0:09:08.089,0:09:13.829
Konfigurationspartition, bei der, ja, die[br]Konfiguration erhalten bleibt, auch bei
0:09:13.829,0:09:22.850
einem Upgrade. Und was mir dann[br]aufgefallen ist, ist, dass mein WLAN-SSID
0:09:22.850,0:09:30.130
und mein Passwort unverschlüsselt in der[br]Konfigurationspartition abgelegt sind. So
0:09:30.130,0:09:35.649
viel nochmal zum Thema Military-Grade[br]security. Man kann auch denken: Ja, was
0:09:35.649,0:09:39.740
ist jetzt da so schlimm daran? Aber ich[br]kenne Leute, die benutzen solche
0:09:39.740,0:09:43.300
Glühbirnen in ihrem Garten zu Hause. Da[br]kann der Nachbar einfach mal die Glühbirne
0:09:43.300,0:09:50.110
holen und weiß danach die WLAN Passwörter.[br]Und es gibt noch mehrere Anwendungsfälle
0:09:50.110,0:09:53.029
wo das eigentlich nicht so sein sollte und[br]es gibt eigentlich überhaupt keinen Grund
0:09:53.029,0:09:58.910
sowas unverschlüsselt im Flash abzulegen.[br]Des Weiteren habe ich noch diverse Keys
0:09:58.910,0:10:05.300
gefunden und Schlüssel. Also einmal zum[br]Beispiel ist die Seriennummer die drin
0:10:05.300,0:10:10.810
liegt, die bildet sich auch aus der MAC-[br]Adresse und noch ein Prefix, dann gibts
0:10:10.810,0:10:16.029
den AUZ-Key, das ist ein Schlüssel der[br]verwendet wird, dass der Hersteller weiß
0:10:16.029,0:10:22.399
oder der Cloud-Anbieter weiß, dass es auch[br]ein wirkliches Modul von ihm ist. Und dann
0:10:22.399,0:10:28.619
gibts noch eine Product ID. Diese Product[br]ID wird generiert beim Anlegen des
0:10:28.619,0:10:33.390
Produkts in der Cloud. Das heißt, vorhin[br]hab ich diese Oberfläche gezeigt, wo man
0:10:33.390,0:10:38.339
einfach Produkte anlegen kann. Und wenn[br]ich die anlege, wird diese Produkt ID
0:10:38.339,0:10:41.089
generiert und die wird danach vom[br]Hersteller in das Modul rein programmiert.
0:10:41.089,0:10:46.610
Es gibt auch noch einen local Key und[br]einen sec Key, also der wurde auch genau
0:10:46.610,0:10:51.629
so genannt in dem Jason-File im Flash. Die[br]sind für die Verschlüsselung und
0:10:51.629,0:10:58.790
Signierung von der Kommunikation[br]zuständig. Da ich jetzt ja eigentlich nur
0:10:58.790,0:11:04.459
gekaufte Produkte von einem Fremdanbieter[br]hatte, hab ich mir überlegt: Wie kann ich
0:11:04.459,0:11:08.830
das denn kapern? Und das Einzigste was mir[br]eingefallen ist, das Erste war, ich
0:11:08.830,0:11:14.730
schreib doch mal ins Flash an der Stelle wo[br]die Product ID steht, meine Product ID
0:11:14.730,0:11:20.259
rein und danach musste man noch die[br]Checksumme korrigieren - das geht auch mit
0:11:20.259,0:11:24.899
dem esp tool, oder die standard esp-[br]Checksumme - und hab's zurück geflasht in
0:11:24.899,0:11:32.540
die Glühbirne und siehe da: Die gekaufte[br]Glühbirne war in meinem Account. Jetzt hat
0:11:32.540,0:11:38.230
es mich doch sehr verwundert, dass ich[br]direkt gesehen habe, dass... ach ja genau:
0:11:38.230,0:11:42.579
auch nochmal soviel zum Thema Military-[br]Grade security. Aber mich hat sehr
0:11:42.579,0:11:49.470
verwundert, warum da die E-Mail-Adresse,[br]die ich zum Registrieren benutzt habe mit
0:11:49.470,0:11:54.139
drinsteht in der Sache. Und dann habe ich[br]gesehen, dass wenn man auf die Details
0:11:54.139,0:12:00.360
geht, gibt's noch viel mehr Informationen.[br]Also es steht die binding E-Mail-Adresse
0:12:00.360,0:12:05.339
drin mit den Seriennummern und so weiter.[br]Wobei das auch sehr oft eine Handynummer
0:12:05.339,0:12:10.160
ist, wenn man sich mit dem Handy[br]registriert hat. Oder es stehen zum
0:12:10.160,0:12:15.709
Beispiel auch die Koordinaten drin und wo[br]man sich befindet. Jetzt weiß ich nicht,
0:12:15.709,0:12:22.079
warum der Hersteller oder der Reseller von[br]meiner Glühbirne wissen muss, wo die
0:12:22.079,0:12:29.569
eingesetzt wird. Aber dafür gibts[br]wahrscheinlich auch Gründe. Die Anschalt-
0:12:29.569,0:12:36.720
und Ausschaltvorgänge: weiß auch jeder[br]wann wer zuhause ist und schaltet. Das
0:12:36.720,0:12:41.519
bekommt auch jeder raus. Und standardmäßig[br]bekommt man nur 7 Tage Logs seiner Kunden.
0:12:41.519,0:12:48.620
Wenn man aber mehr will, muss man einfach[br]nur fragen. Dann gibt es noch schöne
0:12:48.620,0:12:54.100
Auswertungen, wo man sieht, wie viele[br]Kunden wann welche Geräte aktiviert haben,
0:12:54.100,0:13:01.050
dass man einfach den Markt besser nutzen[br]kann. Für mich war das ein bisschen
0:13:01.050,0:13:06.139
komisch und meine Kundennachfrage war[br]eigentlich auch so, dass es gerade darum
0:13:06.139,0:13:11.240
ging, den Kunden und seine Daten zu[br]schützen. Und weil ich überhaupt keine
0:13:11.240,0:13:15.410
Ahnung habe, wer auf die Daten alles[br]zugreifen kann, habe ich doch einfach mal
0:13:15.410,0:13:20.790
an den Hersteller eine E-Mail geschrieben[br]und hab gefragt, ob man deren Technik auch
0:13:20.790,0:13:25.970
benutzen kann, ohne dass die Daten an die[br]Cloud geschickt werden. Weil, wie gesagt,
0:13:25.970,0:13:30.800
auch für meinen Kunden nicht gut ist, wenn[br]die Koordinaten seiner Kunden in der Cloud
0:13:30.800,0:13:39.440
gespeichert werden. Die Antwort war: Nein.[br]Also es ist nicht möglich diese ... Ja
0:13:39.440,0:13:46.709
...IoT-Geräte ohne die Cloud, nein ohne[br]die Daten zu betreiben. Und sie haben mir
0:13:46.709,0:13:53.689
aber versichert, sie beschützten die Daten[br]"sehr gut". Und was sie auch noch gemacht
0:13:53.689,0:13:58.829
haben in diesem Kontext war: sie haben mir[br]direkt noch ein Dokument mitgeschickt, das
0:13:58.829,0:14:06.119
mir zeigt, wie ich die Nutzerdaten besser[br]für mich ausnutzen kann. Vom Prinzip ist
0:14:06.119,0:14:10.019
es so, dass in den Apps immer[br]Datenschutzrichtlinien drin sind, die sind
0:14:10.019,0:14:15.940
aber sehr, sehr ... erstens mal lang und[br]auch verwirrend. Und wenn ich jetzt da
0:14:15.940,0:14:19.149
drüber sprechen würde, bräuchte ich noch[br]eine Stunde länger. Das heißt, da könnten wir
0:14:19.149,0:14:22.119
nochmal einen kompletten anderen Talk[br]draus machen und da will ich jetzt nicht
0:14:22.119,0:14:30.560
weiter darauf eingehen. Das[br]Bundesministerium für Sicherheit hat einen
0:14:30.560,0:14:34.991
Lagebericht zur IT-Sicherheit 2018[br]rausgebracht und hat dann das in
0:14:34.991,0:14:42.879
verschiedene Gefährdungslagen aufgeteilt.[br]Erstens: die Gefährdungslage, wo der User
0:14:42.879,0:14:48.290
der IoT-Geräte das Ziel ist und den[br]Schaden hat. Und da gibt es Punkte wie die
0:14:48.290,0:14:53.949
Manipulation von Daten, das Ausspähen von[br]Daten, Sabotage und IoT-Geräte als
0:14:53.949,0:15:00.940
Hintertür. Und als zweite Gefährdungslage[br]hat er die Gefährdungslage genannt, bei
0:15:00.940,0:15:06.160
der andere Personen dadurch zu Schaden[br]kommen können, wie zum Beispiel der Aufbau
0:15:06.160,0:15:10.019
von Bot-Netzwerken, Identitäts-[br]Verschleierung, Crypto-Mining, Klick-
0:15:10.019,0:15:15.399
Betrug bei Werbebannern und so weiter. Und[br]ich muss sagen, das sind die
0:15:15.399,0:15:20.999
Gefährdungslagen die das BSI genannt hat,[br]die sind alle mit der Glühbirne machbar.
0:15:20.999,0:15:24.910
Crypto-Mining ist zwar ein bisschen[br]schlecht, weil die Performance nicht
0:15:24.910,0:15:33.880
ausreichend ist aber theoretisch würde das[br]auch funktionieren. Jetzt habe ich mal mir
0:15:33.880,0:15:38.740
überlegt, was könnte denn ein mögliches[br]Angriffs-Szenario sein beim Benutzen einer
0:15:38.740,0:15:44.129
Glühbirne. Und generell ist es ja so, dass[br]die Glühbirne als Netzwerk-Teilnehmer auf
0:15:44.129,0:15:48.859
das komplette, lokale Netzwerk zugreifen[br]kann und auch ganz oft auf Urlaubsbilder
0:15:48.859,0:15:52.449
und so weiter oder auch irgendwelche[br]anderen Daten durch ARP-Spoofing und so
0:15:52.449,0:16:01.600
weiter abgreifen könnte und dann einfach[br]zu einem Server nach außen schicken kann.
0:16:01.600,0:16:07.600
Und das hab ich auch dann gemacht. Also[br]vom Prinzip die erste Idee war: Ich hab
0:16:07.600,0:16:11.160
mir einfach mal die WLAN Daten selbst[br]rausgeschickt und hab das mit reingemacht
0:16:11.160,0:16:19.839
und das funktioniert ohne Probleme. So,[br]ganz kurz zwischendurch: Jeder kann
0:16:19.839,0:16:22.420
Hersteller und Reseller werden. Also es[br]geht wirklich innerhalb von fünf Minuten
0:16:22.420,0:16:26.199
oder man kann auch irgendwelche Geräte[br]kaufen, kann die mit der eigenen Produkt-
0:16:26.199,0:16:32.400
ID verbinden und dann hat man sie in der[br]eigenen Cloud, um auf die Daten komplett
0:16:32.400,0:16:37.600
zugreifen zu können. Und danach kann[br]wirklich der Cloud-Anbieter selbst kann
0:16:37.600,0:16:41.040
auf die Daten zugreifen, der Hersteller[br]und auch die Lieferanten, wenn die das
0:16:41.040,0:16:46.290
wollen Die haben alle auch Zugriff auf die[br]Firmware. Man kann die Firmware auch
0:16:46.290,0:16:52.360
während des Betriebes ändern und ganz[br]schlimm natürlich ist, dass dann auf alle
0:16:52.360,0:16:57.309
User-Daten zugreifen kann. Und das[br]Datensammeln ist wirklich in einem extrem
0:16:57.309,0:17:02.579
hohen Ausmaß: also mit Koordinaten und so[br]weiter; das muss eigentlich bei der
0:17:02.579,0:17:06.699
Glühbirne alles gar nicht sein. Das[br]Datensammeln kann nicht abgestellt werden,
0:17:06.699,0:17:13.780
wurde mir ja gesagt, weil es, ja, nicht[br]möglich ist. Und ja auch ein großer Punkt.
0:17:13.780,0:17:17.799
Das heißt: Eigentlich kann man als[br]deutscher Hersteller solche Anbieter
0:17:17.799,0:17:22.069
überhaupt nicht verwenden. Das[br]Inverkehrbringen von solchen Geräten ist
0:17:22.069,0:17:26.800
auch sehr einfach: Man kann die ganz einfach[br]verkaufen: Man kann sich viele kaufen und
0:17:26.800,0:17:31.500
die Retouren zurückgehen lassen. Man kann[br]... im Gebrauchtmarkt muss man sehr
0:17:31.500,0:17:35.121
aufpassen ,weil man nie weiß was drin ist.[br]Und der junge Herr zum Beispiel hat von
0:17:35.121,0:17:40.309
mir eine geschenkt bekommen. Das ist[br]natürlich noch eine andere Möglichkeit
0:17:40.309,0:17:48.950
auch, solche Geräte in den Verkehr zu[br]bringen. Jetzt war eigentlich für mich die
0:17:48.950,0:17:53.919
Arbeit beendet, weil meinem Kunden konnte[br]ich natürlich nicht mehr helfen oder nicht
0:17:53.919,0:18:00.230
sagen, okay wir nehmen einen tollen[br]Military-Grade Anbieter aus Fernost,
0:18:00.230,0:18:04.480
sondern wir müssen was Eigenes machen.[br]Trotzdem hatte ich eine eigene, neue
0:18:04.480,0:18:08.370
Motivation. Und zwar erstens mal, ist es[br]denn möglich, diese ganzen Geräte, wie sie
0:18:08.370,0:18:14.610
alle hier sind, auch ohne die Cloud zu[br]betreiben. Und zweitens wollte ich
0:18:14.610,0:18:21.269
natürlich auch noch mal den wirklichen[br]Proof of Concept von dem Trojaner haben.
0:18:21.269,0:18:27.360
Und das heißt es ging jetzt für mich[br]nochmal eine Runde weiter. So, dafür habe
0:18:27.360,0:18:32.460
ich mir ein kleines Testsetup aufgebaut.[br]Ich habe einfach einen Raspberry Pi mit
0:18:32.460,0:18:36.870
einem Kali Linux benutzt und da einen[br]Software-Access Point laufen lassen, einen
0:18:36.870,0:18:43.470
hostapd. Dann brauchte ich meine eigenen[br]DNS-Server, um auch Anfragen umleiten zu
0:18:43.470,0:18:49.660
können. Hab den eigenen HTTP-Server[br]gebraucht, Und den MQTT-Broker und zum
0:18:49.660,0:18:54.180
Analysieren habe ich Wireshark benutzt und[br]man-in-the-middle-Attacken mit bettercap
0:18:54.180,0:19:00.100
gemacht. Ja, dann ging es erst einmal zur[br]Netzwerkanalyse, Ich habe mir erst einmal
0:19:00.100,0:19:05.320
angeguckt, was geht denn da rein und raus[br]auf der Netzwerk Seite. Es ist ganz
0:19:05.320,0:19:09.700
einfach. Es gibt eigentlich drei Sachen:[br]Es gibt DNS-Requests. Es gibt HTTP
0:19:09.700,0:19:15.150
Anfragen. Die sind eigentlich meistens[br]unverschlüsselt bzw. auch die wichtigen
0:19:15.150,0:19:21.330
Sachen, die zum Beispiel Schlüssel[br]enthalten, sind dann unverschlüsselt. Und
0:19:21.330,0:19:27.769
MQTT ist auch vorhanden und verschlüsselt.[br]Aber es wird auch, wenn in der Lampe
0:19:27.769,0:19:39.941
selbst https und die MQTTs implementiert[br]sind, einfach nicht benutzt. Und das ist
0:19:39.941,0:19:43.390
wieder "sehr sicher". Wie gesagt, in dem[br]Feld. man sieht es hier nicht, aber da ist
0:19:43.390,0:19:51.110
auch der local Key in clear drin, in der[br]Anfrage. Und dann habe ich eine kleine
0:19:51.110,0:19:55.580
Crypto Analyse gemacht, um auch zu sehen[br]was sonst noch so alles in den
0:19:55.580,0:20:01.370
verschlüsselten Nachrichten drin steckt[br]und dadurch dass der ESP verwendet wird
0:20:01.370,0:20:07.520
und diesen Tensilica XTENSA Core hat, ist[br]das Disassemblieren sehr mühselig von dem
0:20:07.520,0:20:11.929
Binary, weil es eben keine guten Plugins[br]gibt und auch keine guten Disassembler.
0:20:11.929,0:20:17.740
Und dann hab ich mich mal ein bisschen[br]umgeschaut. Und es gibt von dem Cloud-
0:20:17.740,0:20:23.440
Anbieter eine sehr gute API Dokumentation,[br]die zwar auch sehr viele Fehler hat, aber
0:20:23.440,0:20:27.380
da drin sind auch sehr wichtige Teile wie[br]Verschlüsselungen teilweise dokumentiert.
0:20:27.380,0:20:33.740
Und es gibt noch ein SDK das habe ich[br]angefragt aber bevor ich es geschickt
0:20:33.740,0:20:36.759
bekommen habe, habe ich es auch im Internet[br]gefunden, ist eigentlich auch öffentlich
0:20:36.759,0:20:43.690
zugänglich und mit dem SDK waren pre-[br]compiled Libraries drin, die ich dann auch
0:20:43.690,0:20:47.740
analysieren konnte und wenn ich meine[br]eigene Firmware damit kompiliert habe,
0:20:47.740,0:20:52.639
hatte ich ein Sample Output und brauchte[br]kein wirkliches Disassembling. Das
0:20:52.639,0:21:00.110
Ergebnis der Crypto-Analyse war, dass ich[br]dann in einem kleinen 60 Zeilen Skript ja
0:21:00.110,0:21:05.740
alle verwendeten Verschlüsselungen drin[br]hatte und es wird eigentlich nur ein
0:21:05.740,0:21:13.029
AES-128 verwendet mit dem Local Key und[br]die MD5 Check-Summe teilweise über gewisse
0:21:13.029,0:21:18.750
Teile davon gebildet, auch als Sicherheit[br]und signiert werden die Daten auch mit
0:21:18.750,0:21:29.200
einem MD5. So, dann hab ich erst mal[br]geguckt wie funktioniert denn so eine
0:21:29.200,0:21:33.139
Registrierung. Also die Registrierung[br]selbst einer Lampe an der Cloud
0:21:33.139,0:21:40.750
funktioniert so, dass die Mobile-App einen[br]Token anfragt an der Cloud, schickt den
0:21:40.750,0:21:48.490
über Morse Protokoll namens SmartConfig[br]mit den Wifi-Credentials zur Lampe, die
0:21:48.490,0:21:56.240
meldet sich im WLAN an und schickt dann[br]den Token zurück an die Cloud und bekommt
0:21:56.240,0:22:06.130
die MQTT-Login Daten und fragt nach der[br]Activation. Das ist eine HTTP-Anfrage
0:22:06.130,0:22:11.470
auch, bei der dann der Local Key und der[br]Security Key in clear zurückkommen. Der
0:22:11.470,0:22:16.090
Local Key geht auch zur App und danach[br]kann sich die Lampe anmelden an der Cloud
0:22:16.090,0:22:25.529
und kommuniziert weiterhin mit der Cloud[br]und kann verwendet werden. Was mich viel
0:22:25.529,0:22:29.580
mehr interessiert hat war das Upgrade weil[br]ich ja eigentlich meine eigene Firma
0:22:29.580,0:22:35.399
reinbringen wollte und dazu hatte[br]ich eine Lampe, die hat eine neue
0:22:35.399,0:22:42.120
Firmware, ein Firmware-Upgrade gehabt und[br]das funktioniert im Endeffekt so, auf dem
0:22:42.120,0:22:47.429
Handy wird gefragt, ob das Upgrade[br]durchgeführt werden soll. Dann wird ein
0:22:47.429,0:22:51.710
Trigger ausgelöst und der Trigger wird an[br]die Lampe gesendet und die Lampe fragt
0:22:51.710,0:23:01.260
über HTTP, wo gibt's die neue Firmware und[br]welche Version hat die, und so weiter.
0:23:01.260,0:23:06.620
Dann lädt sich die Lampe einfach von einem[br]HTTP-Server das Binary und installiert es
0:23:06.620,0:23:13.130
in die nicht genutzte User Partition. Für[br]mich war es ganz einfach, ich habe mir als
0:23:13.130,0:23:20.769
allererstes mal einen eigenen MQTT-Server[br]genommen und hab dann versucht das Trigger
0:23:20.769,0:23:27.669
selbst zu generieren. Und danach habe ich[br]mit einer Man-in-the-Middle Attack den HTTP
0:23:27.669,0:23:31.500
Request verändert und hab der Glühbirne[br]eben gesagt, dass sie von meinem eigenen
0:23:31.500,0:23:38.389
Server die Firmware laden soll.[br]Funktionieren tut das ganz einfach so, der
0:23:38.389,0:23:43.610
eigene MQTT-Server wird benutzt. Dafür[br]musste ich einfach den DNS-Server
0:23:43.610,0:23:50.840
umbiegen, dass eben nicht mehr auf den[br]MQTT-Server des Cloud Anbieters geschaut
0:23:50.840,0:23:56.679
wird sondern auf meinen Lokalen. Man sieht[br]dass sich die Lampe anmeldet und
0:23:56.679,0:24:05.299
irgendwelche Nachrichten ausgetauscht[br]werden. Das Nächste war eigentlich so das
0:24:05.299,0:24:12.210
kniffligste. Das war der Upgrade-Trigger,[br]den hab ich erst mal analysiert, der kommt
0:24:12.210,0:24:16.690
tatsächlich verschlüsselt und wurde dann[br]entschlüsselt mit einem Local Key und dann
0:24:16.690,0:24:23.289
hat man darin gesehen dass das Protokoll[br]15 quasi das Upgrade triggert und man kann
0:24:23.289,0:24:29.690
sich dann einfach mit meinen Skripts die[br]Trigger generieren. Beim Timestamp der
0:24:29.690,0:24:33.570
verwendet wird ist es auch so, dass es die[br]Lampe sehr sehr gnädig ist. Der kann auch
0:24:33.570,0:24:36.659
gerne mal ein bisschen älter sein oder man[br]kann das auch öfter verwenden. Das
0:24:36.659,0:24:45.700
funktioniert dann auch immer wieder und so[br]konnte man einfach über den Moskito Befehl
0:24:45.700,0:24:50.320
das Upgrade triggern. Ja, ich habe dann[br]noch ein bisschen automatisiert, dass
0:24:50.320,0:24:56.340
alles mit einem Klick passiert quasi, das[br]hab ich auch eigentlich gemacht für euch
0:24:56.340,0:24:59.340
alle, weil ich es dann später alles[br]veröffentlichen werde.
0:24:59.340,0:25:07.259
Applaus
0:25:07.259,0:25:12.360
Punkt war das Ändern der Upgrade-Quelle;[br]hierzu habe ich ein fertiges Tool benutzt
0:25:12.360,0:25:19.419
das heißt bettercap; damit kann man HTTP-[br]Requests einfach in Realtime ändern. Und
0:25:19.419,0:25:26.009
da ich ja eh Kali Linux als Access Point[br]benutzt habe, konnte ich auch relativ gut
0:25:26.009,0:25:33.110
dran und habe quasi dann in die URL und in[br]den MD5 einfach die Daten meiner neuen
0:25:33.110,0:25:42.600
Firmware geschrieben. Und das geht auch[br]mit ein paar kleinen Skripts. Das heißt,
0:25:42.600,0:25:49.669
man gibt an, dass er irgendwelche fertigen[br]Strings in den HTTP-Replies sucht und dann
0:25:49.669,0:25:54.600
einfach ersetzt und danach ging es[br]eigentlich nur noch darum einen eigenen
0:25:54.600,0:26:02.500
HTTP-Server zu installieren und die Lampe[br]hat nach dem Upgrade Trigger das Binary
0:26:02.500,0:26:10.110
von meinem Server gezogen. Ja, jetzt[br]geht's noch zum Thema eigene Firmware. Ich
0:26:10.110,0:26:17.480
habe euch ja schon gesagt - ach genau -[br]die hab ich ja schon erwähnt, dass ich da
0:26:17.480,0:26:21.299
verschiedene Versionen machen wollte unter[br]anderem die eine die eigentlich nur das
0:26:21.299,0:26:26.659
WLAN Passwort mal raus pusht. Und dann hab[br]ich die einfach mal eingespielt. Generell
0:26:26.659,0:26:29.710
ist es so, ich hab jetzt hier verschiedene[br]Terminal Windows auf, das kann man
0:26:29.710,0:26:34.779
natürlich noch alles vereinfachen, ganz[br]oben in der ersten Zeile sehen wir den
0:26:34.779,0:26:40.980
Access Point, dann den Moskito Server auf[br]der anderen Seite, hab ich ein HTTP-Server
0:26:40.980,0:26:46.011
gestartet auf dem mein Binary liegt und[br]ein Script, das mir alle Kommandos in
0:26:46.011,0:26:54.220
Realtime entschlüsselt. Dann gibt's noch[br]das bettercap, das eben die Anfragen
0:26:54.220,0:27:00.080
verändert und unten rechts sehen wir ein[br]Terminal, in dem wir eigentlich nur die
0:27:00.080,0:27:07.909
die seriellen Ausgaben der Lampe sieht und[br]die hab ich jetzt gestartet und danach
0:27:07.909,0:27:14.680
sende ich mit dem letzten Befehl unten[br]noch einfach mal den Trigger Request. Und
0:27:14.680,0:27:23.809
dann sollte man sehen wie die, ja genau[br]jetzt kommt der Request und jetzt kommen
0:27:23.809,0:27:29.080
überall Anfragen und die Lampe bootet neu[br]und es ist eine neue Firmware drauf, also
0:27:29.080,0:27:39.409
geht ganz schnell. Genau so jetzt ging es[br]um die Firmware, die draufgeht. Ich habe
0:27:39.409,0:27:44.570
euch gesagt, ich wollte ein Proof-of-[br]Concept machen von einem Trojaner. Was
0:27:44.570,0:27:48.279
macht der Trojaner? Ganz einfach, der[br]verbindet sich zu meinem eigenen Server
0:27:48.279,0:27:54.190
der irgendwo extern im Internet steht,[br]schickt die WLAN Credentials und öffnet
0:27:54.190,0:28:00.299
noch einen Reverse Tunnel über den ich[br]dann zurück in das lokale Netzwerk gehe.
0:28:00.299,0:28:04.340
Der agiert bei mir in meiner[br]Implementation einfach als HTTP oder Socks
0:28:04.340,0:28:10.799
Proxy, d.h. man kann einfach irgendeinen[br]Browser nehmen, gibt die von meinem
0:28:10.799,0:28:19.710
externen Server die IP-Adresse ein und den[br]Port und ist dann im lokalen Netzwerk des
0:28:19.710,0:28:25.260
Lampenbetreibers. Das Ganze war mir noch[br]sehr wichtig, dass es transparent ist,
0:28:25.260,0:28:30.659
d.h. der Nutzer der Lampe bekommt das[br]überhaupt nicht mit und die ganz normale
0:28:30.659,0:28:36.510
Lampenfunktion ist noch genauso gegeben[br]wie vorher. Hier habe ich auch eine kleine
0:28:36.510,0:28:42.799
Demo davon. Oben habe ich wieder das[br]Terminal der Lampe selbst; dann hab ich
0:28:42.799,0:28:48.370
mal auf meinem Server selbst einen Proxy[br]Forwarder, ist auch ein kleines Python
0:28:48.370,0:28:55.211
Script, und unten hab ich irgendwo im[br]Internet dann einen Rechner, das sehen wir
0:28:55.211,0:29:00.279
jetzt gleich. Dann hab ich einfach mal[br]eine IP-Abfrage gemacht. Genau. Jetzt
0:29:00.279,0:29:07.919
verbindet sich die Lampe zu meinem Server[br]und ich mache unten eine Abfrage der IP,
0:29:07.919,0:29:13.620
dass ist also die externe IP, ist in dem[br]Fall 213 irgendwas; jetzt mache ich das
0:29:13.620,0:29:22.639
Gleiche mit dem Proxy, genau da habe ich[br]jetzt einfach meinen eigenen Proxy noch
0:29:22.639,0:29:26.830
mit reingesetzt und sehe auf einmal dass[br]bei der Lampe selbst die Anfrage kommt und
0:29:26.830,0:29:33.419
auf einmal die lokale IP der Lampe[br]gesendet wird, und dann wollte ich noch
0:29:33.419,0:29:40.249
zum Test mal im internen Netzwerk was[br]zugreifen und habe jetzt einfach mal auf
0:29:40.249,0:29:47.639
fritz.box eine Abfrage gestellt und konnte[br]somit sehen dass in dem Netzwerk auch eine
0:29:47.639,0:29:56.259
Fritzbox drin ist. Also das heißt, man[br]kann mit dem Proxy nicht nur den Internet
0:29:56.259,0:30:01.610
Account des Opfers benutzen für Bot-Netze[br]und so weiter, oder für alles andere,
0:30:01.610,0:30:04.539
sondern man kann sich ja auch im lokalen[br]Netzwerk ganz einfach bewegen.
0:30:04.539,0:30:14.009
Applaus
0:30:14.009,0:30:21.440
Die große Frage ist: Warum ist es so[br]gefährlich? Es ist eigentlich so, man weiß
0:30:21.440,0:30:26.379
nie was in so einem Gerät drin steckt und[br]gerade auch dieser Button "Silent Upgrade"
0:30:26.379,0:30:31.289
hat mich sehr verwundern lassen und in[br]meinem Fall war es noch nicht einmal so,
0:30:31.289,0:30:35.640
dass dass zum Upgraden der Firmware der[br]Lampe irgendeine Bestätigung vom User
0:30:35.640,0:30:40.970
kommen musste oder so weiter. Das heißt[br]man, man bekommt es nicht mit und man kann
0:30:40.970,0:30:46.380
einfach Trojaner in irgendwelche Lampen[br]rein flashen und das halt auch im ganz
0:30:46.380,0:30:51.070
großen Bereich. Das heißt, wenn ich jetzt[br]20 000 Lampen verkauft hab, dann kann ich
0:30:51.070,0:30:56.149
einfach mich durch meine Web-Applikationen[br]klicken, lade das neue Binary mit dem
0:30:56.149,0:31:00.019
Trojaner hoch und gestern war es noch eine[br]sichere Lampe und morgen ist es einfach
0:31:00.019,0:31:04.990
der Trojaner und der Nutzer selbst bekommt[br]es einfach überhaupt nicht mit. Und, ja,
0:31:04.990,0:31:12.210
wie gesagt, ich habe das Flashen selbst[br]gemacht durch, durch Löten am Anfang, es
0:31:12.210,0:31:15.380
geht aber auch mit der ganz normalen Man-[br]in-the-Middle-Attack, oder der Cloud
0:31:15.380,0:31:22.629
Provider kann das einfach mit seinen ganz[br]normalen Tools jederzeit durchführen. Was
0:31:22.629,0:31:27.759
auch noch ein Thema war für mich, war[br]eben: Kann ich das Ding auch ohne Cloud
0:31:27.759,0:31:34.879
betreiben? Wenn ich jetzt so eine[br]Lampe zuhause hab, dann hab ich gedacht,
0:31:34.879,0:31:41.370
Ok, es gibt verschiedene Open Source[br]Software die auch sehr viele tolle
0:31:41.370,0:31:47.450
Funktionen haben sogar danach noch mehr[br]können und so weiter und der normale
0:31:47.450,0:31:52.289
Workflow, das zu flashen ist einfach dass[br]man wirklich die Lampe aufbricht und dann
0:31:52.289,0:31:57.299
die Kontakte anlötet und so weiter und da[br]hört bei den meisten Leuten auf. Jetzt
0:31:57.299,0:32:02.830
können wir aber auch mit der Methode wie[br]ich sie gezeigt habe natürlich auch eine
0:32:02.830,0:32:07.039
andere Firmware in die Lampe flashen um[br]sie eben ohne die Cloud betreiben zu
0:32:07.039,0:32:10.590
können. Und wie gesagt,ich werde es dann[br]auch veröffentlichen da kann dann jeder
0:32:10.590,0:32:19.809
damit machen was er möchte. Ja, zum Fazit.[br]Das Sicherheitslevel von diesen Geräten
0:32:19.809,0:32:26.820
ist tatsächlich minimal. Also es ist[br]wirklich so, dass alles was ich
0:32:26.820,0:32:33.460
probiert habe hat direkt funktioniert. Es[br]gab keinerlei Verschlüsselung von Daten
0:32:33.460,0:32:41.250
die in dem Gerät selbst abgelegt werden.[br]Die Firmware war weder signiert noch die
0:32:41.250,0:32:46.380
Updates waren signiert. Also ich kann[br]direkt Änderungen direkt daran machen. Die
0:32:46.380,0:32:52.059
Datenspeicherung ist unverschlüsselt und[br]die Datenübertragung war auch eigentlich
0:32:52.059,0:32:57.549
in den kritischsten Fällen[br]unverschlüsselt. Und da war, wo sie
0:32:57.549,0:33:06.039
verschlüsselt war es ja keine[br]Hürde. Das viel Erschreckendere jedoch ist
0:33:06.039,0:33:13.830
das große Datensammeln. Für mich ist es[br]völlig unklar warum der Hersteller und der
0:33:13.830,0:33:20.019
Reseller oder wer auch immer Zugriff auf[br]den Account hat, wissen muss wo genau
0:33:20.019,0:33:23.049
diese Lampe sich befindet und das war[br]wirklich so, dass die GPS-Koordinaten die
0:33:23.049,0:33:28.110
waren über das Handy ermittelt, bei der[br]Registrierung. Aber die waren sehr genau
0:33:28.110,0:33:34.080
und ich habe quasi den Schreibtisch an dem[br]ich gesessen habe quasi in den Koordinaten
0:33:34.080,0:33:40.020
wiedergefunden und da sehe ich keinen[br]Grund dafür. Und es ist natürlich auch
0:33:40.020,0:33:46.320
erschreckend wer alles darauf Zugriff hat.[br]Die Datenweitergabe und -Speicherung ist
0:33:46.320,0:33:53.679
auch äußerst undurchsichtig. Also es wird[br]zwar teilweise gesagt, dass die Daten mit
0:33:53.679,0:33:58.749
auch in Deutschland gehostet werden aber[br]auch jederzeit nach Fernost übertragen
0:33:58.749,0:34:04.730
werden können. Und wer wirklich darauf[br]Zugriff hat, das weiß natürlich keiner und
0:34:04.730,0:34:15.540
ist auch nicht bekannt. Und. Ja. Das große[br]Problem für mich ist, dass es die
0:34:15.540,0:34:19.360
einfachsten Verbrauchsgegenstände, weil[br]eine Glühbirne ist ja wirklich eigentlich
0:34:19.360,0:34:26.580
nur dazu da ein bisschen Licht zu machen,[br]und für mich vergleichbar zu Klopapier ein
0:34:26.580,0:34:31.000
einfacher Verbrauchsgegenstand. Und jetzt[br]wird nach und nach alles Smart und wenn
0:34:31.000,0:34:36.880
selbst so kleine Geräte, die so normal für[br]uns alle sind, weil jeder hat eine
0:34:36.880,0:34:40.640
Glühbirne zuhause, auf einmal smart sein[br]müssen dann bringt man natürlich auch
0:34:40.640,0:34:44.990
viele Gefahren mit in seinen eigenen[br]Haushalt. Und den meisten Leuten ist es
0:34:44.990,0:34:48.990
einfach nicht bewusst weil sie denken: Ok.[br]Wenn jemand die Glühbirne hackt, was will
0:34:48.990,0:34:54.590
er machen? Das Licht an-ausschalten? Aber[br]die tatsächliche Konsequenz ist natürlich
0:34:54.590,0:35:03.560
ganz anders, dass auf einmal das komplette[br]lokale Netzwerk von außen offen ist und
0:35:03.560,0:35:09.620
auch auf private Daten und so weiter zu[br]zugegriffen werden kann. Das einzig
0:35:09.620,0:35:14.310
Positive jedoch aus dem, aus meinen[br]Erkenntnissen ist eben, dass man die
0:35:14.310,0:35:19.600
Hersteller-Cloud doch recht gut abschalten[br]kann. Das zeigt aber auch wieder, dass es
0:35:19.600,0:35:23.720
eigentlich überhaupt nicht notwendig ist,[br]weil man kann die Lampe mit den anderen
0:35:23.720,0:35:27.910
Firrmwaren noch viel besser benutzen und[br]so weiter, ohne dass eben diese Daten
0:35:27.910,0:35:33.350
gespeichert werden. Und eigentlich ist es[br]von meiner Seite ein Appell an die IoT-
0:35:33.350,0:35:39.400
Hersteller eben, dass diese gute Technik[br]und schöne Technik und bequeme Technik den
0:35:39.400,0:35:45.410
Usern bereitzustellen ohne diese ganzen[br]Daten zu sammeln. Und wenn der Anbieter zu
0:35:45.410,0:35:52.200
mir sagt: "it is avoidless", auf die Frage[br]ob die Daten denn nicht gespeichert werden
0:35:52.200,0:36:01.160
können, ist es tatsächlich eine Lüge und[br]auch nicht, ja, notwendig. Ja. Ich habe
0:36:01.160,0:36:08.630
schon angekündigt, ich werde noch weitere[br]Infos auf der, auf unserer Website zum
0:36:08.630,0:36:14.750
Download bereit geben. Unter anderem halt[br]auch Skripte mit denen man dann andere
0:36:14.750,0:36:17.743
Firmware auf solche Geräte flashen kann
0:36:17.743,0:36:21.040
und bin leider noch nicht dazu [br]gekommen das alles fertig
0:36:21.040,0:36:29.070
zu machen aber das wird in Kürze folgen.[br]Ja, jetzt sind wir beim Fragenteil
0:36:29.070,0:36:36.690
angekommen und ich glaube jetzt kommt[br]jemand auch auf die Bühne zum Fragen.
0:36:36.690,0:36:48.133
Applaus
0:36:48.133,0:36:54.620
Herald: Ja, vielen lieben Dank Micha. Ich[br]bin immer noch beunruhigt und fühle mich
0:36:54.620,0:37:00.100
überhaupt nicht Military-Grade-Irgendwas.[br]Frage an den jungen Mann oder den jungen
0:37:00.100,0:37:06.040
Besucher der vorhin die Lampe bekommen[br]hat. Willst du sie noch behalten? Bist du
0:37:06.040,0:37:13.140
sicher? Okay, gut. Haben wir denn Fragen?[br]Geht schon los. Fangen wir da an.
0:37:13.140,0:37:18.280
Mikro 2 bitte.[br]Mikro 2: Ist MQTT jetzt verschlüsselt,
0:37:18.280,0:37:20.490
oder nicht ? Ich habe es nicht ganz[br]verstanden.
0:37:20.490,0:37:25.540
Michael: MQTT ist verschlüsselt. Ist mit[br]AES verschlüsselt und mit dem Local-Key,
0:37:25.540,0:37:29.570
den man über den HTTP Befehl in Klartext[br]angezeigt bekommt.
0:37:29.570,0:37:35.430
Gelächter[br]Herald: Dankeschön. Wir machen gleich bei
0:37:35.430,0:37:41.080
Dir weiter. Ihr mommt dann als nächster.[br]Deine Frage bitte.
0:37:41.080,0:37:44.880
Mikrofon: Wie lösen die alternativen[br]Firmwares [unverständlich] Problem von dem
0:37:44.880,0:37:49.570
Klartextpassword fürs WLAN?[br]Michael: Um ehrlich zu sein habe ich da
0:37:49.570,0:37:52.470
nicht weiter geschaut. Ich habe nur..[br]Dadurch dass es Open-Source ist kann
0:37:52.470,0:37:59.200
natürlich jeder da reinprogrammieren was[br]er möchte und hat da volle Kontrolle. Und
0:37:59.200,0:38:02.610
ob das jetzt in Klar abgespeichert wird[br]oder nicht kann ich jetzt nicht direkt sagen.
0:38:02.610,0:38:10.974
Herald: Okay, vielen Dank. [br]So, nächste Frage, Mikro 1 bitte.
0:38:10.974,0:38:14.020
Mikro 1: Wenn die Lampen so populär sind
0:38:14.020,0:38:19.850
könnte man nicht eine Stiftung haben die[br]zehn Millionen Lampen verkauft auf denen
0:38:19.850,0:38:24.740
wir dann zehn Millionen Tor-Exit-Nodes[br]laufen lassen?
0:38:24.740,0:38:33.140
Gelächter & Applaus
0:38:33.140,0:38:35.060
Michael: Das ist natürlich eine sehr
0:38:35.060,0:38:40.420
interessante Idee und man kann da noch[br]viel mehr damit machen. Theoretisch könnte
0:38:40.420,0:38:44.970
man auch sagen, man macht nur einen[br]Katalog aus verschiedenen Firmwaren die
0:38:44.970,0:38:47.830
für verschiedene Modelle eben[br]funktionieren und macht da eben solche
0:38:47.830,0:38:53.730
Sachen mit rein. Und dann könnte man das[br]sehr gut betreiben wobei aber die ja die
0:38:53.730,0:38:58.880
Power oder die CPU Power doch sehr[br]limitiert ist.
0:38:58.880,0:39:08.790
Herald: Ok, Ich denke mal wir nehmen jetzt die[br]nächste Frage Mikro 1 nochmal.
0:39:08.790,0:39:14.380
Mikro 1: Du hattest am Anfang des Vortrags[br]gesagt, das ist ein sehr bekannter und
0:39:14.380,0:39:18.700
namhafter Hersteller, was allein die[br]Cloud-Plattform und die Dashboards
0:39:18.700,0:39:23.220
hergegeben haben. Kannst du uns vielleicht[br]ein bisschen mehr dazu sagen welche
0:39:23.220,0:39:27.020
Produkte der Hersteller noch herstellt und[br]verkauft außer von Glühbirnen.
0:39:27.020,0:39:31.400
Michael: Also es gibt wirklich alles. Es[br]ist nicht ein Hersteller das ist eben
0:39:31.400,0:39:34.910
genau das Schlimme daran deswegen kann man[br]ja auch nicht einfach so nennen das sind
0:39:34.910,0:39:38.250
10000 verschiedene Hersteller die eben[br]genau diese Technologie einfach einsetzen
0:39:38.250,0:39:44.090
und die sind wirklich weltweit überall das[br]heißt es gibt deutsche Hersteller, die
0:39:44.090,0:39:47.260
diese Technologie benutzen und man denkt[br]man kauft ein deutsches Produkt.
0:39:47.260,0:39:53.500
Tatsächlich steckt aber das drin. Und[br]Produkte gibts auch alles. Ich habe von
0:39:53.500,0:40:00.170
Küchengeräten, Kühlschränke und so weiter.[br]Der Hersteller nennt 30 verschiedene
0:40:00.170,0:40:05.440
Kategorien. Es ist tatsächlich fast[br]überall drin. Für mich war die Glühbirne
0:40:05.440,0:40:10.690
das einfachste und auch diese elektrischen[br]Steckdosen weil sie einfach sehr populär
0:40:10.690,0:40:16.730
sind und überall eingesetzt werden.[br]Herald: Ich würde jetzt gern mit Mikro
0:40:16.730,0:40:21.510
Nummer 3 weitermachen da stehen nämlich[br]auch schon zwei Leute. Ihre Frage bitte.
0:40:21.510,0:40:26.571
Mikro 3: Die Frage ist ob ihr auch die[br]Shelleys angeguckt hat. Haben ja diese
0:40:26.571,0:40:32.070
Jumperkabelansteckmöglichkeit aber die[br]haben auch die Cloud ausgeschaltet. Weißt
0:40:32.070,0:40:36.180
Du da was zu?[br]Michael: Nee, das weiß ich nicht aber ich
0:40:36.180,0:40:41.610
weiß auch nicht ob die von Haus aus diese[br]Cloud benutzen. Hab ich nicht gemacht. Ich
0:40:41.610,0:40:47.690
glaube dass es einfach nur eine Open-[br]Source Hardware ist auf der jetzt nichts
0:40:47.690,0:40:53.390
von dem Anbieter selbst läuft.[br]Herald: Ok danke, dann nehmen wir das
0:40:53.390,0:40:59.990
nächste Mikro Nr. 2 bitte.[br]Mikro 2: Ich bin kein Programmierer, meine
0:40:59.990,0:41:04.710
Nächte werden deswegen aber auch nicht[br]besser und deswegen meine Frage einmal
0:41:04.710,0:41:08.820
raus in die Welt an die Bildschirme,[br]welchen Tipp gibst du? Nicht im fernen
0:41:08.820,0:41:13.360
Osten kaufen? Nur Markenware?[br]Michael: Es ist natürlich relativ
0:41:13.360,0:41:18.520
schwierig was zu nennen weil man weiß[br]natürlich nie was drin steckt und wie ich
0:41:18.520,0:41:24.100
gesagt habe es gibt auch deutsche[br]Hersteller die das benutzen. Ich hab mir
0:41:24.100,0:41:28.960
die Konkurrenzprodukte noch nicht[br]angeschaut und kann deswegen auch nicht
0:41:28.960,0:41:32.840
sagen was man kaufen soll aber für mich[br]ist natürlich auch ein Tipp eigene
0:41:32.840,0:41:37.700
Firmware zu verwenden und auch namhafte[br]Hersteller weil die ganz andere Sachen zu
0:41:37.700,0:41:44.700
verlieren haben. Also wenn jetzt eine[br]kleine Firma aus Fernost die machen
0:41:44.700,0:41:48.320
einfach unter verschiedenen Namen Firmen[br]auf und danach ist es egal ob da
0:41:48.320,0:41:53.520
irgendwelche Hacks oder Sachen rauskommen.[br]Wenn da große Namen hinten dran stehen ist
0:41:53.520,0:42:00.150
das natürlich eine andere Sache. Deswegen[br]lieber was mit einem bekannten Namen kaufen.
0:42:00.150,0:42:05.540
Herald: Ok, danke. Ich sehe ein Licht. Ein[br]Licht sagt mir das Internet hat ne Frage.
0:42:05.540,0:42:08.122
Lieber Signalengel.
0:42:08.122,0:42:11.710
Signalengel: Ja die Frage: Welche[br]Alternative zur Klartextablage des Wlan-
0:42:11.710,0:42:15.760
Passworts bzw. des relevanten Schlüssels[br]siehst du?
0:42:15.760,0:42:21.060
Michael: Naja, in Wirklichkeit rausfinden[br]tut mans immer das ist mir auch bewusst
0:42:21.060,0:42:25.650
aber es muss natürlich nicht so obvious[br]sein weil wenn man wirklich nur das Binary
0:42:25.650,0:42:31.170
ausliest und danach den Klartext Schlüssel[br]hat dann ist es natürlich sehr verdächtig
0:42:31.170,0:42:35.250
und man findet schon beim Durchscrollen[br]durchs Binary oder wenn man einfach
0:42:35.250,0:42:41.310
strings eingibt. Wenn man alleine nur was[br]drüber xored hätte wäre es schon nicht so
0:42:41.310,0:42:47.830
auffällig wie es tatsächlich wirklich ist.[br]Herald: Ok, Dankeschön. Ich nehme erst mal
0:42:47.830,0:42:51.920
das Mikro Nr. 7. Da wartet schon jemand[br]länger. Die Frage bitte.
0:42:51.920,0:42:55.310
Mikro 7: Ja das ist jetzt fast eher eine[br]Anmerkung. Zudem...
0:42:55.310,0:42:58.670
Herald: Das tut mir leid aber wir nehmen[br]leider keine Anmerkungen. Wenn du eine
0:42:58.670,0:43:02.690
Frage hast dann melde dich bitte mit einer[br]Frage. Kommentare möchten wir bitte nicht.
0:43:02.690,0:43:06.680
Dankeschön. Dann Mikro Nummer 8.[br]Bitteschön, danke.
0:43:06.680,0:43:12.980
Mikro 8: Der MQTT-Request geht ja direkt[br]an den Cloudhersteller oder?
0:43:12.980,0:43:18.920
Michael: Genau, also die MQTT ist im[br]Endeffekt das Protokoll das verwendet wird
0:43:18.920,0:43:24.050
um aus dem Internet ins lokale Netzwerk zu[br]kommen und da wird quasi ein MQTT Tunnel
0:43:24.050,0:43:29.681
aufgestellt und es gibt ein Topic das[br]quasi subscribed wird von der Lampe selbst
0:43:29.681,0:43:34.590
wo es quasi Befehle annimmt. Und einer der[br]verwendet wird um Publishes zu machen wo
0:43:34.590,0:43:40.140
Statusmeldung rausgehen.[br]Herald: Ok danke, wir haben noch eine
0:43:40.140,0:43:44.550
Frage auf der 5, die wartet schon[br]länger, Bitteschön.
0:43:44.550,0:43:50.080
Mikro 5: Danke sehr, gibt es irgendwelche[br]Einschränkungen wenn ich ein Internet of
0:43:50.080,0:43:53.300
Things WLAN aufbaue mit sehr[br]eingeschränktem Internetzugang?
0:43:53.300,0:44:01.250
Michael: Es ist tatsächlich möglich auch[br]mit der Firmware die drauf ist einen
0:44:01.250,0:44:04.730
lokalen Betrieb zu machen. Ich glaube[br]nicht mit allen Geräten die ich getestet
0:44:04.730,0:44:12.810
habe, aber die Lampe ist noch auf dem Port[br]6668 offen; nimmt da sehr ähnliche Befehle
0:44:12.810,0:44:19.300
an und man kann sie quasi auch damit[br]selbst steuern. Auch mit dem selben local
0:44:19.300,0:44:23.780
key werden die Daten dann verschlüsselt[br]und das heißt ist es auch möglich wenn man
0:44:23.780,0:44:28.710
der Lampe selbst das Internet abstellt die[br]lokal mit dem Handy zu steuern.
0:44:28.710,0:44:36.330
Herald: Ok, Dankeschön. Ich würde sagen[br]drei Fragen machen wir noch.
0:44:36.330,0:44:38.630
Michael: ja gerne.[br]Herald: Ok, dann hier vorne die 1 bitte.
0:44:38.630,0:44:42.870
Mikro 1: Hast du dir angeschaut wie die[br]Sicherheit auf der Serverseite von diesem
0:44:42.870,0:44:47.050
Cloud-Anbieter ist. Also ob man da was[br]machen kann, ob man in die Daten von
0:44:47.050,0:44:52.130
Fremdgeräten kommt und ob man[br]potentiell über das MQTT mit fremden
0:44:52.130,0:44:55.900
Devices sprechen kann.[br]Michael: Also ich hab mal probiert einen
0:44:55.900,0:44:59.900
MQTT zu einem anderen Device zu schicken.[br]Das hat nicht funktioniert aber ich habe
0:44:59.900,0:45:05.620
auch nicht weiter geschaut, also nicht so[br]genau und auch nicht probiert um
0:45:05.620,0:45:09.440
irgendwelche Accounts zu kapern.[br]Mikro 1: Danke.
0:45:09.440,0:45:14.040
Herald: Ok, wir haben dann ein bisschen[br]Zeit. Deswegen wir machen noch ein paar
0:45:14.040,0:45:18.330
Fragen mehr wenn Dir das recht ist[br]Michael. Ok, dann würde ich jetzt den
0:45:18.330,0:45:19.880
Signalengel nochmal einen leuchten[br]lassen.
0:45:19.880,0:45:25.380
Signalengel: Die Frage was wäre in der[br]Praxis Update best practices für IOT-
0:45:25.380,0:45:30.470
Devices? Wenn du Autoupdates machst bist[br]du angreifbar, wenn du keine Autoupdates
0:45:30.470,0:45:34.660
machst bist du nie gepatched.[br]Michael: Ja also eigentlich ist das eine
0:45:34.660,0:45:40.570
sehr schwere Frage weil man wirklich das[br]schlecht realisieren kann aber trotzdem
0:45:40.570,0:45:45.070
denke ich dass es Möglichkeiten gibt wo[br]dann zum Beispiel das Update von der App
0:45:45.070,0:45:50.011
kommt und die dann so ist dass der User[br]definitiv Kontrolle darüber hat und das
0:45:50.011,0:45:55.410
auch mitbekommt. Natürlich ist es immer[br]eine Implementationsache und relativ
0:45:55.410,0:46:00.520
schwierig Updates anzubieten für solche[br]Geräte.
0:46:00.520,0:46:07.740
Herald: Ok, ich glaube Mikro 7 ist noch[br]jemand. Deine Frage bitte.
0:46:07.740,0:46:09.920
Mikro 7: Es war die gleiche Frage.[br]Michael: Ja okay.
0:46:09.920,0:46:14.110
Herald: Es war die gleiche Frage ok dann[br]Mikro 8.
0:46:14.110,0:46:18.641
Michael: Ich glaub da vorne im Eck sind[br]noch ganz viele.
0:46:18.641,0:46:19.760
Lachen[br]Herald: Hat jemand aufgegeben. Okay es
0:46:19.760,0:46:23.040
blinkt noch, hab ich das richtig gesehen?[br]Michael: Ja, hier vorne.
0:46:23.040,0:46:30.450
Herald: Ah ok, die 3 Bitteschön, danke.[br]Mikrofon 3: Thank you, so this cleartext
0:46:30.450,0:46:37.690
local key of HTTP how often is it sent?[br]Only the first time or does it send more
0:46:37.690,0:46:40.750
often?[br]Michael: This is basically only during the
0:46:40.750,0:46:49.900
registration but there's more clear[br]messages. I mean HTTP in general is not
0:46:49.900,0:46:57.590
encrypted when the cloud sends something[br]to the bulb. But the keys are only
0:46:57.590,0:47:07.250
transmitted during activation.[br]Herald: Ok, vielen Dank. Wir haben da noch
0:47:07.250,0:47:16.090
ein Licht. Deine Frage bitte noch.[br]Signalangel: Ist der Sprecher bereits
0:47:16.090,0:47:26.464
einem sicheren IOT-Gegenstand begegnet?[br]Michael: Vielleicht aber nicht meines Wissens.
0:47:26.464,0:47:34.621
Lachen & Applaus
0:47:34.621,0:47:36.360
Herald: Mikro 3 Bitteschön.
0:47:36.360,0:47:44.190
Mikro 3: Gibt es Anzeichen dass die Daten[br]der User verkauft werden? Und wenn nein
0:47:44.190,0:47:48.780
wie leicht könnte man das rauskriegen?[br]Also ich denke an einen Talk den es hier Mal
0:47:48.780,0:47:54.210
gab, der hieß build your own NSA. Da[br]hat ne Fakefirma die Daten versucht zu
0:47:54.210,0:47:59.320
kaufen. Also das wär ja möglich.[br]Michael: Also alles was ich jetzt sagen
0:47:59.320,0:48:03.930
würde wär Spekulation und das will ich[br]eigentlich nicht, aber es ist sehr
0:48:03.930,0:48:08.610
auffällig wie viel Geld hinter den Firmen[br]steckt und wie viele Geräte sie verkaufen
0:48:08.610,0:48:14.030
und irgendwie geht bei mir die Mathematik[br]nicht auf. Und es geht für mich um mehr
0:48:14.030,0:48:18.040
Geld als man mit solchen Geräten verdienen[br]kann. Aber wie gesagt es ist alles
0:48:18.040,0:48:21.930
Spekulation und dazu kann ich dann weiter[br]nichts sagen.
0:48:21.930,0:48:24.140
Herald: Wär doch mal eine gute Idee für[br]einen neuen Talk.
0:48:24.140,0:48:25.830
Michael: Ja.[br]Herald: Vielleicht mag das ja mal jemand
0:48:25.830,0:48:28.900
eruieren. Eine Frage haben wir noch an der[br]7. Bitteschön.
0:48:28.900,0:48:35.150
Mikro 7: Bin ich richtig in der Annahme[br]dass Zigbee-Geräte nicht betroffen sind?
0:48:35.150,0:48:44.040
Michael: Das kommt drauf an ob der Zigbee-[br]Server der es dann ans Internet ankuppelt
0:48:44.040,0:48:49.310
damit betroffen ist. Weil das gibt's[br]natürlich auch, also wenn die Bridge
0:48:49.310,0:48:55.450
selbst diese Technologie z.B. benutzt dann[br]ist es das gleiche Spiel weil dann ist das
0:48:55.450,0:49:01.250
Opfer nicht mehr die Glühbirne selbst[br]sondern die Bridge.
0:49:01.250,0:49:06.120
Herald: Mmh. Mikro 1 haben wir noch eine[br]Frage. Bitteschön.
0:49:06.120,0:49:09.681
Mikro 1: Ich hätte eine kleine Frage zu[br]dem smartconfig. Bei dem smartconfig ist
0:49:09.681,0:49:14.010
es ja so das die Konfiguration über SSID[br]usw. zu dem IOT device geschickt wird.
0:49:14.010,0:49:16.500
Michael: Ja.[br]Mikro 1: Inwiefern kann ich einfach in,
0:49:16.500,0:49:22.100
sagen wir mal, einem großen Wohnblock[br]einfach selber ein Expressif-Gerät
0:49:22.100,0:49:25.360
simulieren und die Informationen abgreifen[br]die das dann rumschickt.
0:49:25.360,0:49:30.320
Michael: Man muss das gar nicht groß[br]simulieren weil das Protokoll ist ja auch
0:49:30.320,0:49:37.700
sehr offen und im Endeffekt ist es sehr[br]einfach diese Aktivierungsprozesse
0:49:37.700,0:49:42.660
mitzuhören und im Klartext auszugeben. Das[br]heißt man kann einfach die WLAN
0:49:42.660,0:49:45.550
Zugangsdaten und auch den Token sehr sehr[br]einfach entschlüsseln.
0:49:45.550,0:49:51.870
Herald: Ok, wir haben noch eine Frage aus[br]dem Internet. Bitte noch die Frage stellen
0:49:51.870,0:49:54.180
Signalengel.[br]Signalengel: Entschuldigung, nein keine
0:49:54.180,0:49:57.810
weitere Frage aus dem Internet.[br]Herald: Ok, dann würde ich sagen wir haben
0:49:57.810,0:50:02.190
auf der 1 noch eine Frage und dann kann[br]man auch langsam Schluss machen. Deine
0:50:02.190,0:50:04.940
Frage bitte.[br]Mikro 1: Es wurde ja gesagt das es auch
0:50:04.940,0:50:10.030
deutsche Anbieter gibt die diesen Service[br]nutzen. Ist es denn überhaupt legal nach
0:50:10.030,0:50:13.940
deutschem Datenschutzrecht, jetzt auf[br]diesem Recht auf das Löschen von Daten.
0:50:13.940,0:50:18.210
Michael: Also ich bin kein Fachmann was[br]das angeht. Mein Kollege hat sich damit
0:50:18.210,0:50:26.400
ein bisschen mehr beschäftigt im Laufe[br]des.. also als ich die ganzen Sachen
0:50:26.400,0:50:31.960
analysiert habe und vielleicht kriege ich[br]ihn ja noch dazu ermuntert das er auch
0:50:31.960,0:50:36.310
noch einen Talk darüber hält. Weil da[br]gibt's wirklich viele Sachen und ich
0:50:36.310,0:50:40.250
glaube auch da kann man sehr sehr lange[br]und sehr viel drüber sprechen weil da sehr
0:50:40.250,0:50:43.290
groteske Sachen auch mit den[br]Datenschutzbestimmungen stehen.
0:50:43.290,0:50:48.440
Herald: Klingt nach einem interessanten[br]Follow up. Ok.
0:50:48.440,0:50:50.500
Applaus
0:50:50.500,0:50:51.607
Herald: Das ist Dein Applaus
0:50:51.607,0:50:58.470
Applaus
0:50:58.470,0:51:18.010
35c3 closing music plays
0:51:18.010,0:51:22.000
Untertitel erstellt von c3subtitles.de[br]im Jahr 2020. Mach mit und hilf uns!