Як перевірити сайт на віруси

У поточних реаліях інтернету досить частою і великою проблемою є зараження сайтів вірусами. Це відбувається, найчастіше, в дуже популярних системах і плагінах, так як через величезного попиту на їх використання в них більш ретельно вишукують уразливості. Навіть на даний момент існує маса не закритих проломів в безпеці у популярних CMS, наприклад, WordPress або OpenCart, а також Joomla !. Використовуючи уразливості на сайт можуть бути завантажені віруси, які в свою чергу записують важливу інформацію і передають її третім особам. Поведінка вірусів на сайті може бути не відображатися і помітити їх наявність часто буває досить складним завданням, через що для сайтів слід використовувати антивірусні утиліти, які можуть допомогти в знаходженні вже знайдених вірусів.

Як працюють антивірусні програми

Антивірусні утиліти працюють за принципом порівняння перевіряється коду файлів з існуючими даними вірусів в його базі сигнатур. Тобто антивірус може знайти тільки раніше виявлені віруси, через що абсолютно нові, які добре захищені і мають абсолютно нову, відмінну від інших структуру, можуть бути просто не знайдені, але такі ситуації виникають досить рідко.

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

Також слід звернути увагу на те, що стандартні антивірусні утиліти, що застосовуються для пошуку вірусів на ПК або інших пристроях, можуть не виявити використовувані на сайтах віруси. Варто розуміти, що існує кілька типів антивірусних утиліт, які проводять перевірку сайту, в деякому розумінні, з різних сторін. Певні антивірусні системи перевіряють виключно файли на сервері, через що шкідливий код в javascript файлах просто не буде знайдений. Також існують певні антивіруси, які проводять перевірку сайту, можна сказати, зовні, перевіряючи всі файли ресурси в рамках сайту. Такі антивіруси працюють онлайн і в них досить тільки вказати адресу сайту, але так як вони не мають доступу до файлів сайту, то перевіряють тільки наявність вірусів в рамках javascript файлів або ж інших завантажуються на сторінку, що не завжди вдається використати зараження.

Як правильно перевірити сайт на віруси

Якщо є підозра, що на сайті з'явилися віруси, то слід вжити кардинальних заходів для їх видалення та пошуку джерела зараження. Важливо пам'ятати, що видалення вірусів - це лише часткове вирішення, так як без знаходження джерела зараження повторна поява вірусів - питання часу.

Повністю описати процедуру перевірки зараження сайту і його очищення неможливо, так як будь-яка проблема з вірусами вкрай індивідуальна, в зв'язку з чим можна використовувати тільки приблизний і загальний алгоритм дій.

Для перевірки сайту на наявність шкідливого коду, а також його подальшою очищення, слід проводити комплекс перевірок та дій:

  1. Найпершою перевіркою сайту повинна бути перевірка файлів на сервері. Таку можливість надає наш вбудований антивірус, а також сторонні кошти за типом AI-bolit. Найчастіша проблема з вірусами виникає безпосередньо в файлах, які використовуються для роботи системи сайту, так як такі файли збирають дуже багато важливої інформації про відвідувачів, діях та інше.
  2. Другорядною перевіркою повинен виступати аналіз завантажуваних ресурсів сайту, з чим можуть також допомогти онлайн антивіруси. При переході на сайт слід відкрити інструменти розробника і у вкладці Network перевірити завантажуються ресурси на наявність сторонніх підключаються скриптів або файлів. Такі файли часто можуть збирати доступну інформацію про відвідувачів або виконувати множинні переадресації на шахрайські сервіси.
  3. Якщо віруси були знайдені, то слід перевірити дату зміни заражених файлів на сервері. Ця дата може приблизно вказати, коли останній раз редагувався заражений файл. Виходячи з цієї інформації можна приступати до подальших перевірок і пошуків проблеми.
  4. Варто створити резервну копію сайту на випадок, якщо щось піде не так. При видаленні вірусів цілком реальною проблемою може стати видалення важливого і потрібного коду, який був заміщений самим шкідливим кодом. Маючи резервну копію можна відновити працездатність сайту.
  5. Маючи приблизну дату останнього редагування файлів сайту потрібно зробити аналіз логів запитів до сайту. У таких балках варто особливу увагу звернути на POST запити до файлів, які не призначені для доступу ззовні. На цьому етапі слід також обмежити доступ до сайту по IP адресами, щоб під час очищення не відбулося повторне зараження. Виходячи з отриманої інформації в ході перевірок можна зробити висновок: як і коли був заражений сайт.

