Dobësitë e vështira për t'u rregulluar në GRUB2 që ju lejojnë të anashkaloni UEFI Secure Boot

Informacioni është zbuluar rreth 8 dobësive në ngarkuesin GRUB2, të cilat ju lejojnë të anashkaloni mekanizmin e nisjes së sigurt UEFI dhe të ekzekutoni kodin e paverifikuar, për shembull, të zbatoni malware që funksionojnë në nivelin e ngarkuesit ose kernelit.

Le të kujtojmë se në shumicën e shpërndarjeve Linux, për nisjen e verifikuar në modalitetin UEFI Secure Boot, përdoret një shtresë e vogël shim, e nënshkruar në mënyrë dixhitale nga Microsoft. Kjo shtresë verifikon GRUB2 me certifikatën e vet, e cila lejon zhvilluesit e shpërndarjes të mos kenë çdo kernel dhe përditësim GRUB të certifikuar nga Microsoft. Dobësitë në GRUB2 ju lejojnë të arrini ekzekutimin e kodit tuaj në fazën pas verifikimit të suksesshëm të shimit, por përpara se të ngarkoni sistemin operativ, të futeni në zinxhirin e besimit kur modaliteti Secure Boot është aktiv dhe të fitoni kontroll të plotë mbi procesin e mëtejshëm të nisjes, duke përfshirë ngarkimi i një OS tjetër, modifikimi i sistemit të komponentëve të sistemit operativ dhe anashkalimi i mbrojtjes nga bllokimi.

Ashtu si me cenueshmërinë e BootHole të vitit të kaluar, përditësimi i ngarkuesit të ngarkimit nuk mjafton për të bllokuar problemin, pasi një sulmues, pavarësisht nga sistemi operativ i përdorur, mund të përdorë media bootable me një version të vjetër, të nënshkruar dixhitalisht, të cenueshëm të GRUB2 për të kompromentuar UEFI Secure Boot. Problemi mund të zgjidhet vetëm duke përditësuar listën e revokimit të certifikatave (dbx, Lista e revokimeve UEFI), por në këtë rast aftësia për të përdorur median e vjetër të instalimit me Linux do të humbasë.

Në sistemet me firmware që kanë një listë të përditësuar të revokimit të certifikatave, vetëm ndërtimet e përditësuara të shpërndarjeve Linux mund të ngarkohen në modalitetin UEFI Secure Boot. Shpërndarjet do të duhet të përditësojnë instaluesit, ngarkuesit, paketat e kernelit, firmuerin fwupd dhe shtresën shim, duke gjeneruar nënshkrime të reja dixhitale për ta. Përdoruesve do t'u kërkohet të përditësojnë imazhet e instalimit dhe mediat e tjera të bootable, si dhe të ngarkojnë një listë të revokimit të certifikatave (dbx) në firmuerin UEFI. Përpara përditësimit të dbx në UEFI, sistemi mbetet i cenueshëm pavarësisht nga instalimi i përditësimeve në OS. Statusi i dobësive mund të vlerësohet në këto faqe: Ubuntu, SUSE, RHEL, Debian.

Për të zgjidhur problemet që lindin gjatë shpërndarjes së certifikatave të revokuara, në të ardhmen është planifikuar të përdoret mekanizmi SBAT (UEFI Secure Boot Advanced Targeting), mbështetja për të cilën është zbatuar për GRUB2, shim dhe fwupd, dhe duke filluar nga përditësimet e ardhshme do të jetë përdoret në vend të funksionalitetit të ofruar nga paketa dbxtool. SBAT u zhvillua së bashku me Microsoft dhe përfshin shtimin e meta të dhënave të reja në skedarët e ekzekutueshëm të komponentëve UEFI, të cilat përfshijnë informacione rreth prodhuesit, produktit, komponentit dhe versionit. Meta të dhënat e specifikuara janë të certifikuara me një nënshkrim dixhital dhe mund të përfshihen gjithashtu në listat e komponentëve të lejuar ose të ndaluar për UEFI Secure Boot. Kështu, SBAT do t'ju lejojë të manipuloni numrat e versioneve të komponentëve gjatë revokimit pa pasur nevojë të rigjeneroni çelësat për Secure Boot dhe pa gjeneruar nënshkrime të reja për kernel, shim, grub2 dhe fwupd.

Dobësitë e identifikuara:

  • CVE-2020-14372 – Duke përdorur komandën acpi në GRUB2, një përdorues i privilegjuar në sistemin lokal mund të ngarkojë tabela të modifikuara ACPI duke vendosur një SSDT (Tabela e Përshkrimit të Sistemit Sekondar) në drejtorinë /boot/efi dhe duke ndryshuar cilësimet në grub.cfg. Megjithëse modaliteti Secure Boot është aktiv, SSDT-ja e propozuar do të ekzekutohet nga kerneli dhe mund të përdoret për të çaktivizuar mbrojtjen LockDown që bllokon shtigjet e anashkalimit të UEFI Secure Boot. Si rezultat, një sulmues mund të arrijë ngarkimin e modulit të tij të kernelit ose kodin e ekzekutimit përmes mekanizmit kexec, pa kontrolluar nënshkrimin dixhital.
  • CVE-2020-25632 është një akses memorie pa përdorim në zbatimin e komandës rmmod, e cila ndodh kur bëhet një përpjekje për të shkarkuar çdo modul pa marrë parasysh varësitë që lidhen me të. Dobësia nuk përjashton krijimin e një shfrytëzimi që mund të çojë në ekzekutimin e kodit duke anashkaluar verifikimin Secure Boot.
  • CVE-2020-25647 Një shkrim jashtë kufijve në funksionin grub_usb_device_initialize() thirret kur inicializohen pajisjet USB. Problemi mund të shfrytëzohet duke lidhur një pajisje USB të përgatitur posaçërisht që prodhon parametra, madhësia e të cilëve nuk korrespondon me madhësinë e tamponit të caktuar për strukturat USB. Një sulmues mund të arrijë ekzekutimin e kodit që nuk verifikohet në Secure Boot duke manipuluar pajisjet USB.
  • CVE-2020-27749 është një tejmbushje buferi në funksionin grub_parser_split_cmdline(), i cili mund të shkaktohet nga specifikimi i variablave më të mëdhenj se 2 KB në linjën e komandës GRUB1. Dobësia lejon që ekzekutimi i kodit të anashkalojë Secure Boot.
  • CVE-2020-27779 – Komanda cutmem lejon një sulmues të heqë një sërë adresash nga memoria për të anashkaluar Secure Boot.
  • CVE-2021-3418 - Ndryshimet në shim_lock krijuan një vektor shtesë për të shfrytëzuar cenueshmërinë e vitit të kaluar CVE-2020-15705. Duke instaluar certifikatën e përdorur për të nënshkruar GRUB2 në dbx, GRUB2 lejoi që çdo kernel të ngarkohej drejtpërdrejt pa verifikuar nënshkrimin.
  • CVE-2021-20225 - Mundësia e shkrimit të të dhënave jashtë kufijve gjatë ekzekutimit të komandave me një numër shumë të madh opsionesh.
  • CVE-2021-20233 - Mundësia e shkrimit të të dhënave jashtë kufijve për shkak të llogaritjes së gabuar të madhësisë së tamponit kur përdorni thonjëza. Gjatë llogaritjes së madhësisë, supozohej se kërkoheshin tre karaktere për t'i shpëtuar një citimi të vetëm, kur në fakt kërkoheshin katër.

Burimi: opennet.ru

Shto një koment