Программные патчи для автомобилей станут обязательными и регулярными

looagum7jpx_dwk_rgyusor1olu.jpeg
Автомобиль Tesla Model 3 взломали с мультикоптера (для зрелищности), источник

Автомобили Tesla по умолчанию подключаются к любой точке WiFi с идентификатором SSID Tesla Service. Это очень удобно для взлома. Пароль указан в файле .ssq, который поставляется с автомобилем, или его можно найти в интернете (см. скриншот под катом).

Таким образом, можно подключить автомобиль к своему фейковому хотспоту. Потом использовать уязвимости в программном обеспечении — и получить контроль над некоторыми функциями. По сути, всё довольно просто: такие трюки показывают на каждой хакерской конференции.

Проблема в том, что критические уязвимости есть не только в теслах, а практически во всех современных автомобилях. Просто Tesla предлагает большие призы за информацию о багах, поэтому эта информация публикуется в СМИ. Остальные автомобили взламывают молча.


7zs3xspot_ecmansqupy7mkituw.png
Профиль в твиттере с паролем для вайфая Tesla Service

Последнюю хакерскую конференцию PWN2OWN 2020 отменили, поэтому авторы только сейчас опубликовали свой доклад по взлому Tesla. Они написали эксплоит Comsecuris, использующий две уязвимости в демоне ConnMan. Это стандартный менеджер подключений Linux. В частности, используется переполнение буфера в DNS-форвардере и утечка информации стека (stack infoleak) в компоненте DHCP.

В автомобиле Tesla 3 установлена последняя версия ConnMan 1.37, без уязвимости CVE-2017–12865, которую нашли в версии 1.34. Поэтому пришлось искать новые баги. Здесь повезло: возможность переполнения буфера обнаружилась в функции uncompress().

1 static char *uncompress(int16_t field_count, char *start, char *end,
2 			char *ptr, char *uncompressed, int uncomp_len,
3 			char **uncompressed_ptr)
4 {
5 	char *uptr = *uncompressed_ptr; /* position in result buffer */
6
7 	debug("count %d ptr %p end %p uptr %p", field_count, ptr, end, uptr);
8
9 	while (field_count-- > 0 && ptr < end) {
10 		int dlen; /* data field length */
11 		 int ulen; /* uncompress length */
12 		 int pos; /* position in compressed string */
13 		 char name[NS_MAXLABEL]; /* tmp label */
14 		 uint16_t dns_type, dns_class;
15 		 int comp_pos;
16
17 		 if (!convert_label(start, end, ptr, name, NS_MAXLABEL,
18 		 &pos, &comp_pos))
19 		 goto out;
20
21 		/*
22 		 * Copy the uncompressed resource record, type, class and \0 to
23 		 * tmp buffer.
24 		 */
25
26 		 ulen = strlen(name);
27 		 strncpy(uptr, name, uncomp_len - (uptr - uncompressed));
28
29 		 debug("pos %d ulen %d left %d name %s", pos, ulen,
30 		 (int)(uncomp_len - (uptr - uncompressed)), uptr);
31
32 		 uptr += ulen;
33 		 *uptr++ = '\0';
34
35 		 ptr += pos;
36
37 		/*
38 		 * We copy also the fixed portion of the result (type, class,
39 		 * ttl, address length and the address)
40 		 */
41 		 memcpy(uptr, ptr, NS_RRFIXEDSZ);
42
43 		 dns_type = uptr[0] << 8 | uptr[1];
44 		 dns_class = uptr[2] << 8 | uptr[3];
45
46 		 if (dns_class != ns_c_in)
47 		 goto out;
48
49 		 ptr += NS_RRFIXEDSZ;
50 		 uptr += NS_RRFIXEDSZ;

В строках 27 и 41 функция memcpy копирует в буфер uptr содержимое памяти фиксированным размером 10 байт (NS_RRFIXEDSZ), не проверяя соответствие размера выходного буфера количеству копируемых байт.

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

В нашем случае достаточно отключить файрвол — и отправить на компьютер нужные команды. Конечно, управление автомобилем через мультимедийную систему не получишь, но можно отпереть двери, изменить режим ускорения, рулевого управления и другие функции, доступные с панели компьютерного управления под Linux (раньше там стояла Ubuntu).


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

Компания Upstream Security ежегодно публикует отчёт об автомобильных уязвимостях. Последний отчёт 2021 Global Automotive Cybersecurity Report содержит информацию о более 200 инцидентах безопасности с 2010 по 2020 годы.

Вот статистика по векторам атак за эти годы:

f1f3wkmf76_xkacom-gplk08mrc.jpeg

Дистанционные взломы сегодня составляют 80% атак, физическое проникновение — 20%. Облачные сервисы — главный вектор.

В июне 2020 года ООН приняла общий регламент безопасности для транспорта: UNECE WP.29 Cybersecurity. В 2021–2022 годы эти регуляции будут рассмотрены в нескольких странах, а в 2023–2024 годах ожидается более широкое принятие по всему миру. Первый регламент называется Cybersecurity and Cybersecurity Management Systems (CSMS). Последнюю версию см. здесь.

Документ CSMS содержит информацию об угрозах кибербезопасности и перечисляет большое количество уязвимостей и методов атаки. В приложении 5 — десять страниц с описанием уязвимостей в нескольких категориях. В первой таблице кратко перечислены шесть типов угроз с различными типами уязвимостей (перечислено 29 штук) и примерами (67 штук).

vx3iqjws4jay4zrl0lbj9azys-u.jpeg

В следующей таблице обобщены меры по смягчению угроз кибербезопасности внутри и за пределами автомобиля.

yzu42peiwtjaxn0jm2tfqwwfzti.jpeg

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

Облачные сервисы, бесконтактные ключи по радиопротоколу, порт OBDII, мобильные приложения для управления автомобилем, порты USB и SD, Bluetooth, Wi-Fi, встроенный модем, сенсоры, многочисленные соединения через телематические системы и облачные сервисы, которые работают в автомобиле, встроенная мультимедийная система с компьютером в салоне. Это слишком большая поверхность атаки…

Вероятно, в будущем такие «удобства» войдут в стандартное оснащение всех автомобилей.


P.S. Компания GlobalSign уже 25 лет выдаёт сертификаты безопасности для различных отраслей. Посмотрите нашу интерактивную страничку, посвященную 25-летнему юбилею.

© Habrahabr.ru