Калькулятор создания сайта Антивзлом Резервное копирование Антивирус

Продвижение сайтов
О компании | Контакты | Клиенты
Услуги и ценыЦена, руб.
Сайт-визитка

ровно 24000

Интернет магазин

от 75000

Корпоративный сайт

от 115000

Продвижение по словам

от 200/слово

Продвижение по трафику

от 0,85/уник

Яндекс Директ

от 20000

Техподдержка сайта

от 10000

SMM

от 60000

Все цены

8 (495) 988 4454

Вирусы на сайте на Joomla и других CMS

C ноября 2012-го года Joomla бьет рекорды заражаемости, в связи с этим много людей обращается за очисткой сайта от вирусов. И каждый раз неприятным сюрпризом для них становится то, что очистка с гарантией — это не бесплатно, не всегда моментально и не всегда без побочных эффектов. А ведь и заражения, и расходов на лечение можно было избежать, если позаботиться о безопасности ДО того, как появились проблемы.

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

 

Как действует злодей?

Ахилл и черепаха

Никто не идёт целенаправленно ломать конкретный сайт, это не выгодно (за исключением тех дел, где замешаны спецслужбы и пр.). Конкретный сайт обычно не взламывают интеллектуально, а временно выводят из строя, перегружая многочисленными запросами (DDOS). Или пытаются подобрать пароль — меняйте, если у вас короткий. В общем, если сайт взломан — это 99% не злые конкуренты, а просто оптовая раздача. Ничего личного.

По сути, большинство хакеров ищет, что «плохо лежит». Есть давно известные уязвимости популярных движков, таких как Joomla, WordPress, DLE, ShopScript. Они опубликованы на сайтах поддержки, на форумах по безопасности, но их не читает никто. Кроме хакеров.

Дальше дело техники. Простой способ — искать в Гугле по фразам наподобие "inurl:id=", где вместо id — переменная, упомянутая в описании уязвимости. Это даст список сайтов, у которых движок принимает через адресную строку нужные переменные. В которые можно попробовать подставить не обычную цифру, а гадкий код, основанный опять же на общеизвестном описании уязвимости. Более продвинутый вариант — делать роботов, которые обходят сеть и ищут уязвимые движки. Такие роботы в случае с Joomla проверяют, есть ли на сайте папка /administrator/. Постоянно ходят по сети и роботы, которые нащупывают утилиту phpmyadmin. Именно поэтому ни в коем случае нельзя размещать её в папках с очевидным названием phpmyadmin, myadmin и тому подобными — все эти слова есть в словарях роботов. Давно существуют весьма продвинутые, готовые программы для этого дела.

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

Да, проводятся даже соревнования на самый короткий бэкдор, на самый незаметный бэкдор, с заманчивыми призами. Обычно таких бэкдоров на взломанном сайте помещается несколько. При оптовом, автоматическом заражении бэкдор часто пишется просто во все файлы подряд. При «ручной работе» бэкдоры прячутся редко, но метко. Высший пилотаж: альтернативный синтаксис php, а ещё круче — «размазывание» кода бэкдора по всему движку, так что строки зловреда перемешиваются с кодом сайта и ничем не выделяются. Последняя разновидность, самая коварная и неуловимая, обычно встречается в зануленных движках. По этой причине специалисты Kraftwork обычно берутся за очистку нулёных сайтов, но не дают гарантию на них (в то время, как гарантия после очистки сайтов на лицензионных движках — 1 год).

Закрепившись на объекте, хакер обычно выжидает пару недель — чтобы даже самые старые бэкапы сайта были с бэкдорами. Затем наступает время монетизации. На сайт помещается «боеголовка» вируса — редирект на вредоносный сайт, попап или попандер, загрузчик троянов, или ещё что-нибудь, приносящее деньги.

 

Почему так?

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

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

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

 

Удаление вируса: работа над ошибками

Почти все владельцы сайтов уверены в двух вещах:

1. «Сайт по умолчанию в безопасности. Беспокоиться стоит только, если появились враги-конкуренты».


Это не совсем так.


2. «Если что, всегда есть автоматические антивирусные сканеры, которые бесплатно или за малую копейку удалят любой вирус».


Это совсем не так.


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

Будет повторное заражение или нет — зависит от сайта, вероятность процентов 60, что будет. Не заражают повторно только те сайты, которые получили своё оптом, и у которых нет посещаемости — нет смысла возиться. Достается и соседям: если на одном хостинг-аккаунте несколько сайтов, зараза для всех одна. Вебшелл или бэкдор на php видит файлы остальных сайтов и вписывает в них вредоносный код точно так же, как и во взломанный сайт. Вероятность того, что соседи затронуты, примерно 50%. По этой причине Кролики не берутся чистить один из сайтов площадки, не трогая остальные. Остальные могут заразиться бэкдорами от него, а он от них. При повторных заражениях и по сайтам с приличной посещаемостью (больше 500 в день) вероятность заражения соседей почти 100%.

Видимую часть вируса — «боеголовку» — действительно иногда можно удалить полуавтоматическими методами. С бэкдорами не так просто. Это творчество, не зря ведь соревнования проводят. И противопоставить этому тоже можно только творческий подход к поиску. Причём изобретать надо на скорость, время ограничено. Тут как со Змей-Горынычем, если хоть один бэкдор останется не удаленным, мигом вырастут новые, взамен «отрубленных». Если вам повезло, и злодей оказался лентяем, то удалить бэкдоры поможет простой способ — скачать себе файлы сайта и проверить их антивирусом. Простецкая и старая зараза, уже осевшая во всех антивирусных базах, будет вырезана таким способом. Жаль, что такой простой и древней заразы в практике мало. Потому что имеются платные сервисы для хакеров для опробования новых вирусов. Эти сервисы проверяют вирус всеми антивирусными базами с особой тщательностью и полной имитацией «жертвы» — более долго и обстоятельно, чем бесплатные антивирусные сервисы для людей. Только опробованный на таком полигоне вирус, неуловимый для всех существующих алгоримов, выпускается в сеть. Хорошо, что хоть у некоторых злодеев не хватает денег и трудолюбия свои вирусы предварительно опробовать.

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

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

SFTP (с использованием реквизитов ssh доступа) тоже лучше бы ограничивать по ip, или делать авторизацию сертификатом, плюс обязательным является fail2ban на ssh — это когда при трех неправильных попытках авторизации ip банится на 15 минут. Впрочем, если ваши разработчики хотя бы используют sftp вместо ftp и не хранят пароли в файл-менеджере, а копи-пастят их из блокнота или ворда, — это уже огромный шаг вперед.

Закрытие записи в файлы на шаред-хостингах основано на том, что там есть пользователь-клиент, от которого работает ssh и ftp, и обычный пользователь www-data, от которого работает apache и (если есть) nginx. Бэкдор может писаться в те файлы, которые принадлежат пользователю www-data. Поэтому желательно установить владельцем всех файлов ssh/ftp пользователя, а не пользователя www-data. При этом придётся сделать исключение для тех файлов, в которые движку необходимо делать запись.

Аналогично и с директориями. Поскольку придётся оставить некоторые директории доступными на запись для пользователя www-data, то в эти директории необходимо положить закрывающий .htaccess. Если это папки загрузки изображений, и картинки эти раздаются апачем, а не nginx, то надо отключить php в этой папке. Другие языки лучше отключить в рамках всего хостинг-аккаунта, если они не используются в движке вашего сайта. Для сайтов на Joomla и других популярных движках это так.

 

Ещё один миф: по логам можно всё отследить

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

Потратив вечер, можно там найти, что с такого-то малайского ip адреса к папке /administrator/ был сделан POST запрос. И через секунду с панамского ip был сделан POST запрос на /index.php. Кто эти люди? Что именно засунули в сайт в теле POST запроса? Это кануло в Лету, остается только локти кусать.

При проведении очисток в Kraftwork всегда настраивают лог самого содержимого post запросов, а не просто их наличия. Это действительно помогает работать не вслепую и отследить злодейские действия. И всё же: узнать ip и прийти домой к злодею — это из области анекдотов про Путина.

А вот банить злодейские ip — не такая уж плохая идея, особенно, когда дело касается защиты от DDOS. Потому что да, их может быть очень много, десятки и даже сотни тысяч, если хакер богат, но всё же не до бесконечности. Из них, в лучшем случае, пару тысяч адресов будут русские ip. То есть можно спокойно банить их, не опасаясь отрезать основную аудиторию российских пользователей.

 

И что, я могу потерять сайт из-за вируса?

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

Потерять сайт — это вряд ли. Потерять позиции в поисковиках, аудиторию сайта и деньги — это да, часто случается из-за вирусов.

 

Что же делать?

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

Следить за сообщениями на сайте поддержки CMS сайта, выполнить простые рекомендации насчет ftp из этой статьи, иметь бэкапы за пару месяцев — и вероятность проблем стремится к нулю. Конкретно по Joomla обязательный пакет — это права на файлы и дополнительная http-авторизация на админку.

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

Если сайт хоть для чего-то нужен, оно того стоит.

%system getOuterContent('./tpls/content/social2.inc.tpl')%
%system getOuterContent('./tpls/content/comment3.inc.tpl')%

О компании

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

  Контакты

Где они живут? И так ли глубока кроличья нора?..

  Клиенты

Счастливые участники кроличьих бегов

 
Вирусы на сайте на Joomla и других CMS: советы и современные решения
%system getOuterContent('./tpls/content/counters.inc.tpl')% %system getOuterContent('./tpls/content/livetex.inc.tpl')%