Зачыніць аб'яву

Бяспека памяці ў апошні час была галоўным прыярытэтам для Google, паколькі памылкі памяці, як правіла, з'яўляюцца аднымі з самых сур'ёзных пры распрацоўцы праграмнага забеспячэння. Фактычна, уразлівасці ў гэтай галіне былі прычынай большасці крытычных уразлівасцяў Androidu да мінулага года, калі Google стварыў значную частку новага ўласнага кода Androidна мове праграмавання Rust замест C/C++. Гігант праграмнага забеспячэння працуе над падтрымкай іншых сродкаў памяншэння ўразлівасцяў памяці ў сваёй сістэме, адна з якіх называецца маркіроўка памяці. На падтрымоўваных прыладах з сістэмай Android 14 можа з'явіцца новы параметр пад назвай Пашыраная абарона памяці, які можа пераключаць гэту функцыю.

Пашырэнне тэгаў памяці (MTE) - гэта абавязковая апаратная функцыя працэсараў на аснове архітэктуры Arm v9, якая забяспечвае падрабязныя informace аб пашкоджанні памяці і абараняе ад памылак бяспекі памяці. Як тлумачыць Google: «На высокім узроўні MTE пазначае кожнае размеркаванне/вызваленне памяці дадатковымі метададзенымі. Прызначае маркер месца ў памяці, якое затым можа быць звязана з паказальнікамі, якія спасылаюцца на гэта месца ў памяці. Падчас выканання працэсар правярае, што паказальнік і тэгі метададзеных супадаюць пры кожным чытанні і захаванні».

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

Do Androidu 13 Google дадаў бінарны інтэрфейс прыкладання Userspace (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" ", затым новая старонка 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 годзе

Самая чытаная сёння

.