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

Защита от DDOS атак - 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 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.
Обратная связь.
27.02.2025
15:00

Комментарии

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