Joomla virus

Защита сайта, созданного на CMS Joomla 3.x (1.5 - 2.5)

CMS Joomla считается довольно безопасной системой управления контентом, но и в ней всё же есть довольно много уязвимостей.

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

Основные методы взлома сайта на Joomla и его последствия

  1. Вирус - один из самых опасных методов взлома. При попадании (не важно каким способом) на Ваш компьютер, вирус сканирует его на наличие FTP менеджера или Total Commandera. В этих программах хранятся Ваши пароли и адреса ftp серверов, которые скрипт отправит хакеру. Этого будет достаточно, чтобы потерять сайт. Самым опасным этот метод считается потому, что Вы рискуете остаться без всех своих сайтов сразу! Последствие попадания вируса - в код сайта, зачастую, вставляется iframe с вредоносным кодом, различные JS скрипты или ссылки на другие сайты и т.д. Понятно, ничего хорошего ожидать не стоит.  После этого на Ваш сайт начнут ругаться  поисковые системы и все антивирусные программы .
  2. SQL инъекция - широко  распространённый способ взлома. Основан  этот способ на получении доступа к файлам базы данных. А если точнее, то к логину и паролю администратора. Таким образом, хакер может не только увидеть Ваш логин и пароль или другие данные, но и изменить их под свои нужды. Последствие SQL инъекции - взлом пароля Joomla к административной панели сайта. Так же злоумышленник может вообще удалить всю информацию Вашего сайта.
  3. Восстановление пароля администратора - в последнее время сайты на Joomla всё чаще пытаются взломать именно таким способом. Даже если  на сайте стоит компонент генерации ЧПУ, можно всё равно прописать в адресной строке такой код: ВАШ_САЙТ/index.php?option=com_user&view=reset и Вам откроется окошко для восстановления пароля администратора. Хакеры вводят туда специальный код и изменяют Ваш пароль. Последствия потери пароля администратора - думаю, тут и так всё понятно. Полный доступ злоумышленника в административную панель Вашего сайта. Только представьте, что может сделать , к примеру, Ваш конкурент?
  4. Через "дырявые" расширения (плагины) - взлом сайта через дырки в различных компонентах, используя ввод методом POST на определённые страницы сайта. Последствия взлома через дырки в расширениях - в папке с компонентом, который взломали, будет лежать много "левых" файлов. Такие сайты скорее всего заблокирует хостер. И поисковые системы, антивирусы тоже будут ругаться на то, что на сайте вирус.
  5. PHP инъекция - внедрение вредоносного кода через Ваш сервер.
  6. XSS или межсайтовый скриптинг - возникает во время генерации сервером страниц, в которых содержится "хакерский" скрипт. Эта атака так же может произойти из-за Вашего сервера. Например, если с Вами на сервере находится зараженный объект или сайт, то Ваш сайт так же подвержен опасности.


Защита сайта на CMS Joomla

 


Joomla stop

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

  • Скачивайте и устанавливайте  расширения только с проверенных, желательно известных Вам,  источников и с официальных сайтов разработчиков этих расширений. На "левых" сайтах могут находится не только оригинальные, но и краденные или взломанные расширения с неизвестно каким содержимым. А если всё-таки скачали что-то, то перед установкой проверьте антивирусом. Тестируйте такие расширения сначала на тестовом сайте или на локальном компьютере, перед тем как ставить на рабочий сайт в интернете.

  • Обязательно делайте резервные копии сайта и базы данных (бекапы). Для этого используйте расширение Akeeba Backup, как наиболее распространенную утилиту . Это поможет защититься не только от хакеров, но и от своих собственных ошибок, зачастую восстановление избавит Вас от мучительно больной потери информации или невозможности вернуть назад. Делайте резервные копии сайта после каждого изменения и скачивайте его (файлы архива) на свой  локальный компьютер.

  • Для того, чтобы спрятать свой сайт от глаз хакеров, также нужно использовать SEF компоненты для генерации человеко понятных ссылок. Для этого можно пользоваться стандартным, встроенным в Joomla SEF или же установить стороннее расширение с таким компонентом. Это необходимо из-за того, что Joomla по своему генерирует ссылки.

  • Скройте, какую CMS вы используете. Это снизит риск попадания поле зрения хакера вашего сайта. Для этого удалите из кода вашего сайта строчку:

<div><?php echo JText::_( 'FOOTER_LINE2' ); ?></div>

   которая находится в файле - ваш сайт/modules/mod_footer/tmpl/default.php 

