5
/10
Прожарка: docker_gc
Оценка: 5/10
Критично
- [⚠ МНЕНИЕ] Dockerfile: строка 12 – отсутствие директивы
USER. Контейнер стартует отroot, что открывает путь к привилегированному выполнению любого кода внутри образа. - [⚠ МНЕНИЕ] docker‑compose.yml и docker‑stack.yml строка 13 – монтируется сокет Docker‑демона (
/var/run/docker.sock). Любой процесс в контейнере получает полный контроль над хост‑Docker‑ом. - [✓ ФАКТ: Инфра-Ревизор] Dockerfile – CKV_DOCKER_2 – образ собирается без указания фиксированной версии базового образа, что делает сборку непредсказуемой при каждом
docker build. - [✓ ФАКТ: Инфра-Ревизор] Dockerfile – CKV_DOCKER_3 – в образе не заданы ограничения на привилегии (например,
--cap-drop ALL), усиливающие риск эксплуатации.
Надо переделать
- [⚠ МНЕНИЕ] entrypoint.sh строка 5 – переменная используется без кавычек, что может привести к неожиданному разбиению слов при наличии пробелов или символов‑шаблонов.
- [✓ ФАКТ: YAML-Граммарнаци] GitHub‑workflow docker‑publish.yml – нарушения стиля YAML (отсутствие
---, лишние пробелы в скобках, строки > 80 символов). Приведут к ошибкам парсинга в более строгих CI‑средах. - [⚠ МНЕНИЕ] Отсутствие
HEALTHCHECKв Dockerfile. Оркестраторы не смогут автоматически проверять работоспособность контейнера и могут перезапустить его без причины.
Мелочи
- [✓ ФАКТ: Баш-Прокурор] Дублирование сообщения
Double quote to prevent globbing…в выводеshellcheck. Оставляет ощущение, что проверка запускалась дважды без необходимости. - [⚠ МНЕНИЕ] В
docker‑publish.ymlиспользуется булево значениеtrueбез кавычек; линтер требуетtrue/falseв нижнем регистре, но файл хранит их какTrue. - [✓ ФАКТ: YAML-Граммарнаци] В
docker‑publish.ymlкомментарии отделены от кода одним пробелом вместо двух, что нарушает правилаyamllint. - [⚠ МНЕНИЕ] В
DockerfileнетLABELс метаданными (версия, автор, лицензия). Это усложняет аудит образов в реестрах.
Что хорошо
- [⚠ МНЕНИЕ] Оригинальность: единственный автор — Dmitry Malinin, один коммит, все 8 файлов изменены. Практически 100 % кода написано автором, никаких признаков форка.
- [⚠ МНЕНИЕ] Размер: проект компактный (≈ 170 строк), легко воспринимается и быстро собирается, что упрощает локальное тестирование.
- [⚠ МНЕНИЕ] Документация: в репозитории присутствует
READMEи лицензия, что облегчает понимание назначения инструмента. - [⚠ МНЕНИЕ] CI‑pipeline: наличие GitHub‑Actions для публикации образа демонстрирует базовый уровень автоматизации.
- [⚠ МНЕНИЕ] Shell‑скрипт:
entrypoint.shсодержит простую логику запуска, без избыточных зависимостей, что снижает поверхность атаки.
Вердикт
Проект умеет делать своё дело, но оставляет «дыры» в защите, словно открытая дверь в комнату с ценными вещами.
Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ факт (линтер), ⚠ мнение (AI), ✗ неверно (опровергнуто).