В текущих реалиях интернета довольно частой и большой проблемой является заражение сайтов вирусами. Это происходит, чаще всего, в очень популярных системах и плагинах, так как из-за огромного спроса на их использование в них более тщательно выискивают уязвимости. Даже на данный момент существует масса не закрытых брешей в безопасности у популярных CMS, например, WordPress или OpenCart, а также Joomla!. Используя уязвимости на сайт могут быть загружены вирусы, которые в свою очередь записывают важную информацию и передают ее третьим лицам. Поведение вирусов на сайте может никак не отображаться и заметить их наличие часто бывает довольно сложной задачей, из-за чего для сайтов следует использовать антивирусные утилиты, которые могут помочь в нахождении уже найденных вирусов.
Антивирусные утилиты работают по принципу сравнения проверяемого кода файлов с существующими данными вирусов в его базе сигнатур. То есть антивирус может найти только ранее обнаруженные вирусы, из-за чего абсолютно новые, которые хорошо защищены и имеют совершенно новую, отличную от других структуру, могут быть попросту не найдены, но такие ситуации возникают довольно редко.
Принцип работы антивирусов, используемых для проверки сайтов, сильно отличается от привычных нам утилит, так как они, чаще всего, только производят проверку файлов и указывают на участки кода, которые больше всего походят на вирусные сигнатуры. Удаление производится исключительно в ручном режиме, так как это довольно опасный процесс, из-за которого можно нанести вред работе сайта или вовсе вывести его из строя, так как вирус может замещать важные участки кода программы.
Также следует обратить внимание на то, что стандартные антивирусные утилиты, применяемые для поиска вирусов на ПК или других устройствах, могут не обнаружить используемые на сайтах вирусы. Стоит понимать, что существует несколько типов антивирусных утилит, которые производят проверку сайта, в некотором понимании, с разных сторон. Определенные антивирусные системы проверяют исключительно файлы на сервере, из-за чего вредоносный код в javascript файлах попросту не будет найден. Также существуют определенные антивирусы, которые проводят проверку сайта, можно сказать, снаружи, проверяя все загружаемые ресурсы в рамках сайта. Такие антивирусы работают онлайн и в них достаточно только указать адрес сайта, но так как они не имеют доступа к файлам сайта, то проверяют только наличие вирусов в рамках javascript файлов или же других загружаемых на страницу, что не всегда поможет устранить проблему заражения.
Если есть подозрение, что на сайте появились вирусы, то следует предпринять кардинальные меры для их удаления и поиска источника заражения. Важно помнить, что удаление вирусов — это лишь частичное решение, так как без нахождения источника заражения повторное появление вирусов – вопрос времени.
Полностью описать процедуру проверки заражения сайта и его очистки невозможно, так как любая проблема с вирусами крайне индивидуальна, в связи с чем можно использовать только примерный и общий алгоритм действий.
Для проверки сайта на наличие вредоносного кода, а также его последующей очистке, следует проводить комплекс проверок и действий:
В любой ситуации заражения сайта следует помнить, что вирус не появляется сам по себе и всегда есть способ его загрузки в файлы сайта. Для того, чтобы примерно понимать вероятные способы загрузки можно ознакомиться с публичными данными об уязвимостях популярных CMS.
К примеру наиболее распространенными ресурсами с такой информацией являются:
После нахождения вирусного файла следует проверить какой именно код был отмечен как вирусный. Чаще всего подобный код может быть обфусцирован, что значит зашифрован и\или не читаем. Обычно такое запутывание происходит при помощи шифрования кода, путем использования Base64 или других способов кодирования и декодирования участков кода. Если было найдено множество символов, которые никак не походят на код сайта, то следует попробовать декодировать этот участок.
Если в коде файла наблюдаются такие функции, как: eval, system, exec, base64_decode, urldecode и подобные им, то обязательно проверьте входящие данные в эту функцию. В случае с eval, system, exec
лучше всего временно заменить ее на вывод, к примеру, print или var_dump, чтобы понять какой именно код должен был быть использованным.
Лучше всего в этом могут помочь онлайн сервисы, например, base64.ru — онлайн декодер зашифрованного в Base64 текста.
Также рекомендуем ознакомиться со статьей относительно деобфускации кода — https://kaimi.io/2012/01/php-deobfuscate/.
Онлайн сканеры выполняют одну полезную роль, они помогают найти опасные вирусные JS скрипты или другие элементы вируса в frontend’е сайта, то есть в том, что предоставляется пользователю при открытии сайта. Такие проверки могут помочь найти лишь последствия заражения, но никак не его причины, в следствие чего их использование крайне сомнительно для разрешения ситуации с вирусами.
Практически все вирусные элементы в frontend’е появляются по причине заражения backend’а, а после их удаления повторное появление будет лишь вопросом времени. В связи с чем данный метод стоит отложить на самый последний этап очистки. Воспользоваться подобными утилитами следует только после полноценной проверки всего backend’а сайта, когда будут удалены все вирусы которые создали подобные скрипты.
Восстановление резервных копий сайта поможет избавиться от вирусов, но при этом найти сами вирусы и источник заражения станет практически невозможно. Но стоит учитывать, что заражение уже происходило с такой версией сайта и если не будет выполнено никаких превентивных мер, то повторное появление вирусов обязательно случится.
Всегда следует создать копию сайта в текущем виде перед восстановлением, после чего скачать ее и проводить анализ кода на уже зараженной версии сайта.
Ситуация крайне схожа с восстановлением резервной копии, но помимо того, что вирусы будут удалены и их анализ будет затруднен появляется дополнительная проблема, которая заключается в не устранённом источнике заражения, а также в возможных дополнительных файлах вирусов, которые не были обнаружены антивирусом или в ходе ручного анализа.
Важно понимать, что все указанные действия являются лишь рекомендациями и их выполнение не может подходить для всех случаев заражений. Всегда стоит консультироваться с разработчиком сайта или привлекать сторонних специалистов для анализа проблем безопасности сайта и устранения заражения.
Не следует медлить с очисткой сайта от вирусов. Подобная ситуация сигнализирует о том, что данные сайта и данные клиентов могут находиться под угрозой, не говоря о компрометации их данных доступа. Немаловажным моментом является еще то, что сайт, при подобных промедлениях, может быть заблокирован поисковыми системами, системами безопасности в современных браузерах или антивирусами\вспомогательными плагинами.
Примерный алгоритм действий при нахождении вирусов на сайте:
Всегда нужно помнить о том, что безопасность сайта — это ответственность, за которую отвечает только владелец и разработчик сайта. Любой хостинг провайдер может предоставить лишь общие рекомендации или минимальные средства по организации безопасности сайта, но к сожалению, предусмотреть всё невозможно.
Хостинг Украина предоставляет довольно обширные возможности для безопасности Ваших сайтов.
К таковым относятся:
с 2-00 и до 7-00