Dear viewer, these subtitles were generated by a machine via the service YouTube and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/2637 Thanks!
[Music]
all right good evening again everybody
how's everybody doing
tonight yay wonderful however however I
must tell you it's already day four oh
but to cheer us up we have a great last
talk for today here at milliways by the
way the fediverse hashtag as always is #
CC Camp 23 Millway and uh who here in
the crowd owns a vacuum
robot
I would say not great not terrible but
um oh wow I didn't expect that from like
a hacker crowd so then especially for
those of you who own one the next talk
is for you in the next 45 minutes our
speaker Dennis gizer will tell us all
the latest news about vacuum robots
their security and their privacy issues
so that hopefully in the end your robot
will not suck your data please give a
warm welcome to Dennis and the
talk all right um welcome to my talk
thank you very much for being here at
this late time um it's great that you
had four days of Camp I mean I came a
little bit late uh because I had some
stuff to do and uh but it's kind of
great here except for a little bit warm
so um my talk today is uh kind of like
an update about uh vacuum um robot
security and privacy and I know people
think think like oh wait that's always
the same topic every two years but um I
mean there's a lot of development so you
know let's do a quick update um so for
people who don't know me um which is the
slides are kind of a little bit broken
um I'm a PhD student at nor University
uh and primarily my research field is in
uh violence and embedded security and
privacy um I think due to the amount of
Many Many Robots vacuum robots which I
have I can call myself a vacuum robot
collector so I have I think like
nowadays like something like 45 robots
and I'm um have interest in reverse
engineering of interesting devices and
this can can be anything I mean robots
obviously but I have also like um smart
speakers um you know look at flash
memory and other things let me quickly
ask uh is the format kind of weird a
little
bit is it my
laptop
H okay let me fix that maybe real
quick how many Security Experts do you
need to fix issues okay uh your laptop
yeah the
laptop
[Applause]
ah okay great all right perfect uh
working with experts that's great Okay
so um like I said I am interested in
vacuum robot smart speakers and all
other interesting iot devices um some of
my recent work is um I some time ago I
was looking at Amazon smart smart
speakers like Echo dots and I bought
like um
86 used Echo dots from eBay from other
sources like C and in Germany was doing
some forensics and let's say didn't it
was very bad news for Amazon so uh if
you have used iot devices don't sell
them or bad people like me might buy
them um some other recent projects I do
a lot of flash forensics um for example
on the left you see like the pixel watch
but um I look at EMB bettered devices
and see what kind of data I can extract
from flash memory but also look at flash
memory itself uh surprisingly a lot of
flash memories have the their own
processor on them and you can hack the
flash firw to maybe do mous things so
this is kind of like a current research
project of me um another thing which I
run is uh robot info. def um which is
basically a website where I do a
systematic analysis of robots um for
example which operation system we're
running what kind of sensors they have
if they have vulnerabilities or not um
the primary focus of that side is more
less to look at uh security and privacy
um and what I use it also for kind of
like in the back end to track firmware
changes so basically every time there's
a new fir update there's an automatic
process which downloads it extracts it
and you know Compares it so we kind of
get an idea what the vendors are doing
um one of the sources how I get all this
information is basically by buying
devices disassembling them and kind of
start to emulating them so there's I
have like something like uh 50 or 60
emulated vacuum robots which are kind of
behaving like real robots to the cloud
and kind of just look like okay do we
get like pushed firmware updates is
there anything new um but also on the
other side what we do is like we take a
look at the app so we decompile the app
and look like if anything
changes um this is also like basis for f
research I mean for example right now
I'm working on also machine learning
models and some other things um by the
way the rack which you see there is like
one of my few racks of robots so I keep
like um a set of robots from basically a
reference model from each of the models
which we support uh for rooting and
every time there's a new frame update or
if I need to check something I just go
to that drag and just grab one and test
my the things which I need to test and
just put it back um which also means and
I get this question quite often also on
Twitter on or X um or VI email like oh
hey I want to buy a vacuum robot which
cleans the best I have no idea I have no
idea roest devices but I mean I'm not
actually using them except for one which
I use and it does the job good enough so
I have no idea so don't ask me which one
is the best for cleaning X Y and Z all
right so um what is the goal of this
talk um well I want to give you um
overview over the development of the
vacuum robot hacking over the last uh 5
years and I um want to give you like
some idea about liabilities and back
doors which exist today um and give you
some understanding about which U routing
methods we have um the alternative goal
typically which I have is to get root
access onto a device with this assembly
sometimes this works sometimes it
doesn't work but um you know we we try
our best to find ways and sneak ways
around to kind of get root access um as
a side note generally um we have um some
I mean me and the the the vendors don't
hate each other necessarily but the
thing is we have a very competitive kind
of setting so every time they fix
something we fix something and it's kind
of like always competitive thing so I I
know for example when I was giving this
talk at Defcon that they were watching
live and right now we're probably
working on on firw updates so um yeah so
some of the devices which are covered in
this talk um they the the the current uh
rber Rock V vacuum robots um some of
them just came out kind of very recently
um they are more or less all the dreamy
robots like all the new generation like
our generation vacuum robots we have
also a new rooting method for all the
older ones which came like out like one
and a half years and before that so the
so-called P models um and every
everything you see here can be also
technically applied to other um robots
for example da naal robots which are
more used in America uh Shar uh AI
robots and also some lawnmowers like the
zway um everything which is like
underlined is basic are basically robots
which have like cameras which you can
access in one way the other
um right uh as a general thing is I mean
why we just as a commment kind of why we
jumping around on robok and dreamy why
not IR robot the thing is um
surprisingly robok and dreamy have like
some of the best value propositions in
terms of like features and price but IR
robot nowadays were very very good in
like reducing the uh amount of Hardware
which we put into the devices so to make
it barely work for the use case which
it's used to which means it doesn't make
any sense to root them because we don't
have any resources anymore to run our
own stuff on them so there's a
particular reason why I mean technically
I have rooted these devices but I'm not
touching them basically
okay so uh about the stock um the result
what you see here will be basically the
result of uh 15 months of research and
experiments which is a little bit
annoying in the sense of like if you're
sitting for this long time on kind of I
wouldn't say zero days it sounds always
like very important but on
vulnerabilities which you can't tell
anyone and disclose to anyone because
basically as soon as they get burned
they basically get burned um the St is
collaborative effort with um me and z b
and z b is like the developer of baludu
traditionally we had this the separation
of um me doing all the rooting part and
all the hardware stuff and he's like
basically taking care of the cloud
replacement Vudu nowadays we kind of
like you know uh he's also like going
into rooting path because that's the
cooler part and you know he wants to
enjoy his life too so um we would be
also here if it wouldn't be the if it
wasn't the community so a lot of people
from the community support us by uh
testing booting methods uh giving
feedback to about software catching
things which we messed up potentially um
donating devices donating money so
there's like a lot of support from the
community um the um typically what we do
is like we don't disclose things to the
vendors so the vendors are kind of
unaware of the findings well technically
not today because I gave this talk
basically at Defcon like 5 days ago so
they basically weren't aware 5 days ago
and we didn't see any updates so far so
we um are still working on that I assume
um but expect like uh fir updates and
patches over the next couple days I
assume okay so what's the motivation of
this talk so why the heck do we want to
root
devices um well one of the things is for
me at least when I started that is like
to play with cool Hardware um these
devices are very powerful it's basically
imagine of a rest Bay Pi or a smartphone
on on tires very compact driving around
your in your house so it's a very
interesting platform for for devices uh
the other thing is because it's so
powerful um I want to um basically stop
the devices from constantly phoning home
um and phoning home is kind of a thing
with these devices so you can expect a
couple hundred megabytes per month in
Telemetry data pictures whatever
um the other thing is um if people want
to use custom software like home
assistant it's very very difficult um to
integrate these devices in in that
system um without relying on the cloud
and sometimes the cloud can also go down
so there's a lot of like kind of kind of
problems um one thing become which
becomes more and more important nowadays
is um diagnosis of broken devices um
this is not necessarily I mean it's
still an issue in in in Europe uh but in
America you have a warranty period of
one year and these devices tend to break
exactly after one year and so a lot of
people in the US have the issue like
okay um you know we cannot let it get
get it repaired over under warranty so
we need to find a different way and we
can help out people by you know
diagnosing like what kind of things
might be break might be broken um and
the thing which is related to my
research is is basically to verify the
Privacy claims um of the
vendors
so why do we don't trust the great
companies who develop this nice iot
products well if you think about these
devices these devices are directly
connected to your home network and can
talk to everything typically in in your
home and have like uh some internet
connection um I know people put some
people put them in some VLS and stuff
like that but I mean let's be realistic
most like 99% of the users probably just
put them in their normal Wi-Fi and call
today um
the communication to the cloud is uh
encrypted and you have no idea what the
content is um also even if the vendor is
not malicious are developing secure
hardware and software as hard so nothing
says that the vendor can get hacked at
one day or that there's some weird kind
of vulnerability in a device which can
be used remotely um if you remember the
maray botn net um many many years ago
which basically where IP cameras got
hacked from the internet and create like
a huge botn net so we want to kind of
figure out if there like some hidden
vulnerabilities which the vendor didn't
put in on purpose but which exists there
um and one of the things why I'm a
little bit paranoid because uh vendor
claims might contradict each other so I
have a my favorite go-to example for
claims of vendors and I use always robor
but technically all the other vendors do
more or less the same thing robok
claimed for the um S6 Max V like hey um
it's built for privacy it's certified by
the chff my favorite company um nothing
is ever duplicated nothing is ever
stored nothing is ever sent to the CL
the cameras are only used for AI
detection it never leaves the robot
everything is fine trust us please but
if you scroll down a little bit more it
says like by the way you can watch your
pet remotely from from your phone and
can talk to it and you can see like what
what's going on in your home and you can
drive around in your home and basically
watch if that everything is okay so now
the question is like okay on one side
nothing is ever sent to the cloud and
it's not possible to access the camera
remote like basically upload pictures
but on the other side you can access it
remotely so what is it um as a side note
I mean there's different ways to
interpret what the exact thing is but I
mean it's very very unclear here um the
other thing is um iot got recently
caught how they uploaded uh pictures of
users well development devices basically
which they gave away for free to users
um to the cloud and where they used gig
workers in Venezuela to kind of label
them um which was a little bit um
unsettling because most of the users
didn't realize that it's somewhere
hidden in the terms of service but the
pictures will be used by people and um
some people some pictures which were
uploaded where like people sitting on
the toilet naked kids whatever you can
you can be creative um I have you some
examples uh from the MIT tech review
article um I was helping the journalists
like to figure out which device it is
because I have like from all devices to
camera perspective so I really quickly
figured out what iRobot and it turned
out to be actually I Robot and the
question is like why do we need to know
what kind of AC you have what kind of
switches you have and everything else so
this is like basically um the stuff
which was labeled in Venezuela from um
the gig
workers um as a small more fun fact as
soon as the article came out or as soon
as the journalists actually started to
send out like requests to other the
vendors and asking about that things um
many of the vendors panicked and started
to change their uh firmwares apps and
also privacy policies so you see a lot
of privacy policies being changed around
November December 2022 which is kind of
interesting um the other thing which is
a motivation for me also these these
these kind of devices have more and more
sensors so I mean at some point we got
cameras which is kind of bad but
nowadays some of the robots have
microphones and one of the things which
I want to mention here is like when when
we started 5 years ago we were kind of
joking like okay we tried to find a way
to use the ultas Sonic ultrasonic sensor
to basically listen to people or maybe
you can use like some some other sensor
to kind of spy on people but nowadays we
don't need to do that the robots come
with um microphones themselves um as a
quick note I know there's some papers
out there which claim that you can use
the lighter to uh Snoop on people by
flashing the firmware and stuff like
that that but I can tell you today that
it's not possible that the paper is more
or less not accurate so I know it's out
there but there shock shocker in
Academia people might be not super
accurate what papers are so you cannot
use the lighter as as a as a microphone
just as a hint all right so what are
risks of devices with cameras well some
of the devices might store pictures
indefinitely sad news is also a lot of
them do both in cloud and locally
there's some ways how I I was able to
figure that out um so far I can tell you
ex which companies there are but there's
some um also if you buy um used devices
from for example Amazon Marketplace you
need to be a little bit careful um you
don't know what was installed previously
on the device so um the previous user
might have installed a rootkit the new
owner uh cannot verify the the software
and as a result you might have a
malicious device in your network so we
are a hacker conference and I just want
to say it's super illegal to do that so
don't do that don't buy devices on
Amazon and you know root them put some
root kit on to that and send it back to
Amazon that's very rude and properly
illegal I assume I hope so at least okay
so rooting is more or less the only way
how you know that the devic is clean in
a
way so um one of the things um which is
kind of interesting especially in
Germany from like some German press
articles um some vendors got a little
bit car no no not curious um got a
little bit creative in sense of like
users which are um privacy aware and
they to avoid the word camera as far as
we can and instead we try to use the
optical like the word Optical sensor and
I've here an article from Golem um I
don't want to shame Golem but I mean
many many many do that and they kind of
asked the vendor and V I said like oh
yeah Optical sensor as accurate so it's
not a shaming thing it's just like a
input thing here so what Robo kind of
said was like oh so we don't have
cameras in there for privacy reasons we
put just put an optical sensor which
detects laser so it's it's privacy it's
good for your privacy so don't worry
everything will be F and I have an
output of the optical sensor on the
right uh by the way sorry it says hello
Defcon but uh I was too lazy to create
another picture for that so yeah so as
you see that's an output of optical
sensor so no camera
involved nothing to see here right also
certifications are very important um
most of the devices which are um have
cameras have like some kind of
certification either by T Ryland or by T
um Zoot so both of them are kind of
testing all the devices and uh you know
all this devices met the European cyber
security um standards so I think we can
ENT to talk here because all of them are
secure I assume because you know they
got tested yeah um sadly yeah we can't
end here all right so what happened so
far let me give you a quick rundown here
um let's start with a general
observation like what we saw in the last
five years so every time we get uh we
release a rooting method uh Divas react
in weird sometimes different ways so
sometimes um they even react in a way
that they break things and there was
like um some case where they pushed a
very quick firmware update which started
to break hundreds of vacuum robots like
permanently because they kind of started
to panic and started to do weird
things which is kind of sad um which uh
we want to avoid obviously um the best
case for us if we react is that our
rooting method just fails in a way that
it says like
the file system is is broken we don't
accept it we don't boot it so uh
whatever that's the best case so um
sadly some V started to do things which
are a little bit more mean um the
rooting succeeds everything is fine but
the device will break randomly for
example while white cleans at some point
it will just crash and you know it's
very hard to
debug in particular cases is also so if
it detects manipulations or like rooted
firmware it will just destroy itself
permanently so it will just delete it
key its keys and you know uh it will be
kind of like a problem so that's the
reason why we need to buy Elric devices
in advance to kind of figure stuff like
that out so let's start with the first
work in 2017 um this was a RI together
with Dan
Vier um and it was about the xiaomi uh
first generation and the robero uh S5 is
just also kind of like the first
generation device back then um some of
the findings which we found were that
the firmware images are unsigned and
only encrypted with a very weak key and
I think the very weak key was like just
robok as the name of to company this by
itself wouldn't be a big issue the
problem is that you could push custom
firmware on the local network and so
basically you could just flash the
device you know over Network um this is
not necessarily a problem for us of
people who want to root the devices but
it's a bigger problem if you have like
malicious people who want to do bad
things now people might say like okay I
don't have access so typically attackers
don't have access to your personal
Network the problem is if your device is
in unprovisioned in provisioning mode
basally basically so if it opens its own
Wi-Fi access point and wait to for like
pushing it into your private Wi-Fi then
you can do the same pushing like
basically you can push a firware on that
to um when I was living in uh in damad I
saw some of my neighbors had like xiaomi
vacuum robots which were paranoids we
didn't put them into Wi-Fi so we had
open Wi-Fi access points on the robot
and I didn't do it but technically I
could have you know push like a
malicious firm onto that and just wait
one day they will probably put it in
your in their Wi-Fi and then they would
be screwed still don't do that if you
see ovion robots in your neighborhood
don't hack them that's very mean and
annoying anyway so what's the result of
these two facts um one of the things is
we could uh root the devices for this
assembly and we could start the
development of custom software and voice
packages a lot of people in Germany
apparently are very you know interested
in voice packages um I mean for me
English is fine but um you know a lot of
people got very creative uh with like uh
GLaDOS and some other things um this was
published on the um uh CCC Congress in
2017 and also deathcon in 2018 so
exactly 5 years ago so as you see I do
that stuff for a very long time already
um the reaction from that was Rober Rock
who developed both this both this
devices was not very happy about that so
what they started to do is like they
started to block local firmware updates
uh on in the firmware which is
technically okay from a service security
perspective so I wasn't super mad about
that but also then what we started to
introduce is they basically signed all
the firmware and voice packages so we
couldn't necessarily create our own
anymore and each of the devices uh each
of the device models basically use
different encryption keys so we had to
basically get every device individually
like every model uh and extract the keys
to kind of you know look in the firmware
one of the things where we got a little
bit annoyed about people buying cheap
devices in China and using them in
Europe uh was basically that they um
started to enforce region logs so that
you couldn't import device anymore and
uh that you can can't run them you know
in Germany because uh for whatever
reason I mean we just want to avoid that
um however one of the interesting thing
is um is uh that the hardware mostly
Remains the Same so if you buy um if you
bought every two years a vacuum robot
from ROK and you take the pcbs out and
compare them to each other the layout is
more less the same so they sell you more
or less the same Hardware configuration
all over
again every two years or every every
year even so it's like that's their
business model I guess they can't charge
it for updates but they can charge you
for your Hardware just as a side note
anyway uh the problem which we had now
is like we need to disassemble the
device which was a kind of like a
problem um I have here an example so
basically you need to completely unscrew
the device you need to solder maybe a
few things um the one of the good things
here was um that um this this met so we
figured out a way to kind a bypass V
which required this assembly and this
worked for the robot S6 s S5 Max s S7
and also others um the initial idea
which we had was uh that we accessed the
UB boot Shell by uart um sadly they
figured that out at some point and fix
that and the new approach was uh that we
get the device into bootloader mode and
just patch the file system over USB and
this turned out to be the more um
efficient way to do that um again the
disadvantages we need to disassemble the
device which kind of is annoying but I
mean that's the way that's the price of
doing business I guess one of the
interesting facts is that this method
still works until today um for all the
old R6 based devices so for example S6
Pro Ultra sorry S7 Pro Ultra and Q7
um when they saw that we have a new way
to to root the devices they reacted
again and we're not necessarily happy so
as mentioned before we locked the
bootloader down so we don't have a UB
anymore and then they basically got
through the book of like all security
methods and started to introduce things
like secure boot s a Linux um they
introduced the M Varity and even newer
device have uh encrypted looks file
looks encrypted file systems uh where
the user data and application encrypted
so we can't even figure out like okay
what is the application actually doing
so we only see like partial of this the
portion of the system and we start to
use started to use trust Zone where we
store the keys uh in opt basically which
has also the risk if you do any sketchy
things where the keys just get wiped so
you need to be careful with that um one
thing which we introduced at some point
were custom elf binary signatures which
I never saw before so they basically
we're assigning all elf binaries which
exist on the system and every time you
try to execute like a um unsigned binary
just wouldn't execute it would get a sa
for so in uh 2021 um we fight back um so
this was a thing which I um presented at
um def it presented oh this is actually
not accurate I think I that's I
presented the Defcon Defcon 21 uh not
here um and the um the method was
basically to bypass uh the elf binary
verification and a security so one of
the ideas was to uh modify um the
configuration partition
but it required basically the
disordering of the emmc flashship so
which most of the people can do or don't
want to do because very likely brick
your device or you need some ISP access
so this was a very specific method for a
very specifically um specific people who
are good with soldering but it's not a
you know broad thing and um that was the
reason why we said like okay we want to
maybe take a look at different vendors
for now and just you know wait until
robber rock kind of cools down and kind
of gets more relaxed and you know starts
stopped being mean and one thing which
we found where uh was a new vendor which
is dreamy and we very similar devices to
Robo basically we were powerful we were
had cameras um they had an extremely
easy rooting method basically with
disassembling um and we were able to
basically um flash them over USB one of
the problems with the flashing over USB
part was that some devices got soft
bricked but um I think we solved that
problem nowadays so how did robok react
onto our Defcon talk back then
well I got a very nice email from the
robero CEO one day after my talk like oh
thank you for the talk our Engineers
watch the talk live and are fixing right
now all the vulnerabilities so that's
the reason why I know that they we are
watching the talks um what we did now is
like they encrypted all the partitions
except the system partition which we can
do for technical reasons um they started
to obis skate the elf binary signature
verification so we cannot find it that
easily and Patch it and and uh we
started to add custom code into random
libraries to kind of detect if we try to
bypass the traffic so one of the ways
how we kind of um disconnect devices
from the cloud is that we redirected
traffic via DNS uh to them to the robot
itself so that uh basically nothing goes
to the cloud everything stays on the
robot and they figured out like hey h
you still wanted to exfiltrate traffic
from the robot so how can we do that we
just have a detection which ATT Texs if
you have a um if you want to upload
something to your robor roo.com um
domain and if you do that it has like
some obis way to kind of do DNS queries
on itself in the lip curl Library so um
at some point we notice like wait we
have still traffic going off to Rober
Rock even though that we have you know
blocked all the domains and so we
figured out that they introduced like
some sneaky way to still exrate lock
files and some other stuff even if the
device is is um is rooted we figured it
out we patch it nowadays but this is
like one of the things they we they try
to find ways to bypass our rooting
methods um and nowadays very a love
ofation like they use X or like
everywhere they can use it so it's kind
of like it's it's um gets a little bit
annoying from time to time so um how
does their stuff look like so um they as
as mentioned they know this check for
for Elf signatures in the kernel so
basically they use the do mm map
function um which basically creates like
a memory area if I think for if you
start start uh try to run a program and
if the file is not signed correctly it
will basically sa for so every time you
try to execute your own custom binary it
will just sa for nothing happens um and
they got really creative um in naming
their functions so I have an example on
the right which is uh basically the do
NM function from um the S8 and uh they
started to use names like clock set rate
DSP 0 there's no DSP Z by the way or
clock set whatever things so these
functions are actually just to verify
the signature but they named them in in
the super weird way so that we would
think like oh that's properly something
important so we don't touch it but in
reality that's where obis skated
signature check and they do some some
weird other stuff so I think they use
some code officiation tools so kind of
basically try to get us off track so at
the same time jamy started also to panic
uh directly after the talk U so they did
a lot of changes in their firware they
removed the U ubut shell sorry the U um
loan shell and the ubut show so they
just patched ubot um and they pushed
changes which started apparently to
break robots if their fir version was
too old so it was kind of weird so we
got a lot of feedback back from people
who didn't had rooted vacuum robots but
the device was bricked from like a
frameware update um and especially this
happened outside of the warranty so they
kind of par brick devices um one of the
fun facts is because we compare fir
updates we found a way simpler rooting
methods which we weren't aware of so
they patched something where uh we we
didn't know that it was there and it was
very helpful because one thing which we
noticed that they they removed this
function um and what it does is if you
press the reset button for one second it
will pop a lockin shell um and we had no
idea because we thought like okay we
removed the lockin shell so we we need
to do USB and whatever and then we
noticed like wait they they removed that
and it took like many many months until
it got actually pushed into um like all
the devices which were newly produced
and we saw that and we were like oh wait
there's a more there's a way safer
method because now you can connect over
uart press the reset button for one
second and just get a lockin shell and
you can log in with um a particular
password so uh this was very helpful so
thanks for showing us this uh thing this
not the only time it just happened so we
found a couple other things which were
also kind of kind of useful right um but
we started to panic even more and we
introduced like a secq boot and have set
the SEC the euses which was kind of
being expected um they signed the um
system partition and are doing the
verification over UB boot which is the
boot loader and they started to pair the
kernel with a particular version of the
system partition um and this is kind of
important for for the thing which we did
next um they
basically um introduce introduced the
judge counter
measurements so judge coun counter
measurements what what what is that um
this is one of the things uh which we
introduced in uh 2020 in all new
firmwares so if you have a firmware
which is newer when or a device also
which is newer than 2022 you have it um
rooted firmwares would start crash
randomly um um and it was super weird
for us to to debu that and uh at the end
of the day we figured it out but this
was like super annoying and it was super
mean by them and I think it was directed
directly at us this wasn't not the thing
against other vendors it was directly
directed at us so what does it do so
they bake the expected sh 256 hash of
the root file system into the kernel
then as soon as you start as soon as you
run the cleaning process at some random
time in that cleaning process it will
compute the hash of the actual system
partition compared if it matches to the
hash which a kernel
expects if the hash is not correct they
will just start spawning new threats and
uh run Moc in a loop which will
basically cause with the whole memory uh
but you get the memory leak basically
randomly this can be after 5 minutes it
can be after 10 minutes but the robot
will at some point crash and just stop
at some point and this is extremely
difficult to debug because I mean the
thing is so there's no luck no no locks
uh you cannot run like trace the whole
time because it just happens randomly so
at some point we we figured it out but
it's was like extremely annoying it cost
me like weeks of like reverse
engineering and like figuring out what's
going on and basically comparing
firmwares why doesn't crash with this
firw why it crash for this F what
changed uh which is which is very sad
anyway so that was the past uh we
figured it out uh so let's talk about
the current state of robot
security um I want to just use one
device which I think is like the one
which has the most protections and it's
the most secure one and that's the
rubber rock as 8 Pro Ultra um that's the
current Flagship model by robbero so
that's the newest kind of thing which we
have um this device runs a all winner um
Mr 813 uh which is a quad cor so and
runs like a couple more
mcus it has either 55 megab of Ram or 1
GB of RAM the reason why we have two
different things is I think they started
with 1 GB and figured out they can get
away with 52 so it's kind of like a cut
cost cutting measurement
and um they have 4 GB of
flash um this device has two cameras uh
one lighter sensor and two line lasers
so it's kind of interesting from a
platform and security wise we checked
everything in the book basically secure
boots DM protect root of is everything
encrypted as AO and Al
signatures um all right I want to give
you like short rundown um about the boot
process of the S Ultra um it looks a
little bit complicated uh but it's
important to kind of understand that for
our uh attack let me just get a quick
drink
here all right so um we start at a brute
rum which is basically baked into the S
so uh the bo rum checks the um baked in
uh hash which is like in the euses of
the of the um to zero which is like kind
of like the first stage boot loader uh
this first stage boot loader initialized
Al the ram so from there we can do other
things then to zero or like for St boot
loader checks the signature of to one
which is like a technical term here
which launches uh the secure U the
TruStone component which is opt which
then verifies and launches UB boot um
you would guess it's um a boot
configuration then verifies and launches
the actual Linux kernel the Linux kernel
has baked on the DM VAR key which will
basically verify in Mount the root file
system and the Linux gner has also the
elf by signature thing which will U
basically check all the in inet software
which will be launched up after that the
inet software itself will talk again to
trust Zone and we'll get the keys for
the partitions and we'll start to
decrypt the the software partition and
we'll decrypt the user data partition so
basically what this means is everything
checked everything else so which is kind
of an issue well what does it uh so the
question is like is everything actually
checked by everything well there's one
thing which is a little bit questionable
and this is like the the ubot portion so
what is ubot um it's the de facto uh
default Bootloader for embedded devices
so you find it in all the embedded
device models it's very powerful
software um it does some setup of
Hardware um it sets also the command
line Arguments for the kernel it ver
verifies the kernel and Boots it and uh
the important thing here is it uses like
an environment to configure itself and
why we need to use this environment is
like if you do firmware updates you
don't want to do it on the operation
system that you're running right now you
want to kind of do it on a copy and then
just switch to copy so you need to have
like some mechanism to switch between
both um so this is like the ab booting
um and it supports a very command
powerful command set for example it
allows you to loading partitions into
memories which you need for for the
kernel load it allows you to access
memory and allows you also to check me
change memory so access memory and
changing memory H can we do anything
with that well the question is like can
we ask ubot very nicely to just modify
itself and so the theory would be here
well can we use the read and write
commands to override instructions in the
sense of can we just patch the signature
functions and so what we need to do here
is like we need to do a little bit of
math so we need to figure out where the
signature function is actually in the
memory uh we need to figure out where
uboot is basically relocating itself
which is kind of technical thing which
UB is doing and we need to calculate the
exact place in memory and then we can
use this command um basically which
writes this uh e016 at this particular
memory address and this basically overes
all the instructions of the of the check
function which means so what's the
consequence of that well if we Supply UB
with mous config what it we'll do is
that we basically ask you to patch
itself very
nicely which will disable the verify uh
function so we can start to modify the
kernel because we have modified the
kernel we can basically disable the elf
signature verification and we can
disable the root file system
verification and from there we can just
pull out the keys from upt and you know
we have everything compromised basically
at this point so we can run our own
kernels we can run our own file systems
so what we did what we did achieve with
that meod generally well we bypass the
secure boot process uh we can modify the
kernel we can remove all these checks
which are in there um we can also
disable as elos which sometimes gets a
little bit annoying and we can modify
the root file system um from there we
can start to install custom software and
get SSH access um one quick comment here
is uh it's not limited only on all
winner s so so this attack meod
surprisingly um works for many many
other devices so I tested it on other
robots I tested it on Smart speakers I
tested on media devices so this works
generally wherever you have Hub boot you
can use the memory commands to just
override and Patch ubot itself basically
as long as you have access to somehow to
the environment partition which brings
us to the next problem so how can we
modify the environment partition so the
problem is without root access we cannot
modify it for obvious reasons um and we
cannot also modify root file system if
you don't have show access to the device
and what one thing which I can do but
probably most of the people in here can
do is like to disorder the flash memory
which is kind of a little bit dangerous
and will definitely void your warranty
so the good news is I figured out a way
to do that for each of the devices so um
for the uh old P models we have a new
method which is the USB stick method
which I will explain in a minute um for
the newer devices uh we use like f boot
so we get it into boot loader and for
the all the Roo devices um we have a
thing which we call scary FAL Boot and I
will explain why scary
so as a quick recap for people who saw
the presentation two years ago um dreamy
is very very nice and gave us lots of
debug pins which are accessible without
competely this assembling device you
just need to basically remove a cover
and you have access there and all the
new devices have exactly the same pin
out so you can just you know if you have
like a rooting adapter which you can get
today for free here if I have still some
left um you can just connect to that and
you get access to ur USB and some other
things so uh let's talk about the USB
stick method
um so uh dreamy left um a back drawer in
all the P models for whatever reason I
think we just forgot about that there's
there's a script which gets executed as
soon as you attach an empty USB stick um
and this is how it looks like so
basically if you attach an empty USB
stick there's a function which will try
to check something but as you see this
function is basically doing exactly the
same thing it will pop a loog in show so
if you just attach empty USB stick they
forgot to do the actual authentication
so you have a shell and from there you
can just do the old methods of rooting
very very easy um and so after lock in
you can just patch the environment inall
custom software is super trivial uh the
sad news is apparently for the new
models we didn't forget that so I assume
they have two branches which at some
point separated they did the
implementation of the authentication in
the new models but they forgot to patch
it back so they have I think some some
weird issues with their um with their
code management um for the new um rber
rock models um we have this met F boot
um rout and basically what it does is um
we need to use some adapter we need to
use a cable to just get it into
bootloader mode so we need to short uh
the boot selection pin down to ground
and then we have a custom phix site
image which will basically um give you
give us um fast boot interface to access
the flash memory so it's kind it's
actually not really a fir update it's
kind of like a weird sketchy thing which
got zombie together out of different
parts which barely works but it works
perfectly fine for whatever we try to do
so what it allows us to automatically
patch the the boot loader and the
environment and it allows us to send the
the root file system and the kernel onto
the robot via USB so and it's very very
safe so so far we had zero bricked
robots and even if the robot is bricked
we can recover any robot by doing this
method without erasing data which is
existed before um there's the how to um
on my website um which you can just look
at um it's it's with lots of pictures so
it should be very trival if you want to
get adapters um there's some FS online
uh but you also can get some from me I
have some still some parts left so in
case you interested just hit me up let's
talk about the uh scary FL route um so
the problem which we have with Rober
Rock they a little bit smarter they
don't uh give us any The Bu pins outside
except for USB and um so you know I got
a little bit desperate so the first
approach which I typically do is I need
to completely tear the device down so I
spend $1,000 get a devices assemble it
like remove the PCB one thing which I
typically do is I remove also the the
main processor which is like 400
something pins and start to map out um
where the tracks are going um I remove
also the emmc on the back side um and do
the same thing so then a beig question
is like okay I take both pictures put
them above each other in my favorite
hacking tool Ms paint and uh look at the
data sheet and just map down okay where
are the pins so you see there I started
to kind of map down like oh okay I have
like uh rxtx F I have like the data
lines of the of the U and uh the same
thing I do at the front so basically I
run all the things down and uh figure
out where are the traces for what so but
I have some idea and one of the things I
noticed is actually I can I can get
access to all the MMC data lines and
pins which I need to access emfc memory
from the holes of the buttons so
basically I will just do a quick thing
that don't have much time uh basically
if you just assemble device you just
remove uh without the sing device you
just remove the one cover and you remove
the
rubber cover and you can access
everything from this hole without just
touching any screws on the back so you
don't need to disassemble the device you
don't um trash any warranty se you can
access everything from the holds of the
buttons I think my presentation is gone
this is my
laptop no okay let me sorry about
that
okay this my faster way to do that
actually all right I I I promise uh I
will be very quick for the last five
minutes because I'm running a little bit
of the
time um okay so the good news was uh
that I can access all the holes from uh
all the pins from
I am so
sorry I promise it worked better at
death
okay so why is it scary uh basically um
we can root the device now without um um
tear down we can access it from under
the cover and applies both for S8 ands
eight P dra um what we can do with that
is if you short the data zero pin to
ground at boot up it can't load the file
system so or the the even the boot
loader and will'll go into bootloader
mode which is kind of great for us and
then we can just spash it again over USB
so it's basically the same approach as
for the L10 Ultra all the arm models and
will'll be also how to um how to do that
very easily um the question is why is it
scary and the scary part is you need to
kind of basically find where the trace
is and I kind of Market it in this
presentation and you need to scratch the
soda mask and access the copper Trace I
would give you a demonstration but I
think I'm running definitely out of time
so uh maybe hit me up later and I can
just show you with a microscope how to
do that um don't do this meod by the way
if you feel uncomfortable as an
alternative you can still tear it down
so before you break your device it's
might be safer to disassemble it than
just connect to the actual pin on the
back of the of the main board um if i'ms
sure please ask others there's a
telegram group where a lot of people did
already a lot of exp like experiments
with that and did on their own so they
know how to do that um for the other
robor models it's a little more
complicated so sadly for most robots um
the process more less the same but um we
cannot access the The Flash or the buck
pins from outside so you need to
disassemble them
um here the alternative way to get into
FAL mode is to basically connect over
uard and press to um you know press the
the keyboard to while basically
accessing it uh you can check also my
website robot uh Robo Rob info. def for
the pin outs um or again Ask in the
community so for the last few slides
what can we do with root access so what
we have now so we have secure boot
defeated uh we can run custom software
but what kind of software can we run um
and the question is can we you know
build something of our own with like as
operation system with slam navigation
and II models well to do our own
software is a little bit complicated so
our main idea is like can we just
disconnect the device from the cloud and
just keep all the vendor logic in place
and just you know run you know with the
original software so one of the
questions is is like what what kind of
different ways we can we do that some
people think we can just disconnect the
cloud um this will make the robot work
in most cases like if you press the
buttons but you will lose the features
like live Maps uh or Advanced features
of map editing and why rooting the
device if we just basically lose all
this functionality so instead what we
try to do is like we try to redirect the
cloud traffic to our own software and
for that we need to extract some
firmware secrets and basically you know
pointed to like a fake Cloud emulation
so let's talk quickly about replacing
the cloud um the initial approach which
we had was to redirect DNS traffic um
and this was kind of easy we were just
changing the host files and or used IP
tables to reroute that sadly xiaomi who
runs the ecosystem the back end kind of
figured that out and so what we did is
like they started to introduce some
counter measurements and they basically
hardcoded IP addresses in the cloud
binary uh which was a little bit mean
because that means that DNS really
Direction doesn't work anymore in our
counter measurement was basically we you
know counter measured their stuff we
just replaced their hardcoded IP
addresses with our hardcoded IP
addresses and you know it was just
working fine so this allowed us to run
Vudu which is like the custom software
which is developed by uh Zan and it
completely replaces the cloud and the
vendor apps it runs locally in a robot
so you have like one package which has
everything in it like on the robot
itself um it features everything which
the cloud offers you like full um robot
control life maps map editing the robot
configuration it has a responsive U web
interface um and it works both in uh
mobile and desktop it gives you also
rest RP and mqtt functionality which is
important for people who run home
automation software um the weird thing
Choice from um from Z was basically to
use embedded JavaScript there might be
something more performant but I mean it
works this device are powerful enough
anyway um to give you some ideas how
this looks like I mean it's a very nice
um interface and it gives you you know
all the functionality which you need um
one thing how do you get um you know C
the custom software generated there's a
website called dust B and one of the
reasons why I create this website was
basically that Mac users started to
break their devices because Macs are
kind of Behaving a little bit weird how
to they unpack file systems and repack
them again so I just want to avoid the
support cases and just you know um have
a website which takes care of that so um
basically with this website you can
build your own uh um um robot firmwares
and uh they most of the time
reproducible builds uh but it's easy to
use it works for Jimi robbero and bomi
and some others um if you don't trust it
the scripts are online on GitHub you can
just do it in themselves themselves you
just need a firware file which we can
provide you out of legal reasons but if
you're interested in that uh you can go
to this website all right um there's a
couple more interesting things but I
think it will get torn down by from the
Let Me Maybe quickly go through that
exactly we have a proposal for you guys
um as the time has elapsed already and
due to technical issues we already are 5
minutes over we just want to give
everybody the opportunity to go to the
next talk perhaps um however as this
stage uh will only continue uh at 12:30
with a movie night with war games um
which you could definitely have a watch
um we want to also give you the
opportunity to share and demonstrate
especially the robots you brought here
until um 12:00 yeah I think if that's
fine for the
crowd
looks like it so please continue all
right um yeah sorry for the technical
issues I I tested everything before but
you never know anyway what kind of
interesting things did we find well we
have some camera access all the devices
use the video for Linux uh sub subsystem
for their cameras so if you have root
access on the device you can just talk
to the cameras via the the device notes
like video0 video one and some of the
vendors were even so nice and left as uh
debugging tools for the cameras like
camera demo which is an openner tool
where you can just pull pictures and
configurations from the camera so um let
me show you some examples from the
optical
sensors um on this is like the robok uh
g10s which is mostly used in China and I
think in Russia and some other Eastern
European States because we can get it
cheaper uh on the left you see the robot
seeing itself in the mirror so some
philosophical picture basically and on
the right is some example of the you
know
um dreamy is a little bit better has a
better ni of cameras uh so on the left
you see the dreamy l10s Ultra again in
the mirror uh and on the right you see
one of the pictures which it does use
for object detection this is in our lab
in Boston so um this is the kind of
quality of pictures you get nowadays um
this is one where um I uh this is from
the S S8 basically on the left it's a
little bit weird because I think I I
didn't had the exposure correctly uh on
the right you see my blue elephant which
I left in the tent I think um so it's
not blue here because it has like an
infrared camera so it sees basically
just in black and white all right um
let's talk about quick findings uh which
we found at dreamy so last time if
people saw the last time presentation
you might uh seen some very sketchy
things which we left in firmware
goodness good news this time they didn't
leave SSH credentials to the backend
service in the firmware this time so
that was good um for them I assume they
made us a lot of improvements in the
software so the software is more stable
it's more clean which is also very good
for us um one of the bad news is that
they introduced a lot of like calling
home functions and started to enforce
geob blocking by IP addresses so they
introduced a lot of functions where they
would detect if you um grab uh if you
buy a cheap device in in China and use
it anywhere else um and I think vice
versa so there's kind of some weird
stuff going on um also one quick thing
is um many robots will detect where they
are a robo Rock does it dreamy does it
and a couple other companies do that too
if you're for example in America uh they
will disable some functions in the
software basically so you don't have
Edge cleaning anymore if you um are in
the US if it detects that it's in us and
part of the reason is apparently that
iRobot has patterns on that which expire
I think next year so I would expect that
this functions gets enabled magically
next year also some devices have a dust
sensor to the test to to test how dusty
the air is but it's not enabled in
software because iot has again a patent
on that which expires next year so I
think it's kind of weird pattern stuff
so in case of you wondering why they so
livid about uh geob blocking is one of
this this legal reasons also so um the
other thing is u g robots and also other
robots support camera monitoring so you
can watch your pets remotely um and for
legal reasons most of the time if you're
for actually all the devices if you
enable the remote camera feature it will
warn you via voice prompt and say like
oh camera monitoring is enabled and it
will repeat that every um 3 minutes or
so um the uh this is I think a legal
requirement in many many countries and
um so
yeah um one of the um things is that
these voice prompts need obviously to be
localized so for example you don't want
to hear like a um you know English voice
prom if you in Germany and some other
things so the this audio files are part
of an externally um downloaded uh audio
pack the problem of this audio pack is
they are not signed or encrypted so
basically you can just override the
audio prompt that this warning audio
prompt with an empty file and basically
push it onto the device and just disable
this prompt and you can spy on people
which is probably I think a little bit
illegal so don't do that again um that's
uh probably very illegal in Germany I
think um and uh the important aspect
here is it works on all devices not only
rooted devices so be a little bit
careful if you get device from somewhere
else um one of the biggest fails I saw
so far for a very long time was how they
sign their signatures so um I think this
is part of a panic process which we had
last year or two years ago um so new uh
robots um um of dreamy encrypt and sign
the firmware but in a very weird way so
the firw payload looks like this so you
have an outside zip archive which is
encrypted with static password which is
different for each of the models then
they have a random file uh which is
signed with a private Key by dreamy
which you don't have um and then you
have a zip archive in in inside which is
encrypted with the random files the pass
well what's the problem here well the
actual firm is not signed only the
password is so basically they signed the
password but they didn't sign the the um
you know the actual firmware so you can
basically create your fake firmware
update but just re reusing the password
which we used before uh as an analogy
what I would say is imagine you could
prove that the phone is yours if the pin
on the phone is the same as yours so
it's kind of like if I have a phone
which has the password 1 2 3 4 well
actually know what I think about about
the analogy is kind of weird but okay
it's a huge problem
so that's a very very huge fail so
basically you can create your own
firmware updates um which are correctly
signed in a way um without um the the
private key of dreaming because we just
signed the password and not the actual
firmware all right as a summary finally
um so we have rooting methods for most
of the current released dreamy and roboo
models so we can bypass secure boot uh
we can bypass any other security
mechanism uh we have persistant we can
um run our own custom Ware now we can
validate and verify vendor claims which
so which is a very good thing is
probably what the tff should have done
some time ago um and the bootloader
attack is also appliable to many many
other devices so if you have Smart
speakers and they run U Boot and just
take a quick look into that if you can
you know manipulate that um and this uh
this whole rooting method basically
allows us also to do further research
into iot and AI um as some final notes
um please don't use the knowledge for
bad things um uh if you do rooting um
please help others uh if they need help
with rooting uh not many people are kind
of uh feeling comfortable with doing
that uh especially if you have rooting
pcbs uh feel free to share them in your
hacker space um the tools Mo are mostly
published already but there there's some
still some work to do because I was a
little bit busy over the next couple
days uh over the last couple days so uh
if there's something not published yet
please be patient this will be published
very soon um if you're interested in
more vacuum robot hacking uh or Flash
forensics uh you can join me at the
hardware IO in the Netherlands which is
in beginning of November um there might
or might not be a talk maybe about
vacuum robots again this this time not
about Rob rock or uh dreamy so uh we
will see so some acknowledgements um I
want to thank uh Dan BMA G beer Z Bayer
and Mikel Corin and obviously also all
the testers in the community and yeah
that's my presentation if you have any
questions feel free to contact me um on
V telegram Twitter or email and thank
you very much um I can also do a quick
demonstration of the microscope if
you're interested are you
interested all right
okay um let me just change to the camera
by the way the camp is very dusty as you
can see the robots are not meant for
being on a camp so as mentioned before
um for the robber Rock it's a little bit
sketchy or a little bit scary because
you have to basically um remove the uh
the cover is very easy you can just
remove it and you have here the um the
plastic part uh the rubber part and then
you
need to find the
[Music]
trace oh
oops as you see um CS people always
tricky all
right uh let me just change it it real
quick so this is the left button
basically and as you can see in a second
we have there a
trace which is basically here comes the
VR out and then goes through here and
goes there so one thing which you can do
to basically root it you take like
something pointy you don't want to cut
it you want just want to scrape off the
the trace a little bit so you take it
and you find a any way here and you just
start to
scratch and at some
point if so if you use a knife just
scratch it don't cut it please and at
some point you will see the copper and
that should be more or less enough to
kind of hold it down for like in in a
moment when you power the device on and
it will go into bootloader mode just a
scratch a little bit I know it looks
scary and you need to have some very
good eyes if you have a microscope
that's bonus points but uh you might use
also a phone and as you can see a little
bit you see like already now the copper
and that's enough you just need to have
like a very short contact it's it's not
Mission critical basically to you know
keep keep it in in place actually do I
see the copper Let Me Yeah scratch even
a little bit
more it's a little bit tricky to do it
on
camera
the more effort you put into that the
less it's
visible all right I think it should
be okay just imagine that you see the
copper there you should see at some
point the copper again don't catch a
trace uh but you can scratch it off
anywhere you want for uh the other
devices it's a little bit
easier the the scary aspect of like um
rooting the dreamy devices is to remove
the cover and it it will feel wrong
because you need to use a lot of force
and because I did that already probably
50 times for these ones this is easier
but at some point it just comes off and
you have the the buck pins very very
nicely here so uh from a rooting
perspective dreamy is great but nowadays
we can also root robber Rock so it's
kind of like I mean you're not limited
to one company or the other can just uh
um decide freely uh all right uh if you
have any questions feel free to ask them
probably after this thing outside have a
bag of couple rooting adapters left uh
sorry for the technical issues um it
worked for me before but I mean you
never know it's it's computer stuff um
all right thank you very much for being
here and thank you very much for your
[Applause]
[Music]
patience