Комментарии 46

А как именно мы должны отличить надёжного производителя?

Если говорить про десктопы, то более-менее прилично прошивки пишут (и поддерживают) Dell, HP и Apple.
более-менее прилично прошивки пишут… HP

Я вот сейчас сижу рядом с убитым свежей прошивкой МФУ HP LJ 425dw и думаю — ну-ну...


PS. как оказалось после звонка в HP они в курсе, что эта прошивка, с июля (!) лежащая на официальном сайте, убивает сеть в МФУ. Третий день жду предыдущую прошивку.

Речь шла о безопасности и ПК.

А если говорить о багах вообще, то я тут на руках имею не самую дешёвую (12 тысяч) материнку Gigabyte, у которого вышло уже 8 версий прошивки, но всё ещё складывается стойкое ощущение, что это сырая бета, а «безопасность» там даже не ночевала.
Никогда нельзя быть уверенным в том, что производитель корректно использует те или иные фичи, предлагаемые создателями процессоров. Однако некоторые производители оборудования оставляют подробные описания того, как фичи были реализованы в их продуктах. Имеет смысл покопаться на сайтах производителя в поисках описаний тех фич, которые важны для Вас при покупке.
Известны случаи атак, при которых злоумышленник заменял BIOS или Boot loader на собственные, уязвимые и, по сути, превращал компьютер в «кирпич» (именно поэтому такой тип атак называется Bricking).

известны случаи, когда за пару минут программатором зашивался новый bios, а уж bootloader восстановить — даже программатор не нужен. такой вот ubricking =Ъ

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

