Аудит безопасности системы

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 18.

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

1. Протокол UFS закрыт - данный пункт проверяет наличие в файле config.ini разрешения использовать через адресную строку протокол UFS. Разрешение прописывается строкой ufs.http.allow = в секции [streams]. Для удачного прохождения теста необходимо, чтобы ее значение было равно "0".


2. Протокол UObject закрыт - пункт проверяет наличие в файле config.ini разрешения использовать через адресную строку протокол UObject. Разрешение прописывается строкой "uobject.http.allow = " в секции [streams]. Для удачного прохождения теста необходимо, чтобы ее значение было равно "0".


3. Подключение к БД не под root-ом - здесь проверяется, какой логин используется для подключения к базе данных MySQL. Стандартно у каждой базы данных есть главный пользователь, который может полностью ею управлять, его логин root, но так как для работы сайта достаточно одной базы данных, то создается отдельный пользователь со своими логином и паролем, который может управлять только одной базой данных на сервере. Проверка делается по файлу config.ini, где в секции [connections] указываются данные для подключения к базе данных. Для успешного прохождения теста необходимо, чтобы значение поля "login=" было отличным от значения root.


4. Пароль для БД не пустой - как можно понять из названия, тут проверяется та же секция [connections] файла config.ini, где поле "password=" обязательно должно иметь какое-либо значение, кроме "", то есть чтобы был указан обязательно пароль для подключения к базе данных MySQL.


5. Доступ к файлу конфигурации закрыт - тут проверяется доступность файла config.ini через адресную строку браузера. То есть, если файл config.ini можно открыть, введя в адресной строке браузера http://domain.ru/config.ini, значит тест будет провален. Для успешного прохождения данного теста в файле ".htaccess" предусмотрено правило "RewriteRule ^config\.ini$ / [L,R]", если этого правила нет или оно закомментировано (то есть перед строкой стоит символ "#"), то необходимо либо добавить эту строку перед строкой "RewriteRule ^install\.ini$ / [L,R]", либо раскомментировать (то есть удалить символ "#" перед строкой).


6. Доступ к системным папкам закрыт - в тесте система проверяет запрос к папке /classes через адресную строку браузера. Чтобы тест прошел удачно, необходимо в ответ присылать системе либо 403 ошибку сервера, либо ничего не должно приходить вообще. Стандартно это делается добавлением файла ".htaccess" в папку /classes. В самом файле находится одна строка Deny from all, которая закрывает всем доступ к этой папке через браузер.


7. Выполнение php скриптов в /files/ - тест проверяет выполняются ли ".php" скрипты из папки /files/. Стандартно исполнение скриптов в папке /files/ закрывается. Для того, чтобы тест проходил удачно, необходимо наличие в папке /files/ файла .htaccess где должна быть прописана строка php_flag engine off, которая запрещает работу php-скриптов в папке и вложенных папках рекурсивно. Если же пройти данный тест не удается, хотя необходимый файл .htaccess есть - нужно добавить в .htaccess следующий код:

RemoveHandler .php
RemoveType .php
AddType application/x-httpd-php-source .php
Options -ExecCGI -Indexes 


8. Доступ к файлу php_for_del_connector.php - данным тестом проверяется доступность системного файла php_for_del_connector.php в папке /styles/common/other/elfinder/php/. Тест проходит удачно при наличии в данной папке файла .htaccess, в котором присутствует строка Deny from all.