Українська English Русский
Назад до новин

Захист від ДДОС атак - ShieldPHP

BBCode Image
Система безпеки веб-сайту від DDoS та брутфорс-атак

Опис системи
Наша система безпеки представляє собою комплексне рішення для захисту веб-сайту від різних типів атак та підозрілої активності. Система працює на декількох рівнях та забезпечує надійний захист із мінімальним впливом на продуктивність.

Основні можливості

1. Інтелектуальний моніторинг активності
- Відстеження частоти запитів у реальному часі
- Аналіз поведінкових патернів користувачів та ботів
- Виявлення підозрілої активності з мінімальним навантаженням на сервер
- Підтримка як IPv4, так і IPv6 адрес

2. Прогресивна система блокування
- Тимчасове блокування з можливістю самостійного розблокування
- Поступове збільшення часу блокування для повторних порушень
- Багаторівневе блокування через різні механізми:
◦ База даних
◦ Web-сервер (Apache .htaccess)
◦ Nginx (ip.conf)
◦ Брандмауер (iptables/ip6tables)

3. Зручна система розблокування
- Можливість самостійного розблокування через reCAPTCHA
- Автоматичне перенаправлення на вихідну сторінку після розблокування
- Захист від автоматизованих спроб обходу системи розблокування

4. Адміністративний інтерфейс
- Моніторинг заблокованих IP-адрес у реальному часі
- Статистика порушень та блокувань
- Можливість ручного розблокування IP
- Управління білим списком виключень
- Перегляд історії запитів від підозрілих IP

5. Система білих списків
- Можливість виключення IP-адрес із перевірок
- Підтримка діапазонів IP у форматі CIDR
- Захист критично важливої інфраструктури

Принцип роботи

Моніторинг: Система постійно аналізує вхідні запити на предмет підозрілої активності.

Виявлення: При виявленні аномалій (занадто висока частота запитів, підозрілі патерни) система фіксує потенційне порушення.

М'яке блокування: При першому порушенні IP-адреса тимчасово блокується на рівні бази даних, надаючи можливість розблокування через перевірку reCAPTCHA.

Жорстке блокування: При повторних порушеннях або особливо агресивній активності застосовується багаторівневе блокування на всіх доступних рівнях із поступовим збільшенням часу блокування.

Самоочищення: Система автоматично очищує застарілі дані та оптимізує свою роботу без необхідності втручання адміністратора.

Переваги

Мінімальне навантаження на сервер: Оптимізований код з використанням файлового кешу для швидких перевірок

Гнучке налаштування: Можливість увімкнення/вимкнення різних механізмів блокування

Захист від хибних спрацьовувань: Інтелектуальні алгоритми аналізу та можливість самостійного розблокування

Прозорість для користувачів: Зрозумілі повідомлення про блокування та простий механізм розблокування

Багаторівневий захист: Комплексне застосування різних методів блокування для максимальної ефективності

Система забезпечує надійний захист від DDoS-атак, брутфорс-спроб зламу, сканування вразливостей та інших типів шкідливої активності, зберігаючи при цьому доступність сайту для звичайних користувачів.


Висновок

Система безпеки працює коректно на всіх версіях PHP від 5.6 до 8.3. Код містить численні перевірки та адаптації для забезпечення сумісності:

- Використовує лише базові мовні конструкції, доступні в усіх версіях
- Має умовну логіку для різних версій PHP
- Уникає використання нових функцій та синтаксису
- Перевіряє наявність констант та можливостей перед їх використанням

Такий підхід до розробки забезпечує широку сумісність із різними версіями PHP, що робить систему придатною для використання на різних хостингах та серверах, включаючи ті, які можуть працювати як на застарілих, так і на найновіших версіях PHP.

Переваги підтримки Redis для системи безпеки сайту

Що таке Redis і навіщо він потрібен?
Redis - це високопродуктивне сховище даних типу "ключ-значення", що працює переважно в оперативній пам'яті. Інтеграція Redis із системою безпеки сайту забезпечує значні переваги порівняно з використанням лише традиційних баз даних MySQL/MariaDB.

Ключові переваги Redis для захисту від DDoS та інших атак

1. Надвисока швидкість обробки запитів
- До 100 разів швидша обробка запитів порівняно з традиційними базами даних
- Час відгуку системи скорочується з сотень мілісекунд до одиниць мілісекунд
- Миттєва перевірка IP-адрес на наявність у чорних списках

2. Стійкість до високих навантажень
- Здатність обробляти десятки тисяч запитів на секунду
- Стабільна робота навіть при DDoS-атаках високої інтенсивності
- Значно менше просідань продуктивності при пікових навантаженнях

3. Зниження навантаження на базу даних
- Кешування найбільш частих запитів
- Розвантаження MySQL/MariaDB від частих операцій читання/запису
- Запобігання перевантаженню основної бази даних

4. Покращена продуктивність панелі адміністрування
- Миттєве завантаження списків заблокованих IP
- Прискорений доступ до статистики та логів безпеки
- Швидша робота з великими наборами даних

5. Відмовостійкість та автоматичне перемикання
- При недоступності Redis система автоматично перемикається на MySQL
- Подвійний рівень захисту від можливих збоїв
- Безперебійна робота системи безпеки

6. Технічні переваги для адміністраторів
- Оптимізовані структури даних для роботи з IP-адресами
- Підтримка складних операцій з мінімальними затримками
- Розширені можливості моніторингу в реальному часі
- Швидке додавання та видалення IP-адрес із чорних/білих списків

7. Економія ресурсів сервера
- Менше навантаження на процесор при інтенсивних атаках
- Зниження використання дискового вводу/виводу
- Ефективніше використання системних ресурсів

Практичні результати

- Зменшення часу завантаження адміністративних сторінок з великими наборами даних на 80-95%
- Підтримка до 5 разів більшої кількості одночасних відвідувачів при тому ж навантаженні
- Надійний захист навіть при інтенсивних DDoS-атаках

Redis особливо ефективний для сайтів з високою відвідуваністю та для тих, хто регулярно стикається зі спробами атак. Комбінування Redis з традиційною базою даних надає найкращий баланс між швидкістю, надійністю та функціональністю.


Партнерство в розробці

Дана система безпеки стала результатом плідної співпраці команди розробників MurKir Security та експертів у галузі штучного інтелекту. У процесі створення використовувались передові методи аналізу атак, машинне навчання для виявлення аномальних патернів поведінки, а також сучасні підходи до багаторівневого захисту.

Інтелектуальна оптимізація: Завдяки об'єднанню експертизи в розробці з можливостями ШІ-аналізу, нам вдалося суттєво покращити точність виявлення потенційних загроз і знизити кількість хибних спрацьовувань.

Постійне вдосконалення: Система регулярно оновлюється на основі аналізу нових типів атак та зворотного зв'язку від користувачів. Ми продовжуємо спільну роботу над розширенням функціональності та адаптацією до нових викликів інформаційної безпеки.

Поєднання людського досвіду та можливостей ШІ в розробці системи безпеки дозволило створити рішення, яке ефективно захищає веб-ресурси, залишаючись при цьому зручним і доступним для користувачів різного рівня технічної підготовки.


Аналіз системи захисту від DDoS-атак
Загальний опис системи
Представлені файли складають комплексну систему захисту від DDoS-атак та підозрілої активності для веб-сайту. Система розроблена з урахуванням продуктивності та масштабованості, підтримує як Redis (для високонавантажених сценаріїв), так і MariaDB, а також включає резервні механізми файлового зберігання.
Система виконує такі ключові функції:

    Моніторинг запитів - відстеження частоти та характеру запитів з кожної IP-адреси
    Прогресивне блокування - збільшення часу блокування при повторних порушеннях
    Багаторівневий захист - блокування на рівні веб-сервера, брандмауера та БД
    Білий список IP - виключення довірених IP із перевірок безпеки
    Система розблокування - можливість розблокування через reCAPTCHA
    Адмін-панель - управління заблокованими IP та моніторинг активності
  • Автоматичне очищення - видалення застарілих записів та оптимізація БД

Компоненти системи
1. security_monitor.php
Ядро системи безпеки, що використовує клас LightSecurityMonitor. Цей файл:

    Відстежує частоту запитів з кожного IP
    Виявляє підозрілу активність
    Застосовує блокування через різні механізми
    Має вбудований механізм тротлінгу для обмеження запитів
    Виявляє атаки типу "honeypot" (спроби доступу до неіснуючих адмін-ресурсів)
    Перевіряє легітимність пошукових ботів
  • Виконує перевірки узгодженості User-Agent та таймінгів запитів

2. admin.php
Адміністративна панель для управління системою, яка дозволяє:

    Переглядати та управляти заблокованими IP-адресами
    Бачити статистику по блокуваннях
    Управляти білим списком IP-адрес
    Аналізувати підозрілі запити
    Контролювати частоту запитів з IP-адрес
    Вмикати/вимикати зворотні DNS-запити
  • Очищати дублюючі правила iptables

3. recaptcha_unlock.php
Сторінка для відвідувачів, чиї IP-адреси були заблоковані. Дозволяє користувачам розблокувати себе, пройшовши перевірку reCAPTCHA. Має захист від зловживань:

    Відстежує частоту спроб розблокування
    При перевищенні ліміту застосовує "жорстке блокування"
    Після розблокування повертає на вихідну сторінку
    Відображає інформацію про причину та тривалість блокування

4. cleanup.php
Скрипт для обслуговування системи, який рекомендується запускати через cron:

    Очищує застарілі записи про блокування
    Оптимізує таблиці БД
    Синхронізує дані між Redis та MariaDB
    Видаляє застарілі логи
    Перевіряє та відновлює структуру БД
    Синхронізує правила iptables з активними блокуваннями
  • Експортує списки заблокованих IP у текстові файли

5. settings.php
Центральний файл налаштувань, що містить усі параметри системи:

    Налаштування підключення до БД та Redis
    Ключі reCAPTCHA
    Параметри блокування та обмежень
    Налаштування механізмів блокування
    Параметри автоматичного жорсткого блокування
    Налаштування сповіщень та логування
  • Параметри тротлінгу та перевірок

Механізми блокування
Система підтримує кілька рівнів блокування:

    MariaDB/Redis - запис про блокування в базі даних або Redis
    .htaccess - для Apache, додавання правил "Deny from IP"
    Nginx - блокування через файл ip.conf
    Iptables/ip6tables - блокування на рівні брандмауера
  • Зовнішній API - можливість інтеграції із зовнішніми системами блокування

Прогресивна система блокувань
Система використовує інтервали блокування, що збільшуються, для повторних порушників:

    Перше блокування: 1 година (3600 секунд)
    Друге блокування: 3 години (10800 секунд)
    Третє блокування: 6 годин (21600 секунд)
    Четверте блокування: 12 годин (43200 секунд)
    П'яте блокування: 24 години (86400 секунд)
    Шосте блокування: 3 дні (259200 секунд)
  • Сьоме та наступні: 7 днів (604800 секунд)

Автоматичне жорстке блокування
Система включає механізм автоматичного жорсткого блокування, який активується при досягненні певного порогу кількості заблокованих IP (за замовчуванням - 100). Коли поріг перевищено, система:

    Вибирає найбільш активні заблоковані IP
    Застосовує жорсткіші методи блокування
    Надсилає сповіщення адміністратору
    Логує подію для аналізу

Виявлення атак
Система включає кілька методів виявлення атак:

    Частота запитів - виявлення перевищення лімітів запитів на секунду/хвилину
    URL Honeypot - виявлення спроб доступу до характерних для ботів URL
    Узгодженість User-Agent - виявлення багатьох різних UA з одного IP
    Таймування запитів - аналіз дисперсії інтервалів між запитами
    Перевірка Cookie - виявлення маніпуляцій з Cookie сесії
    Підозріла активність - загальний аналіз характеру запитів

Відмовостійкість
Система розроблена з урахуванням можливих відмов компонентів:

    Каскадні механізми зберігання - Redis → MariaDB → Файловий кеш
    Перевірка з'єднань - тестування Redis/MariaDB перед використанням
    Резервні методи блокування - застосування доступних механізмів при відмові основних
    Обробка помилок - перехоплення винятків та логування проблем
  • Автоматичний перехід на режим файлового блокування при недоступності Redis та БД

Білий список IP
Система підтримує білий список IP-адрес, які виключаються з перевірок безпеки. Підтримується:

    Точне співпадіння IP-адрес (IPv4 та IPv6)
    CIDR-нотація для діапазонів IP-адрес
  • Синхронізація білого списку між Redis та файловим сховищем

Інструменти адміністрування
В адмін-панелі доступні такі можливості:

    Перегляд поточних блокувань з причинами та часом
    Статистика по блокуваннях
    Управління білим списком
    Історія підозрілих запитів
    Моніторинг частоти запитів з IP-адрес
    Ручне розблокування IP
    Масове розблокування
    Очищення дублюючих правил iptables
  • Перемикання DNS-запитів

Висновок
Представлена система являє собою комплексне рішення для захисту від DDoS-атак та підозрілої активності. Вона об'єднує кілька рівнів захисту, використовує прогресивну систему блокувань і має високу відмовостійкість. Система масштабована завдяки підтримці Redis і має зручні інструменти адміністрування.
Система також включає механізми для легітимних користувачів, дозволяючи їм розблокувати себе через reCAPTCHA, і має систему виявлення та блокування зловживань цією можливістю.

Ми це зробили разом за допомогою Claude AI від Anthropic.

Просте підключення до вашої CMS через - інструкцію підключення файлу з абсолютним шляхом.
require_once $_SERVER['DOCUMENT_ROOT'] . '/dos/security_monitor.php';


Захист працює на цих сайтах murkir.pp.ua.

Аналіз продуктивності security_monitor.php | Redis vs MySQL
Додав Тротлінг запитів: керівництво та вплив на сервер.
Його можна вмикати, а можна й не вмикати - головне що він є!

Документація та налаштування Система захисту від DoS/DDoS атак.

Screenshot 2025-04-05 154448.png
Screenshot 2025-04-05 154506.png

https://github.com/Murkirpus/ShieldPHP

Потрібні тести на високонавантажених проектах.
Коштує недорого, один раз налаштував і буде працювати завжди!
Якщо зацікавило, пишіть нам на пошту murkir@gmail.com.
Зворотний зв'язок.
27.02.2025
15:07

Коментарі

Поки немає коментарів. Будьте першим!