Воспроизводимые сборки
Что такое Воспроизводимые сборки?
Воспроизводимые сборкиПрактики сборки, обеспечивающие, что компиляция одного и того же исходного кода с теми же инструкциями даёт побитно идентичный артефакт независимо от времени и места сборки.
Воспроизводимые сборки устраняют недетерминированность, чтобы любой, имея исходники и рецепт, мог независимо собрать тот же бинарник и побайтно сравнить его с выпуском. Для этого нужно контролировать метки времени, пути сборки, переменные окружения, случайность, локаль, порядок файлов и опции компилятора. Проект Reproducible Builds, Debian, NixOS, Arch Linux, Tor, F-Droid и Bazel активно работают в этой области. В сочетании с подписанным provenance они позволяют независимым ребилдерам убедиться, что бинарь действительно собран из опубликованного кода, что помогает выявлять компрометацию единичного сборщика (как в случае SolarWinds). Они необходимы для достижения высших уровней SLSA и поддерживают доверие к критичному open-source ПО.
● Примеры
- 01
Независимая пересборка релиза Tor Browser, побайтно совпадающая с официальным бинарником.
- 02
Bazel-сервис, выдающий одинаковый SHA-256 для одного коммита на любом воркере.
● Частые вопросы
Что такое Воспроизводимые сборки?
Практики сборки, обеспечивающие, что компиляция одного и того же исходного кода с теми же инструкциями даёт побитно идентичный артефакт независимо от времени и места сборки. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Воспроизводимые сборки?
Практики сборки, обеспечивающие, что компиляция одного и того же исходного кода с теми же инструкциями даёт побитно идентичный артефакт независимо от времени и места сборки.
Как работает Воспроизводимые сборки?
Воспроизводимые сборки устраняют недетерминированность, чтобы любой, имея исходники и рецепт, мог независимо собрать тот же бинарник и побайтно сравнить его с выпуском. Для этого нужно контролировать метки времени, пути сборки, переменные окружения, случайность, локаль, порядок файлов и опции компилятора. Проект Reproducible Builds, Debian, NixOS, Arch Linux, Tor, F-Droid и Bazel активно работают в этой области. В сочетании с подписанным provenance они позволяют независимым ребилдерам убедиться, что бинарь действительно собран из опубликованного кода, что помогает выявлять компрометацию единичного сборщика (как в случае SolarWinds). Они необходимы для достижения высших уровней SLSA и поддерживают доверие к критичному open-source ПО.
Как защититься от Воспроизводимые сборки?
Защита от Воспроизводимые сборки обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Воспроизводимые сборки?
Распространённые альтернативные названия: Детерминированные сборки, Побитно идентичные сборки.
● Связанные термины
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts — выпущенный OpenSSF набор требований по уровням, который последовательно ужесточает практики сборки, подписи и верификации ПО для защиты от вмешательства в цепочку поставок.
- appsec№ 1069
Безопасность цепочки поставок ПО
Дисциплина защиты каждого звена производства ПО — исходного кода, зависимостей, сборки, подписи, дистрибуции и деплоя — от вмешательства, вредоносного кода и потери целостности.
- appsec№ 870
Аттестация происхождения (Provenance Attestation)
Подписанное и машиночитаемое заявление о том, как был произведён программный артефакт — источник, сборочная система, параметры и зависимости — чтобы потребители могли доверять его происхождению.
- appsec№ 305
Закрепление зависимостей (pinning)
Практика объявления зависимостей ПО точными версиями, часто с криптографическими хешами, чтобы сборки всегда получали одни и те же артефакты и были устойчивы к вмешательству в цепочку поставок.
- appsec№ 166
Безопасность CI/CD
Совокупность контролей, защищающих конвейеры непрерывной интеграции и поставки от компрометации, инъекций кода, утечки секретов и несанкционированных деплоев.
- appsec№ 784
Подпись пакетов
Применение криптографической подписи к программному пакету, чтобы потребители могли проверить личность издателя и убедиться, что артефакт не был изменён после выпуска.