Google в конце октября 2019 года устранила уязвимость CVE-2019-2114, которая могла использоваться злоумышленниками для распространения вредоносного программного обеспечения между устройствами на ОС Android, находящимися недалеко друг от друга. Проблема заключалась в некорректной работе функции NFC Beaming в режиме «Android beam: enabled», которая позволяла передавать по NFC на другое устройство APK-файлы приложений. Причем сам сервис Android Beam для операционный системы по уровню доверия был в белом списке, а передаваемые файлы воспринимались так же, как приложения из Google Play Store. Данной уязвимости были подвержены все устройства на базе Android Oreo (8.0) и более поздних версий.

Расширенный функционал технологии NFC (Near Field Communication) работает на Android-устройствах с помощью внутреннего сервиса операционной системы Android Beam. Данный сервис также позволяет передавать определенные данные между двумя устройствами на Android. Это могут быть файлы с изображениями, видеофрагменты, а также другие файлы и APK-приложения, которые могут быть скомпрометированы или специально заражены.

После выполнения процесса передачи по NFC, APK-файлы приложений сохраняются в памяти внутреннего накопителя устройства-получателя. Однако, если получателем является устройство на базе Android Oreo (8.0) и более поздних версий, то на экране этого устройства при этом не появляется соответствующий запрос или уведомление на разрешение установки ПО из неизвестного источника. А вместо этого на экран второго устройства выводится сообщение, позволяющее его пользователю одним нажатием установить программу, полученную с другого устройства через NFC.

Конечно, данная проблема не является серьезным изъяном в системе безопасности Android, так как пользователю все равно нужно подтвердить запуск полученного файла. Однако, в этом случае был пропущен важный шаг — ведь устройствам на Android по умолчанию не разрешается устанавливать приложения из «неизвестных источников», если не активирована соответствующая опция в настройках безопасности устройства. А в случае с Android Beam если такая опия была выключена, то все равно приложения по NFC можно было получить и начать устанавливать без всяких предупреждений системы безопасности ОС.

Оказалось, что разработчики не учли такой момент — сервис Android Beam по умолчанию имел в системе Android Oreo (8.0) и более поздних версий самый высокий уровень доверия и все передаваемые через него файлы воспринимались как официальные приложения из Play Store. Хотя функционал этого сервиса изначально не предназначался для установки приложений с его помощью. Данной уязвимости был присвоен номер CVE-2019-2114, она была впервые зарегистрирована 30 января 2019 года. На данный момент эта уязвимость устранена в октябрьском пакете обновлений для ОС Android. В системе Google эта уязвимость имеет данные: Google Bug # 123651515 (Android ID # A-123700348).

Данная уязвимость соответствовала требованиям программы Android Security Rewards, а Google выплатил за ее нахождение и предоставление информации вознаграждение.

История устранения уязвимости CVE-2019-2114:


30 января 2019 года: Получен первоначальный отчет по возможной уязвимости.

31 января 2019 года: Уязвимость подтверждена, начаты работы по ее изучению.

1 февраля 2019 года: Проблема безопасности системы по этой уязвимости переведена в статус «высокая».

2 марта 2019 года: Проверка воспроизводства данной уязвимости с другими вендорами.

6 апреля 2019 года: Проверка воспроизводства данной уязвимости с другими вендорами.

29 апреля 2019 года: Проверка воспроизводства данной уязвимости, исправление уязвимости в разработке.

29 июня 2019 года: Проверка воспроизводства данной уязвимости с другими вендорами.

1 июля 2019 года: Вендоры уведомлены о том, что по этой уязвимости будет выпущено исправление, назначен номер CVE.

8 июля 2019 года: Вендоры дополнительно проинформированы об уязвимости.

10 июля 2019 года: Выпуск исправления был отложен на месяц.

28 июля 2019 года: Черновик информационного письма об исправлении отправлен ведорам на проверку.

31 июля 2019 года: От вендоров получены комментарии по разработке исправления.

4 сентября 2019 года: Второй этап общения с вендорами по выпуску исправления.

7 октября 2019 года: Исправление уязвимости выпущено.

24 октября 2019 года: Публичное раскрытие уязвимости.

Как воспроизвести уязвимость на Android-устройствах (проверено на ОС Android 9 и Android 8.10):


1. Настройте два смартфона: включите в них поддержку NFC и Android beam.

2. Сохраните любой APK-файл на устройство-отправитель (некоторые предпочитают сохранить для данного теста вот этот APK с GitHub).

3. Зайдите в диспетчер файлов на устройстве-отправитель, нажмите на файл и выберите «Поделиться» (Share). Затем выберите «Android Beam» в качестве метода обмена.

4. Поднесите два смартфона друг к другу и завершите передачу между ними APK-файла.

5. После передачи APK-файла на устройстве-получателе нажмите уведомление “Beam completed” и нажмите на APK-файл, начнется сразу его установка в системе, минуя предупреждения системы безопасности и не будет выскакивать уведомление типа «Установить приложения из неизвестного источника».

Исправление уязвимости CVE-2019-2114 было выпущено в составе бюллетеня безопасности Google за октябрь 2019 года. Всем пользователям рекомендуется установить данное обновление на свои устройства, чтобы устранить эту уязвимость. После применения обновления, пользователям рекомендуется проверить в настройках безопасности своих устройств, что в разделе «Установка неизвестных приложений» теперь служба NFC имеет статус «не разрешено» для установки приложений.

Комментарии (3)


  1. krab4yar
    03.11.2019 11:37

    Отлично. Почти целый год потрачен на исправление. Согласовывали с АНБ?


    1. timoteo_cirkla
      04.11.2019 00:44

      С рептилоидами с Нибиру же, ну.


  1. nikolainefedov
    03.11.2019 13:41

    Молодцы, конечно, только долго устраняли что-то.