Protection of databases
Содержание
1.Введение
2.Защита информации
· Понятие защитыинформации
· Защита ПК отнесанкционированного доступа
· Защита информации вбазах данных
3.Реализация защиты в некоторых СУБД
· Архитектура защиты Microsoft Access
· MS SQL Server
- Организациязащиты
- Вопросыбезопасности доступа
- Управлениедоступом
- Типподключения к SQL Server
- Роли
· Безопасность данных в Oracle 7
- Ограничение доступа
- Использование пакетов
4.Юридическая защита авторских прав на базы данных
5.Заключение
6.Список использованной литературы
Введение
Современная жизнь немыслима без эффективногоуправления. Важной категорией являются системы обработки информации, от которыхво многом зависит эффективность работы любого предприятия ли учреждения. Такаясистема должна:
· обеспечиватьполучение общих и/или детализированных отчетов по итогам работы;
· позволять легкоопределять тенденции изменения важнейших показателей;
· обеспечиватьполучение информации, критической по времени, без существенных задержек;
· выполнять точныйи полный анализ данных.
Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полноиспользовать возможности персональной ЭВМ, нежели среда DOS. Снижение стоимости высокопроизводительных ПКобусловил не только широкий переход к среде Windows, где разработчик программного обеспечения может вменьше степени заботиться о распределении ресурсов, но также сделал программноеобеспечение ПК в целом и СУБД в частности менее критичными к аппаратнымресурсам ЭВМ. Среди наиболее ярких представителей систем управления базамиданных можно отметить: LotusApproach, MicrosoftAccess, BorlanddBase, BorlandParadox, MicrosoftVisualFoxPro, MicrosoftVisualBasic, а также баз данных MicrosoftSQLServerи Oracle, используемые в приложениях, построенных потехнологии «клиент-сервер».
Проблемаобеспечения защиты информации является одной из важнейших припостроении надежной информационной структуры учреждения на базе ЭВМ. Этапроблема охватывает как физическую защиту данных и системных программ, так изащиту от несанкционированного доступа к данным,передаваемым по линиям связи и находящимся нанакопителях, являющегося результатом деятельности как посторонних лиц, так испециальных программ-вирусов. Таким образом, в понятие защиты данных включаютсявопросы сохранения целостности данных и управления доступа к данным (санкционированность).
Технологическийаспект данного вопроса связан с различными видами ограничений, которые поддерживаютсяструктурой СУБД и должны быть доступны пользователю. К ним относятся:
-ограничениеобновления определенных атрибутов с целью сохранения требуемых пропорций междуих старыми и новыми значениями;
-ограничения,требующие сохранение значений поля показателя в некоторомдиапазоне;
-ограничения,связанные с заданными функциональнымизависимостями.
Обычно в СУБД вязык манипулирования данными уже закладываются необходимые компонентыреализации указанных ограничений. Проблема обеспечения санкционированностииспользования данных является неоднозначной, но в основном охватывает вопросы защиты данных от нежелательноймодификации или уничтожения, а также от несанкционированного их чтения.
В данной работея затрагиваю основные аспекты защиты баз данных, их реализацию на примерахконкретных СУБД, а так же юридическую сторону данного вопроса.
Защитаинформации
Понятие защиты информации
Защита информации — комплекс мероприятий, направленных на обеспечениеважнейших аспектов информационной безопасности (целостности, доступности и,если нужно, конфиденциальности информации и ресурсов, используемых для ввода,хранения, обработки и передачи данных) [1].
Система называется безопасной, если она, используя соответствующие аппаратныеи программные средства, управляет доступом к информации так, что только должнымобразом авторизованные лица или же действующие от их имени процессы получаютправо читать, писать, создавать и удалять информацию.
Очевидно, что абсолютно безопасных систем нет, и здесь речь идет онадежной системе в смысле «система, которой можно доверять» (как можнодоверять человеку). Система считается надежной, если она с использованиемдостаточных аппаратных и программных средств обеспечивает одновременную обработкуинформации разной степени секретности группой пользователей без нарушения правдоступа.
Основными критериями оценки надежности являются: политика безопасностии гарантированность.
Политика безопасности, являясь активным компонентом защиты (включает всебя анализ возможных угроз и выбор соответствующих мер противодействия),отображает тот набор законов, правил и норм поведения, которым пользуетсяконкретная организация при обработке, защите и распространении информации.
Выбор конкретных механизмов обеспечения безопасности системыпроизводится в соответствии со сформулированной политикой безопасности.
Гарантированность, являясь пассивным элементом защиты, отображает мерудоверия, которое может быть оказано архитектуре и реализации системы (другимисловами, показывает, насколько корректно выбраны механизмы, обеспечивающиебезопасность системы).
В надежной системе должны регистрироваться все происходящие события,касающиеся безопасности (должен использоваться механизм подотчетностипротоколирования, дополняющийся анализом запомненной информации, то естьаудитом).
При оценке степени гарантированное, с которой систему можно считатьнадежной, центральное место занимает достоверная (надежная) вычислительнаябаза. Достоверная вычислительная база (ДВЕ) представляет собой полнуюсовокупность защитных механизмов компьютерной системы, которая используетсядля претворения в жизнь соответствующей политики безопасности.
Надежность ДВБ зависит исключительно от ее реализации и корректностивведенных данных (например, данных о благонадежности пользователей,определяемых администрацией).
Граница ДВБ образует периметр безопасности. Компоненты ДВБ, находящиесявнутри этой границы, должны быть надежными (следовательно, для оценкинадежности компьютерной системы достаточно рассмотреть только ее ДВБ). Откомпонентов, находящихся вне периметра безопасности, вообще говоря, нетребуется надежности. Однако это не должно влиять на безопасность системы. Таккак сейчас широко применяются распределенные системы обработки данных, то под«периметром безопасности» понимается граница владений определеннойорганизации, в подчинении которой находится эта система. Тогда по аналогии то,что находится внутри этой границы, считается надежным. Посредством шлюзовойсистемы, которая способна противостоять потенциально ненадежному, а может бытьдаже и враждебному окружению, осуществляется связь через эту границу.
Контроль допустимости выполнения субъектами определенных операций надобъектами, то есть функции мониторинга, выполняется достоверной вычислительнойбазой. При каждом обращении пользователя к программам или данным мониторпроверяет допустимость данного обращения (согласованность действия конкретногопользователя со списком разрешенных для него действий). Реализация монитораобращений называется ядром безопасности, на базе которой строятся все защитныемеханизмы системы. Ядро безопасности должно гарантировать собственнуюнеизменность.
Защита ПК от несанкционированного доступа
Как показывает практика, несанкционированный доступ (НСД) представляетодну из наиболее серьезных угроз для злоумышленного завладения защищаемойинформацией в современных АСОД. Как ни покажется странным, но для ПК опасностьданной угрозы по сравнению с большими ЭВМ повышается, чему способствуют следующиеобъективно существующие обстоятельства:
1) подавляющая часть ПК располагается непосредственно в рабочихкомнатах специалистов, что создает благоприятные условия для доступа к нимпосторонних лиц;
2) многие ПК служат коллективным средством обработки информации, чтообезличивает ответственность, в том числе и за защиту информации;
3) современные ПК оснащены несъемными накопителями на ЖМД очень большой емкости, причем информация на нихсохраняется даже в обесточенном состоянии;
4) накопители на ГМД производятся в таком массовом количестве, что ужеиспользуются для распространения информации так же, как и бумажные носители;
5) первоначально ПК создавались именно как персональное средство автоматизации обработки информации, а потому и не оснащались специальносредствами защиты от НСД.
В силу сказанного те пользователи, которые желают сохранитьконфиденциальность своей информации, должны особенно позаботиться об оснащениииспользуемой ПК высокоэффективными средствами защиты от НСД.
Основные механизмы защиты ПК от НСД могут быть представлены следующимперечнем:
1) физическая защита ПК и носителей информации;
2) опознавание (аутентификация) пользователей и используемых компонентов обработкиинформации;
3) разграничение доступа к элементам защищаемой информации;
4) криптографическое закрытиезащищаемой информации, хранимой на носителях (архивация данных);
5) криптографическое закрытие защищаемой информации в процессе непосредственной ее обработки;
6) регистрация всех обращений к защищаемой информации. Ниже излагаютсяобщее содержание и способы использования перечисленных механизмов.
Защита информации в базах данных
В современных СУБД поддерживается один из двух наиболее общих подходовк вопросу обеспечения безопасности данных: избирательный подход и обязательныйподход. В обоих подходах единицей данных или «объектом данных», для которыхдолжна быть создана система безопасности, может быть как вся база данныхцеликом, так и любой объект внутри базы данных.
Эти два подхода отличаются следующими свойствами:
· В случаеизбирательного управления некоторый пользователь обладает различными правами(привилегиями или полномочиями) при работе с данными объектами. Разныепользователи могут обладать разными правами доступа к одному и тому же объекту.Избирательные права характеризуются значительной гибкостью.
· В случаеизбирательного управления, наоборот, каждому объекту данных присваиваетсянекоторый классификационный уровень, а каждый пользователь обладает некоторымуровнем допуска. При таком подходе доступом к определенному объекту данныхобладают только пользователи с соответствующим уровнем допуска.
· Для реализацииизбирательного принципа предусмотрены следующие методы. В базу данных вводитсяновый тип объектов БД — это пользователи. Каждому пользователю в БДприсваивается уникальный идентификатор. Для дополнительной защиты каждыйпользователь кроме уникального идентификатора снабжается уникальным паролем,причем если идентификаторы пользователей в системе доступны системномуадминистратору, то пароли пользователей хранятся чаще всего в специальномкодированном виде и известны только самим пользователям.
· Пользователимогут быть объединены в специальные группы пользователей. Один пользовательможет входить в несколько групп. В стандарте вводится понятие группы PUBLIC, для которой должен быть определен минимальныйстандартный набор прав. По умолчанию предполагается, что каждый вновьсоздаваемый пользователь, если специально не указано иное, относится к группе PUBLIC.
· Привилегии илиполномочия пользователей или групп — это набор действий (операций), которые онимогут выполнять над объектами БД.
· В последнихверсиях ряда коммерческих СУБД появилось понятие «роли». Роль — этопоименованный набор полномочий. Существует ряд стандартных ролей, которыеопределены в момент установки сервера баз данных. И имеется возможностьсоздавать новые роли, группируя в них произвольные полномочия. Введение ролейпозволяет упростить управление привилегиями пользователей, структурировать этотпроцесс. Кроме того, введение ролей не связано с конкретными пользователями,поэтому роли могут быть определены и сконфигурированы до того, как определеныпользователи системы.
· Пользователюможет быть назначена одна или несколько ролей.
· Объектами БД,которые подлежат защите, являются все объекты, хранимые в БД: таблицы,представления, хранимые процедуры и триггеры. Для каждого типа объектов естьсвои действия, поэтому для каждого типа объектов могут быть определены разныеправа доступа.
На самом элементарном уровне концепции обеспечения безопасности баз данныхисключительно просты. Необходимо поддерживать два фундаментальных принципа:проверку полномочий и проверку подлинности (аутентификацию).
Проверка полномочий основана на том, что каждому пользователю илипроцессу информационной системы соответствует набор действий, которые он можетвыполнять по отношению к определенным объектам. Проверка подлинности означаетдостоверное подтверждение того, что пользователь или процесс, пытающийсявыполнить санкционированное действие, действительно тот, за кого он себявыдает.
Система назначения полномочий имеет в некотором роде иерархическийхарактер. Самыми высокими правами и полномочиями обладает системный администраторили администратор сервера БД. Традиционно только этот тип пользователей можетсоздавать других пользователей и наделять их определенными полномочиями.
СУБД в своих системных каталогах хранит как описание самихпользователей, так и описание их привилегий по отношению ко всем объектам.
Далее схема предоставления полномочий строится по следующему принципу.Каждый объект в БД имеет владельца — пользователя, который создал данныйобъект. Владелец объекта обладает всеми правами-полномочиями на данный объект,в том числе он имеет право предоставлять другим пользователям полномочия поработе с данным объектом или забирать у пользователей ранее предоставленныеполномочия.
В ряде СУБД вводится следующий уровень иерархии пользователей — это администраторБД. В этих СУБД один сервер может управлять множеством СУБД (например, MSSQLServer, Sybase). В СУБД Oracleприменяется однобазовая архитектура, поэтому там вводится понятие подсхемы —части общей схемы БД и вводится пользователь, имеющий доступ к подсхеме. Встандарте SQLне определена команда созданияпользователя, но практически во всех коммерческих СУБД создать пользователяможно не только в интерактивном режиме, но и программно с использованиемспециальных хранимых процедур. Однако для выполнения этой операции пользовательдолжен иметь право на запуск соответствующей системной процедуры.
В стандарте SQLопределены два оператора: GRANTи REVOKEсоответственно предоставления и отмены привилегий.
Оператор предоставления привилегий имеет следующий формат:
GRANT {
ON ТО (] PUBLIC} [WITHGRANTOPTION]
Здесь список действий определяет набор действий из общедопустимогоперечня действий над объектом данного типа.
Параметр ALLPRIVILEGESуказывает, что разрешены все действия из допустимыхдля объектов данного типа.
— задает имя конкретного объекта: таблицы,представления, хранимой процедуры, триггера.
или PUBLICопределяет, кому предоставляются данные привилегии.
Параметр WITHGRANTOPTIONявляетсянеобязательным и определяет режим, при котором передаются не только права науказанные действия, но и право передавать эти права другим пользователям.Передавать права в этом случае пользователь может только в рамках разрешенныхему действий.
Рассмотрим пример, пусть у нас существуют три пользователя с абсолютноуникальными именами userl, user2 и user3. Все ониявляются пользователями одной БД.
User1 создал объект Таb1, он является владельцем этого объекта и может передатьправа на работу с эти объектом другим пользователям. Допустим, что пользовательuser2 является оператором, который должен вводить данные вТаb1 (например, таблицу новых заказов), а пользователь user3 является большим начальником (например, менеджеромотдела), который должен регулярно просматривать введенные данные.
Для объекта типа таблица полным допустимым перечнем действий являетсянабор из четырех операций: SELECT, INSERT, DELETE, UPDATE. При этом операция обновление может быть ограниченанесколькими столбцами.
Общий формат оператора назначения привилегий для объекта типа таблицабудет иметь следующий синтаксис:
GRANT{[SELECT][.INSERT][,DELETED[.UPDATE ()]} ON
ТО{ PUBLIC }
[WITH GRANT OPTION ]
Тогда резонно будет выполнить следующие назначения:
GRANT INSERT
ON Tab1
ТОuser2 GRANT SELECT
ONTab1
TOuser3
Эти назначения означают, что пользователь user2 имеет право только вводить новые строки в отношениеТаb1> а пользователь user3 имеет право просматривать все строки в таблице Таb1.
При назначении прав доступа на операцию модификации можно уточнить, значениекаких столбцов может изменять пользователь. Допустим, что менеджер отдела имеетправо изменять цену на предоставляемые услуги. Предположим, что цена задается встолбце COSTтаблицыТаb1. Тогда операция назначения привилегий пользователю user3 может измениться и выглядеть следующим образом:
GRANT SELECT. UPDATE (COST) ONTab1 TO user3
Если наш пользователь user1предполагает, что пользователь user4 может егозамещать в случае его отсутствия, то он может предоставить этому пользователювсе права по работе с созданной таблицей Таb1.
GRANT ALL PRIVILEGES
ON Tab1
TO user4 WITH GRANT OPTION
В этом случае пользователь user4может сам назначать привилегии по работе с таблицей Таb1 в отсутствие владельца объекта пользователя user1. Поэтому в случае появления нового операторапользователя user5 он может назначить ему правана ввод новых строк в таблицу командой
GRANT INSERT
ON Tab1 TO user5
Если при передаче полномочий набор операций над объектом ограничен, топользователь, которому переданы эти полномочия, может передать другомупользователю только те полномочия, которые есть у него, или часть этих полномочий.Поэтому если пользователю user4 былиделегированы следующие полномочия:
GRANTSELECT. UPDATE. DELETE
ON Tab1
TO user4 WITH GRANT OPTION,
то пользователь user4 не сможет передать полномочия на ввод данныхпользователю user5, потому что эта операция невходит в список разрешенных для него самого.
Кроме непосредственного назначения прав по работе с таблицами эффективнымметодом защиты данных может быть создание представлений, которые будутсодержать только необходимые столбцы для работы конкретного пользователя ипредоставление прав на работу с данным представлением пользователю.
Так как представления могут соответствовать итоговым запросам, то дляэтих представлений недопустимы операции изменения, и, следовательно, для такихпредставлений набор допустимых действий ограничивается операцией SELECT. Если же представления соответствуют выборке избазовой таблицы, то для такого представления допустимыми будут все 4 операции:SELECT, INSERT, UPDATEи DELETE.
Для отмены ранее назначенных привилегий в стандарте SQLопределен оператор REVOKE. Оператор отмены привилегий имеет следующийсинтаксис:
REVOKE{
FROM{
Параметры CASCADEили RESTRICTопределяют, каким образом должна производитьсяотмена привилегий. Параметр CASCADEотменяетпривилегии не только пользователя, который непосредственно упоминался воператоре GRANTпри предоставлении емупривилегий, но и всем пользователям, которым этот пользователь присвоилпривилегии, воспользовавшись параметром WITHGRANTOPTION.
Например, прииспользованииоперации:
REVOKE ALL PRIVILEGES - ON Tab1 TO user4 CASCADE
будут отменены привилегии и пользователя user5, которому пользователь user4 успел присвоить привилегии.
Параметр RESTRICKTограничивает отменупривилегий только пользователю, непосредственно упомянутому в операторе REVOKE. Но при наличии делегированных привилегий этотоператор не будет выполнен. Так, например, операция:
REVOKE ALL PRIVILEGES ON Tab1 TO user4 RESTRICT
не будет выполнена, потому что пользователь user4 передал часть своих полномочий пользователю user5.
Посредством оператора REVOKEможноотобрать все или только некоторые из ранее присвоенных привилегий по работе сконкретным объектом. При этом из описания синтаксиса оператора отмены привилегийвидно, что можно отобрать привилегии одним оператором сразу у несколькихпользователей или у целой группы PUBLIC.
Поэтому корректным будет следующее использование оператора REVOKE:
REVOKE INSERT ON Tab! TO user2.user4 CASCADE
При работе с другими объектами изменяется список операций, которыеиспользуются в операторах GRANTи REVOKE.
По умолчанию действие, соответствующее запуску (исполнению) хранимойпроцедуры, назначается всем членам группы PUBLIC.
Если вы хотите изменить это условие, то после создания хранимойпроцедуры необходимо записать оператор REVOKE.
REVOKEEXECUTEONCOUNT_EXTOPUBLICCASCADEИ теперь мы можем назначить новые права пользователю user4.
GRANT EXECUTE ON COUNT_EX TOuser4
Системный администратор может разрешить некоторому пользователю создаватьи изменять таблицы в некоторой БД. Тогда он может записать операторпредоставления прав следующим образом:
GRANTCREATETABLE. ALTER TABLE, DROP TABLE ON OB_LIB TO user1
В этом случае пользователь user1может создавать, изменять или удалять таблицы в БД DB_LIB, однако онне может разрешить создавать или изменять таблицы в этой БД другимпользователям, потому что ему дано разрешение без права делегирования своихвозможностей.
В некоторых СУБД пользователь может получить права создавать БД. Например,в MSSQLServerсистемный администраторможет предоставить пользователю main_userправо на создание своей БД на данном сервере. Этоможетбыть сделаноследующейкомандой:
GRANT CREATE DATABASE
ON SERVERJ) TO main user
По принципу иерархии пользователь main_user, создавсвою БД, теперь может предоставить права на создание или изменение любыхобъектов в этой БД другим пользователям. В СУБД, которые поддерживаютоднобазовую архитектуру, такие разрешения недопустимы. Например, в СУБД Oracleна сервере создается только одна БД, но пользователимогут работать на уровне подсхемы (части таблиц БД и связанных с нимиобъектов). Поэтому там вводится понятие системных привилегий. Их очень много,80 различных привилегий.
Для того чтобы разрешить пользователю создавать объекты внутри этой БД,используется понятие системной привилегии, которая может быть назначена одномуили нескольким пользователям. Они выдаются только на действия и конкретный типобъекта. Поэтому- если вы, как системный администратор, предоставилипользователю право создания таблиц (CREATETABLE), то для того чтобы он могсоздать триггер для таблицы, ему необходимо предоставить еще одну системнуюпривилегию CREATETRIGGER. Система защиты в Oracleсчитается одной из самых мощных, но это имеет иобратную сторону — она весьма сложная. Поэтому задача администрирования в Oracleтребует хорошего знания как семантики принциповподдержки прав доступа, так и физической реализации этих возможностей.
Реализация защиты в некоторых СУБД
Архитектура защиты Access
Если у вас имеется опыт работыс защитой, используемой на сервере или большой ЭВМ, структура защиты в Access покажется вамзнакомой. Вы можете указать пользователей, которым предоставляется или,наоборот, не разрешается доступ к объектам базы данных. Кроме того, вы можетеопределить группы пользователей и назначить разрешения на уровне группы, чтобыоблегчить построение защиты для большого числа пользователей. Пользователюдостаточно быть членом группы, чтобы получить права доступа, установленные длянеё.
Accessхранит информацию о защитев двух местах. Во время установки программа Setupсоздаст в папке Program FilesMicrosoftOficefficeстандартный файл рабочей группы (System.mdw), которыйвпоследствии используется по умолчанию при запуске Access. Этот файл содержит информацию обо всех пользователяхи группах. При создании базы данных Accessсохраняет сведения о правах, предоставляемых конкретным пользователям игруппам, в файле базы данных.
Общая структура защитыAccessотображена на рисунке 1. Учётные записи пользователейи групп хранятся в файле рабочей группы. Разрешение на доступ к конкретнымобъектам сохраняются в файле базы данных.
Рабочая группа
(обычно System.mdw)
Код рабочей группы
Пользователи
Код пользователя
Группы
Код группы
База данных приложения
(таблицы, запросы, формы,
отчеты, модули),
принадлежащая рабочей группе
Объект
Разрешение на доступ к объекту
Код пользователя или группы
Рис. 1
Расположение текущегофайла рабочей группы хранится в реестре Windows. Можно использовать служебную программу Wrkadm.exe (администратор рабочих групп) для изменениятекущего или определения нового файла рабочей группы. Кроме того, можновыбирать нужный файл рабочей группы во время выполнения приложения, задав соответствующийпараметр командной строки в ярлыке запуска. Если вам приходится часто запускатьв сети совместно используемое защищенное приложение, нужно позаботиться о том,чтобы системный администратор задал вашу рабочую группу, используемую по умолчанию,как общий файл в сетевой папке.
Каждая рабочая группаимеет уникальный внутренний идентификатор, генерируемый Accessпри определении файла рабочих групп. Любая базаданных, созданная пользователем рабочей группы, «принадлежит» как этомупользователю, так и рабочей группе. Каждый пользователь и группа также имеетуникальный внутренний идентификатор, но можно дублировать один и тот же кодпользователя и группы в нескольких рабочих группах. Когда вы назначаете праводоступа к объекту своей базы данных, Accessсохраняет в ней внутренний идентификатор пользователя или группы вместе синформацией о доступе. Таким образом, предоставленные вами права перемещаютсявместе с файлом базы данных при копировании его в другую папку или на другойкомпьютер.MSSQLServer