Що допоможе в перевірці

Аналіз можливих вразливостей

У будь-якій ситуації зараження сайту слід пам'ятати, що вірус не з'являється сам по собі і завжди є спосіб його завантаження в файли сайту. Для того, щоб приблизно розуміти ймовірні способи завантаження можна ознайомитися з публічними даними про уразливість популярних CMS.

Наприклад найбільш поширеними ресурсами з такою інформацією є:

  • WordPress Vulnerabilities- знайдені вразливості плагінів і тим WordPress.
  • WordFence- знайдені вразливості CMS WordPress і пов'язаних з ним продуктів.
  • CVE- знайдені вразливості популярних CMS і пов'язаних з ними продуктів.

Аналіз вірусного коду

Після знаходження вірусного файлу слід перевірити який саме код був відзначений як вірусний. Найчастіше подібний код може бути обфусцірован, що означає зашифрований і\або не читаємо. Зазвичай таке заплутування відбувається за допомогою шифрування коду, шляхом використання Base64 або інших способів кодування і декодування ділянок коду. Якщо було знайдено безліч символів, які ніяк не схожі на код сайту, то слід спробувати декодувати цю ділянку.

Якщо в коді файлу спостерігаються такі функції, як: eval, system, exec, base64_decode, urldecode і подібні до них, то обов'язково перевірте вхідні дані в цю функцію. У випадку з eval, system, exec

найкраще тимчасово замінити її на висновок, наприклад, print або var_dump, щоб зрозуміти який саме код повинен був бути використаним.

Найкраще в цьому можуть допомогти онлайн сервіси, наприклад, base64.ru- онлайн декодер зашифрованого в Base64 тексту.

Також рекомендуємо ознайомитися зі статтею щодо деобфускаціі коду - https://kaimi.io/2012/01/php-deobfuscate/.

Що не допоможе в перевірці

Використання онлайн сканерів

Онлайн сканери виконують одну корисну роль, вони допомагають знайти небезпечні вірусні JS скрипти або інші елементи вірусу в frontend'е сайту, тобто в тому, що надається користувачеві при відкритті сайту. Такі перевірки можуть допомогти знайти лише наслідки зараження, але ніяк не його причини, в наслідок чого їх використання вкрай сумнівно для вирішення ситуації з вірусами.

Практично всі вірусні елементи в frontend'е з'являються через зараження backend'а, а після їх видалення повторна поява буде лише питанням часу. У зв'язку з чим даний метод варто відкласти на самий останній етап очищення. Скористатися подібними утилітами слід тільки після повноцінної перевірки всього backend'а сайту, коли будуть видалені всі віруси які створили подібні скрипти.

Відновлення резервної копії сайту

Відновлення резервних копій сайту допоможе позбутися від вірусів, але при цьому знайти самі віруси і джерело зараження стане практично неможливо. Але варто враховувати, що зараження вже відбувалося з такою версією сайту і якщо не буде виконано жодних превентивних заходів, то повторна поява вірусів обов'язково трапиться.

Завжди слід створити копію сайту в поточному вигляді перед відновленням, після чого завантажити її і проводити аналіз коду на вже зараженої версії сайту.

Очищення від вірусів до знаходження джерела зараження

Ситуація вкрай схожа з відновленням резервної копії, але крім того, що віруси будуть видалені і їх аналіз буде утруднений з'являється додаткова проблема, яка полягає в НЕ усунутий джерело зараження, а також в можливих додаткових файлах вірусів, які не були виявлені антивірусом або в ході ручного аналізу.

Як очистити сайт від вірусів

Важливо розуміти, що всі зазначені дії є лише рекомендаціями і їх виконання не може підходити для всіх випадків заражень. Завжди варто консультуватися з розробником сайту або залучати сторонніх фахівців для аналізу проблем безпеки сайту і усунення зараження.

Не слід зволікати з очищенням сайту від вірусів. Подібна ситуація сигналізує про те, що дані сайту і дані клієнтів можуть перебувати під загрозою, не кажучи про компрометацію їх даних доступу. Важливим моментом є ще те, що сайт, при подібних зволікань, може бути заблокований пошуковими системами, системами безпеки в сучасних браузерах або антивірусами\допоміжними плагінами.

