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

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

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

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

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

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

Ниже я приведу несколько команд, которые можно применять при поиске зараженных файлов и/или загруженных к Вам на сайт 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-запросы из вывода, с помощью которых мог быть залит вредоносный файл.

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

Всем здравствуйте! Сегодня поговорим о вредоносном коде на сайте . Расскажу вам неприятную историю, которая произошла с моим блогом в первый год его существования. А вообще-то, на написание этого поста меня подтолкнула моя постоянная читательница Галина – автор замечательного блога про рукоделие “Дамские пальчики”.

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

Ну, а я продолжу свой рассказ, про то, как когда-то нашел у себя на блоге вредоносный код и избавился от него…

История начинается одинаково – как у Галины. С сервиса Яндекс.вебмастер получил я сообщение, что на моем сайте находится вредоносный код. Вообще, при ведении блога неприятности случаются постоянно.

Первая мысль, когда такое происходит — за что? Ну, а если поразмыслить немного, то вопрос этот сам себе задаешь уже несколько иначе — для чего? А для того, разумеется, чтобы человек, ведущий блог, не замыкался на вариантах из нескольких рутинных действий: написал статью – разместил – ответил на комментарии – установил новый плагин или удалил какой-нибудь, ставший не нужным… И так по кругу 🙂 Про раскрутку не упомянул, ну да ладно…

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

Вредоносный код — что это такое?

Что значит вредоносный код? Это php или html код, внедренный вами или ботом в страницы вашего блога. Почему вами? Вот один из вариантов. Смотрите, вам написали на почту, что хотят купить на вашем блоге рекламу или разместить рекламный пост. Заманчиво, правда? Вы, по незнанию и неопытности естественно соглашаетесь, ведь это же здорово – первый заработок!

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

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

А бывает еще и так, что пытаясь найти какую-либо информацию в сети, натыкаешься на сайт, где вместо привычного интерфейса видишь грозное предупреждение на красном полотнище: Сайт заражен вредоносным кодом и представляет угрозу для вашего компьютера. Это хорошо, так как срабатывает ваша антивирусная программа + системная безопасность компьютера. Ну, а если у вас не установлен антивирус, либо он не сработал, как следует, а вы перешли по зараженной ссылке, либо скачали на свой компьютер зараженную программу или понравившийся трек или картинку??? Тогда пиши – пропало…

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

До того, как я заказал платно чистку своего блога на фриланс.ру, я проверил его на нескольких сервисах, одни из которых нашли эту “заразу”, а некоторые не заметили. Но, может быть я неправильно ими пользовался? Все может быть…

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

Итак, какие есть возможности проверить сайт на наличие этой напасти? В статье приведу пример нескольких сервисов, которые выдавали разные ответы в отношении зараженности моего ресурса.

Что это за проверка, если на одном сервисе вредоносный код найден, а на другом, претендующем на звание эксперта в этом деле, все отлично, ничто не найдено. Успокоится человек, а вредоносный код никуда не денется. А вдруг они там и размножаться умудряются? Что случилось на моем сайте?

У меня было два “вредных” кода. И все два неизвестным образом поселились в теме блога. Видимо она была дырявая, чем и воспользовались злоумышленники, а может быть просто бот-программа подселила этот код ко мне в шаблон. Рекламу я тогда не ставил – рано было, да и если бы поставил, то только от Яндекса или Гугла.

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

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

Пишет же Яндекс, что это серьезная проблема, значит, и варианты ее решения могут быть гораздо сложнее. Найти – нашел, а как удалить – не знаю, не опытный ведь тогда был. Вот и пришлось обращаться к фрилансерам. За 500 рублей один хороший дяденька почистил мой блог от “заразных какашек”.

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

Вот список сервисов по поиску зараженных ссылок и кода, и почти обо всех я прочел в интернете вполне положительные отзывы:

Safeweb.norton.com - работает, но по отзывам на одном сайте, сервис достаточно кокетливый: то диагностирует наличие вредоносного кода, то скрывает его. Ему я бы не доверял.
Virustotal.com – из рассказа очевидца: проверка подозрительной ссылки и всего сайта в целом производилась с помощью 33 антивирусных сканеров в on-line режиме. Наличие вредоносного кода подтвердилось. Клиент остался доволен.
Virusnasaite.ru – обычная проверка, никаких эмоций.
Siteguard – можно добавлять несколько URL адресов сайтов.

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

Зачем ждать очередного письма от Яндекса? Не лучше ли самому хотя бы раз в месяц проверять свой сайт на наличие вирусов? А если они все же появятся, то определить хотя бы приблизительно временные рамки их проникновения будет совсем не лишним. Да и откат на несколько месяцев или на один месяц — разница есть?

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

До встречи на Seo bloge Fomika…

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

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

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

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

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

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

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

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

Остановите веб-сервер, чтобы оградить посетителей сайта от потенциальной опасности. Затем проверьте антивирусом файлы веб-сервера и все рабочие станции, с которых администрируют сервер (можно использовать бесплатные антивирусные утилиты) и смените все пароли: root, FTP, SSH, от административных панелей хостинга и CMS.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как узнать что сайт стал жертвой атаки, в ходе которой на него попал вредоносный код? Первое и самое простое - сайт перестал работать или выглядит не так, как должен выглядеть "здоровый" ресурс. Это может проявиться в появлении нежелательного контента или исчезновении Вашего, страницы не загружаются или загружаются с ошибками. К тому же, если Ваш сайт добавлен в Яндекс или Google веб-мастер, Вы с большой вероятностью получите уведомление от этих систем о вредоносном коде. В некоторых случаях об уязвимости Вы можете узнать от своего браузера (скриншот из Google Chrome).

Крайне нежелательно в таких случаях пытаться открывать страницу дальше.

Ищем вредоносный код на сайте

Разбираться в мотивах человека, который установил на Ваш сайт вредоносный код, а тем более искать его, мы не будем. Наша основная цель - это найти "плохой" код и удалить его. Для начала необходимо просканировать ресурс, чтобы обнаружить все "зараженные" страницы. Это позволяет сузить круг поиска. К примеру, вредоносный код мог быть помещен в виде Javascript скрипта на какую-нибудь отдельную страницу, скажем в содержимое поста или комментарий к нему. В таком случае проблема может быть решена через админку сайта удалением такого кода из содержимого/комментария. В противном случае, приходиться искать его в исходном коде Вашего ресурса.

Для сканирования сайта на предмет уязвимостей можно воспользоваться https://sitecheck.sucuri.net В итоге можно увидеть следующее:

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

Получить доступ к исходному коду сайта можно несколькими путями:

  • Самый простой способ - через админку сайта. В Wordpress например, "Внешний вид" -> "Редактор". Такой способ не совсем удобен из-за отсутствия поиска по содержимому файлов, поэтому приходится очень тщательно просматривать их все по отдельности и искать "плохой" скрипт.
  • Многие блоги, корпоративные ресурсы, интернет-магазины расположены на серверах, к которым можно получить доступ через панель управления хостингом. Зачастую такой панелью является cPanel. Для получения доступа необходимо знать логин и пароль. Они обычно высылаются при покупке хостинга лицу, совершающему сделку. После входа в панель управления можно просмотреть абсолютно все исходные файлы через "Диспетчер файлов" и попытаться найти те, которые содержат обнаруженный вредоносный скрипт.
  • Самый удобный способ - через FTP-клиент. Если Вы "общаетесь" со своим ресурсом с помощью FTP-клиента, то без труда сможете запустить поиск по содержимому исходных файлов.
  • Не пытаетесь найти вредоносный код в исходных файлах Вашего сайта, подставив его в поиск полностью. Выделите его уникальную часть, как например googleleadservices.cn в нашем случае, и повторите поиск несколько раз.

    Удаление вредоносного кода

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

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

    Профилактика

    Всегда лучше предупредить, чем лечить, поэтому я рекомендую:

  • Использовать "хорошие" пароли для все пользователей сайта (длинные, с цифрами, заглавными и прописными буквами).
  • Серьезно относиться и фильтровать контент, который генерируется на сайте не Вами (гостевые посты, комментарии).
  • Не ждать уведомлений, а периодически сканировать сайт на наличие уязвимостей.
  • Своевременно обновлять систему управления сайтом (Wordpress, Joomla, Drupal, ...).
  • С вопросами и замечаниями прошу в комментарии.



    Просмотров