Google-ը ներկայացրել է Vanir անունով նոր բաց կոդով նախագիծ, որը մշակում է ստատիկ վերլուծիչ՝ կոդում չկիրառված թարմացումները ավտոմատ կերպով նույնականացնելու համար, որոնք լուծում են խոցելիությունները: Vanir-ը օգտագործում է հայտնի խոցելիությունների և թարմացումների ստորագրության տվյալների բազա՝ դրանք լուծելու համար: Google-ը նմանատիպ տվյալների բազա է պահպանում 2020 թվականի հուլիսից և ծածկում է հարթակին վերաբերող նախագծերի խոցելիությունների 95%-ը: Android, ներառյալ միջուկը LinuxՆերկայումս, ելակետային կոդի վերանայումը աջակցվում է C, C++ և Java լեզուների համար: Vanir-ը գրված է C++ և Python լեզուներով և տարածվում է BSD լիցենզիայով:
Նախագիծը բաղկացած է երկու մասից՝ ստորագրության գեներատոր և բացակայող կարկատան հայտնաբերիչ: Գեներատորը ստեղծում է ստորագրություն՝ ուղղման բացակայությունը նույնականացնելու համար՝ հիմնվելով OSV ձևաչափով խոցելիության նկարագրության և կարկատան կամ «commit»-ի հղման վրա, որը վերացնում է խոցելիությունը: Իր ներկայիս տեսքով այն աջակցում է «commit»-ների մշակումը googlesource.com և git.codelinaro.org պահոցներում, բայց այլ ծառայությունների աջակցությունը հեշտությամբ կարող է ավելացվել՝ կոդի արդյունահանման համար մշակիչ միացնելով:
Դետեկտորը վերլուծում է նշված պահոցում գտնվող կոդը և որոշում, թե արդյոք այն պարունակում է տրամադրված ստորագրություններում նկարագրված ուղղումները: Իրականացումը հիմնված է ReDeBug և VUDDY հետազոտական նախագծերում առաջարկված ստորագրությունների ավտոմատ կատարելագործման և բազմակի օրինաչափությունների վերլուծության ալգորիթմների վրա: 16-միջուկանի պրոցեսորով ժամանակակից համակարգչի վրա սկանավորվում է հարթակի սկզբնաղբյուրի ծառը: Android 2000-ից ավելի խոցելիությունների մասին տեղեկատվություն պարունակող OSV տվյալների բազայի օգտագործումը տևում է 10-20 րոպե: Արդյունքում ստացված զեկույցը թվարկում է հնարավոր չթարմացված խոցելիությունները և դրանց հետ կապված կոդերի տեղակայման, CVE նույնականացուցիչների և թարմացումների հղումները: Google-ում Vanir-ի օգտագործման երկու տարվա ընթացքում հավաքված վիճակագրության համաձայն՝ կեղծ դրական արդյունքների մակարդակը կազմում է 2.72%:


Առաջարկվող գործիքակազմի առավելությունները.
- Հնարավորություն՝ բացահայտելու չթարմացված խոցելիությունները երրորդ կողմի ֆորքերում, փոփոխություններում և կոդի փոխառություններում, որոնք ուղղակիորեն կապված չեն հիմնական նախագծի հետ։ Համատեքստում Android Գործիքը կարող է օգտագործվել հարթակի տարբեր տարբերակներում շտկումների կիրառումը ստուգելու համար։ Android, մշակված OEM սարքերի արտադրողների կողմից։
- Ստուգում կատարել միայն առկա կոդի վերլուծության հիման վրա՝ առանց հղում կատարելու մետատվյալներին, ինչպիսիք են տարբերակի համարը, կատարված գործողությունների պատմությունը և SBOM-ը (Ծրագրային ապահովման նյութերի ցանկը)։
- Աջակցություն ավտոմատ ստորագրությունների ստեղծմանը՝ օգտագործելով հրապարակայնորեն հրապարակված խոցելիության մասին տեղեկատվությունը և պահպանողների կողմից հրապարակված թարմացումները։
- Աղբյուրի կոդի ստատիկ վերլուծության վրա հիմնված ստուգման ավելի բարձր արդյունավետություն՝ համեմատած դինամիկ վերլուծության և բինար ասեմբլերի ստուգման գործիքների հետ։
- Ինքնաբավարարությունը սեփական համակարգերում ենթակառուցվածքներ տեղակայելու ունակությունն է՝ առանց արտաքին ծառայություններին դիմելու։
- Google թիմի կողմից աջակցվող պատրաստի, թարմացված ստորագրությունների տվյալների բազայի առկայություն Android Անվտանգության թիմ։
- Աջակցություն շարունակական ինտեգրման և մատակարարման համակարգերին (CI/CD): Հնարավորություն ինտեգրվելու Vanir օգտագործող այլ նախագծերում՝ Python լեզվով գրադարանների տեսքով:
- Համակարգը խոցելիությունների հետ կապ չունեցող առաջադրանքների համար հարմարեցնելու ունակություն, ինչպիսիք են կոդի կլոնավորման հայտնաբերումը կամ լիցենզավորված կոդի օգտագործումը այլ նախագծերում։
Source: opennet.ru
