Перевірка сайту на віруси онлайн: безкоштовна перевірка вразливостей

Автор: Олександр Коваленко

Уявіть, що ви відкриваєте свій сайт зранку і бачите, що Google позначає його як небезпечний. Відвідувачі бачать червоне попередження, а листи від вашого домену потрапляють у спам. Найболючіше в такій ситуації те, що ви нічого не помітили: сторінки виглядають як раніше. Саме тому перевірка сайту на віруси стає не запасним варіантом на випадок катастрофи, а звичайною частиною підтримки будь-якого публічного ресурсу. Ця стаття про те, як працює зовнішній аудит безпеки, що він реально бачить, де його межі і як із його результатами працювати далі.

Перевірка сайту на віруси онлайн: безкоштовна перевірка вразливостей

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

Що насправді перевіряє зовнішній сканер сайту

Зовнішній сканер починає з головної сторінки. Він завантажує HTML-код і шукає в ньому вставлені скрипти, приховані iframe, редиректи та посилання на сторонні домени. Найчастіше саме тут з’являються ознаки зараження: обфускований JavaScript, який виглядає як безладна мішанина символів, або код, що перенаправляє користувачів з мобільних пристроїв на чужі сторінки. Такий код легко сховати, але важко повністю замаскувати, і саме на цьому базуються евристики сканера.

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

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

Симптоми, які говорять про злам раніше за будь-який сканер

Багато власників дізнаються про проблему не з звіту, а з симптомів. Перший тривожний сигнал — позначка про можливий злам у видачі Google або попередження в Chrome. Другий — ситуація, коли з телефона або з пошуку відвідувачі потрапляють на чужий сайт, а при прямому заході з комп’ютера все виглядає нормально. Це класична ознака клоакінгу, коли шкідливий вміст показується вибірково.

Третій сигнал — сторінки, яких ви не створювали. Перевірте за запитом site: з назвою свого домену: якщо там з’являються казино, аптеки або сторінки ієрогліфами, це майже завжди злам. Четвертий — повідомлення у Search Console в розділі «Проблеми безпеки». Пʼятий — лист від хостера про шкідливі файли або блокування акаунта. І шостий — незнайомі користувачі в адмінці та листи з вашого домену, що раптом почали опинятися у спамі.

  • Позначка про небезпеку у видачі пошуку або попередження браузера
  • Різна поведінка сайту для мобільних, пошуку та прямого заходу
  • Сторінки в індексі, які ви не створювали
  • Повідомлення в розділі «Проблеми безпеки» Search Console
  • Листи від хостера про шкідливі файли або блокування
  • Незнайомі адміністратори та листи з домену у спамі

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

Чорні списки та репутація домену

Окрема частина перевірки стосується того, чи не занесено домен або IP-адресу сервера до баз шкідливих ресурсів. Зовнішній сканер звіряє домен з базою шкідливих URL URLhaus і списком Spamhaus DBL, а також перевіряє сигнали, які використовують браузери. Якщо домен у такому списку, Chrome і Firefox можуть попереджати відвідувачів, а поштові сервери почнуть відхиляти або відправляти у спам ваші листи.

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

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

Заголовки безпеки, SSL і протоколи

Технічна частина звіту стосується того, як сайт передає дані. Сертифікат SSL має термін дії, ланцюжок довіри і набір підтримуваних протоколів. Застарілі TLS 1.0 і 1.1 вже не вважаються безпечними, і їх варто вимкнути на сервері. Сертифікат, що прострочився, викликає попередження браузера, тож його термін варто відстежувати заздалегідь. Окремо перевіряється, чи є редирект з HTTP на HTTPS і чи немає змішаного контенту, коли на захищеній сторінці завантажуються ресурси через незахищене з’єднання.

Заголовки безпеки працюють як додатковий рівень захисту. HSTS змушує браузер використовувати лише HTTPS. Content-Security-Policy обмежує джерела скриптів і стилів, що суттєво ускладнює впровадження стороннього коду. X-Frame-Options забороняє вбудовувати сторінку в чужий iframe, що захищає від клікджекінгу. X-Content-Type-Options не дає браузеру вгадувати тип файлу, а Referrer-Policy регулює, які дані про походження переходу передаються далі.

Перевірка сайту на віруси онлайн: безкоштовна перевірка вразливостей
Заголовок безпеки коштує кілька рядків у конфігурації сервера, але без нього сайт залишається відкритим для цілого класу атак, які легко було б заблокувати.

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

Cookies, версії CMS і відомі вразливості

Прапорці cookies визначають, наскільки безпечно зберігаються сесійні дані. Атрибут Secure змушує браузер передавати cookie лише через HTTPS. HttpOnly забороняє скриптам читати його зі сторінки, що захищає від крадіжки сесії через XSS. SameSite обмежує передачу cookie при запитах з інших сайтів і зменшує ризик міжсайтових атак. Відсутність цих атрибутів — типова знахідка аудиту, і виправляється вона в налаштуваннях сесії або в коді.

Перевірка версій CMS, плагінів WordPress і JavaScript-бібліотек працює за ознаками, видимими в HTML і заголовках. Якщо версія визначена, сканер звіряє її з базою відомих вразливостей CVE. Застаріла CMS або плагін з відомим експлойтом — одна з найчастіших причин злому, тому такі знахідки варто розглядати серйозно. Водночас визначення версій має обмеження: розробники можуть приховувати мітки версій, тож відсутність знахідки ще не гарантує відсутність проблеми.

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

Поштові записи і DNS

Поштові записи захищають від листів, що підробляють ваш домен. SPF визначає, які сервери мають право надсилати пошту від вашого імені. DMARC задає політику дій для листів, що не пройшли перевірку, і дозволяє отримувати звіти про спроби підробки. CAA обмежує, які центри сертифікації можуть видавати сертифікати для домену, що знижує ризик випуску сертифіката на чуже ім’я. MTA-STS вимагає шифрування при передачі пошти між серверами.

Багато власників налаштовують SPF і на цьому зупиняються, але DMARC з політикою, що лише збирає звіти, не блокує підроблені листи. Це корисно для початку, проте з часом варто перейти до суворішої політики. Якщо листи з домену потрапляють у спам, перевірте ще й IP сервера в чорних списках, бо репутація домену і репутація адреси відправника — це різні речі.

Як обрати сервіс перевірки

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

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

  • Глибина сканування: головна сторінка або повний обхід
  • Прозорість звіту з поясненнями і рекомендаціями
  • Наявність моніторингу та сповіщень
  • Умови конфіденційності та обмеження безкоштовного плану
  • Можливість отримати API для регулярних перевірок

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

Покроковий порядок перевірки сайту

Почніть з підготовки. Зберіть доступи до хостингу, FTP або SSH, адмінки CMS і бази даних. Складіть список доменів і піддоменів, які належать вам, і створіть резервну копію сайту в поточному стані. Копія знадобиться для розслідування, якщо доведеться з’ясовувати, як сталося зараження, і вона страхує від втрати даних під час очищення.

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

Перевірка сайту на віруси онлайн: безкоштовна перевірка вразливостей

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

Типові помилки і як їх уникнути

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

Третя помилка — очищення сайту без пошуку першопричини. Видалили шкідливий код, а дірка в застарілому плагіні лишилася, і зловмисник повернувся через день. Четверта — зняття з чорного списку без усунення вразливості. Четверта помилка особливо дорога, бо домен швидко знову потрапляє в список. П’ята — перевірка лише головної сторінки при підозрі на зараження внутрішніх розділів. Шкідник часто живе саме там, де зовнішній сканер не дивиться. Шоста — оновлення CMS без перевірки сумісності плагінів і без резервної копії, що може зламати сайт сильніше, ніж злам.

Висновки і план дій

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

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

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