Задзвонив телефон, і моє серце тьохнуло. Я підняв слухавку і почув схвильований голос замовниці, який пояснює, що її клієнти дзвонять і скаржаться, що її бізнес-сайт на WordPress був зламаний. Потім були скарги на пошкодження комп'ютера клієнта через вірус та твердження про витік фото архіву. Я зрозумів, що маємо катастрофу. Кілька днів і багато додаткових годин ми розгребли проблеми, що торкнулися більше 30 WordPress сайтів, які ми обслуговуємо.
Через це випробування вогнем я дізнався більше про безпеку WordPress ніж будь-коли сподівався довідатися. Сьогодні в цьому посібнику ми розглянемо процес, якому я рекомендую слідувати для відновлення після атаки на WordPress, а потім розглянемо кроки, які потрібно зробити, щоб запобігти атакам.
Шлях до відновлення
Залежно від масштабу та охоплення атаки, розуміння того, звідки почати, може бути найскладнішою частиною. І хоча окремі деталі можуть змінюватися, нижче я наведу загальну принципову схему, яка проведе вас через більшість проблем.
- Резервна копія навіть якщо сайт інфікований, важливо зробити резервну копію на випадок, якщо все стане ще гірше. Зробіть повний бекапвключаючи всю вашу базу даних (це означає всі таблиці, які не належать ядру WordPress, а додані плагінами). Один з варіантів - завантажити всі файли та експортувати SQL за допомогою PhpMyAdmin. Інше гарне (і швидке) рішення BackWPup. Не пропустіть цей крок.
- Змініть пароль та ключі доступу - Перед тим, як почати чистку, змініть пароль адміністратора WordPress та паролі до бази даних, а також скиньте секретні ключі WordPress у файлі WP-config.php щоб переконатися, що ніхто не отримає несанкціонованого доступу.
- Запустіть сканери - Наш список пошкоджених сайтів хостився на RackSpace Cloud Sites. Відповідно, я міг використовувати плагін Cloud Sites WP Scanner щоб знайти пошкоджені файли у WordPress. Інший варіант - Сканер шкідливих програм Sucuri. Сканер заощадить час та вкаже вам на всі помітні пошкоджені зони. Сканери зокрема допоможуть зі знаходженням пошкоджень на рівні бази даних. Але не покладайтеся на них повністю. Після сканування перейдіть до наступного кроку.
- Перевстановлення WordPress — видалити всі файли у вашій директорії WordPress, крім папок WP-config.php и WP-зміст. Потім скачайте свіжу копію WordPress та підвантажте її до себе. Відредагуйте файл the wp-config-sample.php, замінюючи стандартні значення на актуальні значення бази даних із поточного файлу WP-config.php. Потім видаліть поточний файл і замініть його. Якщо ви точно знаєте, що шукаєте, і можете виявити пошкодження у файлі, ви можете залишити файл незайманим - але якщо ви не впевнені, краще перестрахуватися.
- Перевірте папку контенту -перевірте папку WP-зміст щодо чогось підозрілого. Тека cache може бути головним підозрюваним, навіть якщо ви використовуєте плагін, що кешує. Перегляньте папку на предмет контенту, якого там бути не повинно. Якщо ви не впевнені – видаляйте. Ви завжди зможете відновити потрібне із вашої резервної копії.
- Перевірте та перевстановіть існуючі плагіни - Маючи перевірені файли ядра WordPress, наступний крок - перевірка плагінів. Визначте плагіни, які ви зараз не використовуєте, та повністю їх видаліть. Потім по одному дезактивуйте, видаліть, а потім перевстановіть та активуйте всі активні плагіни. Цей процес може бути досить стомлюючим, особливо для сайтів із великою кількістю плагінів. Знову ж таки, якщо ви точно знаєте джерело проблем, це заощадить вам час на цьому етапі. Якщо ж ви не впевнені, не ризикуйте.
- Перевірка тем — видаліть усі додаткові теми, які ви не використовуєте, включаючи стандартні. Далі уважно перегляньте файли вашої теми, шукайте будь-які підозрілі рядки. PHP або посилання на наявність файли. Зазвичай вони знаходяться у файлах header.php и footer.php. Але оскільки атаки стають все витонченішими, ви можете знайти їх і в більш складних для ідентифікації місцях (наприклад, ваш файл functions.php).
- Перевірте Google's Webmaster Tools — останніми роками Google взяв на себе ініціативу перевірки та фільтрації сайтів, безпеку яких було порушено. Це сталося з кількома нашими сайтами раніше, але ми не помічали цього кілька тижнів (це погано, звісно). Якщо ви ще цього не зробили, зайдіть у Webmaster Tools та перевірте сайт на попередження. Якщо вони є, надішліть запит на повторну перевірку та видаліть попередження.
Це тривалий та болісний процес, але через це необхідно пройти. Неперевіреному пошкодженому сайту з часом буде ще гірше. Щоб дізнатися більше з цього питання, перегляньте FAQ Мій сайт зламали на WordPress Codex.
запобігання
Якщо ви відновилися після атаки або ще не були атаковані, найважливіше – сфокусуватися на превентивних заходах. Набагато простіше запобігти, ніж потім відновлюватися. Ось деякі кроки, які ви можете зробити:
- Регулярні бекапи — подбайте про метод регулярного резервного копіювання ваших файлів WordPress та бази даних. У вас має бути щонайменше тижневий бекап, в ідеалі — щоденний (хоча б бази даних). BackWPup - Відмінний варіант.
- Моніторинг змін файлів - Додатковий рівень захисту, який спрацював для нас - Додавання плагіна для відстеження змін файлів. На активному сайті це може бути проблемою. Але на сайті з невеликою активністю це чудовий інструмент. Монітор файлів WordPress - Кращий знайдений мною на даний момент плагін.
- Перевірка локальних машин — якщо ви або ваші клієнти використовують комп'ютер із Windows, дуже важливо робити перевірку на кожній машині з доступом у консоль WordPress або FTP. На жаль, це часто джерело проблем. Lifehacker пропонує список інструментівякі допоможуть вам.
- Перенесіть сайт на керований хостинг для WordPress - Коли я починав працювати з безпекою сайту, цей варіант був не життєздатний. Але зараз, коли у бізнесі є хлопці на кшталт WPEngine.com та Zippykid.com, це чудовий варіант. Вони надають автоматичні щоденні бекапи (і відновлення з них) і, у разі WPEngine, спеціалізуються на системній безпеці. Також рекомендую вам наш спеціалізований WordPress хостинг - Hostenko.
Ну от і все! У вас є історія злому чи питання про вашу поточну ситуацію? Напишіть нам у коментарях.
Коментарі до запису: 5
Привіт
Дякую за статтю. Нещодавно мав проблеми подібного типу. Google «забанив» 2 мої сайти як джерело вірусів. Онлайн сканери нічого не виявили, але зазначили, що Google лається. Після повної перевірки локальної машини знайшов троян у архіві з торрента. Мабуть, він і спер паролі від фтп. Вовтузиться з лікуванням не став. В результаті, відкотив сайти на кілька днів тому, благо оновлювалися вони в цей момент рідко. Дякуємо техпідтримці Хостенко за допомогу.
Користуюсь «спеціалізованим хостингом Hostenko»
Коли визначався з хостинг-провайдером, на сайті Хостенко прочитав, що він стане другом-програмістом, якого час від часу можна звертатися.
Була проблема програмного характеру, звернувся, отримав відповідь:
"Доброго дня.
Ми не надаємо подібних консультацій. Спеціалістів з розробки чи налаштування WordPress ви можете знайти у мережі інтернет.»
Через деякий час, виникла серйозніша помилка (власне, чому пишу тут): на одному з сайтів не відкривається адмін панель, пише, «Вибачте, сторінку не знайдено. Спробуйте скористатися пошуком.
Звернувся знову до «друга програміста Хостенка», отримав відповідь: «Доброго дня.
Ознайомтеся з логами помилок у особистому кабінеті - управління: хостингом.
Запитання: навіщо писати, якщо обіцяної підтримки немає?
У мене є сайти на мирохості, там підтримка цілодобово і завжди дає рекомендації що робити.
Про роботу з Хостенком ДУЖЕ шкодую.
Дякую за статтю, відновив зараз сайт. До речі посилання на цю статтю мені скинув хостер)) Їм теж дякую.
Доброго дня!
Навіть не знаю, куди правильно написати, тема ваша схожа на мою проблему! Теж був вірус, успішно його видалив, але після цього при спробі зайти в адмін панель, тобіш: http://мой сайт/wp-login.php з'являється звичайне вікно де вводиться логін і пароль, я його вводжу і після цього відкривається вікно з написом 403 Forbidden. Пробував з дистрибутива залити новий файл логін.пхп, але користі немає!