<strong>Наименование проекта</strong>: программа для администрирования игровых серверов Rust (далее “Программа”).<br><br><strong>Цель</strong>:<br><br><ul><li>Предоставить инструмент для контроля подозрительных игроков, который бы фиксировал их сетевую активность (подключения к определённым серверам и IP-адресам).</li><li>Предоставить возможность удалённого доступа к ПК пользователя для визуальной проверки.</li></ul><strong>Краткое описание</strong>:<br>Программа должна устанавливаться на ПК подозрительного игрока и работать в фоне без возможности деактивации пользователем. Сбор данных о сетевой активности (список IP, домены) будет происходить в режиме реального времени. Если зафиксировано соединение с “подозрительным” сервером или IP, которые используют читы для сверки ключа активации, занесённым в конфигурационный файл, система оповещает админа. Также должна быть возможность удалённого подключения к рабочему столу игрока (screen-share или аналог) и централизованное управление через веб-панель.<br><br>2. Требования к функционалу2.1. Основные функции<ol><li><strong>Фоновый режим работы</strong><br><br><ul><li>Программа должна стартовать вместе с операционной системой и работать незаметно для пользователя (без ярлыков в трее или автозагрузке, доступной к редактированию пользователю).</li><li>Пользователь не должен иметь возможности принудительно завершить процесс через стандартные инструменты ОС (диспетчер задач, консоль и т.п.).</li></ul></li><li><strong>Мониторинг IP и подключений</strong><br><br><ul><li>Программа должна перехватывать исходящие подключения (http/https, tcp, udp и т.д.) и сверять IP-адреса/доменные имена с “подозрительным списком”.</li><li>“Подозрительный список” (config) должен быть легко редактируемым со стороны администратора (удобный формат, например, JSON/YAML).</li><li>При совпадении IP или домена с записью в “подозрительном списке” программа генерирует уведомление в лог или напрямую на веб-панель (см. пункт 2.3).</li><li>Хранить историю подключений к сторонним сервисам/серверам (лог: IP, домен, дата/время подключения).</li></ul></li><li><strong>Удалённый доступ к ПК (Screen Monitoring / Desktop Sharing)</strong><br><br><ul><li>Программа должна предоставлять администратору возможность удалённого просмотра экрана пользователя.</li><li>Формат может быть реализацией RDP/VNC или собственной разработкой, позволяющей просматривать экран.</li><li>Дополнительная опция: сбор скриншотов (по таймеру или вручную) для дальнейшего анализа.</li></ul></li><li><strong>Веб-панель для логирования и управления</strong><br><br><ul><li>Веб-панель для авторизованного доступа администратора.</li><li>Отображение списка пользователей, у которых установлена данная программа.</li><li>Просмотр логов (подключений, IP, временных меток).</li><li>Удалённое управление настройками (обновление “подозрительного списка” IP, включение/отключение каких-либо модулей и т.д.).</li><li>Управление сеансами удалённого доступа: запуск/остановка.</li><li>Возможность принудительной деинсталляции программы с ПК пользователя.</li></ul></li><li><strong>Обновление и администрирование</strong><br><br><ul><li>Автоматическая или ручная проверка обновлений.</li><li>Механизм безопасного обновления (подпись/проверка целостности).</li><li>Логи обновлений и административных действий (кто и что обновил, когда).</li></ul></li></ol>2.2. Нефункциональные требования<ol><li><strong>Безопасность и антивирусная совместимость</strong><br><br><ul><li>Минимизация ложных срабатываний антивирусов (цифровая подпись, использование легитимных системных API).</li><li>Использование защищённого канала передачи данных (HTTPS/TLS) при отправке логов/управлении.</li><li>Защита от подмены исполняемых файлов.</li></ul></li><li><strong>Устойчивость</strong><br><br><ul><li>Программа должна корректно работать под нагрузкой (если идёт анализ большого количества пакетов).</li><li>При сбое/аварийном закрытии должна перезапускаться автоматически.</li></ul></li><li><strong>Совместимость</strong><br><br><ul><li>Поддержка основных версий Windows (Windows 10, 11).</li><li>Приоритетно 64-битные системы.</li></ul></li><li><strong>Производительность</strong><br><br><ul><li>Минимальная нагрузка на ресурсы системы (CPU, RAM, сеть).</li><li>Время отклика веб-панели при нормальной нагрузке — не более 2–3 секунд.</li></ul></li><li><strong>Масштабируемость</strong><br><br><ul><li>Возможность подключения большого числа пользователей.</li><li>Возможность добавления новых функциональных модулей без кардинальной переработки.</li></ul></li></ol>3. Архитектура решения<ol><li><strong>Клиентская часть</strong> (устанавливается на ПК пользователя):<br><br><ul><li>Драйвер/служба для перехвата сетевых соединений.</li><li>Модуль логики (сравнение с “подозрительным списком”, сбор логов).</li><li>Модуль удалённого доступа к экрану (серверная часть RDP/VNC или аналог).</li><li>Автономная база конфигурации (минимальная, чтобы при отключении сети были сохранены временные логи и настройки).</li><li>Шифрование данных, отправляемых на сервер.</li></ul></li><li><strong>Серверная часть</strong> (располагается у администратора):<br><br><ul><li>API для приёма логов от клиентов.</li><li>Система авторизации и аутентификации (для веб-панели).</li><li>Модуль управления и оповещений (события о “подозрительных” подключениях).</li><li>Веб-приложение (панель управления).</li><li>База данных для хранения логов, списка пользователей, конфигурационных файлов, версий ПО.</li></ul></li><li><strong>Схема взаимодействия</strong>:<br><br><ul><li>Клиент → (Собирает данные) → Отправляет логи и сигналы → Сервер → (Обрабатывает, хранит, отображает) → Веб-панель → (Управление, просмотр).</li><li>При инициации удалённого доступа: Веб-панель/Сервер → (Устанавливает соединение) → Клиент (запрашивает экран).</li></ul></li></ol>4. Детализация требований4.1. Мониторинг сети и списка “подозрительных” IP/доменов<ul><li><strong>Формат “подозрительного” списка</strong>: JSON или YAML (например, <code>suspicious_hosts.json</code>).</li><li><strong>Пример структуры</strong>:<pre>json<br><span>Копировать код</span><br><code><span>{</span>
<span>"hosts"</span><span>:</span> <span>[</span>
<span>{</span> <span>"ip"</span><span>:</span> <span>"123.45.67.89"</span><span>,</span> <span>"description"</span><span>:</span> <span>"Чит-сервер #1"</span> <span>}</span><span>,</span>
<span>{</span> <span>"domain"</span><span>:</span> <span>"cheats.example.com"</span><span>,</span> <span>"description"</span><span>:</span> <span>"Чит-сервер #2"</span> <span>}</span>
<span>]</span>
<span>}</span>
</code><br></pre></li><li><strong>Параметры логов</strong>:<ul><li>IP/домен назначения</li><li>Протокол (TCP/UDP/HTTP/HTTPS)</li><li>Дата и время (UTC)</li><li>Локальный порт/процесс (по возможности)</li></ul></li></ul>4.2. Удалённый доступ к рабочему столу<ul><li><strong>Потоки данных</strong>:<ul><li>При низкой скорости сети должно использоваться адаптивное качество (снижение качества картинки/частоты кадров).</li><li>Поддержка просмотра в режиме реального времени</li></ul></li><li><strong>Безопасность</strong>:<ul><li>Все действия должны логироваться (кто подключился, когда, сколько длился сеанс).</li></ul></li></ul>4.3. Веб-панель<ul><li><strong>Разграничение прав</strong>:<ul><li>Роли: “Суперадмин”, “Модератор” (только просмотр логов, доступ к скриншотам и экрану)</li></ul></li><li><strong>Структура</strong>:<ul><li>Главная страница: список пользователей (онлайн/оффлайн).</li><li>Раздел логов: фильтры по IP, датам, пользователям.</li><li>Раздел управления конфигурацией: обновление списка IP, обновление версии клиента, массовые действия (принудительная деинсталляция, перезагрузка сервиса).</li><li>Раздел удалённого доступа: отображение доступных ПК для подключения.</li></ul></li></ul>5. Технологический стек<ul><li><strong>Язык разработки клиентской части</strong>: C++/C#/Go (по согласованию; важны системные возможности и низкий уровень доступа).</li><li><strong>Язык разработки серверной части</strong>: Python/Node.js/Go/Java (по удобству команды и надёжности).</li><li><strong>СУБД</strong>: PostgreSQL/MySQL (реляционная), при больших объёмах логов рассмотреть NoSQL-решения (MongoDB, ElasticSearch).</li><li><strong>Фреймворк для веб-панели</strong>: любая удобная связка (например, Node.js + React/Vue или Python + Django/Flask + React/Vue).</li><li><strong>Безопасность</strong>: TLS-сертификаты для веб-панели и API.</li><li><strong>Инфраструктура</strong>: Docker-контейнеры/виртуальные машины (по необходимости).</li></ul>6. Тестирование<ol><li><strong>Функциональное тестирование</strong><ul><li>Проверка корректного сбора логов, сверки с “подозрительным списком”, генерации уведомлений.</li></ul></li><li><strong>Интеграционное тестирование</strong><ul><li>Проверка взаимодействия клиентской и серверной частей (обмен данными).</li></ul></li><li><strong>Нагрузочное тестирование</strong><ul><li>Проверка работы при большом количестве одновременно подключенных клиентов.</li></ul></li><li><strong>Тестирование безопасности</strong><ul><li>Попытки завершить процесс через диспетчер задач.</li><li>Попытки подмены файлов и манипуляции конфигурациями.</li><li>Pen-тест веб-панели (SQL-инъекции, XSS и др.).</li></ul></li><li><strong>Тестирование удалённого доступа</strong><ul><li>Проверка качества трансляции, задержек, стабильности подключения.</li></ul></li></ol>7. Документация и поддержка<ol><li><strong>Пользовательская документация</strong>:<ul><li>Руководство для админов по установке, настройке и использованию веб-панели.</li></ul></li><li><strong>Техническая документация</strong>:<ul><li>Описание архитектуры, структуры баз данных, API-эндпоинтов.</li><li>Инструкции по сборке/развёртыванию (включая Docker/CI-CD).</li></ul></li></ol>8. Критерии готовности (Definition of Done)<ul><li>Клиент успешно устанавливается на ПК с Windows, запускается при старте системы, не может быть завершён пользователем стандартными средствами.</li><li>Удалённый просмотр экрана (screen-share) работает, доступ к нему осуществляется только с сервера по зашифрованному каналу.</li><li>Логи сети корректно собираются и отображаются в веб-панели, с возможностью фильтрации и уведомлений о “подозрительных” подключениях.</li><li>Веб-панель предоставляет функционал управления пользователями, ролями, списком IP/доменов, а также принудительной деинсталляции клиента.</li><li>Обеспечена достаточная защита от несанкционированной модификации программы и соединения.</li></ul><br><br>