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

 

 

В статье «Защита Joomla (часть 6). Файл configuration.php» был рассмотрен вопрос повышения защищённости сайта Joomla от взлома при помощи специальных расширений. В статьях «Защита Joomla (10, 11, 12)» были кратко рассмотрены различные расширения по обеспечению безопасности. В данной статье мы детальнее познакомимся с многофункциональным расширением (компонент, модуль, плагин) для защиты сайта от взлома Joomla RSFirewall. К его основным возможностям относится:

  • защита от SQL инъекций, PHP, LFI и XSS инъекций и атак в режиме реального времени.
  • Анализатор сайта по двадцати четырём параметрам, влияющим на безопасность Joomla.
  • Расширенный системный журнал.
  • Защита административной зоны сайта при помощи пароля и дополнительных контуров безопасности. Помимо этого рекомендую ознакомиться с описанием компонента защиты админки Joomla jSecure Authentication.
  • Блокировка сайта от изменений.
  • Анализатор базы данных сайта.
  • Блокировка доступа к настройкам самого RSFirewall при помощи пароля.
  • Чёрный список IP адресов, которым запрещён доступ к сайту.
  • Разграничения прав доступа администраторам сайта к административной зоне и к отдельным компонентам.
  • Базовая защита от DoS атак.
  • Фильтрация загружаемых на сайт файлов.
  • Защита от сканирования сайта на наличие уязвимостей.
  • Защита учётной записи администратора от любых изменений.
  • И многое другое.

Обзор будет производиться в последней на момент написания статьи (28.01.2012) стабильной версии Joomla 2.5.0. RSFirewall версии 1.0.0.34.

RSFirewall переведён на 11 языков: Русский, Английский, Датский, Испанский, Итальянский, Немецкий, Нидерландский, Норвежский, Французский, Чешский, Шведский. Поддерживается Joomla версий 1.5, 1.6, 1.7, 2.5. Изначально перевод на русский язык сделан не мной. Но по ходу обзора были внесены смысловые, грамматические и стилистические исправления. Исправленный языковой файл отправлен разработчикам RSFirewall. На рисунках в статье Вы увидите не исправленный перевод.

На сайте Jeffchannell.com есть статья (на английском языке) за 20 декабря 2010 года 2010 Joomla! Security Extension Comparison.

В ней сравниваются девять расширений по обеспечению безопасности в режиме реального времени по десяти критериям (например, защиты от SQL инъекции, PHP, LFI и XSS инъекций и атак).

  • Admin Tools Pro. Заблокировано 3 из 10 атак.
  • Anti-Hacker. Заблокировано 4 из 10 атак.
  • Biziant Sentry. Заблокировано 4 из 10 атак.
  • jFireWall. Заблокировано 2 из 10 атак.
  • jHackGuard. Заблокировано 4 из 10 атак.
  • Mighty Defender. Заблокировано 3 из 10 атак.
  • NinjaSecurity. Заблокировано 1 из 10 атак.
  • RSFirewall! Заблокировано 6 из 10 атак.
  • SecureLive. Заблокировано 3 из 10 атак.

Безусловно, сейчас этот тест устарел из-за того, что и расширения улучшили свою функциональность и атаки стали несколько другими. Но тем ни менее RSFirewall заблокировал 6 из 10 атак. Это лучший результат в этом тесте.

А теперь приступим к непосредственному рассмотрению RSFirewall.

Обзор системы

На рисунке ниже показана вкладка Обзор системы – это стартовая вкладка расширения.

Обзор системы

На ней, помимо панели инструментов и сведений о самом Joomla RSFirewall (версия, сайт автора, лицензия и так далее), есть таблица Последние сообщения с системного журнала. В ней отображены сведения о последних системных событиях. Например, о входах в RSFirewall. Указывается уровень опасности (Низкий, Средний, Высокий, Критический), дата и время, IP пользователя совершившего то или иное действие, имя его учётной записи, адрес страницы, описание самого события (например: вошел в админ панель с правильным админ паролем) и ссылка на страницу сайта с детальным описанием события на сайте RSjoomla (не для всех событий). При нажатии на IP адрес Вы будете перенаправлены на сайт Domaintools.com. Где будет дан подробный отчёт о данном IP адресе (рисунок ниже).

