-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcamp2023-57158-eng-Vacuum_robot_security_and_privacy_opus.vtt
3848 lines (2565 loc) · 98.7 KB
/
camp2023-57158-eng-Vacuum_robot_security_and_privacy_opus.vtt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
WEBVTT
00:00:00.000 --> 00:00:10.000
[MUSIC]
00:00:10.000 --> 00:00:20.000
[MUSIC]
00:00:20.000 --> 00:00:33.000
All right, good evening again, everybody.
00:00:33.000 --> 00:00:34.560
How's everybody doing tonight?
00:00:34.560 --> 00:00:35.560
>> [APPLAUSE]
00:00:35.560 --> 00:00:38.160
>> Yay, wonderful.
00:00:38.160 --> 00:00:41.360
However, I must tell you, it's already day four.
00:00:41.360 --> 00:00:43.240
>> [APPLAUSE]
00:00:43.240 --> 00:00:44.840
>> But to cheer us up,
00:00:44.840 --> 00:00:48.200
we have a great last talk for today here at Millieways.
00:00:48.200 --> 00:00:51.560
By the way, the Fettyverse hashtag, as always,
00:00:51.560 --> 00:00:55.120
is #cccamp23millerways.
00:00:55.120 --> 00:00:58.600
And who here in the crowd owns a vacuum robot?
00:00:58.600 --> 00:01:01.440
>> [APPLAUSE]
00:01:01.440 --> 00:01:05.160
>> I would say not great, not terrible.
00:01:05.160 --> 00:01:09.400
But wow, I didn't expect that from a hacker crowd.
00:01:09.400 --> 00:01:13.280
So then, especially for those of you who own one, the next talk is for you.
00:01:13.280 --> 00:01:17.720
In the next 45 minutes, our speaker, Dennis Gieser,
00:01:17.720 --> 00:01:22.400
will tell us all the latest news about vacuum robots, their security, and
00:01:22.400 --> 00:01:25.320
their privacy issues, so that hopefully in the end,
00:01:25.320 --> 00:01:27.840
your robot will not suck your data.
00:01:27.840 --> 00:01:30.360
Please give a warm welcome to Dennis and enjoy the talk.
00:01:30.360 --> 00:01:36.600
>> [APPLAUSE]
00:01:36.600 --> 00:01:39.440
>> All right, welcome to my talk.
00:01:39.440 --> 00:01:42.640
Thank you very much for being here at this late time.
00:01:42.640 --> 00:01:44.200
It's great that you had four days of camp.
00:01:44.200 --> 00:01:48.200
I mean, I came a little bit late because I had some stuff to do.
00:01:48.200 --> 00:01:51.600
But it's kind of great here, except for a little bit warm.
00:01:51.600 --> 00:01:57.000
So my talk today is kind of like an update about making robots security and
00:01:57.000 --> 00:02:02.280
privacy, and I know people think, wait, that's always the same topic every two
00:02:02.280 --> 00:02:06.960
years, but I mean, there's a lot of development, so let's do a quick update.
00:02:06.960 --> 00:02:14.400
So for people who don't know me, which is the slides are kind of a little broken.
00:02:14.400 --> 00:02:19.000
I'm a PhD student at Northeastern University, and
00:02:19.000 --> 00:02:23.240
primarily my research field is in wireless and embedded security and privacy.
00:02:24.760 --> 00:02:28.720
I think due to the amount of many, many robots, vacuum robots which I have,
00:02:28.720 --> 00:02:32.280
I can call myself a vacuum robot collector.
00:02:32.280 --> 00:02:36.480
So I think nowadays something like 45 robots.
00:02:36.480 --> 00:02:40.760
And I have interest in the reverse engineering of interesting devices.
00:02:40.760 --> 00:02:43.760
And this can be anything, I mean robots obviously, but
00:02:43.760 --> 00:02:48.880
I've also like smart speakers, look at flash memory and other things.
00:02:48.880 --> 00:02:52.960
Let me quickly ask this to format kind of weird, a little bit.
00:02:52.960 --> 00:02:58.040
Is it my laptop?
00:02:58.040 --> 00:03:04.600
>> It's your laptop.
00:03:04.600 --> 00:03:07.600
>> Okay, let me fix that maybe real quick.
00:03:07.600 --> 00:03:20.000
How many security experts do we need to fix issues?
00:03:20.000 --> 00:03:20.760
Okay.
00:03:20.760 --> 00:03:22.600
>> How many laptops?
00:03:22.600 --> 00:03:24.600
>> Yeah, the laptop, it should be 6 x 8.
00:03:24.600 --> 00:03:34.600
[BLANK_AUDIO]
00:03:52.800 --> 00:03:54.640
>> Okay, great.
00:03:54.640 --> 00:03:57.320
All right, perfect.
00:03:57.320 --> 00:03:59.040
Working with experts, that's great.
00:03:59.040 --> 00:04:03.200
Okay, so like I said, I am interested in vacuum robot smart speakers and
00:04:03.200 --> 00:04:05.920
all other interesting IoT devices.
00:04:05.920 --> 00:04:10.960
Some of my recent work is, some time ago I was looking at Amazon's smart speakers,
00:04:10.960 --> 00:04:15.760
like EchoDots, and I bought 86 used EchoDots from eBay,
00:04:15.760 --> 00:04:18.000
from other sources like Kleinenzeig in Germany.
00:04:18.000 --> 00:04:22.320
I was doing some forensics, and let's say it was very bad news for Amazon.
00:04:22.320 --> 00:04:26.600
So if you have used IoT devices, don't sell them, or
00:04:26.600 --> 00:04:29.120
bad people like me might buy them.
00:04:29.120 --> 00:04:33.000
Some other recent projects, I do a lot of flash forensics.
00:04:33.000 --> 00:04:36.440
For example, on the left you see like the Pixel Watch, but
00:04:36.440 --> 00:04:39.800
I look at embedded devices and see what kind of data I can extract from flash
00:04:39.800 --> 00:04:42.680
memory, but also look at flash memory itself.
00:04:42.680 --> 00:04:46.880
Surprisingly, a lot of flash memories have their own processor on them, and
00:04:46.880 --> 00:04:49.760
you can hack the flash from there to maybe do malicious things.
00:04:49.760 --> 00:04:52.640
So this is kind of like a current research project of me.
00:04:52.640 --> 00:04:55.480
Another thing which I run is robotinfo.dev,
00:04:55.480 --> 00:05:00.640
which is basically a website where I do a systematic analysis of robots.
00:05:00.640 --> 00:05:02.360
For example, which operations system they're running,
00:05:02.360 --> 00:05:05.200
what kind of sensors they have, if they have vulnerabilities or not.
00:05:05.200 --> 00:05:10.240
The primary focus of that site is more or less to look at security and privacy.
00:05:10.240 --> 00:05:14.520
And what I use it also for, kind of like in the back end,
00:05:14.520 --> 00:05:15.680
to track for the changes.
00:05:15.680 --> 00:05:17.520
So basically every time there's a new firmware update,
00:05:17.520 --> 00:05:22.120
there's an automatic process which downloads it, extracts it, and compares it.
00:05:22.120 --> 00:05:24.320
So we kind of get an idea of what the vendors are doing.
00:05:24.320 --> 00:05:29.920
One of the sources how I get all this information is basically by buying
00:05:29.920 --> 00:05:33.440
devices, disassembling them, and kind of start to emulate them.
00:05:33.440 --> 00:05:38.240
So I have something like 50 or 60 emulated vacuum robots,
00:05:38.240 --> 00:05:41.240
which are kind of behaving like real robots to the clouds and kind of just look
00:05:41.240 --> 00:05:43.560
like, okay, do we get pushed firmware updates?
00:05:43.560 --> 00:05:44.280
Is there anything new?
00:05:45.360 --> 00:05:48.080
But also on the other side, what we do is we take a look at the app.
00:05:48.080 --> 00:05:50.600
So we decompile the app and look if anything changes.
00:05:50.600 --> 00:05:53.760
This is also the basis for further research.
00:05:53.760 --> 00:05:56.400
I mean, for example, right now I'm working on machine learning models and
00:05:56.400 --> 00:05:57.000
some other things.
00:05:57.000 --> 00:06:01.480
By the way, the rack, which you see there is one of my few racks of robots.
00:06:01.480 --> 00:06:07.760
So I keep a set of robots from basically a reference model from each of the models
00:06:07.760 --> 00:06:09.960
which we support for routing.
00:06:09.960 --> 00:06:12.160
And every time there's a new firmware update or if I need to check something,
00:06:12.160 --> 00:06:16.080
I just go to the rack and just grab one and test the things which I need to test and
00:06:16.080 --> 00:06:17.720
just put it back.
00:06:17.720 --> 00:06:21.840
Which also means, and I get this question quite often also on Twitter or X,
00:06:21.840 --> 00:06:26.800
or via email like, hey, I want to buy a vacuum robot, which cleans the best?
00:06:26.800 --> 00:06:29.400
I have no idea.
00:06:29.400 --> 00:06:33.080
I root those devices, but I mean, I'm not actually using them except for one which
00:06:33.080 --> 00:06:37.320
I use and it does the job good enough, so I have no idea.
00:06:37.320 --> 00:06:40.360
So don't ask me which one is the best for cleaning X, Y, and Z.
00:06:41.400 --> 00:06:44.400
All right, so what is the goal of this talk?
00:06:44.400 --> 00:06:47.720
Well, I want to give you an overview over the development of the vacuum robot
00:06:47.720 --> 00:06:50.160
hacking over the last five years.
00:06:50.160 --> 00:06:53.840
And I want to give you some idea about vulnerabilities and
00:06:53.840 --> 00:06:55.840
backdoors which exist today.
00:06:55.840 --> 00:07:00.080
And give you some understanding about which routing methods we have.
00:07:00.080 --> 00:07:04.520
The ultimate goal typically which I have is to get root access onto a device with
00:07:04.520 --> 00:07:05.440
all this assembly.
00:07:05.440 --> 00:07:10.520
Sometimes it works, sometimes it doesn't work, but we try our best to find ways and
00:07:10.520 --> 00:07:12.280
sneak ways around to kind of get root access.
00:07:12.280 --> 00:07:20.920
As a side note, generally we have some, I mean,
00:07:20.920 --> 00:07:23.840
me and the vendors don't hate each other necessarily, but
00:07:23.840 --> 00:07:26.320
the thing is we have a very competitive kind of setting.
00:07:26.320 --> 00:07:28.840
So every time they fix something, we fix something, and
00:07:28.840 --> 00:07:30.520
it's kind of like always competitive thing.
00:07:30.520 --> 00:07:33.440
So I know, for example, when I was giving this talk at DefCon, but
00:07:33.440 --> 00:07:37.440
they were watching live and right now we're probably working on firmware updates.
00:07:37.440 --> 00:07:43.000
So yeah, so some of the devices which are covered in this talk,
00:07:43.000 --> 00:07:46.880
they are the current Roborock vacuum robots.
00:07:46.880 --> 00:07:49.320
Some of them just came out kind of very recently.
00:07:49.320 --> 00:07:52.120
They are more or less all the dreamy robots,
00:07:52.120 --> 00:07:55.440
like all the new generation, like our generation vacuum robots.
00:07:55.440 --> 00:08:00.400
We have also a new routing method for all the older ones which came out like one and
00:08:00.400 --> 00:08:04.440
a half years and before that, so the so-called P models.
00:08:04.440 --> 00:08:09.320
And everything you see here can be also technically applied to other robots,
00:08:09.320 --> 00:08:13.680
for example, Dnava robots which are more used in America.
00:08:13.680 --> 00:08:17.680
Shark AI robots and also some lawn mowers like the ZEGWay.
00:08:17.680 --> 00:08:22.720
Everything which is like underlined is basically robots which have like cameras
00:08:22.720 --> 00:08:24.080
which you can access in one way or the other.
00:08:24.080 --> 00:08:29.760
Right, as a general thing is, I mean, why we just as a comment kind of,
00:08:29.760 --> 00:08:32.800
why we jumping around on Roborock and dreamy, why not iRobot?
00:08:32.800 --> 00:08:36.840
The thing is, surprisingly Roborock and dreamy have some of the best value
00:08:36.840 --> 00:08:38.920
propositions in terms of features and price.
00:08:38.920 --> 00:08:44.120
But iRobot nowadays, they're very, very good in reducing the amount of hardware
00:08:44.120 --> 00:08:47.720
which we put into the devices to make it barely work for the use case which it's
00:08:47.720 --> 00:08:51.360
used to, which means it doesn't make any sense to root them because we don't have
00:08:51.360 --> 00:08:53.440
any resources anymore to run our own stuff on them.
00:08:53.440 --> 00:08:57.040
So there's a particular reason why, I mean, technically I have rooted these devices,
00:08:57.040 --> 00:08:58.880
but I'm not touching them basically.
00:08:58.880 --> 00:09:02.720
Okay, so about this talk.
00:09:02.720 --> 00:09:06.760
The result which you see here will be basically the result of 50 months of
00:09:06.760 --> 00:09:10.960
research and experiments, which is a little bit annoying in the sense of like
00:09:10.960 --> 00:09:14.680
if you're sitting for this long time on kind of, I wouldn't say zero days,
00:09:14.680 --> 00:09:18.160
it sounds always like very important, but on vulnerabilities which you can tell
00:09:18.160 --> 00:09:20.960
anyone and disclose to anyone because basically as soon as they get burned,
00:09:20.960 --> 00:09:21.800
they basically get burned.
00:09:21.800 --> 00:09:26.640
This talk is collaborative effort with me and Zun Baeyer.
00:09:26.640 --> 00:09:30.200
And Zun Baeyer is the developer of ValleTudo.
00:09:30.200 --> 00:09:34.600
Traditionally, we had the separation of me doing all the routing part and
00:09:34.600 --> 00:09:38.040
all the hardware stuff and he's basically taking care of the cloud replacement,
00:09:38.040 --> 00:09:38.920
ValleTudo.
00:09:38.920 --> 00:09:43.240
Nowadays, we're kind of like, he's also going into routing part because
00:09:43.240 --> 00:09:47.320
that's the cooler part and he wants to enjoy his life too.
00:09:47.320 --> 00:09:51.800
So we would be also here if it wasn't the community.
00:09:51.800 --> 00:09:56.160
So a lot of people from the community support us by testing routing methods,
00:09:56.160 --> 00:09:59.560
giving feedback to about software, catching things which we
00:09:59.560 --> 00:10:03.120
messed up potentially, donating devices, donating money.
00:10:03.120 --> 00:10:04.840
So there's a lot of support from the community.
00:10:04.840 --> 00:10:11.000
Typically what we do is we don't disclose things to the vendors.
00:10:11.000 --> 00:10:14.600
So the vendors are kind of unaware of the findings.
00:10:14.600 --> 00:10:17.800
Well, technically not today because I gave this talk basically at DefCon like
00:10:17.800 --> 00:10:18.400
five days ago.
00:10:18.400 --> 00:10:22.120
So they basically weren't aware five days ago and we didn't see any updates so
00:10:22.120 --> 00:10:26.680
far, so we are still working on that, I assume.
00:10:26.680 --> 00:10:30.240
But expect firmware updates and patches over the next couple days, I assume.
00:10:30.240 --> 00:10:33.360
Okay, so what's the motivation of this talk?
00:10:33.360 --> 00:10:36.000
So why the heck do we want to route devices?
00:10:36.000 --> 00:10:39.520
Well, one of the things is, for me at least,
00:10:39.520 --> 00:10:41.600
when I started that is to play with cool hardware.
00:10:41.600 --> 00:10:44.880
These devices are very powerful.
00:10:44.880 --> 00:10:49.640
It's basically, imagine for a Raspberry Pi or a smartphone on tires,
00:10:49.640 --> 00:10:52.320
very compact driving around here in your house.
00:10:52.320 --> 00:10:55.640
So it's a very interesting platform for devices.
00:10:55.640 --> 00:10:57.920
The other thing is because it's so powerful,
00:10:57.920 --> 00:11:01.600
I want to basically stop the devices from constantly phoning home.
00:11:01.600 --> 00:11:05.840
And phoning home is kind of a thing with these devices, so
00:11:05.840 --> 00:11:09.200
you can expect a couple hundred megabytes per month in telemetry data,
00:11:09.200 --> 00:11:09.960
pictures, whatever.
00:11:09.960 --> 00:11:17.680
The other thing is if people want to use custom software like Home Assistant,
00:11:17.680 --> 00:11:22.240
it's very, very difficult to integrate these devices in that system
00:11:22.240 --> 00:11:24.080
without relying on the clouds.
00:11:24.080 --> 00:11:27.920
And sometimes the cloud can also go down, so there's a lot of problems.
00:11:27.920 --> 00:11:31.400
One thing which becomes more and more important nowadays is diagnosis of
00:11:31.400 --> 00:11:32.200
broken devices.
00:11:32.200 --> 00:11:36.560
This is not necessarily, I mean, it's still an issue in Europe, but
00:11:36.560 --> 00:11:39.080
in America you have a warranty period of one year.
00:11:39.080 --> 00:11:42.400
And these devices tend to break exactly after one year.
00:11:42.400 --> 00:11:47.720
And so a lot of people in the US have the issue, okay, we cannot get it
00:11:47.720 --> 00:11:50.800
repaired under warranty, so we need to find a different way and we can help out
00:11:50.800 --> 00:11:54.760
people by diagnosing what kind of things might be broken.
00:11:54.760 --> 00:11:59.920
And the thing which is related to my research is basically to verify the
00:11:59.920 --> 00:12:01.920
privacy claims of the vendors.
00:12:01.920 --> 00:12:08.360
So why do we don't trust the great companies who develop these nice IoT
00:12:08.360 --> 00:12:09.200
products?
00:12:09.200 --> 00:12:12.720
Well, if you think about these devices, these devices are directly connected to
00:12:12.720 --> 00:12:16.520
your home network and can talk to everything typically in your home and
00:12:16.520 --> 00:12:18.600
have some internet connection.
00:12:18.600 --> 00:12:22.880
I know some people put them in some VLANs and stuff like that, but
00:12:22.880 --> 00:12:26.200
I mean, let's be realistic, most like 99% of the users probably just put them in
00:12:26.200 --> 00:12:27.680
their normal Wi-Fi and call it a day.
00:12:27.680 --> 00:12:32.120
The communication to the cloud is encrypted and
00:12:32.120 --> 00:12:33.680
you have no idea what the content is.
00:12:33.680 --> 00:12:37.560
Also, even if the vendor is not malicious,
00:12:37.560 --> 00:12:39.440
developing secure hardware and software is hard.
00:12:39.440 --> 00:12:42.680
So nothing says that the vendor can get hacked at one day or that there's some
00:12:42.680 --> 00:12:46.520
weird kind of vulnerability in the device which can be used remotely.
00:12:46.520 --> 00:12:50.240
If you remember the Mirai botnets many, many years ago,
00:12:50.240 --> 00:12:53.520
which basically where IP cameras got hacked from the internet and
00:12:53.520 --> 00:12:55.160
create like a huge botnet.
00:12:55.160 --> 00:12:58.040
So we want to kind of figure out if there's some hidden vulnerabilities which
00:12:58.040 --> 00:13:01.000
the vendor didn't put in on purpose but which exist there.
00:13:01.000 --> 00:13:06.680
And one of the things why I'm a little bit paranoid is because vendor claims
00:13:06.680 --> 00:13:07.640
might contradict each other.
00:13:07.640 --> 00:13:14.040
So I have my favorite go-to example for claims of vendors and
00:13:14.040 --> 00:13:17.680
I use always Roborock but technically all the other vendors do more or less the same thing.
00:13:17.680 --> 00:13:22.440
Roborock claim for the S6 Max-V like hey, it's built for privacy,
00:13:22.440 --> 00:13:24.520
it's certified by the TIF, my favorite company.
00:13:24.520 --> 00:13:27.840
Nothing is ever duplicated, nothing is ever stored,
00:13:27.840 --> 00:13:30.840
nothing is ever sent to the cloud, the cameras are only used for AI detection.
00:13:30.840 --> 00:13:34.840
It never leaves the robot, everything is fine, trust us please.
00:13:34.840 --> 00:13:37.440
But if you scroll down a little bit more, it says by the way,
00:13:37.440 --> 00:13:41.640
you can watch your pets remotely from your phone and can talk to it and
00:13:41.640 --> 00:13:44.720
you can see what's going on in your home and you can drive around in your home and
00:13:44.720 --> 00:13:46.680
basically watch if everything is okay.
00:13:46.680 --> 00:13:50.040
So now the question is like okay, on one side nothing is ever sent to the cloud and
00:13:50.040 --> 00:13:53.240
it's not possible to access the camera, basically the pictures, but
00:13:53.240 --> 00:13:55.480
on the other side you can access it remotely, so what is it?
00:13:55.480 --> 00:14:00.120
As a side note, I mean there's different ways to interpret what the exact thing is,
00:14:00.120 --> 00:14:01.760
but I mean it's very, very unclear here.
00:14:01.760 --> 00:14:09.680
The other thing is I recently caught how they uploaded pictures of users,
00:14:09.680 --> 00:14:14.040
well, development devices basically which they gave away for free to users to the
00:14:14.040 --> 00:14:17.680
cloud and where they used gig workers in Venezuela to kind of label them.
00:14:17.680 --> 00:14:22.240
Which was a little bit unsettling because most of the users didn't realize that
00:14:22.240 --> 00:14:24.840
it's somewhere hidden in the terms of service, but the pictures would be used by
00:14:24.840 --> 00:14:28.920
people and some pictures which were uploaded were like people sitting on the
00:14:28.920 --> 00:14:31.880
toilet, naked kids, whatever, you can be creative.
00:14:31.880 --> 00:14:35.600
I have some examples from the MIT Tech Review article.
00:14:35.600 --> 00:14:38.920
I was helping the journalists to figure out which device it was because I have
00:14:38.920 --> 00:14:43.560
from all the devices to camera perspective, so I really quickly figured out it's iRobot.
00:14:43.560 --> 00:14:45.680
And it turned out to be actually iRobot.
00:14:45.680 --> 00:14:49.320
And the question is why do we need to know what kind of AC you have,
00:14:49.320 --> 00:14:50.840
what kind of switches you have and everything else?
00:14:50.840 --> 00:14:56.720
So this is basically the stuff which was labeled in Venezuela from the gig workers.
00:14:56.720 --> 00:15:00.720
As a small fun fact, as soon as the article came out or
00:15:00.720 --> 00:15:03.520
as soon as the journalists actually started to send out requests to all the vendors and
00:15:03.520 --> 00:15:07.280
asking about them, that things, many of the vendors panicked and
00:15:07.280 --> 00:15:11.280
started to change their firmwares, apps and also privacy policies.
00:15:11.280 --> 00:15:16.200
So you see a lot of privacy policies being changed around November, December 2022,
00:15:16.200 --> 00:15:17.080
which is kind of interesting.
00:15:17.080 --> 00:15:20.760
The other thing, which is a motivation for me also,
00:15:20.760 --> 00:15:23.520
these kind of devices have more and more sensors.
00:15:23.520 --> 00:15:27.360
So, I mean, at some point we got cameras, which is kind of bad.
00:15:27.360 --> 00:15:29.920
But nowadays some of the robots have even microphones.
00:15:29.920 --> 00:15:31.920
And one of the things which I want to mention here is like,
00:15:31.920 --> 00:15:34.480
when we started five years ago, we were kind of joking like, okay,
00:15:34.480 --> 00:15:41.640
we tried to find a way to use the ultrasonic sensor to basically listen to people.
00:15:41.640 --> 00:15:45.120
Or maybe you can use some other sensor to kind of spy on people.
00:15:45.120 --> 00:15:46.960
But nowadays you don't need to do that.
00:15:46.960 --> 00:15:50.200
The robots come with microphones themselves.
00:15:50.200 --> 00:15:53.280
As a quick note, I know there's some papers out there which claim that you can use
00:15:53.280 --> 00:15:58.840
the ladder to snoop on people by flashing the firmware and stuff like that.
00:15:58.840 --> 00:16:02.120
But I can tell you today that it's not possible that the paper is more or
00:16:02.120 --> 00:16:02.760
less not accurate.
00:16:02.760 --> 00:16:06.800
So I know it's out there, but shocker in academia,
00:16:06.800 --> 00:16:10.200
people might be not super accurate with papers.
00:16:10.200 --> 00:16:13.720
So you cannot use the ladder as a microphone, just as a hint.
00:16:13.720 --> 00:16:16.560
All right, so what are risks of devices with cameras?
00:16:16.560 --> 00:16:20.160
Well, some of the devices might store pictures indefinitely.
00:16:20.160 --> 00:16:24.720
Sad news is also a lot of them do both in cloud and locally.
00:16:24.720 --> 00:16:27.520
There's some ways how I was able to figure that out.
00:16:27.520 --> 00:16:31.160
So far I can't tell you exactly which companies there are, but there's some.
00:16:32.320 --> 00:16:37.200
Also, if you buy used devices from, for example, Amazon Marketplace,
00:16:37.200 --> 00:16:39.280
you need to be a little bit careful.
00:16:39.280 --> 00:16:41.360
You don't know what was installed previously on the device.
00:16:41.360 --> 00:16:45.400
So the previous user might have installed a rootkit.
00:16:45.400 --> 00:16:49.280
The new owner cannot verify the software, and as a result,
00:16:49.280 --> 00:16:51.200
you might have a malicious device in your network.
00:16:51.200 --> 00:16:53.800
So we are in a hacker conference, and I just want to say it's super illegal to do
00:16:53.800 --> 00:16:54.640
that, so don't do that.
00:16:54.640 --> 00:16:58.920
Don't buy devices on Amazon and root them, put some rootkit onto that, and
00:16:58.920 --> 00:17:00.160
send it back to Amazon.
00:17:00.160 --> 00:17:03.400
That's very rude and probably illegal, I assume.
00:17:03.400 --> 00:17:05.040
I hope so, at least.
00:17:05.040 --> 00:17:09.680
Okay, so rooting is more or less the only way how you know that the device is clean
00:17:09.680 --> 00:17:10.080
in a way.
00:17:10.080 --> 00:17:15.160
So one of the things which is kind of interesting,
00:17:15.160 --> 00:17:18.560
especially in Germany from some German press articles.
00:17:18.560 --> 00:17:28.120
Some vendors got a little bit creative in sense of users which are privacy aware.
00:17:28.120 --> 00:17:31.800
And they try to avoid the word camera as far as they can.
00:17:31.800 --> 00:17:35.040
And instead, they try to use the word optical sensor.
00:17:35.040 --> 00:17:37.280
And I have here an article from Golem.
00:17:37.280 --> 00:17:40.360
I don't want to shame Golem, but I mean, many do that.
00:17:40.360 --> 00:17:43.200
And they kind of asked the vendor, and the vendor said, yeah, optical sensor is
00:17:43.200 --> 00:17:43.720
accurate.
00:17:43.720 --> 00:17:47.600
So it's not a shaming thing, it's just like an info thing here.
00:17:47.600 --> 00:17:51.400
So what Roborock kind of said is like, so we don't have cameras in there.
00:17:51.400 --> 00:17:54.480
For privacy reasons, we just put an optical sensor which detects lasers.
00:17:54.480 --> 00:17:57.920
So it's good for your privacy, so don't worry.
00:17:57.920 --> 00:17:59.320
Everything will be fine.
00:17:59.320 --> 00:18:04.520
And I have an output of the optical sensor on the right.
00:18:04.520 --> 00:18:08.440
By the way, sorry it says, hello, Defqon, but I was too lazy to create another
00:18:08.440 --> 00:18:09.520
picture for that.
00:18:09.520 --> 00:18:12.480
So yeah, so as you see, there's an output of optical sensors.
00:18:12.480 --> 00:18:15.120
So no camera involved.
00:18:15.120 --> 00:18:16.520
Nothing to see here.
00:18:16.520 --> 00:18:17.680
Right.
00:18:17.680 --> 00:18:20.040
Also, certifications are very important.
00:18:20.040 --> 00:18:25.320
Most of the devices which have cameras have some kind of certification,
00:18:25.320 --> 00:18:27.840
either by TÜV Rheinland or by TÜV Süd.
00:18:27.840 --> 00:18:33.560
So both of them are kind of testing all the devices, and all these devices met
00:18:33.560 --> 00:18:35.760
the European cybersecurity standards.
00:18:35.760 --> 00:18:38.280
So I think we can't end the talk here because all of them are secure, I assume,
00:18:38.280 --> 00:18:41.880
because they got tested.
00:18:41.880 --> 00:18:43.560
Yeah.
00:18:43.560 --> 00:18:45.560
Sadly, yeah, we can't end here.
00:18:45.560 --> 00:18:46.040
All right.
00:18:46.040 --> 00:18:47.280
So what happened so far?
00:18:47.280 --> 00:18:50.760
Let me give you a quick rundown here.
00:18:50.760 --> 00:18:55.120
Let's start with a general observation, like what we saw in the last five years.
00:18:55.120 --> 00:19:01.280
So every time we release a routing method, developers react in weird, sometimes
00:19:01.280 --> 00:19:02.400
different ways.
00:19:02.400 --> 00:19:08.440
So sometimes they even react in a way that they break things.
00:19:08.440 --> 00:19:12.720
And there was some case where they pushed a very quick firmware update which
00:19:12.720 --> 00:19:16.360
started to break hundreds of vacuum robots permanently because they kind of
00:19:16.360 --> 00:19:22.280
started to panic and started to do weird things, which is kind of sad, which we
00:19:22.280 --> 00:19:23.960
want to avoid, obviously.
00:19:23.960 --> 00:19:27.600
The best case for us if they react is that our routing method just fails in a way
00:19:27.600 --> 00:19:31.360
that says, hey, the file system is broken, we don't accept it, we don't boot it,
00:19:31.360 --> 00:19:32.760
so whatever.
00:19:32.760 --> 00:19:33.440
That's the best case.
00:19:33.440 --> 00:19:38.360
So sadly, some vendors started to do things which are a little bit more mean.
00:19:38.360 --> 00:19:42.680
The routing succeeds, everything is fine, but the device will break randomly.
00:19:42.680 --> 00:19:46.480
For example, white cleans, at some point it will just crash, and it's very hard to