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

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

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

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

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

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

Ошибки сортировки

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

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

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

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

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

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

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

К ним относится чип Titan-M, установленный в некоторых устройствах Android.

Серьёзность

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

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

Модификаторы серьезности

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

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

Локальный против проксимального против удаленного

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

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

Локальные атаки требуют, чтобы злоумышленник имел предварительный доступ к жертве. В гипотетическом примере, связанном только с программным обеспечением, это может быть сделано через вредоносное приложение, которое установила жертва, или через приложение Instant App, на запуск которого она дала согласие.

Успешно сопряженные устройства (например, сопутствующие устройства Bluetooth) считаются локальными. Мы проводим различие между сопряженным устройством и устройством, участвующим в процессе сопряжения.

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

Физические векторы атак считаются локальными. К ним относятся ошибки, которые может использовать только злоумышленник, имеющий физический доступ к устройству, например, ошибка в экране блокировки или та, которая требует подключения USB-кабеля. Поскольку устройства часто разблокируются при подключении к USB, атаки, требующие подключения по USB, имеют одинаковую степень серьезности независимо от того, требуется ли разблокировка устройства или нет.

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

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

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

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

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

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

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

SYSTEM_ALERT_WINDOW и тапджекинг

Информацию о нашей политике в отношении SYSTEM_ALERT_WINDOW и тапджекинга см. в разделе « Уязвимость тапджекинга/наложения SYSTEM_ALERT_WINDOW на экране, не представляющем особой опасности » на странице BugHunter University «Ошибки, не влияющие на безопасность» .

Многопользовательская безопасность в Android Automotive OS

Android Automotive OS использует многопользовательскую модель безопасности, отличную от других форм-факторов. Каждый пользователь Android предназначен для использования отдельным физическим лицом. Например, временный гостевой пользователь может быть назначен другу, который берет автомобиль у владельца автомобиля. Для обеспечения таких случаев использования пользователи по умолчанию имеют доступ к необходимым компонентам, необходимым для использования автомобиля, таким как настройки Wi-Fi и сотовой сети.

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

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

Ошибки в коде AOSP исправляются командой инженеров Android в наших внутренних репозиториях.

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

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

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

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

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

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

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

Обновление служб Google

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

Другие ресурсы

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

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

Отчеты

Иногда команда Android Security публикует отчеты или технические документы. Подробнее см. в разделе Security Reports .