WEBVTT

00:00.000 --> 00:01.960
Hi, I'm Cecilia.

00:01.960 --> 00:02.880
And I'm Denise.

00:02.880 --> 00:05.320
And today we are going to talk about sex toys.

00:05.320 --> 00:06.540
Smart sex toys.

00:06.540 --> 00:08.780
Well, insecure smart sex toys.

00:08.780 --> 00:09.280
Yeah.

00:09.280 --> 00:18.920
There have been previous researches on this subject, and you can find them online, but many devices that are still on the market have a lot of vulnerability and privacy issues.

00:18.920 --> 00:24.900
So, in our research we tried to find these problems and today we are going to share with you our results.

00:25.100 --> 00:25.800
Exactly.

00:25.800 --> 00:30.040
But first, let's do a quick recap on the history of these devices.

00:30.520 --> 00:34.020
They have actually been with us for a very long time.

00:34.020 --> 00:36.000
Actually, more than a century.

00:36.000 --> 00:41.580
The first sex toys were used as medical appliances back in the 1900s.

00:41.580 --> 00:47.740
They were used to cure different types of pathologies, including some psychological ones.

00:47.780 --> 00:59.980
Then, throughout the 1920s, 30s, 40s, 50s, even to the late 60s, new devices, new models, new shapes started to appear in the market.

01:00.220 --> 01:09.320
And they were, this time, advertised towards the home users that could buy these products, take them home, and use them whenever they wanted.

01:09.660 --> 01:14.640
Imagine powering one of these via the electric power grid, right?

01:14.640 --> 01:18.740
Well, let's talk about physical security back in the 20s with one of those.

01:19.200 --> 01:34.800
Then, by the 70s, the emergence of new feminist movements alongside the boom of the porn industry propelled those devices, and new forms, shapes, and materials started to be used.

01:34.800 --> 01:58.540
But by the 2000s, this thing starts to get interesting for us, because new devices that could be controlled remotely via infrared connectivity started to appear, and by the 2010s, there were several devices that could be controlled locally via Bluetooth with an application on your own smartphone.

01:58.540 --> 02:08.020
Yeah, with the arrival of IoT and new technologies, many manufacturers decided to integrate these toys with mobile apps and internet connections.

02:08.020 --> 02:30.420
So, nowadays, in 2020, we have toys that have a lot of characteristics and that can be used remotely, like control the toy remotely through the mobile app or even a web browser, and change the vibrating patterns, or even synchronize the device with a video call,

02:30.420 --> 02:39.660
an audio book, a playlist, or even have Alexa support or other assistance support to control them on voice commands.

02:39.660 --> 02:46.520
So, all of these functionalities are very interesting and also open the door to many vulnerabilities.

02:46.520 --> 02:53.280
Exactly, and they open the door to new models that can connect between each other.

02:53.760 --> 03:05.820
And also, we are now starting to see a trend towards smart 6 robots that have a lot of different capabilities that can be connected to the internet.

03:05.880 --> 03:20.880
They have certain artificial intelligence apps that can be installed on the device, and these apps, of course, have a lot of vulnerabilities that we can somehow assess to try to bypass.

03:21.040 --> 03:36.260
So, we actually contacted a few of these vendors to ask them about the characteristics of these smart 6 robots, and we found out that they are following several bad practices when it comes to security.

03:36.280 --> 03:45.980
So, the way these smart 6 robots work is that they actually have a smartphone that functions on their head, basically.

03:45.980 --> 03:47.360
Like a brain.

03:47.540 --> 03:51.300
And that connects to the rest of the sensors of the body.

03:51.660 --> 04:01.380
So, that phone can be actually very vulnerable, and the updates are actually delivered through e-mails.

04:01.380 --> 04:04.680
So, the user has to install the APKs themselves.

04:04.680 --> 04:09.040
Talk about security when it comes to these types of devices.

04:09.400 --> 04:21.020
Well, apart from the devices, if we think about the sex industry and the adult entertainment industry, these industries have already been the target of several cyber attacks.

04:21.120 --> 04:36.500
And the first attack that comes to my mind is the Ashley Madison social network, which a couple of years before was the target of an attack, and the details, the information of more than 30 million users was exposed online.

04:36.500 --> 04:42.400
So, a lot of cheaters were revealed, and many people had a lot of problems in their relationships.

04:42.400 --> 04:49.840
And we can also think about Tinder, this dating app that has already been found in many vulnerabilities.

