Следующая новость
Предыдущая новость

Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo

15.09.2017 14:26
Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo

Содержание статьи

  • Google Play Protect
  • Сторонние источники приложений
  • Treble
  • Защита от даунгрейда
  • Фильтр seccomp для приложений
  • Защита ядра
  • Защита нативного кода
  • Скрытие информации об устройстве
  • Рандомизация MAC-адреса Wi-Fi
  • WebView в отдельном процессе
  • Пароль на доступ к опциям для разработчиков
  • Запрет на скрытое получение полномочий
  • Функция автозаполнения полей и форм
  • Режим инкогнито в клавиатуре
  • Одной строкой
  • Выводы

Android 8 — едва ли не самое важное обновление Android за последние годы. В Oreo появился модульный дизайн, позволяющий обновлять компоненты ОС независимо, система ограничения фоновой работы приложений, которая должна продлить время работы на одном заряде, а также множество улучшений безопасности, о которых мы и поговорим в этой статье.

Среди всех нововведений Android 8 особое место занимают три:

  • Treble — новый модульный HAL (Hardware Abstraction Layer), который позволяет четко отделить от остальной части ОС низкоуровневый код ОС, зависящий от производителя смартфона и чипсета;
  • система ограничений фонового исполнения приложений, которая должна помочь в борьбе со жрущими аккумулятор приложениями, запрещая их фоновое исполнение (если кратко: фоновый сервис может работать не дольше пяти минут, а приложение не будет разбужено или запущено от внешнего общесистемного события);
  • Google Play Protect и другие нововведения, направленные на защиту пользователя от зловредных приложений, установленных как из Google Play, так и из сторонних источников.

С системой ограничений фонового исполнения все более или менее понятно, а о Treble, который в перспективе может кардинально улучшить ситуацию с обновлениями Android, мы уже писали. Но мы снова коснемся его в контексте обсуждения безопасности.

Google Play Protect

В 2012 году, практически одновременно с релизом Android 4.2, Google запустила облачный антивирус с неброским именем Verify Apps. Антивирус был встроен в сервисы Google Play, которые установлены почти на каждом Android-смартфоне как часть набора приложений Google, поэтому одно обновление сервисов Google Play быстро распространило антивирус на миллионы устройств без ведома пользователей.

Сегодня с помощью Verify Apps Google сканирует миллиарды Android-устройств (два миллиарда в сумме и один миллиард ежедневно) и постоянно об этом отчитывается, гордо рассказывая о новых цифрах. Антивирус работает всегда и при включенном интернете проверяет каждое установленное приложение, в том числе те, что пользователь ставит с карты памяти или из альтернативных маркетов.

Большинство юзеров об этом даже не подозревают и, наслушавшись историй о тотальной небезопасности Android, продолжают устанавливать на смартфоны сторонние антивирусы. В некоторых случаях это оказывается пустой тратой денег, в других оборачивается ложными срабатываниями, когда антивирус ругается на все, что может отправлять СМС, показывать рекламу в шторке или использовать оверлеи. В третьих (и это наиболее частый вариант) приводит к замедлению устройства и повышенному расходу заряда аккумулятора.

Чтобы решить эту проблему и показать, что на самом деле в смартфоне уже есть антивирус, Google придумала штуку под названием Google Play Protect. Это не что иное, как интерфейс, позволяющий оценить работу Verify Apps. В Android Oreo он доступен в разделе настроек «Безопасность», в более старых версиях — в разделе «Google → Безопасность». Ценность его невелика, но он позволяет быстро узнать, что с твоим смартфоном все в порядке и он регулярно проверяется (а если точнее — во время зарядки).

Google Play Protect
Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo
Google Play Protect
Google Play Protect

Вместе с новым интерфейсом Google вытащила наружу еще несколько индикаторов работы антивируса. Версия Play Store для Oreo показывает статус проверки приложения на его странице, а также выводит красивый зеленый щит с надписью «Все хорошо, парень, ты защищен» в списке установленных приложений.

Кроме того, разработчики сторонних приложений теперь имеют доступ к API Verify Apps, точнее к его маленькой частичке, которая позволяет проверить, есть ли на смартфоне вирусы, и запретить установку своего приложения, если это так.

Сторонние источники приложений

Процесс установки приложений из сторонних источников также слегка изменился. Теперь, чтобы установить приложение не из Play Store, нет необходимости активировать переключатель «Неизвестные источники» в разделе «Безопасность» в настройках. Вместо этого необходимо дать право устанавливать APK отдельно взятым приложениям.