Например, базы данных:  SoftClipper - программирование, утилиты, форум 

  • Установите плагин Backend Token или другие, подобные ему для защиты административной панели Joomla. В этом плагине нужно будет ввести кодовое слово. После того, как вы его введёте, ссылка на админ-панель вашего сайта будет выглядеть так: ваш сайт/administrator/index.php?token=кодовое_слово. Таким образом хакер просто не сможет даже увидеть вашу административную панель, введя обычный в адресной строке браузера путь в административную панель сайта - ваш сайт/administrator. Это хорошая и простая защита административной панели Joomla.

  • Постоянно обновляйте расширения, которые стоят на вашем сайте, а при установке новых – ищите самые свежие версии. Разработчики часто выпускают обновления своих продуктов с улучшенной защитой, т.к. хакеры постоянно находят в них какие-нибудь изъяны.

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

  • Для того, чтобы хакеры не знали, какая версия уязвимого расширения стоит на вашем сайте (версии постоянно обновляются и избавляются от "дырок"), вам необходимо удалить номера версий всех сторонних расширений. Для этого с помощью любого текстового редактора удалите в файлах этих расширений любые упоминания об их версиях.

  • Если на своем сайте не используете модуль регистрации пользователей, то лучше удалить файлы, которые отвечают за восстановление пароля и его сброс. Также можно удалить или всю папку com_user (которая находится по пути ваш сайт/components) или отдельный файл, отвечающий за сброс - reset.php. Этот файл находится по пути - ваш сайт/components/com_user/models.

  • Для борьбы с SQL инъекциями есть два основный способа.
    Первый - это установка плагина, подобного RSFireWall (хороший и довольно мощный компонент) и включение всех его функций. Второй - это смена префикса к таблицам в базе данных,который защитит ваш сайт практически от всех SQL инъекций.

    Подробнее второй способ:

    1. отключите сайт в общих настройках joomla, так как он всё равно выйдет из строя на некоторое время

    2. обязательно сделайте резервную копию данных

    3. заходите в административную панель своего сайта, перейдите в общие настройки/сервер. В правой части экрана ищите "Префикс базы данных", там будет написано jos_. Заменяете его на любую надпись, например, на soj_ и сохраняете

    4. вам необходимо сделать экспорт своей базы данных на компьютер и сохранить её - зайдите в PhpMyAdmin, выберете базу данных и в правой части экрана вверху ищите "Экспорт". Выделяете все части базы, внизу ставьте SQL и ещё чуть ниже "Сохранить как файл". Справа внизу нажимаете на кнопочку "Ok". Сделайте ещё одну копию на всякий случай и сохраните её куда-нибудь в другое место;

    5. далее можно приступить к удалению базы из PhpMyAdmin. Выберете базу данных, промотайте мышью в низ экрана и найдите там "Отметить все". Отмечаете и чуть правее ищите "С отмеченными" и выбирайте удалить;

    6. далее необходимо открыть сохранённый файл с базой данных текстовым редактором, к примеру, блокнотом. Нажмите Ctrl+H и увидите такое окно, с помощью которого можно изменить все префиксы в Вашей таблице, нажав на "Заменить все":

    7. далее заходите в PhpMyAdmin и нажимайте справа вверху "Импорт" и выбирайте Ваш файл с новыми данными. Кодировку поставьте UTF-8.

  • Правильно выставите права на файлы и папки на удаленном сервере, с помощью какого либо файлового менеджера или прямо на хостинге, где расположен ваш сайт в разделе «Файловый менеджер». Важно – у каждого сервера могут быть свои настройки, которые лучше узнать у своего хостера, но обычно ставят такие права: 

- файлы, которые находятся в корневой директории 444,

- папка в корневой директории 755,

- папка tmp и logs 705,

- папка шаблона 555,

- папка image/stories 755,

- папка Cache 777.

  •  Изменить название файла htaccess.txt на .htaccess
  • При вводе в адресную строку браузера ваш сайт/?tp=1 будет показана страница вашего сайта со всеми модулями шаблона. По этому признаку можно понять, что у вас стоит именно Joomla. Исправляется это так - отключить в настройке шаблонов сайта предпросмотр или прописать в файле .htaccess строки : 

##### Start ?tp=1 prevention ######
RewriteCond %{QUERY_STRING} tp=(.*)
RewriteRule ^(.*)$ index.php [F,L]
 ##### End ?tp=1 prevention ######

Немаловажно также  правильно выбрать хостинг, для Вашего сайта на Joomla

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