UEFI Secure Boot бағдарламасын айналып өтетін GRUB2 осалдықтары

UEFI Secure Boot механизмін айналып өтуге және тексерілмеген кодты іске қосуға мүмкіндік беретін, мысалы, жүктеуші немесе ядро ​​деңгейінде жұмыс істейтін зиянды бағдарламаны енгізуге мүмкіндік беретін GRUB2 жүктегішінде 7 осалдық түзетілді. Сонымен қатар, UEFI Secure Boot бағдарламасын айналып өтуге мүмкіндік беретін шеге қабатында бір осалдық бар. Осалдықтар тобының код атауы Boothole 3 болды, бұрын жүктеушіде анықталған ұқсас мәселелерге ұқсас.

GRUB2 және shim жүйесіндегі мәселелерді шешу үшін дистрибутивтер GRUB2, shim және fwupd үшін қолдау көрсетілетін SBAT (UEFI Secure Boot Advanced Targeting) механизмін пайдалана алады. SBAT Microsoft корпорациясымен бірлесіп әзірленген және өндіруші, өнім, құрамдас және нұсқа туралы ақпаратты қамтитын UEFI құрамдас орындалатын файлдарына қосымша метадеректер қосуды қамтиды. Көрсетілген метадеректерге сандық қол қойылған және UEFI Secure Boot үшін рұқсат етілген немесе тыйым салынған құрамдастардың тізіміне бөлек қосылуы мүмкін.

Көптеген Linux дистрибутивтері UEFI Secure Boot режимінде тексерілген жүктеу үшін Microsoft корпорациясы цифрлық қолтаңбасы бар шағын жабын қабатын пайдаланады. Бұл деңгей GRUB2-ді өз сертификатымен тексереді, бұл тарату әзірлеушілеріне әрбір ядроны және GRUB жаңартуын Microsoft корпорациясымен растамауға мүмкіндік береді. GRUB2-дегі осалдықтар кодты панельді сәтті тексергеннен кейін, бірақ операциялық жүйені жүктемес бұрын, сенімді жүктеу режимі белсенді түрде сенім тізбегіне еніп, келесі жүктеу процесін толық бақылауға, соның ішінде басқасын жүктеуге мүмкіндік береді. ОЖ, операциялық жүйе құрамдастарының жүйесін өзгерту және бұғаттаудан қорғауды айналып өту.

Жүктеушідегі мәселелерді шешу үшін дистрибутивтерге жаңа ішкі сандық қолтаңбалар жасау және орнатушыларды, жүктеушілерді, ядро ​​пакеттерін, fwupd микробағдарламасын және shim-қабатты жаңарту қажет болады. SBAT енгізілгенге дейін қайтарып алынған сертификаттар тізімін жаңарту (dbx, UEFI Revocation List) осалдықты толығымен блоктаудың міндетті шарты болды, өйткені шабуылдаушы қолданылатын амалдық жүйеге қарамастан, ескі осал нұсқасы бар жүктеу медиасын пайдалана алады. UEFI Secure Boot мүмкіндігін бұзу үшін сандық қолтаңбамен куәландырылған GRUB2.

Қолтаңбаны қайтарып алудың орнына, SBAT оны Secure Boot кілттерін қайтарып алуды қажет етпей, жеке құрамдас нұсқа нөмірлері үшін пайдалануды блоктауға мүмкіндік береді. SBAT арқылы осалдықтарды бұғаттау UEFI CRL (dbx) пайдалануды қажет етпейді, бірақ қолтаңбаларды жасау және GRUB2, shim және дистрибутивтермен қамтамасыз етілген басқа жүктеу артефактілерін жаңарту үшін ішкі кілтті ауыстыру деңгейінде орындалады. SBAT қолдауы енді ең танымал Linux дистрибутивтеріне қосылды.

Анықталған осалдықтар:

  • CVE-2021-3696, CVE-2021-3695 - арнайы әзірленген PNG кескіндерін өңдеу кезінде буфер толып кетеді, оны теориялық тұрғыдан шабуыл кодын орындауды ұйымдастыру және UEFI Secure Boot бағдарламасын айналып өту үшін пайдалануға болады. Мәселені пайдалану қиын екені атап өтіледі, өйткені жұмыс істейтін эксплойтты құру көптеген факторларды және жад орналасуы туралы ақпараттың болуын ескеруді талап етеді.
  • CVE-2021-3697 - JPEG кескін өңдеу кодындағы буфердің жеткіліксіздігі. Мәселені пайдалану жад орналасуын білуді талап етеді және PNG мәселесі (CVSS 7.5) сияқты күрделілік деңгейінде болады.
  • CVE-2022-28733 - Арнайы жасалған IP пакетін жіберу арқылы rsm->total_len параметріне әсер етуге мүмкіндік беретін grub_net_recv_ip4_packets() функциясындағы бүтін сандардың толып кетуі. Мәселе ұсынылған осалдықтардың ең қауіптісі ретінде белгіленген (CVSS 8.1). Сәтті пайдаланылса, осалдық деректерді әдейі кішірек жад өлшемін бөлу арқылы буфер шекарасынан тыс жазуға мүмкіндік береді.
  • CVE-2022-28734 - бөлінген HTTP тақырыптарын өңдеу кезінде бір байт буфердің толып кетуі. Мәселе арнайы жасалған HTTP сұрауларын талдау кезінде GRUB2 метадеректерінің бүлінуіне әкелуі мүмкін (буфердің соңынан бос байт жазу).
  • CVE-2022-28735 - shim_lock тексерушісіндегі мәселе ядролық емес файлдарды жүктеуге мүмкіндік береді. Осалдық қол қойылмаған ядро ​​модульдерін немесе расталмаған кодты UEFI Secure Boot режиміне жүктеу үшін пайдаланылуы мүмкін.
  • CVE-2022-28736 - grub_cmd_chainloader() функциясында әлдеқашан босатылған жад аймағына GRUB2 қолдамайтын операциялық жүйелерді жүктеу үшін пайдаланылатын тізбекті жүктеуші пәрменін қайта іске қосу арқылы қол жеткізу. Егер шабуылдаушы GRUB2 жадты бөлу ерекшеліктерін анықтай алса, эксплуатация шабуылдаушы кодының орындалуына әкелуі мүмкін.
  • CVE-2022-28737 - реттелетін EFI кескіндерін жүктеп, орындаған кезде handle_image() функциясындағы шим қабатындағы буфердің толып кетуі.

Ақпарат көзі: opennet.ru

пікір қалдыру