Google kitbet mill-ġdid il-firmware pvmfm użat fil-lingwa Rust Android

Bħala parti mill-isforzi biex tissaħħaħ is-sigurtà tal-komponenti kritiċi tas-softwer tal-pjattaforma Android Google kitbet mill-ġdid il-firmware tal-pvmfm f'Rust, li jintuża biex jorganizza l-operazzjoni ta' magni virtwali mnedija mill-iperviżur tal-pVM mill- Android Qafas ta' Virtualizzazzjoni. Preċedentement, il-firmware kien miktub f'C u implimentat fuq il-bootloader U-Boot, li l-kodiċi tiegħu kien diġà nstab li fih vulnerabbiltajiet ikkawżati minn kwistjonijiet ta' ġestjoni tal-memorja.

Firmware miktub mill-ġdid f'Rust huwa inkluż fil-pakkett Android 14, u l-libreriji universali maħluqa matul l-iżvilupp tal-firmware ġew ippakkjati bħala pakketti crate u mogħtija b'donazzjoni lill-komunità Rust. Pereżempju, il-pakkett smccc ġie ppubblikat biex jappoġġja l-interfejsijiet PSCI (Power State Coordination Interface) tal-ARM u s-sejħiet SMCCC (SMC Calling Convention), kif ukoll il-pakkett aarch64-paging għall-manipulazzjoni tat-tabelli tal-paġni tal-memorja. Sar ukoll xogħol biex jiġu rranġati l-bugs u tiġi estiża l-funzjonalità tal-pakkett virtio-drivers eżistenti bl-implimentazzjoni tas-sewwieqa VirtIO. Minbarra l-pjattaforma Android Il-pakketti speċifikati jintużaw fil-proġett Oak, li jiżviluppa komponenti għat-trażmissjoni, il-ħażna u l-ipproċessar tad-dejta f'ambjenti protetti (TEE, Trusted Execution Environment).

L-iperviżur tal-pVM jieħu l-kontroll kmieni fil-proċess tal-ibbutjar u jipprovdi iżolament sħiħ tal-memorja. magna virtwali u l-ambjent ospitanti, u b'hekk jipprevjeni lis-sistema ospitanti milli taċċessa magni virtwali protetti fejn tiġi pproċessata dejta sensittiva. Il-firmware pvmfm (Protected Virtual Machine Firmware) jieħu l-kontroll immedjatament wara li tibda l-magna virtwali, jivverifika l-ambjent maħluq, u jiddeċiedi jekk għandux jannulla l-ibbutjar jekk jinstabu problemi ta' integrità jew jiġġenera ċertifikat tal-ibbutjar għas-sistema mistiedna jekk il-katina ta' fiduċja tiġi kkonfermata.

Ir-rifatturar f'Rust jippermetti konformità aktar sempliċi u sigura mar-"regola tat-tnejn" użata minn Google biex iżżomm is-sigurtà tal-komponenti tas-sistema. AndroidSkont din ir-regola, kwalunkwe kodiċi miżjud irid jissodisfa mhux aktar minn żewġ kundizzjonijiet minn dawn it-tlieta: l-immaniġġjar ta' dejta ta' input mhux fdata, l-użu ta' lingwa ta' programmar mhux sigura (C/C++), u t-tħaddim bi privileġġi elevati. Din ir-regola timplika li l-kodiċi għall-ipproċessar ta' dejta esterna jrid jew jitnaqqas għall-minimu ta' privileġġi (iżolat) jew jinkiteb f'lingwa ta' programmar sigura. Skont l-istatistika ta' Google, madwar 70% tal-vulnerabbiltajiet perikolużi kollha identifikati fi Android, ikkawżat minn żbalji meta taħdem bil-memorja.

