LINUX.ORG.RU

Второй случай «малвари» в прошивке UEFI

 , ,


0

0

https://arstechnica.com/information-technology/2020/10/custom-made-uefi-bootkit-found-lurking-in-the-wild/?amp=1

Для «Ъ»: Лаборатория Касперского нашла второй в истории «вирус страшный» в прошивке UEFI, подставлявший исполняемый файл IntelUpdate.exe в автозагрузку. Этот файлик уже соединялся с сервером, грузил ещё дерьма, и так по цепочке. Более того, по словам специалистов, это всё подстраивается под конкретного человека!

Можно купить малину и ходить в интернет через нее, а всё скаченное отправлять в хранилище(без административного доступа к нему и отключенного от интернет). Профит.

anonymous
()
Ответ на: комментарий от SakuraKun

если и находилась дыра, там нужно было ещё постараться чтобы правильно вклинить что-то туда, и делать это под конкретную плату.

Все BIOS не писали с нуля. Можно написать вирус, который работает на серии прошивок.

А общее количество модулей - 284, почти 300!

Это проблема не UEFI, а авторов конкретных прошивок.

X512 ★★★★★
()
Ответ на: комментарий от anonymous

Там было конкретно под южные мосты и т.д. - то есть те компоненты, которые чисто физически не могут быть на AMD-шном ноуте. Конечно, ты можешь сказать, что это было для интеловских ленов и «завалялось» - но уже даже это, само по себе, говорит о качестве UEFI и «внимании к деталям» его разработчиков.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от anonymous

Малина - одних из худших одноплатников по версии FSF т.е. по «заблобованности», поэтому не самая удачная альтернатива.

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

внимании к деталям

это ни на что не влияет. как говорится, работает - не трожь. наоборот показывает, что разработчики занимаются важными вещами, а не пердолингом для «красоты» которой никто не видит

anonymous
()
Ответ на: комментарий от X512

Все BIOS не писали с нуля. Можно написать вирус, который работает на серии прошивок.

Действительно, можно пытаться нацеливаться на общее в архитектуре БИОСов написанных одной компанией. Но это все равно таргетированная работа, тем более что раньше и компаний-создателей БИОСов было больше. А сейчас, есть возможность написать вредоносный UEFI-модуль совместимый с любыми UEFI на x86 и намного более простым подключением.

Это проблема не UEFI, а авторов конкретных прошивок.

Только таких прошивок - большинство; и, возможно, сама архитектура UEFI подталкивает к такому низкому качеству разработки. Это как, если будешь говнокодить на Си то быстро выстрелишь в себе в ногу, а в «веб-программировании» (если его можно назвать программированием) многое прощается.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

говорит о качестве UEFI

Это лучше, чем BIOS с кучей багов и несовместимостей, намертво зависающий от жёсткого диска слишком большого объёма. Любой код, общающийся с BIOS, полон костылей. О безопасности и говорить не приходится, security through obscurity.

BIOS безнадёжно устарел и его полная ликвидация - вопрос времени. Уже есть компьютеры без поддержки MBR boot. Классические BIOS уже наверное почти все вымерли и вместо них используется режим совместимости.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Но это все равно таргетированная работа

Из заглавного сообщения:

Более того, по словам специалистов, это всё подстраивается под конкретного человека!

X512 ★★★★★
()
Ответ на: комментарий от anonymous

Судя по количеству багов в проприетарных UEFI, это не так. Например, у меня на ноуте проблемы с загрузкой линукса если не поставить загрузку-по-сети первой в приоритете (зачем? для работы бекдора?)

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

Только таких прошивок - большинство; и, возможно, сама архитектура UEFI подталкивает к такому низкому качеству разработки.

Кривых BIOS тоже было полно. Тоже зависание от большого жёсткого диска или требование особой структуры разделов для успешной загрузки. Иногда код MBR не работал с конкретными BIOS. После UEFI ситуация стала намного лучше.

X512 ★★★★★
()
Ответ на: комментарий от SakuraKun

Например, у меня на ноуте проблемы с загрузкой линукса если не поставить загрузку-по-сети первой в приоритете

А если выключить legacy boot и грузиться через UEFI?

X512 ★★★★★
()
Ответ на: комментарий от anonymous

Ничто не мешает тебе портировать коребут на имеющуюся у тебя плату, или продать её и купить на эти деньги поддерживаемую.

SakuraKun ★★★★★
()
Ответ на: комментарий от X512

