Атака «доверие к доверию» через strip: как заразить весь дистрибутив Linux
Классическая атака Кена Томпсона «доверие к доверию» (trusting-trust) считается угрозой, специфичной для компиляторов: скомпрометированный компилятор внедряет закладку в собираемые им программы и воспроизводит её при последующих пересборках самого себя. Группа исследователей — Жюльен Малка, Аман Шарма, Мартен Монперрюс, Стефано Заккироли и Тео Циммерман — в работе, опубликованной на arXiv, показывает, что эта угроза шире, чем принято думать.
Не только компилятор
Авторы построили полноценную атаку в стиле Томпсона вокруг GNU strip — рядовой сборочной утилиты, которая не анализирует и не генерирует исходный код, а лишь удаляет отладочные символы из готовых файлов. Всё вредоносное поведение достигается исключительно манипуляциями с уже собранными ELF-файлами. Иными словами, для внедрения самовоспроизводящейся закладки компилятор оказывается вовсе не обязателен — достаточно инструмента, работающего с бинарниками на финальной стадии сборки.
Заражение через bootstrap NixOS
В качестве полигона выбрана процедура начальной загрузки (bootstrap) дистрибутива NixOS. Единственный подменённый экземпляр strip в бинарном «семени» (binary seed) внедряет полезную нагрузку, которая переходит от одного поколения strip к следующему. Самое неприятное: закладка сохраняется в итоговом стандартном окружении даже после того, как исходное «семя» покидает замыкание зависимостей — то есть формально исчезает из цепочки сборки, но след своей работы уже оставило.
На реальной ревизии nixpkgs атака отработала без единого сбоя: система собрала полноценный графический установщик и снабдила закладкой почти каждый из его бинарных файлов. Это открывает путь к произвольному вредоносному поведению всех затронутых пакетов.
Почему это важно
Работа бьёт по одному из главных доводов в пользу воспроизводимых сборок и доверенного bootstrap-процесса. Обычно внимание сосредоточено на компиляторе как на единственной точке, способной незаметно «протащить» закладку сквозь пересборки. Исследование показывает, что подозрительным следует считать любой инструмент, прикасающийся к артефактам сборки, — даже тот, что кажется безобидным постпроцессором. Для проектов, делающих ставку на прозрачность цепочки поставок (а NixOS — один из флагманов этого подхода), это повод пересмотреть модель угроз и расширить круг компонентов, чья честность требует независимой проверки.
Источник: Lobsters
Комментарии
Войдите, чтобы комментировать.