Автомобильные хаки – это далеко не новое веяние среди ИБ-экспертов. К примеру, в сентябре 2016 года исследователи компании Tencent Keen Security Lab продемонстрировали удаленный взлом Tesla Model S P85 и Model 75D. Но обычно для реализации подобных атак исследователи компрометируют бортовое ПО самого автомобиля, а специалисты норвежской компании Promon решили подойти к вопросу с другой стороны и атаковать Android-приложение.
По умолчанию, во время установки официального приложения Tesla, владелец авто должен ввести юзернейм и пароль, для которых приложение сгенерирует токен OAuth. Впоследствии, когда пользователь вновь обращается к приложению, оно использует данный токен, так что повторный ввод учетных данных не требуется. OAuth токен не хранится вечно, приложение удаляет его после 90 дней и повторно запрашивает юзернейм и пароль.
Исследователи Promon обнаружили, что приложение Tesla хранит токен OAuth в формате обычного текста, в директории sandbox. И атакующий способен прочитать токен, если только ему удастся получить доступ к смартфону жертвы.
Специалисты пишут, что в наши дни совсем несложно создать вредоносное приложение для Android, которое содержало бы root-эксплоиты, например, Towelroot или Kingroot. Эксплоиты помогут повысить привилегии приложения в системе, а затем прочесть или подменить данные других приложений.
Однако просто узнать токен недостаточно. Заполучив токен, злоумышленник сможет проделать с машиной ряд действий, но не сумеет ее завести, — для этого ему нужен пароль владельца. Исследователи придумали, как справиться и с этим. Если вредоносное приложение удалит токен OAuth с устройства жертвы, ей придется вновь ввести юзернейм и пароль, то есть у атакующего будет прекрасная возможность перехватить учетные данные. Исследователи пришли к выводу, что атакующий может без особого труда внести изменения в код приложения Tesla. Если благодаря малвари у злоумышленника уже есть root-доступ к устройству, ему будет совсем нетрудно настроить пересылку копии учетных данных владельца авто на свой сервер.
Имея на руках токен, а также учетные данные от официального приложения Tesla, злоумышленник может направить серверам Tesla правильно составленные HTTP-запросы, используя токен и, если понадобится, юзернейм и пароль жертвы. В итоге у атакующего появится возможность завести двигатель без ключа, открыть двери, отследить машину и так далее. В теории, возможностей куда больше, но весь их спектр на практике исследователи не проверяли.
Видеоролик ниже демонстрирует идею исследователей в действии, а также предлагает один из возможных сценариев атаки: чтобы убедить жертву установить на смартфон вредоносное приложение, можно пообещать ей бесплатный ужин в местном ресторане. Банальнейшая социальная инженерия по-прежнему отлично работает.
Специалисты Promon рекомендуют инженерам Tesla использовать в своих приложениях двухфакторную аутентификацию, а также не хранить OAuth токены в виде простого текста. Кроме того, для защиты от перехвата паролей, исследователи рекомендуют использовать кастомную раскладку клавиатуры.