Android включает в себя ведущие в отрасли функции безопасности и работает с разработчиками и разработчиками устройств, чтобы обеспечить безопасность платформы и экосистемы Android. Надежная модель безопасности необходима для обеспечения активной экосистемы приложений и устройств, созданных на платформе Android и вокруг нее и поддерживаемых облачными сервисами. В результате на протяжении всего жизненного цикла разработки Android подвергался строгой программе безопасности.
Android разработан как открытый. Приложения Android используют передовое аппаратное и программное обеспечение, а также локальные и обслуживаемые данные, предоставляемые через платформу, чтобы привнести инновации и ценность для потребителей. Чтобы реализовать эту ценность, платформа предлагает среду приложений, которая защищает конфиденциальность, целостность и доступность пользователей, данных, приложений, устройства и сети.
Для защиты открытой платформы требуется надежная архитектура безопасности и строгие программы безопасности. Android был разработан с многоуровневой безопасностью, которая достаточно гибка для поддержки открытой платформы, при этом защищая всех пользователей платформы. Для получения информации о сообщениях о проблемах безопасности и процессе обновления см. Обновления и ресурсы безопасности .
Android разработан для разработчиков. Элементы управления безопасностью были разработаны для снижения нагрузки на разработчиков. Разработчики, разбирающиеся в безопасности, могут легко работать с гибкими элементами управления безопасностью и полагаться на них. Разработчики, менее знакомые с безопасностью, защищены безопасными значениями по умолчанию.
Помимо предоставления стабильной платформы для разработки, Android оказывает разработчикам дополнительную поддержку несколькими способами. Команда по безопасности Android ищет потенциальные уязвимости в приложениях и предлагает способы устранения этих проблем. Для устройств с Google Play Play Services предоставляет обновления безопасности для критически важных программных библиотек, таких как OpenSSL, который используется для защиты связи приложений. Служба безопасности Android выпустила инструмент для тестирования SSL ( nogotofail ), который помогает разработчикам находить потенциальные проблемы безопасности на любой платформе, которую они разрабатывают.
Android также использует базовую аппаратную поддержку для безопасности. Например, технология ARM TrustZone используется для обеспечения безопасного хранения криптографических ключей, а также подтверждения целостности загрузки. DICE используется для измерения прошивки, которая загружается до загрузки Android. Это позволяет удаленно проверить, что прошивка не затронута известными критическими уязвимостями, которые могут быть использованы для нанесения вреда как разработчикам, так и пользователям.
Более подробную информацию для разработчиков приложений Android можно найти на сайте developer.android.com .
Android разработан для пользователей. Пользователям предоставляется видимость разрешений, запрашиваемых каждым приложением, и контроль над этими разрешениями. Эта конструкция включает ожидание того, что злоумышленники попытаются выполнить обычные атаки, такие как атаки социальной инженерии, чтобы убедить пользователей устройств установить вредоносное ПО, и атаки на сторонние приложения на Android. Android был разработан как для снижения вероятности этих атак, так и для значительного ограничения воздействия атаки в случае ее успеха. Безопасность Android продолжает совершенствоваться после того, как устройство попадает в руки пользователя. Android работает с партнерами и общественностью , чтобы предоставлять исправления для любого устройства Android, которое продолжает получать обновления безопасности.
Дополнительную информацию для конечных пользователей можно найти в справочном центре Nexus , справочном центре Pixel или справочном центре производителя вашего устройства.
На этой странице излагаются цели программы безопасности Android, описываются основы архитектуры безопасности Android и даются ответы на самые важные вопросы для системных архитекторов и аналитиков безопасности. Основное внимание уделяется функциям безопасности базовой платформы Android, а не обсуждаются проблемы безопасности, которые являются уникальными для конкретных приложений, например, связанные с браузером или приложением SMS.
Фон
Android предоставляет платформу с открытым исходным кодом и среду приложений для мобильных устройств.
Разделы и страницы ниже описывают функции безопасности платформы Android. Рисунок 1 иллюстрирует компоненты безопасности и соображения различных уровней программного стека Android. Каждый компонент предполагает, что компоненты ниже должным образом защищены. За исключением небольшого количества кода ОС Android, работающего как root, весь код выше ядра Linux ограничен Application Sandbox.
Рисунок 1. Стек программного обеспечения Android
Основными строительными блоками платформы Android являются:
- Аппаратное обеспечение устройства: Android работает на широком спектре аппаратных конфигураций, включая мобильные телефоны, планшеты, часы, автомобили, смарт-телевизоры, игровые приставки OTT и телевизионные приставки. Android не зависит от процессора, но использует некоторые аппаратно-специфичные возможности безопасности, такие как ARM eXecute-Never.
- Операционная система Android: Основная операционная система построена на основе ядра Linux. Все ресурсы устройства, такие как функции камеры, данные GPS, функции Bluetooth, функции телефонии и сетевые соединения доступны через операционную систему.
- Среда выполнения приложений Android: приложения Android чаще всего пишутся на языке программирования Java и запускаются в среде выполнения Android (ART). Однако многие приложения, включая основные службы и приложения Android, являются собственными приложениями или включают собственные библиотеки. Как ART, так и собственные приложения запускаются в одной и той же среде безопасности, содержащейся в изолированной среде приложений. Приложения получают выделенную часть файловой системы, в которую они могут записывать личные данные, включая базы данных и необработанные файлы.
Приложения Android расширяют ядро операционной системы Android. Существует два основных источника приложений:
- Предустановленные приложения: Android включает набор предустановленных приложений, включая телефон, электронную почту, календарь, веб-браузер и контакты. Они функционируют как пользовательские приложения и предоставляют ключевые возможности устройства, к которым могут получить доступ другие приложения. Предустановленные приложения могут быть частью платформы Android с открытым исходным кодом или могут быть разработаны производителем устройства для конкретного устройства.
- Приложения, устанавливаемые пользователем: Android предоставляет открытую среду разработки, которая поддерживает любые сторонние приложения. Google Play предлагает пользователям сотни тысяч приложений.
Службы безопасности Google
Google предоставляет набор облачных сервисов, которые доступны для совместимых устройств Android с Google Mobile Services . Хотя эти сервисы не являются частью Android Open Source Project (AOSP), они включены во многие устройства Android. Для получения дополнительной информации о некоторых из этих сервисов см. Android Security's 2018 Year in Review .
Основными службами безопасности Google являются:
- Google Play: Google Play — это набор сервисов, которые позволяют пользователям находить, устанавливать и приобретать приложения со своего устройства Android или из Интернета. Google Play упрощает разработчикам доступ к пользователям Android и потенциальным клиентам. Google Play также предоставляет обзор сообщества, проверку лицензии приложения, сканирование безопасности приложения и другие сервисы безопасности.
- Обновления Android: служба обновлений Android предоставляет новые возможности и обновления безопасности для выбранных устройств Android, включая обновления через Интернет или по беспроводной сети (OTA).
- Службы приложений: фреймворки, которые позволяют приложениям Android использовать облачные возможности, такие как ( резервное копирование ) данных и настроек приложений, а также обмен сообщениями из облака на устройство ( C2DM ) для push-сообщений.
- Проверка приложений: предупреждает или автоматически блокирует установку вредоносных приложений, а также постоянно сканирует приложения на устройстве, предупреждая о них или удаляя их .
- SafetyNet: система обнаружения вторжений, сохраняющая конфиденциальность, помогающая Google отслеживать действия пользователей, устранять известные угрозы безопасности и выявлять новые угрозы безопасности.
- Подтверждение SafetyNet: сторонний API для определения совместимости устройства с CTS. Подтверждение также может идентифицировать приложение Android, взаимодействующее с сервером приложений.
- Android Device Manager: веб-приложение и приложение Android для поиска потерянного или украденного устройства.
Обзор программы безопасности
Ключевые компоненты программы безопасности Android включают в себя:
- Обзор дизайна: Процесс обеспечения безопасности Android начинается на ранних этапах жизненного цикла разработки с создания богатой и настраиваемой модели безопасности и дизайна. Каждая важная функция платформы рассматривается инженерными и службами безопасности, а соответствующие элементы управления безопасностью интегрируются в архитектуру системы.
- Тестирование на проникновение и обзор кода: во время разработки платформы компоненты Android и компоненты с открытым исходным кодом подвергаются строгим проверкам безопасности. Эти проверки проводятся командой безопасности Android, командой инженеров информационной безопасности Google и независимыми консультантами по безопасности. Целью этих проверок является выявление слабых мест и возможных уязвимостей задолго до крупных релизов и имитация типов анализа, которые выполняются внешними экспертами по безопасности после релиза.
- Открытый исходный код и обзор сообщества: AOSP позволяет любой заинтересованной стороне проводить широкий обзор безопасности. Android также использует технологии с открытым исходным кодом, которые прошли значительную внешнюю проверку безопасности, например, ядро Linux. Google Play предоставляет форум для пользователей и компаний, чтобы предоставлять информацию о конкретных приложениях непосредственно пользователям.
- Реагирование на инциденты: даже при соблюдении этих мер предосторожности проблемы безопасности могут возникнуть после поставки, поэтому проект Android создал комплексный процесс реагирования на проблемы безопасности. Члены постоянной команды по безопасности Android отслеживают сообщество Android и сообщество безопасности в целом для обсуждения потенциальных уязвимостей и просматривают ошибки безопасности, зарегистрированные в базе данных ошибок Android. При обнаружении законных проблем команда Android имеет процесс реагирования, который позволяет быстро устранить уязвимости, чтобы гарантировать, что потенциальный риск для всех пользователей Android сведен к минимуму. Эти поддерживаемые облаком ответы могут включать обновление платформы Android (обновления AOSP), удаление приложений из Google Play и удаление приложений с устройств в полевых условиях.
- Ежемесячные обновления безопасности: команда по безопасности Android ежемесячно предоставляет обновления для устройств Google Android и всех наших партнеров-производителей устройств.
Архитектура безопасности платформы
Android стремится стать самой безопасной и удобной операционной системой для мобильных платформ, переосмысливая традиционные средства управления безопасностью операционной системы для:
- Защитите данные приложений и пользователей
- Защита системных ресурсов (включая сеть)
- Обеспечить изоляцию приложения от системы, других приложений и от пользователя
Для достижения этих целей Android предоставляет следующие ключевые функции безопасности:
- Надежная безопасность на уровне ОС через ядро Linux
- Обязательная песочница для всех приложений
- Безопасное межпроцессное взаимодействие
- Подписание приложений
- Разрешения, определяемые приложением и предоставляемые пользователем