04:50.280 --> 05:03.480
And also, we have to think about the many scams that are based on fake apps, or fake lab promises, or even sextortion based on stolen information.

05:03.660 --> 05:16.640
So, if to these attacks to the sex industry, we add the fact that IoT devices are being compromised by attackers to perform different types of attacks, well, that's a problem.

05:16.640 --> 05:30.820
And we can think, for example, about the Mirai network, or about a case where attackers got control of a thermometer in a casino's fish tank, and then from there could jump to the casino's network.

05:30.820 --> 05:46.200
So, if we sum up the industry of sex that has been the target of cyber attacks, with the many IoT devices that we have today in the market that are already being used by attackers, well, the combination is a little bit scary.

05:46.380 --> 05:48.880
So, what can go wrong with these toys?

05:48.980 --> 05:54.960
Well, first of all, an attacker can put a backdoor or malware inside of one of these toys.

05:54.960 --> 05:59.180
But also, these devices are permanently advertising themselves.

05:59.180 --> 06:02.620
So, they are permanently sending information of their presence there.

06:02.620 --> 06:10.760
So, it's pretty easy to find if a toy is present on a hotel room, or if someone is carrying one with him.

06:10.760 --> 06:21.880
So, this can lead to several issues, like information disclosure, information very sensitive, for example, as sexual orientation, sexual partners, or sexual practices.

06:22.020 --> 06:32.140
And this can be some problem in many countries that have laws against some sexual practices.

06:32.140 --> 06:39.640
But also, we can think about an attacker that gets control of one of these devices while a user is playing with it.

06:39.640 --> 06:47.900
So, imagine a person has a toy, it's playing at home, but then an attacker gets control of that toy and is the one that is really sending the commands to the toy.

06:47.900 --> 06:49.480
Would that be sexual assault?

06:49.480 --> 06:50.760
What happens there?

06:51.000 --> 06:54.760
These are things that we have to start considering with smart sex toys.

06:55.340 --> 07:03.380
So, at the start of our research, we had to choose the devices that we were going to use for our research.

07:03.380 --> 07:06.620
Basically, the models that we were going to buy.

07:07.080 --> 07:17.640
And, voila, there were so many different vendors, so many different models, and it was really hard to choose with so many different characteristics, each and every one of them.

07:17.860 --> 07:21.920
So, we did what anybody would do in this situation, right?

07:21.920 --> 07:23.500
We went to the Museum of Sex.

07:24.060 --> 07:25.360
Yes, in New York.

07:25.360 --> 07:27.480
We were in New York and we visited the museum.

07:27.480 --> 07:35.600
Exactly, and we started actually testing different devices that you could test in the site.

07:35.800 --> 07:38.760
And we didn't bring our laptops with us.

07:38.760 --> 07:39.740
We should have.

07:39.740 --> 07:40.160
Yeah.

07:40.620 --> 07:48.780
But we ended up choosing two vendors that we think were one of the biggest, or two of the biggest.

07:49.300 --> 07:49.880
So...

07:49.880 --> 07:51.640
Are you referring to the size?

07:51.640 --> 07:51.680
No.

07:51.680 --> 07:52.900
Or actually the vendors?

07:52.900 --> 07:54.000
Oh, come on.

07:54.000 --> 07:55.980
Don't do this to me.

07:56.420 --> 07:57.860
Just thinking, just thinking.

07:57.860 --> 08:00.140
Okay, the first one is Lovenz.

08:00.140 --> 08:11.440
I'm sure many of you know this brand if you're interested in sex toys and security of sex toys, because there have been research on this particular vendor.

08:12.140 --> 08:17.480
This brand has a lot of smart sex toys.

08:17.480 --> 08:25.300
You can connect them over a Bluetooth network or even over the internet.

08:26.040 --> 08:28.880
And there are so many different shapes and sizes.

08:28.880 --> 08:37.800
And we have also WeVibe that we choose because they also have a lot of smart sex toys and they are very important in the market.

08:37.800 --> 08:44.740
And I'm sure you're aware that there were several researches regarding this vendor in the past.

08:44.740 --> 08:48.160
So we wanted to know how much they have changed.

08:48.260 --> 09:00.640
So the first we did was we visited the websites of these two vendors and tried to look at the characteristics of their different models.

