Хакнат сайт на WordPress: почистване и защита

Признаци за компрометиран сайт на WordPress, почистване стъпка по стъпка и настройки, които предотвратяват повторна атака.

OfSec 2 мин. четене

WordPress е най-разпространената платформа за сайтове и онлайн магазини, затова е и най-честата цел на автоматизирани атаки. Повечето пробиви се дължат на необновени плъгини, пиратски теми и слаби пароли, а не на самия WordPress.

Признаци

  • сайтът пренасочва посетителите към реклами, казина или фалшиви магазини, често само от мобилни устройства или при влизане от Google;
  • Google показва предупреждение, че сайтът може да е хакнат, или Search Console съобщава за проблеми със сигурността;
  • в администрацията има потребители, които не сте създали;
  • хостинг доставчикът е спрял сайта заради зловреден код или изпращане на спам.

Преди почистването

Направете пълно копие на файловете и базата данни в текущото им състояние. То е нужно, за да се установи как е станало проникването. Ако е възможно, включете режим на поддръжка, за да не се заразяват посетителите.

Почистване стъпка по стъпка

  1. Сменете всички пароли: администраторите в WordPress, хостинг панела, базата данни, FTP/SFTP и пощата на администратора.
  2. Изтрийте непознатите потребители с роля „Администратор“.
  3. Проверете ядрото и плъгините с WP-CLI. Командите wp core verify-checksums и wp plugin verify-checksums --all показват файловете, които се различават от официалните.
  4. Преинсталирайте WordPress, темата и плъгините от официални източници. Премахнете пиратските („nulled“) теми и плъгини, които са един от най-честите източници на зловреден код.
  5. Потърсете PHP файлове в wp-content/uploads, където такива не трябва да има, и проверете .htaccess и wp-config.php за добавен код.
  6. Проверете базата данни: настройките siteurl и home, както и съдържанието на публикациите за вмъкнати скриптове.
  7. Генерирайте нови ключове за сесиите с wp config shuffle-salts, за да бъдат изведени всички влезли потребители.
  8. Обновете всички компоненти и заявете повторна проверка в Google Search Console.

Защита след почистването

  • многофакторна автентикация за всички администратори;
  • ред define('DISALLOW_FILE_EDIT', true); в wp-config.php, който спира редактирането на файлове от администрацията;
  • автоматични обновления и премахване на неизползваните плъгини и теми;
  • ограничаване на опитите за вход и защитна стена за уеб приложения (WAF);
  • ежедневни резервни копия, които се пазят извън хостинга.

Повторно заразяване

Ако сайтът се заразява отново след почистване, причината обикновено е пропусната задна врата (backdoor) или компрометиран акаунт в хостинга. В този случай е нужен преглед на целия сървър, а не само на сайта.

СайтовеWordPress