Другими словами, если ты хочешь, чтобы Amazon Appstore и F-Droid могли устанавливать приложения, ты должен дать каждому из них такое право. И это действительно правильный механизм с одним «небольшим» минусом: чтобы установить Amazon Appstore, тебе нужен браузер, а это значит, что ему тоже необходимо дать право установки приложений. После этого весь механизм защиты летит к черту. Хотя, конечно, тебе все еще надо собственноручно подтверждать каждую установку приложения.

Treble

В Android 8 впервые появилась реализация инициативы Treble, которая стала самой крупной переработкой внутренних компонентов Android со времен Android 4.0. Смысл Treble заключается в разделении Android на две независимые части, одна из которых обеспечивает связь с железом (ядро Linux, драйверы и другие низкоуровневые компоненты ОС), а другая включает в себя саму операционную систему Android.

Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo
Логическое деление Android до Treble и после
Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo
Логическое деление Android до Treble и после
Логическое деление Android до Treble и после

В первую очередь Treble нацелен на решение проблемы обновлений и фрагментации. Производителям смартфонов теперь не нужно ждать, пока производители чипсета и другого оборудования соизволят выпустить драйверы и другие компоненты HAL для новой версии Android. Вместо этого они могут портировать Android на уже имеющуюся основу, и в теории он будет прекрасно работать.

Разработчики Android заявляют, что Treble также способен решить многие проблемы безопасности. Разработчики не только разделили ОС на две части, но и реорганизовали платформенно зависимые компоненты ОС. Каждый из них теперь работает в жестко изолированной песочнице и общается с компонентами ОС через типизированные каналы с проверкой полномочий (для этого в IPC-механизм Binder внесены соответствующие правки).

Устройства, изначально работающие на Android 8, будут иметь преимущества Treble из коробки, но с девайсами, которые получат Android 8 в форме обновления, все не так просто. Google сообщает, что работает с крупными производителями устройств, чтобы реализовать Treble в рамках обновления, но в то же время некоторые устройства самой Google включают в себя неполную реализацию Treble.

Защита от даунгрейда

Еще в Android 4.4 Google реализовала механизм Verified Boot, который проверяет целостность компонентов ОС на всех этапах загрузки смартфона и позволяет запретить загрузку, если обнаружится, что загрузчик, ядро или ОС были модифицированы. В следующих версиях Android механизм непрерывно совершенствовался, но в нем всегда была одна проблема — возможность сделать даунгрейд.

Даунгрейд опасен тем, что может быть использован для получения доступа к смартфону с помощью «возвращения старых багов». Допустим, человек украл телефон, понял, что он зашифрован, запаролен, а загрузчик заблокирован. Кастомную прошивку он установить не может (из-за несовпадения сертификата), но может откатить смартфон к старой версии Android, в которой был баг, позволяющий обойти блокировщик экрана (такой был в прошивке Samsung, например), и с его помощью получает доступ к содержимому.

Некоторые производители пытались защититься от даунгрейда своими методами. В Android 8 теперь есть официальная реализация этой защиты. Но она отключается при разблокировке загрузчика штатными средствами.

Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo
Метаданные Verified Boot теперь включают в себя Rollback Index для защиты от отката

Фильтр seccomp для приложений

Seccomp — это технология ядра Linux, которая позволяет ограничить список доступных приложению (и в перспективе опасных) системных вызовов. Например, можно запретить приложению использовать системный вызов execve, который часто применяют эксплоиты, или заблокировать системный вызов listen, с помощью которого можно повесить на сетевой порт бэкдор.

Технология используется в Android уже достаточно давно, но применяется в основном к системным компонентам. В Android 8 seccomp-фильтр внедрен в zygote — процесс, который порождает процессы всех установленных в систему приложений.

Разработчики проанализировали, какие системные вызовы нужны для загрузки ОС и работы большинства приложений, а затем отсекли лишние. В итоге в черный список попали 17 из 271 системного вызова на ARM64 и 70 из 364 на ARM. В списке оказался и системный вызов для подключения swap-раздела, так что, возможно, в Android 8 приложения для активации свопа не заведутся.

Безопасность Android 8. Объясняем все новшества в механизмах защиты Oreo
Краш системы при попытке выполнить неразрешенный системный вызов

Продолжение статьи доступно только подписчикам

Cтатьи из последних выпусков журнала можно покупать отдельно только через два месяца после публикации. Чтобы читать эту статью, необходимо купить подписку.

Подпишись на журнал «Хакер» по выгодной цене!

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

1 год

4590 р.

Экономия 1400 рублей!

1 месяц

490 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости