Як шукати шкідливий код без антивірусів та сканерів. Як шукати шкідливий код без антивірусів та сканерів Як шукати шкідливий код на WordPress

1. Розпакувати у папку сайту.
2. перейти на посилання ваш_сайт/fscure/
3. все

Що вміє?

1. Автоматичний пошук вірусів із сигнатур.
2. Пошук рядка у файлах
3. Видалення файлів
4. Патч шкідливого коду за допомогою регулярних виразів

Скрипт не зробить за вас всю роботу та потребує деяких мінімальних знань. Перед роботою рекомендується зробити бекап сайту.

Як працює?

При першому запуску складає індекс файлів. Файл fscure.lst у папці. Виводить список файлів, що містять потенційно шкідливі сигнатури. "Потенційно шкідливі" це означає, що вирішувати вірус це чи не вірус, доведеться вам. Список сигнатур налаштовується у файлі config.php, константа SCAN_SIGN. При налаштуваннях дефолту скрипт не перевіряє js файли і не містить для них сигнатур.

Найчастіші проблеми

1. не створює індекс fscure.lst. Може відбуватися, якщо не вистачає прав. Поставте 777 на папку fscure

2. 5хх помилка. Найчастіше "504 Gateway Time-out". Скрипт не встигає відпрацювати та вилітає по таймууту. І тут є кілька шляхів прискорення його роботи. Швидкість насамперед залежить від розміру індексу. Він у файлі fscure.lst. Зазвичай файл до 5Мб у 90% випадків встигає обробити. Якщо не встигає, можна зменшити "жадібність" скрипта, заборонивши сканувати *.jpg;*.png;*.css в конфізі.
У файлі config.php.

// Розділювач; define("FILES_EXCLUDE","*.js;*.jpg;*.png;*.css");

3. Хостинг видає попередження виду
(HEX)base64.inject.unclassed.6: u56565656: /var/www/u65656565/data/www/34535335353.ru/fscure/index.php

Вірусу у скрипті немає і не було. А (HEX) base64.inject.unclassed.6 це конструкція виду "echo base64_decode(" ), яка часто зустрічається і сама по собі цілком нешкідлива. Проте в останній версії, я цей код замінив.

Що робити, якщо у вас не вдалося знайти вірус самостійно?

Ви можете звернутися до мене за допомогою. Розцінки у мене скромні. На роботу я даю гарантію 6 місяців. Вартість роботи 800 грн. для одного сайту. Якщо на обліковому записі кілька сайтів ціна визначається індивідуально.

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

Мої реквізити:
yandex
41001151597934

webmoney
Z959263622242
R356304765617
E172301357329

Необхідно виконувати спільно. Якщо усунути початкову причину злому (наприклад, вразливість у розширенні CMS), але не видалити все шкідливі файли, зловмисник зможе знову отримати доступ до сайту, скориставшись одним зі своїх скриптів Якщо ж видалити всі завантажені шкідливі скрипти, але не усунути причину злому, зловмисник зможе повторно зламати сайт та знову завантажити на нього скрипти.

Виконувати роботу з видалення шкідливих скриптів та проводити аналіз причин злому спеціаліст з відповідними знаннями та досвідом:

  • Для видалення шкідливих скриптів необхідно знання мови програмування PHP, а також знання «зсередини» популярних CMS(Joomla, WordPress тощо) та розширень для них. Ці знання потрібні, щоб відрізнити скрипти безпосередньо CMS та її розширень від сторонніх файлів, а також щоб при зустрічі із сумнівними скриптами мати можливість однозначно визначити, які дії вони виконують.
  • Для аналізу причин злому потрібно досвід адміністрування сервера. Це необхідно для аналізу стану файлів на обліковому записі, часу їх зміни, а також для зіставлення цих даних із журналами сервера для визначення, які саме дії зловмисника призвели до злому сайтів.

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

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

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

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

