Лікуємо сайт від вірусів на прикладі joomla
Часто можна побачити в мережі: сайт працював нормально і раптом почав працювати, як двірник з похмілля, хостер пише гнівні листи, пошукові системи обходять сайт стороною, а браузери блокують попередженням «Є інформація, що цей сайт атакує комп'ютери!»
Звідки ж беруться віруси?
На друге місце можна поставити злом CMS через уразливості, причому з захищеністю движків все в порядку, причина банальна - користувачі не встановлюють оновлення. Хтось боїться, що після поновлення «злетить» сайт, комусь просто лінь, або студія розробила сайт і передала його замовнику. Замовник доручив вести сайт одному зі співробітників, і той справно наповнює його по інструкції, а оновлення в його функції не входить ...
Так однією з можливих причин витоку «Панамського архіву» фахівці називають застарілі CMS - Drupal, що мав на момент злому не менше 25 вразливостей, і WordPress 4.1 з вразливим плагіном.
Шукаємо чорний хід
Можна зустріти рекомендації, що вилікувати сайт можна, якщо завантажити копію сайту собі на комп'ютер і перевірити звичайним антивірусом. На жаль, цей метод малоефективний.
По-перше, антивірус шукає шкідливий саме для ПК, скільки б ви не розміщували на своєму комп'ютері backdoor на php, заразити його (ПК) не вдасться.
По-друге, це може бути короткий шматочок коду (зазвичай зашифрований), який завантажує шкідливі скрипти з іншого ресурсу, а раз так, то шукати його у себе марно.
Можна піти різними шляхами.
Оскільки сайт містить кілька тисяч файлів, то пошук змінених або «зайвих» може зайняти досить багато часу, а результат невтішним - після лікування на ресурсі через деякий час знову з'являються «ліві» посилання.
Ставимо чисту Joomla (або іншу CMS), встановлюємо шаблон, всі компоненти, модулі, плагіни, що стояли на вашому сайті. Переносимо все зображення зі старого сайту, директорія images, попередньо перевіривши, щоб в ній не залишалося ніяких файлів, крім зображень, в тому числі і у внутрішніх директоріях. У разі якщо у вас встановлений компонент K2, то зображення будуть знаходитися в директорії media / k2 / items / cache /.
Увага! Не зайвим буде перевірити наявність зображень з явно рандомних назвою, як i2495mg.gif, зазвичай в таких зображеннях ховається виконуваний код.
Підключаємо стару базу. Шкідливі скрипти практично ніколи нічого не пишуть в базу, і навіть якщо це не так, то скрипти для доступу до бази зараз відсутні, також за назвою таблиць можна визначити, до чого вони відносяться, і вручну видалити зайві.
Підключаємо базу зі старого сайту
public $ db = 'base'; - замість base вказуємо своє ім'я бази;
public $ user = 'root'; - якщо ви не міняли ім'я користувача на локальному сервері, то залишаємо як є;
public $ password = ''; - на локальному сервері зазвичай стоїть порожній пароль, теж залишаємо.
Зберігаємо зміни, перевіряємо роботу сайту.
Приклад з пошуку «лівих» посилань
Перемикаємо в адміністративній панелі шаблон сайту на стандартний, посилання зникли, значить, код прописаний в варезних шаблоні, там і будемо шукати.
Відкриваємо Notepad ++, натискаємо Ctrl + F, переходимо у вкладку «Знайти в файлах», вказуємо директорію шаблону, а в рядку пошуку шукане, в даному випадку "sa_wqngs". Натискаємо «Знайти всі». Пошук знаходить два збіги.
Запускаємо новий пошук, тепер по «base64» і бачимо в коді шаблону:
Для чого оновлювати сайт?
У наш час «злісні хакери» не ламають сайти вручну, якщо, звичайно, це не великий портал або база конфіденційної інформації. Зломи давно поставлені на конвеєр. Для цього написані боти (скрипти), які перебирають в мережі всі сайти на популярних CMS, після чого намагаються застосувати бібліотеку вразливостей, вдале впровадження відправляється в звіт. Відповідно, як тільки з'являється нова уразливість, вона відразу ж додається в бібліотеку.
Начебто елементарно, все сучасні CMS прямо в адміністративній панелі повідомляють - вийшли нові версії і потрібно оновити, але дуже часто доводиться зустрічати сайти, які не оновлювалися більше року.
використовуємо сканер
Звичайно, вручну не завжди вдається знайти деякі «сюрпризи», так, можливо, ви вчасно не оновили систему або розширення, і на сайт було встановлено backdoor. Зараз існує безліч сканерів, один з них AI-Bolit. До того ж він безкоштовний для некомерційного використання.
Використовуємо його для «експериментального» сайту, де я шукав «зайві» посилання. Як ним користуватися, добре документовано на офіційному ресурсі, тому не буду дублювати інформацію.
За результатами експрес-перевірки я отримав повідомлення про двох вразливості. Перша повідомляла про застарілої версії движка, це, в загальному, я і так знав.
Друга говорила про уразливість в administrator / components / com_k2 / lib / elfinder / elFinder.class.php - AFU. elFinder. Можливо, причина в тому, що компонент теж застарів.
Про всяк випадок я скачав останню версію компонента з офіційного сайту і порівняв версію, на який скаржився сканер, зі свежескачанной. Для цього зручно використовувати плагін для Notepad ++, Compare. Як і передбачалося, відмінність полягала лише в версіях.
Сидимо в засідці
Цей матеріал, звичайно, не докладна інструкція по «лікуванню» сайтів, а лише невелике керівництво до дії. Дорогу здолає той, хто йде.
Звичайно, непогано поставити елементарні засоби захисту, але про це вже в наступній частині.
