Serpstat использует файлы cookie для обеспечения работоспособности сервиса, улучшения навигации, предоставления возможности связаться с командой поддержки, а также маркетинговых активностей Serpstat.

Нажав кнопку "Принять и продолжить", вы соглашаетесь с Политики конфиденциальности

Принять и продолжить

Сообщить об ошибке

Отменить
7014 13 4
SEO Читать 15 минут 4 сентября 2018

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

Как сканировать сайты на вирусы
Иллюстрация: Наталья Сорока
Автор статьи о сканировании сайтов на вирусы
Михаил Круговой
TechOps Engineer в HOSTiQ.ua
Почти каждый владелец сайта сталкивался с проблемой, когда сайт внезапно начинает тормозить или вообще перестает работать. Если вы исключили DDoS-атаку, изменения в коде и содержимом сайта, изменения на стороне хостинг-провайдера, — похоже, что на сайте завелись вирусы.

Такая ситуация может привести к наложению санкций со стороны поисковиков. В этой статье я расскажу, какие бывают вирусы, как они попадают на сайты и как с ними бороться.

Вредоносный код: виды и принцип работы

Вредоносный код на сайтах обычно делят на две категории:
1
Эксплоиты. Они эксплуатируют уязвимости в программном обеспечении, чтобы попасть на сайт. Когда внедряются, выполняют незапланированные действия — например, рассылают спам.

В случае с сайтами, написанными на PHP, эксплоит чаще всего — PHP-код, который почти всегда зашифрован. Эксплоиты на зараженных сайтах встречаются практически всегда.
2
Вирусы и трояны. Это могут быть классические вирусы для Windows и программные модули для Linux. Они встречаются на сайтах намного реже эксплоитов. В последнее время наиболее часто встречаемые нами модули/программы для Linux — это модули для майнинга.
Народная примета системных администраторов: «нашел вирус — ищи эксплоит». Это логично, так как вирус каким-то образом попал на сайт.

Что делает вредоносный код на сайтах

  • Рассылает спам. Кроме того, что таким образом расходуются ресурсы системы, это обычно не влияет на работу сайта.

Но проблема в том, что если с сайта начинает идти спам, почтовые системы, такие как Gmail, Outlook, Yahoo! начинают воспринимать любые сообщения с сайта как спам.

  • Занимается фишингом. Код крадет данные пользователей — например, номера кредитных карт.

Это может делать страница злоумышленника, которую он разместил на вашем сайте. Это грозит блокировкой сайта на уровне браузера — будет показываться красная страница, и на сайт никто не сможет зайти. Другие последствия: снижение рейтинга сайта в поисковой выдаче, сайт в черном списке Google.
Сайт заблокированный браузером
Пример заблокированного сайта
  • Распространяет вирусы для ПК.

  • Занимается майнингом. Злоумышленник внедряет код, который использует ресурсы сайта. Они исчерпываются, и сайт перестает работать.

  • Участвует в ботнете. У сайта возникают все те же проблемы, что при фишинге или майнинге, но сервер может еще и атаковать другие сайты.

Как вредоносный код попадает на сайт

Типичный сайт работает на связке технологий LAMP: Linux+Apache+Mysql+PHP. Согласно официальной статистике, чаще всего это CMS на PHP — WordPress или Joomla!

В каждой из этих CMS есть уязвимости, через которые вредоносный код может попасть на сайт. Уязвимости для WordPress можно посмотреть на сайте WPScan Vulnerability Database, для Joomla! — Joomla! Vulnerable Extensions List.

Кроме этого, вредоносный код может загрузить на сайт сам разработчик или администратор сайта. Это происходит или по небрежности: например, администратор использует пиратских версии CMS/тем/плагинов, не изучив досконально их код. Или человек делает это со злым умыслом: например, клиент не расплатился с разработчиком, и разработчик мстит.

Масштабы проблемы: взгляд со стороны хостинга

Мы собрали статистику по проблеме вредоносного кода на одном из наших серверов. За 45 дней на сервере во время ежедневного автоматического сканирования было просканировано более 3 млн файлов и найдено около 5 тыс единиц эксплоитов. Среди них не было ни одного, который бы был чистым вирусом:
Графике результатов анализа сайта на вирусы
Может показаться, что 5 тысяч эксплоитов на фоне более 3 миллионов файлов — это немного, меньше 1% зараженных файлов. Но проблема в том, что даже одного эксплоита достаточно, чтобы сайт работал на злоумышленника.

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

  • Размер базы сигнатур вредоносного кода;
  • Частота обновления базы.

Коммерческие сканеры, как правило, легко дают фору большинству бесплатных. Например, бесплатный антивирус ClamAV, базу сигнатур которого наполняют добровольцы, не может тягаться с крупными игроками на рынке. В том числе и потому, что у любой крупной антивирусной компании есть штат компьютеров, которые используются как приманки для сбора свежих образцов вирусов.

Виды сканеров

Перечислим категории сканеров для поиска вредоносного кода на сайте:
1
Онлайн-сканеры: например, Rescan.pro, Sucuri, PCrisk.

Преимущества: легко пользоваться.
Недостатки: ограниченные возможности сканирования и меньший процент выявления вредоносного кода.
2
Сканеры-скрипты PHP: например, Ai-Bolit, phpMussel.

Преимущества: могут обнаружить больше вирусов, чем онлайн-сканеры, так как код сканируется в той же среде, что и сайт.

Недостатки: в зависимости от сервера могут применяться ограничения для выполнения PHP. Поэтому возможны условия, когда скрипт не сможет выполняться корректно.
3
Специальные сканеры сайтов/эксплоитов: например, LMD, или Linux Malware Detect и CXS, или ConfigServer eXploit Scanner.

Преимущества: это инструменты, которые выполняются на уровне сервера и не ограничены интерпретатором PHP. Поэтому они могут работать надежнее и быстрее, а также лучше находят вредоносный код. Кроме этого, у коммерческого CXS есть эвристическое сканирование, которое выявляет подозрительные объекты.

Недостатки: плохо определяют вирусы. CXS в этом полагается на бесплатный ClamAV, у которого небольшие базы вирусных сигнатур. Кроме этого, оба сканера — консольные утилиты. Поэтому чтобы их применять, нужна подготовка.

Эти инструменты очень редко подходят для использования на веб-хостинге. Идеальный вариант использования обоих — на VPS или выделенном сервере.
4
Гибридные или облачные сканеры: например: CloudScan.Pro.

При таком сканировании файлы сайта перемещаются в облако компании, предоставляющей услугу, и анализируются в нем. К сожалению, мы не смогли найти облачные сканеры, которые можно было бы бесплатно протестировать.
5
Специализированные сканеры вирусов: например, Comodo/Kaspersky/ClamAV. Это ПО, которое принято называть и считать антивирусом. Эти программы обычно установлены на большинстве ПК с Windows.

Преимущества: распространены, хорошо обнаруживают вирусы.
Недостатки: очень плохо обнаруживают эксплоиты.
6
Агрегаторы обработки файлов: например, Virustotal.

Этот инструмент агрегирует обработку файлов различными антивирусами.

Преимущества: его можно бесплатно использовать для поиска вирусов в загружаемых файлах.
Недостатки: те же, что и в сканерах вирусов
Часть этих сканеров может лечить сайты. Но как правило, лечение почти всегда сводится к тому, что файлы помещаются в карантин. Так как файлы сайта могут содержать как функциональный код сайта, так и вредоносный код, после лечения сайт может «сломаться».

Поэтому мы сторонники того, чтобы сайт лечил разработчик или команда, в которую входит разработчик. Разработчик знает, как работает сайт, и может исправить проблемы, вызванные перемещением файлов с функциональным кодом в карантин.
#1

Для новичков: онлайн-сканеры и антивирусы ПК

