Նոր SAD DNS հարձակում՝ կեղծ տվյալներ DNS քեշի մեջ մտցնելու համար

Ռիվերսայդի Կալիֆոռնիայի համալսարանի հետազոտողների թիմը հրապարակել է SAD DNS հարձակման նոր տարբերակը (CVE-2021-20322), որն աշխատում է չնայած անցյալ տարի ավելացված պաշտպանություններին, որոնք արգելափակում են CVE-2020-25705 խոցելիությունը: Նոր մեթոդն ընդհանուր առմամբ նման է անցյալ տարվա խոցելիությանը և տարբերվում է միայն ակտիվ UDP պորտերը ստուգելու այլ տեսակի ICMP փաթեթների օգտագործմամբ: Առաջարկվող հարձակումը թույլ է տալիս կեղծ տվյալները փոխարինել DNS սերվերի քեշում, որը կարող է օգտագործվել քեշում կամայական տիրույթի IP հասցեն փոխարինելու և տիրույթի հարցումները վերահղելու համար հարձակվողի սերվերին:

Առաջարկվող մեթոդն աշխատում է միայն Linux ցանցի կույտում՝ կապված Linux-ում ICMP փաթեթների մշակման մեխանիզմի առանձնահատկությունների հետ, որը գործում է որպես տվյալների արտահոսքի աղբյուր, որը հեշտացնում է սերվերի կողմից օգտագործվող UDP պորտի համարի որոշումը՝ ուղարկելու համար: արտաքին հարցում. Փոփոխությունները, որոնք արգելափակում են տեղեկատվության արտահոսքը, ընդունվել են Linux միջուկում օգոստոսի վերջին (շտկումը ներառված է միջուկի 5.15-ի և սեպտեմբերյան թարմացումներում LTS ճյուղերում): Ուղղումը հանգում է նրան, որ Jenkins Hash-ի փոխարեն ցանցի քեշերում SipHash հեշավորման ալգորիթմն օգտագործելը: Բաշխումների խոցելիությունը շտկելու կարգավիճակը կարելի է գնահատել այս էջերում՝ Debian, RHEL, Fedora, SUSE, Ubuntu:

Խնդիրը բացահայտած հետազոտողների կարծիքով՝ ցանցում բաց լուծիչների մոտ 38%-ը խոցելի են, ներառյալ հանրաճանաչ DNS ծառայությունները, ինչպիսիք են OpenDNS-ը և Quad9-ը (9.9.9.9): Ինչ վերաբերում է սերվերի ծրագրային ապահովմանը, ապա հարձակումը կարող է իրականացվել՝ օգտագործելով այնպիսի փաթեթներ, ինչպիսիք են BIND, Unbound և dnsmasq Linux սերվերի վրա: Խնդիրը չի երևում Windows և BSD համակարգերով աշխատող DNS սերվերների վրա: Հարձակումը հաջողությամբ իրականացնելու համար անհրաժեշտ է օգտագործել IP խարդախություն, այսինքն. պահանջվում է, որ հարձակվողի ISP-ն չարգելափակի կեղծ աղբյուրի IP հասցեով փաթեթները:

Հիշեցնենք, որ SAD DNS հարձակումը շրջանցում է DNS սերվերներին ավելացված պաշտպանությունները՝ արգելափակելու համար 2008 թվականին Դեն Կամինսկու կողմից առաջարկված DNS քեշի թունավորման դասական մեթոդը: Կամինսկու մեթոդը շահարկում է DNS հարցման ID դաշտի փոքր չափը, որն ընդամենը 16 բիթ է: Հոսթի անվան կեղծման համար անհրաժեշտ DNS գործարքի ճիշտ նույնացուցիչը ընտրելու համար բավական է ուղարկել մոտավորապես 7000 հարցում և մոդելավորել մոտ 140 հազար ֆիկտիվ պատասխաններ։ Հարձակումը հանգում է նրան, որ ֆիկտիվ IP կապով և տարբեր DNS գործարքների նույնացուցիչներով մեծ թվով փաթեթներ ուղարկվում է DNS լուծիչ: Առաջին պատասխանի քեշավորումը կանխելու համար յուրաքանչյուր կեղծ պատասխան պարունակում է մի փոքր փոփոխված տիրույթի անուն (1.example.com, 2.example.com, 3.example.com և այլն):

Այս տեսակի հարձակումներից պաշտպանվելու համար DNS սերվերի արտադրողները իրականացրել են աղբյուր ցանցի նավահանգիստների թվերի պատահական բաշխում, որոնցից ուղարկվում են լուծման հարցումներ, ինչը փոխհատուցում է նույնացուցիչի անբավարար չափը: Ֆիկտիվ պատասխան ուղարկելու համար պաշտպանություն իրականացնելուց հետո, բացի 16-բիթանոց նույնացուցիչ ընտրելուց, անհրաժեշտություն առաջացավ ընտրել 64 հազար պորտերից մեկը, ինչը ընտրության տարբերակների թիվը հասցրեց 2^32-ի։

SAD DNS մեթոդը թույլ է տալիս արմատապես պարզեցնել ցանցի պորտի համարի որոշումը և հարձակումը նվազեցնել դասական Կամինսկու մեթոդին: Հարձակվողը կարող է հայտնաբերել մուտքը չօգտագործված և ակտիվ UDP նավահանգիստներին՝ օգտվելով ցանցի նավահանգիստների գործունեության մասին արտահոսող տեղեկատվությանից՝ ICMP պատասխան փաթեթները մշակելիս: Մեթոդը թույլ է տալիս կրճատել որոնման տարբերակների քանակը 4 մեծության կարգով՝ 2^16+2^16 2^32-ի փոխարեն (131_072՝ 4_294_967_296-ի փոխարեն)։ Տեղեկատվության արտահոսքը, որը թույլ է տալիս արագ որոշել ակտիվ UDP պորտերը, պայմանավորված է ICMP փաթեթների մշակման կոդի թերությամբ՝ մասնատման հարցումներով (ICMP Fragmentation Needed flag) կամ վերահղումով (ICMP Redirect flag): Նման փաթեթներ ուղարկելը փոխում է ցանցի կույտի քեշի վիճակը, ինչը հնարավորություն է տալիս սերվերի պատասխանից ելնելով որոշել, թե որ UDP պորտն է ակտիվ, որը ոչ:

Հարձակման սցենար. Երբ DNS լուծիչը փորձում է լուծել տիրույթի անունը, այն ուղարկում է UDP հարցում տիրույթը սպասարկող DNS սերվերին: Մինչ լուծիչը սպասում է պատասխանի, հարձակվողը կարող է արագ որոշել աղբյուրի պորտի համարը, որն օգտագործվել է հարցումն ուղարկելու համար և կեղծ պատասխան ուղարկել դրան՝ անձնավորելով տիրույթը սպասարկող DNS սերվերը՝ օգտագործելով IP հասցեի խաբեությունը: DNS լուծիչը կքեշավորի կեղծ պատասխանում ուղարկված տվյալները և որոշ ժամանակ կվերադարձնի հարձակվողի կողմից փոխարինված IP հասցեն տիրույթի անվան համար բոլոր այլ DNS հարցումների համար:

Source: opennet.ru

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