Android 21 жаңы түзүлгөн коддун болжол менен 13% Rust тилинде жазылган

Google компаниясынын инженерлери Android платформасына Rust тилинде иштеп чыгууну колдоону киргизүүнүн алгачкы жыйынтыктарын чыгарышты. Android 13'те жаңы түзүлгөн коддун болжол менен 21% Rust тилинде жана 79% C/C++ тилинде жазылган. Android платформасынын баштапкы кодун иштеп чыгуучу AOSP (Android Open Source Project) репозиторийинде Keystore1.5 криптографиялык ачкыч дүкөнү, UWB чиптери үчүн стек (Ultra-Wideband) сыяктуу жаңы компоненттер менен байланышкан Rust кодунун болжол менен 2 миллион саптары камтылган. , DNS-over-HTTP3 протоколун, AVF (Android Virtualization Framework) виртуалдаштыруу алкагын, Bluetooth жана Wi-Fi үчүн эксперименталдык стектерди ишке ашыруу.

Android 21 жаңы түзүлгөн коддун болжол менен 13% Rust тилинде жазылган

Эстутум менен иштөөдөгү каталардан улам келип чыккан алсыздыктын коркунучун азайтуу боюнча мурда кабыл алынган стратегияга ылайык, Rust тили учурда негизинен жаңы кодду иштеп чыгууда жана программалык камсыздоонун эң аялуу жана маанилүү компоненттеринин коопсуздугун акырындык менен бекемдөө үчүн колдонулат. Бүтүн платформаны Rustко өткөрүп берүүнүн жалпы максаты жок жана эски код C/C++ тилинде кала берет жана андагы каталарга каршы күрөш fuzzing тестирлөө, статикалык анализ жана ушул сыяктуу ыкмаларды иштеп чыгууда колдонуу аркылуу жүргүзүлөт. MiraclePtr түрүн колдонуу (чийки көрсөткүчтөрдүн үстүнөн байланыштыруу, бошогон эстутум аймактарына жетүү үчүн кошумча текшерүүлөрдү жүргүзүү), Scudo эстутумун бөлүштүрүү тутумун (malloc/free үчүн коопсуз алмаштыруу) жана HWAsan эстутуму менен иштөөдө каталарды аныктоо механизмдерин (Аппараттык камсыздоонун жардамы менен AddressSanitizer), GWP-ASAN жана KFENCE.

Android платформасындагы кемчиликтердин табияты боюнча статистикага келсек, эстутум менен кооптуу иштеген жаңы код азайган сайын, эс тутум менен иштөөдө кетирилген каталардан улам келип чыккан алсыздыктардын саны азайганы белгиленген. Мисалы, эстутум көйгөйлөрүнөн улам келип чыккан аялуулардын үлүшү 76-жылдагы 2019%дан 35-жылы 2022%га чейин азайган. Абсолюттук сандар менен алганда, 2019-жылы эс тутумуна байланыштуу 223, 2020-жылы 150, 2021-жылы 100 жана 2022-жылы 85 (белгиленген бардык кемчиликтер C/C++ кодунда болгон; Rust кодунда ушул убакка чейин окшош көйгөйлөр болгон эмес) аныкталган. табылган). 2022-жыл эс-тутумга байланыштуу алсыздыктар үстөмдүк кылууну токтоткон биринчи жыл болду.

Android 21 жаңы түзүлгөн коддун болжол менен 13% Rust тилинде жазылган

Эс-тутумга байланыштуу алсыздыктар, адатта, эң кооптуу болгондуктан, жалпы статистика да алыстан колдонула турган маанилүү маселелердин жана маселелердин санынын азайгандыгын көрсөтөт. Ошол эле учурда, эс тутум менен иштөөгө байланышпаган кемчиликтерди аныктоо динамикасы акыркы 4 жылда болжол менен бирдей деңгээлде сакталып келген - айына 20 аялуу. Эстутум менен иштөөдөгү каталардан улам келип чыккан кемчиликтердин арасында кооптуу көйгөйлөрдүн үлүшү да сакталып турат (бирок мындай кемчиликтердин саны азайгандыктан, кооптуу көйгөйлөрдүн саны да азаят).

Android 21 жаңы түзүлгөн коддун болжол менен 13% Rust тилинде жазылган

Статистика ошондой эле эстутум менен кооптуу иштеген жаңы коддун көлөмү менен эс-тутумга байланыштуу кемчиликтердин (буфердин толуп кетиши, мурунтан эле бошогон эстутумга жетүү ж.б.) ортосундагы корреляцияга көз салат. Бул байкоо программалоонун коопсуз ыкмаларын ишке ашырууда учурдагы кодду кайра жазууга эмес, жаңы кодду алып салууга басым жасоо керек деген божомолду ырастайт, анткени аныкталган кемчиликтердин негизги бөлүгү жаңы коддо.

Android 21 жаңы түзүлгөн коддун болжол менен 13% Rust тилинде жазылган


Source: opennet.ru

Комментарий кошуу