Старі та забуті “шим-програми”, які Microsoft не змогла відкликати, зробили обхід Secure Boot тривіальним.
Стандарт, винайдений Microsoft для захисту пристроїв з Windows, а згодом і Linux, від інфекцій прошивки, протягом 13 з 14 років свого існування був тривіальним для обходу. Про це заявили дослідники з компанії ESET, виявивши 11 образів прошивки, щонайменше один з яких датується 2013 роком, які вважалися несправними, але при цьому залишалися підписаними компанією-розробником.
Ці образи відомі як “шим-програми” (shims) і були створені для розширення функціоналу Secure Boot на пристрої з Linux та утилітне програмне забезпечення. Використовуючи техніку, настільки просту, що її можуть застосувати навіть початківці-хакери, ці старі, забуті “шим-програми” можуть бути використані для повного обходу захисту, вбудованого в UEFI (Unified Extensible Firmware Interface) материнської плати пристрою. Ця помилка стала наслідком того, що Microsoft, яка контролює підписання “шим-програм”, не відкликала публічно доступні образи після виявлення в них вразливостей.
Загроза поширюється на користувачів Windows та Linux
Загроза стосується як користувачів Windows, так і Linux, оскільки “шим-програма” може бути встановлена на пристрої з обома операційними системами. Звідти зловмисник може підірвати ланцюжок цифрових підписів прошивки для встановлення шкідливої прошивки, яка завантажується на ранніх етапах процесу запуску та зберігається навіть після перевстановлення ОС або заміни жорсткого диска.
“Небезпека цих старих ‘шим-програм’ полягає не в новій вразливості”, – написав дослідник ESET Мартін Смолар у вівторок. “Вона в тому, що для обходу UEFI Secure Boot не потрібна нова вразливість. Зловмиснику не потрібні складні експлуатаційні примітиви – лише копія старого, все ще довіреного, але не відкликаного бінарного файлу ‘шим-програми’ та базове розуміння роботи UEFI ‘шим-програм’. Цього достатньо для обходу такої важливої функції безпеки, як UEFI Secure Boot”.
Secure Boot було впроваджено у 2012 році для протидії загрозі завантажувальних вірусів (bootkits) – термін для такого шкідливого програмного забезпечення. Без Secure Boot зловмисники, маючи короткий фізичний доступ до пристрою, навіть коли він вимкнений, можуть встановлювати завантажувальні віруси, подібні до LoJax, використаного російськими державними хакерами у 2018 році, MosaicRegressor, виявленого у 2020 році, CosmicStrand у 2022 році та BlackLotus у 2023 році. Деякі інші завантажувальні віруси, що використовуються в реальних атаках, відстежуються під назвами, зокрема, ESpecter, FinSpy та MoonBounce.
Більшість, але не всі, шкідливі програми типу bootkit вимагають від зловмисників фізичного доступу до цільових пристроїв. Такий доступ є однією з моделей загроз, від якої Secure Boot має захищати.
Список усіх 11 “шим-програм”, складений CERT, показує, що деякі з них використовувалися дистрибутивами Linux, такими як Redhat, OpenSuse та Oracle. Інші були частиною стороннього програмного забезпечення, наприклад, PC-Doctor Finland’s Matriculation Examination Board. Багато з них були створені до появи певних захистів, зокрема SBAT та списків заборонених MOK. Інші містять накопичені помилки у своєму коді або у бінарних файлах другого рівня, які вони авторизують.
Цифровий підпис UEFI-завантажувача Microsoft для Windows є єдиним якорем довіри на комп’ютерах з Windows. Щоб компонент міг завантажуватися під час процесу запуску, сертифікат повинен явно підписувати весь інший код, який виконується під час запуску.
“Шим-програми” працюють інакше. Вони є другорядним якорем довіри, і вони підписуються Microsoft за допомогою одного з її інших UEFI-сертифікатів. Звідти сертифікат, що належить материнській платі або виробнику програмного забезпечення, вбудований у “шим-програму”, авторизує все програмне забезпечення, яке завантажується згодом.
Коли у “шим-програмах” виявляються вразливості, Microsoft їх відкликає. У випадку з 11 “шим-програмами” компанія не зробила цього, у деяких випадках протягом понад десятиліття. Компанія нарешті відкликала їх у своєму звичайному щомісячному випуску патчів у червні, після того, як ESET звернула на це увагу CERT та Microsoft.
Складність – ворог виконання
Microsoft ще не пояснила, як і чому стався цей збій. Однією з можливих причин є надзвичайно складний спосіб роботи Secure Boot. І завантажувач Windows, і UEFI “шим-програми” завантажують дві бази даних. База даних `db` містить список усіх дозволених сертифікатів підпису та хешів Authenticode. База даних `dbx` містить сертифікати та хеші, які більше не є надійними. Щоб компонент міг бути завантажений, він повинен бути авторизований через `db` і не бути відкликаним у `dbx`.
Зважаючи на велику кількість компонентів Linux, що виконуються під час запуску, перелічити кожен з них у цих базах даних неможливо, оскільки `dbx` має лише 32 КБ пам’яті. Тому Microsoft вдалася до інших методів відкликання, зокрема SBAT (Secure Boot Advanced Targeting) та Secure Boot Security Version Number (SVN).
“Коротко кажучи, якщо `dbx` відкликає бінарні файли, то SBAT і Secure Boot SVN від Microsoft відкликають версії”, – пояснив Смолар. “Коли виявляється вразливість у UEFI-додатку, що підтримує один з цих механізмів відкликання на основі версії, насправді потрібно виключити всі збірки до пошкодженої включно – і це можна охопити номером версії набагато легше, ніж довгим списком хешів”.
Кожен компонент у завантажувачі UEFI містить метадані, підписані тим самим сертифікатом, що й сам бінарний файл. Ці метадані містять назву компонента та номер його покоління, який збільшується щоразу, коли виходить новий виправлення безпеки.
Змінна UEFI, що відповідає лише за завантаження, зберігає мінімально допустимий номер покоління для кожного компонента. Номер змінної застосовується “шим-програмою”, а не прошивкою.
“Шим-програма” також вбудовує політику, тому застосування не покладається виключно на зовнішню змінну. Це дозволяє інтегрувати нову політику через механізм, відомий як SbatLevel.
“При кожному завантаженні ‘шим-програма’ спочатку перевіряє свої метадані SBAT відповідно до політики – таким чином, застаріла ‘шим-програма’ може бути відхилена сама собою – а потім застосовує той самий тест до кожного завантаженого бінарного файлу, відмовляючи будь-якому, чий номер покоління нижчий за мінімальний, що вимагається політикою”, – написав дослідник.
Складність процесу на цьому не зупиняється. Результатом є те, що “шим-програми” вбудовують як керований постачальником, так і вбудований сертифікат “шим-програми”, які авторизують усі наступні завантажувачі та утиліти. Читачі, які бажають отримати більш докладний опис, можуть звернутися до цього розділу у вівторковому пості.
Ще більше ускладнює процес той факт, що навіть закінчення терміну дії сертифіката Microsoft, який підписував “шим-програми” (що сталося наприкінці минулого місяця), недостатньо для відкликання тих, які виявила ESET.
Галерея дефектних “шим-програм”
“Шим-програми”, виявлені ESET, авторизують вторинні компоненти, які відомі своєю вразливістю до різних експлойтів. Наприклад, “шим-програма” Oracle підписує бінарний файл, вразливий до CVE-2015-5381. Смолар зазначив, що навичок, необхідних для експлуатації цієї вразливості, низькі. Інші вразливі “шим-програми” не підтримують захист, такий як застосування списків заборони MOK та SBAT, які з’явилися після випуску відповідної “шим-програми”. Ще інші виявлені “шим-програми” містять вразливості у власному коді.
Задля стислості, багато додаткових деталей, включених до звіту у вівторок, пропущені в цій статті.
Тривожна перспектива
Як зазначалося, ці вразливі “шим-програми” можуть бути використані як проти комп’ютерів з Windows, так і з Linux, хоча, ймовірно, не проти Windows 11 Secured-core PC у їхньому стандартному стані. Будь-який користувач Windows, який встановив червневі оновлення Microsoft, більше не вразливий. Користувачам Linux слід перевірити Linux Vendor Firmware Service або звернутися до свого дистриб’ютора. Статус відкликання можна перевірити за допомогою скрипта uefi-dbx-audit.
Перспектива того, що зловмисники мали засоби для обходу Secure Boot понад десятиліття через те, що по суті є сценаріями “зроби сам”, не є надто позитивним підтвердженням механізму, запропонованого Microsoft у партнерстві з виробниками обладнання. Як зазначалося раніше, ключовим фактором цієї невдачі є його складність.
“Це вагоме підтвердження неспроможності всієї моделі безпечного завантаження”, – сказав в інтерв’ю HD Мур, експерт з безпеки прошивок, генеральний директор і засновник runZero, а також давній критик Secure Boot. Його претензії включають те, що Microsoft є де-факто коренем довіри для всієї платформи UEFI, нездатність захисту до належного масштабування та можливість завантаження компонентів навіть після закінчення терміну дії сертифікатів вищого рівня.
“Кінцевим результатом є величезна кількість невідомих (усім, крім Microsoft) підписаних елементів, які обходять Secure Boot – деякі з них потім можуть бути використані для завантаження інших елементів – і обидва мають звичайні помилки безпеки та інші недоліки, що означає, що вони можуть бути використані для завантаження майже чого завгодно”, – додав Мур. “Вся екосистема певною мірою зламана і потребує перезавантаження”.
Джерело новини: arstechnica.com
