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

Система безпеки веб-сайту від 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. Цей файл:
- Виконує перевірки узгодженості User-Agent та таймінгів запитів
Відстежує частоту запитів з кожного IP
Виявляє підозрілу активність
Застосовує блокування через різні механізми
Має вбудований механізм тротлінгу для обмеження запитів
Виявляє атаки типу "honeypot" (спроби доступу до неіснуючих адмін-ресурсів)
Перевіряє легітимність пошукових ботів
2. admin.php
Адміністративна панель для управління системою, яка дозволяє:
- Очищати дублюючі правила iptables
Переглядати та управляти заблокованими IP-адресами
Бачити статистику по блокуваннях
Управляти білим списком IP-адрес
Аналізувати підозрілі запити
Контролювати частоту запитів з IP-адрес
Вмикати/вимикати зворотні DNS-запити
3. recaptcha_unlock.php
Сторінка для відвідувачів, чиї IP-адреси були заблоковані. Дозволяє користувачам розблокувати себе, пройшовши перевірку reCAPTCHA. Має захист від зловживань:
Відстежує частоту спроб розблокування
При перевищенні ліміту застосовує "жорстке блокування"
Після розблокування повертає на вихідну сторінку
Відображає інформацію про причину та тривалість блокування
4. cleanup.php
Скрипт для обслуговування системи, який рекомендується запускати через cron:
- Експортує списки заблокованих IP у текстові файли
Очищує застарілі записи про блокування
Оптимізує таблиці БД
Синхронізує дані між Redis та MariaDB
Видаляє застарілі логи
Перевіряє та відновлює структуру БД
Синхронізує правила iptables з активними блокуваннями
5. settings.php
Центральний файл налаштувань, що містить усі параметри системи:
- Параметри тротлінгу та перевірок
Налаштування підключення до БД та Redis
Ключі reCAPTCHA
Параметри блокування та обмежень
Налаштування механізмів блокування
Параметри автоматичного жорсткого блокування
Налаштування сповіщень та логування
Механізми блокування
Система підтримує кілька рівнів блокування:
- Зовнішній API - можливість інтеграції із зовнішніми системами блокування
MariaDB/Redis - запис про блокування в базі даних або Redis
.htaccess - для Apache, додавання правил "Deny from IP"
Nginx - блокування через файл ip.conf
Iptables/ip6tables - блокування на рівні брандмауера
Прогресивна система блокувань
Система використовує інтервали блокування, що збільшуються, для повторних порушників:
- Сьоме та наступні: 7 днів (604800 секунд)
Перше блокування: 1 година (3600 секунд)
Друге блокування: 3 години (10800 секунд)
Третє блокування: 6 годин (21600 секунд)
Четверте блокування: 12 годин (43200 секунд)
П'яте блокування: 24 години (86400 секунд)
Шосте блокування: 3 дні (259200 секунд)
Автоматичне жорстке блокування
Система включає механізм автоматичного жорсткого блокування, який активується при досягненні певного порогу кількості заблокованих IP (за замовчуванням - 100). Коли поріг перевищено, система:
Вибирає найбільш активні заблоковані IP
Застосовує жорсткіші методи блокування
Надсилає сповіщення адміністратору
Логує подію для аналізу
Виявлення атак
Система включає кілька методів виявлення атак:
Частота запитів - виявлення перевищення лімітів запитів на секунду/хвилину
URL Honeypot - виявлення спроб доступу до характерних для ботів URL
Узгодженість User-Agent - виявлення багатьох різних UA з одного IP
Таймування запитів - аналіз дисперсії інтервалів між запитами
Перевірка Cookie - виявлення маніпуляцій з Cookie сесії
Підозріла активність - загальний аналіз характеру запитів
Відмовостійкість
Система розроблена з урахуванням можливих відмов компонентів:
- Автоматичний перехід на режим файлового блокування при недоступності Redis та БД
Каскадні механізми зберігання - Redis → MariaDB → Файловий кеш
Перевірка з'єднань - тестування Redis/MariaDB перед використанням
Резервні методи блокування - застосування доступних механізмів при відмові основних
Обробка помилок - перехоплення винятків та логування проблем
Білий список IP
Система підтримує білий список IP-адрес, які виключаються з перевірок безпеки. Підтримується:
- Синхронізація білого списку між Redis та файловим сховищем
Точне співпадіння IP-адрес (IPv4 та IPv6)
CIDR-нотація для діапазонів IP-адрес
Інструменти адміністрування
В адмін-панелі доступні такі можливості:
- Перемикання DNS-запитів
Перегляд поточних блокувань з причинами та часом
Статистика по блокуваннях
Управління білим списком
Історія підозрілих запитів
Моніторинг частоти запитів з IP-адрес
Ручне розблокування IP
Масове розблокування
Очищення дублюючих правил iptables
Висновок
Представлена система являє собою комплексне рішення для захисту від 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.
Зворотний зв'язок.
Коментарі
Поки немає коментарів. Будьте першим!