
38
Если девопсы и хакеры свято верят, что после команды уничтожения контейнер растворяется в цифровом небытии без следа, то у меня для них плохие новости. Эфемерность Docker обманчива: хост помнит практически всё, если специалист понимает архитектуру ядра Linux и структуру демона.
Анатомия слоев и OverlayFS
Главный миф микросервисов – иллюзия полной бесследности запущенных приложений. На самом деле контейнер представляет собой изолированный процесс на хосте, пишущий временные данные в выделенный рабочий слой файловой системы.
Каталог /var/lib/docker/overlay2 хранит все разрозненные слои образов и контейнеров. Пока сущность не вычищена с диска принудительно через docker system prune, рабочий каталог diff содержит абсолютно каждый измененный или созданный файл, включая загруженные бэкдоры.
Снятие дампа оперативной памяти
Атакующие нередко держат вредоносный код исключительно в памяти, избегая записи бинарников на диск. Пространства имен лишь разграничивают видимость, поэтому для хостового ядра память изолированного процесса ничем не отличается от локальной службы.
Вытащить оперативную память можно напрямую из каталога /proc/<PID>/mem или с помощью gcore на хосте, определив родительский PID контейнера. Для глубокого исследования инъекций и анализа скрытых сокетов применяют профилированный модуль LiME в связке с фреймворком Volatility.
Тактика сбора цифровых доказательств
Первое правило реагирования на инцидент – забыть про спонтанный перезапуск служб. Обычная остановка контейнера может запустить скрипты самоуничтожения малвари или обнулить ценные точки монтирования в памяти tmpfs.
docker pause, чтобы зафиксировать состояние всех регистров и процессов.docker commit.docker save или docker export для изолированного препарирования на стенде.Логирование и сетевой контекст
Попытка зачистить историю shell внутри окружения – классический ход, который не спасает от внешнего аудита. Если на хосте развернуты auditd или eBPF-зонды, каждый системный вызов внутри cgroups уже сохранен в централизованном журнале.
Файл конфигурации /var/log/docker.log и метаданные команды docker inspect содержат точную хронологию запуска, смонтированные тома и скрытые переменные окружения. Таблица трансляции conntrack и цепочки iptables хоста сохраняют адреса удаленных серверов управления, с которыми контактировал скомпрометированный узел.
Главные правила работы эксперта
Не проводите эксперименты на живой рабочей инфраструктуре без предварительного снятия дампов, я серьезно. Неаккуратное движение уничтожит цепочку улик и превратит потенциальное доказательство для отчета в бесполезный мусор.
docker history, чтобы отделить артефакты компрометации от заводских уязвимостей.