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

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