Черговість дій важлива, тому необхідно виконувати їх у тому порядку, де вони розташовані нижче.

  1. Відразу після виявлення злому сайту необхідно повністю заблокувати доступ відвідувачів до нього. Це, по-перше, завадить зловмиснику вести шкідливу діяльність на сайті, а по-друге, не дозволить йому перешкоджати проведенню відновлювальних робіт. Цей крок дуже важливий, оскільки видалення шкідливих скриптів та усунення причини злому не відбувається одномоментно - як правило, на це потрібно кілька годин. Якщо сайт залишиться доступним ззовні, зловмисник зможе зробити повторне завантаження скриптів у розділ сайту, який вже був очищений. При цьому зловмисник може використовувати різні IP-адреси для підключення, тому заборона доступу лише для списку IP-адрес не дасть результату. Щоб гарантовано очистити сайт від знайдених шкідливих скриптів, необхідно повністю закрити можливість звернення до сайту, що можна зробити тільки за допомогою повного блокування сайту для будь-яких відвідувачів. Зверніться до служби технічної підтримки хостингу, на якому розміщується ваш сайт, щоб зробити блокування.
  2. Після блокування сайту необхідно перевірити комп'ютери, з яких провадилася робота з сайтом, сучасним антивірусом з оновленими вірусними базами. Якщо сайт був зламаний шляхом крадіжки паролів від облікового запису за допомогою вірусу, необхідно переконатися, що подальша робота зі зламаним сайтом ведеться з комп'ютера, на якому віруси відсутні, інакше після зміни паролів доступу вони знову можуть бути вкрадені.
  3. Після блокування сайту та перевірки на віруси необхідно змінити всі паролідоступу до облікового запису: доступи через FTP, через SSH, а також доступи до панелі керування хостингом. Якщо зловмисник отримував доступ до файлів облікового запису одним із цих способів, після зміни паролів він більше не зможе зробити це.
  4. Після зміни паролів необхідно знищити всі процеси сервера, що працюють від імені облікового запису, на якому обслуговується сайт. Запущені зловмисником у фоновому режимі процеси, не знищені, зможуть після проведення відновлювальних робіт повторно розмістити шкідливі скрипти на сайті. Щоб цього не сталося, всі процеси, запущені до блокування сайту, мають бути знищені. Сайт у цей момент вже має бути заблокований, щоб зловмисник не зміг запустити нові процеси, звернувшись до одного зі своїх скриптів на сайті. Щоб знищити запущені на обліковому записі процеси, зверніться до служби технічної підтримки хостингу, на якому розміщується ваш сайт.
  5. Тепер проникнення на сайт ззовні неможливе і можна розпочинати його відновлення.
  6. Перед подальшими діями видаліть усі існуючі файли сайтущоб серед них гарантовано не залишилося шкідливих скриптів, або скриптів CMS, в які зловмисник впровадив шкідливий код. Цей крок також важливий, оскільки при відновленні сайту із резервної копії не завжди видаляються файли, які існували до відновлення. Якщо після відновлення резервної копії на сайті залишаться старі шкідливі скрипти, зловмисник зможе повторно проникнути на сайт. Уникнути цього можна, вилучивши всі файли сайту перед відновленням.
  7. Після видалення всіх файлів сайту відновіть сайт із резервної копії, створеної до його злому. Часто достатньо відновити лише файли сайту, проте якщо після їх відновлення у роботі сайту спостерігаються помилки, необхідно відновити сайт повністю: файли та базу даних.
  8. Після відновлення з резервної копії оновіть версії системи управління сайтом, що використовуються (CMS) та її розширеньдо останніх. Це необхідно, щоб виключити присутність на сайті відомих уразливостей, через які він може бути зламаний. Як правило, оновлення можна зробити через розділ адміністрування CMS. Для отримання повних інструкційпо оновленню CMS необхідно звернутися на сайт розробника системи. Важливо оновити не тільки саму CMS, а й усі її розширення, оскільки часто злом відбувається через вразливість, яка присутня в одному з розширень CMS (наприклад, плагіни, теми оформлення, віджети та ін.). У цей момент ще не можна знімати блокування сайту для відвідувачів, оскільки він може бути вразливим. Щоб отримати доступ до сайту для оновлення, зверніться до технічної підтримки хостингу, на якому розміщується ваш сайт, і попросіть дозволити доступ до сайту лише з IP-адреси комп'ютера. Дізнатися вашу IP-адресу ви можете, наприклад, на inet.yandex.ru.
  9. Після оновлення системи керування сайтом та її розширень зайдіть у розділ адміністрування сайту та змініть пароль доступу адміністраторадо нього. Переконайтеся, що серед користувачів сайту немає інших користувачів з адміністративними привілеями (вони могли бути додані зловмисником), а якщо вони виявляться - видаліть їх.
  10. Тепер, коли сайт відновлено з резервної копії та не містить шкідливих скриптів, CMS та її розширення оновлено до останніх версій, в яких відсутні вразливості, а паролі доступу до сайту та облікового запису хостингу змінені, можна знову відкрити сайт для відвідувачів.

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

Щоб захистити сайт від повторних зламів у майбутньому, необхідно дотримуватися наступних рекомендацій:

  1. Слідкуйте за оновленнями CMS та розширень для неї на сайтах розробників та своєчасно виконуйте їх оновлення до останніх версій. Якщо у коментарі про оновлення є інформація про те, що воно усуває будь-яку вразливість, встановіть це оновлення якнайшвидше.
  2. Виконуйте роботу з сайтом і з обліковим записом хостингу тільки з комп'ютерів, які захищені від вірусів сучасними антивірусами з вірусними базами, що постійно оновлюються.
  3. Використовуйте складні паролі, щоб їх не можна було підібрати за словником.
  4. Не зберігайте у програмах для підключення до сайту паролі від FTP та SSH, а також не зберігайте в браузері пароль доступу в адміністративний сайт і панель управління хостингом.
  5. Час від часу (наприклад, раз на три місяці) змінюйте паролі доступу до сайту та до облікового запису хостингу.
  6. Якщо на комп'ютері, з якого здійснювалася робота з сайтом, були виявлені віруси, змініть паролі доступу до сайту та облікового запису хостингу якнайшвидше. Змінювати необхідно всі паролі: паролі доступу FTP, SSH, пароль від адміністративної панелі сайту, а також пароль від панелі управління хостингом.
  7. Не надавайте доступ до сайту третім особам, якщо ви не впевнені, що вони також дотримуватимуться наведених рекомендацій.

Шкідливий код потрапляє на сайт через необережність або злий намір. Призначення шкідливого коду різні, але, по суті, він завдає шкоди або заважає нормальній роботі сайту. Щоб прибрати шкідливий код на WordPress, його потрібно спочатку, знайти.

Що таке шкідливий код на сайті WordPress

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

Як потрапляють шкідливі коди на сайт

Лазівки для попадання кодів на сайт також безліч.

  1. Найчастіше це теми і плагіни завантажені з «лівих» ресурсів. Хоча таке проникнення характерне для так званих зашифрованих посилань. Явний код не потрапляє на сайт.
  2. Проникнення вірусу при зломі сайту, найнебезпечніше. Як правило, злом сайту дозволяє розмістити не тільки «одноразовий код», але й встановити код з елементами malware (шкідливої ​​програми). Наприклад, ви знаходите код і видаляє його, а він відновлюється, через деякий час. Варіантів, знову — безліч.

Відразу зауважу, що боротьба з такими вірусами важка, а ручне видалення вимагає знань. Є три вирішення проблеми: перше рішення– використовувати плагіни анітвірісники, наприклад, плагін під назвою BulletProof Security.

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

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

Як шукати шкідливий код на WordPress

Важливо розуміти, що шкідливий код WordPress може бути в будь-якому файлі сайту, і не обов'язково в робочій темі. Він може занестися з плагіном, з темою, із «саморобним» кодом взятого з Інтернету. Спробувати знайти шкідливий код можна кількома способами.

Спосіб 1.Вручну. Гортаєте всі файли сайту та порівнюєте їх із файлами незараженого бекапу. Знаходьте чужий код – видаляєте.

