## Прожарка: 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), ✗ неверно (опровергнуто).*