09:00.640 --> 09:13.160
So the first thing that you can see is that there is a lot of information about colors, materials, how much the battery lasts, how much does it take to charge them.

09:13.160 --> 09:27.020
But there were no mentions, at least on the websites, about protocols, encryption, and the security that was being applied to these apps and this firmware to make it secure.

09:27.120 --> 09:35.760
So this is something that happens a lot with this type of IoT devices, in particular sex toys.

09:35.760 --> 09:39.260
So the first step was to understand the architecture.

09:39.260 --> 09:41.800
How are these toys connected?

09:41.980 --> 09:52.360
So the toy connects to the user's smartphone using a personal area network like Bluetooth or, in most cases, Bluetooth Low Energy.

09:52.380 --> 10:06.800
Then, from the smartphone, the user connects to an API from the vendor, usually on a vendor server, and then the remote partner, that can be anywhere in the world, connects to that API and from there gets control of the remote toy.

10:07.140 --> 10:27.180
So in this architecture, in this model, there are a lot of attack vectors that an attacker could use, like go for the personal area network connection or go for the Bluetooth connection, maybe something on the smartphone, on the app, or even the remote connection through the internet API.

10:27.260 --> 10:29.240
So that's what we analyzed.

10:29.340 --> 10:30.140
Exactly.

10:30.140 --> 10:46.620
But first, a quick disclaimer, because all of the vulnerabilities that we are going to see throughout the talk that we are going to discuss have been already fixed and we have permission to perform and distribute the content that you are going to see.

10:46.620 --> 10:49.920
So just to be clear on where we are standing.

10:49.920 --> 10:55.460
So the first toy we are going to show you is this naughty one right here.

10:55.680 --> 10:57.240
He can't stand still.

10:57.240 --> 11:00.740
So this is the Jive from WeVibe.

11:00.740 --> 11:03.760
This toy is pretty interesting because it's a wearable.

11:03.760 --> 11:09.440
It means that the person wears this toy and can go around playing with this toy.

11:09.440 --> 11:17.700
So usually a couple use these toys in bars, restaurants, or even discos, not only in hotel rooms or inside a house.

11:17.700 --> 11:23.400
So that was pretty interesting for our analysis because it's a toy that you can find anywhere.

11:23.640 --> 11:35.800
And it's, as we said before, it's permanently advertising its presence and an attacker can easily find one of these like 30 feet around.

11:35.800 --> 11:42.060
Yeah, it is designed to be used in insecure networks or it should be designed for that.

11:42.060 --> 11:46.240
WeVibe had some trouble when it comes to information security in the past.

11:46.240 --> 11:59.980
It was at DEF CON a few years ago that a research was presented where it was proven that they had collected too much information from their users without their consent.

11:59.980 --> 12:06.580
And so they were sued and they had to pay $3.7 million, which is a lot.

12:06.580 --> 12:15.460
So we wanted to see if they had learned from this experience and they had changed their applications to make them more secure.

12:15.720 --> 12:20.300
The first thing that we checked was the remote control via the URL.

12:20.520 --> 12:38.360
This application has the possibility to create a 12 characters string that it's been used as a token and you can share with your partner and so they can connect via the application to control your own sex toy.

12:38.380 --> 12:46.980
So this token used to have some problems in the past it didn't expire as it should but now they actually fixed it.

12:46.980 --> 12:50.740
At least we couldn't find any problem with this right now.

12:50.740 --> 13:00.200
The first things that we checked were some privacy issues that could have critical consequences for their users leading to information disclosure.

13:00.620 --> 13:04.680
There are so many good things that WeBypass changed.

13:04.680 --> 13:14.200
For example, now they block all screenshot attempts, which is great and it's quite common in these applications that tend to handle such sensitive data.

13:14.200 --> 13:31.620
They applied end-to-end encryption to encrypt all the pictures that you are sending and their files actually are deleted from the chat once the chat ends which is great so you know that your pictures do not linger on the phone of your partners.

13:31.620 --> 13:38.220
But still there were some issues that we found with this transferring of images.

13:38.220 --> 13:54.240
Yes, well, the pictures sent on the chat are saved to the storage inside the app sorry, to the app storage inside the phone so that no other app can access that picture or you cannot access that picture from outside the application.

13:54.300 --> 13:59.360
But if the attacker has a rooted phone, well, they can access the app storage.

13:59.360 --> 14:01.100
In that case, that's what we did.

14:01.100 --> 14:08.260
We found out that the picture that is stored inside the application still has all the metadata in it.

14:08.260 --> 14:12.980
So when you send a picture, the metadata is not deleted before it's sent.

14:12.980 --> 14:29.560
So that picture can be uploaded to a site like, for example, Metapix and an attacker can find out where the person that sent the picture is actually located, the exact location by the GPS details, information.

14:29.920 --> 14:40.300
The attacker can also know the model of the phone that's being used, the camera, the time and date the photo was actually taken, and if it has been edited or not.

14:40.300 --> 14:45.320
This information at first could sound like something that no one could use.

14:45.320 --> 14:52.120
But the thing is that many people usually use these applications to talk to strangers.

14:52.120 --> 14:58.340
And also many people share online their tokens or their remote controls.

14:58.340 --> 15:10.100
So if that person is trying to hide his or her true personality or is trying to hide where he or she is, well, the metadata and the pictures does not help.

15:10.500 --> 15:11.500
Exactly.

15:11.500 --> 15:22.080
And sometimes this is not a personal choice, but this is also can be part of the service as a cam girl or a cam boy service.

15:22.080 --> 15:27.700
So we need to protect these people that are using these devices basically to work.

15:27.760 --> 15:28.680
What else?

15:28.680 --> 15:42.280
Well, this application actually includes a four-digit PIN that they can use in order to lock the application so no one else can access the application unless it has a four-digit PIN.

15:42.280 --> 15:53.740
This functionality might be in place to protect the app from your kids or something like that, your nieces, or maybe also a jealous lover.

15:53.740 --> 16:06.260
So the consequences can also be kind of critical if you're talking about a toxic relationship because this application only allows one partner at a time.

16:06.260 --> 16:10.940
So polyamory has not arrived to this application.

16:11.440 --> 16:29.720
So this PIN can actually, since it's just a four-digit PIN, can be brute-forced by using a bad USB with a very simple script because it takes the keyboard input and not like a grid of buttons or other type of components.

16:29.720 --> 16:41.620
So it's quite trivial to access this token and therefore access the control panel of the application and the usage of the application itself.

16:41.840 --> 16:45.060
And like we've seen in the video, just unblock the app.

16:45.060 --> 16:46.080
Exactly.

16:46.080 --> 16:49.540
So what else regarding these toys?

16:49.540 --> 16:55.980
Well, as we spoke before, these toys use Bluetooth Low Energy.

16:55.980 --> 17:05.400
And this protocol has a particular characteristic that is that there are two types of devices, peripheral and central devices.

17:05.400 --> 17:14.140
Peripheral devices that are usually the toys have to be constantly advertising their presence to wait for a connection from the central device.

17:14.140 --> 17:24.460
That means that while a toy is not connected to a smartphone, it's permanently advertising, that they are waiting for the connection.

17:24.460 --> 17:25.900
This means that...

17:25.900 --> 17:26.640
Like that.

17:26.640 --> 17:27.420
See?

17:27.600 --> 17:29.000
You're doing that.

17:29.000 --> 17:30.640
I'm not doing that.

17:30.680 --> 17:31.340
It's crazy.

17:31.340 --> 17:32.300
We are already being hacked.

17:32.300 --> 17:33.360
Who is doing that?

17:33.360 --> 17:33.960
I'm not sure.

17:33.960 --> 17:34.900
There's nobody here.

17:34.900 --> 17:36.040
It's just us.

17:36.260 --> 17:37.660
Okay, so...

17:37.660 --> 17:39.020
Is somebody here?

17:39.760 --> 17:41.240
A ghost.

17:41.300 --> 17:51.640
So the attacker can download an application like this Bluetooth scanner and just try to find out if there are any devices around.

17:51.640 --> 17:59.860
In the example that you can see on the screen, we are finding the Jive that's here and the Max that we are going to talk later about.

18:00.480 --> 18:10.000
So it's pretty easy for the attacker to just find these devices, find a lot of information from these devices and start using this scanner as a compass.

18:10.000 --> 18:16.860
A compass to get closer to the device just using the signal strength of each device.

18:16.860 --> 18:28.780
So the attacker can easily move around looking for the best signal strength and that would give the attacker an idea of where is the toy present, who is wearing or using that toy.

18:28.820 --> 18:31.300
That's pretty much a lot of information.

