Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Обновления безопасности и ресурсы

Группа безопасности Android отвечает за управление уязвимостями системы безопасности, обнаруженными в платформе Android и во многих основных приложениях Android, поставляемых вместе с устройствами Android.

Команда безопасности Android находит уязвимости в системе безопасности посредством внутреннего исследования, а также реагирует на ошибки, о которых сообщают третьи стороны. Источники внешних ошибок включают проблемы, о которых сообщается в шаблоне Android Security Issue , опубликованные и предварительно опубликованные академические исследования, разработчики проектов с открытым исходным кодом, уведомления от наших партнеров-производителей устройств и публично раскрытые проблемы, опубликованные в блогах или социальных сетях.

Сообщение о проблемах безопасности

Любой разработчик, пользователь Android или исследователь безопасности может уведомить группу безопасности Android о потенциальных проблемах безопасности с помощью формы сообщения об уязвимостях безопасности .

Ошибки, помеченные как проблемы безопасности, не видны извне, но в конечном итоге они могут стать видимыми после оценки или решения проблемы. Если вы планируете отправить исправление или тест на набор тестов совместимости (CTS) для решения проблемы безопасности, приложите его к отчету об ошибке и дождитесь ответа, прежде чем загружать код в AOSP.

Сортировка ошибок

Первая задача при устранении уязвимости системы безопасности - определить серьезность ошибки и определить, какой компонент Android затронут. Серьезность определяет приоритет проблемы, а компонент определяет, кто исправляет ошибку, кто получает уведомление и как исправление развертывается среди пользователей.

Типы процессов

В этой таблице приведены определения типов процессов. Тип процесса может определяться типом приложения или процесса или областью, в которой он выполняется. Эта таблица упорядочена от наименее к наиболее привилегированным.

Тип процесса Определение типа
Ограниченный процесс Процесс, который выполняется в строго ограниченном домене SELinux.
ИЛИ
Процесс значительно более ограничен, чем обычное приложение.
Непривилегированный процесс Приложение или процесс, который выполняется в домене SELinux с атрибутом untrusted_app_all или на него действует аналогичное ограничение.
Привилегированный процесс Приложение или процесс с возможностями, которые были бы запрещены доменом SELinux untrusted_app .
ИЛИ
Приложение или процесс с важными привилегиями, которые стороннее приложение не может получить.
ИЛИ
Встроенный аппаратный компонент на устройстве, не являющийся частью доверенной вычислительной базы (TCB).
Надежная вычислительная база (TCB) Функциональность, являющаяся частью ядра, выполняется в том же контексте ЦП, что и ядро ​​(например, драйверы устройств), имеет прямой доступ к памяти ядра (например, аппаратным компонентам на устройстве), имеет возможность загружать сценарии в компонент ядра ( например, eBPF), Baseband Processor или одна из немногих пользовательских служб, которые считаются эквивалентами ядра: init , ueventd и vold .
Загрузчик Компонент, который настраивает устройство при загрузке, а затем передает управление ОС Android.
Надежная среда выполнения (TEE) Компонент, предназначенный для защиты даже от враждебного ядра (например, TrustZone и Hypervisor).
Защитный элемент (SE) Необязательный компонент, предназначенный для защиты от всех других компонентов устройства и от физических атак, как определено во введении в элементы безопасности .

Строгость

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

Рейтинг Последствия успешной эксплуатации
Критический
  • Несанкционированный доступ к данным, защищенным SE
  • Выполнение произвольного кода в TEE или SE
  • Удаленное выполнение произвольного кода в привилегированном процессе, загрузчике или TCB
  • Удаленный постоянный отказ в обслуживании (неработоспособность устройства: полностью постоянная или требующая перепрошивки всей операционной системы или возврата к заводским настройкам)
  • Удаленный обход требований к взаимодействию с пользователем при установке пакета или аналогичного поведения
  • Удаленный обход требований к взаимодействию с пользователем для любых настроек разработчика, безопасности или конфиденциальности
  • Обход удаленной безопасной загрузки
  • Обход механизмов безопасности, предназначенных для предотвращения выхода из строя критических компонентов оборудования (например, тепловой защиты)
