GRUB2-ի խոցելիությունը, որը թույլ է տալիս շրջանցել UEFI Secure Boot-ը

GRUB2 bootloader-ում շտկվել են 7 խոցելիություններ, որոնք թույլ են տալիս շրջանցել UEFI Secure Boot մեխանիզմը և գործարկել չստուգված կոդը, օրինակ՝ ներդրել չարամիտ ծրագիր, որն աշխատում է bootloader-ի կամ միջուկի մակարդակում: Բացի այդ, շիմ շերտում կա մեկ խոցելիություն, որը նաև թույլ է տալիս շրջանցել UEFI Secure Boot-ը: Խոցելիության խումբը ստացել է Boothole 3 կոդային անվանումը, որը նման է նախկինում բեռնիչում հայտնաբերված նմանատիպ խնդիրների:

GRUB2-ում և shim-ում խնդիրները լուծելու համար բաշխումները կկարողանան օգտագործել SBAT (UEFI Secure Boot Advanced Targeting) մեխանիզմը, որն աջակցվում է GRUB2, shim և fwupd-ի համար: SBAT-ը մշակվել է Microsoft-ի հետ համատեղ և ներառում է լրացուցիչ մետատվյալների ավելացում UEFI բաղադրիչների գործարկվող ֆայլերին, որոնք ներառում են տեղեկատվություն արտադրողի, արտադրանքի, բաղադրիչի և տարբերակի մասին: Նշված մետատվյալները վավերացված են թվային ստորագրությամբ և կարող են առանձին ներառվել UEFI Secure Boot-ի թույլատրված կամ արգելված բաղադրիչների ցանկում:

Linux-ի բաշխումների մեծամասնությունը օգտագործում է Microsoft-ի կողմից թվային ստորագրված փոքր շերտ՝ UEFI Secure Boot ռեժիմում ստուգված բեռնման համար: Այս շերտը ստուգում է GRUB2-ն իր սեփական վկայականով, որը թույլ է տալիս բաշխման մշակողներին չունենալ Microsoft-ի կողմից վավերացված միջուկի և GRUB-ի բոլոր թարմացումները: GRUB2-ի խոցելիությունը թույլ է տալիս հասնել ձեր կոդի գործարկմանը այն փուլում, երբ հաջողվում է «shim» ստուգումը, բայց նախքան օպերացիոն համակարգը բեռնելը, վստահության շղթայի մեջ մտնել, երբ «Secure Boot» ռեժիմն ակտիվ է և լիարժեք վերահսկողություն ձեռք բերել հետագա բեռնման գործընթացի վրա, ներառյալ. բեռնել մեկ այլ ՕՀ, փոփոխել օպերացիոն համակարգի բաղադրիչների համակարգը և շրջանցել Lockdown պաշտպանությունը:

Բեռնիչի հետ կապված խնդիրները շտկելու համար բաշխումները պետք է ստեղծեն նոր ներքին թվային ստորագրություններ և թարմացնեն տեղադրողներ, բեռնիչներ, միջուկային փաթեթներ, fwupd որոնվածը և շիմ շերտը: Մինչ SBAT-ի ներդրումը վկայագրերի չեղյալ հայտարարման ցուցակի թարմացումը (dbx, UEFI Revocation List) նախապայման էր խոցելիությունն ամբողջությամբ արգելափակելու համար, քանի որ հարձակվողը, անկախ օգտագործվող օպերացիոն համակարգից, կարող էր օգտագործել bootable մեդիա GRUB2-ի հին խոցելի տարբերակով: վավերացված է թվային ստորագրությամբ՝ UEFI Secure Boot-ը խախտելու համար:

Ստորագրությունը չեղյալ հայտարարելու փոխարեն SBAT-ը թույլ է տալիս արգելափակել դրա օգտագործումը առանձին բաղադրիչների տարբերակի համարների համար՝ առանց Secure Boot-ի բանալիները չեղարկելու: SBAT-ի միջոցով խոցելիության արգելափակումը չի պահանջում UEFI վկայականի չեղյալ հայտարարման ցուցակի (dbx) օգտագործումը, այլ իրականացվում է ներքին բանալին փոխարինելու մակարդակով՝ ստորագրություններ ստեղծելու և GRUB2-ը, շիմը և բաշխումների կողմից տրամադրվող այլ բեռնախցիկները թարմացնելու համար: Ներկայումս SBAT աջակցությունն արդեն ավելացվել է Linux-ի ամենատարածված բաշխումներին:

Հայտնաբերված խոցելիություններ.

  • CVE-2021-3696, CVE-2021-3695-ը կույտի վրա հիմնված բուֆերային արտահոսքեր են հատուկ նախագծված PNG պատկերները մշակելիս, որոնք տեսականորեն կարող են օգտագործվել հարձակվողի կոդը գործարկելու և UEFI Secure Boot-ը շրջանցելու համար: Նշվում է, որ խնդիրը դժվար է օգտագործել, քանի որ աշխատանքային շահագործման ստեղծումը պահանջում է հաշվի առնել մեծ թվով գործոններ և հիշողության դասավորության մասին տեղեկատվության առկայությունը:
  • CVE-2021-3697 - JPEG պատկերի մշակման կոդի բուֆերային հոսք: Խնդիրը շահագործելը պահանջում է հիշողության դասավորության իմացություն և գտնվում է մոտավորապես նույն բարդության մակարդակի վրա, ինչ PNG խնդիրը (CVSS 7.5):
  • CVE-2022-28733 - Ամբողջ թվի արտահոսքը grub_net_recv_ip4_packets() ֆունկցիայում թույլ է տալիս rsm->total_len պարամետրի վրա ազդել՝ ուղարկելով հատուկ մշակված IP փաթեթ: Խնդիրը նշված է որպես ներկայացված խոցելի կողմերից ամենավտանգավորը (CVSS 8.1): Հաջողությամբ շահագործման դեպքում խոցելիությունը թույլ է տալիս տվյալները գրվել բուֆերային սահմանից այն կողմ՝ միտումնավոր ավելի փոքր հիշողության չափը հատկացնելով:
  • CVE-2022-28734 - Մեկ բայթանոց բուֆերային արտահոսք, երբ մշակվում են քերծված HTTP վերնագրերը: Խնդիրը կարող է առաջացնել GRUB2 մետատվյալների կոռուպցիա (գրել զրոյական բայթ բուֆերի ավարտից անմիջապես հետո) հատուկ մշակված HTTP հարցումները վերլուծելիս:
  • CVE-2022-28735 Shim_lock ստուգիչի խնդիրը թույլ է տալիս ոչ միջուկային ֆայլերի բեռնում: Խոցելիությունը կարող է օգտագործվել UEFI Secure Boot ռեժիմում չստորագրված միջուկի մոդուլները կամ չստուգված ծածկագիրը բեռնելու համար:
  • CVE-2022-28736 Արդեն ազատված հիշողության հասանելիություն grub_cmd_chainloader() ֆունկցիայի մեջ chainloader հրամանի կրկնության միջոցով, որն օգտագործվում է GRUB2-ի կողմից չաջակցվող օպերացիոն համակարգերը բեռնելու համար: Շահագործումը կարող է հանգեցնել հարձակվողի կոդի գործարկման, եթե հարձակվողը կարողանա որոշել GRUB2-ում հիշողության բաշխումը:
  • CVE-2022-28737 - Շիմ շերտում բուֆերային արտահոսք տեղի է ունենում handle_image() ֆունկցիայում, երբ բեռնում և կատարում է մշակված EFI պատկերները:

Source: opennet.ru

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