The OpenNET Project / Index page

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

Проект по обеспечению повторяемости сборки пакетов для Fedora Linux

19.09.2013 11:10

В ответ на критику о проблематичности формирования из исходных текстов rpm-пакетов, полностью аналогичных пакетам, поставляемым в дистрибутиве, из-за большого влияния условий сборки на итоговый бинарный файл, разработчики из компании Red Hat подготовили инструкцию и набор скриптов для обеспечения повторяемых сборок.

При сборке обычными средствами бинарные файлы отличаются и не совпадают с пакетами из репозитория байт в байт из-за использования разных версий компилятора, линковщика, библиотек, различий во времени сборки, разных настроек сборочного окружения и т.п. Представленный инструментарий позволяет на основе любого src.rpm-пакета с исходным кодом собрать rpm-пакет, на бинарном уровне полностью соответствующий размещённому в репозитории эталону. Таким образом, пользователь может убедиться, что пакет собран именно из опубликованных исходных текстов, без внесения в них каких-либо изменений, т.е. гарантировать отсутствие закладок, внедрённых на этапе сборки. Аналогичный проект по обеспечению повторяемых сборок развивается разработчиками Debian.

  1. Главная ссылка к новости (http://securityblog.redhat.com...)
  2. OpenNews: Для Linux представлена система верификации исполняемых файлов по цифровым подписям
  3. OpenNews: Проблема проверки тождественности исходных текстов и бинарных сборок
  4. OpenNews: Ubuntu развивает собственный формат пакетов для установки сторонних приложений
  5. OpenNews: Планы по усовершенствованию системы управления пакетами в Fedora Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/37951-fedora
Ключевые слова: fedora, build, packet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 11:22, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +21 +/
    Вот что значит "прислушиваться к сообществу"! Молодцы!
     
  • 1.2, aborodin (??), 11:48, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    hasher в Alt Linux уже сто лет как есть, а эти только зачесались.
     
     
  • 2.3, ъ (?), 11:59, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +8 +/
    По ссылки ты не ходил? Как обычно? Хешер не про это. Имеется ввиду полностью бинарная повторяемость, до байта. Я думаю твой хешер этого не сделает, также как pbuilder в дебиане.

    [сообщение отредактировано модератором]

     
     
  • 3.39, Michael Shigorin (ok), 01:11, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > По ссылки ты не ходил? Как обычно? Хешер не про это. Имеется
    > ввиду полностью бинарная повторяемость, до байта. Я думаю

    Возьмите и почитайте:
    http://www.altlinux.org/Hasher
    http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html

    Обратите внимание на даты.

     
     
  • 4.46, solo_oboroten (ok), 11:25, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала информация что в некоторых случаях в бинарник попадает дата сборки. (Про формирование документации и сборку некоторых скриптовых библиотек молчу: там с сохранением даты в формируемых файлах сталкивался лично.) Я не помню, чтобы hasher боролся с таким поведением. (Может и борется, но оно мимо меня прошло.)

    PS: Как решено это в представленных скриптах (и решено ли вообще) -- не знаю.

     
     
  • 5.49, Michael Shigorin (ok), 13:18, 23/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала
    > информация что в некоторых случаях в бинарник попадает дата сборки.

    В обсуждавшемся случае это зависит от компилятора, из gcc уже довольно давно убрали (выполнялось руками, так что несколько секунд между вызовами make прошло):


    $ echo "main () { return 0; }" > tstamp.c
    $ make tstamp  
    cc     tstamp.c   -o tstamp
    $ md5sum tstamp > tstamp-1
    $ rm tstamp  
    $ make tstamp            
    cc     tstamp.c   -o tstamp
    $ md5sum tstamp > tstamp-2
    $ diff tstamp-{1,2}
    $ gcc -v 2>&1 | tail -1
    gcc version 4.7.2 20121109 (ALT Linux 4.7.2-alt7) (GCC)
    $


    PS: привет, Лёш :)

     
     
  • 6.52, solo_oboroten (ok), 02:34, 24/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Если мне не изменяет мой склероз, то в какой-то из дискуссий пробегала
    >> информация что в некоторых случаях в бинарник попадает дата сборки.
    > В обсуждавшемся случае это зависит от компилятора, из gcc уже довольно давно
    > убрали (выполнялось руками, так что несколько секунд между вызовами make прошло):

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

    > PS: привет, Лёш :)

      Привет, Миш :-)

     
     
  • 7.53, Andrey Mitrofanov (?), 09:50, 24/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >   Значит сейчас проблемы будут только с теми пакетами, где дата
    > зашивается в выходные файлы сборочными скриптами. Спасибо, буду знать.

    Например, с теми, в которых лежат .cpio "упаковочки" с датами каждого файла?

     
  • 2.25, XoRe (ok), 18:05, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > hasher в Alt Linux уже сто лет как есть, а эти только
    > зачесались.

    Помнится, hasher отлично собирал php5-memcached-5.3.8.rpm из федоровского php5-memcached-5.3.11.src.rpm.
    Я думаю, вы понимаете, насколько там не до бинарной совместимости с исходником :)

     
     
  • 3.26, Andrey Mitrofanov (?), 18:20, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >насколько там не до бинарной совместимости с исходником

    "насколько там не до бинарного совпадения получаемых .rpm" //fixed

    > :)

     
     
  • 4.51, XoRe (ok), 20:05, 23/09/2013 [^] [^^] [^^^] [ответить]  
  • +/

    > "насколько там не до бинарного совпадения получаемых .rpm" //fixed

    Да, так точнее

     
  • 3.40, Michael Shigorin (ok), 01:12, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Помнится

    Вот это склероз, даже мне завидно стало.

     
     
  • 4.50, XoRe (ok), 20:05, 23/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> Помнится
    > Вот это склероз, даже мне завидно стало.

    По теме есть что сказать?

     
     
  • 5.55, Michael Shigorin (ok), 01:43, 25/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Помнится
    >> Вот это склероз, даже мне завидно стало.

    (даже не знаю, что надо было сделать, чтоб такое "помнилось")

    > По теме есть что сказать?

    Да, но надо бы тогда посмотреть на спек, который мог быть запакован в файле с названием php5-memcached-5.3.11.src.rpm, и на строчку Version: оттуда.  А затем поинтересоваться, как именно запускался hsh, потому как федорин пакет не пройдёт проверку %changelog.

     

  • 1.4, Аноним (-), 12:07, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    "различий во времени сборки"
    фаза луны тоже влияет
     
     
  • 2.12, Аноним (-), 14:04, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > фаза луны тоже влияет

    Редхатовский скрипт выставляет ее правильно.

     

  • 1.5, onon (?), 12:14, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Может теперь можно будет повлиять на ментейнеров и заставить, хотябы тот же wine, собирать без ассоциаций к файлам.
     
     
  • 2.9, Аноним (-), 13:33, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На Генту вам сударь надо. Ну либо в своем любимом дистре ручками, если только Вайн не устраивает.
     
     
  • 3.27, Andrey Mitrofanov (?), 18:21, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > На Генту вам сударь надо. Ну либо в своем любимом дистре ручками,
    > если только Вайн не устраивает.

    Нет уж! Лучше они - к нам.

    Когда, панимашь, будет "повторяемая бинарная сборка" в Gentoo, Арче и Фре??! Ась?

     
     
  • 4.41, Michael Shigorin (ok), 01:14, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда, панимашь, будет "повторяемая бинарная сборка" в Gentoo, Арче и Фре??! Ась?

    Никогда, т.к. фиксация сборочной среды ещё сложней по постановке задачи.

     
  • 2.14, Аноним (-), 14:06, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Может теперь можно будет повлиять на ментейнеров и заставить, хотябы тот же
    > wine, собирать без ассоциаций к файлам.

    Замечательно. А как вам комментарий связан с новостью?

     

  • 1.6, Михрютка (ok), 13:01, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > с исходным кодом собрать rpm-пакет, на бинарном уровне полностью соответствующий размещённому
    > в репозитории эталону, что может быть использовано для проверки тождественности и
    > отсутствия закладок.

    - а что это у вас шумит такое, словно вентилятор?
    - а это Кен Томпсон в могиле вертится.

    ЗЫ как правильно напоминают из зала, Томпсон жив, дай бог ему сто лет здоровья. mea culpa. но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.

     
     
  • 2.7, Crazy Alex (ok), 13:07, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В какой еще могиле?
     
     
  • 3.8, Михрютка (ok), 13:20, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В какой еще могиле?

    oh shit это я с прямым углом^W^WРитчи перепутал :()

     
  • 2.13, Аноним (-), 14:05, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.

    А шо вам в них таки не нравится?

     
     
  • 3.17, Михрютка (ok), 14:21, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> но в общем такие фразы про отсутствие закладок все равно свою долю котеночков собирают.
    > А шо вам в них таки не нравится?

    котят жалко

     
  • 2.28, Andrey Mitrofanov (?), 18:33, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>полностью соответствующий размещённому в репозитории эталону, что может быть использовано для проверки тождественности и отсутствия закладок.
    >напоминают из зала, Томпсон жив, дай бог ему сто лет
    >но в общем такие фразы про отсутствие закладок все равно
    >свою долю котеночков собирают.

    Да, исходная посылка, что совпадающая бинарная пересборка _как-то_ доказывает отсутствие закладок, точно собирает горы трупов котят, пони и единорогов.

    +++Ken Thompson, Reflections on Trusting Trust, 1984 <---Будет, что попраздновать вместе с 30-летием GNU

     

  • 1.11, lucentcode (ok), 13:53, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Ободряющая новость. Может у меня паранойя, но у меня не раз были сомнения: а не запихнул ли сборщик пакета что-то нехорошее в него? И ведь подпись мейнтейнера не гарантирует безопасности пакета. Любого сопровождающего пакетов те же парни из спецслужб могут быстро склонить к сотрудничеству. А теперь у таких недоверчивых людей как я появилась новая игрушка. Fedora, как всегда, рулит!
     
     
  • 2.18, anon13 (?), 14:53, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что мешает мэйнтейнеру изменить исходный код своего пакета и добавить закладку? В таком случае собирай его сколько хочешь! :)
     
     
  • 3.19, Анонус (?), 15:04, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > А что мешает мэйнтейнеру изменить исходный код своего пакета и добавить закладку?

    Новость читал? Закладка непозволит бинарному пакету сооотвествовать байт в байт пакету собронному из исходников.

     
     
  • 4.20, Аноним (-), 15:15, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вам говорят, что закладка то может быть в исходниках.
     
     
  • 5.29, Andrey Mitrofanov (?), 18:35, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Вам говорят, что закладка то может быть в исходниках.

    Причём другого пакета!

     
  • 3.21, gaga (ok), 16:31, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    ничто не мешает. надо смотреть диффы с апстримом.
     
     
  • 4.30, Andrey Mitrofanov (?), 18:36, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ничто не мешает. надо смотреть диффы с апстримом.

    После _полного_ аудита исходников з апстрима. Конечно!

     
     
  • 5.36, Михрютка (ok), 20:23, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> ничто не мешает. надо смотреть диффы с апстримом.
    > После _полного_ аудита исходников з апстрима. Конечно!

    и собирать собственным компилятором. желательно - написанным вручную машинным кодом.

     
     
  • 6.48, arisu (ok), 08:58, 21/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > и собирать собственным компилятором. желательно — написанным вручную машинным кодом.

    не поможет: закладки-то ещё и в железе могут быть!

     
  • 2.37, Crazy Alex (ok), 20:42, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Понимаете, весьма мало кем интересуются парни из спецслужб, а для более легких случаев подпись маинтайнера и его репутация - вполне достаточная защита.
     
  • 2.42, Michael Shigorin (ok), 01:16, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > А теперь у таких недоверчивых людей как я появилась новая игрушка.

    Годков десять как появилась, милай.

    > Fedora, как всегда, рулит!

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

     
     
  • 3.44, www2 (??), 09:23, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    Дык эти люди наверное воспроизвели для себя инструмент и пользуются втихаря. А тут вдруг поделиться стали просить, вот и обнародовали, видимо.
     

  • 1.23, Аноним (-), 17:22, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Новость - не прикольно.
    Вот если бы они налабали скрипт который из бинарников сырцы восстановили....
     
     
  • 2.32, Andrey Mitrofanov (?), 18:38, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Новость - не прикольно.
    > Вот если бы они налабали скрипт который из бинарников сырцы восстановили....

    Бинарно совпадаюшие с исходными!! :->

     

  • 1.33, Xasd (ok), 19:00, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    и так -- вторая половина 2013-года.

    ...сколько лет прошло уж и вот только щаз....

     
     
  • 2.34, Andrey Mitrofanov (?), 19:59, 19/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ...сколько лет прошло уж и вот только щаз....

    На опеннете наконец-то устышат про '84 Trusting Trust? //Я угадал? Или то был просто бейт:(

     

  • 1.35, Buy (ok), 20:13, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А зачем всё это если закладку можно внести в сам эталонный src.rpm-пакет, непосредственно в исходники ядра просто предложив очередной патч (не зря же Линус "кагбэ в шутку" кивал головой). Этим и будут заниматься серьёзные люди. А от пионеров да, может и будет дополнительная опция защиты.
     
  • 1.38, ip1981 (ok), 22:03, 19/09/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    МЕГА-костыли. А в Дебиане всё это "из коробки"
     
     
  • 2.43, Michael Shigorin (ok), 01:19, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > МЕГА-костыли. А в Дебиане всё это "из коробки"

    Там есть ещё один моментик, до которого и дебиан не дорос, помнтся, и уж тем более федора.

    Опять же см. http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html

    PS: ldv@ живьём порасспрашивать можно будет завтра-послезавтра в Калуге: http://www.altlinux.ru/news/archive/2013/09/item/702/

     
     
  • 3.45, ip1981 (ok), 11:00, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> МЕГА-костыли. А в Дебиане всё это "из коробки"
    > Там есть ещё один моментик, до которого и дебиан не дорос, помнтся,
    > и уж тем более федора.
    > Опять же см. http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html
    > PS: ldv@ живьём порасспрашивать можно будет завтра-послезавтра в Калуге: http://www.altlinux.ru/news/archive/2013/09/item/702/

    Пф... pbuilder. В Нексенте был zbuilder


     
     
  • 4.47, Andrey Mitrofanov (?), 14:04, 20/09/2013 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>завтра-послезавтра в Калуге:
    >> altlinux.ru/news/archive/2013/09/item/702/

    Кстати, спасибо! Интересно полистать. //'84 легким движением - в '74:

    """Проблема доверенного компилятора впервые была обозначена в 1974 году в закрытой публикации, а впервые публично сформулирована — десять лет спустя Кеном Томпсоном в его Тьюринговской лекции

    > Пф... pbuilder.

    Судя по ""hasher похож на более ранние [...] sbuild/pbuilder из Debian,[...], но в отличие от них спроектирован так, чтобы не допускать влияния собираемого пакета на хост-систему, а также взаимного влияния собирающихся пакетов."" @ altlinux.org/Hasher ...

    ...одно из двух^Wтрёх:

    либо авторы той страницы не видят разницы между sbuild и pbuilder,

    либо fakeroot+chroot в pbuilder-е не рассматривается, как достаточная защита от "влияния", или [традиционное] "не являются средствами безопасности",

    либо указывается на то, что pbuilder, в частности, проектировался для чего-то другого (=постановка задачи не совпала).

     
     
  • 5.54, Michael Shigorin (ok), 20:16, 24/09/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > ...одно из двух^Wтрёх:

    http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html по буковкам C, R, U.

    PS: про zbuilder в nexenta и прочие z/OG в IBM не в курсе.

     
     
  • 6.56, Andrey Mitrofanov (?), 11:20, 03/11/2013 [^] [^^] [^^^] [ответить]  
  • +/
    >> ...одно из двух^Wтрёх:
    > http://ftp.altlinux.org/pub/people/ldv/hasher/thesis-2004.html по буковкам C, R,
    > U.

    В сравнении с
    http://www.netfort.gr.jp/~dancer/software/pbuilder.html.en
    http://lists.debian.org/debian-devel/2001/08/msg01895.html

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

    А так это _всё_ наколенные скрипты: каждый работает только в одном дистибутиве и/или в присутствии автора. Например: почему pbuilder/hasher/mock нет в пакетах "конкурирующего" дистрибутива (не Deb/не Alt/не RH-like).

    Re: C/R/U -- При использовании fakeroot три пользователя и в pbuilder есть: реальный C, запускающий pbuilder; [fake]root R ставящий зависимости в chroot-е; и U c uid BUILDUSERID=1234 из pbuilderrc. //От fakeroot-а не всё работает, правда (mount).

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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