18:31.300 --> 18:51.100
Yes, and then they can connect to the toy and they don't even need the app to do that because there are several websites that you can use by using the web Bluetooth APA to connect to the sex toy and send comments to the sex toys.

18:51.100 --> 18:57.720
And they are still functioning because there is no authentication when it comes to this Bluetooth connection.

18:57.720 --> 19:02.020
And so it's quite vulnerable to this type of hijackings.

19:02.020 --> 19:13.020
So not only an attacker can get control of this toy whenever the toy is available, but also, could an attacker get into a middle of a conversation, into a middle of a connection?

19:13.020 --> 19:14.900
Well, that's actually what we tried.

19:14.900 --> 19:21.940
A Bluetooth man-in-the-middle attack, where the attacker tries to get in the middle of a communication and control the toy.

19:21.940 --> 19:26.980
So in a common scenario, a toy would be connected to the user's phone.

19:26.980 --> 19:41.520
But in this case, what the attacker will try to do is get in the middle of that connection, create a fake toy in his or her computer, and then make the user connect to the fake toy instead of the real toy.

19:41.520 --> 19:49.160
And the attacker will be the one who will forward the commands to the toy or maybe change them in the middle.

19:49.740 --> 19:54.820
So, in the next video, we are going to see a proof-of-concept of this.

19:54.860 --> 20:02.420
So what we did is use the tool BTLJuice to create a man-in-the-middle attack.

20:02.420 --> 20:10.120
This tool uses two Bluetooth dongles and the attacker will need two computers, or in this case, two virtual machines.

20:10.120 --> 20:15.080
In the first one, what the attacker would do is create a Bluetooth proxy.

20:15.080 --> 20:23.200
This Bluetooth proxy will be in charge of getting all the Bluetooth communications, capturing all the Bluetooth traffic.

20:23.380 --> 20:35.340
Then once the proxy is up, the attacker can go to the other computer or the other virtual machine and will connect to the Bluetooth proxy, to the BTLJuice proxy.

20:35.660 --> 20:42.620
And then, once connected, you will see that this tool has a web interface that's very useful and easy to use.

20:42.620 --> 20:50.080
So, in that interface, the attacker can see all the Bluetooth devices on range.

20:50.320 --> 20:53.560
And there you will find the child, our toy.

20:54.000 --> 21:05.660
So then, once the attacker finds the toy, can connect to that toy, and as you see in the console, the tool BTLJuice will create what is called a dummy.

21:05.660 --> 21:19.360
It's like a fake toy, a fake device, where the user, the victim, will connect but will still think that it's the real toy because this dummy will copy all the characteristics of the real device.

21:19.500 --> 21:26.680
So, then the victim connects to that dummy, to the fake toy, and when sends a command, the toy actually moves.

21:26.680 --> 21:32.720
As you see on the screen, the attacker is capturing all these packages, all these commands.

21:32.720 --> 21:37.800
So the attacker can start knowing some commands and getting some traffic.

21:38.720 --> 21:48.400
So, there can you see the user is changing some vibration patterns, and the attacker is there capturing all of these packages.

21:48.480 --> 21:51.500
So then, the attacker can get some commands.

21:51.740 --> 21:56.620
But what the attacker can do next is take any of these packages and just reply it.

21:56.620 --> 21:58.760
That means send it back to the toy.

21:59.120 --> 22:05.300
So now, the attacker is sending a command, and while the victim is not doing anything, the toy is moving.

22:05.300 --> 22:06.760
So the toy is vibrating.

22:06.760 --> 22:11.280
So the attacker is the one that is actually controlling the toy at this point.

22:11.520 --> 22:16.820
You can see it's sending different type of commands, and the toy is responding.

22:19.850 --> 22:26.010
Also, what the attacker can do when the device is stopping, is change these packages.

22:26.010 --> 22:27.690
Just add new commands.

22:27.690 --> 22:35.390
These commands can either be taken from the source code of the application or by capturing a lot of traffic.

22:35.390 --> 22:38.630
So there, for example, you have the max intensity.

22:38.670 --> 22:44.850
So the attacker can send a command to the toy to vibrate at its maximum intensity.

22:45.190 --> 22:48.610
And there you will see how the toy is now vibrating.

22:48.730 --> 22:57.310
So the attacker can not only intercept the actual commands, but also change them or send new commands to the toy.

22:57.310 --> 23:01.750
So in this case, I don't know, maybe it could be a sexual assault.

23:01.750 --> 23:03.730
Something to talk about or to think about.

