Գուգլ ընկերությունը ամփոփել է Android-ում անվտանգ ծրագրավորման մեթոդների (Safe Coding) ներդրման նախաձեռնությունը, ինչպիսիք են անվտանգ հիշողության կառավարում ապահովող ծրագրավորման լեզուների օգտագործումը, վիճակագրական վերլուծիչների կիրառումը և API-ների նախագծումը՝ անվտանգության տեսանկյունից: Այս փոփոխությունները թույլ են տվել նվազեցնել հիշողության հետ կապված խոցելիությունների պետական մասը Android-ում 2019 թվականին 76%-ից մինչև 2024 թվականին 24%, ինչը էապես ցածր է արդյունաբերության միջին ցուցանիշից՝ 70%-ից:
Գուգլի ինժեներները նույնպես եզրակացրել են, որ անվտանգության խնդիրների հիմնական աղբյուրը նոր կոդն է, ուստի ուշադրությունը հարկավոր է կենտրոնացնել նոր կոդի մշակման մեթոդների արդիականացման վրա: Իսկ արդեն առկա կոդը ժամանակի ընթացքում ավելի շատ փորձարկված և անվտանգ է դառնում (տեսանելի է, որ անվտանգության և ժամանակի միջև կարելի է տեսնել էկսպոնենցիալ կախումը), ինչը նվազեցնում է արդեն մշակված կոդը վերագրման նախագծեր գրանցելու արդյունավետությունը: Ուրեմն, օրինակ, 5-ամյա կոդը միջինում 3.4 անգամ նվազ խոցելիության հյուսվածք ունի, քան նոր կոդը: Android և Chromium նախագծերի համար անվտանգ հիշողության կառավարում ընդունելու շնորհիվ տարբերությունը հասնում է 7.4 անգամ:

Այսպիսով, եթե կանխարգելվի հիշողության հետ կապված սխալների առաջացումը նոր կոդում, ապա ժամանակի ընթացքում նման սխալներ կդիտարկվեն ավելի ու ավելի հազվադեպ հին կոդում: Ընդհանուր առմամբ, Գուգլը խորհուրդ է տալիս չվերագրել հին կոդը, այլ կենտրոնացնել նոր կոդի գրություններին՝ վստահ միջոցներով աշխատող ցանկությամբ և ապահովել նոր և հին կոդերի միջև փոխադրելիություն:
Խոցելիությունների քանակի նվազեցման բացի, անվտանգ ծրագրավորման մեթոդների կիրառությունը բարձրացնում է մշակման արդյունավետությունը, թույլ է տալիս ավելի բարձր որակի կոդ ստանալ և դրական ազդեցություն թողնում է գործունակության վրա: Օրինակ, Chromium-ում QR-кոդերի գեներացիայի կոդի վերափոխումը Rust լեզվով թույլ է տվել 95%-ով բարձրացնել նրա արդյունավետությունը շնորհիվ ավելորդ ծախսերի վերացմանից, որը առաջանում էր լրացուցիչ sandbox-ամրացում կիրառելու անհրաժեշտությունից:
Մշակման արագությունն ու որակը մեծանում են՝ շնորհիվ փորձարկման պարզեցման և սխալների հայտնաբերման շեղման՝ մշակման վաղ փուլերում, երբ սխալներն երևում են դեռ մինչև զարգացողը կոդի ստուգմանը: Օրինակ, Rust կոդի փոփոխությունների հետադարձի սահմանները, կանխատեսվի չներդրված սխալների հանդեսում, երկու անգամ ավելի ցածր են, քան C++ կոդի հետ:
Ընդհանուր առմամբ, անվտանգ ծրագրավորման մեթոդների կիրառությունը ներկայացվում է որպես այսօր եղած առավել արդյունավետ մշակման փարադիգմա, որը փոխարինում է նախորդ երեք մոտեցումներին:
- Եղած խոցելիությունների ուղղման գործընթացը։ Այն ծախսատար է, պահանջում է հաճախակի թարմացումներ և օգտվողներին հասցնելու արագություն։
- Անխափան պաշտպանություն, որոնք կենտրոնանում են տեխնիկաների կիրառման վրա, որոնք բարդացնում են խոցելիությունների շահագործումը։ Չհաջողված նման պաշտպանության գնով ընթացքում գործակցության և մշտական կատաղիստների խաղ են եղել։
- Ավագ Հետազոտություն՝ խոցելիությունների վաղ հայտնաբերման միջոցով՝ fuzzing-ի փորձարկման և AddressSanitizer, MemorySanitizer նման հատկությունների օգտագործման։ Այն մեթոդը պարզապես վերացնում էր նշանները, այլ ոչ թե հիվանդության պատճառը, ու պահանջում էր մշտական աշխատանք։


Ընտանիք: opennet.ru
