The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Критическая уязвимость в загрузчике GRUB2, позволяющая обойти UEFI Secure Boot, opennews (?), 30-Июл-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


14. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  –2 +/
Сообщение от kmeaw (?), 30-Июл-20, 02:05 
Как реализовать сценарий secure boot с MBR? Где будет лежать подпись? Напомню, что размер IPL — всего 440 байт.
Ответить | Правка | Наверх | Cообщить модератору

19. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +16 +/
Сообщение от Аноним 80_уровня (ok), 30-Июл-20, 02:33 
Ваш комментарий подразумевает, что реализация сценария secure boot - это что-то нужное, если не необходимое.
Ответить | Правка | Наверх | Cообщить модератору

20. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +2 +/
Сообщение от DerRoteBaron (ok), 30-Июл-20, 02:43 
Это что-то в некоторых случаях небесполезное, т.к. усложняет эксплуатацию физического доступа к оборудованию
Ответить | Правка | Наверх | Cообщить модератору

23. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +2 +/
Сообщение от Аноним (21), 30-Июл-20, 03:12 
> эксплуатацию физического доступа

закрой свой комп в тумбочку, ключ раствори в кислоте... профит! Некоторые нерадивые рабовладельцы так и делают.

Ответить | Правка | Наверх | Cообщить модератору

109. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от RADV (?), 30-Июл-20, 11:53 
Это защита от руткитов, которые подменяют ядро на свое собственное. Это не защита от физического доступа.
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

114. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (114), 30-Июл-20, 12:08 
А нельзя было просто в биосе прописать, что без ввода пароля от биоса запретить загружаться со всяких флешек и СД ?
Ответить | Правка | К родителю #20 | Наверх | Cообщить модератору

117. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 12:21 
Можно снять крышку, вытащить диск, переписать на нём загрузчик и поставить обратно.
Можно найти баг в загрузчике или ОС, получить рута и переписать загрузчик.

Secure Boot в таких случаях защитит пользователя, так как откажется грузиться в скомпрометированную систему.

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

Vendor-lock это хорошо, если каждый без особых усилий может стать vendor'ом — выпускать свои подписанные загрузчики и ядра. А спецификация Secure Boot требует наличия возможности загрузить пользовательские ключи, против которых проверяется загрузчик ОС.

Ответить | Правка | Наверх | Cообщить модератору

120. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от kkk (??), 30-Июл-20, 12:37 
Если каждый легко может стать vendor-ом, то смысл в vendor lock пропадает и этой защиты неизвестно от кого тоже нет. Если у меня есть физический доступ к компьютеру и возможность снять крышку, вытащить диск и что-то на нём переписать, почему у меня не будет возможности ещё и заменить ключи на свои и подписать ими то, что я переписал?

Кому вообще нужна эта защита на десктопах и рабочих станциях?

Ответить | Правка | Наверх | Cообщить модератору

130. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от Аноним (129), 30-Июл-20, 14:27 
> Можно снять крышку, вытащить диск, переписать на нём загрузчик и поставить обратно.

Можно получить рута на компе, прописать хлам в загрузочный раздел/сектор и ... даже диск вынимать не надо.

> Secure Boot в таких случаях защитит пользователя, так как откажется грузиться в
> скомпрометированную систему.

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

> Vendor-lock это хорошо, если каждый без особых усилий может стать vendor'ом — выпускать свои
> подписанные загрузчики и ядра. А спецификация Secure Boot требует наличия возможности
> загрузить пользовательские ключи, против которых проверяется загрузчик ОС.

А теперь коронный номер - попробуйте сменить гранд-мастер-ключ, которым блобы ME подписаны. А, не получается? Ну вот то-то - сразу и видно, кто настоящий вендор, а кто так, покурить вышел. И в этой схеме настоящий вендор вас конечно же этсамое, по иерархии.

Ответить | Правка | К родителю #117 | Наверх | Cообщить модератору

148. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от kmeaw (?), 30-Июл-20, 15:24 
> Можно получить рута на компе, прописать хлам в загрузочный раздел/сектор и ... даже диск вынимать не надо.

