Нові функції безпеки Android 7

Google вже випустила Android 7. Найближчим часом власники різноманітних пристроїв під управлінням Android отримають оновлення прошивки. Одними з перших нову версію отримають користувачі фірмових пристроїв Google Nexus 6P, 5X, 6, 9, Google Pixel C, Nexus Player, Android One. Так як Google поширює оновлення Android хвилями, не всі користувачі цих пристроїв зможуть оперативно отримати оновлення. Android 7 також зможуть отримати флагманські моделі пристроїв таких вендорів як Samsung (Galaxy S6 і S7), HTC (HTC 10, One A9 і One M9), Sony (Xperia Z3+, Xperia Z4 Tablet, Xperia Z5, Xperia X), LG (V20), Huawei. У новій версії Android з'явився ряд нових серйозних функцій безпеки (security features), про деякі з яких ми писали в попередніх постах. Перший був присвячений функції Direct Boot, яка спростить власникам пристроїв роботу з шифруванням. Другий містив інформацію про поліпшення безпеки ядра Linux, на якому заснована Android.

Функція Direct Boot відповідальна за своєчасну підготовку виконання системних файлів Android на зашифрованому пристрої. Так як попередні версії Android використовували метод шифрування Full Disc Encryption (FDE), тобто шифрування пам'яті пристрою цілком, завантажувачу необхідно було знати код розблокування пристрою для розшифровки системних файлів (в якості компонента ключа шифрування Android використовує код розблокування пристрою). У такій схемі користувачеві потрібно було ввести код розблокування двічі після перезавантаження пристрою: в перший раз для розблокування системних файлів, а другий для розблокування пристрою.

Своєю реалізацією Direct Boot зобов'язана того факту, що Android 7 переключилася з використання шифрування FDE шифрування per-file, тобто кожного окремого файлу. Така схема шифрування вже давно застосовується в iOS.

Under the hood, file-based encryption this enables improved user experience. With this new encryption scheme, the system storage area, as well as each user profile storage area, are all encrypted separately. Unlike with full-disk encryption, where all encrypted data was as a single unit, per-profile-based encryption enables the system to reboot normally into a functional state using just device keys. Essential apps can opt-in to run in a limited state after reboot, and when you enter your lock screen credential, these apps then get access your user data to provide full functionality.
Джерело

Інше security-поліпшення стосується сумнозвісного системного сервісу під назвою MediaServer. Цей компонент працює з підвищеними правами і відповідає за відтворення різноманітного мультимедійного контенту. Уразливості в ньому регулярно закривалися в оновленнях безпеки Android, про яких ми писали в блозі. Функція безпеки під назвою overflow sanitization допомагає закрити цілий клас уразливостей Android, які були виявлені в бібліотеці libstagefright. Дану бібліотеку використовує MediaServer. Інше поліпшення безпеки MediaServer стосується роботи всього мультимедійного стека компонентів, кожен з яких тепер перебуває в умовах ізоляції свого власного оточення sandbox.

First by incorporating integer overflow sanitization, part of Clang's UndefinedBehaviorSanitizer, we prevent an entire class of vulnerabilities, which comprise the majority of reported libstagefright bugs. As soon as an integer overflow is detected, we shut down the process so is an attack stopped. Second, we've modularized the media stack to put different components into individual sandboxes and tightened the privileges of each sandbox to have the minimum privileges required to perform its job. With this containment technique, a compromise in many parts of the stack grants the attacker access to significantly fewer permissions and significantly reduced exposed kernel attack surface.

Рис. В Android 7 сервіс MediaServer розбитий на різні підсистеми (мультимедійний стек), які працюють з обмеженими правами і в обмеженому оточенні (sandbox). Видно, що нова система присвоєння прав сервісів є набагато ефективною з точки зору безпеки, оскільки дозволяє задати додатком лише потрібні йому права. У новій версії бібліотека libstagefright функціонує в сервісі MediaCodecService, який має мінімальні права в системі. Таким чином, експлуатація вразливостей в цьому компоненті для Android 7 не принесе атакуючим ніяких результатів.

Нова функція Verified Boot суворо контролює цілісність завантажувача, запобігаючи завантаження пристрою у разі його компрометації. Поліпшення зазнав і механізм ізоляції додатків (sandbox) ядра Linux, відомий як seccomp. Крім цього, були поліпшені налаштування конфігурації підсистеми безпеки SELinux. Обидві ці заходи дозволяють повністю закрити механізм безпеки sandbox додатків, а також зменшити ризик успішної експлуатації інших методів атак, використовуваних експлойта.

Про поліпшення безпеки ядра Android ми писали раніше. Вони включають у себе реалізацію DEP для віртуальної пам'яті режиму ядра (Kernel DEP), функцію типу SMAP, яка дозволяє блокувати доступ до сторінок користувача віртуальної пам'яті для коду режиму ядра. Кілька нових функцій ставляться до техніки, відомої під назвою Attack Surface Reduction (ASR), вона дозволяє істотно скоротити успішність експлуатації цілого класу вразливостей. В рамках ASR. Android 7 підтримує видалення доступу за замовчуванням налагодження пристрою, а також забороняє додаткам використовувати деякі команди з використанням функції ioctl.

Поліпшеним став і механізм оновлень Android 7 «по повітрю» (OTA оновлення). Тепер розмір оновлень став більш компактним, а час установки істотно скоротилася. Скорочення часу установки обумовлюється ще й тим фактором, що в новій версії не буде етапу «підготовки додатків», який займав більше всього часу в процесі установки оновлення в попередніх версіях Android.

image
be secure.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.