Задать вопрос
@ExpSys
student

Безопасно ли использовать OpenSource продукты от крупных корпораций?

Существует масса крупных компаний которые выпускают компиляторы, библиотеки для ЯП, IDE и т.д. под открытыми лицензиями, понятное дело код таких продуктов выложен на GitHub, GitLab, но фактически они выпускают скомпилированные под платформу бинарники, как можно проверить, что выложенный код совпадает со скомпилированным бинарником?
Я понимаю, сейчас много кто может сказать: не доверяешь - компилируй. Но, так или иначе, чтобы этим заниматься, нужно время и погружения в определённые стеки, чего бы я хотел избежать.
Есть простые способы проверки соответствия скомпилированного бинарника с такой же версией открытого кода?
  • Вопрос задан
  • 244 просмотра
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
GavriKos
@GavriKos
Микропетпроджект - домашнее облако homeCloud
Есть простые способы проверки соответствия скомпилированного бинарника с такой же версией открытого кода?


Именно в такой формулировке - простых способов нет. Не доверяешь - компилируй.
Но вообще в таком случае корпорация предоставляет контрольные суммы бинарников. И вы уже можете посчитать контрольную сумму бинарника который у вас и сравнить. Но - это не гарантирует что бинарь собран из того же кода, который вы видите в открытой репе.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
@alexalexes
Реинжиниринг кода - это для тех ребят, для которых повторная доверенная сборка компилятора из исходников - стандартное действие.
Так что, нет, никогда не будет проста такая операция.
Ответ написан
Комментировать
@Everything_is_bad
Есть простые способы проверки соответствия скомпилированного бинарника с такой же версией открытого кода?
нет, для простых способов нужно минимум, чтобы процесс был обратимый
Ответ написан
Комментировать
@Drno
насчет надежности опенсорса
https://vk.com/wall-194576836_28348
Ответ написан
Комментировать

как можно проверить, что выложенный код совпадает со скомпилированным бинарником?

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

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


Есть простые способы проверки соответствия скомпилированного бинарника с такой же версией открытого кода?

Собрать самостоятельно - это и есть самый простой способ.
Ну и ещё если все пайплайны для сборки описаны в этом же репозитории (github actions или просто дана ссылка на пайплайны), то это +1 очко к уверенности, что для сборки используются те же самые исходники.

В любом случае, всякие мелкие или не очень мелкие пакости с большей вероятностью пойдут от мелких разрабов-одиночек, а не от корпораций.
Ответ написан
Комментировать
@pfg21
ex-турист
весь вопрос в воспроизводимости скомпилированных бинарей.
если воспроизводимость возможна - то кто угодно может компильнуть исходный код и простым сравнением бинарников подтвердить, что данная компиляция соответствует исходному коду или наоборот не соответствует.

самым правильным решением исключения вопросов левых внедрений в код на этапе компиляции является собственная компиляция.
Ответ написан
Комментировать
@ExpSys Автор вопроса
student
Спасибо всем коллеги за развёрнутые ответы, как я понял, выход для людей которые желают пользоваться разработками под открытыми лицензиями:
1. Проверка соответствия кода и бинарника - это самостоятельная компиляция проверенного комьюнити кода из сетевых хранилищ, обращая внимание на контрольную сумму выложенную вендором полученного в результате компиляции бинарника. Этот вариант предусматривает настройку окружения под стек продукта, включая среду ЯП, скрипты компиляции, внешние зависимости и т.д., такой вариант будет полностью на ответственности того кто компилирует и необходимости контроля и перекомпиляции в случае обнаружения уязвимостей;
2. Реверс-инжиниринг готового бинарника от вендора с целью сопоставления коду размещённому в открытом сетевом хранилище, задача так же не тривиальная и требует ещё большего погружения как в стек, так и в более низкоуровневые технологии;
3. Просто доверять тому или иному вендору открытого ПО, без проверки на соответствие.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы