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

Як перевірити сайт на віруси та шкідливий код
Перевірка сайту починається не з паніки, а з спостереження. Якщо сторінки почали відкриватися повільно, пошуковик показує дивні сниппети, а відвідувачі скаржаться на редиректи, вже є привід дивитися код і логи.
Іноді проблема видна одразу: на сайті з'являється спам-контент, зайві посилання, незнайомі банери або спливаючі вікна. Буває і тихіше — трафік падає без пояснення, а серверні файли змінюються вночі. Таке теж вважають сигналом на перевірку.
Я б не чекав «поки саме пройде». У темі безпеки очікування коштує дорого. Якщо потрібен практичний орієнтир, почніть з матеріалу як перевірити сайт на шахрайство, а потім вже переходьте до технічної частини.
Що означає зараження сайту і як його помітити
Зараження сайту — це не тільки явний злом з красивою заглушкою на головній. Частіше зустрічаються тихі зміни: в шаблон додають чужий скрипт, у футер — приховане посилання, в адмінці — нового користувача.
Є й менш очевидні ознаки. Один з них — редирект тільки для частини відвідувачів: наприклад, з мобільних пристроїв або з конкретної країни. Інший — сплеск вихідного трафіку без зрозумілої причини.
Іноді поломка виглядає як звичайна помилка. Але якщо після оновлення нічого не змінювали, а на сайті раптом з'являються сторінки з рекламою казино, це вже не «глюк». Це привід шукати шкідливий код у шаблонах, базі даних і плагінах.
Перевірка потрібна і тоді, коли пошукові системи показують попередження про небезпечну сторінку. Таке повідомлення не з'являється просто так. Воно зазвичай пов'язане з редиректами, фішинговими вставками або зараженими файлами.
Які інструменти використовувати для перевірки сайту
Для перевірки сайту використовують онлайн-сканери, плагіни для CMS, серверні утиліти та антивірусні сервіси. У кожного інструмента свій погляд на проблему: один шукає шкідливі сигнатури, інший — підозрілі посилання, третій — зміни в ядрі CMS.
Онлайн-сервіси зручні тим, що не вимагають доступу до сервера. Плагіни корисні в WordPress або Joomla, коли є вхід в адмінку. Серверні засоби, навпаки, допомагають побачити те, що приховано від панелі управління: права доступу, cron-завдання, несподівані процеси.
Якщо хочеться розширити кругозір на нейтральній темі після десятка перевірок, можна відволіктися на організм людини. Цифри та факти. Цікаві. Але до сайту це, звичайно, не відноситься.
Обмеження у всіх різні. Один сервіс не бачить зараження в базі даних, інший не вміє аналізувати закриті розділи, третій вимагає підтвердження володіння доменом. Тому краще не покладатися на один інструмент.
Як перевірити сайт на віруси через онлайн-сервіси
Схема проста. Відкриваєте сервіс, вставляєте URL, запускаєте перевірку і чекаєте звіт. На цьому етапі не поспішайте робити висновки: один сервіс може показати лише поверхневу картину.
Якщо сервіс підтримує повторне сканування, запустіть його ще раз після очищення. Це допомагає зрозуміти, чи залишилися підозрілі вставки, але точність, глибина аналізу та список типів загроз залежать від конкретної платформи.
В звіті зазвичай звертають увагу на три речі: позначки про шкідливий код, зовнішні редиректи та підозрілі домени, з якими сайт взаємодіє. Якщо сервіс повідомляє про скрипт з незнайомого джерела, це вже робоча підказка.
Не всі попередження рівні зараженню. Іноді сканер скаржиться на вбудовану рекламу, аналітичні лічильники або застарілий плагін. Тому результати читають руками, а не тільки за червоними значками.
Добре звичне питання звучить так: як перевірити сайт на віруси та шкідливий код, якщо доступу до сервера немає? Відповідь проста — через кілька незалежних онлайн-сервісів, а потім за логікою порівнювати звіти між собою.
Як вручну знайти підозрілі файли та скрипти
Ручна перевірка починається з кореня сайту. Дивіться файли, які нещодавно змінювалися, і порівнюйте їх з чистою копією. Якщо в папці раптово з'явився файл з незрозумілим ім'ям, це вже привід відкрити його вміст.
Особливу увагу — до шаблонів, include-файлів, системних бібліотек і папок завантажень. Шкідливий код часто ховають там, де його не шукають в першу чергу. Один зайвий скрипт у header.php може зіпсувати весь сайт.
Обфускація також видає зловмисника. Коли код складається з довгих рядків, закодованих фрагментів і незрозумілих викликів eval, base64_decode або подібних конструкцій, це виглядає підозріло. Не завжди небезпечно, але майже завжди вимагає перевірки.
Шукайте зовнішні підключення. Скрипти з чужих доменів, iframe на невідомі адреси, стилі та зображення з сумнівних хостів — частий шлях впровадження шкідливого коду. Ще один ознака — файли з правами запису там, де вони не потрібні.
Якщо є доступ до SSH, корисно пройтися по папках і переглянути список останніх змін. Якщо доступу немає, шукайте по панелі хостингу та FTP-клієнту. Вручну такі перевірки нудні, але саме на них ловляться дрібні закладки, які онлайн-сканер пропускає.
як знайти шкідливий код на сайті
WordPress, Joomla, Bitrix та інші CMS вимагають окремої уваги. Чистий движок не рятує, якщо один плагін давно не оновлювався, а тема взята з неперевіреного джерела.
Почніть з оновлень. Перевірте саму CMS, потім розширення і тему. Після цього подивіться список користувачів: зайвий адміністратор у системі — не рідкість, і зазвичай він з'являється не випадково.
Плагіни з застарілою підтримкою краще видалити. Це не питання смаку, а питання безпеки. Старий модуль може містити вразливість, через яку і потрапляє шкідливий код.
У Bitrix, WordPress і Joomla свої механіки, і деталі перевірки залежать від версії. Описувати конкретні вразливості без звірки по релізах не можна, тому що список змінюється. Тут корисно звірятися з офіційними списками та журналом оновлень.
Якщо хочеться розрядити атмосферу після аудиту адмінки, можна на пару хвилин відкрити анекдоти про студентів. Анекдоти безкоштовно. Короткі. Потім повертайтеся до прав користувачів і розширень.
Що робити, якщо виявлено віруси або шкідливий код
Перший крок — ізоляція сайту. Якщо зараження активне, тимчасово обмежте доступ і не давайте шкідливому коду розійтися далі. Тут рахунок йде на хвилини, а не на красиві плани.
Наступним зробіть резервну копію поточного стану. Так, навіть зараженого. Вона потрібна, щоб потім можна було порівняти зміни і не втратити сліди атаки.
Потім видаляйте заражені файли або замінюйте їх чистими версіями з резервної копії. Якщо проблема в базі даних, перевіряйте записи, таблиці та поля, куди могли вставити спам або приховані посилання.
Після очищення змініть паролі: до адмінки, FTP, SSH, панелі хостингу та бази даних. Один забутий пароль здатен повернути все зараження назад.
Якщо є можливість, увімкніть повторну перевірку одразу після прибирання. Не відкладайте до завтра. Чим довше сайт живе в брудному стані, тим вищий шанс, що пошуковики встигнуть зловити шкідливий шаблон і видати попередження.
Як перевірити, що сайт повністю очищений
Повної впевненості не дає жоден сканер. Тому після очищення дивляться сайт в кількох режимах: головна, внутрішні сторінки, форми зворотного зв'язку, пошук, кошик, особистий кабінет. Один битий маршрут вже говорить про проблему.
Перевірте редиректи вручну. Відкрийте сайт у звичайному браузері, в приватному вікні та з мобільного пристрою. Якщо поведінка змінюється, шукайте приховані умови в коді.
Логи також корисні. У них видно запити до несподіваних файлів, звернення до віддалених доменів і повторювані спроби входу. Іноді саме лог показує, що зараження сиділо не в шаблоні, а в старому скрипті cron.
Перевірте індексацію в пошукових системах. Якщо в видачі залишилися сміттєві сторінки або чужі заголовки, значить, очищення ще не завершено. Пошуковий кеш любить затримуватися.
При бажанні можна порівняти результати з тим, що пишуть про сувора китайська «жесть» або iPhone 4. Тема зовсім інша, але звичка перевіряти джерела корисна скрізь.
Як захистити сайт від повторного зараження
Профілактика починається з оновлень. Оновлюйте CMS, плагіни, теми та серверне середовище за регулярним графіком, а не за настроєм.
Паролі повинні бути складними, а для адмінки краще включити 2FA. Один слабкий пароль іноді ламає всю схему захисту, особливо якщо він збігається з паролем від пошти.
Ограничте права користувачів. Не надавайте редактору доступ адміністратора, якщо йому потрібен лише контент. Лишні права часто обертаються зайвими ризиками.
WAF, моніторинг файлів і перевірка цілісності допомагають помічати зміни раніше, ніж їх побачать відвідувачі. Ці заходи не дають повної броні, але знижують шанс тихої підміни файлів і редиректів.
Раз на кілька днів перевіряйте журнали, список користувачів і свіжі зміни в каталозі сайту. Рутинна перевірка нудна тільки перші два тижні. Потім вона економить години відновлення і десятки нервових повідомлень від клієнтів.
Якщо у сайту є публічна форма завантаження, слідкуйте за нею особливо уважно. Через такі точки часто заносять зайві файли. І так, навіть одна забута папка з правом запису здатна відкрити дорогу для нового зараження.
В результаті сайт безпечніший не від одного «сильного» інструмента, а від звички перевіряти його по шарам: онлайн-сервісами, вручну, через CMS і по логах. Коли ці кроки стають звичайною процедурою, шукати шкідливий код вже простіше, ніж потім прибирати наслідки його роботи.



