Я решил перестраховаться и запустил Bandit из корня репозитория (работал на ALTLinux 11.1). Вот что он нашел:
Файл: balancer.py
Тип проблемы: B311 – использование random.choice/random.randint для криптографических целей
Тяжесть: Low
Краткое описание: Стандартный генератор случайных чисел не подходит для безопасности.
Рекомендация: Заменить на secrets.choice / secrets.randbelow.
────────────────────────────────────────
Файл: config.py
Тип проблемы: B311 – random.choices в URL‑запросе
Тяжесть: Low
Краткое описание: Тот же недостаток.
Рекомендация: Использовать secrets.choice.
────────────────────────────────────────
Файл: ctk_theme.py, ctk_tooltip.py, ctk_tray_ui.py, tray_common.py, tg_ws_proxy.py, pool.py,
raw_websocket.py, win32_theme.py, windows.py, update_check.py
Тип проблемы: B110 – except Exception: pass (молчаливое подавление ошибок)
Тяжесть: Low
Краткое описание: Потенциально скрывает реальные сбои, усложняет отладку.
Рекомендация: Добавить логирование (log.exception), либо обработать конкретные исключения.
────────────────────────────────────────
Файл: fake_tls.py
Тип проблемы: B311 – random.randint для размера зашифрованных данных
Тяжесть: Low
Краткое описание: Не крипто‑стойко.
Рекомендация: secrets.randbits/secrets.randbelow.
────────────────────────────────────────
Файл: macos.py
Тип проблемы: B603 – вызовы subprocess.run/subprocess.call без shell=True (но без валидации входных
данных)
Тяжесть: Low
Краткое описание: Возможна передача не проверенных строк в системные вызовы.
Рекомендация: Валидировать/экранировать параметры, использовать массив аргументов как уже делается,
но убедиться, что аргументы не от пользователя.
────────────────────────────────────────
Файл: macos.py
Тип проблемы: B607 – запуск процессов по частичному пути (osascript, open, pbcopy)
Тяжесть: Low
Краткое описание: Неявный путь может привести к выполнению неожиданного исполняемого файла.
Рекомендация: Указать полный путь к исполняемому файлу или убедиться, что вызывается только
доверенный.
────────────────────────────────────────
Файл: utils.py
Тип проблемы: B104 – привязка к 0.0.0.0 (прослушивание всех интерфейсов)
Тяжесть: Medium
Краткое описание: Открывает сервис для внешних соединений без контроля доступа.
Рекомендация: Добавить возможность конфигурировать хост, по умолчанию привязываться к 127.0.0.1 или
использовать TLS/аутентификацию.
────────────────────────────────────────
Файл: windows.py
Тип проблемы: B404 – импорт subprocess (подсказка о потенциальных рисках)
Тяжесть: Low
Краткое описание: Просто предупреждение.
Рекомендация: При работе с subprocess проверять ввод, использовать безопасные аргументы.
────────────────────────────────────────
Файл: windows.py
Тип проблемы: B606 – запуск процесса без оболочки (os.startfile)
Тяжесть: Low
Краткое описание: Открывает файл/URL напрямую.
Рекомендация: Проверить, что путь контролируемый, либо использовать безопасный API.
Версия TG WS Proxy
v1.8.1
Опишите вашу проблему