Защита от взлома сайта на Joomla. Основные методы взлома

Категория: Безопасность сайта на Joomla - .

Защита от взлома сайта на Joomla. Основные методы взлома

Приветствую Вас, дорогие друзья и посетители блога Joofaq.ru. В последнее время я всё чаще натыкаюсь на вебмастеров, у которых разными путями взломали сайт на Joomla. Хоть эту CMS и считают довольно безопасной, но тем не менее, в ней есть довольно много уязвимостей. Как оказалось, даже не очень опытный хакер сможет взломать сайт на Joomla, если над ним не поработать и не обезопасить себя от этих ошибок. Ради интереса я пробивал основные ключевые слова по поводу взлома joomla и защиты joomla от взлома. Я заметил, что очень мало пользователей интересуются защитой сайта (как правило, люди начинают искать решение, когда уже поздно). Но я настоятельно рекомендую Вам досконально изучить защиту Joomla от взлома. Вот я в своё время отнёсся серьёзно к этому вопросу, и все мои сайты до сих пор целые и невредимые.

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

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

Защита и профилактика сайта Joomla от взлома

  1. Установите хорошее антивирусное программное обеспечение. Но кроме этого нужно ещё регулярно проводить обновления базы вирусов.

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

  3. Обязательно делайте резервные копии сайта и базы данных. Для этого можно использовать компонент резервного копирования JoomlaPack. Это поможет Вам защититься не только от хакеров, но и от своих собственных ошибок. Я делаю резервные копии после каждого изменения на блоге (написал статью - сохранился!). Только не забывайте скачать файл бэкапа на компьютер, а то хакеры могут его просто удалить с сервера.

  4. Для того, чтобы спрятать свой сайт от глаз хакеров, нужно использовать SEF компоненты для генерации человеконятных ссылок. Можно пользоваться стандартным SEF или, к примеру, ARTIO JoomSEF. Дело в том, что Joomla по своему генерирует ссылки, и они выглядят вот так: _http://localhost/sayt/index.php?option=com_content&view=category&layout=blog&id=4&Itemid=3. И хакер может просто вбить в поиске "com_content" (если в нём есть "дырки") или другое уязвимое расширение и ему откроется список сайтов, в котором можете быть и Вы со своим сайтом.

  5. Кроме этого лучше вообще скрыть, какой CMS Вы пользуетесь. Тогда риск попадания Вашего сайта в поле зрения хакера резко снижается. Для этого необходимо удалить из кода Вашего сайта строчку: <meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />

    Заходите на свой сайт (Как подключиться к сайту через FTP клиент FileZilla?) и идёте по этому пути ВАШ_САЙТ/libraries/joomla/document/html/renderer/. В этой папке находите файл head.php и открываете его, например, блокнотом. С помощью поиска ищете эту строку (для joomla 1.5): $strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd;

    Удалите её и скопируйте файл обратно на сайт. Теперь у Вас уже стало на одну лишнюю строку кода меньше.

  6. Установите плагин plgSystemJSecure. Используя этот плагин, злоумышленник не сможет даже увидеть вашу административную панель, введя просто ВАШ_САЙТ/administrator. Так как в этом плагине нужно будет ввести кодовое слово. После того, как Вы его введёте, ссылка на админ-панель Вашего сайта будет выглядеть так: ВАШ_САЙТ/administrator/?ваше_кодовое_слово. Это достаточно хорошая защита админки Joomla.

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

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

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

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

  11. Для борьбы с SQL инъекциями есть два основный способа. Первый - это установка компонента jFireWall (хороший и довольно мощный компонент, есть бесплатная версия jFireWall Lite). Второй - это смена префикса к таблицам в базе данных. Второй способ я опишу поподробнее, так как изменение этого префикса может защитить Вас практически от всех SQL инъекций. Сначала рекомендую Вам отключить сайт в общих настройках joomla, так как он всё равно выйдет из строя на некоторое время и обязательно сделать резервную копию сайта и базы данных. А теперь поехали по порядку:

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

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

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

    - теперь открывайте сохранённый файл с базой данных, к примеру, блокнотом. Нажимайте Ctrl+H и видите такое окошко:

    Защита от взлома сайта на Joomla. Основные методы взлома

    с помощью этой функции можно одним махом изменить все префиксы в Вашей таблице, нажав на "Заменить все";

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

  12. Необходимо правильно выставить права на файлы и папки. Сделать это можно с помощью FileZilla. Вообще для каждого сервера нужны свои определённые настройки, которые лучше узнать у своего хостера. Но обычно права ставят такие: на файлы, которые находятся в корневой директории 444, на папки в корневой директории ставят 755, на папки tmp и logs ставят 705, на паку своего шаблона поставьте 555, на папку image/stories можно поставить 755, на папку Cache 777.

В принципе, я думаю этих мер безопасности должно хватить для хорошей защиты сайта на Joomla. Если я смогу узнать ещё какие-нибудь интересные способы, то буду их добавлять в соответствующий раздел на сайте по улучшению безопасности на сайте Joomla. Желаю Вам никогда не попадаться на хакеров, а тем более на профессионалов. Если не хотите пропустить интересные статьи блога Joofaq.ru, то подпишитесь на получение новостей любым удобным способом.

Комментарии  

#1 Виктория 13.03.2015 14:27
Спасибо за информацию!Она мне очень пригодилась,ста влю в закладки!
Цитировать

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


Защитный код
Обновить