Безопасность сайта

Как проверить сайт на вирусы онлайн: 7 бесплатных сканеров 2026

Сравнение бесплатных онлайн-сканеров сайта на вирусы: что реально находят VirusTotal, Sucuri, Quttera, Яндекс и Google Safe Browsing.

обновлено 10 минут чтения 0 Дмитрий Акиндинов
Содержание
  1. Что вообще ищет онлайн-сканер
  2. Сканер 1: VirusTotal
  3. Сканер 2: Sucuri SiteCheck
  4. Сканер 3: Quttera
  5. Сканер 4: Яндекс Вебмастер
  6. Сканер 5: Google Safe Browsing
  7. Сканер 6: 2ip.ru / 2ip.io
  8. Сканер 7: ImunifyAV / WPScan / Wordfence Scanner
  9. Минимальный пакет для разовой проверки
  10. Что делать, когда сканер показывает заражение
  11. Ложные срабатывания
  12. Что включить, чтобы заметить заражение раньше
  13. Когда позвать подрядчика
  14. Частые вопросы

Внешние сканеры видят только то, что отдаётся посетителю: редиректы, вредоносные скрипты в коде страниц, попадание домена в чёрные списки. Заражённые файлы на сервере им не видны. Поэтому порядок такой: сначала три-четыре внешних проверки, потом разбор на сервере.

Когда возникает подозрение, что с сайтом что-то не так, первый рефлекс это загнать домен в онлайн-сканер. Браузер пишет про опасность, в выдаче появились странные тексты на японском, с почты приходят жалобы клиентов. Хочется проверить быстро, без подключения по SSH и без программиста.

Сканеров много, и они находят разное. Я регулярно пользуюсь набором из пяти-семи штук, каждый закрывает свою часть. Ниже разберу, что они реально умеют, на что не стоит надеяться, и какой минимальный пакет даст более-менее объективную картину.

Лупа над окном браузера и значок жука

Что вообще ищет онлайн-сканер

Внешний сканер видит сайт глазами поискового бота или обычного посетителя. У него нет SSH-доступа, нет логов хостинга, нет файловой системы. Он работает с тем, что отдаёт сервер по HTTP.

Из этого следует, что внешние сканеры умеют:

  • Видеть JavaScript на страницах и запрашивать сторонние домены, к которым обращается сайт.
  • Проверять домен по чёрным спискам Google Safe Browsing, Spamhaus, SURBL и подобным.
  • Сравнивать поведение страниц с известными паттернами вредоносного кода.
  • Показывать редиректы на левые домены, которые срабатывают для определённых User-Agent или из определённых стран.

Что внешние сканеры НЕ умеют:

  • Лазить по файловой системе и искать backdoor-скрипты, которые не подключены к страницам напрямую.
  • Видеть PHP-шеллы вроде WSO, b374k, c99, лежащие в /uploads/2024/05/x.php, если на них никто не ссылается.
  • Находить заражение базы данных, например, спам в опциях WordPress, который активируется только под определёнными UA.
  • Видеть скомпрометированных админов и поддельные крон-задания.

То есть если внешний сканер чист, сайт не обязательно чист. Если внешний сканер показывает заражение, оно есть с большой вероятностью.

Поэтому правильный подход: сначала пройти по сайту внешними сканерами (3-4 разных), потом, если есть подозрения, запросить файловое сканирование изнутри (это уже SSH или ручная проверка скриптом). И никогда не ограничиваться одним только инструментом.

Сканер 1: VirusTotal

Адрес: virustotal.com. Самый известный, по-прежнему один из самых полезных. Куплен Google, под их инфраструктурой.

Что делает: пробивает URL по 70-90 антивирусным движкам и репутационным базам одновременно. Каждый движок отвечает clean или suspicious. Дополнительно показывает связанные подозрительные домены, файлы, которые отдаёт страница, скриншот.

Где силён: ловит то, что хотя бы один из 80 движков уже знает. То есть свежие массовые кампании заражения он видит почти моментально, потому что хотя бы один антивирус успевает добавить сигнатуру.

Где слаб: не делает глубокий статический анализ JS, не симулирует поведение страницы. Если заражение точечное и ещё не попало ни в одну базу, VirusTotal даст clean.

Совет по чтению результатов: один-два движка отметили suspicious это часто шум, особенно у малоизвестных антивирусов. Если 5 и больше движков пишут malicious, это уже серьёзный сигнал. Также смотрите вкладку Relations — там видно, на какие сторонние ресурсы тянет ваш сайт. Внезапные поддомены cdn.amazon-tracking-x.cf это плохо.

Сканер 2: Sucuri SiteCheck

Адрес: sitecheck.sucuri.net. Sucuri это компания, которая всю жизнь занимается чисткой сайтов после взлома. Сканер у них один из самых заточенных под реальные веб-заражения, особенно WordPress и Joomla.

Что делает: загружает несколько страниц сайта (главная, рандомные внутренние), парсит JavaScript и HTML, ищет известные паттерны японского SEO-спама, фарма-врезок, редиректов на казино, обфусцированный код. Проверяет домен по 7 чёрным спискам. Показывает выявленные проблемы с указанием конкретных файлов и URL.

Где силён: ловит специфичный для WordPress спам и редиректы, которые VirusTotal часто пропускает. Хорошо видит JS-инъекции типа eval(atob(...)) и подмены ссылок.

Где слаб: бесплатная версия проверяет только по верхним страницам. Если зараза спрятана глубоко в категориях каталога, может не достать. Платная версия Sucuri Pro делает регулярные сканирования и алёрты, но это уже не бесплатно.

Совет: SiteCheck это первый инструмент, к которому я бегу при подозрении на заражение WordPress. Если он чист, у меня уже спокойнее на душе. Если он показывает spam-injection, обычно прав.

Сканер 3: Quttera

Адрес: quttera.com/website-malware-scanner. Менее известный, но толковый сканер. Есть бесплатный одноразовый отчёт и платная подписка.

Что делает: эмулирует браузер, рендерит сайт, ловит подозрительные перенаправления и подгружаемые скрипты. Проверяет по своим чёрным спискам и по сторонним.

Где силён: лучше многих видит цепочки редиректов через JS, которые срабатывают только при определённых условиях (например, если зашёл с мобильного по Wi-Fi). Хорошо оформленный отчёт с выделением подозрительных строк.

Где слаб: бесплатный отчёт можно сделать раз в сутки на один домен. Платная версия дорогая для маленького сайта.

Совет: ставлю Quttera в пару к Sucuri SiteCheck. Если оба чисты, есть основания доверять. Если расходятся, то прав чаще тот, который показывает больше деталей.

Сканер 4: Яндекс Вебмастер

Адрес: webmaster.yandex.ru. Свой сайт надо добавить и подтвердить, потом раздел Безопасность и нарушения.

Что делает: проверяет сайт силами Яндекса по их собственным базам. Если они находят опасное содержимое, страница попадает в список с пометкой и в выдаче появляется предупреждение Сайт может угрожать безопасности компьютера.

Где силён: единственный бесплатный сканер, чьи результаты напрямую влияют на видимость в Яндексе. Если Вебмастер чист, в выдаче пометки не будет. Если показывает заражение, надо лечить срочно, потому что это уже видят пользователи.

Где слаб: не показывает деталей, просто говорит найдено опасное содержимое и иногда даёт URL заражённой страницы. Лечить по этому отчёту тяжело.

Совет: должен быть подключён всегда, не только при подозрении. Безопасность Яндекс Вебмастера это ранний сигнал, который вы видите быстрее, чем клиенты успеют пожаловаться.

Сканер 5: Google Safe Browsing

Адрес: transparencyreport.google.com/safe-browsing/search. Бесплатно, без регистрации.

Что делает: показывает статус сайта в базе Google Safe Browsing. Это та же база, которой пользуется Chrome и многие другие браузеры для предупреждения о вредоносных сайтах.

Где силён: если домен попал в Safe Browsing, его уже не открыть в Chrome без щелчка proceed at your own risk. Это резко обрушивает трафик. Знать о попадании надо первым делом.

Где слаб: не объясняет причины. Просто Some pages on this website distribute malware. Дальше вы должны сами разобраться, что именно. Подключение Search Console (если он у вас работает в России) даёт чуть больше контекста, но дополнительной диагностики не делает.

Совет: проверяйте в первый день после подозрения и ещё через неделю, чтобы убедиться, что сайт вышел из списка после очистки. Безопасность Google и Яндекса это две разные базы, чистый отчёт в одной не означает чистый в другой.

Щит с галочкой над макетом сайта

Сканер 6: 2ip.ru / 2ip.io

Адрес: 2ip.ru/site-virus-scaner. Российский, бесплатный, без капчи.

Что делает: загружает главную и пару внутренних, гонит через свой движок, плюс параллельно дёргает несколько публичных API (тот же VirusTotal). По сути это агрегатор. Удобен тем, что выдаёт всё на русском и понятно.

Где силён: даёт быстрый общий ответ для тех, кто не хочет лезть в три разных интерфейса. Покрывает основные блэклисты.

Где слаб: глубокого анализа не делает, на сложные кампании не натренирован. По сути это удобная обёртка вокруг сторонних сервисов.

Совет: для разового нервного я что-то увидел в выдаче, надо успокоиться или насторожиться подходит. Для серьёзной диагностики нет.

Сканер 7: ImunifyAV / WPScan / Wordfence Scanner

Тут отдельная категория. Это уже не онлайн-сканеры, а инструменты, которые работают изнутри сервера. Их я подключаю, когда внешний обзор показал подозрение.

ImunifyAV. Бесплатная версия от CloudLinux, ставится на VPS или на cPanel. Сканирует файлы хостинга и базу WordPress на известные подписи. Платный ImunifyAV+ умеет ещё и автоматически чистить.

WPScan CLI. Запускается на любой машине с Ruby, по сути это база уязвимостей всех плагинов и тем WordPress. Показывает, какие версии плагинов у вас стоят, какие из них имеют известные дыры. Бесплатно при ограниченном лимите запросов в API.

Wordfence Scanner. Плагин для WordPress, бесплатная версия. Сканирует файлы, сравнивает с эталонными контрольными суммами ядра и плагинов. Видит изменённые core-файлы, неавторизованных админов, спам в постах.

Это не онлайн-сканеры, но без них картина неполная. Внешний сканер видит видимое, внутренний видит спрятанное.

Минимальный пакет для разовой проверки

Если у вас есть подозрение, но нет времени глубоко лезть, прогоните три сервиса подряд:

  1. Sucuri SiteCheck. Глубокий внешний анализ, конкретные находки.
  2. VirusTotal. Перекрёстная проверка по 70+ базам.
  3. Яндекс Вебмастер Безопасность. Что про вас думает Яндекс прямо сейчас.

Если все три чистые, скорее всего сайт нормальный или заражение очень свежее и спрятанное. Если хотя бы один показывает что-то, лезем глубже.

Что делать, когда сканер показывает заражение

Поэтапная схема, которую я проверял на десятках случаев.

Первый час

Цель: остановить распространение и сохранить улики.

  1. Сделайте копию сайта прямо сейчас, в текущем виде, со всем заражением. Это улика и точка отката, если очистка пойдёт криво. Скопируйте wp-content/, дамп базы, .htaccess в отдельную папку с датой.
  2. Закройте админку для всех IP кроме своего. В .htaccess блок:
<Files wp-login.php>
  Require ip 192.0.2.10
</Files>
  1. Поменяйте все пароли: WordPress админов, базы данных (wp-config.php), FTP, SSH, панель хостинга. Все сразу.
  2. Найдите и удалите всех неизвестных пользователей с правами администратора.
  3. Если сайт показывает чужую рекламу или редиректит, временно повесьте заглушку через .htaccess, пока чистите.

Второй час

Цель: найти источник.

  1. Смотрите дату последнего изменения файлов: find public_html/ -type f -mtime -7 -name "*.php". Все PHP-файлы, изменённые за 7 дней, должны быть объяснимы. Странные имена вроде xmlrpc-2.php, wp-confing.php, class-wp-vendor.php это маркеры.
  2. Сравните wp-includes/ и wp-admin/ с эталоном через wp core verify-checksums. Любое изменение в ядре это либо ваше колхозное вмешательство, либо backdoor.
  3. Проверьте опции базы: SELECT * FROM wp_options WHERE option_name LIKE '%_transient_%' AND option_value LIKE '%base64%'. Скрытые скрипты часто живут в transients.

Третий час

Цель: восстановить чистое состояние.

  1. Скачайте свежую тему и плагины, с официальных источников.
  2. Из бэкапа двухнедельной давности (если есть чистый) поднимите рабочую копию на staging. Проверьте, что в нём заражения нет.
  3. Если заражение свежее, восстановите сайт из чистого бэкапа, накатите все обновления, сразу включите 2FA на всех админов, закройте XML-RPC.
  4. Если чистого бэкапа нет, ручная очистка по списку из шага 2, потом закрытие всех дыр.
  5. После очистки запросите перепроверку в Яндекс Вебмастере и в Search Console (через Безопасность > Запросить проверку). Обычно домен выходит из списка за 3-7 дней, если очистка реально сделана.
Дашборд со сканированием и индикаторами безопасности

Ложные срабатывания

Не любая красная плашка означает заражение. Частые случаи ложных срабатываний:

  • Старая версия плагина, у которой была публичная уязвимость, попала в чёрный список Sucuri, хотя у вас она пропатчена. Лечится обновлением плагина и запросом перепроверки.
  • Внешний рекламный код или счётчик из «свежеблокированной» сети. У меня был случай, когда сайт ругался Quttera только из-за того, что подгружал JS с давно умершего рекламного агрегатора.
  • Сайт на shared-хостинге попал в общую блокировку IP вместе с соседями по серверу. Лечится обращением к хостеру с просьбой объяснить, кто из соседей шумел, и попросить смены IP.
  • DNS-кеширование. Иногда сканер видит старую запись, которая показывает прежнее заражение, а сайт уже очищен. Подождите 24 часа и перепроверьте.

Не паникуйте сразу. Сначала пробивайте через 2-3 разных инструмента, потом делайте выводы.

Что включить, чтобы заметить заражение раньше

Регулярная самопроверка важнее, чем красивый отчёт после факта. Минимальный мониторинг для маленького сайта:

  • Подписка на оповещения Яндекс Вебмастера и Search Console по разделу Безопасность. Уведомление приходит на email в день обнаружения проблемы.
  • Скрипт раз в неделю, который проверяет хеши файлов wp-includes/ и wp-admin/ и пишет в Telegram, если что-то изменилось.
  • Ежедневный бэкап с проверкой, что архив создаётся и не пустой.
  • 2FA на админах, чтобы исключить тривиальный вход через украденный пароль.
  • Закрытый XML-RPC, ограниченный wp-login.php по IP или с CAPTCHA.

Этот пакет ловит большую часть инцидентов раньше, чем их увидит внешний сканер.

Когда позвать подрядчика

Если сканер показал заражение, у вас не настроен бэкап и страшно, я обычно беру первый час бесплатно: посмотреть, что произошло, оценить масштаб, дать честный план. Дальше либо вы сами по плану, либо я веду до полной очистки и сдачи Яндексу. Стандартное лечение типичного заражения WordPress занимает 4-8 часов работы. Это входит в часовую ставку, либо в расширенные тарифы абонентского обслуживания на /#pricing.

Если хотите консультацию, опишите ситуацию через /#contact. Дополнительные материалы по теме лечения и мониторинга в /blog/category/security/, там есть отдельные статьи про чистку WordPress, про чёрный список Яндекса и про SSL.

Частые вопросы

Как проверить сайт на вирусы онлайн

Прогнать домен через несколько независимых сканеров и через панели для вебмастеров. Разные сервисы ловят разное, поэтому одной проверки мало. Чистый результат не доказывает, что сайт не заражён.

Что видит внешний сканер, а что нет

Видит редиректы, вредоносный код в выдаваемом HTML и попадание в чёрные списки. Не видит заражённые PHP-файлы, вредонос в базе и бэкдоры, которые срабатывают по условию.

Как проверить сайт изнутри

Посмотреть все PHP-файлы, изменённые за последние дни: каждый должен быть объясним. Плюс проверить список пользователей, запланированные задания и файлы в папке загрузок.

Сколько времени сайт выходит из чёрного списка

Обычно 3-7 дней после того, как чистка действительно выполнена и подана заявка на пересмотр. Если заражение осталось, повторная проверка вернёт сайт в список.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "Безопасность сайта"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?