# 🔍 Детект мультиаккаунтов — v1.7 **Версия:** v1.7 **Дата:** 26 февраля 2026 г. **Статус:** ✅ Реализовано --- ## 📋 Описание Система выявления нескольких аккаунтов от одного человека. Анализирует паттерны поведения, время активности, схожесть сообщений для обнаружения шпионов или людей создающих несколько аккаунтов для накрутки мнения в чате. --- ## 🎯 Возможности - ✅ Анализ активности по времени (24 часа) - ✅ Сравнение паттернов сообщений - ✅ Проверка схожести пиков активности - ✅ Выявление пар подозрительных аккаунтов - ✅ Проверка квартир с несколькими жильцами - ✅ multicount_score (0-100) для каждого пользователя - ✅ Команды для админов: `/multicheck`, `/check_apt`, `/multistats` --- ## 📱 Команды ### Для администраторов: | Команда | Описание | Пример | |---------|----------|--------| | `/multicheck` | Проверить всех на мультиаккаунты | `/multicheck` | | `/check_apt <номер>` | Проверить квартиру | `/check_apt 45` | | `/multistats` | Статистика мультиаккаунтов | `/multistats` | | `/clear_multiscore ` | Сбросить score | `/clear_multiscore 123456789` | | `/link_accounts ` | Связать аккаунты (семья) | `/link_accounts 123 456` | --- ## 🎯 Факторы анализа ### 1. Схожесть активности по времени - Анализируется за последние 24 часа - Сравнивается распределение сообщений по часам - **Порог:** 80% схожести → +30 баллов ### 2. Паттерны сообщений - Длина сообщений (короткие/средние/длинные) - Наличие ссылок - Наличие emoji - Вопросы - Приветствия - **Порог:** 70% схожести → +20 баллов ### 3. Время регистрации - Если зарегистрировались в течение часа → +10 баллов ### 4. Device ID - Telegram не отдаёт device ID через Bot API - Зарезервировано на будущее --- ## 🎯 Пороги подозрительности | Score | Статус | Действие | |-------|--------|----------| | 0-30 | 🟢 Норма | Нет действий | | 31-50 | 🟡 Подозрительно | Пометка в базе | | 51+ | 🔴 Мультиаккаунт | Уведомление админа | --- ## 🎯 Сценарии использования ### Сценарий 1: Проверка всех пользователей **Админ:** ``` /multicheck ``` **Бот:** ``` 🔍 Анализирую пользователей на мультиаккаунты... 🚨 Обнаружены подозрительные пары (2) 1. Пара #1 ├─ Иван Иванов (кв. 45) └─ Петр Петров (кв. 88) └─ Score: 60/100 └─ Причины: Схожая активность (85%), Схожие паттерны сообщений (75%) 2. Пара #2 ├─ Анна Сидорова (кв. 12) └─ Мария Козлова (кв. 12) └─ Score: 50/100 └─ Причины: Зарегистрировались в течение часа 💡 Для проверки квартиры: /check_apt <номер> ``` --- ### Сценарий 2: Проверка квартиры **Админ:** ``` /check_apt 45 ``` **Бот:** ``` 🏠 Квартира 45 — 2 жильцов 1. Иван Иванов (@ivanov) └─ ID: 123456789 └─ Верифицирован: ✅ └─ Сообщений: 150 └─ Рейтинг: 200 2. Петр Петров (@petrov) └─ ID: 987654321 └─ Верифицирован: ✅ └─ Сообщений: 145 └─ Рейтинг: 195 ⚠️ Внимание! В квартире 2 человека — это много! 💡 Для детальной проверки: /multicheck ``` --- ### Сценарий 3: Статистика **Админ:** ``` /multistats ``` **Бот:** ``` 📊 Статистика мультиаккаунтов 🔴 Пользователей с подозрительным score: 3 • Иван Иванов (кв. 45) — score: 60 • Петр Петров (кв. 88) — score: 55 • Анна Сидорова (кв. 12) — score: 50 🏠 Квартир с несколькими жильцами: 5 • Кв. 45 — 3 чел. • Кв. 88 — 2 чел. • Кв. 12 — 2 чел. ``` --- ### Сценарий 4: Сброс score (семья) **Админ видит что семья (муж и жена) попали под детект:** **Админ:** ``` /link_accounts 123456789 987654321 ``` **Бот:** ``` ✅ Аккаунты связаны: • Иван Иванов (ID: 123456789) • Анна Иванова (ID: 987654321) multicount_score сброшен ``` --- ### Сценарий 5: Ручной сброс **Админ:** ``` /clear_multiscore 123456789 ``` **Бот:** ``` ✅ multicount_score пользователя 123456789 сброшен ``` --- ## 🗄️ База данных ### Поля в `users`: ```sql ALTER TABLE users ADD COLUMN multicount_score INTEGER DEFAULT 0 ALTER TABLE users ADD COLUMN suspected_device_id TEXT ALTER TABLE users ADD COLUMN suspected_alt_accounts TEXT ``` ### Индексы: - `ix_users_multicount_score` — по score (можно добавить) --- ## 🧪 Тестирование ### Чек-лист проверки: #### 1. Проверка всех пользователей ```bash # Админ: /multicheck ``` - [ ] Анализ запускается - [ ] Подозрительные пары находятся - [ ] Score считается правильно #### 2. Проверка квартиры ```bash # Админ: /check_apt 45 ``` - [ ] Пользователи в квартире отображаются - [ ] Информация верная #### 3. Статистика ```bash /multistats ``` - [ ] Статистика отображается - [ ] Квартиры с несколькими считаются #### 4. Сброс score ```bash /clear_multiscore ``` - [ ] Score сбрасывается #### 5. Связывание аккаунтов ```bash /link_accounts ``` - [ ] Аккаунты связываются - [ ] Score сбрасывается --- ## 📁 Изменённые файлы | Файл | Изменения | |------|-----------| | `database/models.py` | Поля multicount_score, suspected_device_id, suspected_alt_accounts | | `database/migrate_add_multicount.py` | Миграция БД | | `services/multicount_detector.py` | Сервис детекта | | `handlers/multicount.py` | Хендлеры | | `handlers/__init__.py` | Импорт multicount_router | | `main.py` | Регистрация multicount_router | --- ## 🚀 Как использовать ### Для админа: 1. **Проверить всех:** ``` /multicheck ``` 2. **Проверить квартиру:** ``` /check_apt 45 ``` 3. **Посмотреть статистику:** ``` /multistats ``` 4. **Сбросить score (семья):** ``` /link_accounts 123456789 987654321 ``` --- ## 💡 Советы ### Когда использовать: - ✅ Подозрение на шпиона УК - ✅ Несколько аккаунтов от одного человека - ✅ Накрутка мнения в голосованиях - ✅ Проверка квартир с несколькими жильцами ### Ложные срабатывания: - ✅ **Семья (муж и жена)** — используйте `/link_accounts` - ✅ **Соседи по квартире** — нормально если это родственники - ✅ **Активные жильцы** — могут иметь схожую активность ### Настройка порогов: В `services/multicount_detector.py`: ```python 'activity_similarity_threshold': 0.8, # Порог схожести активности 'message_pattern_threshold': 0.7, # Порог схожести паттернов ``` --- ## 🔧 Отладка ### Посмотреть score в БД: ```bash cd /home/matrixhasyou/domovoy_bot source venv/bin/activate sqlite3 database/domovoy.db SELECT user_id, apartment, multicount_score, suspected_alt_accounts FROM users WHERE multicount_score > 0; ``` ### Логи: ```bash tail -f logs/bot.log | grep -i "мульти\|multicount" ``` --- ## ✅ Преимущества | Было | Стало | |------|-------| | Нельзя выявить мультиаккаунты | **Анализ паттернов** | | Нет статистики | **/multistats** | | Ручная проверка | **Авто-детект** | | Нет связи аккаунтов | **/link_accounts для семьи** | --- **Детект мультиаккаунтов готов! 🔍** *Следующий шаг: тестирование на тестовой группе и фиксация версии v1.7*