SomnyToo: Высокопроизводительный TCP-сервер для защищенного бинарного протокола
🎯 Решаемая проблема
SomnyToo — это высокопроизводительный асинхронный TCP-сервер на Rust, реализующий защищенный бинарный протокол для обмена данными с встроенными механизмами безопасности, мониторинга и автоматического масштабирования. Проект решает следующие проблемы:
- Безопасная коммуникация: Сквозное шифрование, аутентификация и защита от атак
- Высокая производительность: Асинхронная обработка, пулы потоков и zero-copy буферизация
- Продвинутый Congestion Control: Адаптивное управление нагрузкой с AIMD алгоритмами
- Репутационная система IP: Автоматический blacklist/whitelist и отслеживание нарушений
- Расширенный мониторинг и управление: Встроенная унифицированная система мониторинга здоровья, метрик и алертинга для всех компонентов (БД, CPU, память, диск, сеть, API)
- Масштабируемость: Автоматическое масштабирование реплик БД на основе нагрузки
- Промышленная ORM система: Полнофункциональная система объектно-реляционного отображения с безопасным построением запросов, поддержкой сложных JOIN операций и защитой от SQL-инъекций
- Конфигурируемость: Гибкая настройка через переменные окружения и конфигурационные файлы
- Безопасное взаимодействие с БД: Встроенная система безопасности с rate limiting, детектированием SQL-инъекций и IP блокировкой
- Управление сложными запросами: Поддержка параметризованных запросов, конфликт-резолюции и транзакций
✨ Ключевые возможности
🛡️ Расширенная безопасность
- Phantom Key System (Фантомные ключи): одноразовые операционные ключи, генерируемые из рассеянного мастер-ключа без его восстановления в памяти
- Memory‑Scattered Cryptography: мастер-ключ рассеивается по уровням памяти (L1, L2, RAM) и никогда не собирается целиком
- Аппаратно‑зависимая сборка ключей: автоматический выбор ассемблера (AVX2, NEON, generic) для константного времени операций
- Постоянное время выполнения: защита от timing‑атак за счёт фиксированного числа итераций и детектирования аномалий
- Zero‑copy и zeroize: немедленное затирание промежуточных данных и ключей после использования
- Эмуляция‑детекция: обнаружение работы в эмулируемом окружении
- Адаптивный Congestion Control: AIMD‑алгоритмы с автоматическим blacklisting на основе репутационной системы IP
- Многоуровневая защита БД: детектирование SQL‑инъекций, санитизация запросов, rate‑limiting на уровне ORM
🏗️ Промышленная ORM система
- Полнофункциональный Query Builder: Безопасное построение SQL-запросов через fluent API
- Поддержка всех SQL операций: SELECT, INSERT, UPDATE, DELETE с расширенными возможностями
- Комплексные JOIN операции: INNER, LEFT, RIGHT, FULL, CROSS, NATURAL JOIN с типобезопасностью
- Параметризованные запросы: Автоматическая защита от SQL-инъекций через подготовленные выражения
- Конфликт-резолюция: Поддержка PostgreSQL ON CONFLICT DO UPDATE/NOTHING
- Транзакционная поддержка: ACID-совместимые транзакции с rollback/commit
- Безопасные условия запросов: Система условий WHERE, AND, OR, GROUP BY, HAVING с валидацией
- Поддержка RETURNING: Получение данных после INSERT/UPDATE/DELETE операций
- Типизированные результаты: Автоматическое маппинг результатов запросов в Rust структуры
- Оптимизация запросов: Автоматическая оптимизация и кэширование подготовленных выражений
🩺 Встроенная система мониторинга и Health Checks
- UnifiedMonitor: Централизованный сбор метрик и состояния от всех компонентов системы
- Комплексные проверки здоровья: Встроенные health checks для:
- Database: Проверка подключения и времени отклика БД с экспоненциальной backoff-логикой
- Network: Проверка внешней связности (google.com, cloudflare.com, github.com) и расчет задержек
- Memory: Мониторинг использования ОЗУ с кэшированием и пороговыми значениями (Normal/High/Critical)
- CPU: Анализ загрузки процессора (load average) с учетом количества ядер
- Disk: Контроль свободного места на диске
- API: Проверка доступности внутренних API endpoints
- Server: Мониторинг активных сессий, подключений, таймаутов heartbeat
- ORM Performance: Мониторинг производительности запросов и кэш-хитов
- Intelligent Caching: Кэширование результатов проверок с TTL для снижения нагрузки
- Prometheus экспорт: Готовые метрики в формате Prometheus
- Система алертов: Многоуровневые алерты (Info, Warning, Error, Critical) с историей и retention policy
- Веб-отчеты: JSON API для получения полного отчета о состоянии системы
- Фоновый мониторинг: Автоматические периодические проверки в фоновом режиме
🔐 Криптографическая система
- Протокол Phantom Handshake: ECDH (X25519) с детерминированной генерацией сессионных ключей
- Фантомные сессии: одноразовые операционные ключи, производные от мастер‑ключа через HKDF‑SHA256
- Рассеивание ключей: MemoryScatterer делит мастер‑ключ на части, хранящиеся в L1, L2, RAM и регистрах
- Аппаратно‑ускоренное шифрование: AES‑256‑GCM с автоматическим использованием AES‑NI/AVX2/NEON
- Константное время сравнения: constant_time_eq для проверки подписей и HMAC
- Детерминированная генерация ключей: одинаковый operation_seed на клиенте и сервере для воспроизводимости
- Подпись пакетов: HMAC‑SHA256 на основе операционных ключей с разделением sequence для encryption/auth
- CryptoPool: пул воркеров для параллельной криптографии с batch‑обработкой
🏗️ ORM компоненты и возможности
- SelectBuilder: Построение сложных SELECT запросов с JOIN, WHERE, GROUP BY, HAVING, ORDER BY
- InsertBuilder: Безопасные INSERT запросы с поддержкой множественных значений и конфликт-резолюции
- UpdateBuilder: Типобезопасные UPDATE запросы с условиями и ограничениями
- DeleteBuilder: Управляемые DELETE операции с транзакционной поддержкой
- Condition System: Гибкая система условий с поддержкой операторов (=, !=, >, <, LIKE, IN, BETWEEN)
- Parameter Management: Безопасное управление параметрами запросов с автоматическим экранированием
- Type System: Поддержка всех SQL типов данных с автоматической конвертацией в Rust типы
- Join Operations: Полная поддержка всех типов JOIN с проверкой корректности условий
- Query Validation: Статическая и динамическая валидация SQL запросов перед выполнением
🚦 Congestion Control System
- AIMD алгоритмы (Additive Increase/Multiplicative Decrease)
- Адаптивные лимиты на основе нагрузки системы
- Детектирование DDoS атак в реальном времени
- Анализ аномалий трафика (burst detection, packet flooding)
- Автоматическое масштабирование ограничений
- Приоритизация пакетов (PacketPriority система)
📊 Мониторинг и аудит
- Единая система мониторинга здоровья (UnifiedMonitor)
- Метрики в реальном времени через Prometheus
- Security Audit система с детализированными событиями
- Health checks для всех компонентов
- Детальная статистика по IP и соединениям
- Алерты с различными уровнями серьезности
- Мониторинг БД, сети, CPU, памяти, диска
- ORM Performance Metrics: Тайминги запросов, кэш-хиты, частота использования различных операций
🚀 Производительность
- Асинхронная обработка на Tokio – неблокирующий ввод‑вывод и конкурентное выполнение задач
- Пул потоков для криптографии – CryptoPool распределяет нагрузку шифрования/дешифрования по ядрам CPU
- Zero‑copy буферизация – PacketBuffer минимизирует копирование данных
- Аппаратное ускорение – автоматическое использование AES‑NI, AVX2, NEON
- Подготовленные SQL‑запросы – кэширование подготовленных выражений и планов запросов
- LRU‑кэширование репутационных данных – быстрый доступ к скорам IP без запросов к БД
- Batch‑обработка пакетов – группировка криптографических операций для снижения накладных расходов
- Connection Pooling БД – эффективное переиспользование соединений
- Многоуровневое кэширование ORM – кэш запросов, кэш планов, lazy loading связанных данных
- Intelligent Caching health‑checks – TTL‑кэширование результатов проверок здоровья
⚙️ Управление и конфигурация
- Централизованная конфигурация (ConfigManager)
- Тестовый режим с ослабленными ограничениями
- Динамическое обновление конфигурации
- Административный API с аутентификацией
- Graceful shutdown соединений
- Автоматическая очистка устаревших данных
- Расширенное логирование через tracing
- ORM Configuration: Гибкая настройка поведения ORM через конфигурационные файлы
🚀 Быстрый старт (5 минут)
Предварительные требования
- Rust 1.70+ (
rustup update stable) - PostgreSQL 13+ (для работы с БД)
- Git
Установка
- Клонирование репозитория SomnyToo
- Клонирование репозитория SomnyTooTests
- Настройка окружения
# Отредактируйте .env файл под ваши нужды
- Запуск сервера
# В режиме разработки
# В релизном режиме
🛡️ Безопасность и Congestion Control
Протокол Phantom Handshake (ECDH + Детерминированные ключи)
- ClientHello (0xA0): client_pub (32) + client_nonce (16)
- ServerHello (0xA1): server_pub (32) + server_nonce (16)
- Общий секрет: X25519, дополненный nonce‑ами и публичными ключами
- Session Keys: HKDF‑SHA256 с детерминированным operation_seed
Система фантомных ключей
- Мастер‑ключ рассеивается MemoryScatterer по L1, L2, RAM
- Операционные ключи генерируются через HKDF из operation_seed + sequence + типа операции
- Ключи живут ≤10 мс, уничтожаются automatic zeroize
- Невозможность восстановления мастер‑ключа из операционных ключей
Детектирование аномалий трафика
| Аномалия | Описание | Вес в score |
|---|---|---|
| HighPacketRate | Высокая частота пакетов | 0.4 |
| BurstTraffic | Резкий всплеск трафика | 0.3 |
| SmallPacketFlood | Множество мелких пакетов | 0.6 |
| ConnectionFlood | Много соединений с одного IP | 0.5 |
| UnusualPacketSize | Нестандартный размер пакетов | 0.2 |
| SQLInjectionAttempt | Попытка SQL‑инъекции | 0.8 |
| ORMQueryFlood | Аномально частая работа с ORM | 0.4 |
Оптимизации
- Асинхронный стек на Tokio – обработка тысяч соединений конкурентно
- CryptoPool с batch‑обработкой – параллельное шифрование/дешифрование
- Zero‑copy PacketBuffer – минимизация копий данных в памяти
- Аппаратное ускорение AES‑GCM – использование AES‑NI/AVX2/NEON
- LRU‑кэш репутационных скоров – быстрый доступ без запросов к БД
- Intelligent Caching health‑checks – TTL‑кэширование, параллельные проверки
- Экспоненциальный backoff для БД – автоматическое восстановление при сбоях
- Подготовленные выражения ORM – кэширование планов запросов
- Connection Pooling БД – пул соединений с настройкой min/max
- Lazy Loading связанных данных – загрузка по требованию
- Query Plan Caching – кэширование планов выполнения сложных запросов
- Пакетная обработка запросов – batch‑операции INSERT/UPDATE
🤝 Вклад в проект
Мы приветствуем вклады в проект!
Основные направления для контрибьюции
- Новые криптографические алгоритмы
- Дополнительные протоколы handshake
- Улучшение CryptoPool производительности
- Дополнительные детекторы аномалий
- Улучшение производительности AIMD алгоритмов
- Расширение репутационной системы
- Визуализация метрик и состояния системы
- Улучшение кэширования в системе мониторинга
- Автоматическое восстановление при обнаружении проблем
- Расширение ORM системы: Поддержка новых типов данных, оптимизации
- Дополнительные ORM фичи: Миграции, сиды, фабрики данных
- Интеграция ORM с другими базами данных (MySQL, SQLite, MongoDB)
- Улучшение производительности ORM: Оптимизация кэширования, lazy loading
- Документация и примеры
- Интеграции с другими системами
📄 Лицензия
SomnyToo распространяется под лицензией GNU Affero General Public License v3.0 (AGPL-3.0). Подробнее см. LICENSE.
🆘 Поддержка
- Issues: GitHub Issues
- Email: tvoiison.dev@gmail.com
⭐ Звезды
Если вам нравится SomnyToo, поставьте звезду на GitHub! Это помогает проекту развиваться.
🎯 Roadmap
Планируемые улучшения безопасности
- Post‑quantum криптография – интеграция Kyber/Dilithium
- Усиленная эмуляция‑детекция – расширение методов обнаружения
- Аппаратные TPM/HSM – интеграция с аппаратными модулями безопасности
- Биометрическая аутентификация – опциональная поддержка
Оптимизации производительности
- JIT‑компиляция запросов – динамическая генерация кода для частых запросов
- Векторизация криптографии – использование AVX‑512 для параллельной обработки
- Адаптивный пул потоков – автоматическая настройка размера CryptoPool
- Проактивное кэширование – предзагрузка данных на основе паттернов доступа
Расширение ORM и БД
- Поддержка векторных БД – интеграция с pgvector, Qdrant
- GraphQL поверх ORM – автоматическая генерация GraphQL‑схем
- Расширенные типы данных – JSONB, массивы, геоданные, полнотекстовый поиск
- Уровень 2 кэширования – распределённый кэш (Redis, Memcached)
- Автоматические миграции – управление схемой БД через код
Мониторинг и управление
- Дашборд в реальном времени – визуализация метрик, сессий, трафика
- Прогнозирование нагрузки – ML‑модели на основе исторических данных
- Автоматическое масштабирование – динамическое изменение ресурсов
- Расширенная аналитика SQL – выявление медленных запросов, рекомендации по индексам
SomnyToo — это продолжающийся проект с активной разработкой. Мы приветствуем обратную связь и предложения по улучшению!