Зразковий алгоритм дій при знаходженні вірусів на сайті:

  1. Сайт рекомендується відключити, зробити це можна як штатними засобами виду «режим обслуговування» або ж «демо режим», які відключають доступ до сторінок сайту, так і шляхом установки обмежень доступу використовуючи панель управління (рекомендується використовувати саме такий спосіб відключення) або ж файл. htaccess.
  2. Слід провести хоча б мінімальний аналіз логів доступу до сайту, на наявність підозрілих запитів, наприклад, GET запити в яких фігурує синтаксис мов PHP\SQL або ж довгі запити з закодованим текстом. Як правило подібні запити можуть проводитися зловмисниками в ході пошуку уразливості сайту. Якщо подібні запити знайдені, то слід обмежити доступ IP адресами, які відправляють такі запити і перевірити всі дії, що виконуються з цих IP на сайті. Важливо звернути увагу і на POST запити до URL, які не повинні бути доступні, або інші підозрілі запроси.Также варто перевірити чи немає запитів до файлів, які відзначені як віруси.
  3. Вірусний код слід проаналізувати для розуміння того, що саме він повинен виконувати. Деякі знайдені віруси на сайті можуть бути лише штучно створюваної проломом для подальшого зараження або отримання повноцінного контролю над сайтом.
  4. Якщо не було знайдено джерело появи вірусів, то подальші дії можуть лише знизити ризик повторного зараження. Домогтися більшої безпеки і точно усунути пролом в такому випадку можуть допомогти тільки фахівці зі сфери розробки сайтів.
  5. Відновлення резервної копії сайту до моменту зараження. Навіть якщо джерело не був знайдений, відновлення копії може допомогти усунути його, при цьому обов'язково слід виконати наступні рекомендації.
  6. Потрібно провести оновлення ядра сайту (CMS або Framework), всіх доступних плагінів і використовуваних бібліотек. Нерідко уразливості можуть з'являтися в сторонніх додатках, що використовуються на сайті, наприклад, раніше була знайдена серйозна уразливість в плагіні Duplicator, що дозволяє отримати доступ до конфігураційного файлу сайту і безлічі його файлів. Якщо використовується повністю власне написаний сайт, то потрібно перевірити його код і оновити небезпечні ділянки вручну.
  7. Слід відмовитися від що не використовуються тим і плагінів. Якщо такі доповнення є, навіть якщо вони відключені, то їх слід видалити. Не варто зберігати не використовується код, так як він також може мати проломи, які дозволять проникнути на сайт.
  8. Ні в якому разі не варто використовувати неофіційні (піратські) доповнення, будь то тема, плагін, бібліотека або зовсім один файл. Дуже часто подібні «умовно безкоштовні» доповнення, які в офіційному джерелі можуть бути отримані тільки на платній основі, мають навмисне залишені уразливості, що в подальшому можливо буде використано або зовсім стало причиною поточного зараження.
  9. Якщо є можливість установки плагінів безпеки, які сприяють додаткової фільтрації запитів до сайту і обмеження доступу до потенційно небезпечних файлів, то не слід нехтувати їх установкою. У сфері безпеки немає параноїдальних заходів.

Що може запропонувати Хостинг Україна для безпеки сайту

Завжди потрібно пам'ятати про те, що безпека сайту - це відповідальність, за яку відповідає тільки власник і розробник сайту. Будь-хостинг провайдер може надати лише загальні рекомендації або мінімальні кошти з організації безпеки сайту, але на жаль, передбачити все неможливо.

Хостинг Україна надає досить великі можливості для безпеки Ваших сайтів.

До таких належать:

  1. Використання модуля mod_security для фільтрації потенційно небезпечних запитів до сайту або запитів, що використовують популярні уразливості.
  2. Повна ізоляція хостинг-акаунтів віртуального і бізнес хостингу між собою засобами CageFS CloudLinux.
  3. Можливість організації закритого доступу до сайту шляхом обмеження сторонніх IP і додаткового налаштування файлу .htaccess для фільтрації запитів з певних країн або UserAgent.
  4. Система фільтрації запитів до статичних файлів HotLink, з використанням стороннього заголовка referrer або ж при його відсутності.
  5. Можливість відключення небезпечних функцій PHP для кожного окремого сайту.
  6. Автоматична фільтрація запитів безлічі ботів, а також перевірка підозрілої активності користувачів, з подальшою блокуванням або перевіркою.
  7. Функціонал установки захисту від ботів на певні сторінки сайту, який додає різні перевірки, наприклад, Captcha, елементарні математичні числення або ж перевірка виконання JS.
  8. Доступ до логів сайту за досить великий період часу.
  9. Регулярне резервне копіювання даних.
  10. Аналітичні інструменти доступу до сайту.
  11. Корисна і зручна технічна перевірка сайту.