Группа безопасности 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. |
Строгость
Серьезность ошибки обычно отражает потенциальный вред, который может возникнуть в случае успешного использования ошибки. Используйте следующие критерии для определения серьезности.
Рейтинг | Последствия успешной эксплуатации |
---|---|
Критический |
|
Высокий |
|
Умеренный |
|
Низкий |
|
Незначительное воздействие на безопасность (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 с открытым исходным кодом и на сайтах разработчиков. Хорошие места для начала:
- https://source.android.com/security/index
- https://developer.android.com/training/articles/security-tips
Отчеты
Иногда группа безопасности Android публикует отчеты или технические документы. См Отчеты безопасности для более подробной информации.