у меня криво грузилось и через UEFI, и через UEFI-CSM. а coreboot - он просто работает

SakuraKun ★★★★★
()
Ответ на: комментарий от X512

Это лучше, чем BIOS с кучей багов и несовместимостей

Любая проприетарщина - это куча багов и несовместимостей.

жёсткие диски слишком большого объёма

обычный BIOS не поддерживает только загрузку с таких дисков - и то, эту поддержку можно было бы добавить и без перехода на UEFI. Вообще, с теоретической точки зрения, нет ничего такого, что может UEFI но не может BIOS.

BIOS безнадёжно устарел

Но есть SeaBIOS - современный «legacy-style» BIOS на чистом C и всего лишь ~50k строк кода - а чем меньше строк, тем меньше багов.

Судя по отчётам board_status, именно SeaBIOS используют >90% коребутчиков в качестве «полезной нагрузки» payload для коребута (сам коребут лишь инициализирует железо, после чего передаёт управление payload-у). И именно это ярче всего доказывает не-нужность UEFI: ведь если бы UEFI был так нужен, то коребутчики - люди, у которых есть реальная возможность выбора - ставили бы Tianocore вместо SeaBIOS.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

наличие логики мне мешает понять, как необходимость дописывать кор ебут показывает, что в нём занимались важными вещами, когда у проприетарщика всё работает там же

anonymous
()
Ответ на: комментарий от SakuraKun

теоретической точки зрения, нет ничего такого, что может UEFI но не может BIOS

загрузку ядра напрямую с фс вместо хрупкого mbr поддерживает, ммм?

anonymous
()
Ответ на: комментарий от X512

Даже если SeaBIOS сейчас не поддерживает каких-то плюшек UEFI (например, GPT) - с технической точки зрения ничто не мешает добавить их, благо SeaBIOS написан на высококачественном Си, а не лапше из ассемблера как у «традиционных БИОСов», и его код весьма мал по сравнению с жирным UEFI (даже опенсорсный Tianocore в десятки-сотни раз больше). Если же со стороны сообщества не видно особого рвения на этот счёт - значит, эти плюшки не так уж и нужны. У меня вот до сих пор нет 4ТБ жёсткого диска, на который я хотел бы поставить ОС и грузиться именно с него. Да и по 1-2ТБ выгоднее брать ради сохранности информации.

Большинству людей UEFI достался просто с новым железом, сами они его не выбирали - как и всякие Secure Boot и прочие его извращения. Реально, людям нужна менюшка выбора источника загрузки: все остальные настройки хоть и выносят обычно в меню, идеальные параметры уже должны быть подобраны производителем. (Например: нафига выключать виртуализацию по умолчанию?) SeaBIOS как раз и даёт только меню выбора источника загрузки, а для остальных настроек коребутчики один раз выбирают оптимальные значения и вкомпиливают их в coreboot.

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

Вообще, с теоретической точки зрения, нет ничего такого, что может UEFI но не может BIOS.

BIOS не умеет работать без 16 битного реального режима. Выпилят этот режим и настанет конец BIOS’у. Про другие платформы можно вообще не говорить, а UEFI и на ARM работает.

Но есть SeaBIOS - современный «legacy-style» BIOS на чистом C и всего лишь ~50k строк кода

Любительская поделка для эмуляторов. Кроме фанатиков её на реальное железо никто не ставит.

И именно это ярче всего доказывает не-нужность UEFI: ведь если бы UEFI был так нужен, то коребутчики - люди, у которых есть реальная возможность выбора - ставили бы Tianocore вместо SeaBIOS.

Оценивать нужность UEFI по 2.5 фанатикам coreboot - так себе затея. Я бы не рисковал ставить coreboot, так что-нибудь спалить можно. Официальную прошивку пишут авторы оборудования или с доступом к официальной документации к оборудованию. Миллионы компьютеров статистически показывают, что прошивка работает.

ставили бы Tianocore вместо SeaBIOS.

Скорее всего просто не осилили. Этот coreboot развивается так медленно, что сделать поддержку UEFI ещё не успели.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Судя по тому, что я могу загрузить KolibriOS из CBFS (файловая система coreboot в БИОС-чипе) используя SeaBIOS - такая возможность есть.

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

со стороны сообщества не видно особого рвения

со стороны абсолютно подавляющего большинства нет рвения в установки кор ебутов. тем временем эти люди массово используют gpt и 4тб диски

anonymous
()
Ответ на: комментарий от X512

BIOS не умеет работать без 16 битного реального режима

Так-то в SeaBIOS есть по крайней мере частичная поддержка 32-бит (например, 32-bit PCI BIOS calls) - если будет реально нужно, допилят и остальное.

Любительская поделка для эмуляторов. Кроме фанатиков её на реальное железо никто не ставит.

SeaBIOS прекрасно работает на реальном железе, и народу на coreboot / libreboot намного больше чем вы можете себе представить: учитывая то, что из одной темы на русскоязычном форуме, сборки коребута под конкретный ноут скачали свыше тысячи раз.

Я бы не рисковал ставить coreboot, так что-нибудь спалить можно.

Сколько лет подписан на списки рассылки, ни разу не слышал чтобы coreboot что-нибудь спалил. Если только при прошивке через прищепку кривыми руками разломать железо.

Официальную прошивку пишут авторы оборудования или с доступом к официальной документации к оборудованию.

coreboot тоже пишут с доступом к официальной документации к оборудованию. Например, для AMD есть куча документов вроде «BIOS and Kernel Developer's Guide (BKDG)» в открытом доступе безо всяких NDA! к тому же, AMD выложила в опенсорс библиотеку AGESA инициализирующую все основные компоненты железа. Да и схемы матплат зачастую можно найти, если поискать. Если же официальной документации нет - то вероятность, что для платы будет поддержка в coreboot, крайне мала, так что можете не переживать. и проприетарные и опенсорсные прошивки - пишут люди, только у одних есть жёсткие временные рамки и прочие стимулы сделать тяп-ляп, другие же не спеша прогают под себя пока не достигнут вершины качества.

SakuraKun ★★★★★
()
Ответ на: комментарий от X512

Tianocore даёт поддержку UEFI из коробки, вставляешь в coreboot - вот тебе и UEFI. Только вот большинство коребутчиков прекрасно обходится без него. К тому же, негативные воспоминания о качестве проприетарных UEFI - тоже дают свои плоды. Люди бегут от проприетарных UEFI на coreboot не для того, чтобы водрузить его опенсорсное подобие.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ничто не мешает тебе и с обычным БИОСом, возможно даже проприетарным, использовать gpt и 4тб диски, просто ты не сможешь грузиться с них. Но использовать 4тб диск в качестве загрузочного накопителя - то ещё извращение.

SakuraKun ★★★★★
()
Ответ на: комментарий от anonymous

По крайней мере ты можешь или засунуть линуксовое ядро в coreboot, или грузить его с раздела диска при помощи GRUB засунутого в coreboot, даже зашифрованные разделы поддерживаются. Но я этим не пользуюсь, поэтому не знаю насколько это всё удобно.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Так-то в SeaBIOS есть по крайней мере частичная поддержка 32-бит

512 байт MBR предписывают запуск кода в 16 битном реальном режиме и ничего с этим не поделаешь. Сама по себе спецификация UEFI не сложная и базовую поддержку можно добавить в SeaBIOS. В U-Boot добавили базовую поддержку UEFI. Зачем оставлять 16 битный анахронизм - непонятно.

сборки коребута под конкретный ноут скачали свыше тысячи раз

И это много?

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от SakuraKun

Но использовать 4тб диск в качестве загрузочного накопителя - то ещё извращение.

Использовать отдельный загрузочный диск - ещё большее извращение. Время загрузочных дискет прошло.

X512 ★★★★★
()
Ответ на: комментарий от SakuraKun

использовать 4тб диск в качестве загрузочного накопителя - то ещё извращение

с чего бы это? не паришься о каких-то там выдуманных ограничениях, а просто грузишь

anonymous
()
Ответ на: комментарий от X512

Учитывая, что русскоязычных 3% от всего населения Земли, и сборка под конкретную модель ноута, свыше тысячи скачиваний - это весьма приличный результат. Получается, пользователей coreboot гораздо больше, чем кажется на первый взгляд. Отсортировав всех авторов коммитов в coreboot и удалив дубликаты (одинаковое имя с разных почт), получаю ~1000 разных авторов. Даже если предположить, что на одного разраба приходится не 1000 а хотя бы 100 юзеров - это уже гарантирует 100000 пользователей коребута: которые не просто сбежали от багов и бэкдоров UEFI вроде Computrace, но и наслажаются более широким функционалом и бесплатными многолетними обновлениями БИОСа.

Например: под мой ноут уже >6 лет не выходили обновления проприетарного БИОСа, несмотря на неисправленные крит.баги вроде проблемы с загрузкой линукса, нерабочего IOMMU и ряда других проблем; а в coreboot всё идеально работает кроме вебкамеры которая мне и не нужна, иначе бы давно пофиксил. Как говорится: любители построили ковчег, а профессионалы - Титаник

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 3)
Ответ на: комментарий от anonymous

Грузиться с 4ТБ диска - это очень нишевый юзкейс. Чем меньше людей, с ним сталкивающимся, тем меньше желающих пофиксить.

SakuraKun ★★★★★
()
Ответ на: комментарий от SakuraKun

обычный юзкейс. таких дисков всё больше, люди тупо накатывают туда систему и всё

anonymous
()
Ответ на: комментарий от SakuraKun

предположить, что на одного разраба приходится не 1000 а хотя бы 100

@ на практике единственный пользователь - автор. причём был, но уже забросил эту фигню

anonymous
()
Ответ на: комментарий от BLOBster
Второй обнаруженный случай (((малвари))) в прошивке UEFI

fix

anonymous
()
Ответ на: комментарий от anonymous

Или сервак ASUS KGPE-D16 с двумя шестнадцатиядерными AMD Opteron и 192GB оперативки (правда, придётся несвежий коребут ставить), или просто куплю две-три «копии» моего железа: а дальше, можно запускать разные тяжёлые задачи на разных ПК, и даже соединить их в вычислительный кластер для удобства. Ещё вариант: рабочая станция TALOS II - https://www.raptorcs.com/content/TL2WK2/intro.html , но нужно лишних ~$10000 да и не x86 это.

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Ответ на: комментарий от kmeaw

несмотря на унификацию всего в UEFI это аж целый второй вирус такого рода?

Вирусы с UEFI из под ОС уже невидимы. Их должен процесс Secure Boot ловить проверяя подпись UEFI перед ее исполнением.

anonymous
()

Вставлю свои пять копеек.

Вопреки распространённому мнению, вирусам UEFI и BIOS не нужно обходить secure boot для того, чтобы записываться в прошивку и перманентно заражать устройство пользователя. Secure boot от них просто ничем не поможет. Он спасёт от руткитов, от буткитов, которые ставят в систему зловредные левые драйвера без подписи. Но от заражения на уровне UEFI… вы же видели когда-нибудь у некоторых производителей утилиты для обновления биоса, да? Они работают полностью в юзерспейсе, всё, что им нужно для работы - права админа. Злобный хакер, который добился в системе прав уровня NT AUTHORITY/SYSTEM (это не так уж и сложно сделать - book.hacktricks.xyz, раздел Windows Privilege Escalation, WinPEAS - опасное оружие в руках неправильного человека), может провернуть это в два счёта, и вы даже не заметите, что что-то не так. Даже если прошивка требует подписи на уровне UEFI, атакующий может просто заставить ядро вернуть ложный результат проверки подписи, и вы не узнаете, что ваш BIOS/UEFI был только что инфицирован.

К счастью, руткиты BIOS/UEFI мало полезны в реальной жизни, потому что свободное пространство в прошивке очень сильно ограничено, а низкоуровневое программирование процесса загрузки осилит не каждый l33t h4ck3r, так что используются они, в основном, с одной целью - запускать малварь уровня ядра, сохранённую где-нибудь в незаметном месте во взломанной системе. Да и понять, что с прошивкой что-то не то, можно просто сравнив контрольную сумму образа UEFI, взятого с ROM-чипа заражённой системы, и сравнив её с хэшем доверенной прошивки от производителя. А ещё джамперы на платах запрещают перезапись прошивки физически, что ещё выше задирает планку для атакующего, чтобы успешно заразить ваш компьютер и остаться при этом незамеченным.

Так что можно в какой-то мере расслабить булки.

imanesku
()
Ответ на: комментарий от imanesku

А чё, никто не в курсе? Новая уязвимость линукса: BootHole (комментарий)

Ты не в теме как проходит процесс загрузки?

Тебе знакомы понятия Machine Owner Key (MOK) «корневой ключ платформы»?

Именно этим ключом должен подписывается UEFI и пред запуском проверяется! А иначе лови буткита…

anonymous
()
Ответ на: комментарий от anonymous

А вот для обхода этой проверки всякие анб и юзают уязвимости в уефи/биос Но буткиты такого уровня малопрактичны, к счастью. Я бы не стал рисковать и выбрал что-нибудь более проверенное типа постоянного висения в памяти сервера duqu2-alike

imanesku
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.