- •Минобрнауки россии
- •Тема 2. Структура и механизмы ос Лекция №2. Структура и механизмы ос
- •Тема 3. Организация многопрограммной работы. Процессы и потоки Лекция №3. Организация многопрограммной работы
- •Тема 4 . Управление данными в ос. Файловая система Лекция №4. Управление данными в ос
- •Тема 5. Управление данными в субд. Концепции и архитектура субд. Представление пользователя Организация баз данных Лекция №5. Концепции и архитектура субд
- •Тема 6. Проектирование данных. Отношения Лекция №6. Отношения. Нормальные формы
- •Тема 2. Структуры хранения и доступа к данным. Индексы Лекция №2. Структуры хранения на примере sql Server
- •Тема 3. Информационно-логическое моделирование в разработке баз данных Лекция №3. Моделирование предметной области
- •Тема 4. Работа с данными. Язык баз данных Лекция №4. Основные понятия языка баз данных на примереSql
- •Лекция №5. Запросы к базе данных
- •Тема 5. Защита и безопасность при доступе данным в многопользовательской среде Лекция №6. Защита и безопасность данных
Тема 5. Защита и безопасность при доступе данным в многопользовательской среде Лекция №6. Защита и безопасность данных
В рамках данной лекции рассматриваются нижеследующие вопросы:
Управление доступом: избирательное и обязательное
Проблемы многопользовательского режима.
Безопасность участников и объектов базы данных
Угрозы и уязвимости
Категории пользователей. Администратор БД. Владелец БД, владелец объекта БД.
Роли уровня сервера и базы данных
Управление доступом: избирательное и обязательное.
Существуют 2 подхода к вопросу обеспечения безопасности данных: избирательныйподход илиобязательныйподход. В обоих подходах объектом защиты может быть как вся база данных целиком или какой-либо набор отношений, так и некоторое значение данных для заданного атрибута внутри некоторого кортежа в определенном отношении. Эти подходы отличаются следующими свойствами:
В случае избирательногоуправления некий пользователь обладаетразличнымиправами (привилегиями или полномочиями) при работе с различными объектами. Более того, разные пользователи могут иметь разные правами доступа кодному и томуже объекту. Поэтому избирательные схемы характеризуются значительнойгибкостью.
В случае обязательного управления, наоборот, каждому объекту данных присваивается некоторый классификационный уровень, а каждый пользователь получает некоторый уровень допуска. Следовательно, при таком подходе доступ к определенному объекту данных предоставляют пользователю только с уровнем допуска, точно соответствующимклассификационному уровню объекта. Поэтому обязательные схемы являются достаточно жесткими, но более надежными.
Обеспечение безопасности в рамках современных СУБД осуществляется на уровнях платформы,проверки подлинности,объектов БДиприложений.
Под платформой подразумевают физическое оборудование и сетевые компьютеры, с помощью которых клиенты соединяются с серверами базы данных, а также исполняемые двоичные файлы, реализующие обработку запросов базы данных.
Безопасность участников и объектов базы данных
Участниками являются отдельные пользователи,группыипроцессы, которым предоставляется доступ к ресурсам системы. Защищаемыми объектами является сервер, база данных и объекты, которые содержит база данных. Для каждого них существует наборразрешений.
В настоящее время для определения совокупности разрешений и прав доступа используются именованные «роли», определяющие совокупность задач, которые можно выполнять при назначении этой роли.
Например, роли приложенийможно использовать для разрешения доступа кстрого определеннымданным только тем пользователям, которые подключены посредствомконкретного приложения.
Угрозы и уязвимости процесса
Безопасность процесса обеспечивается согласно политике безопасности, которая представляет собой запись процессов и процедур, применяемыхна предприятиидля предотвращения, отслеживания и реагирования на угрозы безопасности. Содержитполитикидля правильногодоступа к системе, обновлений, брандмауэров и антивирусных механизмов.
В соответствии с принципом «наименьших прав доступа», система должна предоставлять лишьнеобходимый уровеньдоступа к защищенному объекту. Доступ должен предоставляться только лицам, непосредственно нуждающимся в нем, итолько на точно определенное время.
Угрозы и уязвимости платформы могут представлять:
Нерегулярное обновление программных продуктов;
Атаки на сетевые порты;
Недопустимые параметры учетных записей;
Включение ненужных хранимых процедур.
Угрозы и уязвимости проверки подлинности могут представлять:
Простые пароли;
Несвоевременный аудит учетных записей пользователей.
Программные угрозы и уязвимостимогут представлять:
Внедрение вредоносного запроса в правильный запрос, называемое атака «инъекция SQL» (SQL Injection);
Сохранение некоторыми приложениями строк соединения с сервером/сетью в файлах программы или конфигурации.
Основная форма атаки путем внедрения кода SQL состоит в непосредственной вставке в пользовательские вводимые данные программного кода, который объединяется с динамически создаваемыми и выполняемыми предложениями SQL и выполняется. Менее явная атака внедряет вредоносный код в строки, предназначенные для хранения в таблице или в словаре данных в качестве метаданных. Когда впоследствии сохраненные строки объединяются с предложением SQL, происходит выполнение вредоносного кода.
Если внедренный код SQL синтаксически верен, искаженные данные нельзя выявить программно. Поэтому необходимо проверять правильность всех вводимых пользователями данных, а также внимательно просматривать код для исполнения SQL на сервере.
Обобщенно в качестве крупных категорий пользователейвыделяют уровень администратора БД владельца БД, владельца объекта БД.
Администратор БД- пользователь с расширенными правами, всегда может получить права доступа ко всем объектам, созданным членами данной рабочей группы;
Владелец БД всегда может открыть БД;
Владелец объекта наделен полными правами доступа к этому объекту.
Для удобства управления разрешениями на сервере имеются несколько ролей участников обеспечения безопасности. Роли уровня сервера также называются предопределенными ролями сервера, поскольку пользователь не может создавать новые роли уровня сервера. Разрешения ролей уровня сервера распространяются на весь сервер.
В следующей таблице представлены роли уровня сервера и их возможности.
|
Имя роли на уровне сервера |
«Роль» пользователя-участника (допустимые действия) |
|
sysadmin |
Можно выполнять любые действия на сервере |
|
serveradmin |
Можно изменять параметры конфигурации на уровне сервера, а также выключать сервер |
|
securityadmin |
Можно предоставлять, запрещать и отменять разрешения на уровне сервера и на уровне базы (оператора GRANT, DENY и REVOKE) |
|
processadmin |
Можно завершать процессы, работающие на экземпляре сервера. |
|
setupadmin |
Можно добавлять или удалять связанные серверы |
|
bulkadmin |
Можно выполнять оператор BULK INSERT |
|
diskadmin |
Предопределенная роль diskadmin уровня сервера используется для управления файлами на диске |
|
dbcreator |
Можно создавать, изменять, удалять и восстанавливать любые базы данных. |
|
public |
Если для участника на уровне сервера не были предоставлены или запрещены конкретные разрешения на защищаемый объект, он наследует разрешения роли public на этот объект. |
Предопределенные роли базы данных задаются на уровне базы данных и предусмотрены в каждой базе данных. В следующей таблице представлены предопределенные роли уровня базы данных и их возможности.
|
Имя роли уровня базы данных |
Роль пользователя-участника |
|
db_owner |
Можно выполнять все действия по настройке и обслуживанию базы данных, а также удалять базу данных. |
|
db_securityadmin |
Можно изменять членство в роли и управлять разрешениями. Добавление участников к этой роли может привести к непреднамеренному повышению прав доступа. |
|
db_accessadmin |
Можно добавлять или удалять права удаленного доступа к базе данных для имен входа и групп |
|
db_backupoperator |
Можно создавать резервные копии базы данных. |
|
db_ddladmin |
Можно выполнять любые команды языка описания данных (DDL) в базе данных. |
|
db_datawriter |
Можно добавлять, удалять или изменять данные во всех пользовательских таблицах. |
|
db_datareader |
Можно считывать все данные из всех пользовательских таблиц. |
|
db_denydatawriter |
Не может добавлять, изменять или удалять данные в пользовательских таблицах базы данных. |
|
db_denydatareader |
Не может считывать данные из пользовательских таблиц базы данных. |
Основная литература
|
Учебник / Учебное пособие |
Раздел |
Страницы |
|
1. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.- 304 с.; ил. |
Глава 13 |
276-285 |
|
2. Хомоненко А.Д, Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / под ред. проф. Хомоненко А.Д., 6-ое изд. – М.:Бином-Пресс; СПб.:Корона-Век, 2007.-736с. |
Гл.8 |
221-242 |
Дополнительная литература
|
Учебник / Учебное пособие |
Раздел |
Страницы |
|
1. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.;М.; СПб.: Издательский дом “Вильямс”,. 1999. – 848 с.: ил. (7-е и 8-е издание). |
15.3 – 15.7 |
421-436 |
|
2. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. - М.: Издательский дом “Вильямс”,. 2001. – 1120 с.: ил. |
16.1 – 16.8 |
567-590 |