А если диск зашифрован? Злоумышленнику очень бы хотелось заменить загрузчик на тот, который запомнит ключи или попатчит ещё что-нибудь, когда легитимный пользователь загрузит свой компьютер.
Secure Boot не даст ему загрузиться после такого вмешательства.

> А теперь коронный номер - попробуйте сменить гранд-мастер-ключ, которым блобы ME подписаны.

А что вы хотите поменять в ME? Вы же не требуете от процессора быть реализованным на FPGA.
И Secure Boot никак не защищает ME.

Единственное отличие "настоящего вендора" от меня в том, что если я решу разработать свой болдженос, то он не загрузится на машине со включенным Secure Boot и настройками по-умолчанию — придётся либо выключить Secure Boot, либо сделать provisioning.

Ответить | Правка | Наверх | Cообщить модератору

198. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 31-Июл-20, 06:25 
А что помешает злоумышленнику добавить свой ключ в список доверенных SB? Если же возможности добавить свои ключи нет, то это уже совсем плохо, это получается ты не можешь на своем железе запустить свое ядро.
Ответить | Правка | К родителю #117 | Наверх | Cообщить модератору

34. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +1 +/
Сообщение от Аноним (31), 30-Июл-20, 05:50 
> Как реализовать сценарий secure boot с MBR?

Сделать IPL и первую статию загрузчика наглухо readonly. А вот дальше в них чекать подписи уже. Злоумышленник не сможет их перезаписать - и, соответственно, перехватить управление. Ну и коли это честно проверит подписи - то собственно дело в шляпе.

И таки я примерно так и делаю на некоторых одноплатниках, где в качестве boot media - sd card или spi nor, там либо аппаратный WP# есть, либо однократно выставляемый навечно флаг "readonly media" (в управляющих структурах SD card). При этом от чипа вообще не требуется уметь в secure boot - некий аналог "донавешен позднее", что впрочем совершенно не мешает. Эту идею озвучивал еще гугл с своими хромобуками лет наверное 10 назад. Нормальная идея, достигает то же самое без дикой оверинженерии как в уефанстве.

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

115. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 12:15 
А как обновлять этот IPL тогда?
И в 440 байт сложно уместить алгоритм проверки подписи.

Смысл всех этих BIOS Guard, Secure Boot, Trusted Boot, TPM, Measured Boot в том, что система не жёстко фиксируется на readonly-носителе, а может обновляться, но не злоумышленником.

Ответить | Правка | Наверх | Cообщить модератору

132. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (132), 30-Июл-20, 14:40 
> А как обновлять этот IPL тогда?

1) А что если никак?! Зачем вам обновлять мелкий прелоадер? Вы же не обновляете бутром на кристалле... ну а это вот будет вашим аналогом того рома. С ровно той же фичой - атакующий не может это перефигачить под себя.

2) Если очень надо - в случае SPI NOR можно хардварный сигнал WP# юзать. Что с ним сделать?! Ну, самое очевидное - на железный джампер или кнопку загнать. Вот это как минимум ремотный атакующий совершенно точно оспорить не сможет. А локальный с физическим доступом один черт может очень много всего интересного. Вплоть до осмысленного пуляния сфокусированным рентгеном в нужную область проца в правильное время, если вопрос будет на миллион.

Более продвинутый вариант - микроконтроллеру этот пин отдать. С защищенной от чтения извне прошивкой, конечно, дабы пароль не стыбзили из МК. Ну и дальше - фирмвара мк может спросить "boot update password" например. Скажете правильно - фирмвара дернет лапку МК, снимет сигнал WP# с чипа, и пишите себе свою флеху апдейтом - доказав что вы owner. Не угадали? Ну вот вам отключение ввода пароля до следующего полного poweroff, WP# остается в залоченом состоянии, основной проц это никак оспорить не сможет - он не контролит WP# напрямую. С SD так не прокатит, там хардварного пина блокировки записи нет в отличие от spi nor чипов.

> И в 440 байт сложно уместить алгоритм проверки подписи.

Не обязательно. Рассматривайте его + более крупную стадию как одно целое и отправьте оба в ридонли область. Все что 440 байтов будут должны - подчитать более жирный бут из ридонли и запустить его. Поскольку атакующий не может его заменить - оно ж ридонли - то и проблемы в этом нет.

> Смысл всех этих BIOS Guard, Secure Boot, Trusted Boot, TPM, Measured Boot
> в том, что система не жёстко фиксируется на readonly-носителе, а может
> обновляться, но не злоумышленником.

Смысл всей этой гадости - убедить лоха в том что у него типа-есть-контроль. А реально - фирма интел всегда может подписать своим ключом early boot своего ME. ME всегда возьмет под козырек и выполнит то что интел попросил. И вы не можете отнять у фирмы Интел эту возможность полностью и окончательно. Более подробный анализ этих подарочков есть у positive techs например. Как и некие способы перехвата. Однако это все же не отменяет того факта что бутром ME всегда охотно выполнит код подписаный интелем - и только им, это будет иметь доступ в все закоулки - и нет никакого способа радикально и совсем вырубить фирме Интел такую возможность.

Ответить | Правка | Наверх | Cообщить модератору

147. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 15:20 
> 1) А что если никак?! Зачем вам обновлять мелкий прелоадер?

Вы уверены, что сможете с первого раза написать идеальный прелоадер без ошибок? Я скорее всего не смогу, и хотелось бы расчитывать на какую-то внешнюю систему для проверки подписи, дающей возможность выпустить новую версию (и заодно отозвать старую).

> Вы же не обновляете бутром на кристалле... ну а это вот будет вашим аналогом того рома. С ровно той же фичой - атакующий не может это перефигачить под себя.

Когда в ROM обнаруживается ошибка, всё становится очень плохо. Но у производителя чипов больше ресурсов, чем у меня (и у большинства разработчиков ОС), поэтому это должно происходить не слишком часто.

> Ну, самое очевидное - на железный джампер или кнопку загнать.

Представьте, что вы работаете в компании, и в ваши обязанности входит обслуживание рабочих мест сотрудников, которых сотни.
Вот вышла новая версия ОС, в которой обновились критические компоненты (в частности ядро). Как массово накатить обновление? С boot update password конечно всё здорово придумано, но в PC такого пока что нет (что-то похожее есть на новых маках). Зато есть Secure Boot, который эту проблему решает. Вместо password используется подпись.

> Не обязательно. Рассматривайте его + более крупную стадию как одно целое и отправьте оба в ридонли область. Все что 440 байтов будут должны - подчитать более жирный бут из ридонли и запустить его. Поскольку атакующий не может его заменить - оно ж ридонли - то и проблемы в этом нет.

Не получится. Всё, что знает BIOS - это то, что с диска надо загрузить первый сектор и передать туда управление. Что будет грузиться дальше, какой layout у выдуманных мной структур, ему уже неизвестно. Значит единственное место, у которого он сможет проверить подпись (если бы такая функция была бы реализована) — это IPL. Чтобы построить цепочку доверия, внутри этого IPL должен располагаться код, который загрузит всё остальное, проверит подпись и передаст управление в случае успеха. А места для этого маловато. Так что остаётся только вариант с уводом в read-only, а обычный PC с обычными жёсткими дисками так (увести в r/o первые N килобайт) не умеет.

> Смысл всей этой гадости - убедить лоха в том что у него типа-есть-контроль.

Смысл всех этих мер не в абсолютной защите от всех-всех подряд. От производителя процессора вы всё равно защититься не сможете. Все эти меры, правильным образом задеплоенные, позволяют защититься всего от двух атак:

1) злоумышленник смог кратковременно получить контроль, и, переписывая критические компоненты системы, хочет закрепиться надолго;

2) компьютер является частью какой-то распределённой системмы; пользователь этого компьютера и есть злоумышленник — он выкинул рабочий компьютер и заменил его (по частям или целиком) своим, и пытается выдать его за оригинальный, чтобы украсть или исказить данные этой системы.

Intel, разумеется, может провернуть любую из этих атак, и является стороной, которой мы вынуждены доверять.

Заметьте, что Intel сделал ME, микрокод и много ещё что обновляемым, чтобы сохранить возможность исправлять свои собственные ошибки. Путь "сделать с первого раза всё правильно и увести в readonly" слишком сложный.

Если не быть активистом фонда СПО, то в ME нет ничего особенно плохого. vPro по-умолчанию выключен. На мой взгляд, единственное, что в ME работает лично против меня, это возможность по-разному инициализировать одинаковые кристаллы, создавая ценовую диверсификацию — блокировка множителя, ограничение частоты памяти. Если бы ME был СПО, то я бы мог всё это выключить. Но тогда бы было невозможно защититься от атаки #2 (см. выше), так как у ME не было бы возможности доказать свою собственную подлинность. Так что можно рассматривать процессор Intel и блоб Intel ME, как единый программно-аппаратный комплекс.

Некоторый вред есть от сторонних компонентов (option ROMs, модули UEFI, код SMM), которые написаны непонятно кем, часто сомнительного качества, и которым пользователь вынужден доверять. Но в большинстве случаев их можно выкинуть, а то и вовсе заменить весь биос на открытый coreboot.

Так можно договориться до того, что я не могу изменять топологию интегральных (микро)схем, и поэтому у меня недостаточно контроля. Контроля достаточно для того, чтобы собрать новый образ ОС, подписать его и разлить по всем маишнам. А также обновить все обновляемые блобы.

Ответить | Правка | Наверх | Cообщить модератору

217. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Аноним (-), 31-Июл-20, 11:02 
> Вы уверены, что сможете с первого раза написать идеальный прелоадер без ошибок?

Ну, во первых, с 1 раза и не надо - зачем вам устраивать локаут себе на тестово дебажных версиях? А вот после проверки что все ЗБС - гайки завинтить :)

Во вторых - если вы не можете написать без факапов даже, блин, 440-байтный код :D, тогда вам придется наверное признать что это - не ваше! :D Нене, рассаду выращивать я вам советовать не буду, там можно встать на грабли или порезаться огурцом.

В третьих, если ну очень хочется - я ж описал вариант где хардварно снимается WP и вперед, апдейтить. Сие потребует нажать кнопу или переставить джампер, подтвердив физическое присутствие. Гугол так на хромобуках делал, неплохо придумано. И сильная защита от ремотных физиономий, которые кнопку нажать все же не могут, и можно сделать полный оверрайд на вообще свой код с самого начала, зажав эту кнопку. Ну а дальше вы уже отвечаете за безопасность системы сами и гугл умывает руки, теперь это целиком ваше добро.

> Я скорее всего не смогу, и хотелось бы расчитывать на какую-то
> внешнюю систему для проверки подписи, дающей возможность выпустить новую версию (и
> заодно отозвать старую).

Ну вот вам и подогнали счастья. Только в результате как это и бывает оно в результате как-то делает больше всего фавора в общем то и не вам, а для вас только достаточно декоративная иллюзия контроля. А своим хозяевам эта пакость фавор норовит сделать и не спрашивая вас особо. При том это идет настолько далеко, что хозяева отказываются даже минимально щемить себе йайцы, поскольку их видите ли за это натягивают злые кастомеры. И они как-то вот решают что лучше нехай вам хакеры грузят черти-что через буткит касперского чем у их кастомеров компы закирпичатся. И безопасТность полчается в результате характерная - у юзера куча грабель, особенно если он удумал шаг в сторону, хакеры вообще не имеют проблем, а тут еще какие-то вендоры в режиме супербогов порой объясняют с п0нтом под з0нд0м что на свежекупленый ноут вы имеете право поставить либо вон ту восьмерку, либо вон тот рхел. И хватит с вас!

> Когда в ROM обнаруживается ошибка, всё становится очень плохо.

На этот случай я описал вариант с WP# где если сильно надо, он снимается. Но только локальным физически присутствующим телом с полным доступом к железке - такой мог и рентгеном пшикнуть вовремя, если сильно надо.

> Но у производителя чипов больше ресурсов, чем у меня (и у большинства разработчиков ОС),
> поэтому это должно происходить не слишком часто.

И что характерно - они предпочли эти ресурсы использовать не для защиты юзерей от проблем, а для навязывания что вы можете и не можете. Бабло побеждает зло. Эта мышиная возня была затеяна в основном потому, что MS лавры фирмы Эпл покоя не дают. Им кажется хочется загнать всех в стор и заставить покупать софт и контент только там.

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

Представьте, что вы работаете в компании. А теперь представьте что малваре ... тихой сапой закрепится на десяточке из компов, в регионах памяти где никакой антивирь это в принципе вышибить не может. А, погодите, всякие equation примерно так и делают, ололо :)

> Вот вышла новая версия ОС, в которой обновились критические компоненты (в частности
> ядро). Как массово накатить обновление?

Упомянутая схема вообще никак не мешает апдейтить что либо - покуда вы можете подписать это (или оно подписано доверенным ключом). Это "навесной вариант secure boot", где железный root of trust создается нами, известно из чего и понятно почему ему можно доверять. А когда это чей-то ME ROM и огромное блобваре где черт ногу сломит - это довольно голимый root of trust. На гнилом фундаменте нельзя построить хороший дом.

> С boot update password конечно всё здорово придумано, но в PC такого пока что нет
> (что-то похожее есть на новых маках). Зато есть Secure Boot, который эту проблему
> решает. Вместо password используется подпись.

Вон тот password (или нажатие кнопки для снятия WP#) надо только для апдейта "root of trust" (начальной фазы загрузки, смыслового аналога boot ROM). В более поздних фазах когда все уже раскочегарено можно юзать и обычные подписи уже, после того как root of trust проверил что ему те ключи более поздних фаз катят, конечно. Всякие ME и бутгады тоже так делают - там вшит хэш убер-мастер-ключа, обычно куда-то в OTP ROM ("efuses"). И начальный ром проверяет что у первого ключа хэш вот такой. Тот кто владеет этим ключом и является настоящим owner'ом. И как вы уже поняли это ессно не вы.

В ARM чипы часто идут с фабы чистыми - fuses не прошиты, и можно вообще активировать секурбут самому и вшить хэш именно своего мастерключа. На x86 (и некоторых ARM) таки решили что морда у вас таких красивых от такого контроля и такой безопасности все же треснет - так что это отжимает себе вендор, а вам голимненькая иллюзия что вы там чем-то типа-управляете.

А изначально вопрос был можно ли и как что-то такое сделать с MBR или чем-то подобным. Ну вот я и показал что да, можно и с чем-то таким, если сильно хочется. Понадобится media которую можно сделать readonly. В случае ARM, даже без активированного секурбута в железе, такая схема может быть довольно эффективна т.к. глуповатый бутром чипа только пинает наш бут с карты или spi флехи, и если вот это будет readonly, никаких проблем рассмотреть вот этот бут как root of trust где допустим вшит тот хэш начального мастерключа которым подписана следующая стадия. Такой себе "rom extension" с "навесным секурбут". А если очень сильно хочется то вот для spi rom его можно даже разрещить обновлять - если вон тот микроконтроллер по пути не отдающий свое содержимое наружу вдруг согласится махнуть лапкой правильно и разлочить чип на запись.

> Не получится. Всё, что знает BIOS - это то, что с диска
> надо загрузить первый сектор и передать туда управление.

Прекрасно - BIOS прочитает _READONLY_ лоадер. Хакер не сможет пропатчить это и сломать его логику. Этот лоадер дочитает из _READONLY_ зоны второй, более жирный и умный модуль. Хакер не может пропатчить и это. А вот этот модуль уже сможет и развернуть публичное крипто, и в себе вхардкодить мастеркей, которым подписаны следующие фазы. И поскольку оно readonly - заменить на свое хакеру это не катит. И придется жить с хэшом мастеркея которого у хакера нет, он видите ли где-то в загашнике. Ну вот такой навесной root of trust. Сие предполагает некие допущения, но то что это хуже того месива которое в uefi развели - можно поспорить.

MBR, видите ли, достаточно прост и туп для того... чтобы не стоять на пути почти любой идеи которая пришла в голову. А вот о наглом и интрузивном секурбуте это уже не скажешь.

> Что будет грузиться дальше, какой layout у выдуманных мной структур, ему уже неизвестно.

Это не важно. Важно чтобы 440 байтов были ваши, делали что вам надо и их нельзя было заменить на хакерские. И если сие безусловно подчитает из readonly зоны еще 100500 байтов, допустим, сразу после того бутсектора, то чего? Хакер не может патчить и это - и дальнейшее целиком на усмотрение этого кода. Если тот код решит в себе вхардкодить хэш мастерключа или даже всю публичную часть и будет далее запускать только то что им подписано - собственно, а как это оспаривать?! Покуда это readonly media, с которой биос грузится - сорян, но эта штука haves control и вполне может стать самопальным root of trust. Который нельзя вот так просто и нахрапом заменить, как и тот убер-ключ в boot rom, собссно :)

