В Android 14 может быть добавлена ​​расширенная функция защиты памяти, чтобы защитить ваше устройство от ошибок безопасности памяти.

В Android 14 может быть добавлена ​​новая бета-функция под названием «расширенная защита памяти», которая может защитить от ошибок безопасности памяти на совместимых устройствах.

В последнее время безопасность памяти стала основным приоритетом для Google, поскольку ошибки безопасности памяти, как правило, являются одними из самых серьезных ошибок при разработке программного обеспечения. Фактически, уязвимости безопасности памяти раньше были причиной большинства серьезных проблем с ОС Android. уязвимостей до 2022 года, когда Google написал значительную часть новой нативной версии Android. код в язык программирования ржавчина вместо C/С++. Google работает над поддержкой других способов устранения уязвимостей безопасности памяти в Android, один из которых называется маркировкой памяти. На поддерживаемых устройствах работает Андроид 14, возможно, существует новый параметр «расширенная защита памяти», который может переключать эту функцию.

Расширение тегирования памяти (MTE) — это обязательная аппаратная функция процессоров Arm v9, которая защищает от памяти. ошибки безопасности (с небольшими затратами на производительность во время выполнения), предоставляя подробную информацию о памяти. нарушения.

Как объясняет Google«На высоком уровне MTE помечает каждое выделение/освобождение памяти дополнительными метаданными. Он присваивает ячейке памяти тег, который затем можно связать с указателями, ссылающимися на эту ячейку памяти. Во время выполнения ЦП проверяет соответствие указателя и тегов метаданных при каждой загрузке и сохранении».

Google уже несколько выпусков работает над поддержкой MTE во всем стеке программного обеспечения Android. В Android 12 scudo, распределитель кучи Android, добавил поддержку трех режимов работы MTE на совместимых устройствах: синхронный режим, асинхронный режим и асимметричный режим. Google также позволил включить MTE для системных процессов во время сборки или через свойства системы и/или переменные среды. Приложения могут согласиться на поддержку MTE через Android: memtagMode атрибут. Когда MTE включен для процессов в Android, целые классы ошибок безопасности памяти, такие как использование после освобождения и переполнение буфера, вызывают сбой, а не незаметное повреждение памяти.

В Андроид 13Google добавил ABI для пользовательского пространства для передачи запрошенного режима работы MTE загрузчику. Это можно использовать для включения MTE на совместимых устройствах, которые не поставляются с включенной функцией по умолчанию. или, альтернативно, его можно использовать для его отключения на совместимых устройствах, на которых он включен с помощью по умолчанию. Установка для системного свойства ro.arm64.memtag.bootctl_supported значения «true» в Android 13 сообщит системе, что загрузчик поддерживает ABI, а также вызывает появление кнопки в меню «Параметры разработчика», которая позволяет пользователю включить MTE на следующем этапе. перезагрузить. Это было нацелено на разработчиков, которые хотели протестировать поведение своих приложений с включенным MTE.

Однако в Android 14 для включения MTE на совместимых устройствах может потребоваться больше времени на погружение в параметры разработчика. Если устройство оснащено процессором Arm v8.5+ с поддержкой MTE, реализация устройства поддерживает ABI для передачи запрошенного рабочего режима MTE загрузчику, а также новый Для системного свойства ro.arm64.memtag.bootctl_settings_toggle установлено значение true, тогда может появиться новая страница «расширенной защиты памяти» в «Настройки» > «Безопасность и конфиденциальность» > «Дополнительная безопасность». настройки. Эту страницу также можно запустить через новый ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS намеренное действие.

Примечательно, что чипсет Tensor G2 в Гугл Пиксель 7 В серии используются ядра процессора Arm v8.2, поэтому они не поддерживают MTE. Если в предстоящей серии Google Pixel 8 будут использоваться новые ядра процессора Arm v9, как и во многих других флагманских устройствах Android, то у них будет оборудование, способное поддерживать MTE. Однако еще неизвестно, попадет ли эта функция «расширенной защиты памяти» в стабильную версию.

Спасибо исследователю безопасности @flawedworlddev за помощь в написании этой статьи!