Как атака через SMS может запустить вредоносный код на устройстве — и что с этим делать

90
Как атака через SMS может запустить вредоносный код на устройстве — и что с этим делать

Разработчики мобильных приложений часто сталкиваются с ситуацией, когда вредоносный код внедряется не через приложение, а через обычное сообщение — SMS или RCS. Устройства, которые ранее считались безопасными, теперь могут быть подвержены атакам, не требующим никаких действий пользователя: от просмотра до прослушивания. В этом случае вредоносный код запускается автоматически, как только сообщение приходит, без необходимости открытия или взаимодействия с ним.

Что это такое?

Это уязвимость в системе обработки звуковых сообщений Android, позволяющая злоумышленнику запустить произвольный код с правами ядра без каких-либо действий пользователя. Атака происходит при получении SMS или RCS-сообщения с вложенным звуковым файлом. Приложение Google Messages автоматически декодирует звук и транскрибирует его в текст, используя встроенный сервис com.google.android.tts. В ходе этого процесса система обрабатывает звуковые данные через библиотеки, которые содержат уязвимости — и именно там и происходит запуск вредоносного кода.

Как это работает?

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

На первом этапе злоумышленник использует уязвимость в библиотеке Dolby Unified Decoder (CVE-2025-54957). При декодировании звуковых данных, особенно в форматах Dolby Digital или Dolby Digital Plus, библиотека вычисляет размер буфера для хранения данных. При обработке некорректных структур данных может произойти целочисленное переполнение — число превышает допустимый лимит. Это позволяет перезаписать указатель на следующий синхронизирующий кадр. Указатель, который обычно используется для управления потоком данных, теперь может быть изменён атакующим, что позволяет перенаправить выполнение кода в произвольную позицию в памяти. Запускается код с правами доступа «mediacodec», ограниченными SELinux, но достаточными для выполнения вредоносных действий.

На втором этапе атака расширяется в ядро Linux. Уязвимость в драйвере bigwave (CVE-2025-36934) позволяет перезаписать структуры ядра через специальный системный вызов ioctl — BIGO_IOCX_PROCESS. Драйвер отвечает за работу с символьным устройством /dev/bigwave, к которому доступ имеет контекст «mediacodec». Атакующий использует перезаписанный указатель для выполнения произвольного кода с полными правами ядра. Это позволяет не только запустить вредоносный скрипт, но и получить контроль над системой, включая доступ к файлам, сетевым соединениям и другим ресурсам.

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

Какие преимущества?

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

  1. Атака не требует участия пользователя — даже не нужно прослушивать или открыть сообщение.
  2. Декодирование звуковых сообщений происходит автоматически в современных версиях Android.
  3. Используются уже существующие компоненты системы — Dolby и драйвер bigwave — без необходимости создания новых вредоносных приложений.
  4. Разработка эксплоита может быть выполнена в течение нескольких недель при наличии доступа к системе.

Какие ограничения или минусы?

Несмотря на высокую эффективность, атака имеет ряд ограничений. Во-первых, она не работает на всех устройствах. Например, на Samsung S24 и MacBook Air M1 уязвимость в Dolby Decoder может быть частично ослаблена за счёт включения seccomp-фильтров, которые блокируют системные вызовы, потенциально опасные для эксплуатации. Во-вторых, в macOS и iOS включение флага -fbounds-safet в компиляции снижает производительность, но защищает от переполнения буферов.

Другой серьёзный минус — скорость реакции на уязвимость. Уязвимость в Dolby Decoder была раскрыта 82 дня до того, как пользователи получили исправление. На устройствах Pixel исправление появилось лишь через 139 дней после раскрытия. Это означает, что в течение почти полугода устройства оставались под угрозой без защиты.

Кроме того, компания Dolby оценивала уязвимость как «незначительную», несмотря на наличие рабочего эксплоита. Это может указывать на недостаточную оценку рисков в процессе анализа безопасности.

Стоит ли защищаться?

Такая атака не является инструментом для использования в реальных сценариях, а представляет собой серьёзный риск для безопасности устройств. Однако она должна быть учтена при проектировании систем обработки медиа-данных.

Рекомендуется включить защиту на уровне библиотек и драйверов: использовать проверки на выход за границу массивов, включать seccomp-фильтры для критических процессов, активировать механизмы Memory Tagging (MTE) на устройствах Pixel 8 и выше. Также необходимо убедиться, что приложения, обрабатывающие звуковые сообщения, не используют встроенные сервисы транскрипции без дополнительных проверок безопасности.

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

Последнее изменение:

0 Комментарии
Популярные
Новые Старые
Inline Feedbacks
Посмотреть все комментарии