📡 СКУД
PostgreSQL / REST
→
📷 БАЗА ЛИЦ
MongoDB / Файлы
→
🌐 РОУТЕР
SNMP / Syslog
→
🛡️ ПРОКСИ
CSV / SQLite
→
🧠 АГЕНТ (LLM)
Llama 3 / Qwen
→
📊 ОТЧЁТ
Telegram / E-mail / Дашборд
🔌 ПОДКЛЮЧЕНИЕ К ИСТОЧНИКАМ
СКУД
postgresql://192.168.1.10:5432/access
→
таблица events
БАЗА ЛИЦ
mongodb://192.168.1.11:27017/faces
→
коллекция recognitions
РОУТЕР
SNMP v2c @ 192.168.1.1
→
OID .1.3.6.1.2.1.4.22.1.2 (ARP-таблица)
ПРОКСИ
/var/log/squid/access.log
→
парсинг в CSV
→ Все подключения через защищённый VPN-туннель внутри периметра
🔄 ETL-СЛОЙ (Сбор и нормализация)
def collect_all():
try:
skud = fetch_skud('2026-07-01')
faces = fetch_faces('2026-07-01')
wifi = fetch_wifi_arp()
proxy = parse_proxy_logs('/var/log/squid/*.log')
except Exception as e:
log_error(e)
df = merge_all(skud, faces, wifi, proxy)
return df
- Приведение timestamp к единому часовому поясу
- Маппинг MAC → IP → Сотрудник (через DHCP-логи)
- Категоризация сайтов (рабочие / соцсети / развлечения)
⏰ ПАТТЕРНЫ + CRON (Автоанализ)
0 23 * * * /usr/bin/python3 /opt/hermes/run_analysis.py
def run_patterns(df):
prompt1 = "Найди сотрудников, которые выходят из офиса более 3 раз за смену"
prompt2 = "Сопоставь время отсутствия по СКУД с активностью в интернете"
prompt3 = "Выяви группы сотрудников, которые уходят в одно и то же время"
return llm_analyze(df, [prompt1, prompt2, prompt3])
- Каждый вечер базы «набираются» за день
- Агент прогоняет 3–5 промтов автоматически
- Результаты сохраняются в БД отчётов
- При обнаружении критических паттернов — alert в Telegram
📋 ПРИМЕР: ПАТТЕРН «КУРИЛЬЩИКИ»
SELECT employee_id, COUNT(*) as exits
FROM skud_events
WHERE direction = 'выход'
AND duration BETWEEN 5 AND 20
GROUP BY employee_id
HAVING COUNT(*) > 3
"Сопоставь с прокси-логами. Если в эти же временные слоты нет интернет-активности — классифицируй как 'курение'"
✅ Обнаружено: 7 курильщиков
⚠️ Из них 2 воруют время (> 1ч в день)
🔒 БЕЗОПАСНОСТЬ (Почему можно)
- Все данные НЕ ПОКИДАЮТ периметр компании
- Модель загружена в ollama / vLLM локально
- Данные обезличены перед анализом (ФИО → ID)
- Доступ к дашборду только через VPN + 2FA
- Логи агента хранятся 30 дней, затем шифруются
🛡️ Глобальная модель (ChatGPT/Claude) НЕ ИСПОЛЬЗУЕТСЯ — только open-source веса на своём железе
🚀 ЦИКЛ АВТОНОМНОЙ РАБОТЫ
01
00:00
→ Сбор логов со всех источников за день
02
01:00
→ Нормализация и объединение в единый DataFrame
03
02:00
→ Прогон 5 паттернов через локальную LLM
04
03:00
→ Сохранение результатов в БД (таблица reports)
05
03:30
→ Если найдены критические аномалии → Telegram-уведомление
Комментарии
Пока нет комментариев. Будьте первым!