Защита сайта wordpress

Содержание:

Как удалить вредоносный код и вылечить сайт. Способ 2

Если у вас есть SSH доступ к серверу, вы можете использовать эти команды, чтобы проверить, какие файлы изменялись за последние X дней. Этот запрос покажет все измененные файлы в запрошенном интервале времени во всех папках и подпапках сайта (чтобы узнать, какие это папки, наберите в SSH терминале):

find . -mtime -2 -ls

Если вы хотите найти измененные файлы в определенной папке, используйте этот запрос:

find /путь/к/вашему/сайту/папка/ -mtime -2 -ls

Замените  на путь к вашей папке.

Если вы хотите изменить интервал до 10 дней, сделайте такой запрос:

find /путь/к/вашему/сайту/папка/ -mtime -10 -ls

Не забудьте заменить на путь к нужной папке.

Сделайте такой поиск, начните с 2-х дней и постепенно увеличивайте количество дней, пока не увидите изменения в файлах. Не забывайте, что обновления ПО — тоже изменения в файлах. После того, как вы нашли зараженный файл, его можно вылечить или заменить на оригинальный. Это очень простой и эффективный способ найти зараженные файлы, который используется всеми сервисами по лечению сайтов.

Еще одна полезная команда в SSH — «grep». Чтобы найти файл, который содержит какое-нибудь сочетание, например, «base64», которое часто используется хакерами, используйте эту команду:

grep -ril base64 *

Эта команда покажет список файлов, в которых встречается сочетание .Вы можете убрать «l» из запроса, чтобы увидеть содержание файлов, в которых встречается это сочетание.

grep -ri base64 *

Хакеры часто используют эти функции:

  • base64
  • str_rot13
  • gzuncompress
  • eval
  • exec
  • create_function

Эти функции могут использоваться и в оригинальных файлах тем или плагинов, но в большинстве случаев это хак. Перед тем, как что-нибудь удалить, убедитесь, что вы не удаляете здоровый код или файл.

Более аккуратный запрос может быть таким:

grep —include=*.php -rn . -e «base64_decode»

Результат этого запроса показывает номера строк, в которых содержится сочетание «base64_decode», в тех файлах, которые заканчиваются на .php.

Попробуйте использовать команду в комбинации с командой . Вам нужно найти файлы, которые были недавно изменены, выяснить, что было изменено, и если вы нашли какое-то повторяющееся сочетание, например, «base64_decode» или «hacker was here», с помощью команды grep попробуйте найти это сочетание в других файлах:

grep -irl «hacker was here» *

Эта команда покажет все файлы, в которых встречается фраза .

Хакеры часто внедряют код в папку . Этот код поможет вам найти все файлы в папке uploads, которые не являются изображениями. Результат сохраняется в файле “uploads-not-pictures.log” в текущей папке.

find public_html/wp-content/uploads/ -type f -not -name «*.jpg» -not -name «*.png» -not -name «*.gif» -not -name «*.jpeg» >uploads-not-pictures.log

Использование запросов find и grep поможет вам очистить сайт от заразы.

Как восстановить Вордпресс сайт, если нет доступа к админке

1. Сбросьте пароль администратора в phpMyAdmin

Если вы не можете войти в консоль Вордпресс, то скорее всего хакеры сменили пароль вашего аккаунта администратора. В этом случае вы можете изменить пароль администратора на новый в базе данных.

Как изменить пароль пользователя в базе данных

Еще один способ — изменить е-мейл администратора, вернуться на страницу авторизации (по умолчанию /wp-login.php) и запросить новый пароль через функцию Забыли пароль? Этот способ работает только если у вас есть доступ к странице авторизации.

Как изменить е-мейл пользователя в базе данных

Кроме редактирования базы данных, есть еще несколько способов зайти в админку с помощью скриптов, которые нужно добавить в файл functions.php или в папку /mu-plugins/:

6 Способов зайти в админку Вордпресс