Высокая
  • Обход локальной безопасной загрузки
  • Полный обход основной функции безопасности (такой как SELinux, FDE или seccomp)
  • Удаленное выполнение произвольного кода в непривилегированном процессе
  • Выполнение локального произвольного кода в привилегированном процессе, загрузчике или TCB
  • Несанкционированный доступ к данным, защищенным TEE
  • Атаки на SE, которые приводят к переходу на менее безопасную реализацию
  • Локальный обход требований к взаимодействию с пользователем при установке пакета или аналогичное поведение
  • Удаленный доступ к защищенным данным (данные, которые ограничены привилегированным процессом)
  • Локальный постоянный отказ в обслуживании (неработоспособность устройства: постоянная или требующая перепрошивки всей операционной системы или возврата к заводским настройкам)
  • Удаленный обход требований к взаимодействию с пользователем (доступ к функциям или данным, которые обычно требуют либо инициации пользователя, либо разрешения пользователя)
  • Передача конфиденциальной информации по незащищенному сетевому протоколу (например, HTTP и незашифрованный Bluetooth), когда запрашивающая сторона ожидает безопасной передачи (обратите внимание, что это не относится к шифрованию Wi-Fi, например WEP)
  • Общий обход для глубокой защиты или использование технологии смягчения в загрузчике, TEE или SE
  • Общий обход средств защиты операционной системы, которые изолируют данные приложений или профили пользователей друг от друга.
  • Локальный обход требований к взаимодействию с пользователем для любых настроек разработчика, безопасности или конфиденциальности
  • Криптографическая уязвимость в стандартной безопасности транспортного уровня (TLS), которая допускает атаки по пути
  • Обход блокировки экрана
  • Обход защиты устройства / защиты от сброса настроек / ограничений оператора связи
  • Целенаправленное предотвращение доступа к службам экстренной помощи
  • Обход требований взаимодействия с пользователем, которые обеспечиваются TEE.
Умеренный
  • Удаленное выполнение произвольного кода в ограниченном процессе
  • Удаленный отказ временного устройства в обслуживании (удаленное зависание или перезагрузка)
  • Выполнение локального произвольного кода в непривилегированном процессе
  • Общий обход для глубокой защиты или использования технологии смягчения в привилегированном процессе или TCB
  • Обход ограничений на ограниченный процесс
  • Удаленный доступ к незащищенным данным (данные обычно доступны для любого локально установленного приложения)
  • Локальный доступ к защищенным данным (данные, которые ограничены привилегированным процессом)
  • Локальный обход требований взаимодействия с пользователем (доступ к функциям или данным, которые обычно требуют либо инициации пользователя, либо разрешения пользователя)
  • Криптографическая уязвимость в стандартных криптопримитивах, которая позволяет утечку открытого текста (не примитивов, используемых в TLS)
  • Обход шифрования или аутентификации Wi-Fi
Низкий
  • Выполнение локального произвольного кода в ограниченном процессе
  • Криптографическая уязвимость при нестандартном использовании
  • Общий обход для глубокой защиты на уровне пользователя или использование технологии смягчения в непривилегированном процессе
Незначительное воздействие на безопасность (NSI)
  • Уязвимость, влияние которой было смягчено одним или несколькими модификаторами рейтинга или изменениями архитектуры, зависящими от версии, так что эффективная серьезность ниже Низкой, хотя основная проблема кода может остаться
  • Любая уязвимость, требующая искаженной файловой системы, если эта файловая система всегда зашифровывается перед использованием.

Модификаторы рейтинга

Хотя серьезность уязвимостей в системе безопасности часто легко определить, оценки могут меняться в зависимости от обстоятельств.

Причина Эффект
Требуется запуск в качестве привилегированного процесса для выполнения атаки -1 Серьезность
Подробные сведения об уязвимости ограничивают влияние проблемы -1 Серьезность
Обход биометрической аутентификации, требующий биометрической информации непосредственно от владельца устройства -1 Серьезность
Конфигурации компилятора или платформы уменьшают уязвимость в исходном коде Средняя серьезность, если основная уязвимость - Средняя или выше
Требуется физический доступ к внутренним устройствам устройства и все еще возможен, если телефон выключен или не был разблокирован с момента включения -1 Серьезность
Требуется физический доступ к внутренним устройствам устройства, когда телефон включен и ранее был разблокирован -2 серьезности
Локальная атака, требующая разблокировки загрузчика Не выше Низкого
Локальная атака, требующая включения режима разработчика или каких-либо постоянных настроек режима разработчика на устройстве (и не является ошибкой в ​​самом режиме разработчика). Не выше Низкого
Если ни один домен SELinux не может выполнять операцию в соответствии с SEPolicy, предоставленной Google Незначительное влияние на безопасность

Местное, проксимальное и дистанционное

Вектор удаленной атаки указывает на то, что ошибку можно использовать без установки приложения или без физического доступа к устройству. Сюда входят ошибки, которые могут быть вызваны просмотром веб-страницы, чтением электронной почты, получением SMS-сообщения или подключением к враждебной сети. Для целей оценки серьезности команда безопасности Android также считает «ближайшие» векторы атак удаленными. К ним относятся ошибки, которыми может воспользоваться только злоумышленник, физически находящийся рядом с целевым устройством, например, ошибка, требующая отправки искаженных пакетов Wi-Fi или Bluetooth. Команда безопасности Android считает атаки на основе NFC ближайшими и, следовательно, удаленными.

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

