Закрыть объявление

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

Расширение тегирования памяти (MTE) — обязательная аппаратная функция процессоров на базе архитектуры Arm v9, обеспечивающая подробную информацию. informace о повреждении памяти и защищает от ошибок безопасности памяти. Как объясняет Google: «На высоком уровне MTE помечает каждое выделение/освобождение памяти дополнительными метаданными. Назначает маркер ячейке памяти, которую затем можно связать с указателями, ссылающимися на эту ячейку памяти. Во время выполнения процессор проверяет соответствие указателя и тегов метаданных каждый раз, когда они читаются и сохраняются».

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

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

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

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

Сегодня самое читаемое

.