2. Найдите взломанные файлы

Даже если вы не можете зайти в консоль Вордпресс, процесс восстановления сайта такой же, как в предыдущей части. Вам нужно найти инфицированные файлы и заменить их чистыми версиями.

Чтобы найти поврежденные файлы, используйте эти сервисы:

  • Unmask Parasites — довольно простой сервис для проверки сайта. Первый шаг, чтобы определить, был ли сайт взломан.
  • Sucuri Site Check — хороший сервис для поиска заражений на сайте. Показывает, внесен ли сайт в списки вредоносных сайтов. На данный момент 9 списков.
  • Norton Safe Web – сканер сайта от Norton.
  • Quttera – сканирует сайт на наличие вредоносного ПО.
  • 2ip — проверяет на вирусы и включение в черные списки Яндекса и Гугла.
  • VirusTotal – крутейший сервис для сканирования сайтов, использует более 50 разных сканеров — Касперского, Dr.Web, ESET, Yandex Safebrowsing и других. Можно просканировать сайт, IP адрес или файл.
  • Web Inspector – еще один хороший сервис, проверяет сайт на наличие червей, троянов, бэкдоров, вирусов, фишинга, вредоносного и подозрительного ПО и так далее. В течение пары минут генерирует довольно детальный отчет.
  • Malware Removal – сканирует сайт на наличие вредоносного ПО, вирусов, внедренных скриптов и так далее.
  • Scan My Server – сканирует сайт на вредоносный софт, SQL внедрения, XSS и так далее. Для использования требуется бесплатная регистрация. Довольно детальные отчеты приходят на е-мейл раз в неделю.

Все эти сканеры сканируют немного по-разному, поэтому используйте несколько или все, чтобы ничего не пропустить.

Полезную информацию вы можете найти в Консоли Вебмастера Гугл, Яндекс, Бинг и других, где зарегистрирован ваш сайт. Еще один источник информации — логи событий на сервере.

3. Замените взломанные файлы

После того, как вы нашли инфицированные файлы, замените их чистыми или удалите. Для этого вам понадобится доступ к файлам по FTP или через хостинг.

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

  • Вы нашли вредоносный код в файле Вордпресс, темы или плагина — удалите весь файл, и замените на оригинальный с официальной страницы.
  • Вы нашли вредоносный код в файле, который вы или кто-то создал вручную — удалите вредоносный код и сохраните файл.
  • Если вы нашли файл бэкдора, в котором находится только вредоносный скрипт — удалите весь файл.
  • Если ничего не помогло — обратитесь к профессионалам в Virusdie.

4. Просканируйте сайт еще раз

После удаления вредоносных файлов просканируйте сайт еще раз, чтобы убедиться, что сайт полностью вылечен.

Поговорите с техподдержкой хостинга, скажите, что сайт вылечен, возможно, они найдут что-то на своей стороне или на вашем сайте.

5. Последние действия

После лечения сайта пройдите те же шаги, что в предыдущем разделе

  • Проверьте пользователей сайта
  • Замените ключи и соли
  • Замените пароли еще раз
  • Укрепите безопасность сайта

Заключение

Это общий план, более подробную информацию читайте здесь:

  • Как вылечить от вирусов Вордпресс сайт
  • Как удалить бэкдор с Вордпресс сайта
  • 2 Примера взлома и лечения сайта
  • Как найти следы взлома в логах сервера
  • Как удалить сайт из черных списков
  • 7 Лучших плагинов безопасности

Если вы все сделали правильно, сайт должен опять заработать. Следите за безопасностью сайта, используйте плагины безопасности.

Надеюсь, статья была полезна. Оставляйте комментарии.

Обновляйте постоянно ядро WordPress

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

define( ‘WP_AUTO_UPDATE_CORE’, true );

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

remove_action(‘wp_head’, ‘wp_generator’);

Добавляем этот небольшой код в function.php.

Найдем слабые места в защите вордпресс блога с помощью плагинов:

AntiVirus for WordPress, скачать https://wordpress.org/extend/plugins/antivirus/ 
Устанавливаем и проверяем шаблон на наличие вирусов. Жмем «Scan the templates now». В результате чистые файлы будут показаны зеленым цветом, а желтым и красным подозрительные.

TAC (Theme Authenticity Checker) – проверяем темы wp на наличие вредоносного кода перед установкой. Скачать https://wordpress.org/extend/plugins/tac/

WP Security Scan, скачать https://wordpress.org/extend/plugins/wp-security-scan/
Настройка плагина. Во вкладке «Scanner» смотрим правильность прав доступа. Для папок права доступа — 755, папки  cache и uploads — 777, для файлов – 644, wp-config.php — 644).
Еще этот плагин может переименовать префикс wp_ без вашего входа в базу данных. Для этого идем на вкладку «Database» и вписываем собственный префикс. Но проверить  префикс лучше и в БД.

После того, как вы отсканируете  и исправите все слабые места, то можете удалить сам плагин.
Если возникнет проблема с входом в админку, то удалите виновный плагин.

Совет первый – установка плагинов для защиты WordPress сайта.

Плагин WordPress Anti-XSS attack — предупреждение и защита от XSS-атак wp блога. Это означает защиту от хакерских запросов с адресной строки.
Скачать русскую версию Anti-XSS attack https://mywordpress.ru/plugins/anti-xss-attack/
Установка стандартная:  залейте файл anti-xss-attack.php в папку wp-content/plugins/, затем активировать и все. Он будет работать.
На заметку по работе плагина: если в браузере пользователя отключена передача referer, то все действия пользователя вордпресс будет воспринимать как XSS-атаку.

Плагин Login LockDown (Limit Login Attempts) – заблокирует ботов, которые попытаются совершить взлом адинки вордпресс.  Выглядит это так: бот пытается попасть в административную часть блога с помощью подборов пароля. Плагин можно настроить на конкретный интервал времени таких попыток с одного ip. При его превышении бот будет заблокирован.  Настраивается и время блокировки, и отмена ее.
Скачать Login LockDown https://wordpress.org/extend/plugins/login-lockdown/ 
Устанавливаем как обычно. Залили  на сервер, активировали и настроили время. Можете оставить и по умолчанию.

Stealth Login – меняет адрес страницы авторизации, которая по умолчанию имеет адрес   WP-login.php. Можно придумать любой адрес типа «сайт/Любой_логин». Также он может запретить вход на сайт по адресу WP-login.php – для этого отметьте  «Stealth Mode».

Secure WordPress
Удаляет информацию об ошибке входа.
Добавляет index.php в папки плагинов и тем. Не даст злоумышленнику посмотреть список установленных плагинов. Такие файлы, как index.php и index.html лучше вставить во все папки. Иначе может произойти вот что: читайте ниже.Закрывает возможность хакеру просмотреть какие плагины установлены на блоге с помощью добавления пустого файла index.html.
При запросе https://сайт.ru/index.html  можно обнаружить, что ваш блог все-таки поражен вредоносным кодом. Например, я обнаружила множество страниц не со своим контентом из несуществующей директории своего домена, типа https://сайт.ру/drivers/. Ответ сервера при этом код 200.

Chap Secure Login защищает процесс авторизации путем шифрования. Это полезно в случае, когда хакерская программа отслеживает и перехватывает вашие данные.

Скачать Chap Secure Login https://wordpress.org/extend/plugins/chap-secure-login/

Еще подборка плагинов для усиления безопасности wp блога:belavir (php MD5) — с его помощью сразу увидите в каких файлах произведены изменения.
bs-wp-noerrors
WordPress File Monitor – сканирование и отслеживание измененных файлов.

Полезно использовать защиту от спама, спамер может рассылать невидимые глазу ссылки:
WP-SpamFree на русском.

Второй совет для защиты вордпресс блога.

Зачищаем код, убирая или изменяя мета гег generator в header.php темы.

<meta name=”generator” content=”WordPress <?php bloginfo (’version’); ?>” />
Вместо вордпресс можно написать свое придуманное название
<meta name=»generator» content=айлялялюлю7 ?/>
Не получилось, то в wp-includes/general-template.php комментируем содержимое функции (то, что находится внутри функции):
function get_the_generator( $type ) {/**
……. */
}
Или закрываем мета тэг  генератор. Для этого в файле function.php установленной темы добавьте вверху после  <?php следующую строку:
remove_action(‘wp_head’,’wp_generator’);

Не переусердствуйте в самозащите.  Например, файлы .htaccess и search.php служат для настройки конфигурации веб-сервера и php. Хостер их тоже защищает, закрыв к ним доступ.  Так что следующий совет для продвинутых программистов и необязателен для остальных:

В файле поиска  search.php замените строку
<!—?php echo $_SERVER ; ?—>

на
<!—?php bloginfo (’home’); ?—>
Таким образом, вы наложите запрет для взломщиков  рыться на вашем сервере.

Общие рекомендации по совершенствованию безопасности блога:

Сложный длинный пароль не менее 12 символов, пароль из одних цифр подбирается на раз-два;
Разные логины и пароли для хостинга, базы данных, входа на сайт, доступ по ftp, электронной почты, статистики и прочих сервисов;
Установите дополнительно пароль на папку wp-admin – такую возможность предоставляет хостер.

Белый экран в wordpress

Однажды может и такое случиться, что вместо админки будет белый лист. И вы никуда не можете попасть. В чем причина, вчера все работало, а сегодня белый лист на сайте? Ищите, гуглите для вашего случая. Но несколько нужных советов из того, что я нашла набросаю здесь.

Для отладки хорошо вывести ошибки для обозрения.

2. В файл wp-config.php добавляем строки:

// Включить рапортирование ошибок для WP
define(‘WP_DEBUG’, 1);
// НЕ показывать ошибки в браузере
define(‘WP_DEBUG_DISPLAY’, 0);
// Сказать WP чтобы тот создал файл
define(‘WP_DEBUG_LOG’, 1);

Затем логи просмотрите в /wp-content/debug.log

3. Еще способ включить показ ошибок — сделать следующую запись в .htaccess

php_value error_reporting E_ALL

5. Быстро определить, есть ли проблема с плагинами или нет можно, переименовав на сервере папку с плагинами wp-content/plugins

    • Не обязательно, но можно изменить данные администратора через phpmyadmin в таблице wp-users, здесь же мы и восстанавливаем доступ к сайту в случае взлома. Прописываем количество попыток авторизации.
    • Полезно удалять не нужные файлы сразу после установки. В них имеется служебная информация, как версия движка и т.д.. Удалите из корня сайта файлы readme.html и license.txt.  Не оставляйте возможности повторно установить блог – удалите файл install.php.
    • Эти способы скроют лишь версию cms, т.к. используемый движок можно легко вычислить по стандартным папкам (например, наберите в поисковой строке https://сайт.ру/wp-admin или https://сайт.ру/wp-login.php), по пути к файлам, скриптам, листу стилей, картинкам – в адресах увидите «wp-content», в сервисах автоматического определения движков сайта типа https://2ip.ru/cms/ тоже легко определите cms. Если взломщик не определит версию вордпресс, то жизнь его усложнится при поиске слабых мест сайта. А для того, чтобы скрыть сам тип движка, как видите, нужно повозиться.
    • Вбейте в адресную строку https://ваш_сайт.ру /wp-content/ и https://ваш_сайт.ру /wp-content/plugins/. Чистый лист – хорошо, но если вы увидели содержимое, то срочно запретите доступ к каталогам в файле htaccess.
    • Делайте бекап блога, установив плагин WordPress Database Backup. Скачать русифицированный https://mywordpress.ru/plugins/wordpress-database-backup/
    • Запрещение регистрации пользователей на сайте тоже укрепит безопасность интернет проекта.
    • Простой и быстрый способ защиты блога от взлома – настройки пользователя, вы там как admin и есть возможность добавления ника. Воспользуйтесь этим. Сделайте себе ник и отметьте  его «отображать как». Плюс и пароль сделайте сложным. Хакер в этом случае будет подбирать пару ник-пароль вместо логин-пароль.
    • Удаление с темы вордпресс ссылки на административный вход тоже усложнит жизнь хакерам.

А если wp блог уже взломали, то читайте инструкцию, как восстановить доступ к админке.

Подытожим

  • Следите за новостями о WordPress и обзорами о найденных уязвимостях.
  • Не используйте в качестве логина слово admin и не дайте злоумышленникам узнать логин администратора.
  • Смените стандартный адрес входа в админпанель.
  • Разрешите вход в панель управления только с определенных IP-адресов.
  • Используйте взломостойкий пароль, который не смогут подобрать путем простого перебора.
  • Регулярно обновляйте сам движок и все установленные плагины.
  • Удалите неиспользуемые плагины.
  • Не устанавливайте бесплатные темы из непроверенных источников.
  • Делайте бекапы как базы данных, так и файлов.
  • Запретите редактирование важных системных файлов через панель администратора.
  • Установите двухфакторную авторизацию.
  • Проверяйте свой компьютер на наличие вирусов.
  • Используйте защищенный протокол HTTPS.
  • Измените стандартный префикс базы данных.

Как хакеры взламывают сайты

4 основных способа, которыми хакеры взламывают сайты:

  • Слабые пароли
  • Устаревшее ПО
  • Небезопасные темы и плагины
  • Уязвимости в ПО хостинга

Существует способов, но эти способы самые распространенные.

Уязвимости Вордпресс

Подбор логина и пароля

По умолчанию в Вордпресс нет ограничений на количество попыток ввести логин и пароль. Если вы оставите как есть, хакер может пробовать подбирать правильную комбинацию неограниченное количество раз. Это называется brute force attack, атака грубой силой или атака методом перебора паролей.

Вы можете ограничить количество попыток авторизации с помощью плагина, например Login LockDown. Еще один способ — перенесите страницу авторизации на новый адрес, например .

  • Как изменить имя пользователя Вордпресс
  • 2 Способа изменить страницу входа в админку Вордпресс
  • Как установить пароль на wp-login.php (wp-admin)

Устаревшая версия ПО

Описания уязвимостей устаревших версий Вордпресс, плагинов и тем находятся в Интернете. У ботов есть эти описания. Когда они находят сайт с устаревшей версией ПО, они взламывают этот сайт по уже имеющемуся алгоритму.

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

  • Почему у вас должна быть последняя версия Вордпресс
  • Ручное и автоматическое обновление Вордпресс
  • Как скрыть версию Вордпресс, плагинов и тем

Бэкдоры

Хакер сохраняет файл со специальным скриптом на сервере, который позволяет ему заходить на сайт в любое время, при этом хакер не пользуется стандартной страницей входа, а заходит на сайт через созданный им бэкдор.

Чтобы замаскировать созданный файл, хакеры называют его так, чтобы он выглядел как часть ядра Вордпресс, например, users-wp.php, php5.php, sunrise.php или что-нибудь подобное.

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

Если вы открываете фронтэнд или бэкэнд сайта, и видите сообщение в браузере, что посещение этого сайта может быть небезопасно, то ваш сайт может быть взломан.

Если вы видите такое сообщение, то ваш сайт мог быть взломан.

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

Еще один признак — е-мейлы, которые вы отправляете с сервера, возвращаются обратно с SMTP ошибкой 550. От некоторых серверов, которым вы отправляли е-мейл может вернуться более подробное описание проблемы. Например, ссылка на сайты, которые поместили ваш сайт или ваш IP в список сайтов, содержащих вредоносное ПО.

Как найти и удалить бэкдоры на Вордпресс сайте

Шаг 12 – Изменение стандартных префиксов базы данных WordPress для предотвращения внедрения SQL-кода

База данных WordPress содержит и хранит в себе всю ключевую информацию необходимую для работы вашего сайта. В результате, она становится еще одной целью хакеров и спамеров, которые выполняют автоматизированный код для проведения внедрения SQL-кода. Во время установки WordPress, многие люди не утруждают себя изменением стандартного префикса базы данных wp_. Согласно данным WordFence, 1 из 5 взломов WordPress связан с внедрением SQL-кода. Так как wp_ это одно из стандартных значений, сперва хакеры начинают именно с него. На данном этапе мы кратко рассмотрим, как защитить сайт на WordPress от подобного рода атак.

Изменение таблицы префиксов для существующего сайта на WordPress

ВАЖНО! Главное это безопасность! Перед началом, удостоверьтесь, что сделали бэкап вашей базы данных MySQL

Часть первая — Изменение префикса в wp-config.php

Найдите ваш файл wp-config.php используя FTP клиент или Файловый менеджер найдите строку со значением $table_prefix.

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

Пока вы находитесь в вашем файле wp-config.php, также найдите имя вашей базы данных, чтобы знать какую именно изменить. Поищите в секции define(‘DB_NAME’.

Часть вторая – Обновление всех таблиц базы данных

Сейчас вам нужно обновить все записи в вашей базе данных. Это может быть сделано используя phpMyAdmin.

Найдите базу данных определенную в первой части и войдите в нее.

По умолчанию, установка WordPress имеет 12 таблиц и каждая должна быть обновлена. Однако это можно сделать быстрее, используя раздел SQL в phpMyAdmin.

Изменять каждую таблицу вручную займет огромное количество времени, поэтому мы используем SQL запросы, чтобы ускорить процесс. Используйте следующий синтаксис для обновления всех таблиц в вашей базе данных:

RENAME table `wp_commentmeta` TO `wp_1secure1_commentmeta`;
RENAME table `wp_comments` TO `wp_1secure1_comments`;
RENAME table `wp_links` TO `wp_1secure1_links`;
RENAME table `wp_options` TO `wp_1secure1_options`;
RENAME table `wp_postmeta` TO `wp_1secure1_postmeta`;
RENAME table `wp_posts` TO `wp_1secure1_posts`;
RENAME table `wp_terms` TO `wp_1secure1_terms`;
RENAME table `wp_termmeta` TO `wp_1secure1_termmeta`;
RENAME table `wp_term_relationships` TO `wp_1secure1_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_1secure1_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_1secure1_usermeta`;
RENAME table `wp_users` TO `wp_1secure1_users`;

Некоторые шаблоны WordPress или плагины могут добавлять дополнительные таблицы в базу данных. В случае если у вас больше 12 таблиц в базе данных MySQL, добавьте оставшиеся из них вручную в запрос SQL и выполните его.

Часть третья – Проверка опций и пользовательских таблиц метаданных

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

Для таблицы опций, вы должны использовать:

SELECT * FROM `wp_1secure1_options` WHERE `option_name` LIKE `%wp_%`

Для таблицы метаданных, вы должны использовать:

SELECT * FROM `wp_1secure1_usermeta` WHERE `meta_key` LIKE `%wp_%`

Когда вы получите результаты запроса, просто обновите все значения с wp_ на ваш новый настроенный префикс. В таблице метаданных пользователя вам нужно отредактировать поле meta_key, тогда как для опций, необходимо изменить значение option_name.

Обеспечение безопасности новых установок WordPress

Если вы планируете устанавливать новые сайты WordPress, вам нет необходимости вновь выполнять данный процесс. Вы легко сможете поменять префиксы таблиц WordPress в процессе установки:

Поздравляем! Вы успешно улучшили безопасность вашей базы данных от внедрения SQL-кода.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector