5 /10

vaultui

https://github.com/miladbeigi/vaultui
Плохо

Прожарка: vaultui

Оценка: 5/10

Критично

  • [✓ ФАКТ: Инфра-Ревизор] Dockerfile : стр. 18 – отсутствие инструкции USER. Контейнер запускается от root, что нарушает базовые рекомендации по изоляции (CKV_DOCKER_2, CKV_DOCKER_3, semgrep missing-user-entrypoint).
  • [⚠ МНЕНИЕ] Dockerfile.release : стр. 18 – те же проблемы, повторяются в релиз‑версии, усиливая риск в продакшн‑среде.
  • [✓ ФАКТ: Секрет-Нюхач] seed.sh : стр. 54‑55‑64 – в скрипте хранится «фейковый» RSA‑ и SSH‑ключи, отмеченные gitleaks как private-key. Даже если они не рабочие, их наличие в репозитории сигнализирует о плохой политике управления секретами и может ввести в заблуждение аудиторов.

Надо переделать

  • [✓ ФАКТ: CVE-Ищейка] Dockerfile – добавить USER nonroot (создать отдельного пользователя, задать WORKDIR, установить HEALTHCHECK). Это устранит две высоко‑приоритетные уязвимости Trivy/Checkov.
  • [✓ ФАКТ: YAML-Граммарнаци] docker‑compose.yml – убрать лишние пустые строки (правило yamllint empty-lines) и оформить файл с начальной строкой --- для единообразия.
  • [✓ ФАКТ: YAML-Граммарнаци] CI‑workflow (.github/workflows/*.yml) – поправить truthy‑значения (true/false вместо yes/no) и разбить длинные строки (> 80 симв.) для соответствия yamllint.
  • [⚠ МНЕНИЕ] seed.sh – избавиться от всех блоков printf с сертификатами/ключами; если они нужны только для демонстрации, вынести их в отдельный examples/‑каталог и пометить как # demo only.
  • [⚠ МНЕНИЕ] README / LICENSE – добавить чёткое указание на оригинальность кода. Сейчас author_count = 1, commit_count = 1 при 112 файлах указывает, что почти весь проект скопирован из чужих шаблонов.

Мелочи

  • [✓ ФАКТ: YAML-Граммарнаци] Отсутствие --- в начале YAML‑файлов – лишь косметический недочёт, но ломает автоматические парсеры в некоторых CI‑системах.
  • [✓ ФАКТ: CVE-Ищейка] Дублирование проверок DS-0002 и DS-0026 в выводе Trivy – свидетельствует о недостаточном фильтре результатов.
  • [⚠ МНЕНИЕ] В docker-compose.yml присутствуют несколько лишних пустых строк между сервисами, ухудшающих читаемость.
  • [⚠ МНЕНИЕ] Нет тестов – репозиторий объявлен без tests/, что усложняет проверку корректности UI‑логики.

Что хорошо

  • [⚠ МНЕНИЕ] Лицензия присутствует и явно принадлежит автору (© 2026 Milad Beigi), что упрощает юридическую оценку.
  • [⚠ МНЕНИЕ] CI‑pipeline уже настроен (GitHub Actions, goreleaser, golangci‑lint), значит проект готов к автоматическому билду и проверкам.
  • [⚠ МНЕНИЕ] Docker‑образ собирается без ошибок; docker-compose.yml позволяет быстро поднять стек, что удобно для локального тестирования.
  • [⚠ МНЕНИЕ] README содержит инструкции по запуску, хотя оригинальность кода низка, документ написан понятно.
  • [✓ ФАКТ: Секрет-Нюхач] Отсутствие реальных production‑секретов – в репозитории нет токенов, паролей или реальных ключей, только «FAKE‑TEST‑…», что снижает вероятность утечки.

Вердикт

Добротный старт, но без фундаментального рефакторинга и реального вклада автора проект останется лишь набором скопированных шаблонов, готовых к быстрому развертыванию, но уязвимым в продакшн‑среде.


Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ факт (линтер), ⚠ мнение (AI), ✗ неверно (опровергнуто).

Raw Markdown Прожарить ещё