> Значит единственное место, у которого он сможет проверить подпись (если бы такая
> функция была бы реализована) — это IPL.

BIOS (или глуповатому boot ROM ARM чипа, ... ) вообще не надо ничего в этом месте проверять.

В этом случае, в этот момент доверие строится на том факте что вон то - именно наглухо READONLY media. Где хакер не может сменить код на что-то более полезное и кооперативное для себя - и поэтому данный код вполне катит как начальный якорь root of trust. При этом разумеется надежность этой штуки равна эффективности энфорса readonly. Это же касается и bios/boot rom запускающего сие шоу. В случае ARM с накристальным ROM сие достаточно неубиваемо - перешивать maskROM еще никто не научился, так что переубедить того вгрузить другой сектор с более полезным хакеру кодом - не выйдет. С BIOS - там вариантов больше, но это потребует продвинутый хакинг биоса и резко взвинчивает уровень атаки. Ну и если на то пошло, WP# и на флехе с биосом есть, можно и его в жесткий ридонли загнать, если системное фирмваре на такое не обидится. Корбут не обидится, bios/uefi - зависит от.

Рассматривайте действия биоса как "HW sequence" который слепо доверяет нашей первой фазе. Так же как чип ME или вон тот ARM слепо доверяет своему boot ROM, просто начиная исполнять это при ресете, полагаясь на тот факт что этот код в readonly зоне которая не меняется. А вот наша первая фаза может взять root of trust в свои лапы.

> Чтобы построить цепочку доверия, внутри этого IPL должен располагаться код, который
> загрузит всё остальное, проверит подпись и передаст управление в случае успеха.

Нет. В этот момент доверие в той схеме все еще держится на том факте что и довесок догружаемый мелким лоадером - все еще readonly.

Вообще, так можно и всю систему поднять - положить систему на, допустим, SD карту, запросить readonly на носитель после этого (у SD есть такая фича) - и усе, атакующий ничего сделать с этой штукой в принципе не сможет. Система всегда будет в том виде как она задумана. Западло состоит в том что это будет неудобно юзеру - и катит только для сильно некоторой встраиваемой мелочи. Где есть железная уверенность что слепленый образ 1 раз и навсегда. Для обычного компа это дубово и неудобно - и поэтому в какой-то момент надо все же что-то разрешить что-то обновлять. Иначе это слишком уж жестко и неудобно. Кроме того при этом не получится заапдейтить систему. Лулз состоит в том что малварь даже при дырах не может закрепиться в системе и ресет вышибает гуано наповал, см как это с мыльницами всякими работает.

> А места для этого маловато.

Только из-за узости вашего мышления. У вас столько места сколько вы захотите, покуда READONLY блок подчитывает другой READONLY блок и это остается именно READONLY, так что хакер не может заменить логику всего этого на более кооперативную. В этом месте контроль у того кода и никакой обход этой логики не предусмотрен. Если 440 байт лоадер откажется читать довесок, вы пролетаете, boot failed. Если довесок откажется запускать следующую стадию, вы опять же пролетаете. И что-то по этому поводу предпринять можно разве что локальной заменой readonly чипа/карты/чтотамувас, но там и много чего еще можно предпринять.

