Предложу то же самое, что и d_olex'у — напиши что-нибудь из своего опыта, а то хочу поставить плюс в карму — и не могу.
Уважаемое НЛО, я все понимаю, но ситуация, когда карму можно только понизить — отвратительна, и мотивирует она не на написание постов, а на игнорирование Хабра. Сделайте с этим что-нибудь, пожалуйста.
По моим ощущениям примерно так и есть, только вот у платформ Phoenix и Insyde, которые используют лидеры (т.е. Dell, Lenovo и HP), свои недостатки имеются, и NVRAM как разваливался, так и разваливается…
Про Apple мне сказать нечего — не интересовался, но на вид из UEFITool'а — кошмарно, think different во все поля, SecureBoot'а нет, OROMы вредоносные поют и пляшут.
Про платы Intel — она у тебя старая просто, сейчас уже очень мало кто выпускает обновления безопасности для «неактуальных» платформ — это банально дорого, т.к. все тестировать по новой.
Все верно, два чая этому господину. Я опустил эти подробности, и вот почему: БИОС, подготовленный для RO, при запуске проверяет биты SRP0-1 и BP0-2 в регистре STATUS и если первые оба сброшены (т.е. #WP не работает), то он ставит все BP (защитив таким образом всю прошивку целиком) и SRP0 (чтобы сбросить их можно было только установкой 1 на #WP). В итоге «незащищенным» такой БИОС, при условии #WP=0, остается ровно до инициализации драйвера SPI, а до этого ничего писать все равно невозможно.
Я не видел пока этих новых машин, но на тех, что видел, BootGuard был очень забавно настроен — сами модули присуствуют, но ни verifed boot, ни measured boot не включены, и в итоге система только выглядит защищенной. Буду обновлять железо — надо будет посмотреть.
Про МЕ — добавить мне почти нечего. Последний х86-процессор для ноутбука без PSP — eKabini, все более новые тоже имеют на борту аналог ME, который отключить еще сложнее и данных по нему еще меньше. Да и сама архитектура — далеко не мечта параноика.
Об этой атаке я планирую рассказать либо в следующей части, либо через одну, там нужны подробности, чтобы понять, в чем состоит уязвимость и почему ее нужно закрыть. Если не хотите ждать историю в моем изложении на русском — вот слайды с презентации наших ребят из Intel ATR на ReCon 2015, там все расписано в подробностях.
Все это здорово, но простому энтузиасту недоступно.
Стоитмость XDP3 — около 3 тыс. долларов, лицензия на год использования System Studio — еще две, а в результате получаем отладочную платформу, которая не нужна даже при разработке прошивки и bare-metal OS, ибо там хватает Port80h-кодера и одного UART'а.
Если из статьи слить воду и убрать «Сомалийские острова», ее можно сократить примерно втрое.
Кому действительно нужно писать свой парсер PE32 — обратите внимание на открытую реализацию в radare2.
Там будет слишком специфично для конкретного процессора даже внутри одной архитектуры. Вот тут есть немного, но почти без деталей, плюс в память отображается далеко не все, очень многое по прежнему реализовано только через CPU IO и PCI IO.
Добавлю к написанному там, что 0xC0000000 — это TOLUD = 3Gb, популярное значение по умолчанию, но иногда его дают перенастроить через BIOS Setup.
Такую аппаратную защиту можно сделать и сейчас, ничего не мешает, только вот спроса на нее практически нет — никому снова нет дела до безопасности прошивки, а две микросхемы SPI (чтобы разделить изменяемые части вроде регионов GbE, ME и NVRAM от собственно региона BIOS) ставить дороже, чем одну. Более того, система с RO-прошивкой все равно подвержена эксплуатации через уязвимости в S3 и SMM, только приподит она не к персистентности, а «всего лишь» к повышению привелегий до уровня SMM-кода, что тоже весьма неплохо.
Что дейсвтительно надо сделать, так это, во-первых, планомерно уменьшать attack surface путем выкидывания из прошивки всего лишнего (а не добавления всего отдаленно показавшего нужным, как происходит сейчас), а во-вторых — проводить аудит, проверять и перепровеять прошивку перед выпуском. И если со вторым еще более-менее неплохо стало в последнее время (Chipsec, LUV, FWTS, HSTI, вот это все), то с первым у EFI и всей индустрии большие проблемы, которые никто не спешит решать.
Все это возможно только потому, что производители оборудования для конечного пользователя не видят никакой необходимости заботиться о безопасности своих EFI-совместимых прошивок, в результате ошибки, обнаруженные пару лет назад, на большинстве систем так и не исправлены, а о новых и говорить нечего. К примеру, представленная на 31C3 в декабре 2014 атака на S3 BootScript (а именно ее использует упомянутый в статье червь) все еще работает на подавляющем большинстве систем с EFI/UEFI.
По настоящему безопасностью UEFI займутся только тогда, когда атаки на него выйдут из PoC-песочницы (момент уже очень близок), либо когда Intel и MS перестанут сертифицировать продукты, не проходящие валидацию Chipsec'ом и тестирование HSTI. Пока не произошло ни то, ни другое, поэтому нужно либо пользоваться системами тех, кому «не пофиг», вроде Dell или HP, либо брать безопасность в свои руки и все патчить самостоятельно. Про второй вариант я попробую рассказать на конференции ZeroNights 2015, если доклад одобрят.
Если обновление будет Win 7 Home на Win 10 Home (то самое «бесплатное»), но BitLocker и не появится, т.к. в Win 10 Home его по прежнему нет.
На самом деле, использовать его все равно смысла нет (если это не корпоративная политика), т.к. криптография с закрытым кодом порочна по сути, а если уж совсем невмоготу — есть TCnext и другие проекты. Более того, если не использовать для вкхода в систему Microsoft Account, то ключ не отправляется автоматически, а предоставляется выбор из трех вариантов: отправить в OneDrive, сохранить на диске или распечатать на принтере, что уже намного лучше.
Вторая цитата — не совсем правда. Бесплатно предлагается только обновление существующей системы, при котором на сервере MS сохраняется слепок конфигурации машины, а ключ продукта остается тем, что устанавливается по умолчанию. В результате меняешь себе SSD и видеокарту — ставь сначала свою Windows 7 или 8 заново, потом обновляй ее снова на Windows 10, и тогда все это может быть снова активируется, если повезет.
Нормальный же лицензионный ключ для Windows 10 Pro без танцев с обновлениями и привязки к железу в европейском Windows Store стоит какие-то несчастные 240€, а на сайте MS — $199. Цены не космические, но и не бесплатно совсем.
Замечательная система, все в ней теперь есть: и кейлоггер («адаптивная система проверки орфографии»), и использование вашего подключения к сети для доставки обновлений другим ПК, и сбор личных данных («телеметрия», которую нельзя отключить полностью на всех редакциях, кроме Enterprise и Server), и автоматическая отправка ключа шифрования BitLocker в облако, и отправка данных геолокации по умолчанию, и неотключаемый антивирус («если мы вдруг заметили, что runtime-защита была отключена слишком долго, она будет включена автоматически»), и прочее такое. Мой внутренний параноик бьется в истерике.
Не могу сказать, что это все плохо — просто средний пользователь сам позволил себе такое вручить за свои же деньги, а параноики как сидели на OpenBSD, так и будут сидеть, но тенденция все равно печальная, на мой взгляд.
Большая часть проблем с оборудованием в любой приприетарной ОС решается засылом этого оборудования производителю ОС и дальнейшей совместной отладкой. Так делают все крупные игроки, и Intel, и MS, и WindRiver, и все остальные. Если вам действительно нужно и у вас контракт на тех. поддержку подписан давно и надолго — коммерческие компании вас один на один с проблемой не оставят.
Исходники никто не раздает, т.к. разбираться в них инженеры разработчиков железа не обязаны и не будут — они в нем не понимают ничего, в отличие от тех, кто его писал и поддерживает. Понятно, что сначала заставят прогнать тесты Hardware Certification Kit'а, потом будет пару недель переписки из серии «попробуйте выключить и включить», но по итогу все проблемы, которые были у нас поддержкой оборудования со стороны MS удалось успошно решить.
Хитро придумано: почти 40 часов (неделя) неоплачиваемого рабочего времени разработчика, потраченная на то, чтобы в итоге а) бесплатно наштормить идей для компании, б) бесплатно наделать прототипов для компании, в) выиграть шахматы, которые тот же самый разработчик мог бы купить на свою З/П за час. Извините, но нет.
А что с ними, номера команд отличаются от общепринятых?
Если так, что можно модифицировать код проекта ch341prog и выслать pull request. А еще лучше написать ребятам из проекта flashrom о том, что очень хотелось бы видеть этот чип в списке поддерживаемых, есть шанс, что они услышат.
Из моих статей переехали вот эти две (раз и два), и только потому, что они были в DIY. Каким боком они про гаджеты — я не знаю, если программаторы и JTAG-отладчики считать ими, то тогда сразу записываем в гаджеты FPGA промышленные за мегатонну денег, и ПЛК, и SDN-железки, и все железное вообще, от Arduino до LHC.
Идея переноса технических железных статей хабов с Хабра — дрянь, многие просто перестанут их писать, и я в том числе.
Теперь только UEFI на эмуляторе, и не дай рандом упомянуть, что прошивка выполняется на голом железе — мигом на ГТ переедешь.
Уважаемое НЛО, я все понимаю, но ситуация, когда карму можно только понизить — отвратительна, и мотивирует она не на написание постов, а на игнорирование Хабра. Сделайте с этим что-нибудь, пожалуйста.
Про Apple мне сказать нечего — не интересовался, но на вид из UEFITool'а — кошмарно, think different во все поля, SecureBoot'а нет, OROMы вредоносные поют и пляшут.
Про платы Intel — она у тебя старая просто, сейчас уже очень мало кто выпускает обновления безопасности для «неактуальных» платформ — это банально дорого, т.к. все тестировать по новой.
Про МЕ — добавить мне почти нечего. Последний х86-процессор для ноутбука без PSP — eKabini, все более новые тоже имеют на борту аналог ME, который отключить еще сложнее и данных по нему еще меньше. Да и сама архитектура — далеко не мечта параноика.
Таблица сводная будет после того, как я опишу все защиты и атаки, которые имею право описывать.
Стоитмость XDP3 — около 3 тыс. долларов, лицензия на год использования System Studio — еще две, а в результате получаем отладочную платформу, которая не нужна даже при разработке прошивки и bare-metal OS, ибо там хватает Port80h-кодера и одного UART'а.
Кому действительно нужно писать свой парсер PE32 — обратите внимание на открытую реализацию в radare2.
Вот тут есть немного, но почти без деталей, плюс в память отображается далеко не все, очень многое по прежнему реализовано только через CPU IO и PCI IO.
Добавлю к написанному там, что 0xC0000000 — это TOLUD = 3Gb, популярное значение по умолчанию, но иногда его дают перенастроить через BIOS Setup.
Что дейсвтительно надо сделать, так это, во-первых, планомерно уменьшать attack surface путем выкидывания из прошивки всего лишнего (а не добавления всего отдаленно показавшего нужным, как происходит сейчас), а во-вторых — проводить аудит, проверять и перепровеять прошивку перед выпуском. И если со вторым еще более-менее неплохо стало в последнее время (Chipsec, LUV, FWTS, HSTI, вот это все), то с первым у EFI и всей индустрии большие проблемы, которые никто не спешит решать.
По настоящему безопасностью UEFI займутся только тогда, когда атаки на него выйдут из PoC-песочницы (момент уже очень близок), либо когда Intel и MS перестанут сертифицировать продукты, не проходящие валидацию Chipsec'ом и тестирование HSTI. Пока не произошло ни то, ни другое, поэтому нужно либо пользоваться системами тех, кому «не пофиг», вроде Dell или HP, либо брать безопасность в свои руки и все патчить самостоятельно. Про второй вариант я попробую рассказать на конференции ZeroNights 2015, если доклад одобрят.
На самом деле, использовать его все равно смысла нет (если это не корпоративная политика), т.к. криптография с закрытым кодом порочна по сути, а если уж совсем невмоготу — есть TCnext и другие проекты. Более того, если не использовать для вкхода в систему Microsoft Account, то ключ не отправляется автоматически, а предоставляется выбор из трех вариантов: отправить в OneDrive, сохранить на диске или распечатать на принтере, что уже намного лучше.
Нормальный же лицензионный ключ для Windows 10 Pro без танцев с обновлениями и привязки к железу в европейском Windows Store стоит какие-то несчастные 240€, а на сайте MS — $199. Цены не космические, но и не бесплатно совсем.
Не могу сказать, что это все плохо — просто средний пользователь сам позволил себе такое вручить за свои же деньги, а параноики как сидели на OpenBSD, так и будут сидеть, но тенденция все равно печальная, на мой взгляд.
Исходники никто не раздает, т.к. разбираться в них инженеры разработчиков железа не обязаны и не будут — они в нем не понимают ничего, в отличие от тех, кто его писал и поддерживает. Понятно, что сначала заставят прогнать тесты Hardware Certification Kit'а, потом будет пару недель переписки из серии «попробуйте выключить и включить», но по итогу все проблемы, которые были у нас поддержкой оборудования со стороны MS удалось успошно решить.
Если так, что можно модифицировать код проекта ch341prog и выслать pull request. А еще лучше написать ребятам из проекта flashrom о том, что очень хотелось бы видеть этот чип в списке поддерживаемых, есть шанс, что они услышат.
Идея переноса технических железных статей хабов с Хабра — дрянь, многие просто перестанут их писать, и я в том числе.
Теперь только UEFI на эмуляторе, и не дай рандом упомянуть, что прошивка выполняется на голом железе — мигом на ГТ переедешь.