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

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

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

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

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

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

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

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

Типы контекста

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

Тип контекста Определение типа
Ограниченный контекст Ограниченная среда выполнения, в которой предоставляются только самые минимальные разрешения.

Например, «песочницы» приложения для обработки ненадежных данных без разрешения доступа к базовой системе.
Непривилегированный контекст Типичная среда выполнения, ожидаемая непривилегированным кодом.

Например, Android приложение , которое работает в домене SELinux с untrusted_app_all атрибутом.
Привилегированный контекст Привилегированная среда выполнения, которая может иметь доступ к повышенным разрешениям, обрабатывать PII нескольких пользователей и / или поддерживать целостность системы.

Например, Android приложения с возможностями , которые будут запрещены SELinux untrusted_app домена или с доступом к privileged|signature разрешений.
Надежная вычислительная база (TCB) Функциональность, являющаяся частью ядра, выполняется в том же контексте ЦП, что и ядро ​​(например, драйверы устройств), имеет прямой доступ к памяти ядра (например, аппаратным компонентам на устройстве), имеет возможность загружать сценарии в компонент ядра ( например, eBPF), процессоры связи, или один из нескольких пользовательских сервисов , которые считаются эквивалентными: ядро apexd , bpfloader , init , ueventd и vold .
Цепочка загрузчика Компонент, который настраивает устройство при загрузке, а затем передает управление ОС Android.
Надежная среда выполнения (TEE) Компонент, предназначенный для защиты даже от враждебного ядра (например, TrustZone и Hypervisor).
Безопасный анклав / Защищенный элемент (SE) Дополнительный аппаратный компонент будет защищено от всех других компонентов на устройстве и от физической атаки, как определено в введении к Secure Elements .

Это включает в себя чип Titan-M, присутствующий в некоторых устройствах Pixel.

Строгость

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

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

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

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

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

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

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

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

Сетевая безопасность

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

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

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

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

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

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

SYSTEM_ALERT_WINDOW и Tapjacking

Для получения информации о нашей политике в отношении SYSTEM_ALERT_WINDOW и tapjacking см «Tapjacking / наложения SYSTEM_ALERT_WINDOW уязвимость на непостоянную безопасность критичного экрана» раздел BugHunter университета Bugs без влияния безопасности страницы.

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

Группа разработчиков, ответственная за исправление ошибки, зависит от того, в каком компоненте ошибка. Это может быть основной компонент платформы 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, устройства с Play Служб Google может также использовать Verify Apps функцию , чтобы предупредить пользователей о приложениях , которые могут быть потенциально опасными.

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

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

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

Отчеты

Иногда группа безопасности Android публикует отчеты или технические документы. См Отчеты безопасности для более подробной информации.