Self-driving cars turn out to be misleading with fake signals
It is possible with a simple setup to deceive the distance measurement system that many autonomous vehicles use. The lidar system appears to be fooling with laser pulses that emit ‘echoes’ from, for example, other cars.
That’s what security expert Jonathan Petit tells ieee.org. Petit, as a research fellow at the Irish University of Cork, wrote a paper on the setup to be presented at the Black Hat Europe conference in November. To trick the lidar system used by many autonomous cars, all it takes is a low-power laser, a Raspberry Pi or similar single-board computer and good timing. With the system it is possible to spoof an object. The researcher succeeded in making objects appear virtually at a distance of 100 meters. Also, it is very easy to copy the echo profile of real objects and turn them into multiple apparent objects.
Lidar systems work by creating a 3D image of the car’s environment using pulses of laser light. Using another laser, it’s easy to confuse that system. Petit recorded the pulses that a lidar device emits. He was able to replay these pulses later. The only tricky part was timing the signal to be sent back to the lidar system in the car. If that worked, the lidar system thought there was an object.
The cure is to encrypt the laser pulses from the lidar system in cars. Then spoofing objects is suddenly a lot more difficult and virtually impossible in practice. In addition, Petit states that a system in a car should not stand alone; the system must be able to understand whether something is possible or not via other data. For example, it is difficult to spoof an image for two lidar systems if the timing is different. Petit decides it’s never “too early to start thinking about security vulnerabilities and how to fix them.” The current generation of autonomous cars, for example, does not yet use encrypted lidar systems or double checks.
Update: Earlier it was stated that an Arduino would also be sufficient to perform this, a post from BasilFX shows that this is not possible because an Arduino is too slow with a 16MHz processor. This is stated in the source article. Unfortunately, the paper is not yet publicly available.