5
/10
Прожарка: lynxdb
Оценка: 5/10
Критично
- [⚠ МНЕНИЕ] Dockerfile (стр. 12) –
apk addбез указания версии. При пересборке образа может «поплыть» набор зависимостей, а в CI‑пайплайне это часто приводит к непредсказуемым сбоям. - [⚠ МНЕНИЕ] Dockerfile.release (стр. 2) – аналогично,
apt‑get installбез фиксированных версий. - [⚠ МНЕНИЕ] run‑all.sh (стр. 153) –
ls | grep— неустойчивый способ перебора файлов; при наличии пробелов в именах скрипт упадёт. - [⚠ МНЕНИЕ] fault_inject.sh (стр. 14) – переменная
COMPOSE_FILEобъявлена, но нигде не используется; оставляет «мусор», который только запутывает читающего. - [✓ ФАКТ: CVE-Ищейка] trivy – уязвимости в
dompurify(много CVE и GHSA). Библиотека используется для санитизации HTML, но текущая версия содержит известные bypass‑ы, что делает XSS‑защиту сомнительной.
Надо переделать
- [⚠ МНЕНИЕ] install.sh (стр. 44) – объявлена переменная
BLUE, но она не участвует в дальнейшем коде; удалите или задокументируйте её назначение. - [⚠ МНЕНИЕ] analyze.sh (стр. 14‑115) – каждый вызов команды пишет в файл отдельным перенаправлением. Сгруппировать их в блок
{ … } >> logfileуменьшит количество открытых дескрипторов и упростит чтение. - [✓ ФАКТ: CVE-Ищейка] Dockerfile – добавить
USERс ненулевым UID, иначе контейнер будет работать от root, что отмечено как high‑severity misconfiguration. - [⚠ МНЕНИЕ] Обновить зависимости: перейти на последнюю безопасную версию
dompurify,follow-redirectsиgrpc. Это устранит большинство CVE‑средней тяжести и одну критическую.
Мелочи
- [✓ ФАКТ: Баш-Прокурор] В
shellcheck‑сообщениях о стиле (2129) рекомендуется объединять редиректы; это не критично, но повышает читаемость. - [⚠ МНЕНИЕ] В
install.shпеременнаяBLUEмогла бы стать параметром, если её планировали использовать в цветных выводах. - [⚠ МНЕНИЕ] В
run-all.shвместоls | grepпредпочтительнееfor f in *.log; do …; done.
Что хорошо
- [⚠ МНЕНИЕ] Репозиторий содержит полный набор CI‑файлов (GitHub Actions, GitLab CI) – автоматизация тестов и сборки уже настроена.
- [⚠ МНЕНИЕ] Тестовый пакет присутствует, покрывая основные функции парсинга данных; это показатель, что авторы думают о качестве.
- [⚠ МНЕНИЕ] README подробно описывает процесс установки и пример использования, включая готовый
docker-compose.yml. - [⚠ МНЕНИЕ] В коде используются типичные Python‑модули (
pandas,sqlalchemy) без излишних обёрток, что упрощает поддержку. - [⚠ МНЕНИЕ] Структура проекта достаточно логична:
src/– бизнес‑логика,scripts/– вспомогательные утилиты,tests/– юнит‑тесты. - [⚠ МНЕНИЕ] В
Dockerfile.releaseпредусмотрен multi‑stage build, что уменьшает размер финального образа.
Вердикт
Добротный набор утилит, но без фиксированных версий пакетов и с устаревшими зависимостями проект держится на грани стабильности. Улучшите безопасность и уберите «мёртвый» код – тогда оценка поднимется.
Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ факт (линтер), ⚠ мнение (AI), ✗ неверно (опровергнуто).