Меню

Ищем и убираем вредоносный код на WordPress. Обеспечение безопасности в интернете и защита конфиденциальной информации Защита от вредоносного кода

Сетевое 

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

(N.A. своевременное обновление версии браузера повысит безопасность работы в интернете)

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

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

Несколько дней назад было обращение через FTP доступ с компьютера у которого была устаревшая антивирусная база. Им был рабочий компьютер, с которого я сейчас пишу этот пост.

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

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

Вредоносный код на сайте содержал следующий скрипт:

Этот скрипт был размещен в конце каждой страницы между тэгами и .

Удалить скрипт можно было двумя способами :

  • 1. восстановить сайт из бэкапа на сервере;
  • 2. удалить вредоносный код вручную.
  • По причине небольшого количества страниц и знания их содержимого я выбрал второй вариант. Найти вредоносный код на сайте, удалить его и заменить зараженные страницы сайта на сервере чистыми не заняло много времени, безопасность сайта была восстановлена.

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

    Как защитить сайт от заражения вредоносным кодом

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

  • Пользоваться качественным антивирусом . Установить официальную версию лидирующей на данный момент по рейтингу антивирусной программы.
  • Поменять пароль для FTP доступа к сайту и панели управления. Если хостингом поддерживается отключение FTP доступа, отключить его из панели управления и включать по мере необходимости.
  • Обращаться через FTP доступ к сайту только с компьютеров, имеющих хорошую антивирусную защиту с актуальной вирусной базой.
  • Права доступа к файлам и папкам (Chmod) должны строго соответствовать тем, что рекомендует разработчик. В случае изменения прав доступа для редактирования файла, по окончанию работ, обязательно восстанавливать требуемые значения.
  • Выполняя эти четыре основных правила будет значительно сокращена вероятность заражения сайта вредоносным программным обеспечением.

    На этом все, все вопросы и замечания оставляйте пожалуйста в комментариях.

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

    Но большинство Web-сайтов, построенных на базе этой бесплатной CMS, обладают определёнными уязвимостями в системе безопасности. Разработчики WordPress, конечно, стараются оперативно закрывать их и выпускают обновления не только для самой платформы, но и для стандартных тем и плагинов. Тем не менее, защититься от взлома удаётся не всегда.

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

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

    Резервное копирование

    Существуют два способа резервного копирования Web-сайта: копирование исходных файлов сайта и копирование базы данных (БД). Для WordPress существует стандартный инструмент для резервного копирования, но он создаёт только копию базы данных.

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

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

    Восстановление или лечение

    Практически все Web-сайты предназначены для принесения дохода своему владельцу. Поэтому обязательным требованием для Web-сайта является работа в режиме 24х7 (24 часа в сутки, 7 дней в неделю) с минимальными периодами отключения для проведения технических работ.

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

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

    Как определить наличие вредоносного ПО

    Как узнать, был ли взломан Web-сайт, и определить первые симптомы заражения? На самом деле, это очень просто, провал статистики посещаемости, переадресация на незнакомые Web-сайты, чрезмерное потребление трафика – всё это признаки заражения и наличия вредоносных ссылок, понижающих рейтинг ресурса. Не говоря уже о явных ситуациях, когда в поисковой выдаче Яндекс или Google появляется отметка о "заражённости" вашего Web-сайта.

    При посещении зараженного сайта в Web-браузерах Opera, Chrome или Firefox будет отображаться окно предупреждения об инфицированном ресурсе, так как данные браузеры имеют свои базы для определения инфицированных сайтов. В конце концов, локальный антивирус может определить, что Web-сайт был заражен, когда при попытке перехода между внутренними страницами, вы увидите соответствующее сообщение. Может оказаться, что Web-сайт был взломан и используется для рассылки рекламного спама. Об этом можно узнать, когда на адрес вашего хостера начнут приходить уведомления о массовой рассылке спама.

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

    Самый простой, но и самый долгий способ поиска вируса – это попытаться отследить даты изменения файлов. Допустим, основная масса файлов в важнейших каталогах (wp-includes , wp-admin и др.) имеют одну и ту же дату создания, но есть один или два файла с более поздними датами создания. Отметьте эти файлы и сравните их с файлами из дистрибутива WordPress. Также можно сравнить файлы по размеру в программе Total Commander. Остаётся только сравнить содержимое подозрительных файлов и выяснить, для чего предназначены найденные лишние фрагменты кода.

    Как проверить обрабатываемый HTML-код

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

    Потребуется открыть "заражённый" Web-сайт в браузере (предпочтительнее в Opera или Firefox) и выбрать в контекстном меню пункт "Показать исходный код сайта ". Если вы знаете HTML, то наверняка сможете заметить подозрительные строки. Это могут быть незнакомые ссылки на сайты, куски "сжатого" или зашифрованного (способом base64) кода, также это может быть неизвестный фрагмент Javascript, который наверняка тоже будет зашифрован. Определить его можно по включенной в код фрагмента команде eval . Обычно это означает, что кто-то пытался скрыть истинный код Javascript, что должно вызывать определенные подозрения. На рисунке 1 представлен пример подозрительного кода.

    Рис. 1 Фрагмент подозрительного HTML-кода

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

    Когда вредоносный код на страницах сайта не удается обнаружить способами, описанными выше, то можно воспользоваться сторонними online-инструментами. Например, можно установить плагин WordPress Exploit Scanner, который будет регулярно проверять Web-сайт и выявлять вредоносное ПО. Плагин представляет подробный отчет и выделяет строки, которые впоследствии следует удалить.

    Кроме того, можно просканировать Web-сайт online-сканнером Sucuri SiteCheck – эта услуга абсолютно бесплатна, а за определенную плату можно заказать полное лечение ресурса.

    Как проверить плагины и темы на наличие вредоносного кода

    Что касается тем оформления, то в них можно отследить вредоносный код вручную или установить плагин TAC, который работает с файлами тем, проверяя их на посторонние ссылки и вирусный код. С помощью этого плагина можно проверить как уже установленные темы, так и новые.

    Определить наличие вируса в теме оформления или в коде плагина очень просто. Если активная тема построена на основе одной из официальных тем, то нужно просто сравнить оригинальный код с кодом проверяемой темы. Для этого скачайте тему по умолчанию, которая входит в дистрибутив WordPress, измените её название и переключите оформление на нее. Остаётся только проверить сгенерированный сервером HTML-код на наличие вируса, и если он обнаружится, то проблема кроется явно не здесь.

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

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

    Лучшие способы защиты плагинов и тем Wordpress:

    • скачивайте и устанавливайте темы и плагины только с проверенных Web-сайтов;
    • не используйте "взломанные" платные плагины и темы;
    • удаляйте неиспользуемые плагины и темы;
    Как найти вредоносный код в файлах ядра WordPress

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

    В первую очередь, проверьте на вирусы компьютер, с которого вы заходили на FTP или административный интерфейс Web-сайта. Пароль мог быть украден из вашего компьютера при помощи троянского вируса, который передал конфиденциальные данные злоумышленнику.

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

    RewriteCond %{HTTP_REFERER} .*yandex.* RewriteRule ^(.*)$ http://неизвестныйсайт.com/

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

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

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

    • не храните пароли в FTP-менеджерах или в почтовых сообщениях;
    • регулярно обновляйте ядро WordPress;
    • обновляете плагины и темы;
    • не используйте простые пароли.

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

    Как найти инъекцию вредоносного SQL-кода в WordPress

    Итак, мы уже рассмотрели различные способы заражения и лечения Web-сайта, основанного на бесплатной CMS WordPress. Но одним из популярных методов проникновения и взлома является SQL-инъекция (sql injection). Этот способ заражения основан на составлении запроса в базу данных, в котором производится кража пароля от административного интерфейса или получение другой конфиденциальной информации. В отношении WordPress можно сказать, что известные на момент последнего обновления "бреши" в системе безопасности базы данных и в фильтрации запросов, были устранены.

    Чтобы уберечься от взлома сайта с помощью SQL-инъекции следует внимательно выбирать плагины, так как они работают с базой данных, а потому недостаточно добросовестный разработчик мог оставить лазейку для злоумышленников. Возможно, в некоторые бесплатные плагины такой скрытый вход интегрируется намеренно. При выборе плагина необходимо руководствоваться не только его возможностями, но и популярностью, а также количеством произведенных установок. Также стоит изучить отзывы, оставленные на странице разработчика. Если у вас появится малейшее сомнение, или же найдётся негативный отзыв, касающийся безопасности, то лучше не рисковать и установить другой плагин с подобной функциональностью.

    Большинство CMS построены таким образом, чтобы пользователь с минимальными навыками программирования смог ее установить, настроить, включить один из предложенных видов оформления и начать наполнять Web-сайт необходимой информацией. Поэтому Web-сайты зачастую находятся в руках неопытных администраторов, которые не могут распознать подобное вторжение с помощью SQL-инъекции.

    Но плагин WordPress Exploit Scanner, упоминавшийся ранее, умеет работать и с базой данных, и в некоторых случаях он может найти внедренную в базу данных постороннюю функциональность. Вот только удалять ее придется вручную с помощью специальных SQL команд в программе администрирования баз данных PHPMyAdmin. Подобные действия нужно выполнять очень аккуратно, так как неправильный запрос или команда может повредить структуру или содержимое базы данных. Чтобы этого не произошло, стоит заранее озаботиться процессом создания резервных копий БД. Кстати, сам Exploit Scanner может выдавать рекомендации по исправлению SQL-запросов.

    Практические способы защиты Web-сайтов, построенных на базе WordPress

    В интернете можно найти множество советов о том, как обезопасить и защитить Web-сайт, работающий на бесплатной CMS WordPress. Ниже предлагается список из наиболее эффективных рекомендаций:

    • следует изменить и никогда не использовать стандартные имена для пользователей, имеющих администраторские права, например, admin, administrator и т.д.;
    • необходимо установить капчу, которая существенно снижает риск от взлома путём перебора паролей;
    • для входа в административный интерфейс должен использоваться сложный буквенно-цифровой пароль, не менее 8-10 символов;
    • пароль не стоит хранить в Web-браузере, текстовых файлах и т.д, offline-хранение на листке бумаге гораздо надёжнее;
    • необходимо защищать и пароль почтового ящика, который был указан при установке WordPress;
    • регулярно выполняйте резервное копирование вручную или с помощью специальных плагинов или сторонних программ, при этом полученные резервные копии обязательно должны храниться в нескольких местах;
    • не устанавливайте плагины из неизвестных источников, взломанные платные плагины и темы;
    • следует установить плагины, отвечающие за безопасность файлов и базы данных WordPress, и регулярно проверять состояние сайта с помощью антивируса;
    • вовремя обновляйте ядро, плагины и темы (перед каждым обновлением обязательно делайте полное резервное копирование);
    • файл admin.php стоит переименовать, чтобы затруднить его идентификацию;
    • зарегистрируйте Web-сайт в Яндекс или Google, чтобы быть в курсе проблем, связанных с безопасностью сайта и его индексацией;
    • необходимо проверить права для каталогов и файлов WordPress: для каталогов выставляются права 755 , для всех файлов 644 , отдельно для каталога wp-content права должны быть 777 ;
    • если нет необходимости в регистрации пользователей, то лучше эту функцию отключить совсем;
    • также можно отключить возможность комментирования и оставить только форму для комментирования через социальные сети;
    • следует удалить файл readme.htm , расположенный в корневом каталоге, в котором хранятся сведения об установленной версии WordPress (это надо делать после каждого обновления CMS);
    • также упоминание об используемой версии WordPress следует удалить из файла functions.php , добавив туда строчку: remove_action("wp_head", "wp_generator");
    Что делать если проблему так и не удалось решить?

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

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

    Заключение

    Большинство представленных советов останутся актуальными еще очень долго, так как они относятся не только к WordPress, но и к любым Web-сайтам, независимо от используемой платформы. Интернет стремительно развивается, постоянно появляются новые обновления и пишутся новые вирусы, закрываются пробелы в безопасности CMS и различных сервисов. Шагайте в ногу со временем, регулярно модернизируйте и обновляйте Web-сайт, и тогда вы сможете избежать подобных чрезвычайных ситуаций.

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

    Чаще всего заражение происходит из-за человеческого фактора, но что делать, если сайт все-таки взломан?

    Основные проблемы

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

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

    Ниже я приведу несколько команд, которые можно применять при поиске зараженных файлов и/или загруженных к Вам на сайт shell-ов/backdoor-ов. Для этого нам потребуется программа Putty и SSH-доступ к сайту.

    Поиск зараженных файлов

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

    Вывод файлов будет записан в лог-файл в вашей текущей директории. В каждом файле будет содержаться путь к найденному файлу и строка с подозрительным участком кода.

    find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "eval" {} \; > ./eval.log
    find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "base64" {} \; > ./base64.log
    find /Каталог с сайтом -type f -iname "*" -exec grep -Him1 "file_get_contents" {} \; > ./file_get_contents.log

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

    Следующая команда выводит список директорий, на которых установлены полные права на запись. Именно такие директории используют для заражения сайта.

    find ./Каталог с сайтом -perm 777 -type d

    Поиск измененных файлов за период

    Если Вы знаете когда примерно произошло заражение, можно посмотреть список измененных файлов за последние несколько дней (параметр –mtime -7 указывает на дату изменения отличную от текущей за 7 прошлых дней)

    find ./Каталог с сайтом -type f -iname "*" -mtime -7

    Что делать, если сайт заражен?

    Итак, предположим, что мы нашли зараженные файлы или shell-файл. Перед тем как его удалить/удалить из него вредоносный код, запомните его имя (полный путь), дату изменения/создания файла, его gid и id пользователя (для unix систем), это позволит найти способ его загрузки к нам на сайт. Начнем с пользователя и группы:

    Посмотрите, от какого пользователя работает Ваш web-сервер:

    ps -aux | grep "apache2" | awk {"print $1"}


    Если этот пользователь совпадает с пользователем, создавшим вредоносный файл, то можно предположить, что он был загружен через сам сайт. Если же нет – файл могли загрузить через ftp (мы настоятельно рекомендуем изменить пароли к FTP-серверу и административной панели сайта).

    cat ./site.ru.access.log | grep “имя filenameOfShellScript”


    И получаем вывод всех запросов к нашему скрипту. По нему определяем userAgent и ip адрес нашего взломщика.

    Следующей командой мы получаем список всех запросов, на которые он к нам заходил.

    cat ./site.ru.access.log | grep “ip” | grep “userAgent”


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

    Ижаковский Андрей, системный администратор

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

    Как защитить WordPress от взлома мы рассмотрим в одной из следующих статей, а сейчас я хочу рассказать как проверить сайт WordPress на вирусы и вредоносный код, чтобы убедиться что все в безопасности.

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

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

    Проверка wordpress сайта на вирусы

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

    1. TOC

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

    Откройте "Внешний вид" -> "TAC" затем дождитесь пока все темы будут проверены.

    2. VIP Scanner

    Очень похожий на TOC сканер для тем, но выводит больше подробной информации. Те же самые возможности по обнаружению ссылок, скрытого кода и других вредоносных вставок. Просто откройте пункт VIP Scaner в разделе инструменты и анализируйте результат.

    Возможно, достаточно удалить лишние файлы, например, desktop.ini. Или же нужно более подробно посмотреть что происходит в файлах использующих base64.

    3. Anti-Malware from GOTMLS.NET

    Этот плагин позволяет не только сканировать темы и ядро сайта на наличие вирусов, но и защищать сайт от перебора паролей и различных XSS, SQLInj атак. Поиск выполняется на основе известных сигнатур и уязвимостей. Некоторые уязвимости можно на месте устранять. Чтобы начать сканировать файлы откройте "Anti-Malvare" в боковом меню и нажмите "Run Scan" :

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

    4. Wordfence

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

    Откройте вкладку "WPDefence" в боковом меню, а затем перейдите на вкладку "Scan" и нажмите "Start Scan" :

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

    5. AntiVirus

    Это еще один простой плагин, который просканирует ваш шаблон сайта на наличие вредоносного кода. Недостаток в том, что сканируется только текущий шаблон, но информация выводится достаточно подробно. Вы увидите все опасные функции, которые есть в теме и затем можете детально проанализировать представляют ли они какую-либо опасность. Найдите пункт "AntiVirus" в настройках, а затем нажмите "Scan the theme templates now":

    6. Integrity Checker

    Также желательно проверить целостность файлов WordPress, на случай, если вирус уже записался уже куда-нибудь. Для этого можно использовать плагин Integrity Checker. Он проверяет все файлы ядра, плагинов и шаблонов на изменения. В конце сканирования вы увидите информацию об измененных файлах.

    Онлайн сервисы

    Существует также несколько онлайн-сервисов, которые позволяют проверить сайт wordpress на вирусы или проверить только шаблон. Вот некоторые из них:

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

    virustotal.com - всем известный ресурс, где вы можете проверить свой сайт или файл шаблона на вирусы.

    ReScan.pro - проверка WordPress сайта на вирусы с помощью этого сервиса бесплатна, выполняется статический и динамический анализ, чтобы обнаружить возможные редиректы сканер открывает страницы сайта. Проверяет сайт по различным черным спискам.

    sitecheck.sucuri.net - простой сервис для сканирования сайта и тем на вирусы. Есть свой плагин для WordPress. Обнаруживает опасные ссылки и скрипты.

    Ручная проверка

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

    eval - эта функция позволяет выполнять произвольный php код, ее не используют уважающие себя продукты, если один из плагинов или тема используют эту функцию почти со стопроцентной вероятностью можно сказать, что там есть вирус;

    • base64_decode - функции шифрования могут использоваться вместе с eval, чтобы спрятать вредоносный код, но они могут применяться и в мирных целях, так что будьте внимательны;
    • sha1 - еще один метод шифрования вредоносного кода;
    • gzinflate - функция сжатия, те же цели, вместе с eval, например, gzinflate(base64_decode(код);
    • strrev - переворачивает строку задом не перед, как вариант может использоваться для примитивного шифрования;
    • print - выводит информацию в браузер, вместе с gzinflate или base64_decode опасно;
    • file_put_contents - сам WordPress или плагины еще могут создавать файлы в файловой системе, но если это делает тема, то уже стоит насторожиться и проверить зачем ей это, так могут устанавливаться вирусы;
    • file_get_contents - в большинстве случаев используется в мирных целях, но может использоваться для загрузки вредоносного кода или чтения информации из файлов;
    • curl - та же история;
    • fopen - открывает файл для записи, мало ли для чего;
    • system - функция выполняет команду в системе Linux, если это делает тема, плагин или сам wordpress, скорее всего, там вирус;
    • symlink - создает символические ссылки в системе, возможно, вирус пытается сделать основную файловую систему доступной из вне;
    • copy - копирует файл с одного места в другое;
    • getcwd - возвращает имя текущего рабочего каталога;
    • cwd - изменяет текущую рабочую папку;
    • ini_get - получает информацию о настройках PHP, чаще в мирных целях, но мало ли;
    • error_reporting(0) - отключает вывод любых сообщений об ошибках;
    • window.top.location.href - javascript функция, используемая для редиректов на другие страницы;
    • hacked - так, на всякий случай, проверяем, вдруг, хакер сам нам решил рассказать.

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

    grep -R "hacked" /var/www/путь/к/файлам/wordpress/wp-content/

    Или же использовать простой скрипт, который будет искать все слова за раз:

    values="base64_decode(
    eval(base64_decode
    gzinflate(base64_decode(
    getcwd();
    strrev(
    chr(ord(
    cwd
    ini_get
    window.top.location.href
    copy(
    eval(
    system(
    symlink(
    error_reporting(0)
    print
    file_get_contents(
    file_put_contents(
    fopen(
    hacked"

    cd /var/www/путь/к/файлам/wordpress/wp-content/
    $ fgrep -nr --include \*.php "$values" *

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

    Вчера, проверяя свою почту, я обнаружил письмо от Google, о том что посещение определенных страниц моего сайта может привести к заражению компьютеров пользователей вредоносными программами. Теперь пользователям, переходящим на эти страницы по ссылкам в результатах поиска Google.ru, отображается страница с предупреждением. Этот сайт не был добавлен мной в панель вебмастера Google, поэтому я был оповещен по почте. В панели вебмастера у меня находилось еще несколько сайтов, зайдя туда я в ужасе увидел предупреждение о вредоносном коде еще на двух своих сайтах.
    В итоге, на трех моих сайтах поселился вредоносный код , который мне предстояло найти и уничтожить. Один из сайтов работал на вордпрессе, другие два состояли из обычных php страниц.

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

    Как правило, чаще всего сайты заражает так называемый iframe-вирус . По сути, этот вирус состоит из кода …. . Вирус ворует все пароли с Total Commander или другого ftp-клиента . В моем случае, произошло тоже самое, код iframe прописался в нескольких десятках файлов на моем сайте. На сайте, который работал на вордпрессе, вредоносный код успел обосноваться лишь в footer.php .

    И так, как найти вредоносный код , если Вы обнаружили что Ваш сайт заражен:

    1. Заходим в панель управления хостингом и меняем пароль. Елси у Вас несколько сайтов, то проделываем это со всеми своими сайтами.

    2. Меняем и удаляем пароли в ftp-клиенте . Больше никогда не храним пароли в ftp-клиентах, всегда вводим их вручную.

    3. Можно зайти на хостинг по ftp , и посмотреть что изменилось в Ваших файлах. Отсортируйте файлы по дате последнего изменения. У тех файлов, которые заражены, дата должна быть свежая и одинаковая. Откройте эти файлы и ищите код iframe , как правило этот код располагается в самом конце. В основном, вредоносный код прописывается в файлах: index.php, index.html , в файлах с расширением .js . Нередко, эта зараза проживает между тегами … .
    Для самописных сайтов, очень внимательно просмотрите все файлы и папки скриптов, вирус частенько прописывается именно там. Так же, излюбленное место обитания этого вируса, в кодах счетчиков для сайта, и в рекламных кодах.

    4. Проверьте файл.htaccess на наличие подозрительного кода. Иногда вредоносный код проникает и в этот файл. Обычно в файлах движка существует несколько директорий, в которых может находиться файл .htaccess. Проверьте все эти файлы и убедитесь в «чистоте» кода.

    Что касается файлов вордпресса или другой CMS , как правило любая CMS состоит из множество файлов и папок, и найти в них вредоносный код очень сложно. Например, для вордпресса могу порекомендовать плагин TAC . Этот плагин проверяет файлы во всех темах в папке themes на наличие стороннего кода. Если TAC найдет не желательный код, то покажет путь к этому файлу. Таким образом, можно вычислить и маскирующийся вирус.
    Скачать плагин TAC: wordpress.org

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

    Когда найдете и удалите вредоносный код, то не помешает проверить свой компьютер на наличие вирусов.
    И если Ваш сайт был помечен Гуглом или Яндксом как зараженный, то через панель вебмастера надо отправить запрос на повторную проверку. Как правило, в течении суток все ограничения с Вашего сайта поисковики должны убрать. Мой запрос на повторную проверку Гугл обрабатывал не долго, и через несколько часов с моих сайтов были сняты все ограничения.