Joomla 1.5 защита от взлома, или как с этим жить ?

Разумеется самый логичный ответ который напрашивается, это заменить движок на более современный. Но если сайт уже разрабатывается. Что делать пока он не готов? В таких случаях приходится поднимать безопасность старого сайта, в данном случае мы рассмотрим один из самых взламываемых движков в мире joomla 1.5.

1. Удалить идентификатор CMS

	 meta name="generator" content="Joomla! 1.5 - Open Source Content Management";

Самый простой способ определить какой движок. Самый частый способ определения CMS и ее версии.

2. Закрыть дополнительной авторизацией, если удалить его на данном сайте нельзя

	 /index.php?option=com_user&view=reset
Одна из самых распространенных инъекций на joomla 1.5 POST через CURL 

3. Установить на сайт jFireWall Lite

Закрывает частично вопрос с SQL инъекциями. Сейчас этим вопросом вообще никто не занимался, это хоть частично прикроет. 

4. Выставляем права на папки

/ = 444 
/tmp = 705 
/logs = 705

Частично спасет от записи в index.php и размещение файлов на сайте
При включенной функции exec на 80% бесполезно, скрипты в состояние менять права сами.

5. Установить JhakGuard

Плагин для защиты
Прикрываем частично уязвимости запуска удалены URL   и  XSS Атаки.
Требуется подстройка под проект. 

6. Обновление Joomla до последней версии 

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

7. Выносим configuration.php  в нестандартное место

<?php
require( dirname( __FILE__ ) . '/../configuration.php' );
?>
Вынести со стандартного места. По хорошему за пределы сайта на уровень выше. 

Частично поможет от SQL инъекций использующих данный файл для чтения доступов к БД.
Частично защитит от определения Движка. 

8. Удалить JСE компонент

Самый атакуемый компонент в joomla как правило его или вообще отключают и редактируют чистый текст или используют другой например FCK.

9.Обновить FCK компонент

Не является стандартным но распространен, требуется обновить до последней поддерживаемой версии

10.Обновить Phoca Gallery компонент

Так же часто взламываемый компонент поскольку имеет возможность загружать файлы. 

11.Удалить неиспользуемые компоненты

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

12.Удалить Версии сторонних компонентов

Роботы не смогут определить подходящий способ взлома. 

Удалить показ позиций модулей URL – /?tp=1

	 /libraries/Joomla/application/module/helper.php
Удалить куски из файлов
if(count($result) == 0) {
         if(JRequest::getBool('tp')) {
                 $result[0] = JModuleHelper::getModule( 'mod_'.$position );
                   $result[0]->title = $position;
                   $result[0]->content = $position;
                   $result[0]->position = $position;
         }
}
И также далее закомментируйте строки:
if(JRequest::getBool('tp')) {
         $attribs['style'] .= ' outline';
}

14. Поменять префикс в  БД

Joomla 1.5 он всегда стандартный ( в новых версиях генерируемый) поменяв префикс можно легко избавиться от sql инъекций, что даст вполне неплохую защиту. 

15. Отключите Register Globals

Используется при взломе.

15. Вставить в .htaccess 

########## Начинаем запись правил чтобы заблокировать основные эксплойты
# Блокируем любой скрипт пытающийся получить значение mosConfig через URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# Блокируем любой скрипт пытающийся отправить любое дерьмо через base64_encode по URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# Блокируем любой скрипт который содержит тег < script> в URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Блокируем любой скрипт, который пытается установить глобальную переменную PHP через URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Блокируем любой скрипт пытающийся изменить _REQUEST переменную через URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
# Блокируем любой скрипт, который пытается установить CONFIG_EXT (баг в com_extcal2)
RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
# Блокируем любой скрипт, который пытается установить sbp or sb_authorname через
# URL (баг simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
# Отправляем все заблокированный запросы на главную с ошибкой 403 Forbidden!
RewriteRule ^(.*)$ index.php [F,L]
########## Заканчиваем запись правил чтобы заблокировать основные эксплойты

16. Удалить идентификатор в robots.txt

	 robots.txt

Достаточно простой способ идентификации движка  является  обычный robots.txt в нем закрыты основные папки  определенных движков. Рекомендовано  намерено ввести в заблуждение  роботов. Заменив в названиях символы  символами регулярных выражений. Тем самым снизив количество точных вхождений. Так же мы добавили   в robots.txt папки которых в этом движке нет, но они присущи другим популярным движкам, дабы запутать еще больше. На  работу сайта это никак не отобразится.

	 User-agent: *
	 Disallow: /a*mi*istrator/ 
	 Disallow: /cac*e/ 
	 Disallow: /cl*/ 
	 Disallow: /co*p*nents/ 
	 Disallow: /i*ag*s/ 
	 Disallow: /i*cl*des/ 
	 Disallow: /instal*ation/ 
	 Disallow: /la*guage/ 
	 Disallow: /l*br*ries/
	 Disallow: /l*gs/ 
	 Disallow: /*ed*a/ 
	 Disallow: /mo*ules/ 
	 Disallow: /pl*gins/ 
	 Disallow: /t*mplates/ 
	 Disallow: /tmp/ 
	 Disallow: /bitrix/ 
	 Dissalow: /manager/

Комментарии (1)

  1. Аlex 10.11.2016 Ответить
    CONFIG_EXT([|%20|%5B).*= [NC,OR]
    квадратная скобка пропущена

Оставить комментарий