LINUX.ORG.RU
ФорумTalks

stage0

 , ,


1

1

Обнаружил интересный проект:

https://github.com/oriansj/stage0

Судя по описанию этот проект позволяет начать процесс сборки Linux практически с нуля, то есть не пользуясь какой-то работающей системой, а лишь небольшим набором очень простых утилит и компиляторов. В частности там имеется минималистический C компилятор, написанный на ассемблере. Некоторый утилиты написаны вообще в машинных кодах.

Минималистический C компилятор используется для дальнейшей сборки GCC, так же разделённой на этапы по нескольким версиям.

Проект поддерживает x86, amd64, armv7l, aarch64, а так же некий Knight процессор собственной архитектуры, видимо для исключения закладок в железе.

Основная цель проекта - решить проблему trusting trust attack.

https://bootstrappable.org/projects/mes.html

Stage0 starts with just a 280 byte Hex monitor and builds up the infrastructure required to start some serious software development.

Более подробно читать тут:
https://github.com/oriansj/stage0/blob/master/README

Эмулятор (пока ещё неполный) Knight процессора, реализованый на Python:
https://github.com/markjenkins/knightpies

★★★★★

Идея классная, но, какая у этого практическая ценность ? Это ведь уже совершенно иной уровень паранойи.

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

Запомните, слово «паранойя» - из психиатрии, а не информационной безопасности. Теоретическая возможность атаки есть, точка. Но что хорошо в таких проектах - их не надо во все дистрибутивы тащить, достаточно собрать чистый компилятор, пересобрать им компилятор из дистрибутива и убедиться что он не изменился.

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

Одна из ссылок, которую я дал, как раз на Mes от Guix. Они либо уже используют этот stage0, либо собираются это делать.

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

Я боюсь что на проприетарном железе x86 и ARM, где закладки уже встроены в UEFI, чипсет/ME и гипервизор - возиться с возможностью инжекции закладки в компилятор, это как-раз что-то из области психиатрии.

Раз уж в ИБ нет понятия паранойи - то надо сразу брать железо (не эмулятор) на этом свободном от зондов процессоре «knight» (которого нет в природе), собрать этим stage0 - базовый компилятор, а им уже собрать кросс-компилятор+тулчейн уже под целевое несвободное железо. Только так.

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

для сборки чистого компилятора надо иметь гарантию что в самом коде компилятора нет закладок

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

Я боюсь что на проприетарном железе x86 и ARM, где закладки уже встроены в UEFI, чипсет/ME и гипервизор - возиться с возможностью инжекции закладки в компилятор, это как-раз что-то из области психиатрии.

Так может нам, господин эксперт, вообще от авторизации отказаться и всех подряд пускать по ssh, rdp и вообще к банковскому аккаунту, если уж у нас вдруг закладки в UEFI?

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

Я боюсь что на проприетарном железе x86 и ARM, где закладки уже встроены в UEFI, чипсет/ME и гипервизор - возиться с возможностью инжекции закладки в компилятор, это как-раз что-то из области психиатрии.

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

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

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

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

если мы дошли до ситуации

Эта ситуация возникла с появлением компиляторов, если что.

надо быть последовательным

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

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

например то что все угрозы можно и нужно исключать параллельно и независимо.

Нет. Угрозы надо исключать начиная от простых и очевидных к сложным и труднореализуемым. Вам это любой адекватный безопасник скажет. Да и это просто здравый смысл. Stage0 - это всё про последний тип угроз. Хорошо что есть, но на фоне остального - смысл несколько теряется.

DawnCaster ★★
()
Последнее исправление: DawnCaster (всего исправлений: 1)

Основная цель проекта - решить проблему trusting trust attack

С Rust такое получится ?

Since the Rust compiler is written in Rust, it must be built by a precompiled «snapshot» version of itself (made in an earlier stage of development)

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

С Rust такое получится ?

С ним и вообще с любым другим компилятором существует точно такая же проблема доверия к бинарникам.

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

С ним и вообще с любым другим компилятором существует точно такая же проблема доверия к бинарникам

с С она решается, а как решать для Rust, он уже проникает на Linux-системы, я вот про это

https://people.gnome.org/~federico/blog/docs/fmq-porting-c-to-rust.pdf

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

с С она решается

Да, написанием минимального компилятора на ассемблере или в машинных кодах.

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

Угрозы надо

То есть к безопасникам ты себя не относишь, но как «угрозы надо исключать» решаешь?

начиная от простых и очевидных к сложным и труднореализуемым

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

Вам это любой адекватный безопасник скажет.

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

про последний тип угроз

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

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

… или просто выдернуть шнур из разъёма Ethernet.

и все твои пароли пропищит процессор, меняя напряжение в радиоэфир, ага.

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

Вам это любой адекватный безопасник скажет.

Не скажу, потому что это бред.

Так там про адекватных.

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