Coreboot, оно же LinuxBIOS: компрометация ядра и его защита

(Июнь 2019, idb)

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

Что происходит

В июне 2019 года стало известно, что крупнейшая в мире спецслужба, АНБ США, вполне официально подключилась к работам по развитию Coreboot, известного международного проекта ПО с открытыми исходными кодами. Суть этого проекта, если совсем кратко, сводится к созданию и продвижению свободно открытой альтернативы для закрытых проприетарных кодов в прошивках программно-аппаратного обеспечения BIOS/UEFI.

Если же чуть подробнее, то Coreboot, прежде известный под названием LinuxBIOS, – это большой и долгосрочный проект движения программистов за открытые исходные коды, нацеленный на то, чтобы всюду, где только возможно, заменять загрузочные системы BIOS или UEFI, характерные для подавляющего большинства нынешних компьютеров, на их более подходящие альтернативы. Под более подходящими имеются в виду существенно облегченные, простые и быстрые программно-аппаратные прошивки, разработанные для выполнения минимального количества задач, необходимых для загрузки и запуска современной операционной системы.

Поначалу эта задача развивалась как проект в рамках движения ОС Linux, однако к настоящему времени Coreboot превращен в универсальный инструмент, позволяющий очень быстро и безопасно загружать в машину не только ядро Linux, но и множество прочих операционных систем или исполняемых файлов «полезной нагрузки».

Нынешнее же подключение к проекту со стороны американской спецслужбы ознаменовало, в частности, такое событие. Специалист-программист АНБ Юджин Майерс (Eugene Myers) начал передавать в Coreboot исходные тексты своих программ, реализующих важную подсистему монитора-гипервизора STM или SMI Transfer Monitor для процессоров Intel x86. Согласно официальным данным с веб-сайта АНБ, Майерс работает там в составе Исследовательской группы доверяемых систем, задача которой декларируется как «проведение и спонсирование исследований в области таких технологий, которые будут защищать завтрашние инфосистемы Америки»…

Еще чуть ранее, в начале июня этого года, АНБ сделало другой щедрый жест – открыто опубликовав для всех и с исходными текстами свой инструментальный пакет ПО Ghidra, предназначенный для обратного инженерного восстановления программ по их исполняемому коду. Практически сразу же вслед за этим сообщество разработчиков Coreboot взяло этот инструментарий в использование, поскольку он сильно облегчает работы по восстановлению кодов в проприетарных прошивках микросхем.

С одной стороны, как можно видеть, здесь обозначился неожиданно благолепный процесс «единения профессионалов» из мощной государственной спецслужбы и из движения сторонников за свободное программное обеспечение. Глядя же со стороны другой, однако, нет абсолютно никаких оснований предполагать, что АНБ США делает свои щедрые подарки ради «всеобщего блага и безопасности».

Если же присмотреться к происходящему чуть более внимательно, то становится ясно, что у проекта Coreboot обозначились тут очень большие и неприятные проблемы…

Читать «Coreboot, оно же LinuxBIOS: компрометация ядра и его защита» далее

LINUX: свобода от драконов здесь и сейчас

(Апрель 2019, idb)

Успешное массовое распространение ОС Windows 10 по планете – это неоспоримый факт. Но вот то ли это направление, куда нам хотелось бы двигаться? И можем ли мы лично что-то здесь изменить?

Лет шесть тому назад в одном из компьютерных журналов была, помнится, опубликована под именем kiwi byrd одна «неуместная» статья, рассказывающая, по большому счету, совсем-совсем и не про компьютеры вовсе. У статьи той неподходящим было не только название, «Уроки литературы» , но и рассказывала она действительно про книги. Про сатиру от Салтыкова-Щедрина, про фантастику от братьев Стругацких, про притчу-сказку «Дракон» от Евгения Шварца.

В разделе «про Дракона», в частности, главной темой статьи были причины, по которым отчетливо антифашистская пьеса Шварца, написанная в годы войны с гитлеризмом, не только вызвала дикое неприятие у сталинского режима, но и находилась под запретом к постановке и экранизации многие десятилетия и после смерти Сталина, вплоть до окончания брежневской эпохи.

Чем же так сильно раздражала эта притча-сказка советскую власть? Прежде всего, тем, конечно, что все диктаторы удивительно похожи друг на друга в своих методах угнетения народа — независимо от идеологии, на которую они опираются. Ну а во-вторых, и народ повсюду ведет себя одинаково. В пьесе Шварца те люди, которых герой спасает от поработившего их тирана, в большинстве своем и не особенно хотят-то, чтобы их спасали. Свобода им не нужна, что делать с ней они не знают, так что лучше уж оставаться в рабстве, лишь была бы стабильность и господин главный начальник был помягче. А потому, избавленные от гнета одного деспота, они с готовностью идут под тиранию другого…

Поскольку рассказ нынешний – вроде бы совсем не о книгах и пьесах, а об особенностях операционных систем для настольных и переносных компьютеров, то сразу и не поймешь, к чему здесь припоминается давняя притча про Дракона. Связь тут, однако, имеется самая непосредственная. Но пояснить её удобнее ближе к финалу.

А пока – вольный перевод совсем свежей, небольшой, но важной статьи, появившейся несколько дней назад на сайте SlashGear, одного из онлайновых ИТ-журналов интернета:

Причины для перехода с Windows на Linux

(оригинал на английском тут)

Вас таки достали проблемы с Windows 10? Кто-то, уже сытый ими по горло, планирует вернуться к установке старой-доброй Windows 7, однако с 14 января 2020 года эта ОС уже больше не будет получать поддержки от Microsoft. И если у вас нет денег на покупку компьютера от Apple, то для другой операционной системы на вашем компьютере остается не так уж много иных вариантов – кроме того или иного дистрибутива Linux.

Хотя некоторого периода обучения при смене платформы здесь не избежать, естественно, тех пользователей Windows, кто поинтересуется нынешним состоянием ОС Linux с точки зрения повседневного использования, почти наверняка ожидает приятное удивление. Потому что ныне уже совсем несложно найти для своей машины такой дистрибутив, который вполне подойдет на каждый день и не потребует больших затрат времени на освоение новой операционной среды.

Дабы не быть голословными, вот пять (как минимум) причин для того, почему имеет смысл не откладывая заняться переходом на Linux вместо Windows в качестве основной операционной системы на вашем настольном компьютере или ноутбуке.

Читать «LINUX: свобода от драконов здесь и сейчас» далее

Такая вот «паранойя»

(Ноябрь 2003)

Один из первых сигналов о попытках встраивания бэкдоров в ПО с открытым исходным кодом.

linuxbd

Программисты-разработчики, создающие следующую (2.6) версию ядра ОС Linux, обнаружили и заделали в исходных кодах «черный ход» (backdoor), реализованный столь хитро и искусно, что отныне даже для скептиков досужие разговоры о неуловимых «троянцах» в программах не кажутся больше параноидальным бредом.

Выявленный тайный ход или бэкдор в систему представляет собой неприметное добавление из всего двух строчек кода, тщательно замаскированных под невинный контроль ошибок, добавленный к функции системного вызова wait4().

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

При поверхностном просмотре новая добавка к коду просто проверяла, не использует ли программа, вызывающая wait4(), некую конкретную недопустимую комбинацию двух флагов, и не запущена ли она пользователем с максимальными привилегиями (root). Если оба условия выполняются, то вызов прерывается.

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

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

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

Суть же произошедшего в том, что выявлен был данный баг при обстоятельствах, не совсем обычных. Читать «Такая вот «паранойя»» далее