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