ПРОЕКТУВАННЯ АРХІТЕКТУРНИХ РІШЕНЬ ДЛЯ СИСТЕМИ ВИЯВЛЕННЯ АНОМАЛЬНОЇ ПОВЕДІНКИ КОРИСТУВАЧІВ
08.12.2025 22:00
[1. Systemy i technologie informacyjne]
Автор: Ступак Андрій Ігорович, студент інституту комп’ютерних систем Національного університету «Одеська політехніка», м. Одеса, Україна
У сучасних веб-системах класичний захист за логіном і паролем стає недостатнім. Зловмисники дедалі частіше використовують методи соціальної інженерії або перехоплення сесій (session hijacking), що дозволяє їм обходити стадію аутентифікації. У такому випадку система продовжує "довіряти" користувачеві, вважаючи, що це легітимний власник облікового запису. Вирішенням цієї проблеми є впровадження систем поведінкового аналізу (UEBA), які моніторять активність користувача протягом усього сеансу роботи, а не лише при вході. Метою даної роботи є проєктування та програмна реалізація легковагого модуля виявлення аномалій, який можна інтегрувати у веб-додаток для захисту від несанкціонованого доступу.[1]
Архітектура системи. При проєктуванні системи було вирішено відмовитися від використання складних корпоративних рішень (типу Splunk) через їх високу вартість та складність налаштування. Натомість було розроблено власну архітектуру, що складається з трьох логічних рівнів:
Рівень збору даних (Collector). Це JavaScript-скрипт, що вбудовується на стороні клієнта, та middleware на сервері. Вони збирають інформацію про кожну дію користувача: рухи мишею, швидкість натискання клавіш, геолокацію IP-адреси та відбиток браузера (fingerprint).[1]
Рівень аналізу (Analysis Engine). Отримані дані передаються в аналітичний модуль, написаний мовою Python. Тут відбувається порівняння поточної поведінки з "еталонним профілем" користувача.
Рівень реагування (Response). На основі розрахованого рівня ризику система приймає рішення: пропустити запит, вимагати повторну аутентифікацію (2FA) або заблокувати сесію.[2]
Вибір технологій та реалізація. Для реалізації серверної частини було обрано мову Python та фреймворк Django. Цей вибір зумовлений наявністю потужних бібліотек для математичного аналізу даних. Ключовим елементом системи є алгоритм виявлення аномалій. Оскільки ми не маємо заздалегідь розміченої бази атак, було використано метод навчання без учителя — Isolation Forest (Ізолюючий ліс), реалізований у бібліотеці scikit-learn. Цей алгоритм ефективно виявляє "викиди" (outliers) у багатовимірних даних, споживаючи мінімум обчислювальних ресурсів.
Для зберігання даних профілів користувачів та логів подій звичайна реляційна база даних (SQL) виявилася занадто повільною при великому навантаженні. Тому для "гарячих" даних сесії та кешування профілів було використано Redis — швидке сховище типу "ключ-значення", що працює в оперативній пам'яті. Це дозволило знизити затримку при обробці запитів до 10-15 мс, що є непомітним для кінцевого користувача.[2]
Проблеми, що виникли під час розробки. У ході тестування системи було виявлено проблему "холодного старту". Коли новий користувач реєструється в системі, у нього ще немає історії поведінки, тому будь-яка його дія може бути помилково розцінена алгоритмом як аномальна. Для вирішення цієї проблеми було впроваджено логіку "навчального періоду". Перші 50 дій нового користувача система працює в режимі спостереження (passive mode), лише збираючи дані для формування базового профілю, і не блокує дії, якщо вони не мають явних ознак автоматизованої атаки (наприклад, надто висока частота запитів).[3]
Також було реалізовано механізм динамічної оцінки ризику (Risk Score). Замість миттєвого блокування при підозрілій дії, система нараховує штрафні бали. Лише коли сума балів перевищує порогове значення (наприклад, 80 зі 100), активується захисний механізм. Це дозволило суттєво зменшити кількість помилкових спрацювань (False Positives), які могли б дратувати легітимних користувачів.[3]
У результаті роботи спроєктовано та програмно реалізовано модуль поведінкового аналізу, здатний виявляти нетипову активність користувачів у веб-додатках. Використання алгоритму Isolation Forest у поєднанні зі швидким сховищем Redis дозволило досягти високої швидкодії та точності виявлення загроз, таких як крадіжка сесій або дії інсайдерів, без значного впливу на продуктивність основного веб-ресурсу.
Література:
1. Савченко В. А. Методика виявлення аномалій взаємодії користувачів з інформаційними активами. Сучасний захист інформації. 2023. № 4. С. 6–12.
2. Гнатюк С. О. Методи машинного навчання в кібербезпеці. Київ : КПІ ім. Ігоря Сікорського, 2023. 120 с.
3. Шушура О. М. Інформаційна система виявлення аномалій в даних. Вісник КрНУ. 2024. Вип. 5. С. 57–62.