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