Сегодня в выпуске: «Фуксия» — новая операционка от Google, способная работать на всем, начиная от микроскопического процессора SIM-карты и заканчивая стационарными ПК, финальная версия Android 7.0 Nougat и начало работы над CyanogenMod 14, подробности о начинке очков дополненной реальности Microsoft HoloLens. А также: исследование нашумевшего iOS-трояна Pegasus, подробности реализации Pangu 9 и тест мобильных антивирусов на взлом. Приятного чтения.

 

События

«Google разрабатывает замену для Android», «Новая мобильная операционка от Google», «Google больше не нужен Android» — такими были заголовки статей 12 августа. А все потому, что сотрудники Google то ли случайно, то ли намеренно открыли доступ к репозиторию находящейся в начальной стадии разработки операционной системы Fuchsia («Фуксия»).

Несмотря на отсутствие документации на ОС, журналисты выяснили, что «Фуксия» базируется на минималистичном ядре LK, способном работать в условиях очень малого объема ОЗУ и низкой производительности процессора. Поверх LK реализовано ядро Magenta, обеспечивающее полноценное окружение исполнения для реализации таких концепций, как процессы, пользователи и права доступа. Поверх него работает фреймворк Flutter, предназначенный для разработки интерфейса на языке Dart, который Google в свое время продвигала как замену JavaScript.

Операционка способна работать на процессорах ARM, ARM64 и x86-64, так что предположение о том, что Google разрабатывает если не мобильную ОС на замену Android, то универсальную ОС на замену всего и вся, вполне оправданно. Проблема только в том, что с точки зрения бизнеса это был бы очень глупый шаг, так что на самом деле это либо чисто исследовательский проект, либо нечто, нацеленное на «интернет вещей» (IoT).

Процесс загрузки Fuchsia
Процесс загрузки Fuchsia
 

Релизы

22 августа, после пяти preview-версий, Google выкатила долгожданную Android 7.0 Nougat. Изменения в ней коснулись не только внешнего облика и безопасности — появились давно ожидаемые функции, такие как многооконный режим, ночной режим и возможность отправки ответа через уведомление. Android 7.0 наконец-то получил поддержку нового графического API Vulkan, полноценную поддержку режима виртуальной реальности (Daydream), систему фоновых обновлений, которая устанавливает новую версию прошивки рядом с основной, защищая от ошибок прошивки, и позволяет откатиться к старой версии. А после обновления прошивки теперь не надо будет ждать «оптимизацию приложений» благодаря гибридному JIT/AOT-компилятору.

Подробно обо всех этих новшествах мы уже писали в дайджестах за прошлые месяцы, а также в статье «Android N: Десктоп, энергосбережение и гибридный компилятор». Поэтому не будем повторяться, скажем лишь, что Google уже выложила исходные тексты новой версии Android в свободный доступ, а разработчики CyanogenMod скопировали их в собственный репозиторий и начали работу над CM 14. Одновременно с выпуском новой версии системы Google заявила о переходе к более строгому и частому плану выпуска новых версий ОС, который предполагает ежеквартальное обновление операционной системы.

Какие устройства получат обновление до Nougat, как обычно, не очень понятно. Но можно сказать наверняка, что владельцам устройств на базе Qualcomm Snapdragon 800/801 (Galaxy S5, OnePlus One, LG G3) официальную прошивку ждать не стоит: для сертификации со стороны Google на предмет совместимости с Nougat устройство должно обеспечивать поддержку OpenGL 3.1 и Vulkan, а Qualcomm отказалась выпускать обновленные драйверы для «устаревших» чипсетов.

Режим разделения экрана в Android 7.0
Режим разделения экрана в Android 7.0

Другой заметный релиз августа касается CyanogenMod — это большое обновление CM 13 до версии ZNH5Y. Новая версия базируется на исходном коде Android 6.0.1 r61, включающем в себя множество различных багфиксов, в том числе фиксы знаменитой уязвимости QuadRooter в чипах Qualcomm. Однако разработчики подчеркивают, что исправлена она далеко не для всех устройств, — уязвимость выявлена в бинарном компоненте, который сами разработчики CyanogenMod исправить не могут, а производитель уже перестал выпускать обновления для устаревших чипов.

Основные новшества сборки ZNH5Y в сравнении с предыдущей версией:

  • новое оформление экрана загрузки после обновления прошивки;
  • возможность автоматически отключать точку доступа через указанный промежуток времени после дисконнекта последнего клиента;
  • тонкая настройка светодиода для разных уведомлений;
  • возможность запретить любому приложению доступ в сеть по Wi-Fi, мобильным сетям или полностью (Конфиденциальность -> Защищенный режим);
  • для подключенных Bluetooth-устройств теперь отображается индикатор заряда;
  • погода теперь показывается из разных источников с помощью подключаемого плагина;
  • на экране блокировки теперь можно разместить сведения о погоде и живые обои (Экран блокировки -> Живой экран блокировки);
  • Snap Camera — фирменное приложение камеры CyanogenMod, использующее особые функции чипов Qualcomm Snapdragon;
  • Gello Browser — браузер, включающий в себя встроенный блокировщик рекламы, режим энергосбережения и возможность сохранения страниц для офлайн-чтения.
Gello Browser
Gello Browser

26 августа стала доступна Maru OS 0.2.4, новая версия операционки, совмещающей в себе Android и дистрибутив Debian, который становится доступен при подключении смартфона к монитору или телевизору. Единственное новшество свежей версии — полностью открытый исходный код. Так что теперь любой может присоединиться к разработке и начать процесс портирования ОС на другие устройства (сейчас Maru OS доступна только для Nexus 5).

 

Инструменты

  • Verify.ly — простой сервис для анализа приложений на аномальное поведение или утечки данных. Показывает, что был использован интернет (с шифрованием или нет), было обращение к GPS, получены личные данные пользователя, какие сторонние библиотеки использует приложение. Пока что любое приложение для проверки загрузить нельзя, так что приходится довольствоваться имеющейся базой.
  • APKiD — инструмент для проверки APK на предмет применения обфускаторов, упаковщиков и модификации кода. Другими словами, APKiD позволяет выяснить две вещи: содержит ли приложение средства защиты от реверсеров и приложил ли реверсер к нему руку. Вводная статья об инструменте от его автора.
Анализ Pokemon Go с помощью Verify.ly
Анализ Pokemon Go с помощью Verify.ly
 

Устройства

«Внутри мобильного процессора Exynos M1 найдена нейронная сеть» — еще один громкий заголовок августа. К сожалению, многие СМИ так и не удосужились разобраться, что это на самом деле такое и зачем. В действительности небольшая нейронная сеть используется для предсказания следующих команд процессора с целью оптимизации их исполнения с помощью конвейера (например, чтобы не сбрасывать состояние конвейера при переходах на другие участки кода). Так что пока никаких скайнетов, к сожалению. Только оптимизации, только хардкор.

Блок предсказания инструкций Exynos M1
Блок предсказания инструкций Exynos M1

Еще одна интересная новость, касающаяся внутреннего устройства мобильных гаджетов, пришла от Microsoft. На конференции Hot Chips, посвященной полупроводниковой промышленности и микропроцессорам, представители компании рассказали, как устроен внутри шлем дополненной реальности HoloLens.

Сердце устройства — так называемый голографический блок обработки данных (Holographic Processing Unit, HBU), представляющий собой специально разработанный для HoloLens процессор, который состоит из 24 DSP-ядер Tensilica и включает в себя 1 Гбайт памяти DDR3 и 8 Мбайт SRAM. Производительность — триллион операций в секунду, размер — 12 x 12 мм, энергопотребление — менее 10 Вт.

HBU собирает данные с датчиков устройства, рассчитывает положение головы, рук, положение изображения накладываемой на реальные объекты картинки и передает эти данные чипсету Intel Atom x86 Cherry Trail, который оснащен 1 Гбайт оперативной памяти и работает на базе Windows 10.

По словам создателей, такая архитектура позволила достичь 200-кратного прироста производительности используемых в HoloLens алгоритмов в сравнении с исключительно программным расчетом на том же Intel Atom.

Holographic Processing Unit
Holographic Processing Unit
 

Почитать

Technical Analysis of Pegasus Spyware — анализ того самого трояна Pegasus, использующего сразу три уязвимости iOS для захвата контроля над iPhone. Pegasus эксплуатирует брешь в WebKit, чтобы попасть на устройство жертвы после открытия страницы в веб-браузере, затем загружает payload в ядро, чтобы получить джейлбрейк, и прописывает в систему бэкдор.

Бэкдор использует в своей работе Cydia Substrate для перехвата контроля над системными приложениями и может получить доступ к данным о звонках, календарю, адресной книге, узнать местоположение устройства, извлечь пароли из keyring и данные многих популярных приложений, среди которых Gmail, Viber, Facebook, Telegram, Skype, Vkontakte. В качестве вишенки на торте — механизм удаленного самоуничтожения, удаляющий все следы зловреда из системы.

По оценке Lookout, троян был в использовании уже более года и способен поражать устройства начиная с iPhone 4s и заканчивая iPhone 6s, работающие под управлением iOS 7 и выше. Клиенты компании, разработавшей троян, NSO Group, — авторитарные правительства разных стран.

Android: protecting the kernel — интересное исследование уязвимостей Android с 2014 по 2016 год. За два года произошел существенный сдвиг в сторону выявления багов в ядре Linux. Если в 2014-м 96% уязвимостей были найдены в коде Android, то в 2016-м процент багов, обнаруженных в ядре, возрос до 36%. Причина этого в первую очередь в применении SELinux — механизма, существенно осложняющего взлом с помощью уязвимостей в пространстве пользователя.

Но что более интересно — 85% багов, найденных в ядре, относятся вовсе не к коду ядра Linux, а к коду закрытых драйверов, поставляемых разработчиками мобильных чипсетов. И более половины этих багов — глупейшие ошибки, такие как отсутствие проверки на длину массива или проверки на NULL.

