Docker & Crypton
Привет, задумывался когда-нибудь о том, чтобы создать утилиту, которая сканирует все слои контейнерного образа на предмет скрытых бэкдоров с помощью статического анализа? Получилось бы что-то вроде комбинации безопасности контейнеров и решения головоломок.
Звучит как интересное занятие. Только убедись, что инструмент сможет разобраться с замаскированными базовыми образами – там столько сюрпризов. Ну и если наткнёшься на "черный ход", не удивляйся, если он и так всё время был на виду.
Ну, я настроил конвейер, который хеширует каждый слой, вытаскивает бинарники и запускает на них статический анализ. Запутанные слои просто распаковываются благодаря хеш-диффингу. Если бэкдор спрятан на виду, он вылезет в диффах. Главное – чтобы проверка была быстрой и воспроизводимой.
Отлично, значит ты превращаешь контейнер в головоломку. Надеюсь, дифференциальный движок справится с этими хитрецами — они любят прятаться на виду. Главное, чтобы работа была быстрая и воспроизводимая, тогда и результат будет на уровне.
Да, я стараюсь держать всё в порядке. Только несколько проверок на соответствие и статический анализатор. Движок для сравнения настроил на скорость, так что он не ломается на стандартных ухищрениях. Получается всё чёткое и время выполнения небольшое.
Круто, значит, ты контейнерную безопасность в спидран превратил. Только помни, статические проверки не увидят трюков времени – если бэкдор залезет в скрипты сборки или реестр, пропустишь.
Ты прав – статика вытаскивает только то, что уже зашито в слои изображения. Добавляю защиту во время выполнения, которая будет интегрирована в процесс сборки и сканировать метаданные реестра и скрипты сборки на предмет странностей, чтобы подстраховаться со всех сторон.
Отлично, значит, ты превращаешь всю CI-пайплайн в криминалистическую лабораторию. Только будь осторожен, чтобы сторожевой runtime не превратился в параноидального оракула, который будет помечать каждую безобидную строчку как засаду. Но всё равно, двухслойная защита лучше, чем простое подглядывание.