Խոցելիություն uClibc-ում և uClibc-ng-ում, որը թույլ է տալիս տվյալների կեղծումը DNS քեշում

Ստանդարտ C գրադարաններում uClibc և uClibc-ng, որոնք օգտագործվում են բազմաթիվ ներկառուցված և շարժական սարքերում, հայտնաբերվել է խոցելիություն (CVE նշանակված չէ), որը թույլ է տալիս մտացածին տվյալներ տեղադրել DNS քեշում, որը կարող է օգտագործվել IP հասցեն փոխարինելու համար: կամայական տիրույթի քեշում և վերահղել հարցումները հարձակվողի սերվերի տիրույթին:

Խնդիրն ազդում է երթուղիչների, մուտքի կետերի և ինտերնետի սարքերի համար նախատեսված Linux որոնվածների, ինչպես նաև ներկառուցված Linux բաշխումների վրա, ինչպիսիք են OpenWRT-ն և Embedded Gentoo-ն: Նշվում է, որ խոցելիությունը հայտնվում է բազմաթիվ արտադրողների սարքերում (օրինակ, uClibc-ն օգտագործվում է Linksys, Netgear և Axis որոնվածում), սակայն քանի որ խոցելիությունը մնում է չֆիքսված uClibc և uClibc-ng-ում, մանրամասն տեղեկություններ կոնկրետ սարքերի և արտադրողների մասին, որոնց արտադրանքը խնդիրն առկա է: Դեռևս չեն բացահայտվել:

Խոցելիությունը պայմանավորված է DNS հարցումներ ուղարկելու համար կոդում կանխատեսելի գործարքների նույնացուցիչների կիրառմամբ: DNS հարցման նույնականացման համարն ընտրվել է պարզապես մեծացնելով հաշվիչը՝ առանց պորտի համարների լրացուցիչ պատահականության օգտագործման, ինչը հնարավորություն է տվել թունավորել DNS քեշը ֆիկտիվ պատասխաններով UDP փաթեթների կանխարգելիչ ուղարկման միջոցով (պատասխանը կընդունվի, եթե այն հասել է ավելի վաղ։ իրական սերվերի պատասխանը և ներառում է ճիշտ ID): Ի տարբերություն 2008-ին առաջարկված Կամինսկու մեթոդի, գործարքի նույնացուցիչը նույնիսկ գուշակելու կարիք չունի, քանի որ այն ի սկզբանե կանխատեսելի է (արժեքը ի սկզբանե դրված է 1-ի, որը ավելանում է յուրաքանչյուր հարցումով, այլ ոչ թե պատահական ընտրված):

Խոցելիություն uClibc-ում և uClibc-ng-ում, որը թույլ է տալիս տվյալների կեղծումը DNS քեշում

Նույնացուցիչի կոպիտ ուժից պաշտպանվելու համար հատկորոշումը խորհուրդ է տալիս լրացուցիչ օգտագործել աղբյուր ցանցի նավահանգիստների թվերի պատահական բաշխում, որոնցից ուղարկվում են DNS հարցումներ, ինչը փոխհատուցում է նույնացուցիչի անբավարար չափը: Երբ դուք միացնում եք նավահանգիստների պատահականացումը՝ ֆիկտիվ պատասխան ստեղծելու համար, բացի 16-բիթանոց նույնացուցիչ ընտրելուց, դուք պետք է նաև ընտրեք ցանցի պորտի համարը: uClibc-ում և uClibc-ng-ում նման պատահականացումը բացահայտորեն միացված չէր (bind կանչելիս, պատահական աղբյուրի UDP պորտը նշված չէր) և դրա օգտագործումը կախված էր օպերացիոն համակարգի կարգավորումներից:

Երբ զամբյուղի պատահականացումն անջատված է, ավելացված հարցման ID-ի որոշումը նշվում է որպես չնչին խնդիր: Բայց նույնիսկ եթե պատահականացումն օգտագործվում է, հարձակվողը միայն պետք է կռահի ցանցի պորտը 32768–60999 միջակայքից, որի համար նրանք կարող են օգտագործել ֆիկտիվ պատասխանների զանգվածային միաժամանակ ուղարկում ցանցի տարբեր պորտերին:

Խոցելիություն uClibc-ում և uClibc-ng-ում, որը թույլ է տալիս տվյալների կեղծումը DNS քեշում

Խնդիրը հաստատվել է uClibc-ի և uClibc-ng-ի բոլոր ընթացիկ թողարկումներում, ներառյալ uClibc 0.9.33.2 և uClibc-ng 1.0.40-ի ամենավերջին տարբերակները: 2021 թվականի սեպտեմբերին խոցելիության մասին տեղեկատվությունը ուղարկվել է CERT/CC՝ ուղղումների համակարգված պատրաստման համար։ 2022 թվականի հունվարին խնդրի վերաբերյալ տվյալները կիսվել են CERT/CC-ի հետ համագործակցող ավելի քան 200 արտադրողների հետ: Մարտին փորձ եղավ առանձին կապ հաստատել uClibc-ng նախագծի սպասարկողի հետ, սակայն նա պատասխանեց, որ ի վիճակի չէ ինքնուրույն շտկել խոցելիությունը և խորհուրդ տվեց հրապարակայնորեն հրապարակել խնդրի մասին տեղեկատվությունը, հուսալով, որ օգնություն կստանա՝ մշակելու համար: ուղղել համայնքից: Արտադրողների թվում NETGEAR-ը հայտարարեց թարմացման թողարկման մասին, որը վերացնում է խոցելիությունը:

Source: opennet.ru

Добавить комментарий