> Так что остаётся только вариант с уводом в read-only, а
> обычный PC с обычными жёсткими дисками так (увести в r/o первые N килобайт) не умеет.

Зато он допустим умеет грузится с, например, SD карты (как минимум через usb ридер). И вот оно умеет в RO целиком уходить по одной из команд SD спеков. Ну и вот будет такая R/O бутявка, с бутлоадером который root of trust. Ну да, послать ту команду - надо mmc хост или микроконтроллер, ридеры при гейтовании mass storage -> SD такими абстракциями не оперируют, конечно. И собссно SD карточка достаточно дешевая и простая чтобы ее и целиком под "boot ROM area" отдать, не? И ей даже супербыстрой или емкой быть не надо - по минимуму только 440 байтов и оверлей, just enough чтобы прочекать чтонить на writeable носителе :)

Алсо можно сделать себе usb-бутявку из какого-нибудь МК, где фирмварь может вообще обычную запись mass storage - unimplemented. А образ залить иначе (своим протоколом, инклудом в фирмвару). И хрен оспоришь. А если сильно хочется поиздеваться над хакерами, можно даже запретендовать что запись типа-прошла, ггг.

>> Смысл всей этой гадости - убедить лоха в том что у него типа-есть-контроль.
> Смысл всех этих мер не в абсолютной защите от всех-всех подряд.

И есть один нюанс. Эта штука большая и навороченная. И поэтому в ней много багов. Я видел, как один легендарный грандмастер вынес такую схему, да еще куда более секурный вариант. Нет, он не нашел переполнение буфера. Нет, он не сменил мастер ключ. Но он качественно наел RSA одним маленьким фокусом с экспонентой. Проверки прошли - и код грандмастера стал для девайса родным. Это то что вы получаете за навороченные алгоритмы и индусню не имеющую понятия как это работает. Небольшой щелк пальцами того кто понимает - и вся навороченая

> От производителя процессора вы всё равно защититься не сможете.

А тут вопрос в том атакует ли он. И если да - возможно надо сменить процессор. Или даже в совсем пиковой ситуации - стать производителем, если других вариантов не осталось.

> Все эти меры, правильным образом задеплоенные, позволяют защититься всего от двух атак:
> 1) злоумышленник смог кратковременно получить контроль, и, переписывая критические
> компоненты системы, хочет закрепиться надолго;

Как-то так. Упомянутые фортели тоже от чего-то такого в основном. Хотя в случае с МК например можно и более злостно потрепыхаться: при защите от чтения ключ уже не вытаскивается наружу. И если например диск пошифровать, сделав какой-нить key exchange, если МК будет не в настроении, доступ к системе будет урыт не только на модификацию, но и на изучение содержимого. Что впрочем не сильно спасет от случая когда хакер влез в систему где уже все подцеплено.

> 2) компьютер является частью какой-то распределённой системмы; пользователь этого компьютера
> и есть злоумышленник — он выкинул рабочий компьютер и заменил его
> (по частям или целиком) своим, и пытается выдать его за оригинальный,
> чтобы украсть или исказить данные этой системы.

Это вообще идиотия какая-то - нормальные распределенные системы делают так, чтобы это просто не было проблемой. Не верите? Окей, попробуйте обмануть биткоин. Потратить одни и те же коины дважды уже может вас озолотить нахрен, одним чихом. Удачи :)

> Intel, разумеется, может провернуть любую из этих атак, и является стороной, которой
> мы вынуждены доверять.

Звучит прикольно для господ оставивших главный ключ себе. Ну, доверяйте. А я пешком постою таким entity "доверять".

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

Даже Intel не может обновить boot ROM ME. Даже эпл не может запатчить boot ROM. И кстати поскольку они набили туда довольно много гуано - им за это недавно таки прилетело. И таки они ничерта с этим не сделают до перевыпуска новых ревизий чипов с новым ROM, а старые девайсы будут подлежать takeover'у вечно.

