Атака «доверие к доверию» через strip: как заразить весь дистрибутив Linux

· Безопасность
Исследователи показали, что знаменитая атака Кена Томпсона на компилятор не ограничивается компиляторами — они провели её через утилиту strip и получили бэкдор почти во всех бинарниках NixOS.

cover.svg

Классическая атака Кена Томпсона «доверие к доверию» (trusting-trust) считается угрозой, специфичной для компиляторов: скомпрометированный компилятор внедряет закладку в собираемые им программы и воспроизводит её при последующих пересборках самого себя. Группа исследователей — Жюльен Малка, Аман Шарма, Мартен Монперрюс, Стефано Заккироли и Тео Циммерман — в работе, опубликованной на arXiv, показывает, что эта угроза шире, чем принято думать.

Не только компилятор

Авторы построили полноценную атаку в стиле Томпсона вокруг GNU strip — рядовой сборочной утилиты, которая не анализирует и не генерирует исходный код, а лишь удаляет отладочные символы из готовых файлов. Всё вредоносное поведение достигается исключительно манипуляциями с уже собранными ELF-файлами. Иными словами, для внедрения самовоспроизводящейся закладки компилятор оказывается вовсе не обязателен — достаточно инструмента, работающего с бинарниками на финальной стадии сборки.

Заражение через bootstrap NixOS

В качестве полигона выбрана процедура начальной загрузки (bootstrap) дистрибутива NixOS. Единственный подменённый экземпляр strip в бинарном «семени» (binary seed) внедряет полезную нагрузку, которая переходит от одного поколения strip к следующему. Самое неприятное: закладка сохраняется в итоговом стандартном окружении даже после того, как исходное «семя» покидает замыкание зависимостей — то есть формально исчезает из цепочки сборки, но след своей работы уже оставило.

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

Почему это важно

Работа бьёт по одному из главных доводов в пользу воспроизводимых сборок и доверенного bootstrap-процесса. Обычно внимание сосредоточено на компиляторе как на единственной точке, способной незаметно «протащить» закладку сквозь пересборки. Исследование показывает, что подозрительным следует считать любой инструмент, прикасающийся к артефактам сборки, — даже тот, что кажется безобидным постпроцессором. Для проектов, делающих ставку на прозрачность цепочки поставок (а NixOS — один из флагманов этого подхода), это повод пересмотреть модель угроз и расширить круг компонентов, чья честность требует независимой проверки.


Источник: Lobsters

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.