start	end	text
0	1960	Hi, I'm Cecilia.
1960	2880	And I'm Denise.
2880	5320	And today we are going to talk about sex toys.
5320	6540	Smart sex toys.
6540	8780	Well, insecure smart sex toys.
8780	9280	Yeah.
9280	11660	There have been previous researches on this subject,
11660	13420	and you can find them online,
13420	16040	but many devices that are still on the market
16040	18920	have a lot of vulnerability and privacy issues.
18920	21900	So, in our research we tried to find these problems
21900	24900	and today we are going to share with you our results.
25100	25800	Exactly.
25800	27800	But first, let's do a quick recap
27800	30040	on the history of these devices.
30520	34020	They have actually been with us for a very long time.
34020	36000	Actually, more than a century.
36000	39120	The first sex toys were used as medical appliances
39120	41580	back in the 1900s.
41580	45180	They were used to cure different types of pathologies,
45180	47740	including some psychological ones.
47780	52140	Then, throughout the 1920s, 30s, 40s, 50s,
52140	55040	even to the late 60s,
55040	57840	new devices, new models, new shapes
57840	59980	started to appear in the market.
60220	64780	And they were, this time, advertised towards the home users
64780	67420	that could buy these products, take them home,
67420	69320	and use them whenever they wanted.
69660	74640	Imagine powering one of these via the electric power grid, right?
74640	77460	Well, let's talk about physical security back in the 20s
77460	78740	with one of those.
79200	84440	Then, by the 70s, the emergence of new feminist movements
84440	87740	alongside the boom of the porn industry
87740	90900	propelled those devices,
90900	94800	and new forms, shapes, and materials started to be used.
94800	100300	But by the 2000s, this thing starts to get interesting for us,
100300	104200	because new devices that could be controlled remotely
104200	107660	via infrared connectivity started to appear,
107660	110660	and by the 2010s,
110660	114420	there were several devices that could be controlled locally
114420	118540	via Bluetooth with an application on your own smartphone.
118540	121900	Yeah, with the arrival of IoT and new technologies,
121900	125380	many manufacturers decided to integrate these toys
125380	128020	with mobile apps and internet connections.
128020	131320	So, nowadays, in 2020,
131320	134380	we have toys that have a lot of characteristics
134380	137560	and that can be used remotely,
137560	141580	like control the toy remotely through the mobile app
141580	143600	or even a web browser,
143600	145600	and change the vibrating patterns,
145600	150420	or even synchronize the device with a video call,
150420	152700	an audio book, a playlist,
152700	157140	or even have Alexa support or other assistance support
157140	159660	to control them on voice commands.
159660	162940	So, all of these functionalities are very interesting
162940	166520	and also open the door to many vulnerabilities.
166520	170380	Exactly, and they open the door to new models
170380	173280	that can connect between each other.
173760	177160	And also, we are now starting to see a trend
177160	180000	towards smart 6 robots
180000	182640	that have a lot of different capabilities
183060	185820	that can be connected to the internet.
185880	190020	They have certain artificial intelligence apps
190020	193080	that can be installed on the device,
193080	196000	and these apps, of course, have a lot of vulnerabilities
196000	200880	that we can somehow assess to try to bypass.
201040	204440	So, we actually contacted a few of these vendors
204440	209080	to ask them about the characteristics of these smart 6 robots,
209080	214200	and we found out that they are following several bad practices
214200	216260	when it comes to security.
216280	220100	So, the way these smart 6 robots work
220100	222620	is that they actually have a smartphone
222620	225980	that functions on their head, basically.
225980	227360	Like a brain.
227540	231300	And that connects to the rest of the sensors of the body.
231660	235840	So, that phone can be actually very vulnerable,
235840	241380	and the updates are actually delivered through e-mails.
241380	244680	So, the user has to install the APKs themselves.
244680	249040	Talk about security when it comes to these types of devices.
249400	252240	Well, apart from the devices,
252240	254240	if we think about the sex industry
254240	256680	and the adult entertainment industry,
256680	261020	these industries have already been the target of several cyber attacks.
261120	263640	And the first attack that comes to my mind
263640	266520	is the Ashley Madison social network,
266520	270200	which a couple of years before was the target of an attack,
270200	274600	and the details, the information of more than 30 million users
274600	276500	was exposed online.
276500	278820	So, a lot of cheaters were revealed,
278820	282400	and many people had a lot of problems in their relationships.
282400	285340	And we can also think about Tinder,
285340	289840	this dating app that has already been found in many vulnerabilities.
290280	293860	And also, we have to think about the many scams
293860	296740	that are based on fake apps,
296740	299460	or fake lab promises,
299460	303480	or even sextortion based on stolen information.
303660	306980	So, if to these attacks to the sex industry,
306980	309520	we add the fact that IoT devices
309520	312200	are being compromised by attackers
312200	315080	to perform different types of attacks,
315080	316640	well, that's a problem.
316640	319920	And we can think, for example, about the Mirai network,
319920	323740	or about a case where attackers got control
323740	327080	of a thermometer in a casino's fish tank,
327080	330820	and then from there could jump to the casino's network.
330820	335420	So, if we sum up the industry of sex
335420	337780	that has been the target of cyber attacks,
337780	340860	with the many IoT devices that we have today in the market
340860	343460	that are already being used by attackers,
343460	346200	well, the combination is a little bit scary.
346380	348880	So, what can go wrong with these toys?
348980	352880	Well, first of all, an attacker can put a backdoor or malware
352880	354960	inside of one of these toys.
354960	359180	But also, these devices are permanently advertising themselves.
359180	361080	So, they are permanently sending information
361080	362620	of their presence there.
362620	365840	So, it's pretty easy to find if a toy is present
365840	370760	on a hotel room, or if someone is carrying one with him.
370760	373600	So, this can lead to several issues,
373600	376980	like information disclosure, information very sensitive,
376980	379220	for example, as sexual orientation,
379220	381880	sexual partners, or sexual practices.
382020	387880	And this can be some problem in many countries
387880	392140	that have laws against some sexual practices.
392140	394680	But also, we can think about an attacker
394680	397340	that gets control of one of these devices
397340	399640	while a user is playing with it.
399640	402400	So, imagine a person has a toy, it's playing at home,
402400	404640	but then an attacker gets control of that toy
404640	407900	and is the one that is really sending the commands to the toy.
407900	410760	Would that be sexual assault? What happens there?
411000	412940	These are things that we have to start considering
412940	414760	with smart sex toys.
415340	417600	So, at the start of our research,
417600	421420	we had to choose the devices that we were going to use
421940	423380	for our research.
423380	426620	Basically, the models that we were going to buy.
427080	431160	And, voila, there were so many different vendors,
431160	432620	so many different models,
432620	434140	and it was really hard to choose
434140	436200	with so many different characteristics,
436200	437640	each and every one of them.
437860	441920	So, we did what anybody would do in this situation, right?
441920	443500	We went to the Museum of Sex.
444060	445360	Yes, in New York.
445360	447480	We were in New York and we visited the museum.
447480	451600	Exactly, and we started actually testing different devices
451600	455600	that you could test in the site.
455800	458760	And we didn't bring our laptops with us.
458760	459740	We should have.
459740	460160	Yeah.
460620	464560	But we ended up choosing two vendors
464560	467140	that we think were one of the biggest,
467140	468780	or two of the biggest.
469300	469880	So...
469880	471640	Are you referring to the size?
471640	471680	No.
471680	472900	Or actually the vendors?
472900	474000	Oh, come on.
474000	475980	Don't do this to me.
476420	477860	Just thinking, just thinking.
477860	480140	Okay, the first one is Lovenz.
480140	483260	I'm sure many of you know this brand
483260	484880	if you're interested in sex toys
484880	486480	and security of sex toys,
486480	491440	because there have been research on this particular vendor.
492140	497480	This brand has a lot of smart sex toys.
497480	501140	You can connect them over a Bluetooth network
501140	505300	or even over the internet.
506040	508880	And there are so many different shapes and sizes.
508880	511840	And we have also WeVibe that we choose
511840	514320	because they also have a lot of smart sex toys
514760	517800	and they are very important in the market.
517800	519080	And I'm sure you're aware
519080	521760	that there were several researches
521760	524740	regarding this vendor in the past.
524740	528160	So we wanted to know how much they have changed.
528260	530120	So the first we did was
530120	533640	we visited the websites of these two vendors
533640	536980	and tried to look at the characteristics
537980	540640	of their different models.
540640	543040	So the first thing that you can see
543040	545420	is that there is a lot of information
545420	547900	about colors, materials,
547900	550880	how much the battery lasts,
550880	553160	how much does it take to charge them.
553160	555380	But there were no mentions,
555380	556880	at least on the websites,
556880	559360	about protocols, encryption,
559360	561980	and the security that was being applied
561980	565240	to these apps and this firmware
565240	567020	to make it secure.
567120	571060	So this is something that happens a lot
571060	573460	with this type of IoT devices,
573460	575760	in particular sex toys.
575760	578220	So the first step was to understand
578220	579260	the architecture.
579260	581800	How are these toys connected?
581980	585880	So the toy connects to the user's smartphone
585880	589540	using a personal area network like Bluetooth
589540	592360	or, in most cases, Bluetooth Low Energy.
592380	594260	Then, from the smartphone,
594260	596800	the user connects to an API from the vendor,
596800	598560	usually on a vendor server,
598560	600080	and then the remote partner,
600080	602200	that can be anywhere in the world,
602200	603400	connects to that API
603400	606800	and from there gets control of the remote toy.
607140	609600	So in this architecture, in this model,
609600	611200	there are a lot of attack vectors
611200	613020	that an attacker could use,
613020	618040	like go for the personal area network connection
618040	619980	or go for the Bluetooth connection,
619980	623540	maybe something on the smartphone, on the app,
623540	627180	or even the remote connection through the internet API.
627260	629240	So that's what we analyzed.
629340	632460	Exactly. But first, a quick disclaimer,
632460	634880	because all of the vulnerabilities
634880	637260	that we are going to see throughout the talk
637260	638580	that we are going to discuss
638580	639940	have been already fixed
639940	643680	and we have permission to perform
643680	646620	and distribute the content that you are going to see.
646620	649920	So just to be clear on where we are standing.
649920	652340	So the first toy we are going to show you
652340	655460	is this naughty one right here.
655680	657240	He can't stand still.
657240	660740	So this is the Jive from WeVibe.
660740	662280	This toy is pretty interesting
662280	663760	because it's a wearable.
663760	666540	It means that the person wears this toy
666540	669440	and can go around playing with this toy.
669440	671460	So usually a couple use these toys
671460	674760	in bars, restaurants, or even discos,
674760	677700	not only in hotel rooms or inside a house.
677700	679840	So that was pretty interesting for our analysis
679840	683400	because it's a toy that you can find anywhere.
683640	685720	And it's, as we said before,
685720	687760	it's permanently advertising its presence
687760	691320	and an attacker can easily find one of these
691320	695800	like 30 feet around.
695800	699800	Yeah, it is designed to be used in insecure networks
699800	702060	or it should be designed for that.
702060	703560	WeVibe had some trouble
703560	706240	when it comes to information security in the past.
706240	709420	It was at DEF CON a few years ago
709420	711440	that a research was presented
711440	715780	where it was proven that they had collected
715780	717980	too much information from their users
717980	719980	without their consent.
719980	721480	And so they were sued
721480	724640	and they had to pay $3.7 million,
724640	726580	which is a lot.
726580	728980	So we wanted to see if they had learned
728980	730420	from this experience
730420	732960	and they had changed their applications
732960	735460	to make them more secure.
735720	737540	The first thing that we checked
737540	740300	was the remote control via the URL.
740520	742520	This application has the possibility
742520	746420	to create a 12 characters string
746420	748440	that it's been used as a token
748440	750660	and you can share with your partner
750660	754040	and so they can connect via the application
754040	758360	to control your own sex toy.
758380	762840	So this token used to have some problems in the past
762840	764660	it didn't expire as it should
764660	766980	but now they actually fixed it.
766980	769160	At least we couldn't find any problem
769160	770740	with this right now.
770740	772280	The first things that we checked
772280	774120	were some privacy issues
774120	776560	that could have critical consequences
776560	777460	for their users
777460	780200	leading to information disclosure.
780620	782880	There are so many good things
782880	784680	that WeBypass changed.
784680	787840	For example, now they block all screenshot attempts,
787840	788460	which is great
788460	790820	and it's quite common in these applications
790820	794200	that tend to handle such sensitive data.
794200	796220	They applied end-to-end encryption
796220	798560	to encrypt all the pictures that you are sending
798560	803480	and their files actually are deleted
803480	805980	from the chat once the chat ends
805980	806880	which is great
806880	808300	so you know that your pictures
808300	811620	do not linger on the phone of your partners.
811620	814160	But still there were some issues
814160	818220	that we found with this transferring of images.
818220	820880	Yes, well, the pictures sent on the chat
820880	825320	are saved to the storage inside the app
825320	827360	sorry, to the app storage inside the phone
827360	830380	so that no other app can access that picture
830380	831860	or you cannot access that picture
831860	834240	from outside the application.
834300	837080	But if the attacker has a rooted phone,
837080	839360	well, they can access the app storage.
839360	841100	In that case, that's what we did.
841100	842540	We found out that the picture
843090	845180	that is stored inside the application
845180	848260	still has all the metadata in it.
848260	849780	So when you send a picture,
849780	852980	the metadata is not deleted before it's sent.
852980	855580	So that picture can be uploaded to a site
855580	857040	like, for example, Metapix
857040	859200	and an attacker can find out
859200	861820	where the person that sent the picture
861820	864180	is actually located,
864180	869560	the exact location by the GPS details, information.
869920	871560	The attacker can also know
871560	873720	the model of the phone that's being used,
873720	875620	the camera, the time and date
875620	877860	the photo was actually taken,
877860	880300	and if it has been edited or not.
880300	882520	This information at first could sound
882520	885320	like something that no one could use.
885320	887780	But the thing is that many people
887780	889920	usually use these applications
889920	892120	to talk to strangers.
892120	895020	And also many people share online
895020	898340	their tokens or their remote controls.
898340	901500	So if that person is trying to hide
901500	903500	his or her true personality
903500	906860	or is trying to hide where he or she is,
906860	908420	well, the metadata and the pictures
908420	910100	does not help.
910500	911500	Exactly.
911500	914540	And sometimes this is not a personal choice,
914540	915860	but this is also
916760	918760	can be part of the service
918760	922080	as a cam girl or a cam boy service.
922080	924140	So we need to protect these people
924140	925440	that are using these devices
925440	927700	basically to work.
927760	928680	What else?
928680	931220	Well, this application actually includes
931720	934080	a four-digit PIN that they can use
934080	936140	in order to lock the application
936140	939000	so no one else can access the application
939000	942280	unless it has a four-digit PIN.
942280	945320	This functionality might be in place
945320	946980	to protect the app from
946980	950080	your kids or something like that,
950080	951020	your nieces,
951020	953740	or maybe also a jealous lover.
953740	956260	So the consequences can also be
956260	957940	kind of critical
957940	961460	if you're talking about a toxic relationship
961460	964180	because this application only allows
964180	966260	one partner at a time.
966260	968720	So polyamory has not arrived
968720	970940	to this application.
971440	973620	So this PIN can actually,
973620	976180	since it's just a four-digit PIN,
976180	979440	can be brute-forced by using a bad USB
979440	981540	with a very simple script
981540	984840	because it takes the keyboard input
984840	987420	and not like a grid of buttons
987420	989720	or other type of components.
989720	993420	So it's quite trivial to access this token
993420	997560	and therefore access the control panel
997560	998460	of the application
998460	1001620	and the usage of the application itself.
1001840	1003600	And like we've seen in the video,
1003600	1005060	just unblock the app.
1005060	1006080	Exactly.
1006080	1009540	So what else regarding these toys?
1009540	1012880	Well, as we spoke before,
1012880	1015980	these toys use Bluetooth Low Energy.
1015980	1019760	And this protocol has a particular characteristic
1019760	1022980	that is that there are two types of devices,
1022980	1025400	peripheral and central devices.
1025400	1027560	Peripheral devices that are usually the toys
1027560	1031300	have to be constantly advertising their presence
1031300	1034140	to wait for a connection from the central device.
1034140	1038120	That means that while a toy is not connected
1038120	1039520	to a smartphone,
1039520	1042860	it's permanently advertising,
1042860	1044460	that they are waiting for the connection.
1044460	1045900	This means that...
1045900	1046640	Like that.
1046640	1047420	See?
1047600	1049000	You're doing that.
1049000	1050640	I'm not doing that.
1050680	1051340	It's crazy.
1051340	1052300	We are already being hacked.
1052300	1053360	Who is doing that?
1053360	1053960	I'm not sure.
1053960	1054900	There's nobody here.
1054900	1056040	It's just us.
1056260	1057660	Okay, so...
1057660	1059020	Is somebody here?
1059760	1061240	A ghost.
1061300	1064580	So the attacker can download an application
1064580	1066600	like this Bluetooth scanner
1066600	1069140	and just try to find out
1069140	1071640	if there are any devices around.
1071640	1074060	In the example that you can see on the screen,
1074060	1076920	we are finding the Jive that's here
1076920	1079860	and the Max that we are going to talk later about.
1080480	1082580	So it's pretty easy for the attacker
1082580	1084340	to just find these devices,
1084340	1086640	find a lot of information from these devices
1086640	1090000	and start using this scanner as a compass.
1090000	1092600	A compass to get closer to the device
1092600	1096860	just using the signal strength of each device.
1096860	1098840	So the attacker can easily move around
1098840	1101120	looking for the best signal strength
1101120	1103660	and that would give the attacker an idea
1103660	1106080	of where is the toy present,
1106080	1108780	who is wearing or using that toy.
1108820	1111300	That's pretty much a lot of information.
1111300	1113700	Yes, and then they can connect to the toy
1113700	1116700	and they don't even need the app to do that
1116700	1119120	because there are several websites
1120060	1121580	that you can use
1121580	1124980	by using the web Bluetooth APA
1124980	1127960	to connect to the sex toy
1127960	1131100	and send comments to the sex toys.
1131100	1132500	And they are still functioning
1132960	1134820	because there is no authentication
1134820	1137720	when it comes to this Bluetooth connection.
1137720	1142020	And so it's quite vulnerable to this type of hijackings.
1142020	1145960	So not only an attacker can get control of this toy
1145960	1148280	whenever the toy is available,
1148280	1151580	but also, could an attacker get into a middle of a conversation,
1151580	1153020	into a middle of a connection?
1153020	1154900	Well, that's actually what we tried.
1154900	1156560	A Bluetooth man-in-the-middle attack,
1156560	1159980	where the attacker tries to get in the middle of a communication
1159980	1161940	and control the toy.
1161940	1163980	So in a common scenario,
1164040	1166980	a toy would be connected to the user's phone.
1166980	1169140	But in this case,
1169140	1170620	what the attacker will try to do
1170620	1173180	is get in the middle of that connection,
1173180	1176820	create a fake toy in his or her computer,
1176820	1179740	and then make the user connect to the fake toy
1179740	1181520	instead of the real toy.
1181520	1183420	And the attacker will be the one
1183420	1186520	who will forward the commands to the toy
1186520	1189160	or maybe change them in the middle.
1189740	1191700	So, in the next video,
1191700	1194820	we are going to see a proof-of-concept of this.
1194860	1196160	So what we did is
1196160	1199360	use the tool BTLJuice
1199360	1202420	to create a man-in-the-middle attack.
1202420	1205060	This tool uses two Bluetooth dongles
1205060	1207960	and the attacker will need two computers,
1207960	1210120	or in this case, two virtual machines.
1210120	1211260	In the first one,
1211260	1215080	what the attacker would do is create a Bluetooth proxy.
1215080	1217700	This Bluetooth proxy will be in charge of
1218720	1221080	getting all the Bluetooth communications,
1221080	1223200	capturing all the Bluetooth traffic.
1223380	1225520	Then once the proxy is up,
1225520	1227180	the attacker can go to the other computer
1227180	1228540	or the other virtual machine
1229080	1233220	and will connect to the Bluetooth proxy,
1233220	1235340	to the BTLJuice proxy.
1235660	1237220	And then, once connected,
1237220	1240240	you will see that this tool has a web interface
1240240	1242620	that's very useful and easy to use.
1242620	1246400	So, in that interface,
1246400	1250080	the attacker can see all the Bluetooth devices on range.
1250320	1253560	And there you will find the child, our toy.
1254000	1256140	So then, once the attacker finds the toy,
1256140	1258320	can connect to that toy,
1258320	1261120	and as you see in the console,
1261120	1263360	the tool BTLJuice will create
1263360	1265660	what is called a dummy.
1265660	1268700	It's like a fake toy, a fake device,
1268700	1271520	where the user, the victim, will connect
1271520	1274040	but will still think that it's the real toy
1274040	1277200	because this dummy will copy all the characteristics
1277200	1279360	of the real device.
1279500	1282120	So, then the victim connects to that dummy,
1282120	1283480	to the fake toy,
1283480	1286680	and when sends a command, the toy actually moves.
1286680	1288240	As you see on the screen,
1288240	1291420	the attacker is capturing all these packages,
1291420	1292720	all these commands.
1292720	1295880	So the attacker can start knowing some commands
1295880	1297800	and getting some traffic.
1298720	1302700	So, there can you see the user is changing
1302700	1304840	some vibration patterns,
1304840	1306440	and the attacker is there capturing
1306440	1308400	all of these packages.
1308480	1311500	So then, the attacker can get some commands.
1311740	1313200	But what the attacker can do next
1313200	1316620	is take any of these packages and just reply it.
1316620	1318760	That means send it back to the toy.
1319120	1322140	So now, the attacker is sending a command,
1322140	1324160	and while the victim is not doing anything,
1324160	1325300	the toy is moving.
1325300	1326760	So the toy is vibrating.
1326760	1329300	So the attacker is the one that is actually controlling
1329300	1331280	the toy at this point.
1331520	1334960	You can see it's sending different type of commands,
1334960	1336820	and the toy is responding.
1339850	1341630	Also, what the attacker can do
1341630	1343990	when the device is stopping,
1343990	1346010	is change these packages.
1346010	1347690	Just add new commands.
1347690	1350690	These commands can either be taken from
1350690	1352370	the source code of the application
1352370	1355390	or by capturing a lot of traffic.
1355390	1358630	So there, for example, you have the max intensity.
1358670	1361110	So the attacker can send a command to the toy
1361110	1364850	to vibrate at its maximum intensity.
1365190	1368610	And there you will see how the toy is now vibrating.
1368730	1373450	So the attacker can not only intercept the actual commands,
1373450	1377310	but also change them or send new commands to the toy.
1377310	1379370	So in this case, I don't know,
1379370	1381750	maybe it could be a sexual assault.
1381750	1383730	Something to talk about or to think about.
1385870	1388830	So we have proved that these devices
1388830	1391730	are still vulnerable to this type of attack
1391730	1394390	and no authentication has been included
1394390	1398030	in these toys in the past years,
1398030	1401350	which was the goal of this research.
1401350	1404450	So now we are going to analyze our Lovance device,
1404450	1406350	which is the max device that you are
1406350	1409110	watching right now on screen.
1409110	1411650	This device can be synchronized
1411650	1413770	with its counterpart.
1413770	1417890	It can be another max device or a Nora device.
1417890	1421270	These models are interesting from a hacking perspective
1421270	1427930	because if a hacker has control over one of these devices,
1427930	1430750	then immediately compromises the other one
1430750	1434010	that replicates the movements of the first.
1434010	1437890	So you can have two devices under your control
1437890	1439710	by the price of one.
1440630	1443630	So we started analyzing the application
1443630	1445930	that is used to control this device,
1446490	1449810	that is the Lovance Remote application,
1449810	1453730	and we started analyzing the privacy features
1453730	1456730	related to this application.
1456730	1460010	Well, we could see that it uses a 4-digit PIN
1460010	1463570	to lock the application, same as the other one,
1463570	1467950	but there were some concerns, right?
1467950	1471710	Yes, well, some questionable design choices from Lovance.
1471710	1475430	To start, the screenshots are allowed.
1475430	1477630	So for a sexting application,
1477630	1480990	that's pretty much something to think about.
1480990	1484350	But also, well, the metadata was deleted
1484350	1486530	from the pictures before they are sent.
1486530	1487550	That's great.
1487550	1491270	But the pictures that a person sent on a chat,
1491270	1493590	well, are very difficult to delete
1493590	1495330	from the remote smartphone.
1495330	1497430	They practically stay there.
1497430	1499630	What do we mean by this?
1499630	1501930	Well, let's imagine you're using the application
1501930	1505270	and you send your partner your own picture.
1505470	1510130	Let's say that you now open the options menu on this picture.
1510130	1511710	Well, you see different options.
1511710	1516030	First of all, you can see that you can delete the picture.
1516030	1519430	But this deletion only works locally.
1519430	1523110	It doesn't remove the picture from the server
1523110	1526930	nor the phone of your lover.
1526930	1529130	So basically, once you send the picture,
1529130	1530570	you lose control.
1531350	1535210	Also, the remote partner can also forward
1535210	1538590	or download your picture whenever they want.
1539010	1542910	And since this picture stays on the server,
1542910	1544730	then they can also query the server
1544730	1546910	to get the image if they know the URL
1546910	1549330	of this particular resource.
1550010	1553010	The lover's privacy policy says
1553010	1556350	that these pictures stay in their servers
1556350	1559290	unencrypted, by the way, for seven days.
1559290	1562870	But we've actually found that they can stay longer.
1563390	1566350	There's actually a hidden option
1566350	1567870	that's called Recall.
1567870	1569890	And that's the one you want to use
1569890	1571810	when you want to delete a picture
1571810	1574570	from the two devices.
1574570	1576830	But this option is only available
1576830	1579330	for two minutes after sending the picture
1579330	1582190	and then completely disappears.
1582190	1585090	So if you never tried to delete the pictures
1585090	1587390	right after you send it,
1587390	1589550	then you don't even know that this function
1589550	1590930	even exists.
1590930	1592810	So that's something to have in mind
1592810	1595450	if you or one of your relatives
1595450	1597750	or someone of your friends
1597750	1600490	is actually using this application.
1601210	1604770	Also, when we start analyzing the traffic,
1604770	1607870	you can see that there are several queries,
1607870	1610270	HTTP GET queries,
1610270	1613070	that are broadcasting information
1613070	1616190	such as the user ID.
1616190	1618390	In this case, it's the same one
1618390	1621190	as the email addresses.
1621190	1623130	When you register into the application,
1623130	1625330	you can set a fantasy username
1625330	1628190	and you need to provide your email.
1628190	1629370	Well, guess what?
1629370	1631310	That email is actually shared
1631310	1634070	with whomever you're chatting with.
1634070	1636310	Let's say you open up a chat
1636310	1637410	with one of your friends.
1637410	1640350	Well, the application uses your email
1640350	1642050	as your user ID
1642050	1644430	to identify your phone.
1644430	1646910	So they are sharing your email
1646910	1649830	with the person that you're chatting.
1650130	1653030	And they can look up your email
1653030	1656330	in the internal files of the phone
1656330	1658630	because they are not encrypted.
1658630	1659910	And even if they were,
1659910	1662490	you can still somehow
1663110	1665670	manage to get through this information
1665670	1669070	by injecting the application at runtime.
1669530	1671310	And there are other ways,
1671310	1673190	other issues related to
1673190	1674910	the way this application
1674910	1678130	manipulates the email addresses.
1678130	1681070	For example, you can query the server
1681070	1684610	to see if a given email address
1684610	1687250	is registered on the system.
1687250	1689550	So you can know based on the response
1689550	1692170	if the email exists.
1692170	1696370	You could use a leaked database
1696370	1699890	of emails from previous attacks,
1699890	1701230	let's say the Ashley Madison
1701870	1703510	social network attack,
1703510	1705190	and then query these emails
1705190	1706450	against the server
1706450	1708570	because there are no protections
1708570	1710530	against brute forcing.
1710530	1713490	So you could query all that you want.
1713950	1717050	And it works the other way around.
1717050	1718430	You can also query for usernames
1718850	1720910	and get their emails.
1720910	1722950	So let's say you
1722950	1724670	start browsing the application
1724670	1727330	and you find the patterns library
1727730	1730930	where users can share their patterns of use
1730930	1733830	publicly with other users.
1733830	1736710	So you could find usernames
1736710	1738530	listed in this library
1738530	1740070	and then query the server
1740070	1741130	to get their emails
1741130	1742870	and start different attacks
1742870	1744230	as social engineering
1744230	1746590	or sextortion attacks
1746590	1749550	or even use these emails
1749550	1752190	to launch other types of attacks
1752190	1754770	since these are also the user IDs.
1755310	1756750	So these emails could be used
1756750	1758830	to identify a person, right?
1758830	1759510	Yes, exactly.
1759510	1760950	Well, apart from the library,
1760950	1761930	we need to think that
1761930	1763890	many people just share
1763890	1765430	their username, their nicknames
1765430	1767890	online for remote session
1767890	1769890	with someone around the world.
1769890	1771530	But most of the time,
1771530	1772950	these are fantasy names
1772950	1774910	like sexyscot26.
1774910	1776270	Well, in this case,
1776270	1777630	an attacker could find out
1777630	1780090	what's the email for sexyscot26
1780390	1781990	and find the real person
1781990	1783810	behind that nickname.
1784230	1785450	Be sure not to register
1785450	1787050	with a corporate account, right?
1787050	1788690	Yeah, for sure.
1789530	1791650	Well, apart from this,
1792210	1793730	Loven's remote control
1793730	1796670	also works with an URL.
1796670	1799770	So the person that has this toy
1799770	1803070	can create a remote control URL
1803070	1804830	for his or her partner
1804830	1806870	to control the toy remotely.
1806870	1809790	So this URL works directly
1809790	1810850	through the internet.
1810850	1813230	It does not need for the remote partner
1813230	1814570	to have the app installed
1814570	1817100	as in the case of Webuy.
1817530	1818650	So in this case,
1818650	1821190	this URL is made by,
1821190	1823050	at first, an alphanumeric token
1823050	1825290	with only four characters.
1825290	1826630	So we started analyzing
1826990	1829530	a little bit about this token.
1829530	1832030	So apparently, Loven says
1832030	1833690	it's a one-time use token
1833690	1836130	and it lasts only 30 minutes.
1836130	1840090	But we were going to test this
1840090	1841990	and see if this is true.
1841990	1844570	Spoiler alert, it's not.
1844790	1847250	So this is the remote panel
1847250	1848970	where the remote lover
1848970	1851210	can connect to control this toy.
1851210	1852810	In this case, what you're seeing
1852810	1855130	is the panel for our own toy.
1855130	1856130	In the case of Max,
1856130	1857250	you have two controls
1857250	1862290	for vibration and for air control.
1862410	1865310	So anyone that connects to this URL
1865310	1866770	without authentication
1867130	1870090	just gets control of this toy.
1870090	1871870	So the idea here was to find
1871870	1873910	if it was able to just
1873910	1875250	guess different tokens
1875250	1877130	and get access to panels
1877130	1878670	that are online
1878670	1881150	and maybe get a panel
1881150	1883330	for another person's toy.
1883530	1886150	Yeah, so we created different tokens,
1886150	1887770	some of them expired,
1887770	1889050	some of them active,
1889050	1892210	and we used our own Loven app
1892210	1895490	installed on our own smartphone.
1895850	1898850	And then we tried to analyze
1898850	1901950	how this access to this token worked.
1901950	1904410	So basically, if the token
1904410	1906810	never actually existed,
1906810	1909390	then it's the server redirects
1909390	1912470	to a JSON with page not found.
1912810	1914470	But in the case the token
1914470	1916810	existed at some point in time,
1916810	1919830	then it's redirected to another resource
1919830	1923430	with a path that you can see now on screen.
1923550	1925790	You can see there's an SID
1925790	1928930	or a session ID that links the token,
1928930	1930410	the user ID,
1930410	1933290	and also the ID of the particular device,
1933290	1935630	since a user can have multiple devices
1935630	1938310	connected to this application.
1938490	1940710	And then there was a second redirection
1941790	1943510	within this process,
1943510	1945250	where you can see that the only thing
1945250	1947130	that changes is the two
1947130	1948750	in the middle of the path.
1948750	1951870	At the end, the session only expires,
1951870	1953710	or the token expires,
1953710	1957130	if the user reaches the final URL.
1957130	1959390	But in the meantime, you can interrupt the process
1960090	1963030	and try to somehow see
1963030	1965890	if the response from the server
1965890	1968390	tells you if a token is valid,
1968390	1971490	meaning it has existed at some point in time,
1971490	1973710	if it's active, meaning there's someone
1973710	1976770	actually waiting for you to connect to this token,
1976770	1979050	or if it has expired.
1979130	1981670	So, is there a way to weaponize this?
1981670	1984370	Could an attacker just try to write a script
1984370	1986930	to find random active tokens
1986930	1990130	and try to join these remote sessions?
1990210	1992930	Well, we created different tokens,
1992930	1995710	some of them expired, some of them active,
1995710	1999770	and we actually tested some non-existent tokens,
2000310	2001690	and we created a script
2001690	2005490	to see if we could do this programmatically.
2005490	2009630	And, in fact, this worked. It's a success.
2009630	2012310	You can actually tell with a script
2012310	2014910	if a token is active or not.
2015510	2019610	So, we tested this set of tokens,
2019610	2021550	and then we wondered,
2021550	2023830	could an attacker wait for how long
2024310	2025990	to find an active token?
2025990	2028990	I mean, is it really worth it?
2028990	2032150	Or would he have to wait so long
2032150	2035350	that it's not even worth the effort?
2035350	2038090	Well, let's do some math. Let's check this.
2038090	2042610	So, it's a four-digit token with letters and numbers,
2042610	2046290	and that would be around 36 characters,
2046290	2047670	different characters,
2047670	2051770	and that would be like 1.6 million possibilities
2051770	2053630	of tokens to try.
2053670	2058470	So, if we think about one second per token to find them,
2058470	2060810	it would take maybe 20 days for an attacker
2060810	2062890	to find a token valid.
2062970	2066930	And, also, the attacker needs to access this URL,
2066930	2070350	this token, before their remote partner does,
2070350	2072030	so it doesn't expire.
2072030	2074610	So, it's pretty much complicated.
2074610	2075950	It's a lot of time.
2075950	2078170	So, maybe if we speed up a little bit,
2078170	2080330	if we make some automation here...
2080330	2082530	Automation to the rescue, right?
2082530	2084890	So, here's a proof of concept
2084890	2088810	that we ran on top of our own tokens,
2088810	2091430	and you can see on the bottom right screen
2091430	2095110	there's a console that's running our script
2095110	2097530	that's checking for different tokens,
2097530	2101350	and some of them are non-existent.
2101350	2102950	Some others are valid.
2102950	2106290	If the token is valid, then it opens up a new tab
2106290	2108710	on the web browser to your left,
2108710	2112350	and if the session is actually active,
2112350	2117030	then it sends a message via a Telegram bot
2117030	2118710	to the attacker.
2119130	2121510	So, that way, the attacker can know
2121510	2124790	that a new active token has been found.
2124790	2128230	And this is done by adding a malicious extension
2128230	2129870	to this web browser
2129870	2134350	that allows or adds more processing capabilities
2134910	2137870	to the Python script that it's running
2137870	2139670	on the bottom right.
2140190	2141630	So, this is a simulation
2141630	2146770	of 10 minutes of running the script,
2146770	2148410	and you can see that in the end
2148410	2151530	it doesn't take long to find new tokens.
2151530	2153690	This is the average that took us
2153690	2155530	to find active tokens.
2156090	2157910	And in this case, you can see that the attacker
2157910	2161450	has access to the control panel of this device,
2161450	2162750	the Max device,
2162750	2165570	and he receives a new message
2165570	2168330	via Telegram in his phone,
2168330	2170170	letting him know that there's a new session
2170170	2173330	active in the web browser.
2173470	2175010	So, how can we protect ourselves
2175010	2178550	given that these devices still have vulnerabilities?
2178830	2180270	Well, first of all, keep in mind
2180270	2183070	that this is a sexting phenomenon.
2183070	2185210	So, if you're talking about sexting,
2185210	2187710	don't share any pictures or videos
2187710	2190150	where other people can see your face
2190150	2193690	or some particular markings that you have.
2193690	2196290	Try to avoid being recognizable
2196290	2198630	through these pictures and videos.
2198630	2202290	Also, make sure that you're not sharing
2202290	2204890	these remote tokens online or publicly
2204890	2206810	and that you're always sharing them
2206810	2209730	via some secure mechanism
2209730	2212530	with the intended person.
2212530	2215010	Make sure also that you're registering
2215010	2218410	to these applications with a fantasy email.
2218410	2220690	Don't use your personal email.
2220690	2222490	Create a new one specifically
2222490	2224810	for these applications.
2224810	2227630	And also make sure to install the latest updates
2227630	2230490	to install the patches
2230490	2232850	to all of these vulnerabilities.
2233570	2234950	Well, and of course, make sure
2234950	2236550	you're using a secure network
2236550	2239370	while you play with these toys.
2239370	2241750	And even if it's possible,
2241750	2243930	make sure nobody is around.
2244250	2247350	And also, you can always google
2247350	2249410	some reviews about the toy
2249410	2251530	and see if there are already
2251530	2253350	some security issues published
2253350	2256570	or there is any security review published.
2256570	2259530	And once you decide to buy a toy
2259530	2262110	or once you have chosen a toy,
2262110	2264110	please read terms and conditions
2264110	2265670	before using it.
2265670	2267310	And it's also a good practice
2267310	2268810	to download the application
2268810	2270070	before buying the toy
2270070	2272330	so you can check the application,
2272330	2274150	see which functionalities it has
2274150	2275390	and how it works,
2275390	2278470	and maybe guess or research a little bit
2278470	2280990	about which information is asking you
2280990	2283350	and how it will treat or protect
2283350	2285070	that information.
2285070	2287190	So, well, that's all.
2287190	2289970	But what happens if you already have a toy?
2289970	2291290	What about all these people
2291290	2292790	that already bought a toy
2292790	2295750	and now are too scared to use it?
2295770	2296970	Well, remember,
2296970	2300270	it's also a great toy for your dog.
2301750	2303310	Thank you very much
2303310	2305350	for listening to our talk.