Отчёт о IP адресе

Проверка системы

Считаю, что данная функциональная возможность, проверка сайта на наличие уязвимостей в системе безопасности с возможностью их устранения, является весьма полезной. RSFirewall анализирует сайт по двадцати четырём параметрам.

  1. Проверка актуальности версии Joomla.
  2. Проверка актуальности версии RSFirewall.
  3. Проверка целостности файлов Joomla. RSFirewall знает хэш всех файлов Joomla и сравнивает файлы на вашем сайте с эталоном. Если найдены отклонения, то он обязательно их выведет в результатах проверки и даст возможность отметить эти файлы как доверенные, если это Вы их изменили. Это может очень сильно помочь при поиске вредоносного кода на сайте.
  4. Проверка прав доступа к папкам. RSFirewall проверяет наличие папок с правами доступа выше чем 755. Если такие найдены, то при помощи одного нажатия кнопки можно исправить эту уязвимость. Возможность исправления прав доступа к папкам зависит от серверного окружения и настроек.
  5. Проверка прав доступа к файлам. RSFirewall проверяет наличие файлов с правами доступа выше чем 644. Если такие найдены, то при помощи одного нажатия кнопки можно исправить эту уязвимость. Возможность исправления прав доступа к файлам зависит от серверного окружения и настроек.
  6. Проверка вредоносных программ и скриптов. Данная проверка отслеживает вредоносный код в PHP файлах.
  7. Проверка, не находится ли папка tmp за пределами public_html.
  8. Проверка, не находится ли папка logs за пределами public_html.
  9. Проверка на наличие каких-либо файлов в папке tmp.
  10. Проверка на целостность файла configuration.php.
  11. Проверка, не находится ли файл configuration.php за пределами public_html. В файле configuration.php хранится критическая, с точки зрения безопасности сайта, информация. Лучше хранить его за пределами директории сайта для снижения риска несанкционированного доступа к нему. В статье «Обзор RSFirewall (часть 2). Защита от SQL инъекций» будет рассмотрен способ вынести файл configuration.php за пределами public_html.
  12. Проверка опции register_globals. Она должна быть отключена. Register_globals может позволить хакеру взять контроль над скрытыми переменными при помощи плохо написанных компонентов Joomla.
  13. Проверка настройки режима safe_mode. Он должен быть отключён. Safe_mode увеличивает вероятность взлома сайта. Изначально он разрабатывался как дополнительная защита для PHP, но в последствии стал причиной многих ошибок.
  14. Проверка настройки опции allow_url_fopen. Она должна быть отключена. Allow_url_fopen позволяет хакеру загрузить свои собственные PHP скрипты на сервер. В итоге он сможет получить полный доступ к серверу. Если Вы отключите данную опцию, то лишитесь возможности автоматической проверки версии Joomla и расширений.
  15. Проверка настройки опции allow_url_include. Она должна быть отключена. Allow_url_include позволяет хакеру загрузить свои собственные PHP скрипты на сервер. В итоге он сможет получить полный доступ к серверу.
  16. Проверка настройки опции disable_functions. Рекомендуется отключить следующие PHP функции: show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open. Однако отключение данных функций может привести к потере функциональности некоторых расширений. Например, отключив shell_exec, Вы не сможете использовать YUI Compressor для сжатия JavaScript файлов (при оптимизации сайта).
  17. Проверка настройки опции open_basedir. open_basedir ограничивает доступ только к определённым папкам. В статье «Обзор RSFirewall (часть 2). Защита от SQL инъекций» будут рассмотрены особенности работы с данной настройкой. Так как при неправильной настройке можно нарушить работу сайта или вывести его полностью из строя. Также неверно настроенная open_basedir лишит Вас возможности нормальной установки расширений на сайт.
  18. Проверка логина администратора. При использовании распространённых логинов для учётной записи администратора (admin, Root, test, guest, info, adm, mysql, user, administrator, oracle и так далее) Вы повышаете риск получения несанкционированного доступа к административной зоне сайта при помощи подбора логина и пароля.
  19. Проверка на наличие небезопасных паролей. Проверка на наличие пользователей, пароль доступа к учётной базе которых является не безопасным. Например, 123456, password, 1234, 12345, passwd, 123, test, 1 и так далее.
  20. Проверка установленной на сайте версии Jumi. Если у Вас на сайте установлено расширение Jumi, то RSFirewall выполнит проверку его версии и укажет на необходимость обновления до самой последней.
  21. Проверка, включена ли поддержка ЧПУ. Включив ЧПУ (SEF) на своём сайте, Вы повышаете защищённость от анализа хакерами уязвимых компонентов на Вашем сайте при помощи Google (например, option=com_dummy).
  22. Проверка наличия файла .htaccess на сайте. Поместив файл .htaccess в корневую папку сайта, у вас появляется базовая защита против общих атак
  23. Проверка продолжительности сессии. Если Вы устанавливаете большое время длительности сессии, то Вы повышаете вероятность взлома Вашего сайта. Рекомендованное время сессии не более 15 минут.
  24. Проверка, есть ли у вас пароль на FTP. Если Вы храните пароль доступа к FTP в файле configuration.php, тем самым Вы существенно снижаете защищённость сайта. Любой, кто сможет получить доступ к файлу configuration.php, сможет без труда заполучить полный доступ к Вашему хостингу (FTP).

