[devel] ACL in branches

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Мар 10 22:25:54 MSK 2009


On Mon, Mar 09, 2009 at 01:32:18AM +0300, Денис Смирнов wrote:
> AT> А бутстрап даёт возможность _незаметно_ засадить трояна.
> AT> http://en.wikipedia.org/wiki/Backdoor_(computing)
> AT> Это накладывает определенные ограничения, в каких комбинациях пакеты
> AT> должны попадать в репозитарий, и какого рода транзакции можно разрешить.
> AT> А именно, сборку пакета нужно рассматривать как функцию исходников и
> AT> содержимого сборочного чрута.  Тогда транзакция должна быть согласована
> AT> по последовательности сборки пакетов: нельзя пропускать пакеты без
> AT> пререквизитов.  На самом деле четкое определение дать не так просто,
> AT> но идея должна быть понятна.
> 
> Я думаю вот что.
> 
> В момент перемещения транзакции в репозиторий при копировании образуется
> некий временный репозиторий. В этом временном репозитории пакеты, которые
> были добавлены/обнавлены транзакцией слияния pocket'а должны быть еще раз
> пересобраны уже в этом репозитории.
> 
> Таким образом мы по крайней мере гарантируем что в момент прохождения
> транзакции эти пакеты при пересборке в этом репозитории дают именно тот
> результат, который отправится в репозиторий.

Это сейчас реализовано автоматически.  Эта логика называется "ребейс".
Задание заново проигрывается на текущем репозитарии (если оно было
отложено).  Если задание проигралось успешно, то происходит (необратимый)
акт согласования задания с репозитарием: задание переводится в режим
"выполнено успшено", а репозитарий обновляется.

В противном случае задание переводится в режим "обломалось".
Задание, которое обломалось, иногда можно поправить (добавить
в задание дополнительные пакеты, с которыми возникли проблемы)
и заново запустить на сборку.  При повторонм запуске на сборку
будет "ребейс": пакеты будут пересобраны, если это необходимо.
Пересборка необходима тогда и только тогда, когда меняются условия
сборки пакта (содержимое сборочного чрута), включая ранее собранные
пакеты в задании (если они были пересобраны, то все "последующие"
пакеты тоже нужно пересобирать).  Проверка на необходимость пересборки
реализована достаточно корректно.

Что до троянов, то следует изучать статью Кена Томпсона, как внедрить
трояна в компилятор.  Проблема, конечно, не в том, что вообще можно
внедрить куда-то трояна, а в том, что при определенных условиях (а-ля
бутстрап) это можно сделать незаметно.  Спрятать концы в воду.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20090310/afe20977/attachment.bin>


Подробная информация о списке рассылки Devel