Pull to refresh

Comments 38

Недавно тоже улучшал BIOS в своём ноутбуке -требовалось снять привязку к сетевой карте т.к. не работает под OS X. Метод похожий: поиск vendor id и dev id, правка JNZ на JMP и счастье наступает!
Тул безусловно полезный, пригодиться скоро.
Можно еще исправить не переход (его иногда бывает непросто найти), а просто добавить свое устройство в список.
Во второй части расскажу и про этот класс модов (whitelist removal) тоже.
В моём случае списка небыло, magic number и всё. Сейчас больше проблем доставляет заливка прошивки обратно т.к. похоже, что один из модулей проверяет контрольную сумму, а другой рапортует о невозможности заливки. Как модули общаются друг с другом — пока непонятно.
Программатор спасет отца русской демократии.
На всякого рода презентациях производители UEFI любят рассказывать про то, как они защищают компоненты от модификации при помощи ЭЦП и поддерживают Chain-of-Trust, но по факту я не видел еще ни одного UEFI BIOS'а, в котором действительно бы проверялось что-то, кроме контрольных сумм, обычно все проверки выполняются на этапе прошивки. О способе прошивки модифицированного БИОСа можно еще здесь спросить, но я все равно рекомендую программатор — он в разы надежнее.
Так PhoenixTool все это раньше умел делать, то что описано в этой статье.
Он, все же, больше про SLIC, чем про модификации.
Навскидку: Descriptor не разбирает, ошибки в структуре не видит и не исправляет, код закрытый, требует наличия .Net 3.
Я не оспариваю первенства AndyP (а еще раньше apple_rom с его BIOS Patcher'ом), но не стал бы писать не самую простую программу, если бы аналогичная умела все, что мне нужно.
А нет ли в интернете уже готовой базы образов для разных моделей?
Готовой базы, насколько я знаю, нет, но найти дамп для какого-либо сравнительно популярного железа можно на форумах ремонтников (соответствующий раздел на notebook1.ru, например). Иногда дамп можно сделать из файла с обновлением, дописав в него необходимые данные, но эта возможность есть обычно только у обладателей десктопов.
UFO just landed and posted this here
Если бы и написал — все равно ответил бы, что нет. ;)
Только вот это и не нужно, т.к. SecureBoot включен хорошо если на 2% имеющихся UEFI-систем, да и он не всегда помогает. При этом на одной половине UEFI-систем вообще нет никакой защиты, а на другой она снимается тривиально.
А дальше все просто, бери flashrom, дампай@меняй@прошивай.
UFO just landed and posted this here
Я описываю состояние безопасности существующих систем, а не тех, которые через 3 года встанут в строй. А его иначе как «полумифическим» назвать язык не поворачивается. И исправлена эта ситуация для владельцев UEFI-совместимых плат на чипсетах Intel 5, 6 и частично 7 серий уже не будет никогда.
Безопасность системы определяется безопасностью самой слабой ее части. Что толку в SecureBoot, если AMI позволяет проишивать все, что угодно, несмотря на подписи, а на 95% современных десктопных плат UEFI основан на коде AMI? Да, это недоработка конкретного вендора, но кому становится легче от этого?
Прошу меня простить, но о безопасность технологии SecureBoot я не говорил ничего. Я говорил о безопасности текущих реализаций UEFI, которая оставляет желать много лучшего, и будет оставлена в таком состоянии еще долго. Включайте SecureBoot и будьте спокойны, если вас это устраивает, в на 2 моих ПК из 3 его просто нет и уже никогда не появится.
UFO just landed and posted this here
Основная проблема в том, что выбора практически нет. Выбрасываем AMI — и для десктопа остаются только платы Intel. Выбрасываем Phoenix — из ноутбуков остаются только десяток моделей с Insyde H2O и машины Apple (на которых вообще никакой защиты нет и дамп замечательно снимается и пишется flashrom'ом). А после переезда ME в чипсет к безопасности всех систем на базе процессоров Intel люди, разбирающиеся в ней, не могут относиться без доли скептицизма. Сейчас еще AMD внедрит TrustZone, то про «безопасность» на системах x86 вообще можно забыть.
UFO just landed and posted this here
Практически на всех AMI, которые я встречал, регион BIOS либо не защищен вообще, либо защищен только установкой BIOS Lock, которую можно снять либо прошивкой через AFU в ключом /GAN, либо редактированием NVRAM. Цифровая подпись там хранится только в заголовке Aptio Capsule и в микросхему не попадает, а на некоторых платах (не будем показывать пальцем на Asrock) для обхода этой проверки можно просто удалить заголовок. В SMM там есть только обработчик установки бита BIOS Write Enabled, который ставит этот бит обратно, но и это можно отключить, сняв вышеупомянутый BIOS Lock редактирвоанием NVRAM.
Для Phoenix'ов имеются утекшие инженерные версии PFlash, которые прошивают что угодно даже на ноутбуках с последней версией платформы (SCT 2.3), где прошивка должна осуществляться описанным в вышеупомянутом докладе способом через оставление капсулы в памяти и софт-ресет, но по факту происходит обычным способом. Правда, на моем ноутбуке старая версия PFlash вызывает повреждение NVRAM, и после прошивки ноутбук перестает работать, но сам факт осуществления этой прошивки — на лицо.
Каких-то фундаментальных статей по безопасности UEFI я давно уже не видел, но скорее потому, что не слежу за темой, чем потому, что их нет. Вот тут можно посмотреть на практическую сторону «защиты» от прошивки модифицированных БИОСов, большая часть прозьб удовлетворяется вполне успешно.
UFO just landed and posted this here
Идея адекватная, но встает вопрос «кто будет контролировать контролеров?». Ничего не мешает производителю оборудования запускать в этой TrustZone любые закладки АНБ программы, а если технология будет скомпрометирована — исправить что-то можно будет только заменой оборудования.
UFO just landed and posted this here
Ну в свете последних событий, в плане публикации некоторых документов различных аппаратных бэкдоров онное множество. Поэтому тему безопасности и отсутствия бэкдоров со стороны вендора, можно даже не рассматривать. По умолчанию считая, что бэкдор в наличии — по принципу надеяться на лучшее, исходя из худшего.
Другое дело защита от иного вектора атаки, а верней группы…
UFO just landed and posted this here
Спасибо, интересное видео, надо будет посмотреть от начала и до конца.
Вполне вероятно, что они там и есть. На сколько я знаю, пока нет вариантов полностью раскодировать/расшифровать прошивку Intel ME. Частично есть вариант извлечь некоторые модули, но они не дают полную картину о функционировании AMT.
UFO just landed and posted this here
С этим не поспорить, альтернативы нетъ.
Ксати, про SecBoot.
Вот я недавно купил msi мать на хасвел. поставил туда честную windows в режиме uefi.
как теперь активировать SecBoot, что делать с сертификатами, как их создать.
нет ли толкового мана на эту тему?
Подскажите, пожалуйста, инструменты поудобнее для перезаписи биоса, если на материнке нет SPI хэдера. И, если есть разница, он на Quad SPI.
В таком случае наиболее удобный инструмент — SOIC-клипса, только лучше купить не китайскую за 10 центов, а нормальную, производства Pomona или 3M. Также не стоит забывать, что программатору, подключенному клипсой к припаянному к плате чипу, придется еще и половину платы запитывать, поэтому нужно либо выпаивать чип (это надежнее), либо организовавать дополнительное стабильное питание, чтобы во время чтения\записи не было ошибок. То, то микросхема поддерживает Dual или QuadSPI — ничего страшного, обыкновенный SPI она от этого поддерживать не перестает, а если ваш программатор умеет QuadSPI — просто будет прошиваться 30 секунд вместо 2 минут.
Правильно ли я понимаю, что всё многообразие реализаций UEFI сводится к нескольким платформам UEFI от мастодонтов со времён BIOS? Вроде как это: Aptio 4 и 5 от AMI, SecureCore Tiano (SCT) нескольких версий от Phoenix, H2O от Insyde и собственные реализации от Intel и от Apple.
А вообще, если возможно — то можно ещё одну промежуточную статью перечисляющую и сравнивающую эти реализации?
Правильно понимаете.
Свои реализации есть также у поставщиков коммерческих систем виртуализации, (к примеру, у VmWare) и у Microsoft (используется на их смартфонах с WP8).
Сравнивать реализации довольно непросто, т.к. для обычного пользователя отличия будут несущественные (иначе выглядит BIOS Setup), а для продвинутого их будет слишком много. Но я обещаю подумать в этом направлении.
Я понимаю что давнешняя статья, но мне очень помогла в борьбе с UEFI.
Автору — спасибо!
Некропостинг, но вдруг автор еще отвечает. Интересует такой момент, на сколько сильно BIOS завязан на конкретную версию ME? Есть относительно популярный процессор, инженерная версия Skylake, т.н. i7-6400T и стартует он только на определенных версиях биосов материнок. Сравнил несколько разных биосов разных производителей и заметил что стартующие и не стартующие биосы четко разделяются по версии ME, работают на ME версии 11.0.*, а как только переход на 11.6.* (с этой версии кажется у всех добавляется KabyLake), то материнка крутит вентиляторами, но не запускается.
Попробовал интереса ради в лоб взять биос новее и заменить в нем ME регион от работающего, но чуда не произошло, не стартует проц.
В связи с этим интересно, там в биосе все сильно завязано на ME и не стоит пытаться что-то менять, или же я просто таким изменением в лоб где-то контрольную сумму/адрес/т.п. не заменил?
Автор еще отвечает, жив, цел, орел, вот это все.

Дело там не в версии МЕ, а в версии Intel Platform Support Code, вместе с которым поставляется и МЕ в том числе. Поддержка инженерных и квалификационных семплов обычно заканчивается значительно раньше, чем поддержка релейных процессоров, и потому код для них из PSC просто выкидывается. Можно, конечно, попробовать портировать его из старой прошивки в новую, но это масса работы ради непонятно чего, гораздо лучше будет либо оставаться на последней поддерживаемой версии, либо сменить процессор на нормальный. Замена МЕ\контрольной суммы\адреса\т.п. — точно не выход.

Вообще раз уж мы тут заговорили про ES и QS — читатель, я вас заклинаю, не покупайте их никогда, а если даром дают — отдайте назад. Вот эта проблема с PSC — это вершина айсберга, и там могут встречаться такие странные глюки в самых неожиданных местах, что лучше с ними не связываться вообще никогда.
Спасибо за оперативный ответ, так то проблем никаких особых не было, просто подумал а вдруг вот так легко можно модифицировать новый биос просто чтобы был :)
С инженерниками понятно конечно что никакой поддержки не будет, микрокод никто не обновит и новый ME с заплатками уже не запустится.

А за прогу респект, расковырял биос леново чтоб отучить от whitelist, с phoenixtool что-то пошло не так, а с uefitool с первого раза )
новый ME с заплатками уже не запустится.

Запустится и будет работать без проблем. На мат.платах ASUS надо только чуток подшаманить, чтобы прошивка не жаловалась на то, что версия ME слишком уж свежая по сравнению с самой прошивкой. Решение было позаимствовано у коллег по форуму, которые столкнулись с этой же проблемой при откате прошивки (для запуска процессоров Coffee Lake на Z170).



После этого через FWUpdateLcl заливается свежий образ ME и мы великолепны.
стартующие и не стартующие биосы четко разделяются по версии ME
Нет, это не так. Если вы погружались в тему, что знаете про степпинги A0 и Q0 у этих «6400T». Так вот, поддержка A0 зачастую прекращена вендорами чуть раньше, чем поддержка Q0, причём версия ME при этом не менялась.

Версия ME менялась при добавлении поддержки Kaby Lake, одновременно с чем заодно выкидывались и остатки поддержки этих инженерных образцов Q0.
Sign up to leave a comment.

Articles