LINUX.ORG.RU
ФорумTalks

Побитовая идентичность бинарников

 , ,


0

2

Как известно, в свободное ПО разработчику труднее внести вредоносный код, чем в проприетарное. Исходный код доступен широким массам, и, если он содержит вредоносные возможности (например, несанкционированно сливает персональные данные разработчику, или содержит тайм-бомбы (привет, isdenerzent)), это рано или поздно станет известно народу.

Но очень малый процент пользователей собирает ПО из исходников. Подавляющее большинство пользуется готовыми сборками от автора или мейнтейнера дистрибутива. Так вот, насколько сложно проверить, не добавил ли сборщик зловред?

Допустим, есть программма, собранная разработчиком при помощи GCC. Разработчик предоставил информацию, какой версией gcc она собрана, с какими параметрами сборки, какие версии заголовочных файлов линкуемых библиотек использовались. Есть исходный код конкретно этой сборки. Реально ли нам на другом компе собрать бинарник, который будет побитово идентичен тому бинарнику, который распространяет разработчик?

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

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

Nurmukh ★★★ ()

Проблема распространенных дистров даже не в том, что туда могут запихать бекдоры и прочее(привет убунту), а в том, что мейнтейнеры могут по своей тупости поменять код пакета, и сломать библиотеку/программу - привет истории с OpenSSL в дебиане

lovesan ★☆ ()

Как известно, в свободное ПО разработчику труднее внести вредоносный код, чем в проприетарное.

Эм, кому известно?

Исходный код доступен широким массам, и, если он содержит вредоносные возможности (например, несанкционированно сливает персональные данные разработчику, или содержит тайм-бомбы (привет, isdenerzent)), это рано или поздно станет известно народу.

Кто сказал heartbleed? Уязвимость жила в коде три года, до того, как ее обнаружили. И нашло ее не «сообщество», а вполне себе инженер из ИБшной конторы.

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

Есть специальные сертификаты на средства сборки. У ALT такой был на какой-то из их дистрибутивов. Естественно стабильность там как в морге и стоило (ит?) весьма не дёшево.

Другой вопрос, а нафига вам нужно ублажать товарища майора формальными решениями? Он ведь всё равно хочет денег несмотря ни на что.

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

Я иногда собираю пакеты в open build service, и наблюдал такую ситуацию: если для некоторых пакетов сделать trigger rebuild, без изменения исходников, то они соберутся, и на этапе публикации изменений в репозиторий появится сообщение «build returned same result, skipped» т.к. на выходе мы получили тот же результат, что и в прошлый раз.
В то же время, с другими пакетами так не получается, и при каждой сборке получается чуть-чуть другие бинарники. А может быть и файлы данных, в каждой ситуации надо разбираться отдельно.

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

Он совершенно не обязательно член Linux-сообщества.

Ну и как бы в закрытых виндах уязвимости находят тоже не только сотрудники MS, а инженеры сторонних ИБ-контор. Значит ли это, что уязвимости в виндах ищет сообщество?

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

Так и для поиска уязвимостей в винде не обязательно подписывать NDA :) В принципе, можно это делать даже и без реверсинга - методом «черного ящика».

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

Речь не про уязвимости, а про намеренно заложенные разработчиком бэкдоры. В винде они однозначно есть. Там ОДНОЗНАЧНО есть неотключаемое обновление (были зафиксированы факты, что некоторые обновления устанавливаются, даже если в настройках они отключены). Значит в абсолютно любой момент на любой подключённый к интернету компьютер m$ может добавить вредоносный код.

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

Значит в абсолютно любой момент на любой подключённый к интернету компьютер m$ может добавить вредоносный код.

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

Речь не про уязвимости, а про намеренно заложенные разработчиком бэкдоры. В винде они однозначно есть

Пруфов у тебя, конечно, не будет.

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

Пруфов у тебя, конечно, не будет.

А про телеметрию и неотключаемые обновления Столлман придумал?

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

Либо через уязвимость, либо через пользователя, убедив его запустить вредоносный код. Неотключаемое обновление windows же — штатная возможность (не баг, а фича), которая не отрицается микрософтом.

te111011010 ()

Как известно, в свободное ПО разработчику труднее внести вредоносный код, чем в проприетарное

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

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

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

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

Он ясно говорит, что неотключаемое обновление — это универсальный бэкдор.

Он у тебя рупор абсолютной истины что ли?

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

Все возмущаются

Даже на ЛОРе не все, а возмущённых слежкой пользователей винды в живую видел очень мало.

но мало кто с них свалил

Потому что не нужно.

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

Если он говорит правду, то да. «Универсальный бэкдор» — это значит возможность в любой момент дистанционно установить любой бэкдор. Если даже в винде СЕЙЧАС нет возможности по команде m$ без ведома пользователя сливать файлы, прослушивать микрофон или просматривать веб-камеру, то в любой момент m$ сможет добавить эту возможность на все компьютеры под управлением винды, подключённые к интернету, для этого им не нужно искать уязвимости или подсовывать вредоносный код под видом ускорителя интернета.

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

Даже на ЛОРе не все, а возмущённых слежкой пользователей винды в живую видел очень мало.

Зато я видел дохрена вантузников, заклеивающих веб-камеры.

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

ты настолько известен и важен, что за тобой будут следить?
что за страшная инфа у тебя есть, попадание в чужие (google, m$,
apple, free software developers) руки которой ты так опасаешься?

просто интересен какой-либо кейс. вдруг, узнав его, я побегу
топить макбук в кислоте и срочно переходить на free laptop
под LFS, лично вычитывая все исходники в процессе сборки...

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

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

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

m$ сможет добавить эту возможность

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

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

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

В том и суть, что производителям проприетари доверять нельзя. Но тут утверждалось, что наличие/отсутствие бэкдоров в проприетари можно проверить путём реверс-инженеринга. Даже если это и так, то я объяснил, почему это не делает проприетарное ПО свободным от бэкдоров.

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

Никакое ПО потенциально не свободно от бэкдоров. Открытое ПО, так же как и закрытое, находится в статусе «вредоносов пока не обнаружено»

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

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

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

У популярного открытого бэкдоры обнаружить легче

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

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

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

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

Бэкдор может невыгодно, а майнер - выгодно. Да и бэкдор может быть выгодным, если это, например, софтина для детишек-мажоров.

В общем, тезис Столлмана так себе.

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

Почему про GUIX не упоминаете?

Там воспроизводимо все, начиная от окружения сборки и заканчивая конфигурациями всей инстоляции в целом.

С поправкой на то, что некоторые исходники иногда теряются, исчезают с github например, и т.п.

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

Ахаха.

Это теперь так называется :)))

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

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

https://guix.gnu.org/

У них даже ядро по умолчанию ставится Libre без блобов.

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

И вообще они считаются свободным дистром с точки зрения FSF:

https://www.fsf.org/blogs/community/gnu-guix-1-0-0-released

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

Почему про GUIX не упоминаете?

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

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

те кто знают что их прослушивают 24/7 и всеравно продолжают пользоваться этим дерьмом

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

ему вносить вредоносный код в ПО невыгодно

почему? васе пупкину быстро стырить у тысячи хомячков очередным трояном деньги с кредиток может быть очень даже выгодно

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

что за страшная инфа у тебя есть, попадание в чужие (google, m$,

apple, free software developers) руки которой ты так опасаешься?

NDA?

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

Более общих с воспроизводимостью скорее всего пока не существует.

Тот же NIX к примеру взять, там и блобы и невоспроизводимость десятков пакетов.

GUIX на данный момент уникален, он предоставляет только open source GNU и при этом предоставляет даже воспроизводимость компиляторов GCC без использования GCC! Кто еще так умеет?

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

Так не умеет к сожалению даже OpenBSD.

В плане защиты от закладок GUIX можно считать абсолютнейшим чемпионом среди всех дистров.

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

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

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

GUIX на данный момент уникален, он предоставляет только open source GNU

Ну так никому не нужен «только open source GNU». Нужен нормальный репозиторий пакетов.

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

Что это за набор слов?

Кто еще так умеет?

Умеет что? Пока он не умеет в сколь либо сопоставимое с нормальными дистрибутивами число и свежесть пакетов, и не умеет в читаемый формат пакетов без нагромождения скобок, итого это игрушка для gnu’тых гиков. Вместе с nix, кстати.

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

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

Еще пока только изучаю GUIX, могу ошибаться, но насколько я понял более воспроизводимых дистров не существует?

А что Debian разве имеет какую-то воспроизводимость (ну кроме похожести), чтобы с ним сравнивать?

а также хотя бы в общих чертах описание инфраструктуры доказательства воспроизводимости (без которой всё это бесполезно).

даже не знаю, что это такое, есть примеры ?

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

Ну так никому не нужен «только open source GNU». Нужен нормальный репозиторий пакетов

Это почему же никому. Вы так взяли прямо и за меня в том числе решили, прямо как Некрософт Шиндоуз. С кванторами поаккуратнее, пожалуйста. Open source может очень многое, это тысячи пакетов, достаточно KVM на Libre ядре, чтобы запускать какие-нибудь бяко-блобы в виртуалках.

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

Умеет что? Пока он не умеет в сколь либо сопоставимое с нормальными дистрибутивами

Это дистрибутив очень необычный и уникальный, однозначно не такой как «нормальные», к которым вы привыкли.

не умеет в читаемый формат пакетов без нагромождения скобок, итого это игрушка для gnu’тых гиков. Вместе с nix, кстати.

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

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

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

Серьезные относительно крупные инстоляции GUIX:

https://hpc.guix.info/about/


Cluster Deployments

Here are deployments of Guix on clusters and contact information:

    Max Delbrück Center for Molecular Medicine (Germany)
        250-node cluster + workstations
        contact: Ricardo Wurmus

    Utrecht Bioinformatics Center (The Netherlands)
        68-node cluster (1,000+ cores)
        contact: Roel Janssen

    Australian Centre for Ecogenomics (Australia)
        21-node cluster (1,000 cores)
        contact: Ben Woodcroft

    PlaFRIM cluster (France)
        120-node heterogeneous cluster (3,000+ cores)
        contact: Ludovic Courtès

    GriCAD (France)

        72-node “Dahu” cluster (1,000+ cores)

        contact: Violaine Louvet, Pierre-Antoine Bouttier

simoshina ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)