6 /10

socktop

https://github.com/jasonwitty/socktop
Нормально

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

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