имхо лучшая защита bios от записи — аппаратное отключение этой самой записи. для этого хватит простой перемычки и не надо городить огороды. а если есть физический доступ к железу, то никакая защита не спасёт от окирпичивания. миллионы залитых ноутбуков не дадут соврать.
Наскидку вспомнился Чернобыль (https://ru.wikipedia.org/wiki/CIH), хорошо гадил хозяевам железок, до окирпичивания.
ну не до полного. мой первый собраный компьютер был как раз на основе материнской платы, где пришлось восстанавливать bios программатором из-за этой дряни.
но да, запамятовал, давно это было.
Навскидку — вспомните всякие трояны-шифровальщики, к примеру Petya (т.к. он лез дальше всех, в MBR). А теперь представляем ноут, на котором не настроен/неправильно настроен BG(превед некоторым известным фирмам), но мы люди продвинутые и имея TPM/fTPM врубаем BitLocker или ещё какое-то полнодисковое шифрование, чтобы обезопасить себя от «эй пацанчик, дай ноут погонять»(к примеру). Вроде всё шикарно, после гопстопа мы теряем только железку, а не 100500 денег, инфа о способе получения доступа к которым была на ноуте. Но вот появляется злобный хакер, который слегка переделывает Петю — зачем писаться в MBR, если можно тупо вписаться в UEFI и вывести предложение занести битков с самого начала. Кирпич? Натуральный. Спасти данные — ну если не скопировали ключи куда-то для восстановления, то увы нет. Притянуто за уши довольно сильно, но возможно.
по сути, все эти «умные модули» — чёрные ящики и вот если там что-то пойдёт не так… используешь tpm, зашифровал bitlocker'ом весь диск? а если тот tpm отдаст концы?
bios то чёрт с ним, перепрошить можно, пусть и с потерей ключей, но железка раскирпичится. хотя и тут можно подстраховаться и сделать бэкап bios'а со всеми ключами, благо процесс быстрый, а сам бэкап почти ничего не весит, скинул на старую флэшку и забыл.

по мне, так гораздо опаснее, если шифровальщик зашифровал именно файлы пользователя, пока тот ворон считал.

Хранить ценные данные в единственном экземпляре на ноутбуке безответственно и глупо.

Если бы все были ответственными и умными, то было бы замечательно. Но как показывает практика — мы живём в реальном мире.

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

История и предпосылки создания
— предпосылки простые что бы пользователь не мог поменять ось. В качестве примера можно ноутбуки acer рассмотреть — или win10 или покупай другой ноут.
Весь этот лишний геморой только увеличивает число мест где может возникнуть отказы. И вместо решения задачи создаёт новые. И если у кого-то есть иллюзии что это только ради борьбы с ветриными мельницами злоумышленниками. Как выше написали, банальная перемычка на плате решает задачу гораздо проще и лучше.
Boot Guard была настроена некорректно
этого и следовало ожидать. От спецификации на uefi и дополнительные костыли свихнуться можно.
Secure Boot отключается на Acer'ах, но, зачастую приходится производить не очень тривиальные манипуляции, например, установить пароль admin (в UEFI), отключить SB, поменять режим работы контроллера SATA (после этого Windows не загрузится без дополнительных телодвижений или определённых предварительных действий), после этого можно убрать пароль
Недавно был ноут acer aspire 3 там только UEFIx64 secure boot отключается, но линух не загрузит просто виснет.
Виснут любые дистрибутивы?
На каких испробовано?
Какие параметры ядра использовались?
Ubuntu 20.04
Отстальные пробывать не стал. Семерка тоже не стартанула. Поставил 10ку и отдал.
То есть, никто даже не попытался никак решить эту проблему.
Возможно даже та же Ubuntu с другим ядром, или даже с тем же ядром, но определёнными параметрами ядра (есть даже отдельный пункт в загрузочном меню) могла загрузиться, но Вы утверждаете, что Linux не грузится
Если вы не включили(или у вас там его просто нет) CSM, то запуск семёрки у вас на этом ноуте будет чудом.
Именно там биос без CSM. Только UEFI64. В инетах никто не смог запустить семёрку. При этом полно советчиков: зачем вам семёрка ставьте десятку, для семерки дров не найдёте и т.п. Но мне надо было убунту запустить. И тут оказалось что тоже жопа.

ps: Вот чувствую что чем дальше тем таких чудес будет больше. И boot guard для этих же целей.

pps: В семёрка работает на этом ноуте только в виртуалке. Только из-за того что так решил производитель. Поэтому этот высер acer буду впредь обходить стороной.

ppps: Чем дельше в лес тем толче партизаны: ssd — есть подвохи с ресурсом у TLC, hdd — черепичная запись, новые ноуты засады с биосом да и материнки не отстают, soc чего нибудь да нет, amd процы — засады с совместимость с по… шеф всё пропало.
Семёрка без CSM-а имеет одну проблему: в загрузчике он не использует GOP драйвер, а полагается на Legacy Int10h(чем там думали мелкомягкие я не знаю, но точно не головой), который без CSM отсутствует. В лучшем случае можно получить загружаемую семёрку, но видео не будет ровно до того момента, как стартует виндовый драйвер видеокарты. Правда обычно она просто не запускается.
По некоторым данным иногда все-же запускается, но на полутора платах с двумя с половиной древними версиями прошивки, которые, скорее всего, просто CSM не полностью отключают.
Да толку уже от этого, если с драйверами проблемы. Знакомый тут купил себе 3080 и, судя по «Пищит 1 длинный 2 коротких, если стоит Legacy only», там таки уже нет Legacy OpRom, остался только UEFI. Ещё несколько лет и CSM наконец-то похоронят окончательно, чему я буду очень рад.
Главное чтобы его немедленно не откопали IBV, и не начали продавать как value-add, хвалясь совместимостью их новейших систем с MSDOS 6.22 и Windows ME…
Брр, чур меня, ненене, стюардессу уже надо закопать и забетонировать. Ладно, можно оставить CSM для всяких CoM/SoM и прочего industrial&embedded, но вот с рынка Server&SoHo пжалста нафиг.
И опять у нас в комментариях теории заговора против открытых систем, и отличные-отличные идеи поставить физический переключатель, и забыть о проблемах (и об обновлениях тоже).
Не люблю цитировать сам себя, но придется:
Необходимость двигать тумблер сразу же лишает возможности автоматического обновления прошивки, а т.к. там десяток мегабайт кода (после распаковки), который из крупных кусков кода на С и Ассемблере разных производителей низкооплачиваемые азиатские инженеры собрали на скотч и отборный мат, то в таком коде неизбежны баги, и их очень хочется починить таким образом, чтобы пользователю для этого ничего делать не пришлось. Именно для этого у нас сейчас обновления прошивки ставятся через ESRT прямо из Windows Update и Linux Vendor Firmware Service так же, как и обновления драйверов и остального софта. Просто прошивка современного ПК и сервера — давно уже намного более software, чем firmware, там сетевой стек от FreeBSD, драйверы для FAT32 и NTFS, и OpenGL в BIOS Setup. А сделаешь тумблер — и все, никаких тебе автоматических обновлений, потому что у пользователя лапки, и никакие тумблеры он переключать не будет, потому что боится, потому что сложно, и потому что «лошадь в ванне с огурцами.жпг».

И тумблер WE/RO, и резервирование, и несколько микросхем физически — все это делается давно и успешно на промышленной электронике, обслуживаемой профессионалами за деньги. А тут у нас домашняя электроника, которую пользователь боится больше, чем она его, и потому все подобные начинания будут немедленно зарезаны отделом дизайна и отделом маркетинга у всех компаний, ориентирующихся не на энтузиастов. Для остальных есть ребята типа Purism и system76, у которых там и прошивки все открытые, и тумблер они могут поставить легко, если их убедить в том, что с тумблером их целевая аудитория энтузиастов купит больше их продукции.
Ну и кстати, свою собственную прошивку на наличие и правильную настройку Intel BootGuard можно проверить, открыв файл с ней в свежей версии UEFITool NE:

Заодно могу порекомендовать вот эту презентацию об относительно недавней TOCTOU-атаке на Boot Guard, из которой я взял картинку выше.
О, спасибо за ссылку на презентацию, постоянно забываю, что кроме msi ещё и гигабайт в лужу сел.
Здесь в лужу села вся индустрия целиком, и уязвимость вот эту починят на реальных машинах приблизительно к следующей ишачьей пасхе.
Ну жыжа с msi села в том смысле, что «да нафига нам его включать/выключать, ещё и ключи какие-то писать, оставим в дефолтном состоянии». Не, ну реально, кирпич получить FITом проще простого.
Я считаю, что это честно в определенном смысле, потому что обманутые ожидания хуже отсутствия таковых. Вся большая четверка азиатских ОЕМов (Asus, Gigabyte, MSI, Asrock) на своих десктопных платах BootGuard не настраивает специально, оставляя простор для модификации прошивок энтузиастами, и потому купить десктопную плату с BG — это целый отдельный квест. С другой стороны этих баррикад у нас Lenovo, которая якобы заботится о безопасности, и якобы настраивает BG, и даже почти перестала косячить с его настройками, но потом выясняется, что проверка DXE-тома отключается одним битом после сигнатуры LNVBBSEC, а сама эта сигнатура лежит в свободном месте тома с NVRAM, который даже PRRами не накрыт. Вот такой BG — хуже, чем никакого.
Брр, тоесть они этот кусок не накрывали ни регистрами чипсета ни самой флешки? Позор однако!
Они этот кусок используют как признак manufacturing mode, и в этом самом режиме отключают много чего, в том числе и проверку хеша DXE-тома. Позор это, или дизайн такой — мне не ведомо, но на самых новых машинах вроде бы исправили уже.

Еще более смешной баг был у AMI, эти отмочили следующее: драйвер BootGuardPei, накрытый BG вместе со всем остальным PEI-томом и хешами, действительно успешно проверял хеши DXE-тома, только вот при несовпадении он не отключал машину и не переводил ее в режим восстановления прошивки, а создавал HOB с одним байтом, чтобы потом BootGuardDxe уже показал пользователю нужный UI и занимался восстановлением уже из DXE. Я когда это осознал — ржал минут десять, а потом пошел и удалил весь BootGuardDxe, и все ожидаемо заработало.

Какие IBV, такие и цепочки доверия, и даже если сам по себе BG может быть настроен идеально, он покрывает только первое звено, а второе может быть любого качества, в том числе и вот такого.
Эээ, а часом на этом Dell не попались? А то мне рассказывали, что обломали всю защиту у делла удалением одного куска прошивки.
Про Dell ничего такого не помню, но они использую AMI AptioV на десктопах и серверах, так что вполне могли использовать тот же самый уязвимый код и не заметить.
Лучше скажите почему при всех этих наворотах и виртуальной машине для UEFI нет универсальных драйверов для оборудования. Так что бы вставил карту, а там подписанный драйвер в минимальном исполнении и url-ы на сайт производителя со всеми реквизитами.

ps: Что плохого в физическом переключателе с надписью «включить защиту от обновлений», что бы не искать его по разным опциям и менюшкам разнообразного по?
1) BOM Cost — переключатель стоит несколько центов. С учётом тотальной экономии на SoHo с этой идеей пошлют нафиг
2) Кто-то переключил переключатель и забыл — превед техподдержка, я хочу секс по телефону, у меня не обновляется прошивка
Универсальные драйвера на самом деле есть: USB/AHCI/NVME, а вот с опцией заказа пиццы из UEFI Setup с поддержкой 3D проблемы — нет современных унифицированных аппаратных стандартов на чипы ethernet/wifi/gpu. Так, чтобы железка при установке операционки говорила «Слыш, тут на меня дрова лежат по адресу: » — сейчас этому уже ничего не мешает. Кроме того, ЕМНИП пара производителей прямо в UEFI Setup имела опцию загрузки драйверов на их материнку (уж не asrock ли часом?)
1. То есть поставить крипточип дешевле перемычки?
2. И чем поможет поддержка в современных реалиях? Просто скажет ну это По мы не поддерживаем покупайте другое железо. Или еще лучше нормальный драйвер мы так и не выпустили, но зато это оборудование мы больше не поддерживаем (привет intel-у)
2.1. Vulkan изобретали не для упрощения и унификации 3D драйверов?
2.2. а причем тут аппаратные стандарты? или они подключаются по vendor-specific-pci-e

3. EBC — не влетело не по причине что компилятор платный. при желании любой студент может сделать компилятор с для этой виртуальной машины. Тем более сейчас есть lvm и можно сделать хороший компилятор. Проблема скорости можно решить jit-ом. Но главная беда в том что эта виртуальная машина спроектирована как платформо-зависмая. И хинтинг можно было заложить если бы выла важна скорость.

4. То что драйвера занимают гигабайты это всего лишь потому что могут. Например драйвет bt занимает 240мб из них 230мб это net framework. Драйвера nvidia занимают гигабайты потому что содержат библиотеки opengl, directx, vulcan, cuda, phisx, nvidia experience, video code-ки… При чем в библиотеках заинлайнены разные реализации под разные архитектуры, разные типы данных, разные выравнивания, разные частные случаи и т.п. И имеем обычный комбинаторный взрыв, когда например библиотека быстрого преобразования фурье занимает 230мб.

5. То что из загрузчика системы сделали дырявую недо ось со всеми дырами, собрав все грабли какие можно было, это как раз современные тренды. Вместо простого решения, надо изящное гибкое современное навороченное с преферансом и шахматистками wifi и tpu. Но на практике получается унылое дырявое кривое и сложное в реализации… то что имеем. С дальнейшим увеличением вычислительных возможностей этой подсистемы вы увидим выносом туда различных drm.
1) Крипточип уже встроен в процессор/чипсет, он ничего не стоит. Я тоже хочу купить себе систему без ME/PSP, но мне все говорят "'x86', 'без ME/PSP', 'быстрая и современная' — выбери два из трёх".
2) Ну от HPE техподдержка более-менее была вменяемой, когда я их последний раз мучал. Что там у асеров и компании — хз
2.1+2.2) И что, реально, на последней интегряшке от интела, последней rtx от nvidia и последней vega от amd, чтобы нарисовать и залить прямоугольник в 2D (начнём с него, потом уже можем в 3D перейти) с ускорением у меня абсолютно одинаковая последовательность записей в регистры/память, одинаковые адреса и т.п.? Универсальность вообщет там есть, её винда даже умеет юзать, называется VESA/VBE, вот только VBE это довольно древний стандарт.
4) Покупайте серверную продукцию HPE — вам там не надо будет думать о драйверах, их для вас встроили в прошивку. Ну реально, запускаем установщик операционной системы (он тоже в прошивке живёт), тыкаем в то, что будем ставить, вставляем диск от этой операционки (сорри, в основном винды) и усё, оно её ставит, на выходе получаем ось с дровами.
5) Я в своё время зае[censored] делая безопасную загрузку с MBR и считаю, что там она попросту невозможна нормальными путями. Если хотите переубедить меня — опишите, как вы разрешите запуск, к примеру, выбранной мной операционной системы, при этом запретив все остальные, плюс запретите запуск неизвестных OpROMов и всё это при работе legacy BIOS. К примеру на UEFI я такую штуку сделал и весьма доволен, особо мучаться не пришлось. Да, даю подсказку: писать скорее всего прийдется на ассемблере.
1. крипточип который уже встроен это еще дополнительный вектор атак и источник беспокойства.
2.*. В UEFI нет int10 VESA/VBE. Там есть UGA_DRAW и GRAPHICS_OUTPUT протоколы. Можно установить режим и блитнуть 4-мя способами. Никаких там треугольников нет. Но ничто не мешает добавить протоколов для например: opengl-es или vulkan-а. Но желающих как-то мало. (Про CoreEG2 и его 42 функции первый раз слышу)