Причины возникновения уязвимостей в ядре Android
Причины возникновения уязвимостей в ядре Android

Intelligence Services are Scary af — на удивление хорошо написанная статья security-ресерчера The Grugq о современных мессенджерах и их роли в координации атак террористов. В статье он высказывает мысль, что мессенджеры с end-to-end шифрованием не только не мешают борьбе с террористами, но и, наоборот, помогают спецслужбам выследить их.

Его идея очень проста: несмотря на то что современные мессенджеры могут обеспечить полную защиту от чтения сообщений, многие из них оставляют открытыми метаданные самой переписки: какой номер, с кем и когда вступал в контакт. Именно эта информация нужна спецслужбам в первую очередь, и они ее могут получить, обратившись к компаниям, владеющим сервисами, или к Google/Apple, сервисы которых используют Telegram и WhatsApp для отсылки push-уведомлений. В результате, излишне полагаясь на «безопасность» мессенджеров, террористы сами становятся виновниками утечек данных.

Demystifying the Secure Enclave Processor — рассказ о внутреннем устройстве Secure Enclave Processor (SEP), специального сопроцессора чипсетов Apple, отвечающего за хранение ключей шифрования и выполнение криптографических операций. Внутреннее устройство процессора хранится в тайне, и полная информация о том, как он работает, доступна только инженерам Apple. Однако авторам доклада удалось выяснить множество подробностей.

Secure Enclave реализован на базе процессорного ядра ARM v7a, работающего на частоте 300–400 МГц. В нем используется специальная ОС на базе микроядра L4 (SEPOS), которая включает в себя собственные драйверы, сервисы и приложения. Постоянная и оперативная память процессора шифруются с помощью AES. Основной процессор не может получить к ней доступ, поэтому для обмена данными между основным процессором и SEP используется Mailbox — сообщения длиной 8 байт.

Документ охватывает множество различных аспектов работы SEP, от инициализации и формата сообщений до архитектуры SEPOS и API, используемого iOS для общения с SEP (он реализован в драйвере ядра iOS AppleSEPManager.kext).

Архитектура SEPOS
Архитектура SEPOS

Pangu 9 Internals — слайды с презентации, посвященной внутреннему устройству утилиты для джейлбрейка Pangu 9 и нескольких предыдущих версий утилиты. Участники команды Pangu рассказывают о том, что для взлома iOS 7.1 было достаточно сформировать динамическую библиотеку, а затем подписать ее сертификатом с истекшим сроком и загрузить в системный процесс, указав путь до библиотеки в системной переменной DYLD_INSERT_LIBRARIES. Далее библиотека эксплуатировала уязвимость в ядре для получения безграничных прав в системе.

Apple закрыла данную брешь, реализовав механизм Team ID validation, запрещающий загрузку сторонних библиотек. Однако для некоторых сервисов компания сделала исключение, чем и воспользовались Pangu для реализации джейлбрейка iOS 8. Pangu 8 внедрялся в neagent, реализующий поддержку сторонних VPN-сервисов.

Apple исправила баг в iOS 8.3. Поэтому ребята из Pangu пошли другим путем и воспользовались уязвимостью в системе обмена сообщениями XPC, а точнее реализации системы обработки сообщений в демоне assetsd. Это старая как мир ошибка обработки путей к файлам, называемая Path Traversal Vulnerability, — передав демону особым образом сформированный путь, можно было перезаписать любой системный файл.

Данную уязвимость Apple закрыла в iOS 9, поэтому хакеры вновь вернулись к идее использовать механизм загрузки внешних библиотек и в этот раз сформировали цепочку атак, эксплуатирующих сразу несколько уязвимостей. Pangu 9 подключал Developer Disk Image (DDI) с устаревшей уязвимой (но подписанной ключом Apple) версией демона vpnagent, далее использовал очередную уязвимость в XPC для того, чтобы скопировать vpnagent в систему, подключал дебаггер к vpnagent, в результате чего в последний можно было загрузить любую библиотеку на манер Pangu 7. Затем библиотека использовала уязвимость в ядре для отключения sandbox’а и получения полных прав в системе.

Smartphone Antivirus and Security Applications Under Fire — презентация об исследовании защищенности антивирусов, представленная на конференции DEF CON 24. Исследователи из Team[SIK] попытались провести разные типы атак на антивирусные приложения и добились успехов.

Оказалось, что антивирус AndroHelm можно легко взломать, изменив конфигурационный файл, а также заставить выполнить СМС-команду (например, вайп), просто отправив СМС без указания пароля. Антивирус ESET также оказался уязвим к взлому (с целью активации платных функций) с помощью анализа трафика, а антивирус Касперского — к удаленному внедрению кода с помощью атаки MITM.

Почти все известные антивирусы уязвимы к разному типу атак
Почти все известные антивирусы уязвимы к разному типу атак

Комментарии

Подпишитесь на ][, чтобы участвовать в обсуждении

Обсуждение этой статьи доступно только нашим подписчикам. Вы можете войти в свой аккаунт или зарегистрироваться и оплатить подписку, чтобы свободно участвовать в обсуждении.

Check Also

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update …