1 00:00:00,000 --> 00:00:01,960 Hi, I'm Cecilia. 2 00:00:01,960 --> 00:00:02,880 And I'm Denise. 3 00:00:02,880 --> 00:00:05,320 And today we are going to talk about sex toys. 4 00:00:05,320 --> 00:00:06,540 Smart sex toys. 5 00:00:06,540 --> 00:00:08,780 Well, insecure smart sex toys. 6 00:00:08,780 --> 00:00:09,280 Yeah. 7 00:00:09,280 --> 00: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. 8 00:00:18,920 --> 00:00:24,900 So, in our research we tried to find these problems and today we are going to share with you our results. 9 00:00:25,100 --> 00:00:25,800 Exactly. 10 00:00:25,800 --> 00:00:30,040 But first, let's do a quick recap on the history of these devices. 11 00:00:30,520 --> 00:00:34,020 They have actually been with us for a very long time. 12 00:00:34,020 --> 00:00:36,000 Actually, more than a century. 13 00:00:36,000 --> 00:00:41,580 The first sex toys were used as medical appliances back in the 1900s. 14 00:00:41,580 --> 00:00:47,740 They were used to cure different types of pathologies, including some psychological ones. 15 00:00:47,780 --> 00: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. 16 00:01:00,220 --> 00: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. 17 00:01:09,660 --> 00:01:14,640 Imagine powering one of these via the electric power grid, right? 18 00:01:14,640 --> 00:01:18,740 Well, let's talk about physical security back in the 20s with one of those. 19 00:01:19,200 --> 00: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. 20 00:01:34,800 --> 00: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. 21 00:01:58,540 --> 00: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. 22 00:02:08,020 --> 00: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, 23 00:02:30,420 --> 00:02:39,660 an audio book, a playlist, or even have Alexa support or other assistance support to control them on voice commands. 24 00:02:39,660 --> 00:02:46,520 So, all of these functionalities are very interesting and also open the door to many vulnerabilities. 25 00:02:46,520 --> 00:02:53,280 Exactly, and they open the door to new models that can connect between each other. 26 00:02:53,760 --> 00: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. 27 00:03:05,880 --> 00: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. 28 00:03:21,040 --> 00: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. 29 00:03:36,280 --> 00:03:45,980 So, the way these smart 6 robots work is that they actually have a smartphone that functions on their head, basically. 30 00:03:45,980 --> 00:03:47,360 Like a brain. 31 00:03:47,540 --> 00:03:51,300 And that connects to the rest of the sensors of the body. 32 00:03:51,660 --> 00:04:01,380 So, that phone can be actually very vulnerable, and the updates are actually delivered through e-mails. 33 00:04:01,380 --> 00:04:04,680 So, the user has to install the APKs themselves. 34 00:04:04,680 --> 00:04:09,040 Talk about security when it comes to these types of devices. 35 00:04:09,400 --> 00: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. 36 00:04:21,120 --> 00: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. 37 00:04:36,500 --> 00:04:42,400 So, a lot of cheaters were revealed, and many people had a lot of problems in their relationships. 38 00:04:42,400 --> 00:04:49,840 And we can also think about Tinder, this dating app that has already been found in many vulnerabilities. 39 00:04:50,280 --> 00: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. 40 00:05:03,660 --> 00: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. 41 00:05:16,640 --> 00: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. 42 00:05:30,820 --> 00: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. 43 00:05:46,380 --> 00:05:48,880 So, what can go wrong with these toys? 44 00:05:48,980 --> 00:05:54,960 Well, first of all, an attacker can put a backdoor or malware inside of one of these toys. 45 00:05:54,960 --> 00:05:59,180 But also, these devices are permanently advertising themselves. 46 00:05:59,180 --> 00:06:02,620 So, they are permanently sending information of their presence there. 47 00:06:02,620 --> 00: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. 48 00:06:10,760 --> 00: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. 49 00:06:22,020 --> 00:06:32,140 And this can be some problem in many countries that have laws against some sexual practices. 50 00:06:32,140 --> 00: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. 51 00:06:39,640 --> 00: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. 52 00:06:47,900 --> 00:06:49,480 Would that be sexual assault? 53 00:06:49,480 --> 00:06:50,760 What happens there? 54 00:06:51,000 --> 00:06:54,760 These are things that we have to start considering with smart sex toys. 55 00:06:55,340 --> 00: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. 56 00:07:03,380 --> 00:07:06,620 Basically, the models that we were going to buy. 57 00:07:07,080 --> 00: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. 58 00:07:17,860 --> 00:07:21,920 So, we did what anybody would do in this situation, right? 59 00:07:21,920 --> 00:07:23,500 We went to the Museum of Sex. 60 00:07:24,060 --> 00:07:25,360 Yes, in New York. 61 00:07:25,360 --> 00:07:27,480 We were in New York and we visited the museum. 62 00:07:27,480 --> 00:07:35,600 Exactly, and we started actually testing different devices that you could test in the site. 63 00:07:35,800 --> 00:07:38,760 And we didn't bring our laptops with us. 64 00:07:38,760 --> 00:07:39,740 We should have. 65 00:07:39,740 --> 00:07:40,160 Yeah. 66 00:07:40,620 --> 00:07:48,780 But we ended up choosing two vendors that we think were one of the biggest, or two of the biggest. 67 00:07:49,300 --> 00:07:49,880 So... 68 00:07:49,880 --> 00:07:51,640 Are you referring to the size? 69 00:07:51,640 --> 00:07:51,680 No. 70 00:07:51,680 --> 00:07:52,900 Or actually the vendors? 71 00:07:52,900 --> 00:07:54,000 Oh, come on. 72 00:07:54,000 --> 00:07:55,980 Don't do this to me. 73 00:07:56,420 --> 00:07:57,860 Just thinking, just thinking. 74 00:07:57,860 --> 00:08:00,140 Okay, the first one is Lovenz. 75 00:08:00,140 --> 00: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. 76 00:08:12,140 --> 00:08:17,480 This brand has a lot of smart sex toys. 77 00:08:17,480 --> 00:08:25,300 You can connect them over a Bluetooth network or even over the internet. 78 00:08:26,040 --> 00:08:28,880 And there are so many different shapes and sizes. 79 00:08:28,880 --> 00: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. 80 00:08:37,800 --> 00:08:44,740 And I'm sure you're aware that there were several researches regarding this vendor in the past. 81 00:08:44,740 --> 00:08:48,160 So we wanted to know how much they have changed. 82 00:08:48,260 --> 00: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. 83 00:09:00,640 --> 00: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. 84 00:09:13,160 --> 00: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. 85 00:09:27,120 --> 00:09:35,760 So this is something that happens a lot with this type of IoT devices, in particular sex toys. 86 00:09:35,760 --> 00:09:39,260 So the first step was to understand the architecture. 87 00:09:39,260 --> 00:09:41,800 How are these toys connected? 88 00:09:41,980 --> 00: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. 89 00:09:52,380 --> 00: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. 90 00:10:07,140 --> 00: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. 91 00:10:27,260 --> 00:10:29,240 So that's what we analyzed. 92 00:10:29,340 --> 00:10:30,140 Exactly. 93 00:10:30,140 --> 00: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. 94 00:10:46,620 --> 00:10:49,920 So just to be clear on where we are standing. 95 00:10:49,920 --> 00:10:55,460 So the first toy we are going to show you is this naughty one right here. 96 00:10:55,680 --> 00:10:57,240 He can't stand still. 97 00:10:57,240 --> 00:11:00,740 So this is the Jive from WeVibe. 98 00:11:00,740 --> 00:11:03,760 This toy is pretty interesting because it's a wearable. 99 00:11:03,760 --> 00:11:09,440 It means that the person wears this toy and can go around playing with this toy. 100 00:11:09,440 --> 00: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. 101 00:11:17,700 --> 00:11:23,400 So that was pretty interesting for our analysis because it's a toy that you can find anywhere. 102 00:11:23,640 --> 00: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. 103 00:11:35,800 --> 00:11:42,060 Yeah, it is designed to be used in insecure networks or it should be designed for that. 104 00:11:42,060 --> 00:11:46,240 WeVibe had some trouble when it comes to information security in the past. 105 00:11:46,240 --> 00: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. 106 00:11:59,980 --> 00:12:06,580 And so they were sued and they had to pay $3.7 million, which is a lot. 107 00:12:06,580 --> 00: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. 108 00:12:15,720 --> 00:12:20,300 The first thing that we checked was the remote control via the URL. 109 00:12:20,520 --> 00: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. 110 00:12:38,380 --> 00: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. 111 00:12:46,980 --> 00:12:50,740 At least we couldn't find any problem with this right now. 112 00:12:50,740 --> 00: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. 113 00:13:00,620 --> 00:13:04,680 There are so many good things that WeBypass changed. 114 00:13:04,680 --> 00: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. 115 00:13:14,200 --> 00: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. 116 00:13:31,620 --> 00:13:38,220 But still there were some issues that we found with this transferring of images. 117 00:13:38,220 --> 00: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. 118 00:13:54,300 --> 00:13:59,360 But if the attacker has a rooted phone, well, they can access the app storage. 119 00:13:59,360 --> 00:14:01,100 In that case, that's what we did. 120 00:14:01,100 --> 00:14:08,260 We found out that the picture that is stored inside the application still has all the metadata in it. 121 00:14:08,260 --> 00:14:12,980 So when you send a picture, the metadata is not deleted before it's sent. 122 00:14:12,980 --> 00: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. 123 00:14:29,920 --> 00: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. 124 00:14:40,300 --> 00:14:45,320 This information at first could sound like something that no one could use. 125 00:14:45,320 --> 00:14:52,120 But the thing is that many people usually use these applications to talk to strangers. 126 00:14:52,120 --> 00:14:58,340 And also many people share online their tokens or their remote controls. 127 00:14:58,340 --> 00: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. 128 00:15:10,500 --> 00:15:11,500 Exactly. 129 00:15:11,500 --> 00: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. 130 00:15:22,080 --> 00:15:27,700 So we need to protect these people that are using these devices basically to work. 131 00:15:27,760 --> 00:15:28,680 What else? 132 00:15:28,680 --> 00: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. 133 00:15:42,280 --> 00: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. 134 00:15:53,740 --> 00: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. 135 00:16:06,260 --> 00:16:10,940 So polyamory has not arrived to this application. 136 00:16:11,440 --> 00: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. 137 00:16:29,720 --> 00: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. 138 00:16:41,840 --> 00:16:45,060 And like we've seen in the video, just unblock the app. 139 00:16:45,060 --> 00:16:46,080 Exactly. 140 00:16:46,080 --> 00:16:49,540 So what else regarding these toys? 141 00:16:49,540 --> 00:16:55,980 Well, as we spoke before, these toys use Bluetooth Low Energy. 142 00:16:55,980 --> 00:17:05,400 And this protocol has a particular characteristic that is that there are two types of devices, peripheral and central devices. 143 00:17:05,400 --> 00: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. 144 00:17:14,140 --> 00: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. 145 00:17:24,460 --> 00:17:25,900 This means that... 146 00:17:25,900 --> 00:17:26,640 Like that. 147 00:17:26,640 --> 00:17:27,420 See? 148 00:17:27,600 --> 00:17:29,000 You're doing that. 149 00:17:29,000 --> 00:17:30,640 I'm not doing that. 150 00:17:30,680 --> 00:17:31,340 It's crazy. 151 00:17:31,340 --> 00:17:32,300 We are already being hacked. 152 00:17:32,300 --> 00:17:33,360 Who is doing that? 153 00:17:33,360 --> 00:17:33,960 I'm not sure. 154 00:17:33,960 --> 00:17:34,900 There's nobody here. 155 00:17:34,900 --> 00:17:36,040 It's just us. 156 00:17:36,260 --> 00:17:37,660 Okay, so... 157 00:17:37,660 --> 00:17:39,020 Is somebody here? 158 00:17:39,760 --> 00:17:41,240 A ghost. 159 00:17:41,300 --> 00: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. 160 00:17:51,640 --> 00: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. 161 00:18:00,480 --> 00: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. 162 00:18:10,000 --> 00:18:16,860 A compass to get closer to the device just using the signal strength of each device. 163 00:18:16,860 --> 00: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. 164 00:18:28,820 --> 00:18:31,300 That's pretty much a lot of information. 165 00:18:31,300 --> 00: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. 166 00:18:51,100 --> 00:18:57,720 And they are still functioning because there is no authentication when it comes to this Bluetooth connection. 167 00:18:57,720 --> 00:19:02,020 And so it's quite vulnerable to this type of hijackings. 168 00:19:02,020 --> 00: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? 169 00:19:13,020 --> 00:19:14,900 Well, that's actually what we tried. 170 00:19:14,900 --> 00: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. 171 00:19:21,940 --> 00:19:26,980 So in a common scenario, a toy would be connected to the user's phone. 172 00:19:26,980 --> 00: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. 173 00:19:41,520 --> 00: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. 174 00:19:49,740 --> 00:19:54,820 So, in the next video, we are going to see a proof-of-concept of this. 175 00:19:54,860 --> 00:20:02,420 So what we did is use the tool BTLJuice to create a man-in-the-middle attack. 176 00:20:02,420 --> 00:20:10,120 This tool uses two Bluetooth dongles and the attacker will need two computers, or in this case, two virtual machines. 177 00:20:10,120 --> 00:20:15,080 In the first one, what the attacker would do is create a Bluetooth proxy. 178 00:20:15,080 --> 00:20:23,200 This Bluetooth proxy will be in charge of getting all the Bluetooth communications, capturing all the Bluetooth traffic. 179 00:20:23,380 --> 00: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. 180 00:20:35,660 --> 00: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. 181 00:20:42,620 --> 00:20:50,080 So, in that interface, the attacker can see all the Bluetooth devices on range. 182 00:20:50,320 --> 00:20:53,560 And there you will find the child, our toy. 183 00:20:54,000 --> 00: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. 184 00:21:05,660 --> 00: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. 185 00:21:19,500 --> 00:21:26,680 So, then the victim connects to that dummy, to the fake toy, and when sends a command, the toy actually moves. 186 00:21:26,680 --> 00:21:32,720 As you see on the screen, the attacker is capturing all these packages, all these commands. 187 00:21:32,720 --> 00:21:37,800 So the attacker can start knowing some commands and getting some traffic. 188 00:21:38,720 --> 00: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. 189 00:21:48,480 --> 00:21:51,500 So then, the attacker can get some commands. 190 00:21:51,740 --> 00:21:56,620 But what the attacker can do next is take any of these packages and just reply it. 191 00:21:56,620 --> 00:21:58,760 That means send it back to the toy. 192 00:21:59,120 --> 00:22:05,300 So now, the attacker is sending a command, and while the victim is not doing anything, the toy is moving. 193 00:22:05,300 --> 00:22:06,760 So the toy is vibrating. 194 00:22:06,760 --> 00:22:11,280 So the attacker is the one that is actually controlling the toy at this point. 195 00:22:11,520 --> 00:22:16,820 You can see it's sending different type of commands, and the toy is responding. 196 00:22:19,850 --> 00:22:26,010 Also, what the attacker can do when the device is stopping, is change these packages. 197 00:22:26,010 --> 00:22:27,690 Just add new commands. 198 00:22:27,690 --> 00:22:35,390 These commands can either be taken from the source code of the application or by capturing a lot of traffic. 199 00:22:35,390 --> 00:22:38,630 So there, for example, you have the max intensity. 200 00:22:38,670 --> 00:22:44,850 So the attacker can send a command to the toy to vibrate at its maximum intensity. 201 00:22:45,190 --> 00:22:48,610 And there you will see how the toy is now vibrating. 202 00:22:48,730 --> 00:22:57,310 So the attacker can not only intercept the actual commands, but also change them or send new commands to the toy. 203 00:22:57,310 --> 00:23:01,750 So in this case, I don't know, maybe it could be a sexual assault. 204 00:23:01,750 --> 00:23:03,730 Something to talk about or to think about. 205 00:23:05,870 --> 00: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. 206 00:23:21,350 --> 00: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. 207 00:23:29,110 --> 00:23:33,770 This device can be synchronized with its counterpart. 208 00:23:33,770 --> 00:23:37,890 It can be another max device or a Nora device. 209 00:23:37,890 --> 00: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. 210 00:23:54,010 --> 00:23:59,710 So you can have two devices under your control by the price of one. 211 00:24:00,630 --> 00: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. 212 00:24:16,730 --> 00: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? 213 00:24:27,950 --> 00:24:31,710 Yes, well, some questionable design choices from Lovance. 214 00:24:31,710 --> 00:24:35,430 To start, the screenshots are allowed. 215 00:24:35,430 --> 00:24:40,990 So for a sexting application, that's pretty much something to think about. 216 00:24:40,990 --> 00:24:46,530 But also, well, the metadata was deleted from the pictures before they are sent. 217 00:24:46,530 --> 00:24:47,550 That's great. 218 00:24:47,550 --> 00:24:55,330 But the pictures that a person sent on a chat, well, are very difficult to delete from the remote smartphone. 219 00:24:55,330 --> 00:24:57,430 They practically stay there. 220 00:24:57,430 --> 00:24:59,630 What do we mean by this? 221 00:24:59,630 --> 00:25:05,270 Well, let's imagine you're using the application and you send your partner your own picture. 222 00:25:05,470 --> 00:25:10,130 Let's say that you now open the options menu on this picture. 223 00:25:10,130 --> 00:25:11,710 Well, you see different options. 224 00:25:11,710 --> 00:25:16,030 First of all, you can see that you can delete the picture. 225 00:25:16,030 --> 00:25:19,430 But this deletion only works locally. 226 00:25:19,430 --> 00:25:26,930 It doesn't remove the picture from the server nor the phone of your lover. 227 00:25:26,930 --> 00:25:30,570 So basically, once you send the picture, you lose control. 228 00:25:31,350 --> 00:25:38,590 Also, the remote partner can also forward or download your picture whenever they want. 229 00:25:39,010 --> 00: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. 230 00:25:50,010 --> 00:25:59,290 The lover's privacy policy says that these pictures stay in their servers unencrypted, by the way, for seven days. 231 00:25:59,290 --> 00:26:02,870 But we've actually found that they can stay longer. 232 00:26:03,390 --> 00:26:07,870 There's actually a hidden option that's called Recall. 233 00:26:07,870 --> 00:26:14,570 And that's the one you want to use when you want to delete a picture from the two devices. 234 00:26:14,570 --> 00:26:22,190 But this option is only available for two minutes after sending the picture and then completely disappears. 235 00:26:22,190 --> 00: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. 236 00:26:30,930 --> 00: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. 237 00:26:41,210 --> 00: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. 238 00:26:56,190 --> 00:27:01,190 In this case, it's the same one as the email addresses. 239 00:27:01,190 --> 00:27:08,190 When you register into the application, you can set a fantasy username and you need to provide your email. 240 00:27:08,190 --> 00:27:09,370 Well, guess what? 241 00:27:09,370 --> 00:27:14,070 That email is actually shared with whomever you're chatting with. 242 00:27:14,070 --> 00:27:17,410 Let's say you open up a chat with one of your friends. 243 00:27:17,410 --> 00:27:24,430 Well, the application uses your email as your user ID to identify your phone. 244 00:27:24,430 --> 00:27:29,830 So they are sharing your email with the person that you're chatting. 245 00:27:30,130 --> 00:27:38,630 And they can look up your email in the internal files of the phone because they are not encrypted. 246 00:27:38,630 --> 00:27:49,070 And even if they were, you can still somehow manage to get through this information by injecting the application at runtime. 247 00:27:49,530 --> 00:27:58,130 And there are other ways, other issues related to the way this application manipulates the email addresses. 248 00:27:58,130 --> 00:28:07,250 For example, you can query the server to see if a given email address is registered on the system. 249 00:28:07,250 --> 00:28:12,170 So you can know based on the response if the email exists. 250 00:28:12,170 --> 00: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. 251 00:28:30,530 --> 00:28:33,490 So you could query all that you want. 252 00:28:33,950 --> 00:28:37,050 And it works the other way around. 253 00:28:37,050 --> 00:28:40,910 You can also query for usernames and get their emails. 254 00:28:40,910 --> 00: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. 255 00:28:53,830 --> 00: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. 256 00:29:15,310 --> 00:29:18,830 So these emails could be used to identify a person, right? 257 00:29:18,830 --> 00:29:19,510 Yes , exactly. 258 00:29:19,510 --> 00: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. 259 00:29:29,890 --> 00:29:34,910 But most of the time, these are fantasy names like sexyscot26. 260 00:29:34,910 --> 00: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. 261 00:29:44,230 --> 00:29:47,050 Be sure not to register with a corporate account, right? 262 00:29:47,050 --> 00:29:48,690 Yeah, for sure. 263 00:29:49,530 --> 00:29:56,670 Well, apart from this, Loven's remote control also works with an URL. 264 00:29:56,670 --> 00: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. 265 00:30:06,870 --> 00:30:10,850 So this URL works directly through the internet. 266 00:30:10,850 --> 00:30:17,100 It does not need for the remote partner to have the app installed as in the case of Webuy. 267 00:30:17,530 --> 00:30:25,290 So in this case, this URL is made by, at first, an alphanumeric token with only four characters. 268 00:30:25,290 --> 00:30:29,530 So we started analyzing a little bit about this token. 269 00:30:29,530 --> 00:30:36,130 So apparently, Loven says it's a one-time use token and it lasts only 30 minutes. 270 00:30:36,130 --> 00:30:41,990 But we were going to test this and see if this is true. 271 00:30:41,990 --> 00:30:44,570 Spoiler alert, it's not. 272 00:30:44,790 --> 00:30:51,210 So this is the remote panel where the remote lover can connect to control this toy. 273 00:30:51,210 --> 00:30:55,130 In this case, what you're seeing is the panel for our own toy. 274 00:30:55,130 --> 00:31:02,290 In the case of Max, you have two controls for vibration and for air control. 275 00:31:02,410 --> 00:31:10,090 So anyone that connects to this URL without authentication just gets control of this toy. 276 00:31:10,090 --> 00: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. 277 00:31:23,530 --> 00: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. 278 00:31:35,850 --> 00:31:41,950 And then we tried to analyze how this access to this token worked. 279 00:31:41,950 --> 00:31:52,470 So basically, if the token never actually existed, then it's the server redirects to a JSON with page not found. 280 00:31:52,810 --> 00: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. 281 00:32:03,550 --> 00: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. 282 00:32:18,490 --> 00: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. 283 00:32:28,750 --> 00:32:37,130 At the end, the session only expires, or the token expires, if the user reaches the final URL. 284 00:32:37,130 --> 00: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, 285 00:32:56,770 --> 00:32:59,050 or if it has expired. 286 00:32:59,130 --> 00:33:01,670 So, is there a way to weaponize this? 287 00:33:01,670 --> 00:33:10,130 Could an attacker just try to write a script to find random active tokens and try to join these remote sessions? 288 00:33:10,210 --> 00: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. 289 00:33:25,490 --> 00:33:28,290 And, in fact, this worked. 290 00:33:28,290 --> 00:33:29,630 It's a success. 291 00:33:29,630 --> 00:33:34,910 You can actually tell with a script if a token is active or not. 292 00:33:35,510 --> 00: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? 293 00:33:45,990 --> 00:33:48,990 I mean, is it really worth it? 294 00:33:48,990 --> 00:33:55,350 Or would he have to wait so long that it's not even worth the effort? 295 00:33:55,350 --> 00:33:56,950 Well, let's do some math. 296 00:33:56,950 --> 00:33:58,090 Let's check this. 297 00:33:58,090 --> 00: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. 298 00:34:13,670 --> 00: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. 299 00:34:22,970 --> 00:34:32,030 And, also, the attacker needs to access this URL, this token, before their remote partner does, so it doesn't expire. 300 00:34:32,030 --> 00:34:34,610 So, it's pretty much complicated. 301 00:34:34,610 --> 00:34:35,950 It's a lot of time. 302 00:34:35,950 --> 00:34:40,330 So, maybe if we speed up a little bit, if we make some automation here... 303 00:34:40,330 --> 00:34:42,530 Automation to the rescue, right? 304 00:34:42,530 --> 00: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. 305 00:35:01,350 --> 00:35:02,950 Some others are valid. 306 00:35:02,950 --> 00: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. 307 00:35:19,130 --> 00:35:24,790 So, that way, the attacker can know that a new active token has been found. 308 00:35:24,790 --> 00: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. 309 00:35:40,190 --> 00: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. 310 00:35:51,530 --> 00:35:55,530 This is the average that took us to find active tokens. 311 00:35:56,090 --> 00: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. 312 00:36:13,470 --> 00:36:18,550 So, how can we protect ourselves given that these devices still have vulnerabilities? 313 00:36:18,830 --> 00:36:23,070 Well, first of all, keep in mind that this is a sexting phenomenon. 314 00:36:23,070 --> 00: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. 315 00:36:33,690 --> 00:36:38,630 Try to avoid being recognizable through these pictures and videos. 316 00:36:38,630 --> 00: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. 317 00:36:52,530 --> 00:36:58,410 Make sure also that you're registering to these applications with a fantasy email. 318 00:36:58,410 --> 00:37:00,690 Don't use your personal email. 319 00:37:00,690 --> 00:37:04,810 Create a new one specifically for these applications. 320 00:37:04,810 --> 00:37:12,850 And also make sure to install the latest updates to install the patches to all of these vulnerabilities. 321 00:37:13,570 --> 00:37:19,370 Well, and of course, make sure you're using a secure network while you play with these toys. 322 00:37:19,370 --> 00:37:23,930 And even if it's possible, make sure nobody is around. 323 00:37:24,250 --> 00: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. 324 00:37:36,570 --> 00: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. 325 00:37:45,670 --> 00: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. 326 00:38:05,070 --> 00:38:07,190 So, well, that's all. 327 00:38:07,190 --> 00:38:09,970 But what happens if you already have a toy? 328 00:38:09,970 --> 00:38:15,750 What about all these people that already bought a toy and now are too scared to use it? 329 00:38:15,770 --> 00:38:20,270 Well, remember, it's also a great toy for your dog. 330 00:38:21,750 --> 00:38:25,350 Thank you very much for listening to our talk.