Обзор плагина WordPress для блокировки плохих запросов BBQ

Опубликовано: 2014-01-30

BBQ:Block Bad Queries — это брандмауэр веб-приложений WordPress, который блокирует вредоносные HTTP-запросы.

Доступно множество плагинов безопасности WordPress, но лишь немногие из них действительно обеспечивают безопасность WordPress должным образом и помогают защитить установку WordPress от злонамеренных хакерских атак.

Одним из таких плагинов является BBQ: Block Bad Queries. Этот плагин похож на настраиваемый, но простой и не требующий обслуживания брандмауэр веб-приложений WordPress, который должен установить каждый администратор и менеджер WordPress.

Этот пост безопасности WordPress объясняет:

  • Как работает плагин BBQ:Block Bad Queries
  • Как настроить плагин BBQ:Block Bad Queries
    • Изменение / добавление шаблонов для блокировки
    • Блокировать посетителей с помощью определенной строки агента пользователя
    • Настройка максимального количества символов, разрешенных в HTTP-запросах
  • Как протестировать BBQ: блокировать неверные запросы и ваши настройки

Как работает плагин WordPress BBQ:Block Bad Queries

Плагин BBQ:Block Bad Queries анализирует каждый запрос, отправленный на ваш WordPress, до того, как он будет выполнен ядром WordPress. Если запрос является вредоносным, плагин запрещает посетителю доступ к такому ресурсу, отвечая кодом состояния HTTP 403, доступ запрещен.

Список вредоносных шаблонов по умолчанию Block Bad Queries не только защитит ваш WordPress от целевых атак WordPress, но также защитит ваш WordPress от потенциальных уязвимостей нулевого дня и других типичных атак, таких как межсайтовый скриптинг, SQL-инъекция и обход каталога. Поэтому, если вы установите BBQ:Block Bad Queries, злоумышленники все равно не смогут использовать известные уязвимости, если вы используете уязвимую (старую) установку, плагин или тему WordPress.

Совет WP White Security : даже если вы запускаете BBQ:Block Bad Queries, вам все равно следует использовать самые последние и самые безопасные версии WordPress, плагинов и тем. Плагин WordPress BBQ следует использовать как дополнительный уровень безопасности, а не для закрытия существующих дыр в безопасности.

Настройка плагина BBQ:Block Bad Queries

По умолчанию блокировка неверных запросов не требует каких-либо настроек или изменений конфигурации, но всегда есть исключения из правил. Если вам нужно настроить BBQ:Block Bad Queries, вот объяснение того, что вы можете настроить. Для начала он сканирует три части каждого запроса, отправляемого на установку WordPress:

URI запроса : URL-адрес, запрошенный пользователем, например, https://www.wpwhitesecurity.com/wordpress-security/

Строка запроса: строка запроса, включенная в URL-адрес, например, https://www.wpwhitesecurity.com/wordpress-security/?query_string=1.

Строка пользовательского агента: строка пользовательского агента автоматически отправляется клиентским программным обеспечением, получающим доступ к вашему WordPress, для идентификации себя. Например, Google Chrome использует следующую строку пользовательского агента:

Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/32.0.1667.0 Safari/537.36

Все шаблоны, обычно используемые в вредоносных запросах, хранятся в плагине в трех массивах, и их название говорит само за себя:

  • $request_uri_array
  • $query_string_array
  • $user_agent_array

BBQ:Block Bad Queries не имеет интерфейса настройки. Поэтому, если вы хотите внести какие-либо изменения, как описано в приведенных ниже примерах, вам необходимо отредактировать код из файла плагина php.

Изменение HTTP-запросов, которые должен блокировать плагин BBQ:Block Bad Queries

Если вы хотите заблокировать определенный тип строки запроса, добавьте шаблон строки запроса в массив $query_string_array. Как только вы добавите новый шаблон, проверьте его, чтобы убедиться, что вы не блокируете законные запросы. Ниже приведен пример синтаксиса:

