Operētājsistēmā Android 14 var tikt pievienota uzlabota atmiņas aizsardzības funkcija, lai aizsargātu ierīci no atmiņas drošības kļūdām

Android 14 var pievienot jaunu beta funkciju, ko sauc par "uzlaboto atmiņas aizsardzību", kas var aizsargāt pret atmiņas drošības kļūdām saderīgās ierīcēs.

Atmiņas drošība pēdējā laikā ir bijusi Google galvenā prioritāte, jo atmiņas drošības kļūdas mēdz būt dažas no vissmagākajām programmatūras izstrādes kļūdām. Faktiski atmiņas drošības ievainojamības veidoja lielāko daļu nopietnu Android ievainojamības līdz 2022. gadam, kad Google ierakstīja ievērojamu daļu no Android jaunās versijas. kods sadaļā Rust programmēšanas valoda C/C++ vietā. Google ir strādājis, lai atbalstītu citus līdzekļus, lai mazinātu atmiņas drošības ievainojamības operētājsistēmā Android, no kurām vienu sauc par atmiņas marķēšanu. Darbojas atbalstītajās ierīcēs Android 14, iespējams, ir jauns “uzlabotās atmiņas aizsardzības” iestatījums, kas varētu pārslēgt šo funkciju.

Memory Tagging Extension (MTE) ir obligāta Arm v9 CPU aparatūras funkcija, kas aizsargā pret atmiņu. drošības kļūdas (ar nelielām izpildlaika veiktspējas izmaksām), sniedzot detalizētu informāciju par atmiņu pārkāpumiem.

Kā Google paskaidro, “augstā līmenī MTE atzīmē katru atmiņas piešķiršanu/atdalīšanu ar papildu metadatiem. Tas piešķir atmiņu atmiņas vietai, ko pēc tam var saistīt ar norādēm, kas atsaucas uz šo atmiņas vietu. Izpildes laikā centrālais procesors pārbauda, ​​vai rādītājs un metadatu tagi atbilst katrai ielādei un krātuvei.

Google jau vairākus laidienus ir strādājis, lai atbalstītu MTE visā Android programmatūras kaudzē. Operētājsistēmā Android 12 scudo, Android kaudzes sadalītājs, pievienoja atbalstu trim MTE darbības režīmiem saderīgās ierīcēs: sinhronais režīms, asinhronais režīms un asimetrisks režīms. Google arī ļāva iespējot MTE sistēmas procesiem izveides laikā vai izmantojot sistēmas rekvizītus un/vai vides mainīgos. Lietojumprogrammas var izvēlēties atbalstīt MTE, izmantojot Android: memtagMode atribūts. Ja operētājsistēmā Android procesiem ir iespējots MTE, visas atmiņas drošības kļūdu klases, piemēram, izmantošana pēc brīvas lietošanas un bufera pārpildes, izraisa avāriju, nevis klusu atmiņu.

In Android 13, Google pievienoja lietotāja telpai ABI, lai paziņotu par pieprasīto MTE darbības režīmu sāknēšanas ielādei. To var izmantot, lai iespējotu MTE saderīgās ierīcēs, kas netiek piegādātas ar iespējotu pēc noklusējuma, vai arī to var izmantot, lai to atspējotu saderīgās ierīcēs, kurās tas ir iespējots noklusējuma. Iestatot sistēmas rekvizītu ro.arm64.memtag.bootctl_supported uz “true” operētājsistēmā Android 13, sistēma informēs, ka sāknēšanas ielādētājs atbalsta ABI un arī aktivizē pogu, kas parādās izstrādātāja opciju izvēlnē, kas ļāva lietotājam iespējot MTE nākamajā pārstartēt. Tas bija paredzēts izstrādātājiem, kuri vēlējās pārbaudīt savu lietotņu darbību ar iespējotu MTE.

Tomēr operētājsistēmā Android 14, lai iespējotu MTE saderīgās ierīcēs, var būt nepieciešams ilgāk izpētīt izstrādātāja opcijas. Ja ierīcei ir Arm v8.5+ centrālais procesors ar MTE atbalstu, ierīces ieviešana atbalsta ABI pieprasītā MTE darbības režīma saziņai ar sāknēšanas ielādētāju, un jaunais sistēmas rekvizīts “ro.arm64.memtag.bootctl_settings_toggle” ir iestatīts uz True, tad sadaļā Iestatījumi > Drošība un privātums > Papildu drošība var tikt parādīta jauna lapa “Papildu atmiņas aizsardzība”. iestatījumi. Šo lapu var atvērt arī, izmantojot jauno ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS tīša darbība.

Jo īpaši Tensor G2 mikroshēmojums Google Pixel 7 sērija izmanto Arm v8.2 CPU kodolus, tāpēc tie neatbalsta MTE. Ja gaidāmajā Google Pixel 8 sērijā tiek izmantoti jauni Arm v9 CPU kodoli, tāpat kā daudzas citas vadošās Android ierīces, tām būtu aparatūra, kas spēj atbalstīt MTE. Tomēr joprojām ir redzams, vai šī "uzlabotās atmiņas aizsardzības" funkcija patiešām nonāks stabilā versijā.

Paldies drošības pētniekam @flawedworlddev par palīdzību šajā rakstā!