Вы когда-нибудь задумывались, как работают ежемесячные обновления безопасности Android? Больше не удивляйтесь: у нас есть только основа для понимания всего процесса.
Google публикует ежемесячные бюллетени по безопасности с августа 2015 года. Эти бюллетени по безопасности содержат список обнаруженных и исправленных уязвимостей безопасности, которые затрагивают платформу Android, ядро Linux и другие компоненты поставщиков с закрытым исходным кодом. Каждая уязвимость в бюллетенях была либо обнаружена Google, либо раскрыто компании. Каждая указанная уязвимость имеет номер Common Vulnerabilities and Exposures (CVE), а также связанный с ним номер. ссылки, тип уязвимости, степень серьезности и затронутую версию AOSP (если применимый). Но, несмотря на кажущуюся упрощенность процесса работы исправлений безопасности Android, на самом деле есть несколько сложный закулисный процесс, позволяющий вашему телефону получать ежемесячные или (надеюсь) почти ежемесячные обновления патчи.
Что на самом деле делает патч безопасности?
Возможно, вы заметили, что каждый месяц на самом деле два уровни исправлений безопасности. Формат этих патчей — ГГГГ-ММ-01 или ГГГГ-ММ-05. Хотя ГГГГ и ММ, очевидно, обозначают год и месяц соответственно, «01» и «05» по ошибке фактически не обозначают день месяца, в котором был выпущен этот уровень исправлений безопасности. Вместо этого 01 и 05 на самом деле представляют собой два разных уровня исправлений безопасности, выпускаемых в один и тот же день каждого месяца. Уровень исправлений с 01 в конце содержит исправления для платформы Android, но нет исправления поставщиков или исходные исправления ядра Linux. Патчи поставщиков, как мы определили выше, относятся к исправлениям компонентов с закрытым исходным кодом, таких как драйверы для Wi-Fi и Bluetooth. Уровень исправлений безопасности, обозначенный -05, содержит исправления этих поставщиков, а также исправления ядра Linux. Взгляните на таблицу ниже, которая может помочь в понимании.
Ежемесячный уровень исправлений безопасности |
2019-04-01 |
2019-04-05 |
---|---|---|
Содержит апрельские исправления Framework |
Да |
Да |
Содержит апрельские обновления + патчи ядра. |
Нет |
Да |
Содержит мартовские патчи Framework |
Да |
Да |
Содержит мартовские поставщики + патчи ядра. |
Да |
Да |
Конечно, некоторые OEM-производители могут также включить в обновления безопасности свои собственные исправления и обновления. У большинства OEM-производителей свой взгляд на Android, поэтому имеет смысл только то, что у вас может быть, например, уязвимость в телефоне Samsung, которой нет в Huawei. Многие из этих OEM-производителей также публикуют свои собственные бюллетени по безопасности.
- Google Пиксель
- Хуавей
- LG
- Моторола
- HMD Global
- Samsung
График выхода обновления безопасности от Google на ваш телефон
Срок выпуска обновлений безопасности составляет около 30 дней, хотя не каждый OEM-производитель может воспользоваться этим сроком в течение всего срока. Давайте посмотрим на Обновление безопасности от мая 2019 г. например, и мы можем разбить весь график создания этого патча. Такие компании, как Существенный удалось получить обновления безопасности в тот же день как Google Pixel, так как же они это делают? Короткий и простой ответ: они Android-партнер. Бюллетень по безопасности за май 2019 г. был опубликован 6 мая, причем как Google Pixels, так и Essential Phone получают обновления практически мгновенно.
Что значит быть партнером Android
Не любая компания может быть партнером Android, хотя, по общему признанию, практически каждый крупный OEM-производитель Android им является. Партнеры Android — это компании, которым предоставлена лицензия на использование бренда Android в маркетинговых материалах. Им также разрешено поставлять мобильные службы Google (GMS — это практически все службы Google), если они соответствуют требованиям, изложенным в Документ определения совместимости (CDD) и пройти набор тестов совместимости (CTS), набор тестов поставщиков (VTS), набор тестов Google (GTS) и несколько других тестов. Существуют явные различия в процессе установки обновлений безопасности для компаний, которые нет Android-партнер.
- Патчи платформы Android доступны им после слияния с AOSP за 1-2 дня до выпуска бюллетеня по безопасности.
- Исходящие патчи ядра Linux можно выбирать, как только они станут доступны.
- Исправления от поставщиков SoC для компонентов с закрытым исходным кодом доступны в зависимости от соглашений с поставщиком SoC. Обратите внимание: если поставщик предоставил OEM-производителю доступ к исходному коду компонента(ов) с закрытым исходным кодом, то OEM-производитель может устранить проблему(-ы) самостоятельно. Если у OEM-производителя нет доступа к исходному коду, ему придется дождаться, пока поставщик выпустит исправление.
Если вы являетесь партнером Android, вам сразу станет намного проще. Партнеры Android уведомляются обо всех проблемах с платформой Android и ядрами Linux не позднее, чем за 30 дней до публикации бюллетеня. Google предоставляет исправления для всех проблем, которые OEM-производители могут объединить и протестировать, хотя исправления компонентов поставщика зависят от поставщика. Например, исправления для проблем платформы Android, раскрытые в бюллетене по безопасности за май 2019 года, были предоставлены партнерам Android как минимум еще 20 марта 2019 года*. Это много дополнительного времени.
*Примечание. Google может и часто обновляет исправления для последнего бюллетеня по безопасности вплоть до его публичного выпуска. Эти обновления могут появиться, если будут обнаружены новые уязвимости и ошибки, если Google решит удалить определенные исправления из ежемесячного бюллетеня. из-за поломки критически важных компонентов, если Google обновит патч для устранения ошибки, созданной предыдущей версией патча, и другие причины.
Почему мне нужно так долго ждать, чтобы получить обновление безопасности на мой телефон?
Хотя это правда, что партнеры Android (читай: все крупные OEM-производители) получали исправления безопасности задолго до своих релиза, многие с болью осознают, что они, возможно, не получат обновление безопасности в течение нескольких месяцев после его выпускать. Обычно это происходит по одной из четырех причин.
- OEM-производителям, возможно, придется внести серьезные технические изменения для установки исправления безопасности, поскольку оно может конфликтовать с существующим кодом.
- Поставщик медленно предоставляет исходный код обновлений для компонентов с закрытым исходным кодом.
- Сертификация перевозчика может занять время.
- Компании могут не захотеть выпускать обновление безопасности, не выпустив одновременно какую-либо функцию.
Хотя все это является вескими причинами, по которым компания не должна выпускать исправления безопасности, конечного пользователя не всегда заботит ни одно из них. Следует признать, что конечного пользователя не всегда заботят обновления безопасности, хотя они должны это делать. Такие инициативы, как Project Treble, расширенный Linux LTS, и Основная линия проекта помогают устранить технические трудности, связанные с объединением этих исправлений безопасности, но этого недостаточно, чтобы заставить OEM-производителей постоянно стремиться выпускать обновления. Благодаря универсальному образу ядра, или GKI, поставщикам SoC и OEM-производителям будет проще объединять исправления ядра Linux, хотя мы, вероятно, увидим первые устройства с GKI не раньше следующего года.
Но есть интересная информация, о которой большинство не знает: крупные OEM-производители должен предоставить «не менее четырех обновлений безопасности» в течение года с момента запуска устройства и в целом 2 года обновлений. Google не подтвердил эти конкретные условия, но компания подтвердила, что они «работали над включением исправлений безопасности в [свои] OEM-соглашения». Что касается устройств, рекомендованных Android Enterprise (AER), они должны получать обновления безопасности в течение 90 дней с момента выпуска в течение 3 лет. Для получения 5 лет обновлений безопасности. Устройства Android One должны получать обновления безопасности каждый месяц в течение 3 лет.
Что содержится в патче безопасности?
Исправление безопасности — это просто еще одно обновление, хотя, как правило, гораздо меньшее по размеру, с изменениями в отдельных платформах и системных модулях, а не с улучшениями или изменениями в масштабах всей системы. Каждый месяц Google предоставляет OEM-производителям устройств zip-файл, содержащий исправления для всех основных версий Android, которые в настоящее время поддерживаются, а также набор тестов безопасности. Этот набор тестов помогает OEM-производителям выявить пробелы в исправлениях безопасности, чтобы они ничего не пропустили и что патчи были объединены соответствующим образом. В течение месяца Google может внести незначительные изменения, например, решить, что один конкретный патч является необязательным, особенно если возникнут проблемы с его внедрением.
А как насчет кастомных ПЗУ?
Если на ваш смартфон не устанавливается много обновлений безопасности, это не обязательно означает, что вам лучше перейти на собственное ПЗУ. Хотя это правда, что вы будете получать обновления безопасности, которые в противном случае вы бы не получили, это только половина дела. Разблокировка загрузчика делает вас уязвимым для физических атак на ваше устройство, даже если со стороны программного обеспечения безопасность усилена. Это не значит, что вам не следует использовать пользовательские ПЗУ, просто есть и другие проблемы, связанные с их использованием, которые не применимы, если ваш загрузчик заблокирован. Если вас больше беспокоит программная часть, то вам все равно лучше использовать специальное ПЗУ, которое часто получает обновления безопасности.
Но помните, мы говорили о разнице между патчами YYYY-MM-01 и YYYY-MM-05? Уровень исправлений -05 содержит исправления ядра Linux, а также исправления поставщиков - исправления, применяемые к программному обеспечению с закрытым исходным кодом. Это означает, что разработчики пользовательских ПЗУ зависят от того, для какого OEM-производителя они разрабатывают, независимо от того, выпускает ли OEM обновленные объекты или нет. Это подходит для устройств, которые все еще обновляются производителем, но для устройств, которые этого не делают, примененные исправления можно применять только к платформе Android и ядру Linux. Вот почему LineageOS Доверительный интерфейс показывает два уровня исправлений безопасности: один для платформы, другой для поставщика. Несмотря на то, что пользовательские ПЗУ для неподдерживаемых устройств не могут полностью интегрировать все последние исправления, они будут более безопасными, чем старые устаревшие ПЗУ.