Более 40% интернета работает на WordPress. Но это делает эту популярную CMS привлекательной целью для хакеров.
Поэтому, если у вас есть сайт на WordPress, вам нужно убедиться, что он защищен. И это не только техническая задача, но также ключевая ответственность с нескольких точек зрения, таких как репутация бренда, утечка данных и бизнес-продолжительность.
Один из инструментов, выделяющихся в экосистеме WordPress, – это WPScan. Это инструмент для сканирования безопасности, специально разработанный для WordPress. Он поставляется как с платной, так и с бесплатной лицензией, в зависимости от ваших потребностей. Также он предустановлен в дистрибутивах Kali Linux.
Так что, будь вы опытным администратором веб-сайтов или владельцем сайта, стремящимся улучшить безопасность своего сайта, WPScan поможет вам выявить уязвимости до того, как на них накинутся злоумышленники.
Прежде чем продолжить, одна очень важная вещь: цель этой статьи – помочь отдельным лицам и организациям укрепить безопасность своих сайтов на WordPress, эффективно используя WPScan.
Хотя этот инструмент невероятно мощен в выявлении уязвимостей, важно подчеркнуть, что любое несанкционированное использование WPScan, такое как сканирование веб-сайтов без соответствующего разрешения, не только неморально, но и незаконно.
Моя цель в предоставлении этой информации – дать возможность администраторам сайтов и разработчикам активно обеспечивать безопасность своих сайтов, защищать свои данные и создавать более безопасную онлайн среду для всех.
Что мы рассмотрим:
Что такое WPScan?
WPScan — это инструмент командной строки, который помогает выявлять потенциальные уязвимости в вашей установке WordPress. Это как охранник для вашего веб-сайта, который следит за устаревшими плагинами, неправильными настройками и другими распространёнными проблемами.
Уникальность WPScan заключается в его ориентированности на WordPress. Он использует базу данных, поддерживаемую экспертами по безопасности, которая регулярно обновляется для отслеживания тысяч известных уязвимостей в ядре WordPress, плагинах и темах.
Что может сделать WPScan?
Вот лишь несколько вещей, с которыми WPScan может вам помочь:
-
Обнаружение устаревших версий ядра WordPress.
-
Идентификация уязвимостей в плагинах и темах.
-
Перечисление пользователей (например, обнаружение имён пользователей).
-
Проверка на наличие слабых паролей (с использованием атаки по словарю).
-
Поиск открытых конфиденциальных файлов (таких как резервные копии или журналы отладки).
Теперь давайте рассмотрим наиболее распространённые команды, которые вы можете использовать.
Как просканировать ваш сайт WordPress с помощью WPScan
1. Базовое сканирование
Базовое сканирование предоставляет обзор безопасности вашего сайта на WordPress путем выявления основных уязвимостей или ошибок конфигурации. Оно может определить версию основы WordPress и пометить ее как устаревшую, выделяя потенциальные риски, такие как инъекции SQL или уязвимости кросс-сайтового скриптинга (XSS), связанные с более старыми версиями.
Сканирование также может обнаружить общедоступные файлы резервных копий (например, .sql
или .zip
) или файлы отладки, такие как debug.log
, которые могут раскрывать чувствительную информацию, такую как учетные данные базы данных или пути сервера.
Оно может пометить отсутствующие или неправильно настроенные заголовки безопасности HTTP, такие как Strict-Transport-Security (HSTS) или Content-Security-Policy (CSP), которые критически важны для защиты от атак на снижение протокола и несанкционированного выполнения скриптов.
Открытые каталоги, раскрывающие структуру файлов вашего сайта и потенциально уязвимые плагины или темы, также могут быть помечены, если они обнаружены в общедоступных метаданных.
Эти результаты являются отправной точкой для устранения фундаментальных уязвимостей безопасности.
wpscan --url http://yourwebsite.com
Это то, что вы увидите на своем терминале, когда выполните эту команду:
2. Перечисление пользователей
Перечисление пользователей – это процесс определения имен пользователей на вашем сайте WordPress. Знание этих имен пользователей может помочь злоумышленникам нацелиться на конкретные учетные записи для атак методом перебора.
Для перечисления пользователей выполните:
wpscan --url http://yourwebsite.com --enumerate u
Вывод покажет имена пользователей:
Если вы обнаружите стандартные имена пользователей, такие как admin
, вы должны заменить их на что-то уникальное и безопасное.
Вот некоторые лучшие практики для имен пользователей:
-
Избегайте стандартных имен: Замените стандартные имена, такие как
admin
илиuser
, на что-то уникальное и неочевидное. -
Переименуйте уязвимые имена пользователей: Чтобы изменить имя пользователя, вы можете создать нового пользователя с правами администратора, передать владение сообщениями или контентом, а затем удалить старого пользователя.
-
Используйте ролевые имена пользователей осторожно: Избегайте названий учетных записей по их ролям (например,
editor
,manager
), так как они могут стать легкой мишенью. -
Внедрите блокировку входа: Комбинируйте безопасные имена пользователей с плагинами, которые блокируют учетные записи после повторных неудачных попыток входа.
-
Включите двухфакторную аутентификацию (2FA): Добавление 2FA гарантирует, что даже если имя пользователя угадано, учетная запись остается защищенной.
3. Проверка плагинов и тем
Плагины и темы могут иметь проблемы безопасности. WPScan может перечислить все установленные плагины и темы, а также любые связанные уязвимости.
Для плагинов выполните это:
wpscan --url http://yourwebsite.com --enumerate p
Результат будет похож на следующий:
Для тем выполните это:
wpscan --url http://yourwebsite.com --enumerate t
Результат будет похож на следующий:
Ищите устаревшие версии или известные уязвимости в результатах и немедленно обновляйте или заменяйте эти компоненты.
Давайте рассмотрим некоторые распространенные проблемы безопасности в плагинах и темах.
Во-первых, у нас есть Межсайтовый скриптинг (XSS). Небезопасная обработка ввода в плагинах или темах может позволить злоумышленникам внедрять вредоносные сценарии, потенциально крадя информацию пользователей или захватывая сессии администраторов. Плохо защищенный сайт на WordPress с уязвимостью XSS может позволить злоумышленникам красть сессионные куки, потенциально получать несанкционированный административный доступ, внедрять вредоносные перенаправления, отправлять пользователей на сайты-фишинг, отображать провокационный контент и обманным образом заставлять пользователей предоставлять чувствительную информацию.
Также существует SQL-инъекция. Плохо написанные плагины или темы могут позволить злоумышленникам манипулировать запросами к базе данных, раскрывая конфиденциальные данные или нанося ущерб вашему сайту. Уязвимости SQL-инъекции могут быть использованы для извлечения конфиденциальных данных, обхода аутентификации и изменения или удаления данных.
Некоторые плагины или темы могут содержать вредоносный код — намеренно или из-за плохой безопасности — который предоставляет злоумышленникам несанкционированный доступ к вашему сайту, известный как бэкдоры. После установки бэкдор может обеспечить постоянный доступ, позволить загружать произвольные файлы, подорвать целостность сайта и украсть конфиденциальные данные.
Существуют также Уязвимости удаленного выполнения кода (RCE) — уязвимости, которые позволяют злоумышленникам выполнять произвольный код на вашем сервере, что часто приводит к полному контролю над вашим сайтом или сервером. Как только злоумышленники получают доступ RCE, они могут создавать администраторов, эксфильтровать данные, запускать дальнейшие атаки и повышать привилегии.
Лучшие практики:
-
Всегда обновляйте плагины и темы до последних версий.
-
Удаляйте любые неиспользуемые или неактивные плагины и темы, так как они могут представлять риск.
-
Убедитесь, что плагины и темы загружаются из доверенных, авторитетных источников и имеют историю активного обслуживания.
-
Рассмотрите возможность использования плагинов безопасности для мониторинга изменений в файлах плагинов или тем и обнаружения подозрительной активности.
4. Тестирование паролей
WPScan может тестировать слабые пароли, пытаясь провести атаку грубой силой, используя список слов:
wpscan --url http://yourwebsite.com --passwords /path/to/passwords.txt
и вот вывод в вашей командной строке:
Что такое грубая сила?
Грубая сила — это метод, который используют атакующие для угадывания паролей, систематически пробуя каждую возможную комбинацию, пока не будет найдена правильная. В сочетании с списком слов — файлом, содержащим коллекцию часто используемых паролей — грубая сила становится намного быстрее и эффективнее.
Типичный список слов может включать:
-
Простые пароли такие как
123456
,password
иqwerty
. -
Общие шаблоны такие как
Spring2024!
илиwelcome123
. -
Утечка паролей из предыдущих утечек данных.
Симулируя этот тип атаки, WPScan может выявить учетные записи, использующие слабые пароли, что позволяет вам проактивно устранять уязвимости.
Слабые пароли делают атаку грубой силой проще и быстрее. Короткий или предсказуемый пароль может быть угадан за считанные секунды, в то время как длинный, сложный пароль с уникальными элементами экспоненциально труднее взломать.
Как создать надежные пароли
Сильные пароли – это ваша первая линия защиты от атак с перебором. Вот ключевые характеристики сильных паролей:
-
Длина: Не менее 12–16 символов.
-
Сложность: Используйте сочетание строчных и заглавных букв, цифр и специальных символов.
-
Уникальность: Избегайте повторного использования паролей на нескольких учетных записях.
-
Непредсказуемость: Избегайте слов из словаря, распространенных фраз или личной информации, такой как дни рождения.
Стратегии для создания сильных паролей
Существует несколько мер, которые вы можете предпринять для создания сильных паролей. Во-первых, используйте генератор паролей. Инструменты, такие как LastPass и Bitwarden, могут создавать и хранить для вас высоко сложные пароли.
Вы также можете использовать фразы-пароли (вместо обычных паролей). Сочетайте случайные, не связанные слова с цифрами и символами, например Sky#Tree!Motorbike12
.
Наконец, избегайте шаблонов, которые могут быть легко угаданы злоумышленником. Не используйте последовательные или клавиатурные шаблоны, такие как abcdef
или qwerty
.
Используйте инструменты для управления паролями
Управление надежными паролями может быть сложной задачей. Менеджеры паролей упрощают этот процесс, надежно храня и автоматически заполняя ваши учетные данные. Популярные варианты включают:
-
Bitwarden
-
LastPass
Эти инструменты также имеют функции, такие как аудит паролей для обнаружения повторно использованных или слабых паролей.
Используйте двухфакторную аутентификацию (2FA)
Двухфакторная аутентификация (2FA) добавляет дополнительный уровень безопасности, требуя от пользователей подтверждения своей личности через второй фактор помимо пароля. Это может включать:
-
Одноразовые коды, отправляемые по электронной почте или SMS.
-
Коды, сгенерированные приложением из инструментов, таких как Google Authenticator или Authy.
-
Биометрическая верификация, такая как отпечатки пальцев или распознавание лица.
Даже если злоумышленник угадает ваш пароль методом перебора, 2FA не позволит им получить доступ к вашей учетной записи без вторичной верификации. Этот дополнительный шаг делает перебор практически неосуществимым, так как злоумышленникам также нужно скомпрометировать ваше устройство или метод 2FA.
Как внедрить 2FA в WordPress
-
Установите плагин WordPress, такой как Google Authenticator.
-
Требуйте, чтобы все учетные записи пользователей, особенно администраторы, включили двухфакторную аутентификацию (2FA).
-
Предлагайте резервные коды или варианты восстановления, если пользователи потеряют доступ к своему устройству 2FA.
-
Проведите тестирование и убедитесь, что 2FA надежно работает для всех ролей пользователей, прежде чем сделать его обязательным.
Важность гигиены паролей
Используя надежные пароли и внедряя 2FA, вы можете значительно снизить эффективность атак перебора паролей.
Функция тестирования паролей WPScan поможет вам выявить слабые учетные данные. Она также подчеркивает критическую необходимость проактивной гигиены паролей и дополнительных слоев безопасности для обеспечения безопасности вашего сайта на WordPress.
Что делать с результатами WPScan
Отчеты WPScan предоставляют действенные идеи о безопасности вашего сайта. Вот что вы можете сделать с этой информацией:
Во-первых, обновите ядро WordPress, плагины и темы: Держите всё в актуальном состоянии, чтобы закрыть уязвимости.
Во-вторых, решайте проблемы с конфигурацией: Исправьте неправильные разрешения файлов, небезопасные заголовки HTTP и другие предупреждения.
Вот несколько примеров мер по устранению недочетов, которые вы можете применить:
-
Индексирование каталога: Если WPScan обнаруживает открытые каталоги, отключите просмотр каталогов, добавив эту строку в ваш файл
.htaccess
:Options -Indexes
-
Права доступа к файлам: Убедитесь, что критические файлы, такие как
wp-config.php
, доступны только для чтения, установив права доступа440
или400
с помощью команды:chmod 400 wp-config.php
Также стоит усилить безопасность всех учетных записей. Это можно сделать несколькими способами:
-
Обновление слабых паролей: Используйте надежные уникальные пароли для всех учетных записей (подробности смотрите в разделе тестирования паролей).
-
Удаление неиспользуемых учетных записей: Удалите неактивные учетные записи, особенно те, у которых есть привилегии администратора.
-
Переименуйте предсказуемые имена пользователей: Измените имена пользователей, такие как
admin
, на что-то менее очевидное.
Убедитесь также, что вы защитили любые чувствительные файлы: Если WPScan находит открытые файлы, такие как debug.log
, удалите их или защитите. Удалите ненужные файлы или старые резервные копии.
Для файлов, которые вам нужно сохранить, переместите их в каталог за пределами корневой директории веб-сайта. Вы также можете защитить файлы с помощью .htaccess
, блокируя доступ к чувствительным файлам с помощью правил Deny
и Allow
:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 123.456.789.000
</Files>
Ограничения WPScan
WPScan – это мощный инструмент, но у него есть некоторые ограничения. Просто будьте в курсе, чтобы принять другие меры по защите ваших сайтов на WP.
1. Только известные уязвимости
WPScan полагается на свою базу данных известных уязвимостей, поэтому он не обнаруживает zero-day-уязвимости или пользовательские уязвимости.
Вот некоторые советы о том, как можно смягчить это проблему:
-
Будьте в курсе: Следите за блогами по безопасности WordPress, базами данных уязвимостей, такими как CVE или WPVulnDB, и сообщественными форумами для выявления новых угроз.
-
Используйте веб-приложение брандмауэр (WAF): Инструменты, такие как Cloudflare или Sucuri, могут блокировать подозрительную активность и попытки использования неизвестных уязвимостей.
-
Проводите регулярные проверки безопасности: Периодически проверяйте свой сайт на необычное поведение или несанкционированные изменения, особенно в критических файлах, таких как
wp-config.php
или вашей базе данных.
2. Отсутствие защиты в реальном времени
WPScan – это диагностический инструмент, а не брандмауэр или система обнаружения вторжений. Для защиты в реальном времени лучше комбинировать WPScan с другими инструментами.
Некоторые шаги, которые можно предпринять:
-
Установите плагины безопасности: Используйте специальные плагины безопасности для непрерывного мониторинга, сканирования вредоносных программ и защиты брандмауэра.
-
Отслеживайте журналы активности: Настройте отслеживание активности для выявления подозрительных попыток входа, изменений файлов или действий несанкционированных пользователей.
3. Ресурсоемкость
Сканирование больших сайтов с множеством плагинов и тем может занимать много времени и повлиять на производительность сервера.
Существуют различные стратегии, которые можно применить для смягчения этого, такие как планирование сканирования во время периодов с низким трафиком, чтобы минимизировать воздействие на посетителей сайта. Вы также можете проводить сканирование на стендовой копии сайта, а не непосредственно на рабочей среде.
4. Кривая обучения
Как инструмент командной строки, WPScan может показаться запутанным для менее технически подготовленных пользователей. Однако документация отличная, и с практикой вы станете опытным.
Если интерфейс командной строки вас пугает, попробуйте использовать WPScan с плагинами безопасности, которые предлагают сканирование и отчетность с графическим интерфейсом.
Лучшие практики использования WPScan
Чтобы извлечь максимум из WPScan, вам следует настроить его использование под конкретные потребности вашего сайта и установить надежную стратегию для мониторинга результатов. Вот как вы можете максимизировать его эффективность:
Выберите Правильные Сканы для Вашего Сайта
WPScan предлагает различные варианты сканирования, от базовых сканов до целевых проверок уязвимостей для плагинов, тем и учетных записей пользователей. Выбор правильных сканов зависит от типа сайта, который вы управляете, и от чувствительности обрабатываемых данных.
Для небольших сайтов с низким трафиком:
-
Приоритизируйте базовые сканирования для проверки ядра WordPress, плагинов и тем на наличие обновлений и уязвимостей.
-
Запускайте сканирования ежемесячно или после крупных обновлений.
-
Используйте перечисление пользователей (
--enumerate u
), если подозреваете слабые пароли или стандартные имена пользователей.
Для сайтов среднего бизнеса:
-
В дополнение к базовым сканированиям, включите перечисление плагинов и тем (
--enumerate p,t
), чтобы убедиться, что все компоненты безопасны. -
Еженедельные сканирования, чтобы опережать возникающие угрозы.
-
Совмещайте WPScan с плагинами для ведения журналов активности, чтобы отслеживать действия пользователей и изменения файлов.
Для сайтов с высоким трафиком или интернет-магазинов:
-
Проводите комплексные сканирования, включая перечисление пользователей (
--enumerate u
), перечисление файлов (--enumerate f
) и тестирование на взлом паролей (если это разрешено). -
Ежедневные или еженедельные сканирования для минимизации рисков.
-
Реализуйте дополнительные меры, такие как 2FA для учетных записей администраторов, веб-файрвол (WAF) и заголовки безопасности для укрепления вашего сайта.
Для сайтов, обрабатывающих конфиденциальные данные:
-
Приоритизируйте все доступные сканирования, включая те, которые ищут открытые файлы и уязвимости конфигурации.
-
Еженедельные сканирования с мониторингом в реальном времени через плагин безопасности.
-
Используйте тестовые среды для проверки настроек безопасности без воздействия на продуктивную среду.
Следует ли использовать все сканирования?
Хотя может показаться полезным использовать каждое сканирование, предлагаемое WPScan, есть различные факторы, которые следует учитывать.
Во-первых, подумайте о размере вашего сайта и ваших ресурсах. Для небольших сайтов выполнение всех сканирований может быть избыточным и ресурсоемким.
Вам также следует сосредоточиться на сканировании, которое учитывает наиболее вероятные уязвимости вашего сайта. Например, сайт электронной коммерции должен отдавать предпочтение безопасности пользователей и платежей перед исчерпывающим перечислением файлов.
Требования к соответствию также важно учитывать. Если вы подпадаете под регулирование, такое как GDPR, убедитесь, что вы сканируете и устраняете уязвимости, связанные с защитой данных.
Как эффективно отслеживать результаты
Важно отслеживать результаты WPScan. Это помогает устранить уязвимости, конечно, но также помогает создать систему отслеживания изменений со временем и оставаться бдительным.
Настройте отчетность
Вы можете сохранить результаты сканирования в файлах, используя флаг --output
:
wpscan --url http://example.com --output /path/to/report.txt
Затем регулярно просматривайте отчеты и сравнивайте их с предыдущими сканированиями, чтобы выявить повторяющиеся проблемы или новые уязвимости.
Создайте план действий
Разумно категоризировать уязвимости по уровню серьезности (например, критические, умеренные, низкие).
Это позволяет сразу решить проблемы высокой степени серьезности (например, устаревшие плагины с известными уязвимостями). Затем можно запланировать задачи с более низким приоритетом, такие как настройка разрешений файлов или незначительные изменения конфигурации, для регулярного обслуживания.
Отслеживайте тенденции со временем
Используйте инструменты, такие как таблицы или приложение для управления проектами (например, Trello, Asana), чтобы регистрировать уязвимости, исправления и дальнейшие действия.
Убедитесь, что вы анализируете повторяющиеся проблемы, чтобы выявить закономерности, такие как частые уязвимости плагинов, и рассмотрите возможность замены проблемных компонентов.
Автоматизируйте уведомления
Если вы планируете сканирование с помощью cron-задач, настройте уведомления по электронной почте или оповещения, чтобы без задержек просматривать результаты.
Используйте плагины безопасности с мониторингом в реальном времени, чтобы уведомлять вас о подозрительной активности между проверками WPScan.
Общайтесь с вашей командой:
Убедитесь, что вы делитесь отчетами с соответствующими членами команды, такими как разработчики или администраторы сайта, чтобы все были в курсе потенциальных уязвимостей.
Также будет полезно установить протоколы для немедленных действий, если будут обнаружены критические уязвимости.
Выбирая сканирования на основе конкретных потребностей вашего сайта и внедряя структурированный подход к мониторингу результатов, вы можете гарантировать эффективное использование WPScan. Также убедитесь, что вы адаптировали инструмент к вашему профилю рисков, отслеживайте уязвимости с течением времени и интегрируйте его выводы в более широкую стратегию безопасности.
Этот подход не только улучшает безопасность вашего сайта, но и минимизирует использование ресурсов и усилий, обеспечивая максимальную защиту.
Заключение
WPScan – это бесценный инструмент для любого, кто управляет сайтом на WordPress. Он упрощает процесс выявления уязвимостей и предоставляет четкие, целенаправленные рекомендации для укрепления безопасности вашего сайта.
Подключив WPScan в ваш рабочий процесс и следуя bewiщим практикам, вы можете снизить риск атак и обеспечить безопасность вашего сайта на WordPress. Безопасность – это непрерывное путешествие, и инструменты, такие как WPScan, помогают легче оставаться впереди потенциальных угроз.
Source:
https://www.freecodecamp.org/news/how-to-use-wpscan-to-keep-your-wordpress-site-secure/