$query_string_array  = apply_filters( 'query_string_items',  array( 'PATTERN_1', 'PATTERN_2', 'PATTERN_3');

Примечание. Каждый добавляемый шаблон следует заключать в одинарные кавычки (') и отделять от других шаблонов запятой (,).

Блокировка посетителей с помощью определенного пользовательского агента из WordPress

Чтобы заблокировать посетителей, использующих определенный пользовательский агент, например автоматические боты вирусов и вредоносных программ, добавьте строку их пользовательского агента в $user_agent_array.

Настройка ограничения максимальной длины URL-адреса для WordPress

Ограничив количество символов, которые можно использовать в HTTP-запросе, вы можете защитить свою установку WordPress от атак нулевого дня и некоторых других вредоносных атак. Атаки нулевого дня — это уязвимости программного обеспечения, которые используются хакерами-злоумышленниками, но о которых поставщик программного обеспечения еще не знает, поэтому патч еще не существует.

В большинстве вредоносных атак на веб-приложения используются длинные URL-адреса для использования известных уязвимостей. Поэтому, если вы ограничиваете количество символов, которые можно использовать в HTTP-запросе, вы автоматически защищаете свою установку WordPress от подобных атак.

Ограничив количество символов, используемых в URL-адресе, вы также можете заблокировать законные запросы. Поэтому, прежде чем включать эту функцию безопасности, проверьте, какова длина самого длинного URL-адреса, который у вас есть в вашей установке WordPress (в том числе в разделе страниц администратора WordPress (/wp-admin/).

Чтобы включить и настроить максимальную длину URL-адреса, раскомментируйте (удалив '//') приведенную ниже строку кода в плагине и укажите максимальное количество символов, которое может содержать HTTP-запрос. Значение по умолчанию в плагине — 255, как показано ниже.

strlen( $_SERVER['REQUEST_URI'] ) > 255 ||

Тестирование брандмауэра вашего веб-приложения WordPress

После того, как вы установили плагин BBQ:Block Bad Queries WordPress, запустите несколько тестов, запросив приведенный ниже список примеров URL-адресов, чтобы убедиться, что он работает (замените some_site.com на ваш домен):

  • http://www.some_site.com/../../../etc/passwd
  • http://www. some_site.com/path/?q=%00
  • http://www. some_site.com/path/base64_

Если плагин работает правильно, сервер должен ответить кодом состояния HTTP 403 Forbidden при запросе таких URL-адресов. Вышеупомянутый запрос — это просто примеры URL-адресов, которые должны быть заблокированы плагином BBQ: Block Bad Requests. Вы можете запустить несколько других тестов, используя запросы, обычно используемые в реальных хакерских атаках.

Тестирование плагина BBQ: Block Bad Queries с помощью Fiddler

Если вы не уверены, каков ответ сервера при отправке вредоносных HTTP-запросов, вы можете подтвердить ответ с помощью прокси-сервера Fiddler.

Как показано на снимке экрана ниже, в этом тесте мы запросили URL-адрес https://www.wpwhitesecurity.com/contact/base64_ и можем подтвердить, что сервер отвечает ответом HTTP 403 Forbidden.

Тестирование BBQ: плагин WordPress для блокировки плохих запросов с помощью Fiddler

Плагин Block Bad Queries — брандмауэр веб-приложений для WordPress

Вот оно! Если вы искали настраиваемый и надежный брандмауэр веб-приложений для своих блогов и веб-сайтов WordPress, установите плагин BBQ: Block Bad Queries и забудьте о нем. Вы можете скачать BBQ:Block Bad Queries из репозитория плагинов WordPress или купить их PRO-версию здесь.

С другой стороны, если вы предпочитаете что-то, что не требует настройки, а также выполняет сканирование вредоносных программ, я бы порекомендовал сканер вредоносных программ Malcare.