Uploaded by Даниил Старков

Аудит ИБ

advertisement
СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ НАУКИ И ТЕХНОЛОГИЙ
ИМ. АКАДЕМИКА М.Ф. РЕШЕТНЕВА
ИНСТИТУТ ИНФОРМАТИКИ И ТЕЛЕКОММУНИКАЦИЙ
Лабораторная работа
«Аудит безопасности СУБД»
Лабораторный практикум для студентов направление подготовки
10.03.01 Информационная безопасность
очной формы обучения
Красноярск 2017
УДК 004.056
Аудит безопасности СУБД: лабораторный практикум для студентов
направление подготовки 10.03.01 Информационная безопасность очной
формы обучения
/ сост. А. П. Голушко, В. Г. Жуков; Сибирский
государственный университет науки и технологий имени академика М.Ф.
Решетнева. - Красноярск, 2017.
 Сибирский государственный университет науки и
технологий имени академика М.Ф. Решетнева, 2017
 Голушко А. П., Жуков В. Г., 2017
2
Цель работы: получить теоретические знания и практические навыки
по организации и проведению аудита безопасности СУБД.
Материально-техническое обеспечение: ПЭВМ под управлением ОС
Microsoft Windows 7 и выше, СУБД MySQL версии 5.5, MariaDB Audit Plugin
for MySQL версии 1.3.0, сканер безопасности Imperva Scuba Database
Vulnerability Scanner.
Теоретические сведения
1 Общие сведения об основных понятиях аудита
Аудит
информационной
безопасности
–
это
периодический
независимый и документированный процесс получения свидетельств аудита
и объективной оценки с целью определить степень выполнения в
организации
установленных
критериев
аудита
по
обеспечению
информационной безопасности.
Под свидетельствами аудита понимаются записи, изложение фактов
или другая информация, которые связаны с критериями аудита и могут быть
проверены.
Критериями аудита является совокупность политик, процедур или
требований, используемых в качестве эталона, в соотношении с которым
сопоставляют свидетельства аудита, полученные при проведении аудита.
Аудит проводится на основе, разработанной для его проведения
программы аудита, отражающей совокупность мероприятий по проведению
одного или нескольких аудитов, запланированных на конкретный период
времени и направленных на достижение конкретной цели.
Разработанная
программа
аудита
должна
предусматривать
определенный подход к проведению аудита, который определяется в
зависимости от цели проведения контрольных мероприятий.
3
2 Подход к аудиту безопасности СУБД
Существует несколько подходов к аудиту безопасности СУБД,
рассмотрим один из подходов согласно документу «Аудит баз данных:
лучшие практики (Rob Barnes, CISA, 2009)».
В работе представлен подход к аудиту, состоящий из следующих
шагов:
а) аудит доступа и аутентификации (Access & Authentication Auditing);
б) аудит полномочий доступа: пользователи и администраторы (User
& Administrator Auditing);
в) мониторинг событий безопасности (Security Activity Monitoring);
г) анализ защищенности (Vulnerability &Threat Auditing);
д) контроль изменений (Change Auditing).
Аудит доступа предполагает запись в журналах информации об
осуществлении доступа к базам данных с фиксацией времени и субъекта
доступа.
Аудит полномочий предполагает сбор информации, касающейся
деятельности пользователей и администраторов системы.
На этапе мониторинга событий безопасности должен обеспечиваться
сбор информации о возникающих ошибках в работе системы или ошибках
доступа к информационным ресурсам системы.
Анализ защищенности предполагает обнаружение уязвимостей и угроз
информационной безопасности и отслеживание субъектов доступа, возможно
пытавшихся реализовать выявленные уязвимости.
Контроль изменений предполагает осуществление контроля состояния
СУБД в соответствии с политиками, принятыми в организации. В рамках
этого этапа должен осуществляться контроль конфигурации системы,
учетных записей пользователей и администраторов и их полномочий.
4
3 Практические аспекты реализации выбранного подхода к аудиту
безопасности СУБД
Аудит доступа должен быть реализован либо встроенными средствами
СУБД, либо с применением дополнительного программного обеспечения и
представляет собой контроль операций управления данными (DML, от англ.
Data Manipulation Language) такими как SELECT, INSERT, UPDATE,
DELETE и др.
Аудит полномочий доступа представляет собой контроль операций,
совершаемых над учетными записями, ролями и привилегиями (DCL, от
англ. Data Control Language), такими как GRANT и REVOKE.
Мониторинг событий безопасности может быть осуществлен, как
правило, средствами СУБД и заключается в организации сбора событий об
ошибках в журналах.
Анализ защищенности может быть организован путем применения
сканера безопасности, позволяющего выявить уязвимости.
Контроль
изменений
представляет
собой
контроль
операций
определения структуры базы данных или схем (DDL, от англ. Data Definition
Language), такими как CREATE, ALTER, DROP и др.
5
Ход работы
1. Для аудита СУБД MySQL необходимо установить плагин MariaDB
Audit Plugin for MySQL. Перед установкой плагина осуществим просмотр
установленных плагинов с помощью команды show plugins (Рисунок 1).
Рисунок 1 – Исходное состояние установленных в СУБД плагинов
2. Далее
пройдя
по
ссылке
https://downloads.mariadb.com/Audit-
Plugin/MariaDB-Audit-Plugin/ с официального сайта СУБД MariaDB скачаем
MariaDB Audit Plugin for MySQL версии 1.3.0, так как эта версия подходит
для СУБД MySQL версии 5.5.
3. Из скачанного архива выберем файл server_audit.dll из папки
«windows-x86-32» и добавим его в директорию, предназначенную для
размещения
плагинов:
C:\Program
Files
(x86)\MySQL\MySQL
Server
5.5\lib\plugin.
4. С помощью командной строки выполним установку плагина. Для
этого необходимо выполнить команду install plugin SERVER_AUDIT soname
‘server_audit’. После установки снова осуществим просмотр перечня
плагинов (Рисунок 2).
6
Рисунок 2 – Установка плагина аудита
5. Затем настроим параметры аудита с применением MariaDB Audit
Plugin for MySQL. Для этого осуществим просмотр системных переменных
сервера СУБД, которые относятся к этому плагину (Рисунок 3).
Рисунок 3 – Исходное состояние переменных сервера
6. В
первую
очередь
обратим
внимание
на
параметр
«server_audit_logging», который принимает значение «OFF» по умолчанию.
7
Для активации сбора событий установим для этого параметра значение «ON»
(Рисунок 4).
Рисунок 4 – Активация сбора событий
7. Настроим события, которые будут регистрироваться в журнале
server_audit.log. Параметр server_audit_events может принимать следующие
значения: CONNECT, QUERY и TABLE. Все эти значения могут быть
установлены одновременно. Значение CONNECT отвечает за сбор сведений о
подключениях к базам данных. Значение QUERY определяет необходимость
сбора данных об осуществляемых операциях над базами данных с
использованием конструкций языка SQL. При этом этот параметр может
принимать 4 вида значений: QUERY_DDL, QUERY_DML, QUERY_DCL и
QUERY. Установим значения CONNECT, QUERY и TABLE для того, чтобы
вести аудит всех событий (Рисунок 5).
Рисунок 5 – Установление событий аудита
8. Параметр
server_audit_output_type
по
умолчанию
принимает
значение file, что является подходящим для ОС Microsoft Windows, поэтому
оставим значение file.
9. Параметры настройки журналирования syslog будут необходимы
только
в
случае,
если
значение
8
параметра
server_audit_output_type
установлено в syslog, поэтому не будем их настраивать для операционной
системы Microsoft Windows.
10. Значения
параметров
server_audit_file_rotate_now,
server_audit_file_rotate_size и server_audit_file_rotations необходимы для
настройки журналирования, таким образом, чтобы после заполнения журнала
server_audit.log автоматически создавался новый журнал и запись событий
велась в него. Для значения параметра server_audit_file_rotations может быть
установлено значение от 0 до 999. По умолчанию параметр принимает
значение 9. Для активации функции создания нового журнала после
заполнения
предыдущего
необходимо
для
параметра
server_audit_file_rotate_now установить значение «ON».
11. Параметры
предназначены
для
server_audit_excl_users
выбора
пользователей,
и
server_audit_incl_users
для
которых
будет
осуществляться аудит. Из существующих пользователей СУБД выберем root
и user1 и включим эти учетные записи в параметр server_audit_incl_users, как
показано на Рисунке 6.
Рисунок 6 – Назначение учетных записей для аудита
12. Все параметры плагина MariaDB Audit Plugin for MySQL
настроены. Проверим, что все значения установлены корректно (Рисунок 7).
9
Рисунок 7 – Параметры плагина после настроек
13. Перейдем к настройке встроенных в СУБД MySQL 5.5 журналов.
Настроим журнал ошибок с использованием системной переменной сервера
СУБД MySQL log_error. Для журналирования ошибок единственным
настраиваемым параметром является наименование файла журнала ошибок и
путь к его месторасположению. Осуществим просмотр значения этой
переменной (Рисунок 8).
Рисунок 8 – Параметры журнала ошибок
14. Для тестирования системы аудита выполним несколько операций
к базам данных и осуществим просмотр журнала аудита плагина MariaDB
Audit Plugin for MySQL и журнала ошибок СУБД (Рисунок 9 и 10).
10
Рисунок 9 - Журнал аудита плагина MariaDB Audit Plugin for MySQL
Рисунок 10 - Журнал ошибок СУБД
На рисунках 9 и 10 видим, что события успешно регистрируются.
15. Для проведения сканирования СУБД на предмет наличия
уязвимостей будем использовать программное обеспечение Scuba Database
Vulnerability Scanner, разработанное компанией Imperva. Скачаем сканер
безопасности
с
официального
сайта,
пройдя
по
ссылке
https://www.imperva.com/lg/lgw_trial.asp?pid=213&src=WWW:Scubatool:US:te
ndemon:tool.
11
16. Далее запустим файл scuba.exe и введем необходимые данные для
сканирования (Рисунок 11).
Рисунок 11 – Запуск сканера безопасности
17. После ввода параметров запустим сканирование. В случае
успешного проведения сканирования программное обеспечение предоставит
подробный отчет о результатах сканирования. Сколько уязвимостей было
обнаружено и к какому уровню они относятся. По каждому из тестов
предоставляется информация. Результаты работы сканера представлены на
Рисунках 12 и 13.
12
Рисунок 12 – Общие результаты сканирования
Рисунок 13 – Информация о результатах пройденных тестов
18. Кроме того, по каждому тесту есть более детальная информация с
рекомендациями по устранению. Пример информации по одной из
уязвимостей представлен на Рисунке 14.
13
Рисунок 14 – Детализированное описание уязвимости
Таким образом, была развернута система внутреннего аудита СУБД
MySQL с применением плагина аудита MariaDB Audit Plugin for MySQL и
сканера безопасности Scuba Database Vulnerability Scanner.
14
Контрольные вопросы
1. Что такое критерий аудита?
2. Что такое свидетельство аудита?
3. Какова связь между критериями и свидетельствами аудита?
4. Что содержит в себе программа аудита?
5. Как выбрать подход к проведению аудита безопасности СУБД?
6. Для чего предназначены структуры DDL языка SQL?
7. Для чего предназначены структуры DML языка SQL?
8. Для чего предназначены структуры DCL языка SQL?
15
Download