Более того, почти по всем параметрам есть расширенные подсказки и объяснения. Большинство найденных ошибок RSFirewall может устранить «самостоятельно». В итоге Вашему сайту будет присвоена оценка безопасности. От 1 до 100. Оценка более 80-85 является хорошим результатом. Учтите, что даже при отсутствии найденных проблем, максимальная оценка – 96. Это связанно с тем, что никакие средства и меры по обеспечению безопасности не могут гарантировать абсолютной защиты от взлома.

На рисунке ниже приведён пример отчёта по безопасности сайта.

Пример отчёта по безопасности сайта

Проверка базы данных

RSFirewall позволяет выполнить проверку, анализ и оптимизацию базы данных Вашего сайта (рисунок ниже). При проверке Вы сможете получить следующие данные: имя таблицы, тип, кодировка, количество строк, размер таблицы (в килобайтах), размер индекса (в килобайтах), превышение размера (в килобайтах) и результат проверки\оптимизации.

Если будут найдены повреждённые таблицы, то Joomla RSFirewall попытается их восстановить без потери данных.

Анализ базы данных сайта

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

Системный журнал

На вкладке Системный журнал отображается таблица событий, касающихся RSFirewall (рисунок ниже). В ней все события делятся на 4 уровня опасности.

  1. Низкий. Например, доступ к RSFirewall с правильным паролем.
  2. Средний. Например, доступ к RSFirewall с неправильным паролем.
  3. Высокий. Например, отключение блокировки системы.
  4. Критический. Например, изменения файла configuration.php.

Системный журнал

Для удобства в таблице предусмотрена возможность сортировки и фильтрации. По каждому из событий Вам будет доступна следующая информация: уровень опасности; дата и время (с точностью до секунды); IP адрес пользователя (при нажатии на IP адрес Вы будете перенаправлены на сайт Domaintools.com. Где будет дан подробный отчёт о данном IP адресе); ID пользователя; логин; адрес страницы, на которой сделаны изменения; краткое описание. Также Вы сможете перейти на сайт RSFirewall для получения расширенной справки по тому или иному событию.

Блокировка системы

Блокировка системы (рисунок ниже) позволяет Вам закрыть доступ к установке, обновлению и\или удалению расширений. То есть закрыть доступ к com_installer. Более того, если включена блокировка системы, то любой созданный пользователь с правами администратора будет тут же удалён.

Блокировка системы

Для создания пользователей с правами администратора, для установки, обновления и\или удаления расширений сначала необходимо зайти в Joomla RSFirewall и отключить блокировку.

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

Русификатор RSFirewall

Скачать русификатор RSFirewall.

В следующей статье «Обзор RSFirewall (часть 2). Защита от SQL инъекций» мы продолжим рассмотрение возможностей RSFirewall.

 

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