Обзоры расширений Joomla

 

В предыдущих частях статьи «Защита Joomla (часть 1, 2, 3, 4, 5, 6)» я рассмотрел различные аспекты повышения безопасности сайта на Joomla от взлома. Но ни один из этих способов, ни все вместе, не дадут вам 100% гарантии того, что сайт не взломают. В этой статье будет рассмотрена ситуация, когда защита сайта Joomla (и любого другого) оказалась не эффективной.

Почему вирус на сайте это плохо

Чем плохо то, что сайт взломан – очевидно. Даже если не нарушена его нормальная работа, то личные данные пользователей могут быть украдены и использованы в неправомерных целях. Это может крайне негативно сказаться на репутации Вас, Вашего сайта и\или Вашей фирмы. Кроме этого украденными данными могут воспользоваться Ваши конкуренты.

Помимо кражи данных, в результате взлома, Ваш сайт может быть непосредственно заражён вредоносным кодом или перенаправлять на сайты, заражённые вредоносным кодом. Это достаточно быстро будет обнаружено антивирусными средствами (например, Norton Internet Security, Kaspersky Internet Security и так далее) и «репутиционными» сообществами (например, WOT, Norton Safe Web и так далее). В результате этого доступ к Вашему сайту будет блокироваться. А это значит уменьшение количества посетителей. Если вредоносный код на Вашем сайте найдут поисковые системы, то они могут перестать выдавать Ваш сайт в результатах запросов пользователей. Что может существенно снизить посещаемость Вашего сайта. Такие браузеры как Mozilla Firefox, Google Chrome и Internet Explorer оснащены механизмами предупреждения пользователей о вредоносности сайта. Всё это может в считанные дни уменьшить посещаемость Вашего сайта во много раз.

В интернете есть понятие «SEO вирусы». Подобные вирусы перенаправляют пользователей с Вашего сайта на другие ресурсы (не обязательно заражённые вредоносным кодом). Также эти вирусы могут создавать ссылки с Вашего сайта на другие. Это методы «чёрной» SEO оптимизации. От этого может пострадать репутация Вашего сайта. Вплоть до исключения его из выдачи поисковых запросов.

Как узнать, что на сайте вирус

Очень важно постоянно уделять внимание сайту. Иногда результат взлома виден буквально сразу. Это может быть подмена страницы сайта, появление баннера и так далее. Иногда, в следствие взлома, появляются ошибки в работе или «искажение вёрстки» сайта. Но злоумышленнику не всегда выгодно оставлять следы своего пребывания на сайте. Для него, например, выгоднее разместить вредоносный код так, чтобы ни Вы, ни посетители максимально долго об этом не знали. Тогда результат его «работы» будет дольше приносить ему выгоду.

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

В статье «Защита Joomla (часть 5). Спам на сайте» я рассматривал важность таких сервисов как:

Из этих сервисов Siteguard, Norton Safe Web, Веб-мастер Google и Веб-мастер Яндекс позволяют находить вредоносный код на сайте. Поэтому лучше заранее побеспокоиться о подключении и регистрации Вашего сайта в этих системах. Siteguard определяет вредоносный код не только по сигнатурам в базе данных, но и позволяет находить неизвестный код (не обязательно вредоносный) ранее отсутствующий у Вас на сайте. Более детально об этом сервисе можно прочитать в моей статье «Обзор Siteguard. Проверка сайта на вирусы».

Также стоит «прислушиваться» к комментариям и письмам пользователей, так как они могут быстрее чем Вы выявить что-то подозрительное. Плюс ко всему у разных пользователей может быть установлено разное антивирусное программное обеспечение. Это даёт возможность «смотреть» на Ваш сайт с позиции нескольких антивирусных компаний. Но для этого у Вас должна быть «тесная» связь с Вашими посетителями. Очень важно, чтобы связь посетителей с администратором и\или модераторами сайта была максимально лёгкой и разноплановой (электронная почта, ICQ, социальные сети, система «тикетов», чат, форум, комментарии и так далее).

Можно самому периодически посещать свой сайт из операционных систем с разными антивирусными средствами. Так как, например, Norton Internet Security ещё не сканировал Ваш сайт и не нашёл там вредоносный код, а AVAST уже это сделал.

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

Существуют специальные плагины и компоненты Joomla, которые позволяют отслеживать попытки атаки и\или несанкционированного проникновения и сохраняют данную информацию в отчётах. Например, jSecure Authentication (Детальнее об этом расширении можно почитать в моей предыдущей статье «Обзор jSecure Authentication. Защита админки Joomla».), Marco's SQL Injection, RSFirewall и другие. Давайте рассмотрим вопрос что делать, если защита сайта Joomla дала сбой. То есть выясним как проверить сайт на вирусы и выполнить удаление вирусов с сайта.

Что делать, если на сайте вирус

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

Поиск

Лучше, чтобы Ваш сайт был подключён к таким системам как Siteguard, Norton Safe Web, Веб-мастер Google и Веб-мастер Яндекс в таком случае поиск вредоносного кода на сайте стоит начать именно с просмотра информации о сайте в этих системах. Скорее всего будут указаны фрагменты вредоносного кода и его местоположение (имена файлов, адреса страниц). Если на сайте установлены какие-либо компоненты обеспечения безопасности, то посмотрите их отчёты. Стоит заглянуть в логи самой Joomla и непосредственно в логи панели управления хостингом. Если Вы догадываетесь (или знаете), в какой временной промежуток предположительно был сделан взлом, то можно запросить детальные логи по Вашему сайту у службы технической поддержки хостинга. Смысл всего вышеизложенного в том, чтобы иметь на руках как можно больший и точный объём информации не только для поиска и устранения последствий взлома, но и для минимизации рисков его повторного совершения.

Настоятельно рекомендую максимально полно записывать в файл все действия, которые Вы производите. Например, нашли фрагмент вредоносного кода, сохраните его в текстовый документ с описанием того, где вы его нашли (в каком файле и в какой его части). Это необходимо для того, чтобы после очистки сайта поискать как можно больше информации об этом «вирусе». Возможно, что Вы найдёте способ, как обезопасить свой сайт от подобного случая в дальнейшем. Плюс к этому Вы сможете поделиться своим опытом с другими людьми на форумах.

Для поиска заражённого файла можно проверить даты модификации всех файлов Вашего сайта на FTP. Это можно сделать «автоматически». Например, если Вы знаете, что в последний раз меняли что-то в файловой структуре сайта 12.12.2011, то при помощи FileZilla FTP Client или Total Commander (или другого FTP клиента) можно найти все файлы, которые были изменены после этой даты. Именно с них можно и начать. Тем более, что Вас не будут, скорее всего, интересовать изображения, видео, аудио и так далее. Так же из этого списка следует исключить временные файлы. Рекомендую особое внимание уделить файлам шаблона сайта.

Для браузера Mozilla Firefox есть специальное расширение Malware Search. Это расширение позволяет производить поиск вредоносного кода на сайте (выделив подозрительный фрагмент кода мышью) в различных вирусных базах. Эффективность данного метода меньше, чем те что описаны ниже, но возможно именно он Вам и поможет.

Если при взломе сайта был изменён один из фалов Joomla, то RSFirewall поможет его найти. Также при тестировании системы RSFirewall помогает обнаружить множество уязвимостей безопасности, может их устранить и\или дать советы о том, как это сделать

Тем, кто хочет попробовать найти вирус самостоятельно я (по материалам сайта Antivirus-alarm.ru) предлагаю небольшую инструкцию.

  1. В исходном коде HTML страниц произведите поиск по словам «iframe» и «javascript». Проанализируйте найденные результаты. Выясните, какие из них принадлежат Вашему сайту, а какие нет. Особое внимание уделите iframe малой или нулевой ширины и высоты. Обратите внимание на javascript с использованием eval, unescape, String.fromCharCode, а также подвергнутый обфускации код. В javascript особое внимание надо обратить на document.write с другим вписанным javascript или iframe, либо вписанным meta-перенаправлением, а также javascript-перенаправлением. Вирусный код может маскироваться под счётчики посещаемости. Иногда производится полная замена обфусцированной javascript библиотеки наподобие jquery на такую же, но содержащую вирус. В таких случаях необходимо сверить размеры активной библиотеки с размерами того же файла в имеющейся у Вас резервной копии сайта. Для сравнения размера большого количества файлов можно воспользоваться файловым менеджером. Например, Total Commander. Если в iframe, javascript или в перенаправлении фигурирует любой чужой домен (не Ваш и не размещённый там Вами) – это сигнал тревоги.
  2. Проведите такое же исследование по подгружаемым внешним javascript файлам. Во внешних css проведите поиск behavior, содержащих чужеродный код.
  3. Если на сайте есть картинки, подгружаемые с других сайтов – проверьте, что выдаётся при запросе браузером этих картинок. Если вместо картинки выдаётся перенаправление, запрос пароля или иное чужеродное содержимое – это как правило вирус.
  4. Перечисленные в пунктах 1-3 действия необходимо выполнить с запросом страницы и скриптов несколько раз, в идеале с разных IP адресов, с разными cookies и разными браузерами (для этих целий можно использовать виртуальную машину с другой операционной системой). Так как вирусный код может выдаваться случайным образом либо только тем браузерам, которые уязвимы, либо только поисковому роботу и так далее.
  5. Сделайте дамп базы данных и изучите его аналогично пунктам 1-3, но с учётом того, что в базе данных код может быть преобразован в мнемоники и вместо <iframe> будет &lt;iframe&gt. Анализ можно провести при помощи Notepad++.

