Эксперты Check Point описали новый вектор атак на Android-устройства — Man-in-the-Disk (MitD). Данной проблеме могут быть подвержены самые разные приложения, включая, например, продукты Google и Яндекс или браузер Xiaomi. Корень обнаруженной проблемы кроется в том, что приложения могут использовать внешнее хранилище (External Storage).
Чтобы разобраться в принципе работы MitD, необходимо понимать, что помимо общего для приложений внешнего хранилища, которое обычно формируется из SD-карты или USB-накопителя и оставшегося на самом устройстве места, также существует и внутреннее хранилище (Internal Storage, оно же System Memory). Внутреннее хранилище формируется на встроенном в устройство железе, и именно в нем располагаются ОС, системные приложения, драйверы и некоторые данные приложений, установленных пользователем.
Каждое установленное приложение может выделить под свои нужды пространство во внутреннем хранилище, которое будет изолировано, и другие приложение не смогут иметь к нему доступа. В силу того, что место на любом устройстве ограничено, многие разработчики стараются не злоупотреблять использованием Internal Storage и позволяют пользователям устанавливать свои продукты во внешнее хранилище. Однако с защитой дела там обстоят куда хуже.
Атака Man-in-the-Disk возможна по двум причинам. Во-первых, любое приложение во внешнем хранилище имеет доступ к данным других приложений. Во-вторых, установку во внешнее хранилище сейчас предлагает едва ли не большинство приложений, а пользователи даже не подозревают, с какими рисками это сопряжено.
Исследователи Check Point рассказывают, что им удалось создать вредоносное приложение, выдававшее себя за обычный фонарик и запрашивавшее разрешение на установку во внешнее хранилище (на карту памяти). На самом деле после установки это приложение атаковало своих «соседей» двумя способами: либо могло провоцировать отказ в обслуживании, не давая другим приложениям нормально работать, либо могло вообще подменять их вредоносными версиями.
В первом случае файлы целевого приложения, размещенные во внешнем хранилище, подвергались умышленной порче со стороны «фонарика», из-за чего оно более не могло функционировать должным образом. Такая атака может использоваться как саботаж, направленный против конкурентов, или же «падение» целевого приложения может использоваться для дальнейшего развития атаки и, к примеру, внедрения вредоносного кода или повышения привилегий.
Во втором случае вредоносный «фонарик» может дождаться момента, когда целевое приложение будет получать обновления. Многие приложения сохраняют свои обновления в виде временных файлов во всё том же внешнем хранилище, а значит, злоумышленники имеют возможность подменить их, добавив приложению произвольную вредоносную функциональность, или вообще установить на устройство дополнительную стороннюю малварь.
Перед проблемой MitD уязвимо множество популярных продуктов (если не большая часть приложений вообще). Так, согласно проведенным тестам, атака на отказ в обслуживании опасна для Google Translate, Google Voice Typing, Yandex Translate, Yandex Search, а браузер Xiaomi и вовсе уязвим перед атаками на обновления. Видеоролики ниже демонстрируют MitD-атаки на перечисленные решения.
В заключение исследователи подчеркивают, что такие атаки возможны исключительно из-за того, что разработчики приложений проявляют халатность и пренебрегают официальной документацией, в частности, руководствами по безопасности Android. Дело в том, что в документах прямо перечислены все риски и возможные последствия использования External Storage.
Эксперты Check Point настоятельно рекомендуют разработчикам отказаться от таких небезопасных практик и использовать внешнее хранилище разумно, не забывая о безопасности. Также специалисты уверены, что инженерам Google стоит ужесточить правила и не отдавать такие важные решения на откуп самим разработчикам и пользователям.