4. Серверных ноутбуков что-то давно не встречал.

5. Поздравляю Вы успешно решили искусственную проблему, которую сами себе поставили. Что вам мешает грузить свои операционки из под гипервизора? Натолкали кучу виртуальных машин в vSphere и управляйте удалённо.

Вообще тут в полный рост проблема разделения ответственностей. В лучших традициях всё перемешали в кучу (инициализацию оборудования, загрузку предзагрузчика и загрузку загрузчика предзагрузчика, драйвера, патчи, защиты от патчей...) и потом героически разгребают, изобретая всё новые механизмы защиты от тех проблем которые заложили ранее. При этом закладывая еще больше новых граблей.
1. Как и писал, либо вам x86(да и aarch64 впринципе тоже уже) с хорошей производительностью, либо без крипточипа. Чтобы и x86 и без крипточипа — добро пожаловать в 2013-2014 года. У вас уже просто не выбора, либо вы сидите на AMD Kabini/Core 2 Duo, либо кушаете ME/PSP большой ложкой.
2. Желающих мало, потому, что это никому нафиг не нужно. Это даже менее нужно, чем установка gentoo linux на современный macbook.
4. Ноутбуки сейчас вообще редкостное гэ.
5. Окей, как будем проверять гипервизор? Поверим на слово, что его ну вообще никак нельзя подменить ни локально ни удалённо?
Окей, как будем проверять гипервизор? Поверим на слово, что его ну вообще никак нельзя подменить ни локально ни удалённо?