Поиск вирусов на сайте при помощи Virustotal

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

  1. AhnLab
  2. AntiVir
  3. AntivirusVersion
  4. Antiy-AVL
  5. Avast
  6. AVG
  7. Avira
  8. BitDefender
  9. ByteHero
  10. CAT-QuickHeal
  11. ClamAV
  12. Commtouch
  13. Comodo
  14. DrWeb
  15. Emsisoft
  16. eSafe
  17. eTrust-Vet
  18. Fortinet
  19. F-Prot
  20. F-Secure
  21. G-Data
  22. Ikarus
  23. Jiangmin
  24. K7AntiVirus
  25. Kaspersky
  26. Malc0de Database
  27. MalwareDomainList
  28. McAfee
  29. Microsoft
  30. NOD32
  31. Norman
  32. nProtect
  33. Opera
  34. Panda
  35. ParetoLogic
  36. PCTools
  37. Phishtank
  38. Prevx
  39. Rising
  40. Sophos
  41. SUPERAntiSpyware
  42. Symantec
  43. TheHacker
  44. TrendMicro
  45. TrendMicro-HouseCall
  46. VBA32
  47. VIPRE
  48. ViRobot
  49. VirusBuster
  50. Websense ThreatSeeker
  51. Wepawet

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

Virustotal

Отчёт анализа сайта (продолжение)

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

Все загружаемые файлы до и после архивации проходили проверку Norton Internet Security 2012 с актуальными вирусными базами.

Если на сайте есть вредоносный код и его нашла хотя бы одна антивирусная компания, то напротив имени этой компании в столбце «Result» будет показано имя данной угрозы. Это поможет Вам в поиске самого кода вируса на сайте, способа его устранения и, возможно, советов по устранению уязвимости, при помощи которой этот вредоносный код попал к Вам на сайт.

Но я также настоятельно рекомендую произвести анализ Вашего сайта при помощи Virustotal на наличие вирусов, выслав содержимое FTP сайта в ZIP архиве. Это подойдёт для небольших сайтов. Все файлы высылать не следует. Максимальный объём файла архива, который может проверить Virustotal 20 Мб. Сначала скачайте всё содержимое FTP сайта к себе на компьютер. Удалите (например, при помощи Far Manager) из всех папок сайта все медиа-файлы (изображения, видео, аудио, анимацию (Flash) далее). Удалите все архивы (GZIP), резервные копии (BAK) и все файлы, которые Вы предоставляете пользователям для загрузки. Рекомендую удалить файл «configuration.php» и другие файлы, которые содержат конфиденциальную информацию. После этого запакуйте все файлы сайта в ZIP архив (они должны быть не вложены в папку) и отправьте на анализ. Он займёт немного времени.

После чего Вы увидите отчёт о проверке содержимого этого файла (по сути Вашего сайта) (рисунок ниже).

 

Отчёт о проверке файла

 

Если на сайте есть вредоносный код и его нашла хотя бы одна антивирусная компания, то напротив имени этой компании в столбце «Result» будет показано имя данной угрозы. Обратите внимание, что одна из антивирусных компаний посчитала, что на сайте, якобы, есть вредоносный код «PUA.Script.Packed-2» (рисунок ниже).

 

Отчёт о проверке файла (найдена возможная угроза)

 

Но «PUA.Script.Packed-2» не является вирусом. Это javascript библиотека jquery.

ClamAV распознает разные версии упакованного варианта библиотеки как PUA.Script.Packed-1 или PUA.Script.Packed-2.

jQuery JavaScript Library 1.2.6 (файл jquery.min.js) распознается как PUA.Script.Packed-1

