Введение
В начале этого года сенсацией стала история 19-летнего исследователя безопасности, сумевшего перехватить управление более чем 25 автомобилями Tesla. Он получил доступ к данным машин через стороннее приложение и смог управлять дверными замками, освещением и даже активировать бесключевой запуск. Фактически ему стали доступны все функции оригинального приложения Tesla из-за уязвимости в стороннем ПО, получавшем данные авто. Давайте подробнее рассмотрим такие сторонние программы, причины их популярности и связанные с ними риски.
Первая публикация об инциденте с автомобилями Tesla
Большинство современных автомобилей оборудовано телематическим модулем. Электронный блок управления со встроенной SIM-картой отправляет производителю информацию о местонахождении автомобиля, напоминает владельцу о предстоящем техническом обслуживании и даже может связаться с аварийно-спасательными службами. Владелец же получает дополнительные удобства: например, возможность посмотреть, где находится его машина, дистанционно проветрить или нагреть салон и даже автоматически припарковать авто. Для этого необходимо только мобильное приложение.
Интерфейс стандартного автомобильного приложения
Если все это можно делать через оригинальное ПО производителя, то зачем устанавливать стороннее? Дело в том, что стандартные приложения зачастую просто не могут удовлетворить все запросы автовладельцев. Например, некоторые хотят знать, как расход топлива или электроэнергии меняется в зависимости от маршрута. Кто-то хочет, чтобы салон стоящей на улице машины начинал прогреваться в тот момент, когда умная кофеварка начинает делать утренний кофе. А кому-то не нравится использовать разные приложения для машин разных марок, и они ищут одну универсальную программу.
Что может пойти не так? Владельцы умных машин подвержены тем же угрозам, что и пользователи других устройств. Для доступа к автомобилю нужен ключ, только при управлении через приложение роль ключа выполняют имя пользователя или адрес электронной почты и пароль. Чтобы серверы производителя отправили команду автомобилю, им нужны учетные данные владельца. Предполагается, что эту информацию будет предоставлять оригинальное приложение, однако сторонние продукты также могут запрашивать ее и отправлять на API производителя от имени пользователя.
Обмен данными между приложениями и автомобилем
Риск очевиден: третьи лица получают возможность, например, открыть автомобиль или отслеживать все его передвижения под видом владельца.
Объем выборки
Аналитики «Лаборатории Касперского» проверили мобильные приложения, ПО с открытым исходным кодом и веб-сервисы. Исследование охватило 155 наиболее популярных решений, которым для взаимодействия с автомобилем требуются учетные данные его владельца (имя пользователя и пароль или API-ключ). Всего было найдено 69 мобильных приложений и 81 решение с открытым исходным кодом, например, API-клиенты на разных языках программирования. Аналитики также рассмотрели веб-сервисы, в том числе B2B-решения, которые представляют отдельный интерес.
Типы решений (скачать)
Приложения каждого типа описаны далее.
Мобильные приложения
Начнем с мобильных приложений: они наиболее доступны и понятны для обычных пользователей. Если взглянуть на описание подобных приложений, то в них, как правило, будут присутствовать рассказы о функциональности, удобстве, а иногда даже встречается противопоставление «медленному приложению автопроизводителя».
Описание случайного приложения
Чего не имеет больше половины проанализированных мобильных приложений, так это предупреждения о том, что они используют вашу учетную запись от оригинального сервиса автопроизводителя.
Доля приложений, в описании которых нет уведомления об использовании учетных данных (скачать)
Да, картина именно такая. Здесь важно отметить, что во второй, меньшей половине, встречаются разработчики, которые, предупреждая об использовании учетных данных, утверждают, что не хранят их, шифруют, или используют только для получения авторизационного токена. В этот момент автовладелец должен понимать, что он фактически отдает ключи от своего автомобиля незнакомому человеку под честное слово, ведь большинство подобных заверений не получится проверить.
Кстати, об авторизационном токене. Авторы некоторых приложений, чтобы исключить момент недоверия, предлагают вместо логина и пароля указать этот самый токен. Проблема лишь в том, что токен точно так же позволит получить доступ к автомобилю. Безусловно, пользователь должен понимать, что все это он делает на свой страх и риск. И всего лишь 19% разработчиков считают нужным упомянуть это, не прячась за расплывчатыми формулировками на нескольких экранах мелкого текста.
Доля приложений, пользователей которых предупреждают об их ответственности за риски (скачать)
Как правило, пользователи связываются с разработчиками через раздел отзывов в магазине приложений. Но что если вопрос более серьезный и требует немедленного ответа? Благодаря правилам размещения приложений в магазинах, контактные данные 86% разработчиков можно найти без особых усилий. При этом часто указан только адрес электронной почты без какой-либо дополнительной информации. Кроме того, в ряде случаев поиск приводил к удаленной странице в соцсети или сайту-заглушке без контактных данных.
Доля приложений с доступными контактами разработчиков (скачать)
Из всего упомянутого выше можно сделать вывод, что большинство приложений созданы любителями. И это не всегда плохо. Однако закон не обязывает разработчика-энтузиаста заботиться о безопасности автомобиля и защите данных пользователя в той же степени, как того требуют от автопроизводителя государственные регуляторы.
Водители каких марок чаще всего используют сторонние приложения? Мы насчитали 31 бренд. Пять лидеров перечислены на диаграмме ниже. Заметим, что некоторые приложения совместимы с разными марками, поэтому количество упоминаний марок не равно общему количеству приложений.
Пять марок автомобилей, владельцы которых чаще всего используют сторонние приложения (скачать)
На первом месте с большим отрывом находится Tesla, на втором — Nissan. Похоже, что владельцам электромобилей, как энтузиастам, очень интересны подобные решения.
Что касается стоимости, то 46 из 69 приложений бесплатны или хотя бы имеют бесплатный тестовый режим. Если не хочется платить за программу с нужными функциями, можно просто поискать бесплатный аналог.
Соотношение платных и бесплатных приложений (скачать)
Это, а также тот факт, что только в Google Play подобные приложения скачали более 239 000 раз, заставляет задуматься: сколько человек предоставили незнакомцам свободный доступ к своим автомобилям?
API-клиенты с открытым исходным кодом и веб-сервисы
Продвинутые пользователи нередко выбирают ПО на GitHub. В коде большинства простых API-клиентов довольно легко увидеть, что конфиденциальные данные не передаются третьим лицам. Но что если исходный код более сложный? Все ли пользователи будут его проверять? Если да, то насколько тщательно? И конечно, нет никакой гарантии, что в самом приложении или его компонентах отсутствуют уязвимости. Это подтверждает пример по первой ссылке в этой статье.
Третий тип решений в нашей подборке — веб-сервисы. Они предоставляются пользователям за деньги. И хотя их могут создавать опытные разработчики из крупных компаний с четкими процессами управления, схема получения доступа не слишком отличается. Пользователь все также предоставляет свои учетные данные, но через веб-форму, а не в приложении или конечной точке API.
Особый тип решений
Особняком стоит еще один тип решений. В отличие от обычных надстроек и приложений, работающих по схеме «введите имя пользователя и пароль — получите токен», это полноценные B2B-решения. Представим компанию, которая хочет продать пользователю приложение или сервис, не углубляясь в особенности автомобилей разных марок. B2B-поставщик предлагает такой компании универсальное решение, которое поддерживает системы разных автопроизводителей. Он становится промежуточным звеном, облегчая работу разработчика конечного приложения или сервиса.
Выглядит это примерно так.
- Пользователь регистрируется в стороннем онлайн-сервисе (вроде описанных в предыдущем разделе). Допустим, сервис помогает выбрать оптимальное время и место для зарядки электромобиля.
- Сервис не имеет прямого доступа к API автопроизводителя, поэтому передает учетные данные пользователя упомянутому B2B-поставщику.
- В свою очередь этот поставщик отправляет учетные данные в API производителя и получает взамен токен авторизации, который дает прямой доступ к автомобилю и данным пользователя.
Таким образом, имя пользователя и пароль отправляются и в сторонний сервис, и поставщику B2B-решения. Рискует как владелец автомобиля, так и разработчик сервиса, поскольку безопасность пользовательских данных теперь зависит еще от одной компании.
Здесь существует также риск для автопроизводителя, ведь подобные сервисы обрабатывают данные большого числа пользователей. Конечно, приложения получают доступ к данным только с согласия конечных пользователей. Но, как показывают недавние события, в новостные заголовки, скорее всего, попадет марка автомобиля, а не название стороннего решения.
Заключение
Если после прочтения этой статьи вы решили больше не пользоваться сторонними приложениями, стоить учесть несколько рекомендаций:
- Недостаточно просто удалить приложение — некоторые сервисы требуют отменить подписку или удалить учетную запись на сайте.
- Обязательно смените пароль от сервиса автопроизводителя.
- Даже после сброса пароля попробуйте отозвать доступ через сайт производителя (если такая возможность есть) или через службу поддержки клиентов.
Конечно, не все автомобильные приложения небезопасны и ненадежны. В некоторых используются функции, специально разработанные автопроизводителями — например, не позволяющие удаленно открывать двери по соображениям безопасности. При этом доступ к данным автомобиля предоставляется через личный кабинет на сайте производителя (то есть не нужно отправлять учетные данные в отдельное приложение) и пользователи могут в любое время этот доступ отозвать. Правда, к сожалению, пока таких решений немного.
Поэтому мы призываем разработчиков уделять особое внимание защите данных пользователей и принимать все меры, чтобы не скомпрометировать себя и своих клиентов. Не стоит думать, что клиенты готовы к потенциальным угрозам. Следует заранее оснащать приложения дополнительными средствами безопасности.
«Лаборатория Касперского» рекомендует разработчикам следующие меры.
- Так как в последнее время участились атаки на цепочки поставок ПО через открытые репозитории, процессы разработки нуждаются в усиленной защите от вмешательства извне. Используйте решения, способные обезопасить процессы разработки с помощью контроля приложений во время выполнения, проверки на уязвимости перед развертыванием, регулярной проверки контейнеров и тестирования артефактов разработки на предмет вредоносного ПО. Решение Kaspersky Security для виртуальных и облачных сред призвано помочь разработчикам. Оно защищает контейнеры Docker и Windows и помогает внедрить подход «безопасность как код» благодаря развертыванию контейнеров для защиты памяти хоста, задачам контейнеров, проверке образов, реализации интерфейсов через сценарии и интеграции задач безопасности в цепочки CI/CD без влияния на процесс разработки.
- Реализуйте механизмы защиты в самом приложении. Kaspersky Mobile SDK обеспечивает защиту данных, обнаружение вредоносного ПО, безопасное подключение и другие возможности.
Сторонние приложения для авто: что может пойти не так?