✅ Регистрация и верификация жильцов ✅ Рейтинг активности (уровни) ✅ Детект шпионов (Score 0-100) ✅ Анти-мат система (3 предупреждения → бан) ✅ Админ-панель с рассылкой ✅ Учёт квартир (несколько жильцов) ✅ Телефоны экстренных служб и мастеров ✅ Еженедельный экспорт JSON ✅ Прокси (socks5) для обхода РКН Бекап: backups/versions/v1.0_mvp_2026-02-26/ Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
9.6 KiB
9.6 KiB
🔍 Детект мультиаккаунтов — 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 <ID> |
Сбросить score | /clear_multiscore 123456789 |
/link_accounts <ID1> <ID2> |
Связать аккаунты (семья) | /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:
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. Проверка всех пользователей
# Админ:
/multicheck
- Анализ запускается
- Подозрительные пары находятся
- Score считается правильно
2. Проверка квартиры
# Админ:
/check_apt 45
- Пользователи в квартире отображаются
- Информация верная
3. Статистика
/multistats
- Статистика отображается
- Квартиры с несколькими считаются
4. Сброс score
/clear_multiscore <ID>
- Score сбрасывается
5. Связывание аккаунтов
/link_accounts <ID1> <ID2>
- Аккаунты связываются
- 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 |
🚀 Как использовать
Для админа:
-
Проверить всех:
/multicheck -
Проверить квартиру:
/check_apt 45 -
Посмотреть статистику:
/multistats -
Сбросить score (семья):
/link_accounts 123456789 987654321
💡 Советы
Когда использовать:
- ✅ Подозрение на шпиона УК
- ✅ Несколько аккаунтов от одного человека
- ✅ Накрутка мнения в голосованиях
- ✅ Проверка квартир с несколькими жильцами
Ложные срабатывания:
- ✅ Семья (муж и жена) — используйте
/link_accounts - ✅ Соседи по квартире — нормально если это родственники
- ✅ Активные жильцы — могут иметь схожую активность
Настройка порогов:
В services/multicount_detector.py:
'activity_similarity_threshold': 0.8, # Порог схожести активности
'message_pattern_threshold': 0.7, # Порог схожести паттернов
🔧 Отладка
Посмотреть score в БД:
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;
Логи:
tail -f logs/bot.log | grep -i "мульти\|multicount"
✅ Преимущества
| Было | Стало |
|---|---|
| Нельзя выявить мультиаккаунты | Анализ паттернов |
| Нет статистики | /multistats |
| Ручная проверка | Авто-детект |
| Нет связи аккаунтов | /link_accounts для семьи |
Детект мультиаккаунтов готов! 🔍
Следующий шаг: тестирование на тестовой группе и фиксация версии v1.7