Код этого файла (начало и окончание (без пробелов)):

e v a l ( f u n c t i o n ( p , а , с , k , е, r ){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);

...

.children("div").attr("class") == "content-opened" ){$(this).parent(".part").children("div").attr("class", "content");}}); });</p>

jQuery JavaScript Library v1.4.2 (файл jquery.min.js) распознается как PUA.Script.Packed-2

Код этого файла (начало и окончание):

( f u n c t i o n ( А , w ) { f u n c t i o n ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);

return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):

c.globalEval(b.text||b.textContent||b.innerHTML||"");

...

e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

Разумеется, jquery не является вирусом (описание «PUA.Script.Packed-1» и «PUA.Script.Packed-2» взяты с сайта Antivirus-alarm.ru).

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

Все загружаемые файлы до и после архивации проходили проверку Norton Internet Security 2012 с актуальными вирусными базами.

Устранение

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

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

В статье «Защита Joomla (часть 4). Резервное копирование сайта» я рассматривал важность создания логов и резервных копий сайта. Иногда проще заменить изменённые файлы «чистыми» копиями.

Сразу же после очистки сайта приступите к поиску и устранению причин (если Вы их до этого не нашли) заражения. Это может быть украденные логины и пароли, вирус на Вашем рабочем компьютере, необновлённая Joomla и\или её расширения и так далее. Но я настоятельно рекомендую сменить все пароли от всех учётных записей независимо от того, какой был вирус. Особенно критичны учётные данные от FTP, панели управления хостингом, панели управления сайтом, доступа к базе дынных сайта.

Если Вы не смогли найти и устранить последствия взлома самостоятельно, то нужно обратиться к специалистам. Но данный совет не подходит для тех, чей сайт не является средством заработка или подтверждения солидности организации. Так как услуги специалистов не бесплатные. Как пример такого рода фирмы можно рассмотреть Antivirus-alarm.ru. На момент написания статьи (15.12.2011) на официальном сайте этой фирмы были указаны следующие цены на услуги:

  • автоматическая проверка сайта на вирусы каждые 10 минут – 24.33 грн. (100 рублей) в месяц.
  • Резервное копирование сайта с возможностью восстановления состояния сайта на любую дату – 24.33 грн. (100 рублей) в месяц.
  • Очистка сайта от вирусов с консультацией по предотвращению дальнейшего заражения – 1216.5 грн. (5000 рублей).
  • Очистка сервера. Очистка операционной системы и всех сайтов на сервере, укрепление защиты сервера – 12165 грн. (50 000 рублей).

Тем, кто хочет попробовать удалить найденный вирус самостоятельно, предлагаю небольшую инструкцию (по материалам сайта Antivirus-alarm.ru).

  1. Скачайте себе на локальный компьютер все файлы сайта, сделайте их резервную копию перед проведением очистки.
  2. Проведите полнотекстовый поиск (по содержимому файлов, а не только по их заголовкам). Ищите доменные имена, найденные в результате поиска вредоносного кода в инструкции выше. Можно производить поиск прямо на сервере, например при помощи Total Commander или FileZilla FTP Client.
  3. Найдите на сервере все файлы сайта, которые были изменены в день заражения сайта, и изучите их на предмет внешних нежелательных дополнений. При анализе нежелательных дополнений может помочь знание кода, выясненного в ходе диагностики.
  4. Удалите все чужеродные вхождения, обнаруженные в ходе работы по перечисленным выше пунктам.
  5. Проверьте работоспособность сайта.

Более развёрнуто данная инструкция представлена на сайте Antivirus-alarm.ru. Лучше, что бы удаление вирусов с сайта проводил опытный человек. Так Вы минимизируете риск навредить своему сайту.

После всех вышеперечисленных действий направьте свои усилия на повышения безопасности Вашего сайта.

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

В следующих статьях я рассмотрю некоторые расширения Joomla, которые помогут Вам повысить безопасность сайта от взлома, упростят поиск вирусного кода на сайте и обеспечат шифрование персональных данных Ваших пользователей в базе данных сайта. В статье «Защита Joomla (часть 8). Бесплатный SSL сертификат» будет рассмотрен вопрос получения бесплатного SSL сертификата и установки его на сервер.

 

Полезные ссылки:

Похожие статьи:
При скачивании файлов менеджерами загрузок возможны проблемы.
ФайлОписаниеРазмер
Скачать этот файл (report_virustotal.zip)Отчёты Virustotal 587 Кб