23:05.870 --> 23:21.350
So we have proved that these devices are still vulnerable to this type of attack and no authentication has been included in these toys in the past years, which was the goal of this research.

23:21.350 --> 23:29.110
So now we are going to analyze our Lovance device, which is the max device that you are watching right now on screen.

23:29.110 --> 23:33.770
This device can be synchronized with its counterpart.

23:33.770 --> 23:37.890
It can be another max device or a Nora device.

23:37.890 --> 23:54.010
These models are interesting from a hacking perspective because if a hacker has control over one of these devices, then immediately compromises the other one that replicates the movements of the first.

23:54.010 --> 23:59.710
So you can have two devices under your control by the price of one.

24:00.630 --> 24:16.730
So we started analyzing the application that is used to control this device, that is the Lovance Remote application, and we started analyzing the privacy features related to this application.

24:16.730 --> 24:27.950
Well, we could see that it uses a 4-digit PIN to lock the application, same as the other one, but there were some concerns, right?

24:27.950 --> 24:31.710
Yes, well, some questionable design choices from Lovance.

24:31.710 --> 24:35.430
To start, the screenshots are allowed.

24:35.430 --> 24:40.990
So for a sexting application, that's pretty much something to think about.

24:40.990 --> 24:46.530
But also, well, the metadata was deleted from the pictures before they are sent.

24:46.530 --> 24:47.550
That's great.

24:47.550 --> 24:55.330
But the pictures that a person sent on a chat, well, are very difficult to delete from the remote smartphone.

24:55.330 --> 24:57.430
They practically stay there.

24:57.430 --> 24:59.630
What do we mean by this?

24:59.630 --> 25:05.270
Well, let's imagine you're using the application and you send your partner your own picture.

25:05.470 --> 25:10.130
Let's say that you now open the options menu on this picture.

25:10.130 --> 25:11.710
Well, you see different options.

25:11.710 --> 25:16.030
First of all, you can see that you can delete the picture.

25:16.030 --> 25:19.430
But this deletion only works locally.

25:19.430 --> 25:26.930
It doesn't remove the picture from the server nor the phone of your lover.

25:26.930 --> 25:30.570
So basically, once you send the picture, you lose control.

25:31.350 --> 25:38.590
Also, the remote partner can also forward or download your picture whenever they want.

25:39.010 --> 25:49.330
And since this picture stays on the server, then they can also query the server to get the image if they know the URL of this particular resource.

25:50.010 --> 25:59.290
The lover's privacy policy says that these pictures stay in their servers unencrypted, by the way, for seven days.

25:59.290 --> 26:02.870
But we've actually found that they can stay longer.

26:03.390 --> 26:07.870
There's actually a hidden option that's called Recall.

26:07.870 --> 26:14.570
And that's the one you want to use when you want to delete a picture from the two devices.

26:14.570 --> 26:22.190
But this option is only available for two minutes after sending the picture and then completely disappears.

26:22.190 --> 26:30.930
So if you never tried to delete the pictures right after you send it, then you don't even know that this function even exists.

26:30.930 --> 26:40.490
So that's something to have in mind if you or one of your relatives or someone of your friends is actually using this application.

26:41.210 --> 26:56.190
Also, when we start analyzing the traffic, you can see that there are several queries, HTTP GET queries, that are broadcasting information such as the user ID.

26:56.190 --> 27:01.190
In this case, it's the same one as the email addresses.

27:01.190 --> 27:08.190
When you register into the application, you can set a fantasy username and you need to provide your email.

27:08.190 --> 27:09.370
Well, guess what?

27:09.370 --> 27:14.070
That email is actually shared with whomever you're chatting with.

27:14.070 --> 27:17.410
Let's say you open up a chat with one of your friends.

27:17.410 --> 27:24.430
Well, the application uses your email as your user ID to identify your phone.

27:24.430 --> 27:29.830
So they are sharing your email with the person that you're chatting.

27:30.130 --> 27:38.630
And they can look up your email in the internal files of the phone because they are not encrypted.

27:38.630 --> 27:49.070
And even if they were, you can still somehow manage to get through this information by injecting the application at runtime.

27:49.530 --> 27:58.130
And there are other ways, other issues related to the way this application manipulates the email addresses.

27:58.130 --> 28:07.250
For example, you can query the server to see if a given email address is registered on the system.

