Закрити оголошення

Останнім часом безпека пам’яті є головним пріоритетом для Google, оскільки помилки пам’яті, як правило, є одними з найсерйозніших у розробці програмного забезпечення. Насправді вразливості в цій області спричинили більшість критичних вразливостей Androidu до минулого року, коли Google створив значну частину нового рідного коду Androidна мові програмування Rust замість C/C++. Програмний гігант працює над підтримкою інших засобів пом’якшення вразливостей пам’яті у своїй системі, одним із яких є маркування пам’яті. На підтримуваних пристроях із системою Android 14 може з’явитися нове налаштування під назвою Розширений захист пам’яті, яке може перемикати цю функцію.

Розширення тегування пам’яті (MTE) є обов’язковою апаратною функцією процесорів на основі архітектури Arm v9, яка забезпечує детальну informace про пошкодження пам'яті та захищає від помилок безпеки пам'яті. Як пояснює Google: «На високому рівні MTE позначає кожне виділення/звільнення пам’яті додатковими метаданими. Призначає маркер ділянці пам’яті, який потім можна пов’язати з покажчиками, що посилаються на цю ділянку пам’яті. Під час виконання процесор перевіряє відповідність покажчика та тегів метаданих кожного разу, коли він читається та зберігається».

Google працює над підтримкою MTE у всьому пакеті програмного забезпечення Android довго. до Androidu 12 додав розподільник пам’яті Scudo та підтримку трьох режимів роботи MTE на сумісних пристроях: синхронний режим, асинхронний режим та асиметричний режим. Компанія також дозволила ввімкнути MTE для системних процесів через властивості системи та/або змінні середовища. Програми можуть додавати підтримку MTE через атрибут android:memtagMode. Коли MTE увімкнено для процесів у Androidu, цілі класи помилок безпеки пам’яті, як-от Use-After-Free та переповнення буфера, призведуть до збоїв замість тихого пошкодження пам’яті.

Do Androidu 13 Google додав бінарний інтерфейс додатка користувача (ABI) для передачі бажаного режиму роботи MTE завантажувачу. Це можна використовувати, щоб увімкнути MTE на сумісних пристроях, які не постачаються з увімкненим MTE за замовчуванням, або його можна використати, щоб вимкнути його на сумісних пристроях, на яких він увімкнений за замовчуванням. Встановлення системної властивості ro.arm64.memtag.bootctl_supported на «true» у системі Android 13 повідомив системі, що завантажувач підтримує ABI, а також активував кнопку в меню параметрів розробника, яка дозволяла користувачеві ввімкнути MTE під час наступного перезавантаження.

V Androidu 14 однак увімкнення MTE на сумісних пристроях уже може вимагати занурення в меню параметрів розробника. Якщо пристрій використовує процесор Arm v8.5+ із підтримкою MTE, реалізація пристрою підтримує ABI для передачі бажаного режиму роботи MTE завантажувачу, а нова системна властивість ro.arm64.memtag.bootctl_settings_toggle має значення «true» , а потім нова сторінка Advanced memory protection v Налаштування→Безпека та конфіденційність→Додаткові налаштування безпеки. Цю сторінку також можна запустити за допомогою нової дії ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS.

Цікаво, що чіпсет Tensor G2, який працює в серії Google Pixel 7, використовує процесорні ядра Arm v8.2, що означає, що він не підтримує MTE. Якщо майбутня серія Google Pixel 8 використовуватиме нові ядра Arm v9, як і інші флагманські серії androidтелефонів, то їх апаратне забезпечення має підтримувати MTE. Однак залишається відкритим питання, чи потрапить функція «розширеного захисту пам’яті» в стабільну версію Androidу 14 році

Найчитаніший сьогодні

.