1. Основные положения теории баз данных 4 Основные понятия и определения теории баз данных 4
Скачать 0.63 Mb.
|
4. Методы и средства защиты данных в базах данных4.1. Способы контроля доступа к данным и управления привилегиямиОбслуживать базу данных безопасности может только пользователь SYSDBA. Не поддерживаются изменения пользователями своих собственных паролей. Требуемыми данными являются имя пользователя и пароль. Имя пользователя чувствительно к регистру и должно быть уникальным. Оно может содержать только символы, допустимые для идентификаторов объектов: A – Z (a – z), цифры и символы !, #, $, &, @. Длина имени пользователя не должна быть больше 31 символа. Пароль может содержать до 32 символов, однако, только первые восемь являются значимыми. Поэтому, например, пароли masterkey и masterkeeper для сервера идентичны. Пароли чувствительны к регистру. Допустимые символы такие же, как и для имени пользователя. Для шифрования паролей используется метод, основанный на алгоритме DES (Data Encryption Standard). Однако, при этом используется шифрование с потерей данных, которое не позволяет восстановить исходный пароль путём шифрования. При назначении паролей смешивайте регистр, включите цифры. Регулярно изменяйте пароли. Для поддержки пользователей не существует специального SQL-оператора. Имена пользователей могут использоваться в SQL в качестве аргументов операторов GRANT…TO и REVOKE…FROM. Имя пользователя доступно в SQL через переменную CURRENT_USER и серверный литерал USER. При установке Firebird для Windows в базу данных безопасности добавляется пользователь SYSDBA с паролем masterkey. Пароль должен быть изменён в первую очередь. Пользователь SYSDBA является владельцем базы данных безопасности. В качестве интерфейса командной строки для работы с базой данных безопасности существует утилита gsec. Безопасность на уровне базы данных в Firebird решает две задачи: не разрешить пользователям, идентифицированным на сервере, доступ к данным базы данных; предоставить доступ пользователям, которые работают с данной базой данных. Средствами реализации этого являются привилегии SQL. Привилегии SQL могут поддерживать любой уровень детализации доступа к любому элементу данных вплоть до уровня столбца. В отличие от пользователей привилегии применимы к уровню базы данных и хранятся непосредственно в самой базе данных в системной таблице RDB$USER_PRIVILEGES. В момент создания базы данных доступ к любому объекту базы данных имеют владелец и SYSDBA. Остальные пользователи должны для этого иметь привилегии SQL к любой операции, даже к SELECT. Несуществующие объекты не являются защищёнными. Любой пользователь, имеющий доступ к базе данных, может создать любой допустимый объект базы данных, в том числе и внешние функции и внешние таблицы, которые могут быть использованы для установки и выполнения хакерского кода на сервере. Привилегия представляет разрешение выполнять операцию DML: select, insert, update, delete, references, all, execute, role all – это привилегии select, insert, update, delete и references. references – привилегия на ссылку из внешнего ключа на первичный ключ одной таблицы. execute – выполнение хранимой процедуры или вызов её с использованием select. role – Предоставляет все привилегии, назначенные роли. Роль может назначаться пользователям. Думайте о роли, как о ёмкости для набора привилегий. “Другой частью” полномочий является объект, к которому применяется привилегия или для которого она отменяется. Объектом может быть таблица, просмотр, хранимая процедура и роль. Пользователи являются получателями полномочий; они теряют их, когда полномочия отменяются. В качестве пользователя может выступать пользователь, определенный в базе данных безопасности, специальный пользователь или объект базы данных. Пользователь SYSDBA имеет особые права ко всем базам данных и их объектам, независимо от того, какой пользователь ими владеет. Вначале создатель объекта, его владелец, является единственным пользователем, кроме SYSDBA, который имеет доступ к этому объекту, и может позволять получать к нему доступ другим пользователям. Любой из этих пользователей затем может запустить “цепочку” полномочий, предоставляя другим пользователям права назначать привилегии. Такое право может передаваться добавлением слов with grant option и полномочиям. PUBLIC является пользователем, который обозначает всех пользователей в базе данных безопасности. Он не включает в себя хранимые процедуры, триггеры или роли. GRANT UPDATE (C_FIRST, C_LAST, PHONE) ON CUSTOMERS TO PUBLIC Процесс реализации ролей состоит из четырёх шагов: Создание роли с использованием оператора CREATE ROLE; Назначение привилегий этой роли посредством GRANT привилегия TO роль; Назначение роли пользователям посредством GRANT роль TO пользователь; Задание роли вместе с именем пользователя при соединении с БД. Существует две модели Firebird – Суперсервер и классический сервер. Классический сервер выполняется как один серверный процесс на каждое соединение с клиентом. Суперсервер выполняется как один вызов выполняемого модуля, который запускается один раз системным загрузочным скриптом и остаётся запущенным, ожидая запросов на соединение. Firebird не требует постоянных серьёзных изменений конфигурации, как это делает большинство других мощных реляционных СУБД. Файл конфигурации Firebird имеет имя Firebird.conf. Этот файл читается при каждом запуске Firebird. Параметры конфигурации по умолчанию и их значения отображаются в файле конфигурации с помощью комментариев (первым символом строки является символ #). Файл конфигурации может быть отредактирован любым текстовым редактором. Записи имеют форму: имя - параметра = значение Для установления значения любого параметра в значение, отличающееся от значения по умолчанию, необходимо удалить маркер комментария (#) и отредактировать значение. Параметры, связанные с файловой системой: RootDirectory – задаёт абсолютный путь к корневому каталогу Firebird. DatabaseAccess – предоставляет возможность ограничения доступа к базам данных. Может иметь значения Full, None, Restrict. Full (по умолчанию) разрешает доступ к файлам базы данных в любом месте локальной файловой системы. None позволяет серверу соединяться только с БД, которые указаны в списке aliases.conf (рекомендуется устанавливать этот режим). Restrict позволяет сконфигурировать размещение доступных для подключения файлов БД, указывая список каталогов файловой системы DatabaseAccess = Restrict D:\DATA; D:\DATA\FB TempDirectories – список каталогов, где могут сохраняться файлы сортировки. CpuAffinityMask – под Windows Суперсервер может постоянно переключаться туда и сюда между процессорами на машинах SMP – эффект качелей. Данный параметр должен быть использован для установки одного или более конкретных процессоров для Суперсервера Firebird. CpuAffinityMask = 1 (Суперсервер запускается только на первом процессоре (CPU 0)). DummyPacketInterval – устанавливает количество секунд (целое число), в течение которых сервер должен ждать молчания клиентского соединения, прежде чем отправить пустой пакет для подтверждения запроса. По умолчанию устанавливается в 0 (отключено) для Firebird 1.5. В Windows он должен быть равен 0 - по причине ошибки в Windows использование не нулевого значения может привести к зависанию или краху Windows на клиентской стороне. ExternalFileAccess – предоставляет три уровня безопасности в отношении доступа к внешним файлам из таблиц базы данных. Значением могут быть Full, None и Restrict. None (значение по умолчанию) отключает любое использование внешних файлов сервером; Restrict предоставляет возможность ограничить размещение внешних файлов для доступа из базы данных конкретными путями; Full позволяет осуществлять доступ к внешним файлам, находящимся в любом месте системы. Однако уже давно известны возможности использовать внешние таблицы как для перекачивания базы данных с сервера на клиент, так и для внедрения с клиента на сервер вредоносных UDF. 4.2. Основные методы и средства защиты данных в базах данныхВ Firebird не существует средств для шифрования и дешифрования данных (кроме паролей пользователей), которые передаются через клиентский интерфейс на сервер. На уровне программного обеспечения нет защиты от налётчиков, которые установили доступ к вашей базе данных без авторизации. Если безопасность имеет серьёзное значение для установки вашей системы, то и отнеситесь к ней серьёзно. Существуют некоторые проблемы, для решения которых вы должны предпринять меры предосторожности в вашем окружении сервера и клиента. Содержите серверы и критичные клиентские машины в помещениях с хорошо закрываемыми дверями. Основным фактором физической безопасности является защита чувствительных к безопасности машин от физических контактов неавторизованных лиц. Всё остальное не даст никаких результатов, если посторонние смогут получать доступ к машине. Если возможно, заблокируйте такие ресурсы, как CD-ROM, накопители на гибких магнитных дисках и драйверы USB, отключите порты, через которые можно получить доступ к устройствам первоначальной загрузки, или установите такие режимы в BIOS, которые предотвратят загрузку со съёмных устройств. Установите в BIOS защиту по паролю, чтобы предотвратить неавторизованные изменения режимов первоначальной загрузки. Установите защиту по паролю на все серверы и рабочие станции. Пользователям удалённых баз данных (клиентским приложениям) не нужны полномочия на непосредственный доступ к файлам базы данных, а также к внешним приложениям (UDF), которые связаны с таблицами базы данных. Поэтому сервер можно сконфигурировать (файл Firebird.conf) так, чтобы уменьшить риск постороннего воздействия. Регулярно выполняйте резервное копирование на переносимые носители и сохраняйте их в защищённом месте. Не оставляйте резервные копии и архивы базы данных в сетевом окружении, где гуляющие по сети могут их найти. Сворованная копия файла архива может быть восстановлена с полной прозрачностью всех файлов на любом другом сервере Firebird. То же относится и к сворованной копии вашей базы данных. Как пользователь SYSDBA вы можете открыть эти копии и просмотреть, что угодно. Если у вас нет веских причин поступить по-другому, то запускайте сервер Firebird как сервис (а не как программу). Используйте специальную учётную запись пользователя для запуска сервиса Firebird. Для Linux это реализовано по умолчанию, а под Windows вы должны это сделать сами. В сетях Windows отменяйте возможность для пользователей и групп изменять их собственные установки регистрации. Используйте строгие пароли. Инсталляции серверов Windows являются столь безобразно сложными в плане безопасности, что требования высокой защищённости могут просто полностью исключить Windows в качестве платформы для установки серверов базы данных. Поэтому на практике предпочтение отдаётся системам Linux. Программное обеспечение операционной системы Windows не даёт надёжных гарантий безопасности серверов базы данных в локальной сети или за её пределами. Поэтому доступ пользователей должен быть чётко сконфигурирован с помощью LAN и других продуктов сетевой защиты сторонних разработчиков для блокирования атак. Выполнение сервиса FIREBIRD в Windows несёт в себе явный риск выполнения произвольного кода, созданного со злым умыслом. Исключите использование на хост-машине других серверов, особенно таких уязвимых, как Web-серверы и FTP-серверы, которые потенциально принимают безымянные подключения. В Windows ограничьте сетевой доступ к реестру на серверах баз данных. При инсталляции сервера Firebird устанавливается база данных идентификации пользователя, которая хранит описание всех пользователей, имеющих доступ к серверу Firebird. Для каждого пользователя должен быть определён чувствительный к регистру пароль, который должен использоваться для доступа к серверу. Эта база данных находится в файле security.fdb. Он должен размещаться в корневом каталоге Firebird. Не соединяйтесь из пользовательского приложения или из инструмента администратора непосредственно с базой данных curity. fdbх находится в файле ыть определён чувствительный к регистру пароль, который должен использоваться для доступа к security.fdb для запуска скрипта для пакетного ввода пользователей. При стандартном вводе учётных данных пользователя (инструмент gsec) пароли перед их сохранением шифруются. При непосредственном вводе паролей в базу данных security.fdb они сохраняются в виде незашифрованного текста. Заключение При выборе технологии построения информационной системы нужно тщательно оценивать и прогнозировать ее потенциальные потребности в средствах управления данными. Конечно, любую информационную систему можно основывать на использовании промышленной, большой и мощной СУБД (такой, как например Oracle). Но вполне может оказаться так, что в действительности приложение будет использовать доли процентов общих возможностей СУБД. Накладные расходы (затраты на дополнительную аппаратуру, лицензирование дорогостоящего программного продукта, увеличение общего времени выполнения операций) могут оказаться неоправданными. При разработке информационных систем для локальных вычислительных сетей с использованием технологии клиент/сервер оправданно и целесообразно в качестве СУБД применять свободно распространяемую СУБД FireBird, которую можно устанавливать практически на компьютеры с любой платформой (Unix, Linux, Windows и пр.). Эта СУБД, для своей установки, не требует покупки специального сервера (так например, СУБД MS SQL Server требует для своей установки сервер Windows Server 2003) и обладает большим количеством других преимуществ. Обслуживание СУБД FireBird осуществляется с использованием инструментов администрирования IBExpert, которые для граждан и предприятий, использующих русскоязычную операционную систему Windows, также являются бесплатными. Использование CASE- инструментов для упрощения и автоматизации решения отдельных задач в ходе разработки информационных систем, содержащих базы данных, позволяет существенно повысить продуктивность труда разработчиков. CASE- инструменты позволяют повысить качество конечного продукта, поскольку компьютеры лучше, чем человек, справляются с определенными задачами. Кроме того, использование CASE- инструментов существенно упрощает процесс создания и поддержку разнообразных диаграмм и позволяет генерировать более корректную документацию. CASE-инструменты позволяют автоматически преобразовать фрагменты спецификаций проекта (например, физическую диаграмму данных) в SQL операторы и выполняемый код, что сокращает объем работы по созданию готовой системы. Литература И. А. Долгова, А.В. Еременко, С. В. Щербакова. Базы данных: учебник (с грифом УМО) – Пенза: Изд-во ПГУ, 2010. – 112 с. А.В. Еременко, Г.В. Бобрышева, И.А. Долгова. Проектирование баз данных с помощью OpenModelSphere: учебное пособие.– Пенза: Изд-во ПГУ, 2011. – 78 с. И.А. Долгова, А.В. Еременко, М.В. Измайлова, Д.В. Строганов, Ю.В. Терякова. Использование OPEN MODELSPHERE для разработки информационных систем. // Под редакцией к.т.н. А.П. Ремонтова. Учебное пособие (с грифом УМО) – Пенза: Изд-во ПГУ, 2014, - 84 с. Интернет-ресурсы Википедия [Интернет-портал]. URL: https://ru.wikipedia.org/wiki/Firebird. Материалы сайта кафедры «ИВС» (http://172.16.76.30/ivs/index.html). Конспект лекций разработан в соответствии с требованиями ФГОС СПО по специальности 09.02.03 Программирование в компьютерных системах, утвержденного приказом Министерства образования и науки РФ № 804 от 28 июля 2014 г. с учетом рекомендаций ПрООП. Конспект лекций разработал: Долгова И.А., к.т.н., доцент каф. «ИВС» Конспект лекций одобрен кафедрой «Информационно-вычислительные системы», ответственной за проектирование и реализацию ППССЗ. Протокол заседания кафедры № ___ от _______________. Заведующий кафедрой Ю.Н. Косников Конспект лекций одобрен Учебно-методическим советом Многопрофильного колледжа Протокол № ___ от «____» ______________ 20__ года Председатель Учебно-методического совета Многопрофильного колледжа _______________________ Феоктистов В. А. |