Сканирование с помощью онлайн-сканеров

    В качестве примера мы взяли зараженный сайт и использовали бесплатные или условно бесплатные программы для сканирования вирусов. Результаты сканирования онлайн-сканерами Sucuri, ReScan.pro и PCrisk:
    Анализ сайта с помощью онлайн-сканеров Результаты сканирования сайта используя ReScan Анализ сайта в PCrisk
    Несмотря на легкость, у онлайн-сканирования есть недостатки:

    • Как видно на скриншотах, онлайн-сканер обнаруживает далеко не все образцы вредоносного кода.
    • Онлайн-сканеры не могут лечить сайты.

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

    Сканирование с помощью антивирусов ПК

    Чтобы проверить сайт с помощью антивируса на ПК:
    1
    Загрузите на свой компьютер код сайта. Если можете, скачайте сайт архивом — вирусы не смогут повредить ваш ПК, находясь в архиве. У большинства хостеров для этого есть менеджер файлов.

    Альтернативный способ загрузить файлы на ПК — использовать FTP или SFTP-клиент для подключения к серверу.
    2
    Дамп базы данных сайта. Обычно вы можете получить дамп при помощи утилиты phpMyAdmin. Она есть на большинстве хостингов.

    Бывают случаи, когда вредоносный код находится в базе данных и извлекается оттуда скриптом хакера. Такое встречается редко. Но несмотря на редкость, дамп базы нужно проверять.
    Результаты сканирования того же зараженного сайта при помощи сканера Windows Defender:
    Анализ сайта с помощью Windows Defender
    Как правило, в базах антивирусов для ПК нет сигнатур, которые определяют эксплоиты, используемые на сайтах. Несмотря на это, рекомендуем использовать антивирус ПК и как экспресс-тест, и как средство первичного лечения.

    Если антивирус нашел вредоносный код, используйте его для лечения сайта. После этого проверяйте сайт и лечите его специализированными сканерами для поиска эксплоитов.

    Если объем сайта небольшой — до 256 MB, можете воспользоваться агрегатором VirusTotal. Использовать его так же просто, как и остальные онлайн-сканеры — нужно указать, где на ПК находится архив с сайтом и базой.

    В нашем случае полный размер сайта был больше 256 MB. Поэтому мы проверили его файлы выборочно. Как видно на скриншоте, Virustotal использовал 58 антивирусных программ для стационарных ПК. В итоге только 19 антивирусов из 58 обнаружили вредоносный код в архиве.
    Детальный анализ сайта в онлайн агрегаторах
    #2

    Для продвинутых пользователей: сканеры-PHP скрипты и специализированные программные сканеры

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

    Самый универсальный вариант — загрузить код сайта и его базу данных на локальный ПК и сканировать его доступными средствами. В этом случае вы сможете устанавливать и использовать любое ПО без оглядки на хостинг/сервер, на котором размещается сайт.

    Предполагается, что на компьютере, на котором будут сканироваться файлы
    после скачивания, стоит ОС Linux. В случае сканирования на стороне хостинга/сервера процедура та же — только к хостингу/серверу нужно подключаться по SSH.

    Сканеры — PHP-скрипты

    Для того, чтобы сканировать файлы сканерами-скриптами, нужен интерпретатор PHP и возможность запускать PHP скрипты из командной строки. Использовать сканеры на основе PHP можно во всех ОС, поддерживающих PHP: Linux/Mac/Windows и других.

    Теоретически сканеры-скрипты можно выполнять на сервере с сайтом.Практически часто бывают ограничения:

    • Не все хостеры предоставляют доступ по SSH.
    • На хостинге могут быть ограничения на время выполнения PHP скриптов. Поэтому сканирование может длиться бесконечно.

    Для примера мы протестировали условно бесплатный сканер AI-Bolit.

    Чтобы просканировать сайт, нужно:
    1
    Скачать архив со сканером и распаковать подкаталог ai-bolit в корневой каталог сайта — на локальный ПК или хостинг.
    2
    В командной строке перейти в каталог, куда был распакован AI-Bolit, и выполнить одну из команд:

    Для экспресс-сканирования: $ php ai-bolit.php --mode=1
    Параноидальный режим для лечения: $ php ai-bolit.php --mode=2
    Сканер выводит краткий отчет о результатах сканирования в командной строке и полный в виде HTML документа:
    Проверка на вирусы в командной строке Результаты проверки в HTML документе
    В отличии от онлайн-сканеров, скрипты-сканеры — полноценные инструменты, которые могут тщательно просканировать сайт. Часто это единственный доступный инструмент, которым вы можете просканировать сайт на хостинге.

    Специализированные программные сканеры

    От имени пользователя root нужно выполнить следующие команды:

    • # cd ~
    • wget — скачать последнюю версию в текущий каталог;
    • tar -xvf maldetect-current.tar.gz — распаковать архив;
    • ls -d */ | grep maldetect — узнать, как называется каталог с только что распакованной версией;
    • cd maldetect-1.6.2 — перейти в каталог;
    • # ./install.sh — запустить установку;

    После установки можно выполнять такие команды:

    • # maldet -a /path/to/files — просканировать каталог, в котором находится сайт;
    • /path/to/files — расположение файлов сайта, который нужно просканировать;
    • # maldet --report 180731-2020.1148 — просмотреть отчет о сканировании. Имя отчета находится в выводе команды предыдущей команды.
    • # maldet --q 180731-2020.1148 — переместить все файлы из отчета в карантин.

    Результаты сканирования зараженного сайта:
    Результаты сканирования зараженного сайта
    Для сравнения: результаты сканирования коммерческим CMS:
    Результаты сканирования коммерческих сайтов
    Результаты сканирования подопытного сайта тремя сканерами:

    • AI-Bolit: 184 вредоносных скриптов;
    • maldet/LMD: 57 malware hits;
    • CXS: 65 fingerprints + 10 Viruses.

    Число обнаруженных объектов в отчетах разнится, потому что сканеры используют разные базы сигнатур, терминологию и методики подсчета объектов с вредоносным кодом. Например, AI-Bolit считает вредоносными скриптами мусорные PHP страницы, в том числе doorway pages, хотя в них нет вредоносного кода. А maldet/LMD и CXS — нет.
    Лайфхак: как правило, все хостинговые компании используют какой-то инструмент для поиска вредоносного кода на своих серверах. Поэтому если вы — лояльный клиент, можете попросить техподдержку просканировать ваш сайт, — возможно, за отдельную плату. Но не злоупотребляйте — компания не обязана этого делать, если это не предусмотрено вашим тарифом.

    Что делать после сканирования сайта

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

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

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

    Также на этапе лечения разработчики сайта должны найти, как вредоносный код попал на сайт. Некоторые инструменты могут помочь с информацией об уязвимостях. Например, утилита AI-Bolit сообщает об известных ей уязвимостях в узком спектре известного ей ПО. CXS дает информацию обо всех известных ему устаревших версиях ПО.

    Профилактика рецидивов

    После того, как вы удалили вредоносный код с сайта, примите меры предосторожности:
    1
    Обновите пароли всех аккаунтов на сайте. У злоумышленника был к нему доступ и он мог оставить себе лазейку.
    2
    Регулярно и оперативно обновляйте CMS и плагины, чтобы предотвратить взломы.

    По нашему опыту с недавней уязвимостью в CMS Drupal, первые признаки вредоносного кода на сайтах были зафиксированы через 36-48 часов после публикации уязвимости и способа ее устранения — обновления CMS до последней версии. Если бы наши клиенты, которых взломали, обновили CMS — проблем бы не возникло.
    3
    Регулярно наблюдайте за сайтом.
    4
    Регулярно делайте резервные копии.
    Нет идеального продукта, который бы был бесплатный, удобный, находил бы все образцы вредоносного кода, лечил сайт и работал бы на всех серверах. Но если использовать комбинацию из нескольких пунктов — использовать сканер, регулярно создавать резервные копии и обновлять CMS, — можно решить почти все проблемы с вредоносным кодом на сайте.

    Заключение

    Чтобы обнаружить вредоносный код на сайте, необходимо просканировать файлы и базу данных сайта при помощи одного или нескольких инструментов:

    Для экспресс-сканирования можно воспользоваться онлайн-сканерами (Rescan.pro, Sucuri, PCrisk). После восстановления сайта (в случае заражения) — найти способ, как вредоносный код попал на сайт и, если причина заключается в устаревших CMS и плагинах, — обновить их.

    Оцените статью по 5-бальной шкале

    4.59 из 5 на основе 21 оценок
    Нашли ошибку? Выделите её и нажмите Ctrl + Enter, чтобы сообщить нам.
    Хотите узнать новые фишки по интернет-маркетингу?
    Подпишитесь на нашу рассылку — только полезные статьи, реальные кейсы и новости Serpstat раз в неделю.

    Поделитесь статьей с вашими друзьями

    Войти Регистрация

    Вы исчерпали лимит запросов.

    Или email
    Забыли пароль?
    Или email
    Back To Login

    Не волнуйтесь! Напишите свой электронный адрес и мы пришлем вам новый пароль.

    Вы уверены?

    Awesome!

    To complete your registration you need to enter your phone number

    Назад

    Мы отправили код подтверждения на ваш номер телефона

    Your phone Resend code Осталось запросов

    Что-то пошло не так.

    Свяжитесь с нашей службой поддержки
    Или подтвердите регистрацию с помощью Телеграм бота Перейдите по этой ссылке
    Выберите один из проектов

    Знакомство с сервисом

    Ознакомьтесь с основными возможностями Serpstat удобным способом!

    Отправьте заявку для ознакомления с сервисом и мы свяжемся с вами в кратчайшие сроки. Наш специалист предложит подходящий вариант, который может включать персональную демонстрацию, пробный период, материалы для обучения и повышения экспертизы, личную консультацию, а также комфортные условия для начала работы с Serpstat.

    Имя

    Email

    Телефон

    Будем рады вашему комментарию
    Увеличить лимиты

    Улучшить тариф

    Экспорт недоступен для вашего тарифного плана. Вам необходимо улучшить свой тариф до Lite или выше, чтобы получить доступ к инструменту Подробнее

    Зарегистрироваться

    Спасибо, мы с вами свяжемся в ближайшее время

    Пригласить
    Просмотр Редактирование

    E-mail
    Сообщение
    необязательно
    E-mail
    Сообщение
    необязательно

    У вас закончились лимиты

    Вы достигли лимита на количество созданных проектов и больше не можете создавать новые проекты. Увеличьте лимиты или удалите существующие проекты.

    Я хочу больше лимитов