Is-sadid jiffoka fuq is-sikurezza tal-memorja u jnaqqas ir-riskju ta’ vulnerabbiltajiet ikkawżati minn problemi bħall-aċċess għall-memorja wara l-ħelsien u l-qabżiet tal-buffer. Is-sadid jinforza s-sigurtà tal-memorja fil-ħin tal-kompilazzjoni permezz ta 'verifika ta' referenza, sjieda ta 'oġġett u traċċar tal-ħajja tal-oġġett (ambiti), u billi tevalwa l-korrettezza tal-aċċessi għall-memorja waqt ir-runtime. Is-sadid jipprovdi wkoll protezzjoni kontra overflows ta’ numru sħiħ, jeħtieġ li l-valuri varjabbli jiġu inizjalizzati qabel l-użu, għandu ġestjoni aħjar tal-iżbalji fil-librerija standard, juża l-kunċett ta’ referenzi u varjabbli immutabbli b’mod awtomatiku, u joffri tajpjar statiku qawwi biex jimminimizza l-iżbalji loġiċi.

Fost id-diffikultajiet li jinqalgħu fil-proċess ta 'żvilupp ta' komponenti ta 'livell baxx bħal sewwieqa fil-lingwa Rust, tissemma l-ħtieġa li taħdem b'indikazzjonijiet vojta f'mod mhux sigur, peress li Rust hija maħluqa b'għajnejha fuq l-użu tal-memorja allokata fil- programm, u f'kodiċi li jaħdem mingħajr saffi fuq il-ħardwer, irridu naċċessaw memorja kondiviża u MMIO. Bħalissa, il-kapaċitajiet tal-pointer vojta ta' Rust iħallu ħafna x'inhu mixtieq, iżda dan għandu jinbidel ladarba l-appoġġ għall-macros offset_of, slice_ptr_get, u slice_ptr_len jiġi stabbilizzat.

Fost l-iżvantaġġi, wieħed jinnota wkoll il-ħtieġa għal sintassi mtejba għall-aċċess għall-oqsma tal-istruttura u l-indiċi tal-matriċi permezz ta 'indikazzjonijiet vojta mingħajr ma jinħolqu referenzi, kif ukoll limitazzjonijiet fil-ħolqien ta' rbit siguri fuq operazzjonijiet mhux sikuri li jistgħu jikkawżaw imġieba mhux definita u ma jistgħux jiġu kkontrollati mill-kompilatur. Pereżempju, rbit bħal dawn ma jistgħux jinħolqu għal operazzjonijiet b'tabelli tal-paġni tal-memorja, peress li l-immappjar tal-paġna f'parti waħda tal-programm jista' jaffettwa partijiet oħra.

Fir-rigward tad-daqs tal-kodiċi li jirriżulta, il-verżjoni l-antika tal-firmware pVM okkupat 220 kB, u l-ġdida - 460 kB, iżda karatteristiċi ġodda ġew miżjuda mal-verżjoni miktuba mill-ġdid, li grazzi għaliha kien possibbli li teħles minn xi oħra. komponenti użati waqt it-tagħbija. Bħala riżultat, id-daqs totali tal-komponenti kollha tal-boot qodma u ġodda rriżulta li kien komparabbli. Huwa nnutat li meta d-daqs huwa aktar importanti mill-prestazzjoni, riżultati komparabbli mal-lingwa C jistgħu jinkisbu billi jiġu permessi modi addizzjonali ta 'ottimizzazzjoni tad-daqs fil-kompilatur, jintremew dipendenzi mhux meħtieġa u ma jintużawx formatters ta' string.

Barra minn hekk, isemmi t-tkomplija tax-xogħol fuq l-implimentazzjoni tal-abbiltà li jitħaddmu applikazzjonijiet fdati (Trusted Application) miktuba fil-lingwa Rust fis-sistema operattiva Trusty, li tipprovdi TEE (Trusted Execution Environment) għal Android, imwettqa b'mod parallel ma' Android fuq l-istess proċessur f'ambjent separat u iżolat. Trusty jintuża f'apparati Pixel u diġà juża Rust fil-libreriji u l-komponenti tas-sistema (il-kernel jibqa' f'C).

Sors: opennet.ru

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster