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

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

 

Актуальная стоимость работ указана на странице: «Лечение сайтов (CMS Joomla) от вирусов».

Зачем хакеры взламывают сайт?


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

Продвижение сайта злоумышленника.


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

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

Взлом для повышения самооценки хакера


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

Рассылка спама «от лица» вашего сайта.


В 2015 году по этой причине происходило большинство взломов.

Каков алгоритм работы вредоносных скриптов и злоумышленников?

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

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

Результат проникновения на сайт — появление многочисленных файлов скриптов в разных каталогах Joomla.

Имена файлов и их размещение в каталогах таковы, что на первый взгляд отличить вредоносные скрипты от «родных» файлов Joomla непросто. По этой причине нередко «лечение» сайта оказывается неполным и спустя несколько дней или недель от имени вашего домена уходит очередная порция спама.

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


 

Что делать, если сайт на Joomla взломали?


 

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

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

  1. Встроенный в хостинг панель антивирус. Он, как правило, не производит лечение, но поможет найти значительную часть вредоносных скриптов

  2. Доступ по SSH. Без него говорить о полноценной борьбе с вирусами невозможно

  3. Оперативная и квалифицированная техподдержка

  4. Ежедневное резервное копирование. Идеальный вариант - возможность восстановить или скачать копию месячной давности


 

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

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

ООО «Регистратор доменных имён РЕГ.РУ»


Совершенно другая история, если вы арендуете сервер целиком. Первый, третий и четвертый пункты будут целиком на вашей совести. А пункт два будет самим собой разумеющимся.


 

Порядок действий при взломе


 

Шаг 1. Очищаем сайт от вредоносных файлов


 

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

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

На регулярно обновляемом сайте поиск придется проводить вручную. И делать это посредством SSH. Задача будет предельно простой. Необходимо выяснить: какие файлы изменялись за последнее время. Например, за неделю. Для операционной системы Debian команда будет выглядеть так:

find /каталог, где осуществляется поиск/ -type f -mtime -7


 

Согласно этой команде система отобразит те файлы, что изменялись за последние 7 дней. Обращаем внимание на файлы с расширением PHP.

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


 

На скриншоте мы видим два файла. Первый — вероятнее всего вирус. Второй — это системный файл Joomla.

Откуда такие выводы?

Дело в том, что в каталоге /components/com_weblinks/views/category/ никакого файла start.php не должно присутствовать в принципе.

А файл error.php в каталоге /logs/ является частью CMS. Впрочем, если конкретно он будет удален, ничего критичного не произойдет, поскольку служит хранилищем логов Joomla.

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


 

Шаг 2. Защищаем сайт от взломов


 

Предположим, вы успешно справились с удалением всех вредоносных скриптов. Техподдержка хостинга и антивирус отрапортовали: «да, все чисто». Что необходимо сделать, чтобы предотвратить подобное?

Обновление Joomla и расширений до последней актуальной версии

Если ваш сайт работает на версии Joomla до 3.X — есть очередной повод задуматься об обновлении. Последнее время на этом настаивают и многие хостинг провайдеры.

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

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

Все ли расширения используются?

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

Чем меньше на вашем сайте дополнительных расширений, тем меньше вероятность взлома!


 

Компонент RSFirewall


 

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

Обращаю ваше внимание на компонент, который решает огромное количество задач, связанных с безопасностью сайта. Имя ему - «RSFirewall».

Рассмотрим вкратце основные возможности, функции и задачи, решаемые RSFirewall:

  1. Проверка вашей системы на наличие уязвимостей. Осуществляется анализ базы данных, файлов, а также среды, в которой работает сайт

  2. Сравнение файлов вашей системы с оригинальным дистрибутивом Joomla. Это существенно облегчает поиск зараженных файлов.

  3. Анализ прав на каталоги и файлы.

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

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

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

  7. Запрет доступа к сайту из указанных стран.

Компонент платный. Актуальная версия доступна исключительно для Joomla версий 3.X

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

 

RSFirewall — лицензия на один домен с подпиской на год

 

Стоимость: 49 ЕВРО

 

Приобрести лицензию

 

RSFirewall — лицензия на полгода с подпиской на неограниченное количество сайтов

 

Стоимость: 99 ЕВРО

 

Приобрести лицензию

RSFirewall — лицензия на год с подпиской на неограниченное количество сайтов

 

Стоимость: 169 ЕВРО

 

Приобрести лицензию


 

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

Установка компонента стандартная, осуществляется через менеджер расширений. После того, как компонент установлен, заходим «Компоненты — RSFirewall — System Check»


 


 


Откроется страница, где нам будет предложено проверить конфигурацию Joomla и сервера на предмет устойчивости ко взломам. Также будет осуществлен поиск:

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

  2. вредоносных файлов

  3. будет осуществлена проверка прав на каталоги и файлы


 

Для того, чтобы проверка началась, достаточно нажать кнопку «Perform the System Check».


 


 

Рассмотрим результат анализа.

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

Текст выделенный красным цветом — это рекомендации, к которым стоит прислушаться. И выполнить их. Чем меньше таких рекомендаций, тем выше балл.


 

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

Раздел Joomla Configuration


 

Checking if you have the latest Joomla! Version — Проверка: является ли установленная версия Joomla самой последней. Как видим, с этим все в порядке. На момент написания статьи таковой была версия Joomla 3.4.8


 

Checking if you have the latest RSFirewall! Version — Проверка: является установленная версия компонента RSFirewall самой последней. Это важная характеристика безопасности вашей системы, поскольку от версии к версии компонент не только обрастает базой данных вредоносных скриптов, но постоянно меняется функционально согласно обнаруженным в Joomla уязвимостям.


 

Checking if you have a weak database password — В данном случае компонент проверяет взломоустойчивость пароля к базе данных.


 

Checking if the default 'admin' user is active. - Логин супер администратора сайта в целях безопасности должен отличаться от широкораспространенного «admin». Если компонент находит в базе данных пользователя с таким логином, появится предупреждение.


 

Checking if you have set your FTP password — На этапе установки Joomla или редактировании ее настроек, допускается фатальная ошибка. Доступ по протоколу FTP указывается в конфигурационном файле Joomla. Имеет место быть и не менее трагичный вариант. При сохранении общих настроек Joomla в поле доступа по FTP записывается логин и пароль к административной панели. Поэтому следим, чтобы в файле configuration.php соответствующие параметры были пустыми.


 


 

Checking if you have Search Engine Friendly URLs enabled — Проверка: включена ли в общих настройках Joomla поддержка SEF URL.


 

Checking the integrity of configuration.php — Проверка файла configuration.php на корректность и целостность.


 

Checking if any admin users have weak passwords — Проверка всех паролей супер администраторов вашего сайта на взломоустойчивость


 

Checking your session lifetime — Проверка времени жизни сессии, что задается в общих настройках Joomla. Если оно превышает 15 минут, то появится предупреждение.


 

Checking if there are any files left in the Joomla! temporary folder — В данном случае проверяется: располагаются ли файлы во временном каталоге Joomla. По умолчанию таким каталогом является папка «tmp». Нужно следить за чистотой данного каталога, поскольку после установки расширений или обновления Joomla там могут находиться лишние архивы и скрипты.


 

Checking for .htaccess — Проверка на существование файла .htaccess. После установки Joomla в корне сайта по умолчанию создается файл htaccess.txt. Ваша задача переименовать его в .htaccess. Именно так, как написан, с точкой в начале и без .txt в конце


 

Checking if the Joomla! temporary folder is publicly accessible — Проверяется: доступен ли каталог для временных файлов Joomla для открытого доступа. Что подразумевается под этим? Проще говоря, возможно ли набрать в адресной строке браузера ссылку вида www.ваш сайт.com/tmp.

Не все знают, что разместить временный каталог возможно так, что доступ к нему будут получать исключительно скрипты Joomla. Достаточно создать папку с произвольным именем уровнем выше каталога, где расположен сайт и прописать путь к этой папке в файле configuration.php


 

Checking your Session Handler — Проверка типа обработчика сессий. Нам рекомендуют поставить значение «Нет». Сделать это можно в общих настройках Joomla


 

Раздел Server Configuration


 

Перейдем к исследованию следующего раздела, где проводился анализ конфигурации сервера.


 

Мы видим, что конфигурационные директивы PHP с точки зрения компонента не настроены должным образом.

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

Далее нажимаем на кнопку «Attemp to Fix PHP Configuration», после чего в корне вашего сайта будет создан файл php.ini

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

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

Далее вам необходимо конфигурировать PHP так, как было указано в файле.
 

Раздел Scan Result


 

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


 

Scanning the integrity of your Joomla! (CMS) files — в данном разделе будет показан результат сканирования файлов CMS Joomla и сравнение с оригинальным дистрибутивом на целостность и возможное изменение файлов. Сравниваться будут не только скрипты, но также файлы изображений, CSS. В общем, все.


 

Scanning your folders — сканирование по протоколу FTP посетить каждый и убедиться, что он чист от вредоносных скриптов


 

Scanning your files — в данном случае идет речь о правах на файлы. Действия должны быть аналогичными, как в случае с каталогами


 

Scanning your files for common malware — сканирование на предмет наличия вредоносного кода. Как видим, RSFirewall нашел один файл и при его анализе в текстовом редакторе, он был признан действительно вредоносным и удален мной с сервера.


 

Подведем итоги


 

Претворение всех рекомендаций компонента RSFirewall, а также чистка сайта от вредоносных скриптов — это важный, но не последний этап укрепления системы безопасности Joomla.

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

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

Лечение сайта осуществляется платно.

Актуальная стоимость работ указана на странице: «Лечение сайтов (CMS Joomla) от вирусов»


 

С уважением, Владимир Егоров