Проблемы безопасности с сайтами на WordPress с самохостингом

Вопрос или проблема

Я обращаюсь к вам, потому что в течение последних нескольких месяцев я испытываю проблемы с моим самодельным веб-сервером и моими сайтами на WordPress.

Я использую последние версии Debian, Nginx и PHP 8.2 с FPM. Для управления моими сайтами я использую ISPConfig, который был установлен с помощью автоматического скрипта установки, доступного по адресу https://get.ispconfig.org.

В течение нескольких недель все сайты на WordPress, размещенные на моем сервере, многократно подвергались взлому с использованием одного и того же метода:

• Многочисленные разные IP-адреса отправляют GET, а затем POST-запросы к различным PHP-файлам WordPress (wp-cron, wp-load);

• На корневых каталогах сайтов создаются файлы PHP с случайными именами, такими как “bdb7871b1c3c28ad1a33ea14cc307cd1.php”, и к ним отправляются многочисленные POST-запросы;

• Эти PHP-файлы впоследствии удаляются;

• Некоторые PHP-файлы WordPress изменяются для вставки вредоносного кода (часто разные файлы каждый раз – в плагинах или темах);

• Создаются учетные записи администратора, посты и комментарии.

В моем файле wp-config.php константа define(‘DISALLOW_FILE_EDIT’, true); установлена корректно. Пароли систематически изменяются на сложные, а имена пользователей администратора также модифицируются.

Я использую плагины “Wordfence” и “Malcare” для защиты этих сайтов. Инфекции всегда обнаруживаются ретроспективно платной версией “Malcare” после того, как сайт уже взломан. Malcare может идентифицировать измененные файлы и восстановить их до исходного состояния, удалив вредоносный код.

Эти проблемы продолжаются уже несколько месяцев, и я не смог их устранить.

Хотя “Malcare” дезинфицирует сайты каждый раз, они снова подвергаются заражению через несколько дней или даже часов, всегда через тот же процесс.

Я подозреваю, что неверная конфигурация в Nginx или PHP позволяет выполнять вредоносный код. Я приложил конфигурацию виртуального сервера Nginx для одного из моих сайтов (они все идентичны):

https://pastebin.com/MiCjCn28

Есть ли у вас идеи, как решить эту проблему, или какие-либо предложения, которые могут помочь мне с ее устранением…

С уважением,

Ответ или решение

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

Теория

Безопасность самохостингового WordPress-сайта обычно зависит от трёх главных компонентов: безопасность сервера, безопасность WordPress и безопасность плагинов и тем. Слабое место в любом из этих компонентов может стать причиной успешной атаки. В вашем случае использование последних версий Debian, Nginx и PHP 8.2 с поддержкой FPM, а также управление различными сайтами с помощью ISPConfig, является положительной практикой. Тем не менее, даже при наличии самых последних версий программного обеспечения, могут существовать неочевидные уязвимости или неверные конфигурации, которые могут быть скомпрометированы.

Примеры

  1. Атаки посредством GET и POST запросов: Это типичный способ эксплуатации, используемый для проверки масштаба существующих уязвимостей. Ваши упоминания о том, что атака начинается с множества различных IP-адресов, подразумевают распределенную атаку. Такое поведение характерно для ботнетов, которые ищут конкретные точки входа в систему.

  2. Создание и последующее удаление PHP-файлов: Это свидетельствует о том, что злоумышленники получают доступ к вашему серверу и могут исполнять произвольные команды на PHP. Механизм состоит в создании временных файлов, используемых для последующего перехвата и выполнения вредоносного кода.

  3. Модификация файлов и создание администраторских аккаунтов: Это явный признак того, что атака прошла стадию первичного доступа и теперь зловред пытается закрепиться и получить максимальную степень контроля.

Применение

Чтобы эффективно справиться с текущей ситуацией, потребуется пошаговое внедрение следующих стратегий:

  1. Конфигурация Nginx и PHP: Интернет-серверы и среды выполнения должны быть правильно настроены для минимизации потенциальных векторов атаки. Присмотритесь к вашей конфигурации Nginx (ссылка на Pastebin), чтобы убедиться, что там нет разрешений для выполнения вредоносного кода. Убедитесь, что директивы open_basedir, disable_functions, expose_php установлены в соответствии с лучшими практиками безопасности.

  2. Укрепление WordPress: Обязательно используйте безопасные методы авторизации. Помимо DISALLOW_FILE_EDIT, стоит также рассмотреть возможность использования строгих правил файловой системы, которые ограничивают или исключают возможности записи во все папки, кроме wp-content/uploads.

  3. Защита на уровне сети: Проверьте ваши брандмауэрные и доступные сетевые правила. Настройте блокировку IP на сетевом уровне для подозрительных адресов.

  4. Обнаружение и реагирование: Хотя у вас установлены Wordfence и Malcare для обнаружения угроз, также рассмотрите возможность использования сервисов облачного резервного копирования и возврата на предыдущие состояния на случай критических атак.

  5. Обновление и поддержка плагинов и тем: Старые версии тем и плагинов могут содержать неустранённые уязвимости. Следите за их актуальностью и избегайте использования ненадёжных и редко обновляемых компонентов.

  6. Мониторинг и аудит: Настройте логирование всех событий с уровнем доступа, чтобы иметь возможность анализа и выявления подозрительного поведения в реальном времени.

  7. Образовательные меры: Обучите лиц, ответственных за администрирование сайтов, вопросам кибергигиены. Пользователи должны быть осторожны с сетевыми ресурсами и следовать правилам строгой аутентификации.

Ваша ситуация может потребовать специфической консультации эксперта по кибербезопасности, который после углублённого аудита может предоставить ценный эксклюзивный анализ уязвимостей именно вашего окружения. Необходимо помнить, что безопасность – это процесс, а не конечное состояние, который требует регулярного улучшения и адаптации под новые угрозы.

Оцените материал
Добавить комментарий

Капча загружается...