Как проверить шаблон на вредоносный код. Восстановление или лечение. Специализированные автивирусы для Вордпресс

Платформа 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-сайт, и тогда вы сможете избежать подобных чрезвычайных ситуаций.

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

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

Делайте бэкапы вашего сайта

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

Регулярное сохранения резервных копий вашего сайта должно включать не только БД сайта, но и все основные файлы. Этот процесс и пары минут не займет, зато сохранит вам кучу времени и нервов в будущем и предостережет от целого ряда серьезных проблем. Я настоятельно рекомендую Backup Buddy , Cloudsafe365 и VaultPress в качестве премиум-решений для проведения регулярных процедур создания резервных копий и восстановления данных из них при необходимости. Также есть бесплатные плагины для этой цели, такие как WP-DBManager и руководство по созданию бэкапов вручную .

Восстанавливать сайт или искать на нем malware?

Если вы используете сервис для бэкапов наподобие Backup Buddy или VaultPress , тогда у вас есть опция восстановления сайта к более ранней версии. Тем не менее, я полагаю, что это - не самая лучшая идея. Восстановление вашего сайта без изучения причин сбоя и устранения malware может привести к тому, что уязвимости на вашем сайте все равно останутся. Поэтому куда лучшим будет найти уязвимость , устранить ее , а затем восстановить состояние сайта.

Определяем наличие вредоносного ПО на сайте

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

Проверяем обрабатываемый HTML-код

Начать поиск malware мы можем с поиска того, где и как срабатывает вредоносный код на вашем сайте.

  • Присутствует ли такой код на всех страницах?
  • Появляется ли он только на конкретных страницах или в конкретных постах?
  • Где именно появился вредоносный код? Он вставлен в подвал, в шапку сайта, в основной контент или в боковые панели сайта?

Ответы на эти вопросы помогут вам определить, какие именно файлы на сайте следует проверить в первую очередь.

Проверяем ваши плагины и темы на наличие вредоносного кода

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

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

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

Самые лучшие практические способы защиты ваших тем и плагинов:
  • Удаляйте ненужные темы и плагины с вашего веб-сервера.
  • Убедитесь, что ваши темы и плагины всегда взяты из надежных источников.
  • Регулярно обновляйте темы и плагины на сайте.
  • Не используйте премиму-плагины и платные темы, загруженные с торрентов или с неофициальных сайтов.
Находим вредоносный код, вставленный в файлы ядра WordPress

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

Для начала делаем резервную копию всех файлов вашего сайта (важно, чтобы в бэкап попали такие файлы, как wp-config , wp-content папка, .htaccess и robots.txt ). После завершения процедуры резервного копирования начинайте удалять все файлы с вашего веб-сервера. Теперь скачайте свежую копию WordPress и установите его на сервер. Заполните wp-config информацией из вашей БД. Зайдите теперь на сайт и посмотрите, остался ли на нем вредоносный код. Если malware пропал, тогда значит, ваши файлы ядра были заражены. Теперь аккуратно восстановите изображения, видео и аудио-файлы из резервной копии вашего сайта.

Самые лучшие практические способы защитить код файлов в WordPress
  • Убедитесь, что на сайте все разрешения на операции с файлами имеют значение 644.
  • Не модифицируйте и не заменяйте файлы ядра в WordPress.
  • Используйте надежные пароли в Shell, FTP, БД и панели администратора WordPress.
Находим инъекцию вредоносного SQL-кода в WordPress

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

Скачайте и установите плагин WordPress Exploit Scanner . Активируйте его и просканируйте свой веб-сайт. Exploit Scanner проверит вашу БД, файлы ядра, плагины, темы на предмет подозрительного кода в них и выдаст вам результат сканирования. Как только сканирование завершится, вы просмотрите результаты: если в них обнаружится множество уведомлений об ошибках и ложных предупреждениях, вам придется выбирать результаты крайне внимательно. Этот плагин ничего не удаляет из ваших файлов и БД. Как только вы выясните, где именно "завелся" вредоносный код, эти файлы вам придется самостоятельно удалить вручную.

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

Скопируйте код, который кажется подозрительным и был определен плагином-сканнером, а затем запустите mysql-запрос такого вида, используя phpMyAdmin :

SELECT * From wp_comments where comment_content Like "%SuspiciousCodeHere%"

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

Проделали все вышеперечисленное, но все равно не избавились от проблем?

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

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

Ищем индивидуального эксперта по безопасности в WordPress

Есть много веб-сайтов для фрилансеров, где вы можете разместить предложение о работе для консультанта по безопасности, который устранит вашу проблему с заражением сайта. Из всех поступивших предложений выберите того, кто кажется вам наиболее опытным и знающим. Вы также можете разместить заявку на выполнение работ по очистке сайта от вредоносного ПО на WordPress Jobs либо в Smashing Magazine’s Jobs Board . Просто убедитесь в том, что человек, которого вы нанимаете для выполнения этих задач, опытен, обладает хорошей репутацией и положительными отзывами о предыдущей работе.

Заключение

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

Проанализируйте способы заражения:

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

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

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

Найдите браузерный вредоносный код

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

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

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

      во всех серверных скриптах, шаблонах CMS, базах данных;

      в конфигурационных файлах веб-сервера или интерпретатора серверных скриптов;

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

  • Признаки вредоносного кода:

      Код посторонний или незнакомый, не соответствует резервной копии или системе контроля версий.

      Обфусцированный (нечитаемый, неструктурированный) код.

      Дата модификации файлов совпадает с временем заражения или более поздняя. Этот параметр ненадежен, так как дата модификации файлов может быть изменена вирусом.

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

      • динамическое исполнение кода (eval , assert , create_function);

    Вредоносный код удален, что дальше?

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

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

    Если вы нашли что-то интересное

    Яндекс постоянно ищет и исследует новые виды заражений и публикует результаты исследований в блоге Безопасного поиска Яндекса .

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


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

    Для обнаружения вредоносного кода в файлах и базе существуют специализированные решения – антивирусы и сканеры для хостингов. Их не так много, из популярных – это AI-BOLIT , MalDet (Linux Malware Detector) и ClamAv .

    Сканеры помогают обнаруживать загруженные веб-шеллы, бэкдоры, фишинговые страницы, спам-рассыльщики и другие типы вредоносных скриптов – все то, что им известно и заранее добавлено в базу сигнатур вредоносного кода. Некоторые сканеры, например, AI-BOLIT, обладают набором эвристических правил, которые позволяют обнаруживать файлы с подозрительным кодом, который часто используется во вредоносных скриптах, или файлы с подозрительными атрибутами, которые могут быть загружены хакерами. Но, к сожалению, даже в случае использования нескольких сканеров на хостинге, возможны ситуации, когда некоторые хакерские скрипты остаются не обнаруженными, что фактически означает, что у злоумышленника остается “черный ход” и он может взломать сайт и получить над ним полный контроль в любой момент.

    Современные вредоносные и хакерские скрипты значительно отличаются от тех, что были 4-5 лет назад. Сейчас разработчики вредоносного кода комбинируют обфускацию, шифрование, декомпозицию, внешнюю подгрузку вредоносного кода и используют другие уловки для того, чтобы обманывать антивирусное ПО. Поэтому вероятность пропуска новых “вредоносов” значительно выше, чем раньше.

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

    Вначале рассмотрим, что именно следует искать при взломе.

  • Хакерские скрипты.
    Чаще всего при взломе загружают файлы, представляющие собой веб-шеллы, бэкдоры, “загрузчики” (uploaders), скрипты для спам-рассылок, фишинговые страницы + обработчики форм, дорвеи и файлы-маркеры взлома (картинки с лого хакерской группы, текстовые файлы с “посланием” от хакеров и т.п.)
  • Инжекты (внедрения кода) в существующих файлах .
    Второй по популярности тип размещения вредоносного и хакерского кода – это инжекты. В существующие файлы сайта.htaccess могут внедрять мобильные и поисковые редиректы, в php/perl скрипты инжектировать бэкдоры, в.js и.html шаблоны встраивать вирусные javascript фрагменты или редиректы на сторонние ресурсы. Возможны инжекты и в медиа-файлах, например.jpg или. Часто вредоносный код состоит из нескольких компонентов: сам вредоносный код хранится в exif-заголовке jpg файла, а исполняется с помощью небольшого управляющего скрипта, код которого не выглядит подозрительным для сканера.
  • Инжекты в базе данных .
    База данных является третьей мишенью для хакера. Здесь возможны статические вставки , , , , которые перенаправляют посетителей на сторонние ресурсы, “шпионят” за ними или заражают компьютер/мобильное устройство посетителя в результате drive-by атаки.
    Кроме того во многих современных CMS (IPB, vBulletin, modx и др.) шаблонизаторы позволяют исполнять php код, а сами шаблоны хранятся в базе данных, поэтому php код веб-шеллов и бэкдоров может быть встроен непосредственно в БД.
  • Инжекты в кэширующих сервисах.
    В результате некорректной или небезопасной настройки кэширующих сервисов, например, memcached, возможны инжекты в закэшированные данные “на лету”. В некоторых случаях хакер может внедрять вредоносный код на страницы сайта без непосредственного взлома последнего.
  • Инжекты / инцицированные элементы в системных компонентах сервера.
    Если хакер получил привелегированный (root) доступ к серверу, он может подменить элементы веб-сервера или кэширующего сервера на инфицированные. Такой веб-сервер будет с одной стороны обеспечивать контроль над сервером с помощью управляющих команд, с другой – время от времени внедрять динамические редиректы и вредоносный код на страницы сайта. Как и в случае инжекта в кэширующий сервис, администратора сайта скорее всего не сможет обнаружить факт взлома сайта, так как все файлы и база данных будут оригинальными. Этот вариант наиболее сложный для лечения.
  • Итак, предположим, что сканерами вы уже проверили файлы на хостинге и дамп базы данных, но они ничего не обнаружили, а вирусный по-прежнему на странице или мобильный редирект продолжает отрабатывать при открытии страниц. Как искать дальше?

    Поиск вручную

    В unix сложно найти более ценную пару команд для поиска файлов и фрагментов, чем find / grep.

    find . -name ‘*.ph*’ -mtime -7

    найдет все файлы, которые были изменены за последнюю неделю. Иногда хакеры “скручивают” дату изменения у скриптов, чтобы таким образом не обнаружить новые скрипты. Тогда можно поискать файлы php/phtml, у которых менялись атрибуты

    find . -name ‘*.ph*’ -сtime -7

    Если нужно найти изменения в каком-то временном интервале, можно воспользоваться тем же find

    find . -name ‘*.ph*’ -newermt 2015-01-25 ! -newermt 2015-01-30 -ls

    Для поиска в файлах незаменим grep. Он может искать рекурсивно по файлам указанный фрагмент

    grep -ril ‘stummann.net/steffen/google-analytics/jquery-1.6.5.min.js’ *

    При взломе сервера полезно проанализировать файлы, у которых установлен guid/suid флаг

    find / -perm -4000 -o -perm -2000

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

    lsof +r 1 -p `ps axww | grep httpd | grep -v grep | awk ‘ { if(!str) { str=$1 } else { str=str»,»$1}}END{print str}’` | grep vhosts | grep php

    Используем мозг и руки для анализа файлов на хостинге
  • Идем в директории upload, cache, tmp, backup, log, images , в которые что-то пишется скриптами или загружается пользователями, и просматриваем содержимое на наличие новых файлов с подозрительными расширениями. Например, для joomla можно проверить.php файлы в каталоге images:find ./images -name ‘*.ph*’Скорее всего, если что-то найдется, то это будет вредонос.
    Для WordPress имеет смысл проверить на скрипты директорию wp-content/uploads, backup и cache каталоги тем.
  • Ищем файлы со странными именами
    Например, php, fyi.php, n2fd2.php. Файлы можно искать
    • по нестандартным сочетаниям символов,
    • наличию цифр 3,4,5,6,7,8,9 в имени файлов
  • Ищем файлы с нехарактерными расширениями
    Допустим, у вас сайт на WordPress или Для них файлы с расширениями.py, .pl, .cgi, .so, .c, .phtml, .php3 будут не совсем обычными. Если какие-то скрипты и файлы с данными расширениями будут обнаружены, скорее всего это будут хакерские инструменты. Возможен процент ложных обнаружений, но он не велик.
  • Ищем файлы с нестандартными атрибутами или датой создания
    Подозрения могут вызывать файлы с атрибутами, отличающимися от существующих на сервере. Например, все.php скрипты были загружены по ftp/sftp и имеют пользователя user, а некоторые созданы пользователем www-data. Имеет смысл проверить последние. Или если дата создания файла скрипта раньше даты создания сайта.
    Для ускорения поиска файлов с подозрительными атрибутами удобно пользоваться unix командой find.
  • Ищем дорвеи по большому числу файлов .html или.php
    Если в каталоге несколько тысяч файлов.php или.html, скорее всего это дорвей.
  • Логи в помощь

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

    • Корреляция даты и времени отправки письма (которые можно узнать из лога почтового сервера или служебного заголовка спам-письма) с запросами из access_log помогают выявить способ рассылки спама или найти скрипт спам-рассыльщика.
    • Анализ трансфер-лога FTP xferlog позволяет понять, какие файлы были загружены в момент взлома, какие изменены и кем.
    • В правильно настроенном логе почтового сервера или в служебном заголовке спам-письма при правильной настройке PHP будет имя или полный путь до скрипта-отправителя, что помогает определять источник спама.
    • По логам проактивной защиты современных CMS и плагинов можно определять, какие атаки были выполнены на сайт и сумела ли CMS им противостоять.
    • По access_log и error_log можно анализировать действия хакера, если известны имена скриптов, которые он вызывал, IP адрес или User Agent. В крайнем случае можно просмотреть POST запросы в день взлома и заражения сайта. Часто анализ позволяет найти другие хакерские скрипты, которые были загружены или уже находились на сервере в момент взлома.
    Контроль целостности

    Намного проще анализировать взлом и искать вредоносные скрипты на сайте, если заранее позаботить о его безопасности. Процедура контроля целостности (integrity check) помогает своевременно обнаруживать изменения на хостинге и определять факт взлом. Один из самых простых и эффективных способов – положить сайт под систему контроля версий (git, svn, cvs). Если грамотно настроить.gitignore, то процесс контроля за изменениями выглядит как вызов команды git status, а поиск вредоносных скриптов и измененных файлов – git diff.

    Также у вас всегда будет резервная копия файлов, до которой можно «откатить» сайт в считанные секунды. Администраторам сервера и продвинутым веб-мастерам можно использовать inotify, tripwire, auditd и другие механизмы для отслеживания обращений к файлам и директориям, и контроля за изменениями в файловой системе.

    К сожалению, не всегда есть возможность настроить систему контроля версий или сторонние сервисы на сервере. В случае shared-хостинга не получится установить систему контроля версий и системные сервисы. Но это не беда, есть достаточно много готовых решений для CMS. На сайте можно установить плагин или отдельный скрипт, который будет отслеживать изменения в файлах. В некоторых CMS уже реализован эффективный мониторинг изменений и механизм integrity check (Например, в Битрикс, DLE). В крайнем случае, если на хостинге есть ssh, можно сформировать эталонный слепок файловой системы командой

    ls -lahR > original_file.txt

    и при возникновении проблем создать новый слепок в другой файл, а затем сравнить их в программах WinDiff, AraxisMerge Tool или BeyondCompare.

    Эпилог

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

    На днях хостинг провайдер reg.ru приостановил работу некоторых PHP функций (в частности mail – отправки сообщений) на сайте одного моего клиента, объясняя это тем, что в аккаунте было найдено вредоносное программное обеспечение, рассылающее спам. Перестала работать и приходить заказы, а это уже убытки. В связи с этим я решил рассказать вам, читатели сайт как проверить свой сайт на вирусы и вовремя удалить вредоносный код.

    Ситуация нередкая, даже этот мой блог дважды становился жертвой взлома. Полностью обезопасить свой ресурс от появления вирусов невозможно, но необходимо свести риск к минимуму. Как правило, злоумышленники используют для проникновения уязвимости CMS, шаблонов оформления или неверные настройки хостинга.

    Как действовать при подозрениях о заражении сайта на вирусы:

  • Проверить сайт на вирусы и найти файлы содержащие вредоносный код (об это будет половина статьи),
  • Удалить или вылечить обнаруженные файлы (вторая половина статьи),
  • Закрыть “дыры” в сайте, через которые проникли нехорошие скрипты.
  • Все 3 случая взлома, с которыми я сталкивался (2 моих и 1 клиентский) происходили по одной причине – на хостинге некоторые папки имели публичные права доступа 777, разрешающие всем желающим записывать туда любую информацию, так что пункт №3 про закрытие “дыр” самый важный. Про него я расскажу в конце.

    Почему неэффективны онлайн антивирусы для сайта

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

    Проблема в том, что такие сервисы как antivirus-alarm.ru , virustotal.com , xseo.in , 2ip.ru и т.д. имеют доступ только ко внешней стороне вашего сайта. Это значит, что они обнаружат вредоносный код только, если он вылезет наружу и будет проявлять какие-то признаки.

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

    Достоинство онлайн антивирусов: Простота использования – написал URL сайта, нажал кнопку и получил результат. Но, не факт, что нашел вирус.

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

    Антивирусные плагины

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

    Одним словом – в критической ситуации может потребоваться полное сканирование всех файлов хостинга, включая тех, что не относятся к CMS.

    Итак, переходим к разделу “Как проверить сайт на вирусы профессиональными способами?”.

    Проверка файлов сайта антивирусом AI-Bolit

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

    Последнее время я пользуюсь для этих целей разработкой Revisium – антивирусом AI-Bolit. Кроме своего антивируса для сайтов, этот сервис участвовал в совместной разработке антивируса для Яндекс.

    Давайте по шагам пройдем все этапы поиска и лечения с помощью AI-Bolit.

    Установка антивируса AI-Bolit

    С этой страницы скачиваете архив с программой для хостинга – https://revisium.com/ai/ (файл небольшой).

    Есть версия для Windows – для ее использования необходимо скачать все файлы сайта с хостинга себе на компьютер.

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


    Распакуйте скачанный архив, в результате, у вас появляется папка с названием аналогичным названию архива – ai-bolit, папка tools и 2 файла.

    Для работы понадобится только содержимое из первой папки (ai-bolit), состоящее из 5 файлов. Необходимо закинуть в корневую папку вашего сайта (туда, где лежит ваш index.php) по FTP или через файловый менеджер эти 5 файлов.


    Настройка программы

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

    1. Настройка глубины сканирования. Она может быть 3 степеней: 0 – быстрая проверка, 1 – экспертная, 2 – параноидальная, по умолчанию стоит 1. Отвечает за этот параметра строка:

    define("AI_EXPERT_MODE", 1);

    define ("AI_EXPERT_MODE" , 1 ) ;

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

    define("PASS", "1122334455");

    define ("PASS" , "1122334455" ) ;


    После сохранение настроек переходим к запуску сканера.

    Запуск программы

    Дальнейшие действия будут проводиться через браузер. В адресной строке вам необходимо набрать URL ведущий на запускающий файл ai-bolit – ваш-сайт/ai-bolit.php?p=указанный-пароль .

    Через некоторое время сканирование всех файлов вашего сайта будет завершено и вы получите отчет вот такого вида:


    Проблемы при запуске

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

    В этом случае есть 3 варианта:

  • Хостер сам осуществляет сканирование на вирусы и предупреждает клиентов об их появлении.
  • Хостер может разрешить вам проверку после запроса в службу технической поддержки.
  • Скачивайте файлы сайта на компьютер и проверяйте версией антивируса для Windows.
  • Анализ результатов

    Полученный при сканировании отчет можно использовать двумя способами – передать его специалисту, чтобы он разобрался с его содержимым или самостоятельно просмотреть каждую подозрительную строчку. Нередко, за вирусы принимаются особенности шаблонов или специализированные скрипты (особенно на параноидальном уровне проверки).

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

    Закрываем уязвимости сайта

    Теперь об устранении причин заражения. Выше я говорил, что чаще всего вирусы заливаются через папки, имеющие общий доступ для всех – права доступа 777 (rwxrwxrwx).

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

    Для того, чтобы заражение не повторилось после вашего лечения, надо проверить каждую папку, в которой Манул нашел инфицированные файлы и, если надо, сменить права – запретить общий доступ – выставьте свойства 755 (rwxr-xr-x).

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

    На этом у меня сегодня все – здоровья вашим проектам.

    Полезные статьи:


    • Как заработать деньги в интернете новичку – 23…


    • Что такое блог, как его создать, раскрутить и как…