Ir atklÄta informÄcija par 8 ievainojamÄ«bÄm GRUB2 sÄknÄÅ”anas ielÄdÄtÄjÄ, kas ļauj apiet UEFI Secure Boot mehÄnismu un palaist nepÄrbaudÄ«tu kodu, piemÄram, ieviest ļaunprÄtÄ«gu programmatÅ«ru, kas darbojas sÄknÄÅ”anas ielÄdÄtÄja vai kodola lÄ«menÄ«.
AtcerÄsimies, ka lielÄkajÄ daÄ¼Ä Linux izplatÄ«jumu pÄrbaudÄ«tai sÄknÄÅ”anai UEFI Secure Boot režīmÄ tiek izmantots neliels starplikas slÄnis, ko Microsoft parakstÄ«jis ciparparaksts. Å is slÄnis pÄrbauda GRUB2 ar savu sertifikÄtu, kas ļauj izplatÄ«Å”anas izstrÄdÄtÄjiem neļaut katram kodolam un GRUB atjauninÄjumam Microsoft sertificÄt. GRUB2 ievainojamÄ«bas ļauj sasniegt jÅ«su koda izpildi stadijÄ pÄc veiksmÄ«gas shim verifikÄcijas, bet pirms operÄtÄjsistÄmas ielÄdes, ieslÄdzoties uzticÄ«bas Ä·ÄdÄ, kad droÅ”Äs sÄknÄÅ”anas režīms ir aktÄ«vs un iegÅ«stot pilnÄ«gu kontroli pÄr turpmÄko sÄknÄÅ”anas procesu, t.sk. citas operÄtÄjsistÄmas ielÄde, operÄtÄjsistÄmas komponentu sistÄmas modificÄÅ”ana un bloÄ·ÄÅ”anas aizsardzÄ«bas apieÅ”ana.
TÄpat kÄ ar pagÄjuÅ”Ä gada BootHole ievainojamÄ«bu, ar sÄknÄÅ”anas ielÄdÄtÄja atjauninÄÅ”anu nepietiek, lai bloÄ·Ätu problÄmu, jo uzbrucÄjs neatkarÄ«gi no izmantotÄs operÄtÄjsistÄmas var izmantot sÄknÄjamu datu nesÄju ar vecu, digitÄli parakstÄ«tu, ievainojamu GRUB2 versiju, lai apdraudÄtu UEFI Secure Boot. ProblÄmu var atrisinÄt tikai atjauninot sertifikÄtu atsaukÅ”anas sarakstu (dbx, UEFI Revocation List), taÄu Å”ajÄ gadÄ«jumÄ tiks zaudÄta iespÄja izmantot veco instalÄcijas datu nesÄju ar Linux.
SistÄmÄs ar programmaparatÅ«ru, kurai ir atjauninÄts sertifikÄtu atsaukÅ”anas saraksts, UEFI droÅ”Äs sÄknÄÅ”anas režīmÄ var ielÄdÄt tikai atjauninÄtas Linux izplatÄ«jumu versijas. IzplatÄ«jumiem bÅ«s jÄatjaunina instalÄtÄji, sÄknÄÅ”anas ielÄdÄtÄji, kodola pakotnes, fwupd programmaparatÅ«ra un shim slÄnis, Ä£enerÄjot tiem jaunus ciparparakstus. LietotÄjiem bÅ«s jÄatjaunina instalÄcijas attÄli un citi sÄknÄÅ”anas datu nesÄji, kÄ arÄ« jÄielÄdÄ sertifikÄtu atsaukÅ”anas saraksts (dbx) UEFI programmaparatÅ«rÄ. Pirms dbx atjauninÄÅ”anas uz UEFI, sistÄma joprojÄm ir neaizsargÄta neatkarÄ«gi no atjauninÄjumu instalÄÅ”anas operÄtÄjsistÄmÄ. IevainojamÄ«bu statusu var novÄrtÄt Å”ajÄs lapÄs: Ubuntu, SUSE, RHEL, Debian.
ProblÄmu risinÄÅ”anai, kas rodas, izplatot atsauktos sertifikÄtus, turpmÄk plÄnots izmantot SBAT (UEFI Secure Boot Advanced Targeting) mehÄnismu, kura atbalsts ir ieviests priekÅ” GRUB2, shim un fwupd un sÄkot ar nÄkamajiem atjauninÄjumiem izmanto dbxtool pakotnes nodroÅ”inÄtÄs funkcionalitÄtes vietÄ. SBAT tika izstrÄdÄts kopÄ«gi ar Microsoft, un tas ietver jaunu metadatu pievienoÅ”anu UEFI komponentu izpildÄmajiem failiem, kas ietver informÄciju par ražotÄju, produktu, komponentu un versiju. NorÄdÄ«tie metadati ir sertificÄti ar ciparparakstu un papildus var tikt iekļauti UEFI Secure Boot atļauto vai aizliegto komponentu sarakstos. TÄdÄjÄdi SBAT ļaus atsaukÅ”anas laikÄ manipulÄt ar komponentu versiju numuriem bez nepiecieÅ”amÄ«bas atjaunot atslÄgas droÅ”ai sÄknÄÅ”anai un neÄ£enerÄjot jaunus parakstus kodolam, shim, grub2 un fwupd.
IdentificÄtÄs ievainojamÄ«bas:
- CVE-2020-14372 ā izmantojot GRUB2 komandu acpi, priviliÄ£Äts lietotÄjs lokÄlajÄ sistÄmÄ var ielÄdÄt modificÄtas ACPI tabulas, ievietojot SSDT (sekundÄrÄs sistÄmas apraksta tabulu) direktorijÄ /boot/efi un mainot iestatÄ«jumus failÄ grub.cfg. Lai gan droÅ”Äs sÄknÄÅ”anas režīms ir aktÄ«vs, ierosinÄto SSDT izpildÄ«s kodols, un to var izmantot, lai atspÄjotu LockDown aizsardzÄ«bu, kas bloÄ·Ä UEFI droÅ”Äs sÄknÄÅ”anas apieÅ”anas ceļus. TÄ rezultÄtÄ uzbrucÄjs var ielÄdÄt savu kodola moduli vai palaist kodu, izmantojot kexec mehÄnismu, nepÄrbaudot ciparparakstu.
- CVE-2020-25632 ir izmantoÅ”ana pÄc brÄ«vas atmiÅas, ievieÅ”ot komandu rmmod, kas rodas, kad tiek mÄÄ£inÄts izlÄdÄt jebkuru moduli, neÅemot vÄrÄ ar to saistÄ«tÄs atkarÄ«bas. IevainojamÄ«ba neizslÄdz ļaunprÄtÄ«gas izmantoÅ”anas izveidi, kas var izraisÄ«t koda izpildi, apejot droÅ”Äs sÄknÄÅ”anas verifikÄciju.
- CVE-2020-25647 Ärpus robežÄm rakstÄ«Å”ana funkcijÄ grub_usb_device_initialize(), kas tiek izsaukta, inicializÄjot USB ierÄ«ces. ProblÄmu var izmantot, pieslÄdzot speciÄli sagatavotu USB ierÄ«ci, kas ražo parametrus, kuru izmÄrs neatbilst USB struktÅ«rÄm atvÄlÄtÄ bufera izmÄram. UzbrucÄjs var panÄkt tÄda koda izpildi, kas nav pÄrbaudÄ«ts droÅ”ajÄ sÄknÄÅ”anas režīmÄ, manipulÄjot ar USB ierÄ«cÄm.
- CVE-2020-27749 ir āābufera pÄrpilde funkcijÄ grub_parser_split_cmdline(), ko var izraisÄ«t, GRUB2 komandrindÄ norÄdot mainÄ«gos, kas ir lielÄki par 1 KB. IevainojamÄ«ba ļauj koda izpildei apiet droÅ”o sÄknÄÅ”anu.
- CVE-2020-27779 ā komanda cutmem ļauj uzbrucÄjam noÅemt no atmiÅas virkni adreÅ”u, lai apietu droÅ”o sÄknÄÅ”anu.
- CVE-2021-3418 ā izmaiÅas shim_lock radÄ«ja papildu vektoru, lai izmantotu pagÄjuÅ”Ä gada ievainojamÄ«bu CVE-2020-15705. InstalÄjot sertifikÄtu, ko izmanto GRUB2 parakstÄ«Å”anai vietnÄ dbx, GRUB2 ļÄva ielÄdÄt jebkuru kodolu tieÅ”i, nepÄrbaudot parakstu.
- CVE-2021-20225 ā iespÄja rakstÄ«t Ärpus robežÄm datus, izpildot komandas ar ļoti lielu opciju skaitu.
- CVE-2021-20233 ā iespÄja rakstÄ«t datus Ärpus robežÄm nepareiza bufera lieluma aprÄÄ·ina dÄļ, izmantojot pÄdiÅas. AprÄÄ·inot izmÄru, tika pieÅemts, ka ir nepiecieÅ”amas trÄ«s rakstzÄ«mes, lai izvairÄ«tos no vienas pÄdiÅas, lai gan patiesÄ«bÄ bija vajadzÄ«gas Äetras rakstzÄ«mes.
Avots: opennet.ru