28:07.250 --> 28:12.170
So you can know based on the response if the email exists.

28:12.170 --> 28:30.530
You could use a leaked database of emails from previous attacks, let's say the Ashley Madison social network attack, and then query these emails against the server because there are no protections against brute forcing.

28:30.530 --> 28:33.490
So you could query all that you want.

28:33.950 --> 28:37.050
And it works the other way around.

28:37.050 --> 28:40.910
You can also query for usernames and get their emails.

28:40.910 --> 28:53.830
So let's say you start browsing the application and you find the patterns library where users can share their patterns of use publicly with other users.

28:53.830 --> 29:14.770
So you could find usernames listed in this library and then query the server to get their emails and start different attacks as social engineering or sextortion attacks or even use these emails to launch other types of attacks since these are also the user IDs.

29:15.310 --> 29:18.830
So these emails could be used to identify a person, right?

29:18.830 --> 29:19.510
Yes , exactly.

29:19.510 --> 29:29.890
Well, apart from the library, we need to think that many people just share their username, their nicknames online for remote session with someone around the world.

29:29.890 --> 29:34.910
But most of the time, these are fantasy names like sexyscot26.

29:34.910 --> 29:43.810
Well, in this case, an attacker could find out what's the email for sexyscot26 and find the real person behind that nickname.

29:44.230 --> 29:47.050
Be sure not to register with a corporate account, right?

29:47.050 --> 29:48.690
Yeah, for sure.

29:49.530 --> 29:56.670
Well, apart from this, Loven's remote control also works with an URL.

29:56.670 --> 30:06.870
So the person that has this toy can create a remote control URL for his or her partner to control the toy remotely.

30:06.870 --> 30:10.850
So this URL works directly through the internet.

30:10.850 --> 30:17.100
It does not need for the remote partner to have the app installed as in the case of Webuy.

30:17.530 --> 30:25.290
So in this case, this URL is made by, at first, an alphanumeric token with only four characters.

30:25.290 --> 30:29.530
So we started analyzing a little bit about this token.

30:29.530 --> 30:36.130
So apparently, Loven says it's a one-time use token and it lasts only 30 minutes.

30:36.130 --> 30:41.990
But we were going to test this and see if this is true.

30:41.990 --> 30:44.570
Spoiler alert, it's not.

30:44.790 --> 30:51.210
So this is the remote panel where the remote lover can connect to control this toy.

30:51.210 --> 30:55.130
In this case, what you're seeing is the panel for our own toy.

30:55.130 --> 31:02.290
In the case of Max, you have two controls for vibration and for air control.

31:02.410 --> 31:10.090
So anyone that connects to this URL without authentication just gets control of this toy.

31:10.090 --> 31:23.330
So the idea here was to find if it was able to just guess different tokens and get access to panels that are online and maybe get a panel for another person's toy.

31:23.530 --> 31:35.490
Yeah, so we created different tokens, some of them expired, some of them active, and we used our own Loven app installed on our own smartphone.

31:35.850 --> 31:41.950
And then we tried to analyze how this access to this token worked.

31:41.950 --> 31:52.470
So basically, if the token never actually existed, then it's the server redirects to a JSON with page not found.

31:52.810 --> 32:03.430
But in the case the token existed at some point in time, then it's redirected to another resource with a path that you can see now on screen.

32:03.550 --> 32:18.310
You can see there's an SID or a session ID that links the token, the user ID, and also the ID of the particular device, since a user can have multiple devices connected to this application.

32:18.490 --> 32:28.750
And then there was a second redirection within this process, where you can see that the only thing that changes is the two in the middle of the path.

32:28.750 --> 32:37.130
At the end, the session only expires, or the token expires, if the user reaches the final URL.

32:37.130 --> 32:56.770
But in the meantime, you can interrupt the process and try to somehow see if the response from the server tells you if a token is valid, meaning it has existed at some point in time, if it's active, meaning there's someone actually waiting for you to connect to this token,

32:56.770 --> 32:59.050
or if it has expired.

32:59.130 --> 33:01.670
So, is there a way to weaponize this?

33:01.670 --> 33:10.130
Could an attacker just try to write a script to find random active tokens and try to join these remote sessions?

33:10.210 --> 33:25.490
Well, we created different tokens, some of them expired, some of them active, and we actually tested some non-existent tokens, and we created a script to see if we could do this programmatically.

33:25.490 --> 33:28.290
And, in fact, this worked.

33:28.290 --> 33:29.630
It's a success.

33:29.630 --> 33:34.910
You can actually tell with a script if a token is active or not.

33:35.510 --> 33:45.990
So, we tested this set of tokens, and then we wondered, could an attacker wait for how long to find an active token?

33:45.990 --> 33:48.990
I mean, is it really worth it?

33:48.990 --> 33:55.350
Or would he have to wait so long that it's not even worth the effort?

33:55.350 --> 33:56.950
Well, let's do some math.

33:56.950 --> 33:58.090
Let's check this.

33:58.090 --> 34:13.630
So, it's a four-digit token with letters and numbers, and that would be around 36 characters, different characters, and that would be like 1.6 million possibilities of tokens to try.

34:13.670 --> 34:22.890
So, if we think about one second per token to find them, it would take maybe 20 days for an attacker to find a token valid.

34:22.970 --> 34:32.030
And, also, the attacker needs to access this URL, this token, before their remote partner does, so it doesn't expire.

34:32.030 --> 34:34.610
So, it's pretty much complicated.

34:34.610 --> 34:35.950
It's a lot of time.

34:35.950 --> 34:40.330
So, maybe if we speed up a little bit, if we make some automation here...

34:40.330 --> 34:42.530
Automation to the rescue, right?

34:42.530 --> 35:01.350
So, here's a proof of concept that we ran on top of our own tokens, and you can see on the bottom right screen there's a console that's running our script that's checking for different tokens, and some of them are non-existent.

35:01.350 --> 35:02.950
Some others are valid.

35:02.950 --> 35:18.710
If the token is valid, then it opens up a new tab on the web browser to your left, and if the session is actually active, then it sends a message via a Telegram bot to the attacker.

35:19.130 --> 35:24.790
So, that way, the attacker can know that a new active token has been found.

35:24.790 --> 35:39.670
And this is done by adding a malicious extension to this web browser that allows or adds more processing capabilities to the Python script that it's running on the bottom right.

35:40.190 --> 35:51.530
So, this is a simulation of 10 minutes of running the script, and you can see that in the end it doesn't take long to find new tokens.

35:51.530 --> 35:55.530
This is the average that took us to find active tokens.

35:56.090 --> 36:13.330
And in this case, you can see that the attacker has access to the control panel of this device, the Max device, and he receives a new message via Telegram in his phone, letting him know that there's a new session active in the web browser.

36:13.470 --> 36:18.550
So, how can we protect ourselves given that these devices still have vulnerabilities?

36:18.830 --> 36:23.070
Well, first of all, keep in mind that this is a sexting phenomenon.

36:23.070 --> 36:33.690
So, if you're talking about sexting, don't share any pictures or videos where other people can see your face or some particular markings that you have.

36:33.690 --> 36:38.630
Try to avoid being recognizable through these pictures and videos.

36:38.630 --> 36:52.530
Also, make sure that you're not sharing these remote tokens online or publicly and that you're always sharing them via some secure mechanism with the intended person.

36:52.530 --> 36:58.410
Make sure also that you're registering to these applications with a fantasy email.

36:58.410 --> 37:00.690
Don't use your personal email.

37:00.690 --> 37:04.810
Create a new one specifically for these applications.

37:04.810 --> 37:12.850
And also make sure to install the latest updates to install the patches to all of these vulnerabilities.

37:13.570 --> 37:19.370
Well, and of course, make sure you're using a secure network while you play with these toys.

37:19.370 --> 37:23.930
And even if it's possible, make sure nobody is around.

37:24.250 --> 37:36.570
And also, you can always google some reviews about the toy and see if there are already some security issues published or there is any security review published.

37:36.570 --> 37:45.670
And once you decide to buy a toy or once you have chosen a toy, please read terms and conditions before using it.

37:45.670 --> 38:05.070
And it's also a good practice to download the application before buying the toy so you can check the application, see which functionalities it has and how it works, and maybe guess or research a little bit about which information is asking you and how it will treat or protect that information.

38:05.070 --> 38:07.190
So, well, that's all.

38:07.190 --> 38:09.970
But what happens if you already have a toy?

38:09.970 --> 38:15.750
What about all these people that already bought a toy and now are too scared to use it?

38:15.770 --> 38:20.270
Well, remember, it's also a great toy for your dog.

38:21.750 --> 38:25.350
Thank you very much for listening to our talk.

