490 likes | 786 Views
Безопасность СУБД. Средства и методы обеспечения конфиденциальности и целостности данных в СУБД. Подготовили: Редишев М.В. Трефилов В.В. Содержание. Введение Схема защиты СУБД Пользователи СУБД Авторизация и аутентификация Хранение ключей Дискреционная защита Привилегии
E N D
Безопасность СУБД Средства и методы обеспечения конфиденциальности и целостности данных в СУБД Подготовили: Редишев М.В. Трефилов В.В.
Содержание • Введение • Схема защиты СУБД • Пользователи СУБД • Авторизация и аутентификация • Хранение ключей • Дискреционная защита • Привилегии • Мандатная защита • Ролевая защита • Защита от внедрения в SQL • Шифрование • Аудит • Резервное копирование и восстановление • Распределенные СУБД • Заключение
Комплекс средств защиты СУБД Подсистема дискреционной защиты Подсистема регистрации Подсистема мандатной защиты Подсистема аудита Подсистема защиты базы данных Подсистема аутентификации
Аутентификация • При соединении пользователя с базой данных, он обязан пройти процесс авторизации и аутентификации. • Если же процесс аутентификации пользователь пройти не смог, то он не присоединяется к БД.
Соединение с БД • CONNECT [[user/password[@база_данных][AS {SYSOPER|SYSDBA}]] • CONNECT TO база_данныхUSER пользователь USING пароль
Наборы правил Базовый набор дискреционных правил (идентификация, аутентификация, привилегии и роли ...) Расширенный набор (мандатная защита, расписание, аудит...) При попытке доступа метки субъекта сравниваются с метками доступа объекта, таким образом, обеспечивается максимальная гарантия того, что каждый пользователь сможет работать только с теми данными, которые ему доступны.
DBA RESOURCE CONNECT Привилегии пользователей • В СУБД присутствуют три главные категории пользователей : • простые пользователи; • пользователи с возможностью изменения структуры базы данных • администраторы
Управление привилегиями • GRANTпривилегия [ONобъект] TOсубъект [WITH GRANT OPTION] • REVOKE привилегия [ON объект] FROM субъект • GRANTпривилегия [ONобъект] TO PUBLIC • REVOKE привилегия [ON объект] FROM PUBLIC • SELECT — привилегия на выборку данных; INSERT — привилегия на добавление данных; DELETE — привилегия на удаление данных; UPDATE — привилегия на обновление данных; • ALTER— изменение физической/логической структуры базовой таблицы • INDEX — создание/удаление индексов на столбцы базовой таблицы; • ALL— все возможные действия над таблицей.
Мандатная защита Все пользователи делятся на уровни и группы в соответствии с уровнем доверия к ним, а так же в соответствии с принадлежностью их к той или иной группе субъектов. Совершенно секретно Секретно … Для служебного пользования … УРОВНИ Информация отдела №7 Информация отдела №21 … Информация отдела №28 Общедоступная информация ГРУППЫ
Мандатный принцип состоит в сопоставлении меток доступа субъектов и объектов БД – вплоть до отдельных полей записи Столбец (снабжен меткой) Строка (снабжена меткой) Поле (снабжено меткой)
Ролевая модель ограничения доступа • Внутри организации создаются безличные роли, соответствующие разным выполняемым функциям. Доступ к выполнению операции предоставляется конкретным полям. • Управление привилегиями каждого пользователя сводится к представлению пользователю необходимого набора ролей
Шифрование • База данных в целях защитыцеликом подвергается математическому преобразованию при помощи современных алгоритмов • Применение оптимизированных алгоритмов преобразования и управления буферным кэшем обеспечивают минимальное падение производительности • Поддерживаются алгоритмы ГОСТ, AES(Advanced Encryption Standard), DES(Data Encryption Standard)
Криптографические функции INSERT INTO table VALUES ( 1, AES_ENCRYPT( 'text', 'password' ) ).
Пример реализации шифрования Подключимся к СУБД. Покажем на простом примере, как работает функция шифрования
Пример реализации шифрования 1. Создадим таблицу CUSTOMERS и заполним ее данными
Пример реализации шифрования 2. Чтобы зашифровать данные, воспользуемся следующей функцией
Пример реализации шифрования 3. Чтобы расшифровать данные, воспользуемся следующей функцией
Пример хэширования паролей Создадим нового пользователя MTUCI, и обновим о нем данные, добавив пароль в таблицу USER, где хранятся логины и хэши паролей пользователей:
Пример хэширования паролей Теперь поменяем записанный пароль в таблице USER на его хэш с помощью коммандыPASSWORD
Полный аудит действий в системе Входы в систему Запрос к конкретной таблице Время запроса Адрес станции AUDIT-подсистема (система протоколирования) Изменение схемы БД Попытки понижения секретности Изменение подсистемы доступа Новый пользователь
Резервное копирование и восстановление • Восстановление БД — это процесс возвращения БД в состояние, утраченное в результате сбоя или отказа. • Восстановление БД — это защита от потерь методом создания резервных копий и восстановления данных по ним.
Варианты атак на СУБД Oracle • Атака через TNS Listener • Подключение к СУБД • Парольная политика
Атака через TNS Listener • ListenerOracle– компонент сетевого доступа к системам Oracle • Принимает клиентские запросы и направляет их для обработки в соответствующий серверный процесс • Рассматривается как первый этап на пути вторжения в базы данных, т.к. плохо сконфигурированный незащищенный Listener предоставляет нарушителю различные способы осуществления атак
Атака через TNS Listener • Получить детальную информацию об атакуемой системе: – Имена баз данных (SIDs) – Версия СУБД – Пути к log-файлам – Версию ОС, на которой установлена СУБД • Произвести атаку отказа в обслуживании • Выполнять SQL– команды от имени DBA • Получить удаленный доступ к системе
Команды утилиты lsnrctl • status • version • start • stop • set –Password –Log_file –Current_listener –Trc_status
Параметры для защиты TNS Listener • PASSWORD– этот параметр отвечает за установку пароля на подключение к TNS Listener’у. В том случае, если пароль установлен, то выполняются только команды status и version, что дает информацию о версии Listener’a, установочной директории и операционной системе (по умолчанию не установлен) • ADMIN_RESTRICTIONS– этот параметр во включенном состоянии запрещает любые изменения конфигурационного файла удаленно (по умолчанию установлен в OFF) • LOCAL_OS_AUTHENTICATION– этот параметр во включенном состоянии позволяет управлять TNS Listener’ом только локально (по умолчанию установлен в OFF до версии10g)
Рекомендации по защите TNS Listener • Установить пароль на доступ к Listener • Включитьпротоколированиевсехпопытокподключенияк Listener дляобнаруженияпопытокпереборапаролей • Установитьпоследниеобновлениябезопасности(CPU) • Защититьлокальныеконфигурационныефайлы
ПодключениекСУБД • ДляподключениякСУБД Oracle необходимознать: 1.IP – адрессервера 2.Порт TNS Listener 3.Имябазыданных(SID) 4.Имяпользователя 5.Пароль
Подбор SID • Поискинформациивстороннихприложениях • Имябазыданныхявляетсястандартным, например, “ORCL” • Имябазыданныхявляетсясловарнымсловом • Имябазыданныхсостоитизмалогоколичествасимволов • ИмябазыданныхможноузнатьпоссылкеиздругойСУБД
Рекомендациипозащите SID • Сменить SID базданныхнаслучайныйнаборизнеменее8 символов • Максимальноограничитьдоступкфайламtnsnames.ora, оставивправаначтениелишьпользователю, отименикоторогозапускаетсяСУБД • Ограничитьдоступксистемамчерезкоторыеможноузнать SID, илимодифицироватьинформацию, выводимуюэтимисистемами
Пароли • Множество системных учетных записей со стандартными паролями > 600 • Некоторые не блокируются после установки • Множество приложений, которые интегрируются с СУБД, имеют свои стандартные системные учетные записи • По умолчанию не установлено ограничений на длину и сложность пароля • Перебор паролей к учетным записям в большинстве случаев не блокируется • Базы данных обычно содержат большое количество учетных записей
РекомендациипоповышениюбезопасностиРекомендациипоповышениюбезопасности • Провестиаудитучетныхзаписейнаналичиестандартныхпаролей • Периодическипросматриватьучетныезаписинапредметиспользованияипериодическиотключатьустаревшие • Ввестикакадминистративные, такипрограммныеограничениянадлинуисложностьпароля
Атаки на повышение привилегий • SQL injection • Evil View • DllPatching
SQL injection Самый распространённый и опасный тип уязвимостей
Evil ViewВозможно изменение/добавление/удаление данных, не имея привилегий на эти действия
DllPatching После успешного подключения к СУБД клиент устанавливает языковые настройки командой “ALTER SESSION SET NLS …”, которая выполняется от имени пользователя SYS на сервере