start	end	text
3430	5950	Good day, DEF CON and Car Hacking Village.
5950	7630	I am Jonathan Petit,
7630	9490	and I'm here with two of my colleagues,
9490	11550	Rashid Ansari and Kong Chen.
11550	14310	We are the research team for Qualcomm
14310	17430	working on connected and automated vehicle security.
18150	21330	Today, we're going to talk about misbehavior detection
21330	26730	and demonstrating you some attacks on VLAN board unit.
27010	29270	So before we start, I think it is important
29270	32230	that we understand what is V2X communication.
32230	37150	So V2X enable devices like vehicles,
37150	39690	pedestrians or roadside unit to be equipped
39690	42970	with an onboard unit, a device that enables
42970	47050	all of those components to broadcast information
47050	50070	in the surrounding to create an awareness.
50330	54750	So in this example, we have three cars
54750	57850	and are all equipped with V2X technology.
58190	60490	And we'll see that now the white car
60490	62530	is performing an emergency brake.
62890	64370	Therefore, because the onboard unit
64370	66110	is connected to the CAN bus,
66110	68490	it can detect that there is a high deceleration,
68490	71010	for example, and that in the brake pressure,
71010	73490	and therefore we'll be able to generate a message
73490	76390	that he's sending to the surrounding vehicle.
77150	79750	So those messages are called basic safety message
79750	81550	here in the US, so that's the BSM
81550	83750	that we're going to talk about in this talk.
84390	87210	When the vehicle receive a BSM,
87210	89270	they are able to understand that the white car
89270	90910	is performing an emergency brake,
90910	93290	and therefore themselves brake,
93290	95070	avoiding a chain of collision.
95130	98030	So we see the huge benefit, safety benefit,
98030	101890	especially in that V2V use case that we are showing you.
101890	105370	This is an emergency electronic brake light application,
105370	108770	and it's consuming BSM sent by other vehicle
108770	111350	to understand an emergency brake is happening.
111430	113950	So there is many application for safety
113950	116330	and auto efficiency that are designed for V2X.
116330	117710	So this is the context here.
117710	120490	We are looking at those type of application.
120730	123130	So then, of course, we understand
123130	124650	that from a security standpoint,
125010	127730	we do not want external attacker
127730	132030	to be able to send bad messages to the other vehicles.
132030	134430	So all the messages that are sent
134430	136330	are actually digitally signed.
136330	138870	So in the same example we just showed before,
138870	141890	now we have the white car is actually signing
141890	144890	with this private key, attaching a certificate,
145210	147090	the message before sending it.
147090	151390	The receiver will use the keys in order to verify
151990	154890	that this is sent by an authenticated vehicle.
155210	156350	Good.
156610	159410	But as you might imagine,
159410	163370	this doesn't prevent any bad content to be sent.
163370	167670	You could be authenticated, but sending wrong information.
168190	170230	So here in our same example,
170230	172010	we have here the white car is an attacker,
172010	175270	is sending a fake EBL to the other vehicles.
175610	178310	The other vehicle will verify the signature.
178310	179530	It's all valid.
179570	181530	Therefore, they have to use a content
181530	183990	which says it is an emergency brake.
184310	187490	Here in the animation you just saw here,
187490	188990	the blue car didn't stop.
188990	190010	And you might wonder why.
190010	191410	It's because we can make an assumption
191410	195350	that this vehicle was equipped or is equipped with a camera
195350	197890	and therefore didn't see the white car braking.
198190	200570	But the red car has no line of sight
200570	202970	and therefore has to trust that information.
203550	204870	So we clearly understand
204870	207990	and you need a misbehavior protection system
207990	210310	to defend against such attacks.
210370	213330	And this is one we're going to present today
213330	217090	is really about the attacks and how you perform this
217090	219670	and how you protect against this.
220070	222610	So let me show you a little bit
222610	225770	on our example about misbehavior.
226150	228970	Here on the left-hand side,
228970	232570	this is an application called intelligent signaling.
232830	234870	This is where you have a traffic light
234870	236530	equipped with a roadside unit
236530	238110	with the same kind of equipment
238110	240730	to receive the message sent by the vehicle.
241570	243630	And by reading the BSM,
243630	247590	it adjusts the signal phase and time.
247590	249850	Therefore, it's going to play with the red and green
249850	252710	on this different segment coming at the intersection.
253490	256710	And an attack that was demonstrated by some researcher
257650	262690	showed that if the vehicles are sending wrong BSMs,
262690	264070	I'm going to just run the video here,
264070	266670	if you send that, and after 30 minutes of attack,
266670	270850	you can see this long line at each of two,
270850	272530	or actually three intersections,
272530	274070	three segment of the intersection.
274070	277310	So an application that consumed a BSM that is fake,
277310	279490	even though it's purely authenticated,
279490	283530	if you do not do a misbehavior analysis protection,
283530	286690	you might see issues like this in intelligent signaling.
287890	290650	Now looking on the right-hand side,
290650	293070	we have a position jump attack.
293290	296670	So the position here in that representation,
296670	300110	you are, the ego vehicle is the green dot.
300110	304670	You're driving and an attacker is sending messages
305370	308650	with the same identifier, but he's jumping,
308650	309690	he's changing his position.
309690	311190	That's where you see this blue dot,
311190	313090	this is the BSM received.
313090	315150	And it's flickering because it's actually jumping
315150	316670	back and forth.
316770	320150	And sometimes outside of the frame here that you can see,
320150	321830	but it's basically doing it back and forth.
321830	323610	That's the position jump attack.
324350	326230	And what is interesting,
326230	329810	as you're going to hear this sound in a few seconds,
330530	333070	is that sometimes this is performing here
333250	334750	a forward collision warning.
334750	337210	So even though this was a position jump,
337210	341090	you might see you need to detect those kinds of behavior.
341090	343390	Same identifier and still jumping back and forth.
343390	346750	That shouldn't be taken in consideration by an application.
348090	350510	I have other example to show you.
350550	355150	Here, this is another representation of the onboard unit.
355150	358150	Here, this is, we use MATLAB actually as a visualization.
358370	361030	And you are the red car.
361110	364330	And all the other blocks that you see,
364330	366230	the blue and orange one,
366230	369830	are the vehicles also sent by the V2X message.
369830	371890	So you're going to represent this local dynamic map
371890	373390	with all the vehicles.
373390	375630	On the left-hand side, you have the first misbehavior.
375630	377110	It's changing headings.
377110	379430	Because part of the BESM,
379430	380770	there is the position,
380770	382950	there is your kinematic states, your velocity,
382950	384570	but also you have the headings
384570	388490	that helps pass planning, for example.
388490	390650	To know where is this car going?
390650	392470	Especially when you perform pass prediction
392470	393630	when you're using Kalman filter.
393630	395190	You want to use that heading.
395490	398010	And here, in this specific example,
398010	399810	you see the car actually spinning.
399810	401950	So we are changing the heading all the time.
402150	404710	So now your system that consumed the BESM
404710	405790	to perform pass planning
405790	409210	might be really confused by this kind of behavior.
410190	412770	In the middle, we have a single attack.
412870	414610	So this is where an attacker
414610	418810	is using multiple certificates that are all valid at once.
418810	421610	So it could be 20 certificates valid per week.
421610	424490	And for example, you'll be using your 20 or 19,
424490	425830	depends if you want to use yours,
425830	426730	and you send your 19
426730	430190	to create 19 other ghost vehicles on the road.
430190	432790	And you can make them move as you wish.
432790	436710	So that is what happens when you map
436710	438370	all the BESM you receive
438370	441850	and put them on this virtual view.
442130	445530	It is really hard for the connected
445530	447230	and even automated vehicle in the future
447230	450710	to behave in this kind of really noisy environment.
452490	454790	On the right hand side, we have a position overlap.
454790	457090	This is where an attacker is actually overlapping
457090	458330	two of those vehicles.
458330	460530	So here, that is basically what we see.
460530	463370	And here even overlapping with your own position.
463970	465590	And those are just a couple of example
465590	467270	about what we call misbehavior
467830	469910	that are all authenticated messages,
469910	471310	but the content is wrong.
474330	477650	So when we look at V2X misbehavior,
477650	480050	there's what we call a misbehavior life cycle.
480170	482630	So you receive those V2X messages,
482630	485010	and here we gave example about basic safety message
485010	487370	because they are the one commonly frequently sent
487370	491310	every 100 millisecond to other neighboring vehicle.
491310	493730	The first stage is the detection.
493730	495550	You want to do misbehavior detection.
495590	497710	So what do you do in this case?
498270	502570	The goals are to validate the position of the sender,
502570	506550	his motion, its motion, and the presence.
507870	510550	To do that, you can also,
510550	513190	you have to look at the application content.
513190	514650	So the application layer content,
514650	517610	meaning you look at the content of the message itself.
517750	519290	You will look at a different field,
519290	522770	are they plausible, are they actually consistent?
523870	526830	But one important thing is that you need to understand
527510	529890	the effect on the V2X application
529890	532370	that is consuming that ESM.
532570	534930	Because not all messages are actually triggering
535530	537030	an application event.
537030	539990	In our case of the EEBL that we showed earlier,
541830	544650	you will perform an EEBL,
544650	547970	so perform yourself a heart breaking or warning the user
547970	550610	only if the vehicle is ahead of you
551290	553530	with a sudden deceleration, for example,
553530	556310	and a brake status flag at one.
556950	559810	So I could be sending wrong messages,
559810	561350	but I'm not ahead of you,
561350	565510	and therefore it will not trigger the V2X application.
565510	567270	So it is important to understand that
567270	568850	because not all messages are equal
568850	570970	and therefore should be investigated.
571410	574730	As we're going to demonstrate in the demo later,
574730	578190	it is really also important to look at the lower layer
578190	579690	of the IETF stack.
579690	581250	I'm going to give you an example
581250	585050	where you can use signal strengths of the signal
585050	587630	to really identify the position
588230	591150	or the presence of another vehicle.
592050	594310	So, but then really finally,
594310	595970	when you build a detection system,
595970	597930	you need to have a timely detection.
598170	599570	You want a real time detection
599570	602350	because this is a safety of life application.
602350	605050	This is the information is useful to,
605050	607670	in our example of an EEBL to perform an emergency brake.
607670	612110	Therefore you need to detect that attack really quickly.
612110	613770	You cannot afford to wait the whole chain
614390	616270	until the global reaction.
617330	621530	And you have to do this, so in real time, if possible,
621530	626090	and with high accuracy, and that's the performance part
626090	629210	where in some cases, our case, for example,
629210	631350	we want to favor recall over precision
631970	633650	because it is important to capture
634450	636090	as much attack as possible
636090	638970	and really precise only on one attack.
639250	640910	So, but that will depend on your system
640910	643690	and your use case and what you will consider.
643690	645430	So this is everything you need to consider
645430	648370	when you want to build a detection system.
649130	650990	As soon as you've detected,
650990	652450	it's not just enough to detect
652450	654350	and give it to the application.
654350	656430	You need to perform a local reaction.
657290	659970	And two example about what could happen locally
659970	663150	on your vehicle is to dismiss the further messages
663150	665050	from the same identifier.
666190	668710	But as we know, there is privacy by design in V2X,
668710	673570	which means that we, each vehicle are using pseudonyms
673570	677050	and can change them according to pseudonym change strategies.
677050	679490	So what about pseudonym change in this case?
679490	680990	If you dismiss that,
680990	683850	the same standard will simply change identifier.
684010	685630	It's still a question here.
685690	687950	Another reaction that we do locally
687950	690130	is to adjust your kinematic state.
690130	693170	So you will perform potentially a graceful degradation.
693450	695530	Let's say that you are in a platoon of vehicle,
695530	696810	of connected vehicle,
696810	699210	where you use those BSTEM to know that the vehicle is ahead
699210	702410	and agree on the inter-vehicle distance.
703190	704830	And now you detect that in that platoon,
704830	705990	there is a misbehavior.
706270	707970	You better actually say,
707970	709950	oh, let me leave the platoon
709950	712250	or degrade and say,
712250	715850	if this was a level four autonomous vehicle,
715850	717630	for example, you want to go a level three,
717630	719370	you want to go back to the driver,
719370	720750	or you want to warn the driver.
720750	724390	So it is important to think in terms of the cyberspace,
724390	725450	dismissing the further message
725450	728130	and also on the physical space, what do you do?
729890	732070	Then also, when you do your detection,
732070	735050	you will perform, you will generate a report.
735050	736490	That's the reporting phase.
736490	739810	So here, depending on the type of misbehavior,
739810	742670	you will have different type of misbehavior report.
742930	744950	And this is currently under standardization
744950	748150	to actually agree about what should be in that report.
748590	750150	When do you put the evidence?
750150	751750	What evidence do you need?
751750	753610	And this report is important
754190	756210	because it is sent to encrypted
756930	759650	and sent to the MA, the Misbehavior Authority.
759650	762930	It is a component part of the PKI for,
762930	764890	and in our case, the SCMS.
765440	767090	The Misbehavior Authority,
767090	770570	receive all the misbehavior report from different vehicles,
770570	772590	aggregate those misbehavior report.
772670	777150	And it is the only one that can actually link
777850	781190	this different pseudonym to the same device
781190	783290	by actually a process of talking
783290	786330	to the other SCMS component, PKI component.
786630	788590	And this is how, for example,
788590	790650	they could detect a Sybil attack
790650	792990	because they will know that all those devices
792990	794550	are linked to the same pseudonym.
795090	796490	So that is an example
796490	798710	about what is happening in the investigation.
798950	803910	And then the MA will decide what is the global reaction.
804110	806070	In cyberspace, this is a revocation,
806070	808290	for example, of the enrollment certificate.
808410	810010	If you cannot revoke,
810010	812410	as it is the case currently in Europe,
812410	813910	you just block the generation
813910	817310	of future pseudonym certificate for that vehicle.
817310	818350	And then you will put that on,
818350	819630	for example, in the US,
819630	820710	we put that on the CRL,
820710	822330	the Certification of Location List,
822330	823810	that is then provided to all vehicles
823810	826810	so that they can dismiss immediately the message.
827870	829330	But something that isn't discussed yet
829330	831710	is really what happened in the physical space.
832010	833430	You could, for example,
833430	836470	inform the owner of the vehicle, of the device,
836470	838870	and to perform an inspection, to repair,
838870	840710	and therefore to perform a re-enrollment
840710	843070	into the system in a secure location.
843530	845290	Or maybe why not performing
845790	847370	a remote vehicle immobilization?
847370	849870	For now, you are stopping the vehicle where it is
849870	851950	because that's been a misbehavior.
851950	854050	Of course, this remote vehicle immobilization
854510	855270	could be problematic
855270	856930	if this is coming from a faulty sensor
856930	859170	and not a real malicious attacks.
859770	861190	But you know what we are saying,
861190	862950	it's like there's a need of cyber reaction
862950	865190	and physical space also reaction.
865370	867630	So this is the whole misbehavior lifecycle.
867990	870650	And as we can definitely see it,
870650	874590	as an attacker, if I fool the detection part,
874590	875930	you will never report me,
875930	877150	you will never react to it,
877150	878350	you will know no investigation
878350	880270	and no verbal reaction.
880270	881890	Therefore for this presentation,
881890	883370	we're going to focus on this part
883370	888290	about how an attacker can defeat the detection system.
888290	889610	And we're going to show you a progression.
889610	892230	How do we usually do the attacks?
892230	893350	So where are we going to start
893350	896170	and then slowly make it a smarter and smarter attacker.
896170	898790	For this now, I will have my colleague, Rashid.
898790	901050	I'm going to take over to talk to you
901050	902790	about this progression of attacks.
917480	918720	Can you hear me now?
925580	926980	All right, yeah.
926980	928120	Thank you, Jonathan.
928120	935060	So as Jonathan talked about the detection portion
935060	939080	of misbehavior detection system.
939220	943500	So this slide shows you all the possible ways
943500	949340	that we look at right now to detect any attack.
949340	952520	So any attack on the application
952520	958100	or on the physical layer,
958120	959620	or anything.
959620	964180	So let's go over what we do about,
964180	967080	how we go about checking all the,
969040	972500	checking everything in the V2X space here.
972500	975880	So first we look at basic plausibility checks,
975880	978500	where we look at if the speed or angle
978500	983560	or acceleration in a BSM or a CAM message is unrealistic.
983560	986460	Is it too high or is the turning angle
986460	988360	too much as the vehicle?
988360	991000	As you saw in the heading change example,
991000	993920	is the vehicle really changing its heading a lot?
993920	995200	Is this really possible?
995200	998200	And we can do this on a per message basis.
999620	1000860	And that's how,
1000860	1005020	and you don't need a chain of messages for this.
1005840	1008000	So an attack can be detected
1008000	1011100	with one message as well in this case.
1011380	1013880	Then we look at consistency with the sensor.
1013880	1017980	So we look at whatever messages we are getting,
1017980	1019760	like whatever speed you're getting,
1019760	1022220	you compare that with, let's say a radar,
1022220	1024620	like if a radar is tracking any other vehicle,
1024620	1027160	whatever speed that radar,
1027160	1030120	that you can calculate using the radar input,
1030120	1033640	you compare that with the information you're getting
1033640	1036100	in the V2X, in the BSM.
1037440	1042000	So that way this can also be done in a per message basis,
1042000	1045300	but can only be done on vehicles that are nearby.
1045300	1047240	And by nearby, I mean in line of sight,
1047240	1050160	because radars, cameras can only work in line of sight,
1050160	1051540	but not in non-line of sight.
1052120	1054180	Similarly, we look at the RF,
1054180	1058400	we compare the position, the direction, the velocity,
1058400	1060740	we look at the consistency on the RF side
1060740	1062320	as well as on the V2X side.
1062920	1066480	And then we would also look at map data.
1066480	1069680	So we look at the consistency with the map data we had.
1070220	1074060	If a car, for example, has a position that goes
1074840	1078600	through buildings, that is not really a lane
1078600	1080500	that we know about.
1080540	1085920	So we would really like to see,
1085920	1090140	okay, is the information coming in the V2X message,
1090140	1093580	does that correlate with what we have in the map data?
1093660	1096320	And then we look at consistency
1096320	1098940	between the senders' messages.
1098940	1103540	So consistency within the message itself from a sender,
1103540	1105400	like if the brake status,
1105400	1108220	for example, if the brake status is not consistent
1108220	1110740	with deceleration between the messages,
1110740	1113940	like if the brake is applied,
1113940	1116160	is the acceleration negative?
1116160	1117920	Is the vehicle really decelerating?
1117960	1119960	So that is one example we look at,
1119960	1122080	is the position, speed, and acceleration,
1122080	1123640	is that consistent with each other?
1123640	1124960	So that is one more thing.
1124960	1127280	And there are many more things that we can look at
1127280	1130540	in a VSM or a CAM message.
1131580	1135920	Then we look at consistency with other vehicles' messages.
1135920	1140960	So for example, if you have multiple vehicles
1140960	1147300	going on a highway, and you look at one-way traffic,
1147300	1149940	all the vehicles are heading towards this one direction,
1149940	1152580	and one vehicle is coming directly
1152580	1154000	in the opposite direction.
1154000	1156620	So that is a possible misbehavior.
1157140	1159380	It can be that there is some crazy driver
1159380	1160720	who is coming on this direction,
1160720	1163080	but it is really highly unlikely,
1163080	1165240	and we consider that as a misbehavior.
1165240	1167420	Or we look at, that is one example,
1167420	1170180	but in general terms, we look at the trajectory
1170840	1173600	that is implied by one car and match it with others.
1173740	1175640	Like for speed, for example,
1175640	1179320	the speed of vehicles should almost be similar
1179320	1181540	on a highway scenario as well.
1181540	1183120	So we look at that as well.
1183870	1186800	Now, this is how we detect.
1187060	1189640	And now talking about the fun part,
1189640	1191240	how do you attack all of this?
1191700	1199440	So what we do is we look at how an attacker will go about
1199440	1204320	attacking the misbehavior system
1204320	1209280	or the B2X system as a whole on the receiver.
1209280	1211540	So the attacker could attack the security layer,
1211540	1214120	he could attack on the L1, L2 layer,
1214120	1215280	that physical MAC layer,
1215280	1217900	that is, he could perform some attacks on the spectrum,
1217900	1220860	or he could attack on the application layer as well.
1220920	1222720	So for example, on security layer,
1222720	1225220	what he can do, he can send outdated messages.
1225220	1227140	That means the generation time of the message
1227140	1228800	is too far behind,
1228800	1231160	but you're still receiving that message now.
1231160	1233420	So that is kind of an attack,
1233420	1234480	that is kind of a message
1234480	1236560	that you shouldn't have really received.
1237000	1239320	And then the other attack is
1239320	1241840	that the vehicle could just send unsigned BSMs
1241840	1244300	and you just receive those messages,
1244300	1246460	you say, oh, this is not authenticated,
1246460	1247660	you drop that.
1247980	1254580	Then to counter an outdated B2X message attack,
1254580	1259000	the attacker could forward the generation time in the BSMs
1259000	1260440	and you could keep that current
1260440	1265020	to actually try to circumvent the old message check
1266040	1268900	that can be performed on the security layer.
1268900	1270580	The attacker could also send a message
1270580	1273280	without a certificate to invoke no certificate check,
1273280	1276360	he could also send an expired certificate,
1276360	1279400	he could incorrectly sign a message,
1279400	1282720	and then he could be inconsistent on the channel
1283280	1285080	as well during transmission.
1285080	1287120	Now, all of these attacks on the security layer,
1287120	1290480	what they could do is they can starve the receiver
1290480	1294880	of resources, of processing power.
1294920	1298700	So even though all these messages are false
1298700	1301280	and they raise all these concerns,
1302320	1306820	the receiver could already lose processing
1306820	1310360	any BSM that is from a legitimate vehicle
1310360	1316020	and possibly not react to any real incident
1316020	1318040	that might happen in front of it.
1318140	1322260	So similarly, you look at coming to spectrum misbehavior
1322260	1324320	on the physical and math layer,
1324320	1327320	the attacker could, as we see
1327320	1328820	in any wireless communication,
1328820	1330600	could just jam the signal with the blast energy
1330600	1333300	of the channel and the receiver cannot hear anything.
1333400	1335280	Then he could also perform a DOS attack.
1335280	1337920	For example, he can send only preambles.
1337920	1340080	He can just say, oh, my message length is this much
1340080	1342100	and does not send the message,
1342100	1345120	which is a truncate after preamble attack
1345120	1346820	that we have heard about recently.
1347220	1351840	And a lot of wireless communication standards
1351840	1354640	actually ask the receiver to wait
1354640	1356960	for a certain period of time after the counter
1357480	1359080	to wait for the message
1359580	1362080	so that they can read the message during that time.
1362080	1363820	So the attacker actually...
1363820	1367380	So the receiver just waits and does not process
1367380	1369280	any other messages coming in.
1369280	1372520	So that can be a DOS attack that the attacker could perform.
1373300	1375860	And then the attacker could change his MAC address
1375860	1380140	so that if you filter MAC, according to,
1380140	1383000	if you recognize an attacker's MAC address,
1383000	1386160	if I get any message with this MAC address,
1386160	1388860	I'm going to filter any messages coming from this guy.
1388860	1392080	He can change that MAC address and still pass your filter.
1392240	1394740	Coming to the application layer,
1394740	1397540	the attacker could just fuzz all the fields,
1397540	1400680	like we do in all...
1405460	1408640	like we do in testing any mechanism.
1408640	1410120	The attacker could just say, oh,
1410120	1412840	I'm sending a speed of minus infinity to infinity
1412840	1416700	and I want to see how does the way,
1416700	1420020	does the receiver really accept those messages?
1420340	1425240	Or what kind of behavior does the vehicle show me
1425240	1427960	if I send such messages?
1427960	1430340	And as Jonathan showed about civil attack,
1430340	1432020	the way we could change MAC addresses,
1432020	1434380	use the same certificate or different certificates
1435180	1437120	and create those vehicles.
1437120	1441800	And then lastly, the attacker could formulate
1441800	1445340	specific messages to fool V2X applications.
1445400	1447820	And we're going to talk about this in detail now
1448640	1451600	with an example of the EBL application
1451600	1453680	in the next couple of slides.
1458790	1464890	So here you can see that there are two cars here,
1464890	1466930	the blue one we consider as the victim vehicle,
1466930	1468010	the benign vehicle,
1468010	1471810	and the dark gray car is the attacker.
1471810	1474670	Now the attacker formulates a normal BSM,
1474670	1476150	which is marked all as green,
1476150	1478270	where all the fields of the BSM are consistent
1478270	1479030	with each other.
1479030	1480110	You have position, you have speed,
1480110	1481790	you have positive acceleration.
1481790	1482890	You don't have any braking,
1482890	1485330	you don't have any EBL flag set.
1485330	1490130	The EBL flag is the flag that has to be set
1490130	1492310	for the EBL application to actually react
1492310	1494950	to a heartbreaking event.
1494950	1497410	So whenever a vehicle, if it is hit
1497410	1499950	and it is heartbreaking, the EBL flag is set
1499950	1503650	and the receiver, whenever it receives the EBL application,
1503650	1506970	sees that flag first and then checks other things.
1507230	1511710	So here, the attacker at first just transfers
1511850	1514550	a normal BSM, our benign vehicle receives that message
1514550	1516350	and says, oh, it's a normal car,
1516350	1518010	goes about on its way.
1518250	1520130	And then now our attacker says,
1520130	1521830	okay, now I'm going to start my attack.
1521830	1526550	And now the attacker puts the EBL flag as one.
1526650	1530710	And you can see that he has not changed all of the fields.
1530730	1532150	So the brake is zero
1532150	1534270	and the acceleration is also positive.
1534270	1536030	This should not really be the case.
1536030	1539390	But if you don't have any misbehavior detection,
1539390	1542570	the benign vehicle, when it receives this message,
1542570	1543990	it says, oh, it's a heartbreaking event,
1543990	1545610	I should brake, it's safety critical to me
1545610	1548470	or I might crash into the vehicle.
1548530	1552470	And our attacker goes about his way ahead.
1553610	1558830	So at this point, our vehicle maybe looks at,
1558830	1563290	maybe he doesn't see any car in the vehicle space
1563290	1564810	after a while.
1564810	1570050	And like, oh, okay, there was no car in the vehicle space,
1570050	1572070	neither physically in front of me.
1572070	1574370	So I should just continue my motion.
1574370	1576670	Maybe my EBL application was good.
1576670	1579270	So this is what is the attack that we consider.
1579270	1582950	And here we assume that the benign vehicle
1582950	1587070	doesn't use his sensors like camera or radar
1587650	1592270	in this example to verify messages.
1593330	1596050	So how would you detect such kind of an attack?
1596050	1598370	So firstly, as it might be apparent
1598370	1603050	that you look at the inconsistency within the BSMPs
1603050	1606590	and you say, oh, okay, so there's an inconsistency,
1606590	1610250	it is possible that this message is wrong.
1610390	1613470	And you can also check the telemetry of the attacker.
1613470	1618170	So if the attacker, after an EBL,
1618170	1622150	you would expect that the vehicle would stop,
1622150	1625130	but if the vehicle continues to change its positions
1625130	1629230	and has a positive speed and the vehicle keeps on moving,
1629230	1632870	meaning it doesn't have any change between the telemetry
1632870	1635370	that was before the attack or after the attack,
1635370	1636530	that is another indication
1636530	1639150	where how you could detect such kind of an attack.
1639750	1643330	Now we talk about fake EBL version two attack,
1643330	1644910	where our attacker has gotten smarter.
1644910	1647730	He's like, okay, you check for both of those things.
1647730	1648750	You check for inconsistency
1648750	1652550	and you check for my telemetry.
1652550	1654350	So I'm going to become smarter.
1654470	1656910	Again, the attacker transmits a normal BSM,
1656910	1659990	goes about his way, the benign vehicle follows it.
1659990	1672890	Now he transmits a fake EBL message,
1672890	1676370	formulated specifically to counter the detection
1676370	1677850	in the first version.
1677870	1681090	You can see that the EBL flag is set as one,
1681090	1682370	the brake is also set as one
1682370	1684290	and the acceleration is also negative.
1684370	1686450	So when our benign vehicle receives this,
1687530	1690190	his detectors don't give him any indication
1690590	1691930	and this vehicle just sees,
1691930	1694290	oh, okay, this is a heartbreaking event.
1694350	1698190	And the attacker also stops in the V2X space.
1698190	1701350	The attacker moves physically, but stops in the V2X space.
1701530	1704170	So our benign vehicle sees, oh, there is a vehicle stopped.
1704170	1706110	So the telemetry has changed as well.
1706110	1707390	So I should brake.
1707650	1710410	The victim vehicle brakes in this case
1710410	1712950	and does not continue motion.
1713690	1716210	So this is an improvement on the attack.
1716210	1718510	Now, how would you detect this kind of an attack?
1721310	1724650	We have looked at all the application layer side of things
1724650	1726170	in the previous checks.
1726170	1728130	Now we look at the physical layer side of things,
1728130	1731450	where we look at the signal strength versus the distance.
1731450	1735870	So as you can see on the graph on the bottom right section,
1735870	1737350	on the X-axis, you have the distance
1737350	1739530	and on the Y-axis, you have the signal strength.
1739950	1742970	And what we have seen is that the signal strength
1742970	1746550	should reduce as the distance increases
1747830	1751550	between any two vehicles in this kind of a graph.
1751990	1754830	But in this case, if the attacker
1754830	1758190	is sending constant positions in front of you,
1758190	1762550	but is actually physically changing his positions,
1762550	1764710	his characteristics would look something
1764710	1767370	like the red line you see.
1767370	1769070	The distance is the same,
1769070	1770530	but the signal strength keeps reducing.
1770530	1774450	So this is how you could actually find out genuine vehicles
1774450	1778470	versus an attack vehicle in such cases.
1779150	1782490	Now our attacker thinks, okay, now you remember me
1782490	1785730	and I'm going to try to circumvent this.
1785730	1787890	So we have a version three attack
1787890	1791630	that the attacker could perform as well.
1793190	1797330	So here the attacker again, transmits a normal DSM.
1797630	1799170	And now he again, you know,
1799170	1801150	formulates a fake email message
1801150	1802370	with all the fields consistent
1803070	1808030	and transmit that message over our way to receive it.
1808030	1810730	The attacker stops in vehicle space,
1810730	1812650	transmits constant positions after the attack,
1812650	1814810	but continues physically, right?
1814810	1817910	So our victim vehicle again stops.
1817910	1819890	It's just like the version two attack.
1819890	1821790	But now what the attacker does
1821790	1826550	is that the attacker goes into a silent period.
1826550	1829770	So the attacker would go into a silent period here
1829770	1835190	where it would stop transmitting any DSMs.
1835190	1840130	So to conserve the storage space in the benign vehicle,
1840130	1842710	the benign vehicle would check its database,
1842710	1844890	like, oh, I have, how far,
1844890	1848370	have I received any BSM recently from this vehicle,
1848370	1850130	from this attack, from this attacker?
1850130	1852250	And you would say, no, it has been a long time
1852250	1853490	since I have not received it.
1853490	1854330	Let's say five seconds.
1854330	1857570	Five seconds is also a long time in a real-time system.
1857890	1860930	And we assume that the benign vehicle
1860930	1862710	just deletes all the information
1862710	1866070	just to conserve its storage space.
1866350	1870830	And now he doesn't see any vehicle anyways in front of it.
1870830	1874150	So it starts continuing its motion in the V2X space.
1874150	1875250	It doesn't see any vehicle,
1875250	1876790	so it starts continuing its motion
1876790	1878370	in the physical space as well.
1878370	1880210	Now the attacker, he says,
1880210	1882450	okay, now you have forgotten about me.
1882450	1885010	He waits for this vehicle ahead,
1885010	1886410	like it slows down or something,
1886410	1888050	and performs the same attack.
1888250	1889250	Now, since our benign vehicle
1889250	1891370	doesn't have any history on this attacker,
1891370	1894770	since he deleted this earlier,
1894770	1897950	it would fall for the same attack again.
1897950	1904630	That is what we think an improved attacker would do.
1904770	1905690	And how would you detect?
1905690	1906590	You would, of course, again,
1906590	1907830	look at the physical properties
1909330	1911250	of this kind of an attack,
1911250	1913770	and possibly remember these kinds of vehicles
1913770	1915690	who kind of were not,
1915690	1917310	that you were not sure about,
1917310	1919370	that, okay, maybe this vehicle was malicious.
1919370	1922550	So you try to remember more,
1923110	1925090	remember such kind of vehicles for a longer time
1925090	1926990	to detect, to have history on them.
1926990	1929970	So that if you have a random jump like this
1930570	1933790	in the V2X space, that this gray vehicle here,
1933790	1935390	the vehicle in the V2X space,
1935390	1937650	jumped from back to here,
1937650	1939890	you can say that this is a random jump,
1939890	1941810	and this is possibly a mistake.
1943690	1948450	Yes, so this is how we have formulated
1949350	1950470	a cat and mouse game,
1950470	1952270	where you come up with an attacker,
1952270	1955450	like a red team, blue team kind of thing,
1955450	1959770	where the attacker becomes smarter,
1959770	1961810	we make our detector smarter,
1961810	1964410	and we expand our detectors
1964410	1968690	from the application layer to the physical layer,
1968690	1971490	and map layer, and we expand the portfolio
1971490	1972990	of all the detectors.
1973370	1978110	And now we have a demo for this,
1978110	1979950	that we would like to present there,
1979950	1982650	where we try to simulate these attacks.
1982650	1984050	And I would like to hand over
1984410	1987850	the screen to my colleague, Song.
1988570	1989590	Thank you, Rashid.
1994810	1996570	Yeah, hello everyone.
1996570	1997890	In the following demo,
1997890	2000610	I will present the three attacking scenario
2000610	2002630	as presented by Rashid,
2002630	2006090	in order to show the progression of our attacks.
2006090	2010370	So first, let's take a look at our demo setup.
2010370	2014690	And this is a demo setup that we show in CES 2020.
2014690	2019550	As you can see, there are two Roadrunner boards,
2019550	2023410	and one HMI device, and one demo control panel.
2023850	2029110	And a Roadrunner is a Qualcomm CV2x development platform,
2029110	2032710	and that is equipped with Qualcomm CV2x chipset.
2032710	2037090	And it is used as an onboard unit in this demo.
2037390	2039970	Here you can see we have two Roadrunners,
2039970	2044970	one of which is the genuine host vehicle,
2044970	2048630	while the other one is the remote attacker vehicle.
2049270	2054830	Since the Roadrunner can play the pre-recorded BSM files,
2054830	2058350	so even though they are placed stationary,
2058350	2060930	they can still transmit BSMs to each other,
2060930	2063810	as if they are traveling on a real road.
2063810	2069170	On the other hand, the HMI display is an Android application
2069170	2070890	that will visualize the interaction
2070890	2072510	between the two vehicles.
2072510	2074170	And the control panel is used to control
2074170	2075890	and configure our demo.
2081430	2085730	So here is the control panel of our demo.
2085730	2087550	And on top of the panel,
2087550	2091010	you can see the option of our attack scenarios
2091790	2094790	from fake EVL version one to version three.
2094790	2097350	Actually, we have many more attack scenarios,
2097350	2099110	but here we only show those three.
2100050	2102590	And below the attack options
2102590	2107470	is our misbehavior protection system status display,
2107470	2109950	which will show the detection results
2109950	2112990	of our misbehavior protection system.
2113530	2118130	So now, let's start version one
2118130	2123310	of the fake EVL explained by Rashid.
2124370	2127350	In version one, the attacker generates a fake EVL warning,
2127350	2129630	but keeps moving both physically
2130410	2133970	as well as in the V2X space,
2133970	2137170	as shown in this HMI display.
2138050	2141510	So in this HMI display, as you can see,
2141510	2146470	the green bubble here is the host vehicle,
2146470	2149270	while the blue bubble is the remote vehicle.
2149270	2152310	From the perspective of the host vehicle,
2152310	2155070	based on the BSM it received.
2155070	2159310	And the overlay here on the right of the display
2159310	2161090	is not a vehicle.
2161090	2164010	Actually, it's a dashboard for the host vehicle,
2164010	2166390	which will indicate the safety warnings
2166910	2169570	generated by the safety applications.
2170090	2172890	Let's resume the demo.
2172990	2174590	So as you can see,
2174590	2177050	from the perspective of the host vehicle,
2177050	2179510	both are moving normally
2180050	2185550	until the host vehicle received a fake EVL warning.
2185610	2189390	And this is because, just as Rashid explained,
2189390	2194030	because of the inconsistency between the position field
2194030	2197910	and the EVL flag in the BSMs.
2197910	2201090	So you can see the blue bubble is still moving,
2201090	2203530	but it transmits a fake EVL warning.
2204250	2206910	However, our misbehavior protection system
2206910	2209930	can easily detect this inconsistency
2209930	2212390	by applying the possibility check
2212390	2214010	and the consistency check.
2214370	2218110	So this is a very easy attacking scenario.
2218110	2220390	Of course, a smart attacker
2220390	2223610	will come up with smarter attacks.
2224530	2227970	Now let's look at the second one,
2227970	2232350	the version two of our fake EVL attack.
2232350	2234750	So in version two, explained by Rashid,
2234750	2237570	the attacker will generate a fake EVL warning,
2238290	2243790	but all the fields in the BSM are consistent,
2243790	2249010	meaning that the attacker will move physically,
2249010	2252690	but it will stop in the V2X space.
2255150	2256830	Now let's switch into the...
2257350	2262950	So as you can see, in this version,
2262950	2266590	the blue bubble is moving normally in the beginning,
2266590	2269550	but then it will stop in the V2X.
2270270	2271610	As you can see here,
2271610	2276150	the blue bubble indeed stopped in the V2X space.
2276190	2278810	So the host vehicle, we believe,
2278810	2281710	is a normal vehicle in the application layer.
2281790	2286150	However, if we're applying our physical layer detector,
2286150	2287790	such as the signal strength,
2287790	2290070	we can detect such misbehavior.
2290930	2294550	So our host vehicle can ignore this fake EVL warning
2294550	2296510	and continue the motion.
2297130	2299570	You can see here, our host vehicle is still moving,
2299570	2301550	even though it detects this,
2301550	2304350	because it detects this misbehavior.
2306350	2310970	The attacker can keep finding ways to upgrade his attack,
2310970	2312550	explained by Rashid.
2312550	2314110	And so in version three,
2314110	2317470	and the attacker, the host vehicle,
2317470	2320470	the attacker will enter a silent period
2320950	2324670	after performing the first fake EVL attack.
2324890	2328750	And then he will disappear from the V2X space,
2328750	2331890	hoping that the host vehicle will forget about him
2332290	2334230	and then he will show up again.
2334350	2336650	Now let's take a look at this scenario.
2336650	2341150	So in the beginning, the blue bubble behaves normally.
2342010	2344650	Then he will perform the fake EVL version two.
2344650	2347230	As you can see, in the V2X space,
2347230	2349390	but then it disappeared,
2350090	2353090	hoping the host vehicle will forget about him.
2353090	2355650	Now, after the silent period,
2355650	2358990	it shows up again and then perform the attack again.
2359910	2362810	So again, this attack can also be detected
2363270	2365210	using the physical layer detectors
2366010	2367870	just introduced by Rashid.
2372990	2373890	Okay.
2374390	2377050	So as the demo shows that a smart attacker
2377050	2381870	can always find ways to create smarter attacks
2382370	2385610	as our detection algorithm evolves.
2385610	2389330	For example, we showed that using the physical layer,
2389330	2393210	we can detect the fake EVL attack version two
2393210	2394630	and version three.
2394630	2398230	However, a smart attacker may circumvent our detector
2399270	2401590	by, for example, matching the signal strengths
2402330	2404730	with valid distribution.
2404730	2407190	Valid signal strength distribution
2407430	2410130	by adjusting the transmission power.
2410270	2412090	And other cases,
2412090	2414350	attacker can use different MAC address
2414350	2416950	and pseudonym certificates to perform a stable attack
2416950	2419570	as introduced previously
2419810	2422970	to fool the majority based detector.
2422970	2424850	And actually there are many more ways
2424850	2427870	that attacker can progress
2427870	2431050	to perform more advanced attacks.
2431050	2435470	However, by improving our detection system,
2435470	2438250	we are able to squeeze the attacker to the corner
2438250	2442730	and raise the bar and the cost of the successful attack.
2442730	2444150	And on the other hand,
2444150	2446470	the progression of the attack can push for a stronger
2446470	2449590	and more robust detection system.
2450390	2451730	Thank you.
2459800	2461020	Thank you, Rashid.
2461020	2465680	So we are coming to the conclusion of this talk.
2465680	2468720	So what we showed you today is
2470360	2474000	why, what is misbehavior, first of all, in V2X
2474000	2476360	and give you many examples.
2476540	2480040	And then we even went through this misbehavior life cycle,
2480040	2481780	detection, local reaction, reporting,
2481780	2483540	investigation, global reaction.
2483820	2487500	And then we demonstrated the progression of an attack.
2487500	2490220	What does the attacker do to be smarter and smarter?
2490220	2492840	What would you test when you want to attack the system?
2493300	2494920	So, and we'll give you a demo of this
2494920	2496880	working on real onboard unit.
2497140	2501000	So as a conclusion, really we understand why
2501000	2503460	misbehavior protection is super important
2503460	2506080	for more secure V2X deployment.
2506080	2507060	You need to have it,
2507060	2509360	otherwise authentication isn't sufficient.
2509360	2510440	You will see this big data.
2510440	2512980	You need to be able to analyze it and detect it.
2512980	2515500	But what's good is that misbehavior detection,
2515500	2517140	reporting, investigation, reaction
2517140	2519100	are all being standardized right now.
2519100	2522700	So we hope that then really we're going to raise that bar
2522700	2524640	on making it harder for an attacker
2524640	2526660	and all have at least minimum performance
2526660	2528140	in terms of detection.
2528280	2530080	And also what is really positive
2530080	2532780	is that misbehavior protection solutions exist
2532780	2535740	and have been deployed in, for example,
2535740	2537740	one in the connected vehicle part of deployment.
2537860	2539900	So this is positive, you know,
2539900	2543140	it's there, we are ahead of the curve, basically.
2543380	2546420	But as we've seen, the attacker is always smarter
2546940	2549820	and will try to counter what you do.
2549820	2551500	So we still have a lot of open challenges
2551500	2554940	and I really just like to give you three examples here.
2554960	2557020	The first one is,
2557020	2560480	if you are using a machine learning based detector,
2560480	2563360	therefore an attacker will use a visual example,
2563440	2566800	a visual machine learning to fool your detection algorithm.
2566800	2569680	So this is a really active field right now
2569680	2571740	to look at visual machine learning.
2571860	2573180	And so therefore, if you're based on that,
2573180	2574500	you need to look at it.
2575760	2578780	This is still a highly sophisticated level of attack,
2578780	2580280	but it is a matter of time
2580280	2582420	before it's making it easier to be there.
2582460	2584640	The second part is that we've shown today
2584640	2587660	only the detection, the attacks on the first step.
2587660	2590100	So you need to investigate the attack on the reporting,
2590100	2592160	investigation and a global reaction.
2592200	2594240	What could you do on those different stages?
2594840	2597340	And finally, don't forget that V2X
2597860	2600300	will be part of an automated vehicle
2600300	2603040	and therefore will be fused with other sensors.
2603040	2605600	So you need to analyze the effect of V2X attack
2606220	2608340	on the sensor fusion to understand
2608780	2610760	how much inconsistency and insensitivity
2610760	2613060	can you create just from the V2X standpoint.
2613520	2615680	With that, this is the end of our presentation
2616340	2618140	and we'll be happy to take questions.
2618140	2619020	Thank you.