> Путь "сделать с первого раза всё правильно и увести в readonly" слишком сложный.

Но интел именно это и сделал для своего ME boot ROM... как и многие иные процы. Когда вы только включаете питание, проц должен знать что ему делать и откуда-то взять это знание.

Надеюсь это объясняет почему я люблю железки где boot ROM умеренного размера и худо-бедно проанализирован.

> Если не быть активистом фонда СПО, то в ME нет ничего особенно плохого.

Если включить мозг, чужой убер-привилегированный компонент с мутным НЕЗАМЕНЯЕМЫМ мной кодом, всегда работающим side by side и даже на выключеном компе - пожестче иных оруэлловских фантазий.

> vPro по-умолчанию выключен.

Это всего лишь какие-то довески на тот же ME. И что все эти мегазы блобазов с целой операционкой в комплекте реально умеют - можно подумать кто-то блин сильно анализировал.

> На мой взгляд, единственное, что в ME работает лично против меня, это возможность
> по-разному инициализировать одинаковые кристаллы,

А мне вот лично очень не нравится что резидентно висящая на отдельном проце операционка (!!!) может шарахаться допустим в RAM моей системы - да, эта штука умеет в DMA, и поэтому может просто пойти и стырить допустим вон тот пароль из памяти, если вдруг захочет. А захочет ли оно или нет - да кто эти мегазы знает? Можно подумать их кто-то в таком объеме штудировал. А когда таки штудируют - мадам Рутковска нам и показывает "ring -3 rootkit", а интель затыкает CVE в этсамом.

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

> выше), так как у ME не было бы возможности доказать свою собственную подлинность.

А на мой вкус он должен доказывать подлинность только мне, только моего кода. А если он вместо этого видите ли на wintel работать удумал, за мои же бабки - он тогда в общем то враг. И пучок рентгена ему в табло, по большому то счету.

> Так что можно рассматривать процессор Intel и блоб Intel
> ME, как единый программно-аппаратный комплекс.

Я предпочитаю это рассмтривать как программно-аппаратный бэкдор. Больше всего оно похоже на вот это.

> доверять. Но в большинстве случаев их можно выкинуть, а то и
> вовсе заменить весь биос на открытый coreboot.

Тем не менее, даже coreboot не снимает полностью проблемы с ME. Так что в долговременном плане я для себя хочу отделаться от x86 насовсем. Задолбали.

> Так можно договориться до того, что я не могу изменять топологию интегральных
> (микро)схем, и поэтому у меня недостаточно контроля.

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

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

> Контроля достаточно для того, чтобы собрать новый образ ОС, подписать его и разлить по всем
> маишнам. А также обновить все обновляемые блобы.

Иллюзия конечно забавная, но всего лишь иллюзия. Это как с кольцами Саурона. Ваши мелкие незначительные ключи - ничто против грандмастерского ключа, который шутя перекрывает все остальное одной левой. Можете махать вашими побрякушками до упада - но вы ничто против Саурона.

Ответить | Правка | Наверх | Cообщить модератору

113. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kkk (??), 30-Июл-20, 12:07 
А зачем вообще нужен secure boot, кроме как для vendor lock?
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

116. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kmeaw (?), 30-Июл-20, 12:16 
Чтобы злодей, кратковременно получивший физический доступ к оборудованию или через ошибку в ОС получивший возможность писать на диск не смог закрепиться в системе.
Ответить | Правка | Наверх | Cообщить модератору

178. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от kkk (??), 30-Июл-20, 20:31 
Нет, чтобы ты не дай бог, не поставил себе чего-то несертифицированного.
Ответить | Правка | Наверх | Cообщить модератору

202. "Критическая уязвимость в загрузчике GRUB2, позволяющая обойт..."  +/
Сообщение от Павелemail (??), 31-Июл-20, 07:34 
Злодей, имеющий физ доступ, может прописать свои ключи в биос. Поэтому secureboot не защитит от такого злодея
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру