Защита от DDOS атак - 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 https://kinoprostor.tv/
Анализ производительности 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.
Обратная связь.
Комментарии
Пока нет комментариев. Будьте первым!