Skip to content

Security: Spiceman161/Stratum-tester

Security

SECURITY.md

Security Policy

🇬🇧 English | 🇷🇺 Русский


English

Supported Versions

We release security updates for the following versions:

Version Supported
Latest ✅
< Latest ❌

We recommend always using the latest version from Releases.

Security Features

StratumTester is designed with security in mind:

Credentials Protection:

  • Pool passwords stored only in memory during test session
  • Passwords never written to disk or log files
  • Passwords redacted in all logs (shown as [REDACTED])
  • No credential persistence between sessions

Network Security:

  • Stratum V2 supports Noise Protocol encryption (planned)
  • All connections use TLS where supported by pools
  • No data sent to third parties
  • No telemetry or analytics collection

Open Source:

  • Full source code available for audit
  • Transparent build process via GitHub Actions
  • Reproducible builds from source

Reporting a Vulnerability

We take security vulnerabilities seriously. If you discover a security issue, please follow these steps:

1. Do NOT create a public GitHub issue

Public disclosure before a fix is available puts all users at risk.

2. Report privately

Send details to: Create a private security advisory

Or contact repository maintainers directly via GitHub.

3. Include in your report:

  • Description of the vulnerability
  • Steps to reproduce the issue
  • Potential impact assessment
  • Suggested fix (if you have one)
  • Your contact information for follow-up

4. What to expect:

  • Acknowledgment within 48 hours
  • Initial assessment within 1 week
  • Fix timeline estimate provided
  • Credit in security advisory (if desired)
  • CVE assignment for critical vulnerabilities

Security Best Practices for Users

When Running StratumTester:

  1. Download only from official GitHub Releases
  2. Verify checksums for downloaded binaries
  3. Use test wallet addresses, not production wallets
  4. Run with least privileges necessary (see README for details)
  5. Keep your system and antivirus software updated

When Building from Source:

  1. Clone from official repository only
  2. Review Cargo.lock for dependency versions
  3. Run cargo audit to check for known vulnerabilities
  4. Build in isolated environment if concerned

When Contributing:

  1. Never commit credentials, API keys, or secrets
  2. Use .env files for local testing (already in .gitignore)
  3. Review dependencies before adding new ones
  4. Report security concerns during code review

Known Security Considerations

ICMP Ping Permissions:

  • Windows requires administrator rights for ICMP
  • Linux can use TCP fallback (no special permissions)
  • macOS supports both modes

This is by design - raw ICMP sockets require elevated privileges on most systems. StratumTester gracefully degrades to TCP ping if ICMP is unavailable.

Pool Connection Testing:

  • StratumTester connects to mining pools you specify
  • Ensure you trust the pool before testing
  • Use test credentials, not production credentials
  • Some pools may rate-limit or block diagnostic tools

Third-Party Dependencies

We regularly audit our dependencies for security issues:

  • Rust Cargo Audit: Automated via GitHub Actions
  • Dependabot: Enabled for automatic security updates
  • Manual Review: Major dependencies reviewed before updates

See Cargo.toml for full dependency list.

Security Changelog

Security-related changes are documented in CHANGELOG.md with [SECURITY] prefix.


Russian

Поддерживаемые версии

Мы выпускаем обновления безопасности для следующих версий:

Версия Поддерживается
Последняя ✅
< Последняя ❌

Мы рекомендуем всегда использовать последнюю версию из Releases.

Функции безопасности

StratumTester разработан с учетом безопасности:

Защита учетных данных:

  • Пароли пулов хранятся только в памяти во время тестовой сессии
  • Пароли никогда не записываются на диск или в лог-файлы
  • Пароли скрыты во всех логах (показываются как [REDACTED])
  • Нет сохранения учетных данных между сессиями

Сетевая безопасность:

  • Stratum V2 поддерживает шифрование Noise Protocol (запланировано)
  • Все соединения используют TLS, где поддерживается пулами
  • Никакие данные не отправляются третьим лицам
  • Нет телеметрии или сбора аналитики

Открытый исходный код:

  • Полный исходный код доступен для аудита
  • Прозрачный процесс сборки через GitHub Actions
  • Воспроизводимые сборки из исходников

Сообщение об уязвимости

Мы серьезно относимся к уязвимостям безопасности. Если вы обнаружили проблему безопасности, пожалуйста, следуйте этим шагам:

1. НЕ создавайте публичный GitHub issue

Публичное раскрытие до появления исправления подвергает риску всех пользователей.

2. Сообщите приватно

Отправьте детали: Создать приватное уведомление безопасности

Или свяжитесь с мейнтейнерами репозитория напрямую через GitHub.

3. Включите в ваше сообщение:

  • Описание уязвимости
  • Шаги для воспроизведения проблемы
  • Оценка потенциального воздействия
  • Предлагаемое исправление (если есть)
  • Ваши контактные данные для связи

4. Чего ожидать:

  • Подтверждение в течение 48 часов
  • Первоначальная оценка в течение 1 недели
  • Оценка сроков исправления
  • Упоминание в security advisory (по желанию)
  • Присвоение CVE для критических уязвимостей

Рекомендации по безопасности для пользователей

При использовании StratumTester:

  1. Скачивайте только с официальных GitHub Releases
  2. Проверяйте контрольные суммы для скачанных бинарников
  3. Используйте тестовые адреса кошельков, не production кошельки
  4. Запускайте с минимально необходимыми привилегиями (см. README)
  5. Держите вашу систему и антивирус обновленными

При сборке из исходников:

  1. Клонируйте только из официального репозитория
  2. Проверяйте Cargo.lock на версии зависимостей
  3. Запускайте cargo audit для проверки известных уязвимостей
  4. Собирайте в изолированной среде, если беспокоитесь

При участии в разработке:

  1. Никогда не коммитьте учетные данные, API ключи или секреты
  2. Используйте .env файлы для локального тестирования (уже в .gitignore)
  3. Проверяйте зависимости перед добавлением новых
  4. Сообщайте о проблемах безопасности во время code review

Известные соображения безопасности

Права доступа ICMP Ping:

  • Windows требует права администратора для ICMP
  • Linux может использовать TCP fallback (без специальных прав)
  • macOS поддерживает оба режима

Это сделано намеренно - raw ICMP сокеты требуют повышенных привилегий на большинстве систем. StratumTester gracefully деградирует до TCP ping, если ICMP недоступен.

Тестирование подключения к пулу:

  • StratumTester подключается к майнинг-пулам, которые вы указываете
  • Убедитесь, что вы доверяете пулу перед тестированием
  • Используйте тестовые учетные данные, не production
  • Некоторые пулы могут ограничивать или блокировать диагностические инструменты

Сторонние зависимости

Мы регулярно проверяем наши зависимости на проблемы безопасности:

  • Rust Cargo Audit: Автоматизировано через GitHub Actions
  • Dependabot: Включен для автоматических обновлений безопасности
  • Ручной обзор: Основные зависимости проверяются перед обновлением

См. Cargo.toml для полного списка зависимостей.

Журнал изменений безопасности

Изменения, связанные с безопасностью, документируются в CHANGELOG.md с префиксом [SECURITY].


Questions?

For general security questions, open an issue with the security label.

For vulnerability reports, use the private security advisory process.

There aren't any published security advisories