Google-ի ինժեներները պլանավորում են նվազեցնել նախատիպի աղտոտումը

07-02-2023
Share
Google-ի ինժեներները պլանավորում են նվազեցնել նախատիպի աղտոտումը

Google-ի ծրագրային ապահովման ինժեներները առաջարկ են ներկայացրել, որը խոստանում է կանխել նախատիպի աղտոտումը, խոցելիության դասը, որը դարձել է վեբ անվտանգության պատուհաս:

Նախատիպի աղտոտումը  JavaScript  լեզվի թերություն է, որը հարձակվողներին թույլ է տալիս մանիպուլյացիայի ենթարկել այն օբյեկտները, որոնք նրանք չեն վերահսկում կամ մուտք չունեն գործարկման ժամանակ: Խնդիրն առաջանում է օբյեկտների (որոնք օգտագործվում են տվյալների պահպանման ժամանակ պահելու համար) և դրանց գծագրերի (որոնք որոշում են, թե ինչպես պետք է այդ օբյեկտները վարվեն) միջև հստակ սահմանի բացակայությունից:

Միացնել անվտանգ ռեժիմը

Ինչպես բացատրվում է GitHub-ի գրառման մեջ

«առաջարկը ձգտում է մեղմել նախատիպի աղտոտվածությունը՝ ներդնելով «opt-in» անվտանգ ռեժիմ, որն անհնարին է դարձնում նախատիպերին մուտքը՝ օգտագործելով լարային հատկությունների բանալիներ, փոխարենը պահանջում է, որ դրանք հասանելի լինեն մեթոդներով ( Object.getPrototypeOf ) կամ առաջարկվող նորով: սիմվոլի սեփականության բանալիներ»:

Առաջարկի համահեղինակ Սանտյագո Դիասը  The Daily Swig- ին ասել է . «Նպատակն է կոտրել հայտնի շահագործման տեխնիկան՝ միաժամանակ հնարավորինս համատեղելի լինելով գոյություն ունեցող ծածկագրերի բազայի հետ, որպեսզի մեղմացումը լայնորեն կիրառվի ինտերնետում»:

TC39 աշխատանքային խումբը, որը պատասխանատու է JavaScript-ի ճշգրտման պահպանման համար, անցյալ շաբաթ կանաչ լույս տվեց 0-ից փուլ 1-ին անցնելու համար՝ սկսելով վավերացման իր հինգ մասից բաղկացած ճանապարհորդության հաջորդ փուլը:

Դիասը բացատրեց. «Սրա կարևորությունն այն է, որ TC39-ը աղտոտվածությունը համարում է խնդիր, որն արժե ուսումնասիրել (և հուսով եմ լուծել): Առաջիկա ամիսների ընթացքում մենք կվերանայենք առաջարկի կոնկրետ ասպեկտները և կկատարենք ճարտարագիտություն՝ գտնելու փոխզիջումների ճիշտ հավասարակշռությունը և հուսով ենք, որ այն հաճելի կդարձնենք ինչպես TC39-ի անդամների, այնպես էլ մշակողների համար:

Երբ առաջարկը հասնում է վերջնական փուլին (փուլ 4), առաջարկը համարվում է վերջնական, և  բրաուզերի  վաճառողները կարող են փոփոխություններ կատարել իրենց ծրագրաշարում: «Սա իր հերթին ազդանշան է տալիս ծրագրավորողներին, որ սկսեն ընդունել այս նոր մեղմացումը և այն թողարկել արտադրության մեջ», – եզրափակեց Դիասը:

Խորհրդանիշի լուծում

The Daily Swig-ի մայր ընկերության՝ PortSwigger-ի անվտանգության հետազոտող Գարեթ Հեյսը  հետաքրքրություն է հայտնել առաջարկների նկատմամբ:

«Սա նախատիպի աղտոտումը կանխելու առաջարկ է՝ ծրագրավորողին հնարավորություն տալով հեռացնել այնպիսի հատկություններ, ինչպիսին  __proto__- ն  է՝ գործարկելով որոշ կոդ, որը թույլ է տալիս անվտանգ ռեժիմ և հեռացնում այդ հատկությունները», – ասաց Հեյսը:

«Նրանք առաջարկում են օգտագործել սիմվոլներ, որպեսզի կայքը կարողանա շարունակել օգտագործել  __proto__  ֆունկցիոնալությունը, որպեսզի կայքը չփչանա, և հարձակվողը չկարողանա տրամադրել այդ նշանները, քանի որ դա կպահանջի JavaScript-ի կատարում»:

Google- ի   առաջարկն իր տեսակի մեջ առաջինը չէ: Այնուամենայնիվ, գոյություն ունեցող լուծումները կանխամտածված փոփոխությունները կանխելու համար, ինչպիսիք են  Object.freeze-ը ,  preventExtensions- ը և  seal- ը,  ունեն մի շարք «բացասական կողմեր, որոնք դժվարացնում են դրանց տեղակայումը», ասվում է Google-ի բլոգի գրառման մեջ, որն ուրվագծում է այս թերությունները:

Աղբյուր՝ https://portswigger.net/