Android включает в себя ведущие в отрасли функции безопасности и сотрудничает с разработчиками и производителями устройств для обеспечения безопасности платформы и экосистемы Android. Надёжная модель безопасности необходима для создания активной экосистемы приложений и устройств, созданных на платформе Android и поддерживаемых облачными сервисами. В результате на протяжении всего жизненного цикла разработки Android подвергается строгой программе безопасности.
Android разработан как открытая платформа. Приложения Android используют передовое аппаратное и программное обеспечение, а также локальные и обслуживаемые данные, предоставляемые через платформу, чтобы предлагать инновации и ценность для потребителей. Для реализации этой ценности платформа предлагает среду приложений, которая защищает конфиденциальность, целостность и доступность пользователей, данных, приложений, устройства и сети.
Обеспечение безопасности открытой платформы требует надежной архитектуры безопасности и строгих программ безопасности. Android разработан с многоуровневой системой безопасности, достаточно гибкой для поддержки открытой платформы, обеспечивая при этом защиту всех ее пользователей. Сведения о том, как сообщать о проблемах безопасности и как обновлять систему, см. в разделе «Обновления и ресурсы безопасности» .
Android создан для разработчиков. Средства безопасности были разработаны для снижения нагрузки на разработчиков. Разработчики, разбирающиеся в безопасности, могут легко использовать гибкие средства безопасности и полагаться на них. Разработчики, менее знакомые с безопасностью, защищены безопасными настройками по умолчанию.
Помимо предоставления стабильной платформы для разработки, Android предоставляет разработчикам дополнительную поддержку различными способами. Команда безопасности Android ищет потенциальные уязвимости в приложениях и предлагает способы их устранения. Для устройств с Google Play сервисы Play предоставляют обновления безопасности для критически важных программных библиотек, таких как 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, ограничен «песочницей» приложений.
Рисунок 1. Стек программного обеспечения Android
Основными строительными блоками платформы Android являются:
- Аппаратное обеспечение устройства: Android работает на широком спектре устройств, включая мобильные телефоны, планшеты, часы, автомобили, смарт-телевизоры, игровые приставки OTT и ТВ-приставки. Android не зависит от процессора, но использует некоторые аппаратно-зависимые функции безопасности, такие как ARM eXecute-Never.
- Операционная система Android: ядро операционной системы построено на ядре Linux. Доступ ко всем ресурсам устройства, таким как функции камеры, данные GPS, функции Bluetooth, функции телефонии и сетевые подключения, осуществляется через операционную систему.
- Среда выполнения приложений Android: приложения Android чаще всего пишутся на языке программирования Java и запускаются в среде выполнения Android (ART). Однако многие приложения, включая основные службы и приложения Android, являются нативными приложениями или включают нативные библиотеки. Как ART, так и нативные приложения работают в одной и той же безопасной среде, находящейся в изолированной среде приложений (Application Sandbox). Приложениям выделяется выделенная часть файловой системы, в которой они могут записывать конфиденциальные данные, включая базы данных и необработанные файлы.
Приложения для Android расширяют возможности базовой операционной системы Android. Существует два основных источника приложений:
- Предустановленные приложения: Android включает в себя набор предустановленных приложений, включая телефон, электронную почту, календарь, веб-браузер и контакты. Они работают как пользовательские приложения и предоставляют ключевые возможности устройства, к которым могут получить доступ другие приложения. Предустановленные приложения могут быть частью платформы Android с открытым исходным кодом или разработаны производителем устройства для конкретного устройства.
- Приложения, устанавливаемые пользователем: Android предоставляет открытую среду разработки, поддерживающую любые сторонние приложения. Google Play предлагает пользователям сотни тысяч приложений.
Службы безопасности Google
Google предоставляет набор облачных сервисов, доступных для совместимых устройств Android с помощью Google Mobile Services . Хотя эти сервисы не входят в проект Android Open Source Project (AOSP), они включены во многие устройства Android. Подробнее о некоторых из этих сервисов см. в обзоре Android Security за 2018 год .
Основные службы безопасности 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
- Обязательная песочница для всех приложений
- Безопасное межпроцессное взаимодействие
- Подписание приложений
- Разрешения, определяемые приложением и предоставляемые пользователем