Спосіб 2.За допомогою плагінів безпеки WordPress. Наприклад, . Цей плагін має чудову функцію, сканування файлів сайту на наявність чужого коду і плагін чудово справляється з цим завданням.

Спосіб 3.Якщо у вас розумний support хостингу, і вам здається, що на сайті «чужий», попросіть їх просканувати ваш сайт своїм антивірусом. У їхньому звіті будуть вказані всі заражені файли. Далі, відкриваєте ці файли в текстовому редакторіта видаляєте шкідливий код.

Спосіб 4.Якщо ви можете працювати з SSH доступом до каталогу сайту, то вперед там своя кухня.

Важливо! Як би ви не шукали шкідливий код, перед пошуком і подальшим видаленням коду, закрийте доступ до файлів сайту (включіть режим обслуговування). Пам'ятайте про коди, які відновлюються при їх видаленні.

Пошук шкідливих кодів за функцією eval

Є в php така функція eval. Вона дозволяє виконувати будь-який код у її рядку. Причому код може бути закодований. Саме через кодування шкідливий код виглядає як набір літер та символів. Популярні два кодування:

  1. Base64;
  2. Rot13.

Відповідно в цих кодуваннях функція eval виглядає так:

  • eval (base64_decode (...))
  • eval (str_rot13 (...)) // у внутрішніх лапках, довгі не зрозумілі набори букв і символів.

Алгоритм пошуку шкідливого коду за функцією eval наступний (працюємо з адміністративної панелі):

  • йдіть у редактор сайту (Зовнішній вигляд → Редактор).
  • копіюєте файл functions.php.
  • відкриваєте його в текстовому редакторі (наприклад, Notepad++) і за пошуком шукайте слово: eval.
  • якщо знайшли, не поспішайте нічого видаляти. Потрібно зрозуміти, що ця функція просить виконати. Щоб зрозуміти код потрібно розкодувати. Для розкодування є онлайн-інструменти, звані декодери.

Декодери/Кодери

Працюють декодери просто. Копіюєте код, який потрібно розшифрувати, вставляєте у поле декодера та декодуєте.

На момент написання статті я не знайшов у себе жодного зашифрованого коду, знайденого в WordPress. Знайшов код із сайту Joomla. У принципі, різниці для розуміння розкодування немає. Дивимося фото.

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

На завершення зауважу, щоб не отримати вірус на сайт:

  • Шкідливий код на WordPress частіше приходить з темами та плагінами. Тому не ставте шаблони та плагіни з «лівих», не перевірених ресурсів, а якщо ставите, уважно їх прокачайте на наявність посилань та виконавчих функцій php. Після встановлення плагінів і тем із «незаконних» ресурсів, перевірте сайт антивірусами.
  • Обов'язково робіть періодичні бекапи та виконуйте інші.

Шкідливий JavaScript

Моя думка, що полягає в тому, що від шкідливих браузерних скриптів (зберігаються XSS-атаки) простіше і ефективніше захищатися засобами браузерів, було викладено раніше: . Браузерний захист від JavaScript-а, що полягає в додаванні до html-сторінок сайту фільтруючого коду, мабуть, є надійним, проте наявність такого захисту не скасовує необхідності використовувати ще й серверний фільтр. Для тих же XSS-атак на сервері можна організувати додаткову лінію оборони. Потрібно пам'ятати і про можливість впровадження зловмисником у html-повідомлення, яке відправляється з сайту, не браузерних, а серверних скриптів (php), у розпізнаванні яких браузер буде не сильний.

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

XSS:

Якийсь текст


Якийсь текст

Зашифрований XSS:

Якийсь текст


Якийсь текст

Браузери відновлюють текст із символьних примітивів не тільки всередині html-контейнерів (між відкриваючим і закриваючим тегом), але й усередині самих тегів (між< и >). У http-адресах допускається кодування url. Зазначене ускладнює розпізнавання шкідливого коду на стороні сервера, так як та сама символьна послідовність може бути представлена ​​різними способами.

XSS-хробаки:

"+innerHTML.slice(action=(method="post")+".php",155)))">