А какую цель вы преследуете? Что бы ваше ПО не смогли воспроизвести конкуренты? Или втихаря что-то делать но так что бы никто не мог узнать что именно?
Я смотрю с другой стороны вот у вас частично сдохло оборудование и при таких критозащитах на всех стыках востановить что-либо будет не возможно. А если смотреть еще дальше, то вы просто теряеет контроль над оборудованием и оно уже не ваше, а того кто владеет ключами от крипто замков к которым у вас нед доступа. И эти «хорошие» люди смогут управлять любыми подсистемами уже не вашей машины хоть локально, хоть удалённо. И почему вы больше верите на слово производителям этих закрытых устройств?
И даже еще дальше: все правительства пытаются контролировать средства криптозащиты ибо терористы и другие оправдание есть. И вы думаете что производителей крипточипов не держат за причинное место спецслужбы и что они не могут управлять этими черными ящиками локально и удалённо.

www.youtube.com/watch?v=_eSAF_qT_FY
Нет, цель у меня чтобы на моей машине можно было запустить только то ПО, которое я там хочу там запустить. И если у меня частично сдохнет оборудование, то в случае с UEFI мне достаточно загрузиться с флешки и выполнить пять(или шесть, забыл) команд — и вот я снова защищен. Да, при этом я могу спокойно(в разумных пределах) взять другую материнку/видеокарту/процессор. А вот в случае легаси — хехехе, именно ваш вариант «сдохло и всё» будет. Относительно ME/PSP — вы меня очень невнимательно читали, попробуйте ещё раз. Относительно всякого «АНБ прийдёт и поставит свой бэкдор» — я для них очередной неуловимый Джо, который нафиг никому не нужен.
Виртуальную машину EBC наконец-то выкинули (точнее, сделали опциональной, но это по факту выкинули) в UEFI 2.8. Причин этому много, основная — практически ничего на EBC так и не написали, потому что и ВМ сама по себе получилась медленная, глупая, и компилятор для нее Интел зажала открывать и требовала за него деньги, а на ассемблере писать хоть и можно стало рано или поздно благодаря стараниям энтузиастов, но дураков писать на нем драйверы не нашлось. До 2018 года UEFI реально работала только на х86, и потому никаких причин собирать драйвер в EBC, чтобы он запускался на разных архитектурах, у корпораций не было.
Прошивка никогда не будет делить драйверы для какого-то нетривиального оборудования с полноценной ОС, потому что объем поддерживаемых фич у ОРОМа и драйвера из ОС несравнимый. Драйверу графической карты для UEFI («видеобиосу») нужен, по сути, только фреймбуфер (исключения вроде CoreEG2 у Apple, в котором 42 функции и который поддерживает 3d-ускорение ради того, чтобы recoveryOS не выглядела убого, из за чего некоторым картам приходится шить специальные видеобиосы, редки, и потому я их рассматривать тут не стану), а в ОС уже нужен полноценный драйвер. Замечали тот факт, что видеобиос занимает 128\256\512кб, а видеодрайвер — 200мб? Ну вот поэтому универсальных драйверов и нет — они нафиг не нужны, и задачи сделать их таковыми никогда не ставилось.

Что плохого в переключателе я уже выше пояснил: простой пользователь его боится, а назначение его кому-либо, кроме энтузиастов, практически невозможно пояснить. Подавляющее большинство обычных людей даже не знают, что у них там прошивка какая-то вообще есть в компьютере, для чего она нужна и кому, они открывают крышку ноутбука и видят перед собой экран входа в систему. Вся внутренняя кухня этому пользователю активно не интересна, и он из множества вариантов выберет тот, у которого никакие непонятные ручечки крутить не нужно, и непонятные кнопочки нажимать. Пользователь пришел работать и развлекаться, а не принимать решения о запрете\разрешении обновления прошивки. Для энтузиастов же уже сейчас есть возможность купить у purism систему с нужными физическими переключателями, потому что производитель этот — именно на них в качестве своей целевой аудитории и ориентируется, и берет за это вполне осязаемые дополнительные деньги, потому что энтузиастов таковых не много, и больше их не становится.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.