Як Host-tracker допоміг оперативно виявляти шкідливий код

    Наш сервіс моніторингу сайтів, крім доступності серверів, дозволяє також моніторити контент сайту . Наприклад, якщо необхідно отримувати повідомлення про те, що на сайті з'явилося певне ключове слова, або навпаки за його відсутності.
Сьогодні хочемо розповісти, як за допомогою Host-tracker наш клієнт боровся з виявленням шкідливого коду, щоб не потрапляти в бан Яндекса.
 image
 
Виклад від імені клієнта:
 
 
Сайт потрапив в бан Яндекса
В один прекрасний день при спробі зайти на сайт mysite ***. Com з'явилося попередження про те, що сайт може загрожувати безпеці комп'ютера.
А також прийшов лист від Яндекс: На сайті виявлений потенційно небезпечний код:
 На сторінках вашого сайту mysite ***. com виявлений код, який може бути небезпечний для відвідувачів. Виконання цього коду при відвідуванні сайту може привести до небажаних для користувача наслідків: зараження комп'ютера шкідливими програмами, несанкціонованого використання його ресурсів, псуванні або крадіжці особистих даних.
На даний момент сайт виводиться в результатах пошуку з позначкою «Цей сайт може загрожувати безпеці вашого комп'ютера».
Яндекс ніяк не оцінює зміст сайту і попереджає користувачів про те, що сайт міг бути заражений без відома його власників.
Будь ласка, видаліть шкідливий код. Якщо при новій перевірці код не буде виявлений, позначка в результатах пошуку буде знята. Для того щоб зняти позначку якнайшвидше, відразу після видалення коду ви можете запросити повторну перевірку сайту.

 
В панелі Яндекс вебмастер було повідомлення:
 Результат вибіркової перевірки
Дата останньої перевірки 19.08.2013
Сторінка mysite ***. Html
Вердикт Поведінковий аналіз.

 
 
Виявлення шкідливого коду
Сайт природно відразу ж був перевірений різними онлайн антивірусами, але ніяких загроз виявлено не було. Після цього я подумав, що це якесь непорозуміння і написав листа на підтримку Яндекса, з проханням прояснити ситуацію, вказавши що онлайн антивіруси не знайшли жодних загроз. Вони відповіли, що на сайті заражений один з файлів — common.js. Ще я звернув увагу, що з головної сторінки з'явилися посилання на якісь «ліві» сайти. Припускаю, якась біржа посилань знайшла непоганий метод продавати посилання нічого не підозрюють власників. Відкривши файл, я дійсно виявив у ньому шкідливий код:
 
<iframe name="ifn2i8N" src="http://*** " style="width: 0px; height: 0px;"/>...

 
 
Боротьба з шкідливим кодом
Зрадівши такому легкому вирішення проблеми, я взяв файл зі старого бекапу, залив на сервер і відписав Яндексу, що все виправив, можна прибирати з бана.
Яндекс дійсно прибрав сайт з бана, і в панелі вебмастера було вказано, що все ОК. Але пройшло пару днів і картина повторилася. Я відразу перевірив файл, який був заражений раніше, переконався, що шкідливий код там, і замінив файлом з бекапа.
Після одразу написав хостеру, що у мене така проблема. Вони відповіли, що проблема тільки в мене, а у них все гаразд, порадили поміняти паролі на адмін панель, ftp і до бази. Я це все виконав, підклав чистий файл з бекапа, але пройшло буквально пару годин і файл знову заражений.
 
Вирішив також перевірити сусідів по IP. Навмання відкрив 5 сайтів, і ні скільки не здивувався, що у них з головної присутні теж зовнішні посилання, з використанням iframe. Природно відразу написав хостеру про це, і отримав відповідь, що все ОК, заражене не більше 5% клієнтських акаунтів і проблем нібито немає. Відповів їм, що за нісенітниця і навів аргументи про існування проблеми, тоді вони дали вже більше розгорнуту відповідь з пропозицією відновити бекап. Також рекомендували поставити доступ на файли 444 і на каталоги 555, що я і зробив. Але пройшов буквально день, доступ повернутий на 644 і 755 відповідно і у файлі шкідливий код.
 
Знайшов на форумах опис такої ж проблеми. Народ описував ті ж симптоми й ті ж методи боротьби. Мало того один з постраждалих запропонував хостеру поміняти на пару днів все його паролі, щоб він їх не знав, і переконатися хостеру, що шкідливий код з'являється. Одним словом хостер визнав, що є проблема на їхньому боці і вони намагаються її вирішити.
 
Строків вирішення проблеми не було озвучено, і сайт постійно потрапляв в бан Яндекса і відповідно за цей час вже втратив позиції у видачі.
 
 
Пошук по контенту
До конкретних файлів, які знав, що заражаються мало не кожні пару годин використовував функцію Host-tracker — пошук по контенту . Вибрав Http перевірку, прописав URL: шлях до файлу mysite *** / common.js, який постійно заражався, прописав моніторити за ключовим словом «iframe», яке було присутнє у ворожому коді, вибрав: всі ключові слова повинні бути відсутніми на перевіреній сторінці . Тепер, коли ворожий код з'являвся, мені приходило SMS і повідомлення на e-mail буквально через хвилину (вибрав інтервал опитування 1 хв).
 
Спочатку доводилося самостійно оперативно виправляти, щоб Яндекс не Банив. Потім звернув увагу, що приходить повідомлення, що common.js містить шкідливий код, і буквально через пару хвилин файли вже без шкідливого коду. Хостер нарешті став самостійно лікувати файли. Це тривало ще пару днів, поки повідомлення про зараження не перестали приходити.
 
 
Перевірка контрольної суми
Для себе додатково реалізував простий метод контролю зміни файлів *. Js:
Файли повинні бути всякого ворожого коду. Зберігаємо, наприклад, вранці контрольну суму файлів з потрібним розширенням. Js,. Php і т.д.
 
find . -type f -name "*.js" -exec md5sum {} \; > file-js1.txt 

і повторюємо процедуру ввечері
 
find . -type f -name "*.js" -exec md5sum {} \; > file-js2.txt 

потім звіряю два цих файлу на розбіжність у контрольних сумах:
 
diff -u file-js1.txt file-js2.txt. 

Якщо щось помінялося, перевіряю причину зміни файлів.
 
Після це випадку я знайшов кілька автоматизованих рішень, які дозволяють відслідковувати зміни за певними типами файлів, і користуюся ними.
 
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.