[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:11.660] There have been previous researches on this subject, [00:11.660 --> 00:13.420] and you can find them online, [00:13.420 --> 00:16.040] but many devices that are still on the market [00:16.040 --> 00:18.920] have a lot of vulnerability and privacy issues. [00:18.920 --> 00:21.900] So, in our research we tried to find these problems [00:21.900 --> 00:24.900] and today we are going to share with you our results. [00:25.100 --> 00:25.800] Exactly. [00:25.800 --> 00:27.800] But first, let's do a quick recap [00:27.800 --> 00:30.040] 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:39.120] The first sex toys were used as medical appliances [00:39.120 --> 00:41.580] back in the 1900s. [00:41.580 --> 00:45.180] They were used to cure different types of pathologies, [00:45.180 --> 00:47.740] including some psychological ones. [00:47.780 --> 00:52.140] Then, throughout the 1920s, 30s, 40s, 50s, [00:52.140 --> 00:55.040] even to the late 60s, [00:55.040 --> 00:57.840] new devices, new models, new shapes [00:57.840 --> 00:59.980] started to appear in the market. [01:00.220 --> 01:04.780] And they were, this time, advertised towards the home users [01:04.780 --> 01:07.420] that could buy these products, take them home, [01:07.420 --> 01:09.320] 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:17.460] Well, let's talk about physical security back in the 20s [01:17.460 --> 01:18.740] with one of those. [01:19.200 --> 01:24.440] Then, by the 70s, the emergence of new feminist movements [01:24.440 --> 01:27.740] alongside the boom of the porn industry [01:27.740 --> 01:30.900] propelled those devices, [01:30.900 --> 01:34.800] and new forms, shapes, and materials started to be used. [01:34.800 --> 01:40.300] But by the 2000s, this thing starts to get interesting for us, [01:40.300 --> 01:44.200] because new devices that could be controlled remotely [01:44.200 --> 01:47.660] via infrared connectivity started to appear, [01:47.660 --> 01:50.660] and by the 2010s, [01:50.660 --> 01:54.420] there were several devices that could be controlled locally [01:54.420 --> 01:58.540] via Bluetooth with an application on your own smartphone. [01:58.540 --> 02:01.900] Yeah, with the arrival of IoT and new technologies, [02:01.900 --> 02:05.380] many manufacturers decided to integrate these toys [02:05.380 --> 02:08.020] with mobile apps and internet connections. [02:08.020 --> 02:11.320] So, nowadays, in 2020, [02:11.320 --> 02:14.380] we have toys that have a lot of characteristics [02:14.380 --> 02:17.560] and that can be used remotely, [02:17.560 --> 02:21.580] like control the toy remotely through the mobile app [02:21.580 --> 02:23.600] or even a web browser, [02:23.600 --> 02:25.600] and change the vibrating patterns, [02:25.600 --> 02:30.420] or even synchronize the device with a video call, [02:30.420 --> 02:32.700] an audio book, a playlist, [02:32.700 --> 02:37.140] or even have Alexa support or other assistance support [02:37.140 --> 02:39.660] to control them on voice commands. [02:39.660 --> 02:42.940] So, all of these functionalities are very interesting [02:42.940 --> 02:46.520] and also open the door to many vulnerabilities. [02:46.520 --> 02:50.380] Exactly, and they open the door to new models [02:50.380 --> 02:53.280] that can connect between each other. [02:53.760 --> 02:57.160] And also, we are now starting to see a trend [02:57.160 --> 03:00.000] towards smart 6 robots [03:00.000 --> 03:02.640] that have a lot of different capabilities [03:03.060 --> 03:05.820] that can be connected to the internet. [03:05.880 --> 03:10.020] They have certain artificial intelligence apps [03:10.020 --> 03:13.080] that can be installed on the device, [03:13.080 --> 03:16.000] and these apps, of course, have a lot of vulnerabilities [03:16.000 --> 03:20.880] that we can somehow assess to try to bypass. [03:21.040 --> 03:24.440] So, we actually contacted a few of these vendors [03:24.440 --> 03:29.080] to ask them about the characteristics of these smart 6 robots, [03:29.080 --> 03:34.200] and we found out that they are following several bad practices [03:34.200 --> 03:36.260] when it comes to security. [03:36.280 --> 03:40.100] So, the way these smart 6 robots work [03:40.100 --> 03:42.620] is that they actually have a smartphone [03:42.620 --> 03:45.980] 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 --> 03:55.840] So, that phone can be actually very vulnerable, [03:55.840 --> 04:01.380] 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:12.240] Well, apart from the devices, [04:12.240 --> 04:14.240] if we think about the sex industry [04:14.240 --> 04:16.680] and the adult entertainment industry, [04:16.680 --> 04:21.020] these industries have already been the target of several cyber attacks. [04:21.120 --> 04:23.640] And the first attack that comes to my mind [04:23.640 --> 04:26.520] is the Ashley Madison social network, [04:26.520 --> 04:30.200] which a couple of years before was the target of an attack, [04:30.200 --> 04:34.600] and the details, the information of more than 30 million users [04:34.600 --> 04:36.500] was exposed online. [04:36.500 --> 04:38.820] So, a lot of cheaters were revealed, [04:38.820 --> 04:42.400] and many people had a lot of problems in their relationships. [04:42.400 --> 04:45.340] And we can also think about Tinder, [04:45.340 --> 04:49.840] this dating app that has already been found in many vulnerabilities. [04:50.280 --> 04:53.860] And also, we have to think about the many scams [04:53.860 --> 04:56.740] that are based on fake apps, [04:56.740 --> 04:59.460] or fake lab promises, [04:59.460 --> 05:03.480] or even sextortion based on stolen information. [05:03.660 --> 05:06.980] So, if to these attacks to the sex industry, [05:06.980 --> 05:09.520] we add the fact that IoT devices [05:09.520 --> 05:12.200] are being compromised by attackers [05:12.200 --> 05:15.080] to perform different types of attacks, [05:15.080 --> 05:16.640] well, that's a problem. [05:16.640 --> 05:19.920] And we can think, for example, about the Mirai network, [05:19.920 --> 05:23.740] or about a case where attackers got control [05:23.740 --> 05:27.080] of a thermometer in a casino's fish tank, [05:27.080 --> 05:30.820] and then from there could jump to the casino's network. [05:30.820 --> 05:35.420] So, if we sum up the industry of sex [05:35.420 --> 05:37.780] that has been the target of cyber attacks, [05:37.780 --> 05:40.860] with the many IoT devices that we have today in the market [05:40.860 --> 05:43.460] that are already being used by attackers, [05:43.460 --> 05:46.200] 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:52.880] Well, first of all, an attacker can put a backdoor or malware [05:52.880 --> 05:54.960] inside of one of these toys. [05:54.960 --> 05:59.180] But also, these devices are permanently advertising themselves. [05:59.180 --> 06:01.080] So, they are permanently sending information [06:01.080 --> 06:02.620] of their presence there. [06:02.620 --> 06:05.840] So, it's pretty easy to find if a toy is present [06:05.840 --> 06:10.760] on a hotel room, or if someone is carrying one with him. [06:10.760 --> 06:13.600] So, this can lead to several issues, [06:13.600 --> 06:16.980] like information disclosure, information very sensitive, [06:16.980 --> 06:19.220] for example, as sexual orientation, [06:19.220 --> 06:21.880] sexual partners, or sexual practices. [06:22.020 --> 06:27.880] And this can be some problem in many countries [06:27.880 --> 06:32.140] that have laws against some sexual practices. [06:32.140 --> 06:34.680] But also, we can think about an attacker [06:34.680 --> 06:37.340] that gets control of one of these devices [06:37.340 --> 06:39.640] while a user is playing with it. [06:39.640 --> 06:42.400] So, imagine a person has a toy, it's playing at home, [06:42.400 --> 06:44.640] but then an attacker gets control of that toy [06:44.640 --> 06:47.900] and is the one that is really sending the commands to the toy. [06:47.900 --> 06:50.760] Would that be sexual assault? What happens there? [06:51.000 --> 06:52.940] These are things that we have to start considering [06:52.940 --> 06:54.760] with smart sex toys. [06:55.340 --> 06:57.600] So, at the start of our research, [06:57.600 --> 07:01.420] we had to choose the devices that we were going to use [07:01.940 --> 07:03.380] for our research. [07:03.380 --> 07:06.620] Basically, the models that we were going to buy. [07:07.080 --> 07:11.160] And, voila, there were so many different vendors, [07:11.160 --> 07:12.620] so many different models, [07:12.620 --> 07:14.140] and it was really hard to choose [07:14.140 --> 07:16.200] with so many different characteristics, [07:16.200 --> 07:17.640] 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:31.600] Exactly, and we started actually testing different devices [07:31.600 --> 07:35.600] 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:44.560] But we ended up choosing two vendors [07:44.560 --> 07:47.140] that we think were one of the biggest, [07:47.140 --> 07:48.780] 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:03.260] I'm sure many of you know this brand [08:03.260 --> 08:04.880] if you're interested in sex toys [08:04.880 --> 08:06.480] and security of sex toys, [08:06.480 --> 08:11.440] 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:21.140] You can connect them over a Bluetooth network [08:21.140 --> 08:25.300] or even over the internet. [08:26.040 --> 08:28.880] And there are so many different shapes and sizes. [08:28.880 --> 08:31.840] And we have also WeVibe that we choose [08:31.840 --> 08:34.320] because they also have a lot of smart sex toys [08:34.760 --> 08:37.800] and they are very important in the market. [08:37.800 --> 08:39.080] And I'm sure you're aware [08:39.080 --> 08:41.760] that there were several researches [08:41.760 --> 08:44.740] 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 --> 08:50.120] So the first we did was [08:50.120 --> 08:53.640] we visited the websites of these two vendors [08:53.640 --> 08:56.980] and tried to look at the characteristics [08:57.980 --> 09:00.640] of their different models. [09:00.640 --> 09:03.040] So the first thing that you can see [09:03.040 --> 09:05.420] is that there is a lot of information [09:05.420 --> 09:07.900] about colors, materials, [09:07.900 --> 09:10.880] how much the battery lasts, [09:10.880 --> 09:13.160] how much does it take to charge them. [09:13.160 --> 09:15.380] But there were no mentions, [09:15.380 --> 09:16.880] at least on the websites, [09:16.880 --> 09:19.360] about protocols, encryption, [09:19.360 --> 09:21.980] and the security that was being applied [09:21.980 --> 09:25.240] to these apps and this firmware [09:25.240 --> 09:27.020] to make it secure. [09:27.120 --> 09:31.060] So this is something that happens a lot [09:31.060 --> 09:33.460] with this type of IoT devices, [09:33.460 --> 09:35.760] in particular sex toys. [09:35.760 --> 09:38.220] So the first step was to understand [09:38.220 --> 09:39.260] the architecture. [09:39.260 --> 09:41.800] How are these toys connected? [09:41.980 --> 09:45.880] So the toy connects to the user's smartphone [09:45.880 --> 09:49.540] using a personal area network like Bluetooth [09:49.540 --> 09:52.360] or, in most cases, Bluetooth Low Energy. [09:52.380 --> 09:54.260] Then, from the smartphone, [09:54.260 --> 09:56.800] the user connects to an API from the vendor, [09:56.800 --> 09:58.560] usually on a vendor server, [09:58.560 --> 10:00.080] and then the remote partner, [10:00.080 --> 10:02.200] that can be anywhere in the world, [10:02.200 --> 10:03.400] connects to that API [10:03.400 --> 10:06.800] and from there gets control of the remote toy. [10:07.140 --> 10:09.600] So in this architecture, in this model, [10:09.600 --> 10:11.200] there are a lot of attack vectors [10:11.200 --> 10:13.020] that an attacker could use, [10:13.020 --> 10:18.040] like go for the personal area network connection [10:18.040 --> 10:19.980] or go for the Bluetooth connection, [10:19.980 --> 10:23.540] maybe something on the smartphone, on the app, [10:23.540 --> 10:27.180] 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:32.460] Exactly. But first, a quick disclaimer, [10:32.460 --> 10:34.880] because all of the vulnerabilities [10:34.880 --> 10:37.260] that we are going to see throughout the talk [10:37.260 --> 10:38.580] that we are going to discuss [10:38.580 --> 10:39.940] have been already fixed [10:39.940 --> 10:43.680] and we have permission to perform [10:43.680 --> 10:46.620] 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:52.340] So the first toy we are going to show you [10:52.340 --> 10:55.460] 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:02.280] This toy is pretty interesting [11:02.280 --> 11:03.760] because it's a wearable. [11:03.760 --> 11:06.540] It means that the person wears this toy [11:06.540 --> 11:09.440] and can go around playing with this toy. [11:09.440 --> 11:11.460] So usually a couple use these toys [11:11.460 --> 11:14.760] in bars, restaurants, or even discos, [11:14.760 --> 11:17.700] not only in hotel rooms or inside a house. [11:17.700 --> 11:19.840] So that was pretty interesting for our analysis [11:19.840 --> 11:23.400] because it's a toy that you can find anywhere. [11:23.640 --> 11:25.720] And it's, as we said before, [11:25.720 --> 11:27.760] it's permanently advertising its presence [11:27.760 --> 11:31.320] and an attacker can easily find one of these [11:31.320 --> 11:35.800] like 30 feet around. [11:35.800 --> 11:39.800] Yeah, it is designed to be used in insecure networks [11:39.800 --> 11:42.060] or it should be designed for that. [11:42.060 --> 11:43.560] WeVibe had some trouble [11:43.560 --> 11:46.240] when it comes to information security in the past. [11:46.240 --> 11:49.420] It was at DEF CON a few years ago [11:49.420 --> 11:51.440] that a research was presented [11:51.440 --> 11:55.780] where it was proven that they had collected [11:55.780 --> 11:57.980] too much information from their users [11:57.980 --> 11:59.980] without their consent. [11:59.980 --> 12:01.480] And so they were sued [12:01.480 --> 12:04.640] and they had to pay $3.7 million, [12:04.640 --> 12:06.580] which is a lot. [12:06.580 --> 12:08.980] So we wanted to see if they had learned [12:08.980 --> 12:10.420] from this experience [12:10.420 --> 12:12.960] and they had changed their applications [12:12.960 --> 12:15.460] to make them more secure. [12:15.720 --> 12:17.540] The first thing that we checked [12:17.540 --> 12:20.300] was the remote control via the URL. [12:20.520 --> 12:22.520] This application has the possibility [12:22.520 --> 12:26.420] to create a 12 characters string [12:26.420 --> 12:28.440] that it's been used as a token [12:28.440 --> 12:30.660] and you can share with your partner [12:30.660 --> 12:34.040] and so they can connect via the application [12:34.040 --> 12:38.360] to control your own sex toy. [12:38.380 --> 12:42.840] So this token used to have some problems in the past [12:42.840 --> 12:44.660] it didn't expire as it should [12:44.660 --> 12:46.980] but now they actually fixed it. [12:46.980 --> 12:49.160] At least we couldn't find any problem [12:49.160 --> 12:50.740] with this right now. [12:50.740 --> 12:52.280] The first things that we checked [12:52.280 --> 12:54.120] were some privacy issues [12:54.120 --> 12:56.560] that could have critical consequences [12:56.560 --> 12:57.460] for their users [12:57.460 --> 13:00.200] leading to information disclosure. [13:00.620 --> 13:02.880] There are so many good things [13:02.880 --> 13:04.680] that WeBypass changed. [13:04.680 --> 13:07.840] For example, now they block all screenshot attempts, [13:07.840 --> 13:08.460] which is great [13:08.460 --> 13:10.820] and it's quite common in these applications [13:10.820 --> 13:14.200] that tend to handle such sensitive data. [13:14.200 --> 13:16.220] They applied end-to-end encryption [13:16.220 --> 13:18.560] to encrypt all the pictures that you are sending [13:18.560 --> 13:23.480] and their files actually are deleted [13:23.480 --> 13:25.980] from the chat once the chat ends [13:25.980 --> 13:26.880] which is great [13:26.880 --> 13:28.300] so you know that your pictures [13:28.300 --> 13:31.620] do not linger on the phone of your partners. [13:31.620 --> 13:34.160] But still there were some issues [13:34.160 --> 13:38.220] that we found with this transferring of images. [13:38.220 --> 13:40.880] Yes, well, the pictures sent on the chat [13:40.880 --> 13:45.320] are saved to the storage inside the app [13:45.320 --> 13:47.360] sorry, to the app storage inside the phone [13:47.360 --> 13:50.380] so that no other app can access that picture [13:50.380 --> 13:51.860] or you cannot access that picture [13:51.860 --> 13:54.240] from outside the application. [13:54.300 --> 13:57.080] But if the attacker has a rooted phone, [13:57.080 --> 13:59.360] 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:02.540] We found out that the picture [14:03.090 --> 14:05.180] that is stored inside the application [14:05.180 --> 14:08.260] still has all the metadata in it. [14:08.260 --> 14:09.780] So when you send a picture, [14:09.780 --> 14:12.980] the metadata is not deleted before it's sent. [14:12.980 --> 14:15.580] So that picture can be uploaded to a site [14:15.580 --> 14:17.040] like, for example, Metapix [14:17.040 --> 14:19.200] and an attacker can find out [14:19.200 --> 14:21.820] where the person that sent the picture [14:21.820 --> 14:24.180] is actually located, [14:24.180 --> 14:29.560] the exact location by the GPS details, information. [14:29.920 --> 14:31.560] The attacker can also know [14:31.560 --> 14:33.720] the model of the phone that's being used, [14:33.720 --> 14:35.620] the camera, the time and date [14:35.620 --> 14:37.860] the photo was actually taken, [14:37.860 --> 14:40.300] and if it has been edited or not. [14:40.300 --> 14:42.520] This information at first could sound [14:42.520 --> 14:45.320] like something that no one could use. [14:45.320 --> 14:47.780] But the thing is that many people [14:47.780 --> 14:49.920] usually use these applications [14:49.920 --> 14:52.120] to talk to strangers. [14:52.120 --> 14:55.020] And also many people share online [14:55.020 --> 14:58.340] their tokens or their remote controls. [14:58.340 --> 15:01.500] So if that person is trying to hide [15:01.500 --> 15:03.500] his or her true personality [15:03.500 --> 15:06.860] or is trying to hide where he or she is, [15:06.860 --> 15:08.420] well, the metadata and the pictures [15:08.420 --> 15:10.100] does not help. [15:10.500 --> 15:11.500] Exactly. [15:11.500 --> 15:14.540] And sometimes this is not a personal choice, [15:14.540 --> 15:15.860] but this is also [15:16.760 --> 15:18.760] can be part of the service [15:18.760 --> 15:22.080] as a cam girl or a cam boy service. [15:22.080 --> 15:24.140] So we need to protect these people [15:24.140 --> 15:25.440] that are using these devices [15:25.440 --> 15:27.700] basically to work. [15:27.760 --> 15:28.680] What else? [15:28.680 --> 15:31.220] Well, this application actually includes [15:31.720 --> 15:34.080] a four-digit PIN that they can use [15:34.080 --> 15:36.140] in order to lock the application [15:36.140 --> 15:39.000] so no one else can access the application [15:39.000 --> 15:42.280] unless it has a four-digit PIN. [15:42.280 --> 15:45.320] This functionality might be in place [15:45.320 --> 15:46.980] to protect the app from [15:46.980 --> 15:50.080] your kids or something like that, [15:50.080 --> 15:51.020] your nieces, [15:51.020 --> 15:53.740] or maybe also a jealous lover. [15:53.740 --> 15:56.260] So the consequences can also be [15:56.260 --> 15:57.940] kind of critical [15:57.940 --> 16:01.460] if you're talking about a toxic relationship [16:01.460 --> 16:04.180] because this application only allows [16:04.180 --> 16:06.260] one partner at a time. [16:06.260 --> 16:08.720] So polyamory has not arrived [16:08.720 --> 16:10.940] to this application. [16:11.440 --> 16:13.620] So this PIN can actually, [16:13.620 --> 16:16.180] since it's just a four-digit PIN, [16:16.180 --> 16:19.440] can be brute-forced by using a bad USB [16:19.440 --> 16:21.540] with a very simple script [16:21.540 --> 16:24.840] because it takes the keyboard input [16:24.840 --> 16:27.420] and not like a grid of buttons [16:27.420 --> 16:29.720] or other type of components. [16:29.720 --> 16:33.420] So it's quite trivial to access this token [16:33.420 --> 16:37.560] and therefore access the control panel [16:37.560 --> 16:38.460] of the application [16:38.460 --> 16:41.620] and the usage of the application itself. [16:41.840 --> 16:43.600] And like we've seen in the video, [16:43.600 --> 16:45.060] 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:52.880] Well, as we spoke before, [16:52.880 --> 16:55.980] these toys use Bluetooth Low Energy. [16:55.980 --> 16:59.760] And this protocol has a particular characteristic [16:59.760 --> 17:02.980] that is that there are two types of devices, [17:02.980 --> 17:05.400] peripheral and central devices. [17:05.400 --> 17:07.560] Peripheral devices that are usually the toys [17:07.560 --> 17:11.300] have to be constantly advertising their presence [17:11.300 --> 17:14.140] to wait for a connection from the central device. [17:14.140 --> 17:18.120] That means that while a toy is not connected [17:18.120 --> 17:19.520] to a smartphone, [17:19.520 --> 17:22.860] it's permanently advertising, [17:22.860 --> 17:24.460] 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:44.580] So the attacker can download an application [17:44.580 --> 17:46.600] like this Bluetooth scanner [17:46.600 --> 17:49.140] and just try to find out [17:49.140 --> 17:51.640] if there are any devices around. [17:51.640 --> 17:54.060] In the example that you can see on the screen, [17:54.060 --> 17:56.920] we are finding the Jive that's here [17:56.920 --> 17:59.860] and the Max that we are going to talk later about. [18:00.480 --> 18:02.580] So it's pretty easy for the attacker [18:02.580 --> 18:04.340] to just find these devices, [18:04.340 --> 18:06.640] find a lot of information from these devices [18:06.640 --> 18:10.000] and start using this scanner as a compass. [18:10.000 --> 18:12.600] A compass to get closer to the device [18:12.600 --> 18:16.860] just using the signal strength of each device. [18:16.860 --> 18:18.840] So the attacker can easily move around [18:18.840 --> 18:21.120] looking for the best signal strength [18:21.120 --> 18:23.660] and that would give the attacker an idea [18:23.660 --> 18:26.080] of where is the toy present, [18:26.080 --> 18:28.780] 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:33.700] Yes, and then they can connect to the toy [18:33.700 --> 18:36.700] and they don't even need the app to do that [18:36.700 --> 18:39.120] because there are several websites [18:40.060 --> 18:41.580] that you can use [18:41.580 --> 18:44.980] by using the web Bluetooth APA [18:44.980 --> 18:47.960] to connect to the sex toy [18:47.960 --> 18:51.100] and send comments to the sex toys. [18:51.100 --> 18:52.500] And they are still functioning [18:52.960 --> 18:54.820] because there is no authentication [18:54.820 --> 18:57.720] 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:05.960] So not only an attacker can get control of this toy [19:05.960 --> 19:08.280] whenever the toy is available, [19:08.280 --> 19:11.580] but also, could an attacker get into a middle of a conversation, [19:11.580 --> 19:13.020] into a middle of a connection? [19:13.020 --> 19:14.900] Well, that's actually what we tried. [19:14.900 --> 19:16.560] A Bluetooth man-in-the-middle attack, [19:16.560 --> 19:19.980] where the attacker tries to get in the middle of a communication [19:19.980 --> 19:21.940] and control the toy. [19:21.940 --> 19:23.980] So in a common scenario, [19:24.040 --> 19:26.980] a toy would be connected to the user's phone. [19:26.980 --> 19:29.140] But in this case, [19:29.140 --> 19:30.620] what the attacker will try to do [19:30.620 --> 19:33.180] is get in the middle of that connection, [19:33.180 --> 19:36.820] create a fake toy in his or her computer, [19:36.820 --> 19:39.740] and then make the user connect to the fake toy [19:39.740 --> 19:41.520] instead of the real toy. [19:41.520 --> 19:43.420] And the attacker will be the one [19:43.420 --> 19:46.520] who will forward the commands to the toy [19:46.520 --> 19:49.160] or maybe change them in the middle. [19:49.740 --> 19:51.700] So, in the next video, [19:51.700 --> 19:54.820] we are going to see a proof-of-concept of this. [19:54.860 --> 19:56.160] So what we did is [19:56.160 --> 19:59.360] use the tool BTLJuice [19:59.360 --> 20:02.420] to create a man-in-the-middle attack. [20:02.420 --> 20:05.060] This tool uses two Bluetooth dongles [20:05.060 --> 20:07.960] and the attacker will need two computers, [20:07.960 --> 20:10.120] or in this case, two virtual machines. [20:10.120 --> 20:11.260] In the first one, [20:11.260 --> 20:15.080] what the attacker would do is create a Bluetooth proxy. [20:15.080 --> 20:17.700] This Bluetooth proxy will be in charge of [20:18.720 --> 20:21.080] getting all the Bluetooth communications, [20:21.080 --> 20:23.200] capturing all the Bluetooth traffic. [20:23.380 --> 20:25.520] Then once the proxy is up, [20:25.520 --> 20:27.180] the attacker can go to the other computer [20:27.180 --> 20:28.540] or the other virtual machine [20:29.080 --> 20:33.220] and will connect to the Bluetooth proxy, [20:33.220 --> 20:35.340] to the BTLJuice proxy. [20:35.660 --> 20:37.220] And then, once connected, [20:37.220 --> 20:40.240] you will see that this tool has a web interface [20:40.240 --> 20:42.620] that's very useful and easy to use. [20:42.620 --> 20:46.400] So, in that interface, [20:46.400 --> 20:50.080] 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 --> 20:56.140] So then, once the attacker finds the toy, [20:56.140 --> 20:58.320] can connect to that toy, [20:58.320 --> 21:01.120] and as you see in the console, [21:01.120 --> 21:03.360] the tool BTLJuice will create [21:03.360 --> 21:05.660] what is called a dummy. [21:05.660 --> 21:08.700] It's like a fake toy, a fake device, [21:08.700 --> 21:11.520] where the user, the victim, will connect [21:11.520 --> 21:14.040] but will still think that it's the real toy [21:14.040 --> 21:17.200] because this dummy will copy all the characteristics [21:17.200 --> 21:19.360] of the real device. [21:19.500 --> 21:22.120] So, then the victim connects to that dummy, [21:22.120 --> 21:23.480] to the fake toy, [21:23.480 --> 21:26.680] and when sends a command, the toy actually moves. [21:26.680 --> 21:28.240] As you see on the screen, [21:28.240 --> 21:31.420] the attacker is capturing all these packages, [21:31.420 --> 21:32.720] all these commands. [21:32.720 --> 21:35.880] So the attacker can start knowing some commands [21:35.880 --> 21:37.800] and getting some traffic. [21:38.720 --> 21:42.700] So, there can you see the user is changing [21:42.700 --> 21:44.840] some vibration patterns, [21:44.840 --> 21:46.440] and the attacker is there capturing [21:46.440 --> 21:48.400] all of these packages. [21:48.480 --> 21:51.500] So then, the attacker can get some commands. [21:51.740 --> 21:53.200] But what the attacker can do next [21:53.200 --> 21:56.620] 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:02.140] So now, the attacker is sending a command, [22:02.140 --> 22:04.160] and while the victim is not doing anything, [22:04.160 --> 22:05.300] the toy is moving. [22:05.300 --> 22:06.760] So the toy is vibrating. [22:06.760 --> 22:09.300] So the attacker is the one that is actually controlling [22:09.300 --> 22:11.280] the toy at this point. [22:11.520 --> 22:14.960] You can see it's sending different type of commands, [22:14.960 --> 22:16.820] and the toy is responding. [22:19.850 --> 22:21.630] Also, what the attacker can do [22:21.630 --> 22:23.990] when the device is stopping, [22:23.990 --> 22:26.010] is change these packages. [22:26.010 --> 22:27.690] Just add new commands. [22:27.690 --> 22:30.690] These commands can either be taken from [22:30.690 --> 22:32.370] the source code of the application [22:32.370 --> 22:35.390] 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:41.110] So the attacker can send a command to the toy [22:41.110 --> 22:44.850] 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:53.450] So the attacker can not only intercept the actual commands, [22:53.450 --> 22:57.310] but also change them or send new commands to the toy. [22:57.310 --> 22:59.370] So in this case, I don't know, [22:59.370 --> 23:01.750] 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:08.830] So we have proved that these devices [23:08.830 --> 23:11.730] are still vulnerable to this type of attack [23:11.730 --> 23:14.390] and no authentication has been included [23:14.390 --> 23:18.030] in these toys in the past years, [23:18.030 --> 23:21.350] which was the goal of this research. [23:21.350 --> 23:24.450] So now we are going to analyze our Lovance device, [23:24.450 --> 23:26.350] which is the max device that you are [23:26.350 --> 23:29.110] watching right now on screen. [23:29.110 --> 23:31.650] This device can be synchronized [23:31.650 --> 23:33.770] with its counterpart. [23:33.770 --> 23:37.890] It can be another max device or a Nora device. [23:37.890 --> 23:41.270] These models are interesting from a hacking perspective [23:41.270 --> 23:47.930] because if a hacker has control over one of these devices, [23:47.930 --> 23:50.750] then immediately compromises the other one [23:50.750 --> 23:54.010] that replicates the movements of the first. [23:54.010 --> 23:57.890] So you can have two devices under your control [23:57.890 --> 23:59.710] by the price of one. [24:00.630 --> 24:03.630] So we started analyzing the application [24:03.630 --> 24:05.930] that is used to control this device, [24:06.490 --> 24:09.810] that is the Lovance Remote application, [24:09.810 --> 24:13.730] and we started analyzing the privacy features [24:13.730 --> 24:16.730] related to this application. [24:16.730 --> 24:20.010] Well, we could see that it uses a 4-digit PIN [24:20.010 --> 24:23.570] to lock the application, same as the other one, [24:23.570 --> 24:27.950] 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:37.630] So for a sexting application, [24:37.630 --> 24:40.990] that's pretty much something to think about. [24:40.990 --> 24:44.350] But also, well, the metadata was deleted [24:44.350 --> 24:46.530] from the pictures before they are sent. [24:46.530 --> 24:47.550] That's great. [24:47.550 --> 24:51.270] But the pictures that a person sent on a chat, [24:51.270 --> 24:53.590] well, are very difficult to delete [24:53.590 --> 24:55.330] 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:01.930] Well, let's imagine you're using the application [25:01.930 --> 25:05.270] 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:23.110] It doesn't remove the picture from the server [25:23.110 --> 25:26.930] nor the phone of your lover. [25:26.930 --> 25:29.130] So basically, once you send the picture, [25:29.130 --> 25:30.570] you lose control. [25:31.350 --> 25:35.210] Also, the remote partner can also forward [25:35.210 --> 25:38.590] or download your picture whenever they want. [25:39.010 --> 25:42.910] And since this picture stays on the server, [25:42.910 --> 25:44.730] then they can also query the server [25:44.730 --> 25:46.910] to get the image if they know the URL [25:46.910 --> 25:49.330] of this particular resource. [25:50.010 --> 25:53.010] The lover's privacy policy says [25:53.010 --> 25:56.350] that these pictures stay in their servers [25:56.350 --> 25:59.290] 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:06.350] There's actually a hidden option [26:06.350 --> 26:07.870] that's called Recall. [26:07.870 --> 26:09.890] And that's the one you want to use [26:09.890 --> 26:11.810] when you want to delete a picture [26:11.810 --> 26:14.570] from the two devices. [26:14.570 --> 26:16.830] But this option is only available [26:16.830 --> 26:19.330] for two minutes after sending the picture [26:19.330 --> 26:22.190] and then completely disappears. [26:22.190 --> 26:25.090] So if you never tried to delete the pictures [26:25.090 --> 26:27.390] right after you send it, [26:27.390 --> 26:29.550] then you don't even know that this function [26:29.550 --> 26:30.930] even exists. [26:30.930 --> 26:32.810] So that's something to have in mind [26:32.810 --> 26:35.450] if you or one of your relatives [26:35.450 --> 26:37.750] or someone of your friends [26:37.750 --> 26:40.490] is actually using this application. [26:41.210 --> 26:44.770] Also, when we start analyzing the traffic, [26:44.770 --> 26:47.870] you can see that there are several queries, [26:47.870 --> 26:50.270] HTTP GET queries, [26:50.270 --> 26:53.070] that are broadcasting information [26:53.070 --> 26:56.190] such as the user ID. [26:56.190 --> 26:58.390] In this case, it's the same one [26:58.390 --> 27:01.190] as the email addresses. [27:01.190 --> 27:03.130] When you register into the application, [27:03.130 --> 27:05.330] you can set a fantasy username [27:05.330 --> 27:08.190] and you need to provide your email. [27:08.190 --> 27:09.370] Well, guess what? [27:09.370 --> 27:11.310] That email is actually shared [27:11.310 --> 27:14.070] with whomever you're chatting with. [27:14.070 --> 27:16.310] Let's say you open up a chat [27:16.310 --> 27:17.410] with one of your friends. [27:17.410 --> 27:20.350] Well, the application uses your email [27:20.350 --> 27:22.050] as your user ID [27:22.050 --> 27:24.430] to identify your phone. [27:24.430 --> 27:26.910] So they are sharing your email [27:26.910 --> 27:29.830] with the person that you're chatting. [27:30.130 --> 27:33.030] And they can look up your email [27:33.030 --> 27:36.330] in the internal files of the phone [27:36.330 --> 27:38.630] because they are not encrypted. [27:38.630 --> 27:39.910] And even if they were, [27:39.910 --> 27:42.490] you can still somehow [27:43.110 --> 27:45.670] manage to get through this information [27:45.670 --> 27:49.070] by injecting the application at runtime. [27:49.530 --> 27:51.310] And there are other ways, [27:51.310 --> 27:53.190] other issues related to [27:53.190 --> 27:54.910] the way this application [27:54.910 --> 27:58.130] manipulates the email addresses. [27:58.130 --> 28:01.070] For example, you can query the server [28:01.070 --> 28:04.610] to see if a given email address [28:04.610 --> 28:07.250] is registered on the system. [28:07.250 --> 28:09.550] So you can know based on the response [28:09.550 --> 28:12.170] if the email exists. [28:12.170 --> 28:16.370] You could use a leaked database [28:16.370 --> 28:19.890] of emails from previous attacks, [28:19.890 --> 28:21.230] let's say the Ashley Madison [28:21.870 --> 28:23.510] social network attack, [28:23.510 --> 28:25.190] and then query these emails [28:25.190 --> 28:26.450] against the server [28:26.450 --> 28:28.570] because there are no protections [28:28.570 --> 28:30.530] 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:38.430] You can also query for usernames [28:38.850 --> 28:40.910] and get their emails. [28:40.910 --> 28:42.950] So let's say you [28:42.950 --> 28:44.670] start browsing the application [28:44.670 --> 28:47.330] and you find the patterns library [28:47.730 --> 28:50.930] where users can share their patterns of use [28:50.930 --> 28:53.830] publicly with other users. [28:53.830 --> 28:56.710] So you could find usernames [28:56.710 --> 28:58.530] listed in this library [28:58.530 --> 29:00.070] and then query the server [29:00.070 --> 29:01.130] to get their emails [29:01.130 --> 29:02.870] and start different attacks [29:02.870 --> 29:04.230] as social engineering [29:04.230 --> 29:06.590] or sextortion attacks [29:06.590 --> 29:09.550] or even use these emails [29:09.550 --> 29:12.190] to launch other types of attacks [29:12.190 --> 29:14.770] since these are also the user IDs. [29:15.310 --> 29:16.750] So these emails could be used [29:16.750 --> 29:18.830] to identify a person, right? [29:18.830 --> 29:19.510] Yes, exactly. [29:19.510 --> 29:20.950] Well, apart from the library, [29:20.950 --> 29:21.930] we need to think that [29:21.930 --> 29:23.890] many people just share [29:23.890 --> 29:25.430] their username, their nicknames [29:25.430 --> 29:27.890] online for remote session [29:27.890 --> 29:29.890] with someone around the world. [29:29.890 --> 29:31.530] But most of the time, [29:31.530 --> 29:32.950] these are fantasy names [29:32.950 --> 29:34.910] like sexyscot26. [29:34.910 --> 29:36.270] Well, in this case, [29:36.270 --> 29:37.630] an attacker could find out [29:37.630 --> 29:40.090] what's the email for sexyscot26 [29:40.390 --> 29:41.990] and find the real person [29:41.990 --> 29:43.810] behind that nickname. [29:44.230 --> 29:45.450] Be sure not to register [29:45.450 --> 29:47.050] with a corporate account, right? [29:47.050 --> 29:48.690] Yeah, for sure. [29:49.530 --> 29:51.650] Well, apart from this, [29:52.210 --> 29:53.730] Loven's remote control [29:53.730 --> 29:56.670] also works with an URL. [29:56.670 --> 29:59.770] So the person that has this toy [29:59.770 --> 30:03.070] can create a remote control URL [30:03.070 --> 30:04.830] for his or her partner [30:04.830 --> 30:06.870] to control the toy remotely. [30:06.870 --> 30:09.790] So this URL works directly [30:09.790 --> 30:10.850] through the internet. [30:10.850 --> 30:13.230] It does not need for the remote partner [30:13.230 --> 30:14.570] to have the app installed [30:14.570 --> 30:17.100] as in the case of Webuy. [30:17.530 --> 30:18.650] So in this case, [30:18.650 --> 30:21.190] this URL is made by, [30:21.190 --> 30:23.050] at first, an alphanumeric token [30:23.050 --> 30:25.290] with only four characters. [30:25.290 --> 30:26.630] So we started analyzing [30:26.990 --> 30:29.530] a little bit about this token. [30:29.530 --> 30:32.030] So apparently, Loven says [30:32.030 --> 30:33.690] it's a one-time use token [30:33.690 --> 30:36.130] and it lasts only 30 minutes. [30:36.130 --> 30:40.090] But we were going to test this [30:40.090 --> 30:41.990] and see if this is true. [30:41.990 --> 30:44.570] Spoiler alert, it's not. [30:44.790 --> 30:47.250] So this is the remote panel [30:47.250 --> 30:48.970] where the remote lover [30:48.970 --> 30:51.210] can connect to control this toy. [30:51.210 --> 30:52.810] In this case, what you're seeing [30:52.810 --> 30:55.130] is the panel for our own toy. [30:55.130 --> 30:56.130] In the case of Max, [30:56.130 --> 30:57.250] you have two controls [30:57.250 --> 31:02.290] for vibration and for air control. [31:02.410 --> 31:05.310] So anyone that connects to this URL [31:05.310 --> 31:06.770] without authentication [31:07.130 --> 31:10.090] just gets control of this toy. [31:10.090 --> 31:11.870] So the idea here was to find [31:11.870 --> 31:13.910] if it was able to just [31:13.910 --> 31:15.250] guess different tokens [31:15.250 --> 31:17.130] and get access to panels [31:17.130 --> 31:18.670] that are online [31:18.670 --> 31:21.150] and maybe get a panel [31:21.150 --> 31:23.330] for another person's toy. [31:23.530 --> 31:26.150] Yeah, so we created different tokens, [31:26.150 --> 31:27.770] some of them expired, [31:27.770 --> 31:29.050] some of them active, [31:29.050 --> 31:32.210] and we used our own Loven app [31:32.210 --> 31:35.490] installed on our own smartphone. [31:35.850 --> 31:38.850] And then we tried to analyze [31:38.850 --> 31:41.950] how this access to this token worked. [31:41.950 --> 31:44.410] So basically, if the token [31:44.410 --> 31:46.810] never actually existed, [31:46.810 --> 31:49.390] then it's the server redirects [31:49.390 --> 31:52.470] to a JSON with page not found. [31:52.810 --> 31:54.470] But in the case the token [31:54.470 --> 31:56.810] existed at some point in time, [31:56.810 --> 31:59.830] then it's redirected to another resource [31:59.830 --> 32:03.430] with a path that you can see now on screen. [32:03.550 --> 32:05.790] You can see there's an SID [32:05.790 --> 32:08.930] or a session ID that links the token, [32:08.930 --> 32:10.410] the user ID, [32:10.410 --> 32:13.290] and also the ID of the particular device, [32:13.290 --> 32:15.630] since a user can have multiple devices [32:15.630 --> 32:18.310] connected to this application. [32:18.490 --> 32:20.710] And then there was a second redirection [32:21.790 --> 32:23.510] within this process, [32:23.510 --> 32:25.250] where you can see that the only thing [32:25.250 --> 32:27.130] that changes is the two [32:27.130 --> 32:28.750] in the middle of the path. [32:28.750 --> 32:31.870] At the end, the session only expires, [32:31.870 --> 32:33.710] or the token expires, [32:33.710 --> 32:37.130] if the user reaches the final URL. [32:37.130 --> 32:39.390] But in the meantime, you can interrupt the process [32:40.090 --> 32:43.030] and try to somehow see [32:43.030 --> 32:45.890] if the response from the server [32:45.890 --> 32:48.390] tells you if a token is valid, [32:48.390 --> 32:51.490] meaning it has existed at some point in time, [32:51.490 --> 32:53.710] if it's active, meaning there's someone [32:53.710 --> 32:56.770] 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:04.370] Could an attacker just try to write a script [33:04.370 --> 33:06.930] to find random active tokens [33:06.930 --> 33:10.130] and try to join these remote sessions? [33:10.210 --> 33:12.930] Well, we created different tokens, [33:12.930 --> 33:15.710] some of them expired, some of them active, [33:15.710 --> 33:19.770] and we actually tested some non-existent tokens, [33:20.310 --> 33:21.690] and we created a script [33:21.690 --> 33:25.490] to see if we could do this programmatically. [33:25.490 --> 33:29.630] And, in fact, this worked. It's a success. [33:29.630 --> 33:32.310] You can actually tell with a script [33:32.310 --> 33:34.910] if a token is active or not. [33:35.510 --> 33:39.610] So, we tested this set of tokens, [33:39.610 --> 33:41.550] and then we wondered, [33:41.550 --> 33:43.830] could an attacker wait for how long [33:44.310 --> 33:45.990] to find an active token? [33:45.990 --> 33:48.990] I mean, is it really worth it? [33:48.990 --> 33:52.150] Or would he have to wait so long [33:52.150 --> 33:55.350] that it's not even worth the effort? [33:55.350 --> 33:58.090] Well, let's do some math. Let's check this. [33:58.090 --> 34:02.610] So, it's a four-digit token with letters and numbers, [34:02.610 --> 34:06.290] and that would be around 36 characters, [34:06.290 --> 34:07.670] different characters, [34:07.670 --> 34:11.770] and that would be like 1.6 million possibilities [34:11.770 --> 34:13.630] of tokens to try. [34:13.670 --> 34:18.470] So, if we think about one second per token to find them, [34:18.470 --> 34:20.810] it would take maybe 20 days for an attacker [34:20.810 --> 34:22.890] to find a token valid. [34:22.970 --> 34:26.930] And, also, the attacker needs to access this URL, [34:26.930 --> 34:30.350] this token, before their remote partner does, [34:30.350 --> 34:32.030] 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:38.170] So, maybe if we speed up a little bit, [34:38.170 --> 34:40.330] if we make some automation here... [34:40.330 --> 34:42.530] Automation to the rescue, right? [34:42.530 --> 34:44.890] So, here's a proof of concept [34:44.890 --> 34:48.810] that we ran on top of our own tokens, [34:48.810 --> 34:51.430] and you can see on the bottom right screen [34:51.430 --> 34:55.110] there's a console that's running our script [34:55.110 --> 34:57.530] that's checking for different tokens, [34:57.530 --> 35:01.350] and some of them are non-existent. [35:01.350 --> 35:02.950] Some others are valid. [35:02.950 --> 35:06.290] If the token is valid, then it opens up a new tab [35:06.290 --> 35:08.710] on the web browser to your left, [35:08.710 --> 35:12.350] and if the session is actually active, [35:12.350 --> 35:17.030] then it sends a message via a Telegram bot [35:17.030 --> 35:18.710] to the attacker. [35:19.130 --> 35:21.510] So, that way, the attacker can know [35:21.510 --> 35:24.790] that a new active token has been found. [35:24.790 --> 35:28.230] And this is done by adding a malicious extension [35:28.230 --> 35:29.870] to this web browser [35:29.870 --> 35:34.350] that allows or adds more processing capabilities [35:34.910 --> 35:37.870] to the Python script that it's running [35:37.870 --> 35:39.670] on the bottom right. [35:40.190 --> 35:41.630] So, this is a simulation [35:41.630 --> 35:46.770] of 10 minutes of running the script, [35:46.770 --> 35:48.410] and you can see that in the end [35:48.410 --> 35:51.530] it doesn't take long to find new tokens. [35:51.530 --> 35:53.690] This is the average that took us [35:53.690 --> 35:55.530] to find active tokens. [35:56.090 --> 35:57.910] And in this case, you can see that the attacker [35:57.910 --> 36:01.450] has access to the control panel of this device, [36:01.450 --> 36:02.750] the Max device, [36:02.750 --> 36:05.570] and he receives a new message [36:05.570 --> 36:08.330] via Telegram in his phone, [36:08.330 --> 36:10.170] letting him know that there's a new session [36:10.170 --> 36:13.330] active in the web browser. [36:13.470 --> 36:15.010] So, how can we protect ourselves [36:15.010 --> 36:18.550] given that these devices still have vulnerabilities? [36:18.830 --> 36:20.270] Well, first of all, keep in mind [36:20.270 --> 36:23.070] that this is a sexting phenomenon. [36:23.070 --> 36:25.210] So, if you're talking about sexting, [36:25.210 --> 36:27.710] don't share any pictures or videos [36:27.710 --> 36:30.150] where other people can see your face [36:30.150 --> 36:33.690] or some particular markings that you have. [36:33.690 --> 36:36.290] Try to avoid being recognizable [36:36.290 --> 36:38.630] through these pictures and videos. [36:38.630 --> 36:42.290] Also, make sure that you're not sharing [36:42.290 --> 36:44.890] these remote tokens online or publicly [36:44.890 --> 36:46.810] and that you're always sharing them [36:46.810 --> 36:49.730] via some secure mechanism [36:49.730 --> 36:52.530] with the intended person. [36:52.530 --> 36:55.010] Make sure also that you're registering [36:55.010 --> 36:58.410] to these applications with a fantasy email. [36:58.410 --> 37:00.690] Don't use your personal email. [37:00.690 --> 37:02.490] Create a new one specifically [37:02.490 --> 37:04.810] for these applications. [37:04.810 --> 37:07.630] And also make sure to install the latest updates [37:07.630 --> 37:10.490] to install the patches [37:10.490 --> 37:12.850] to all of these vulnerabilities. [37:13.570 --> 37:14.950] Well, and of course, make sure [37:14.950 --> 37:16.550] you're using a secure network [37:16.550 --> 37:19.370] while you play with these toys. [37:19.370 --> 37:21.750] And even if it's possible, [37:21.750 --> 37:23.930] make sure nobody is around. [37:24.250 --> 37:27.350] And also, you can always google [37:27.350 --> 37:29.410] some reviews about the toy [37:29.410 --> 37:31.530] and see if there are already [37:31.530 --> 37:33.350] some security issues published [37:33.350 --> 37:36.570] or there is any security review published. [37:36.570 --> 37:39.530] And once you decide to buy a toy [37:39.530 --> 37:42.110] or once you have chosen a toy, [37:42.110 --> 37:44.110] please read terms and conditions [37:44.110 --> 37:45.670] before using it. [37:45.670 --> 37:47.310] And it's also a good practice [37:47.310 --> 37:48.810] to download the application [37:48.810 --> 37:50.070] before buying the toy [37:50.070 --> 37:52.330] so you can check the application, [37:52.330 --> 37:54.150] see which functionalities it has [37:54.150 --> 37:55.390] and how it works, [37:55.390 --> 37:58.470] and maybe guess or research a little bit [37:58.470 --> 38:00.990] about which information is asking you [38:00.990 --> 38:03.350] and how it will treat or protect [38:03.350 --> 38:05.070] 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:11.290] What about all these people [38:11.290 --> 38:12.790] that already bought a toy [38:12.790 --> 38:15.750] and now are too scared to use it? [38:15.770 --> 38:16.970] Well, remember, [38:16.970 --> 38:20.270] it's also a great toy for your dog. [38:21.750 --> 38:23.310] Thank you very much [38:23.310 --> 38:25.350] for listening to our talk.