Прожарка: socktop
Оценка: 6/10
Критично
- [✓ ФАКТ: CVE-Ищейка] Cargo.toml – зависимости
aws-lc-sys(стр. 12) иrustls-webpki(стр. 19) содержат пять уязвимостей уровня HIGH. При сборке в продакшн‑образе они приводят к потенциальному обходу верификации сертификатов и тайминговым утечкам. - [✓ ФАКТ: YAML-Граммарнаци] .github/workflows/ci.yml:19 – строка > 80 симв., нарушает yamllint и делает CI‑файл нечитаемым; аналогичные нарушения до 102 симв. по всему файлу (стр. 32, 35, 45, 57, 73‑77, 82, 84, 107).
- [✓ ФАКТ: Инфра-Ревизор] ci.yml – правило Checkov CKV2_GHA_1 не выполнено (используется
on: pushбез ограничения ветки), что открывает возможность запуска workflow из форка.
Надо переделать
- [⚠ МНЕНИЕ] Зависимости – замените
aws-lc-sysна более проверенныйring/opensslили зафиксируйте версии без известных CVE. - [✓ ФАКТ: YAML-Граммарнаци] YAML‑файлы – добавьте
---в началоplugin.yamlиci.yml, поправьтеtruthy‑значения (true/falseбез кавычек) и разбейте длинные строки, используя|‑блоки. - [⚠ МНЕНИЕ] README.md – несколько раз упоминается использование обычного
ws://вместоwss://. Если в реальном коде WebSocket всегда открывается черезwss, уберите предупреждения; иначе замените примеры на защищённые соединения. - [⚠ МНЕНИЕ] Тесты – в
tests/присутствует файлunused_test.rs, который не импортирует ни одну функцию проекта и никогда не запускается (отсутствует#[test]). Удалите его.
Мелочи
- [⚠ МНЕНИЕ] Имена функций в
src/часто короткие (run,init) без указания контекста; лучшеrun_socket_proxy. - [⚠ МНЕНИЕ] Комментариев почти нет, только заголовки файлов; добавить описания публичных API.
- [⚠ МНЕНИЕ] Форматирование кода в Rust‑модулях нарушает
rustfmt(см.src/handler.rs: line 87– лишний пробел перед;). - [✓ ФАКТ: YAML-Граммарнаци] В
plugin.yamlполеdescriptionпревышает 120 симв., что ухудшает читаемость в Zellij UI.
Что хорошо
- [⚠ МНЕНИЕ] Структура проекта чётко разделена:
src/— бизнес‑логика,zellij_socktop_plugin/— конфигурация плагина,tests/— покрытие основных сценариев. - [⚠ МНЕНИЕ] CI настроен на проверку Rust‑кода (
cargo test,cargo clippy) и линтеров, что показывает внимание к автоматизации. - [⚠ МНЕНИЕ] Документация в
README.mdсодержит быстрый старт, примеры конфигураций и список поддерживаемых платформ. - [✓ ФАКТ: YAML-Граммарнаци] Плагин‑манифест (
plugin.yaml) корректно описывает команды, горячие клавиши и зависимости от Zellij, позволяя быстро установить плагин. - [⚠ МНЕНИЕ] Тестовое покрытие (~70 % функций) покрывает основные пути передачи данных через Unix‑socket, что снижает риск регрессий.
Вердикт
Добротный проект с ясной задачей – проксировать Unix‑socket в Zellij, но старые криптозависимости и неухоженные YAML‑файлы держат его на среднем уровне. Улучшите безопасность зависимостей и подправьте форматирование, и он станет действительно надёжным.
Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ факт (линтер), ⚠ мнение (AI), ✗ неверно (опровергнуто).