Безопасность Wi-Fi

Android предполагает, что все сети враждебны и могут осуществлять атаки или шпионить за трафиком. Хотя безопасность канального уровня (например, шифрование Wi-Fi) защищает связь между устройством и точкой доступа Wi-Fi, к которой оно подключено, она ничего не делает для защиты оставшихся звеньев в цепочке между устройством и серверами, с которыми оно обменивается данными. .

Напротив, HTTPS обычно защищает всю связь от начала до конца, шифруя данные в их источнике, а затем дешифруя и проверяя их только после того, как они достигли конечного пункта назначения. Из-за этого уязвимости, которые ставят под угрозу безопасность Wi-Fi, оцениваются менее серьезно, чем уязвимости в HTTPS / TLS: одного только шифрования Wi-Fi недостаточно для большей части обмена данными в Интернете.

Биометрическая аутентификация

Биометрическая аутентификация - сложная область, и даже самые лучшие системы можно обмануть близким совпадением. Эти рейтинги серьезности различают два класса атак и предназначены для отражения фактического риска для конечного пользователя.

Первый класс атак позволяет обойти биометрическую аутентификацию обобщаемым образом, без высококачественных биометрических данных от владельца. Если, например, злоумышленник может приложить кусок резинки к датчику отпечатков пальцев, и он предоставит доступ к устройству на основе остатка, оставшегося на датчике, это простая атака, которая может быть проведена на любом уязвимом устройстве. Для этого не требуется никаких знаний владельца устройства. Учитывая, что эта атака универсальна и потенциально затрагивает большее количество пользователей, эта атака получает полную оценку серьезности (например, Высокая для обхода блокировки экрана).

Другой класс атак, как правило, включает в себя инструмент презентационной атаки (спуф) на основе владельца устройства. Иногда эту биометрическую информацию относительно легко получить (например, если чье-то изображение профиля в социальных сетях достаточно, чтобы обмануть биометрическую аутентификацию, то биометрический обход получит полную оценку серьезности). Но если злоумышленнику потребуется получить биометрические данные непосредственно от владельца устройства (например, инфракрасное сканирование его лица), это достаточно серьезный барьер, который ограничивает количество людей, пострадавших от атаки, поэтому существует модификатор -1. .

Затронутый компонент

Команда разработчиков, ответственная за исправление ошибки, зависит от того, в каком компоненте ошибка. Это может быть основной компонент платформы Android, драйвер ядра, поставляемый производителем оригинального оборудования (OEM), или одно из предварительно загруженных приложений на устройствах Pixel. .

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

Компонент также влияет на то, как пользователи получают обновления. Ошибка во фреймворке или ядре требует обновления прошивки по беспроводной сети (OTA), которую должен продвигать каждый OEM-производитель. Ошибка в приложении или библиотеке, опубликованной в Google Play (например, Gmail, Google Play Services или WebView), может быть отправлена ​​пользователям Android как обновление из Google Play.

Уведомление партнеров

Когда уязвимость в системе безопасности AOSP будет исправлена ​​в бюллетене по безопасности Android, мы уведомим партнеров Android о деталях проблемы и предоставим исправления. Список версий, поддерживаемых backport, меняется с каждым новым выпуском Android. Обратитесь к производителю устройства для получения списка поддерживаемых устройств.

Выпуск кода в AOSP

Если ошибка безопасности находится в компоненте AOSP, исправление отправляется в AOSP после того, как OTA предоставлено пользователям. Исправления для проблем низкой важности могут быть отправлены непосредственно в основную ветку AOSP, прежде чем исправление станет доступным для устройств через OTA.

Получение обновлений Android

Обновления системы Android обычно доставляются на устройства через пакеты обновлений OTA. Эти обновления могут поступать от OEM-производителя, производившего устройство, или от оператора связи, обслуживающего устройство. Обновления для устройств Google Pixel поступают от команды Google Pixel после прохождения процедуры технической приемки (TA) оператора связи. Google также публикует заводские изображения Pixel, которые можно загружать на устройства.

Обновление сервисов Google

Помимо предоставления исправлений для ошибок безопасности, группа безопасности Android изучает ошибки безопасности, чтобы определить, есть ли другие способы защиты пользователей. Например, Google Play сканирует все приложения и удаляет все приложения, которые пытаются использовать ошибку безопасности. Для приложений, установленных не из Google Play, устройства с сервисами Google Play также могут использовать функцию « Проверить приложения», чтобы предупреждать пользователей о приложениях, которые могут быть потенциально опасными.

Другие источники

Информация для разработчиков приложений Android: https://developer.android.com

Информация о безопасности существует на сайтах Android Open Source и Developer. Хорошие места для начала:

Отчеты

Иногда группа безопасности Android публикует отчеты или технические документы. См. Дополнительные сведения в отчетах о безопасности .