Аудит безопасности системы — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 4: Строка 4:
 
В разделе Безопасность модуля Конфигурация есть инструмент проверки безопасности системы. Данный раздел проверяет насколько система защищена и позволяет отслеживать доступ обычных пользователей к наиболее важным средствам работы с системой и сайтом в целом. Так как в официальной документации находится только описание каждого пункта, но не оговаривается, какие именно проверяются данные и где берется информация для теста, мы рассмотрим их подробнее, чтобы можно было настроить все пункты на успешное прохождение теста.
 
В разделе Безопасность модуля Конфигурация есть инструмент проверки безопасности системы. Данный раздел проверяет насколько система защищена и позволяет отслеживать доступ обычных пользователей к наиболее важным средствам работы с системой и сайтом в целом. Так как в официальной документации находится только описание каждого пункта, но не оговаривается, какие именно проверяются данные и где берется информация для теста, мы рассмотрим их подробнее, чтобы можно было настроить все пункты на успешное прохождение теста.
  
1. '''Протокол UFS закрыт''' - данный пункт проверяет на наличие в файле ''config.ini'' разрешения использовать через адресную строку протокол '''UFS'''. Разрешение прописывается строкой ''ufs.http.allow = '' в секции ''[streams]''. Для удачного прохождения теста необходимо, чтобы ее значение было равно "0".
+
1. '''Протокол UFS закрыт''' - данный пункт проверяет наличие в файле ''config.ini'' разрешения использовать через адресную строку протокол '''UFS'''. Разрешение прописывается строкой ''ufs.http.allow = '' в секции ''[streams]''. Для удачного прохождения теста необходимо, чтобы ее значение было равно "0".
  
  
2. '''Протокол UObject закрыт''' - данный пункт проверяет на наличие в файле ''config.ini'' разрешения использовать через адресную строку протокол '''UObject'''. Данное разрешение прописывается строкой ''"uobject.http.allow = "'' в секции ''[streams]''. Для удачного прохождения теста необходимо что бы ее значение было равно ''"0"''.
+
2. '''Протокол UObject закрыт''' - пункт проверяет наличие в файле ''config.ini'' разрешения использовать через адресную строку протокол '''UObject'''. Разрешение прописывается строкой ''"uobject.http.allow = "'' в секции ''[streams]''. Для удачного прохождения теста необходимо, чтобы ее значение было равно ''"0"''.
  
  
3. '''Подключение к БД не под root-ом''' - здесь проверяется какой логин используется для подключение к базе данных MySQL, стандартно у каждой базы данных есть главный пользователь который может полностью ей управлять, его логин ''root'', но так как для работы сайта достаточно одной базы данных то создается отдельный пользователь со своими логином и паролем который может управлять только одной базой данных на сервере. Проверка делается по файлу ''config.ini'', где в секции ''[connections]'' указываются данные для подключения к базе данных. Для успешного прохождения теста необходимо, что бы значение поля ''"login="'' было отличным от значения ''root''.
+
3. '''Подключение к БД не под root-ом''' - здесь проверяется, какой логин используется для подключения к базе данных MySQL. Стандартно у каждой базы данных есть главный пользователь, который может полностью ею управлять, его логин ''root'', но так как для работы сайта достаточно одной базы данных, то создается отдельный пользователь со своими логином и паролем, который может управлять только одной базой данных на сервере. Проверка делается по файлу ''config.ini'', где в секции ''[connections]'' указываются данные для подключения к базе данных. Для успешного прохождения теста необходимо, чтобы значение поля ''"login="'' было отличным от значения ''root''.
  
  
4. '''Пароль для БД не пустой''' - как можно понять из названия тут проверяется та же секция ''[connections]'' файла ''config.ini'', где поле ''"password="'' обязательно должно иметь какое либо значение кроме ''""'', то есть что бы был указан обязательно пароль для подключения к базе данных MySQL.
+
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]"'', либо раскомментировать (то есть удалить символ "#" перед строкой).
+
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'' которая закрывает всем доступ к этой папке через браузер.
+
6. '''Доступ к системным папкам закрыт''' - в тесте система проверяет запрос к папке ''/classes'' через адресную строку браузера. Чтобы тест прошел удачно, необходимо в ответ присылать системе либо 403 ошибку сервера, либо ничего не должно приходить вообще. Стандартно это делается добавлением файла ''".htaccess"'' в папку ''/classes''. В самом файле находится одна строка ''Deny from all'', которая закрывает всем доступ к этой папке через браузер.
  
  
7. '''Выполнение php скриптов в /files/''' - данный тест проверяет выполняются ли ''".php"'' скрипты из папки ''/files/''. Стандартно исполнение скриптов в папке ''/files/'' закрывается. Для того что бы тест проходил удачно необходимо наличие в папке ''/files/'' файла ''.htaccess'' где должна быть прописана строка ''php_flag engine off'' которая запрещает работу php-скриптов в папке и вложенных папках рекурсивно. Если же пройти данный тест не удается, хотя необходимый файл ''.htaccess'' есть - тогда нужно добавить в ''.htaccess'' следующий код:
+
7. '''Выполнение php скриптов в /files/''' - тест проверяет выполняются ли ''".php"'' скрипты из папки ''/files/''. Стандартно исполнение скриптов в папке ''/files/'' закрывается. Для того, чтобы тест проходил удачно, необходимо наличие в папке ''/files/'' файла ''.htaccess'' где должна быть прописана строка ''php_flag engine off'', которая запрещает работу php-скриптов в папке и вложенных папках рекурсивно. Если же пройти данный тест не удается, хотя необходимый файл ''.htaccess'' есть - нужно добавить в ''.htaccess'' следующий код:
 
<pre>
 
<pre>
 
RemoveHandler .php
 
RemoveHandler .php
Строка 30: Строка 30:
  
  
8. '''Доступ к файлу php_for_del_connector.php''' - данным тестом проверяется доступность системного файла ''php_for_del_connector.php'' в папке ''/styles/common/other/elfinder/php/''. Тест проходит удачно при наличии в данной папке файла ''.htaccess'' в котором присутствует строка ''Deny from all''.
+
8. '''Доступ к файлу php_for_del_connector.php''' - данным тестом проверяется доступность системного файла ''php_for_del_connector.php'' в папке ''/styles/common/other/elfinder/php/''. Тест проходит удачно при наличии в данной папке файла ''.htaccess'', в котором присутствует строка ''Deny from all''.

Текущая версия на 12:29, 26 июля 2018

Актуально для версии 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.