29 защита данных и безопасность бд средства поддержки баз данных и их расширения

Взаимодействие пользователя с базами данных обеспечивается соответствующими средствами аппаратной и программной поддержки. их можно разделить на три группы. первая группа

Взаимодействие
пользователя с базами данных обеспечивается
соответствующими средствами аппаратной
и программной поддержки. Их можно
разделить на три группы. Первая группа
— средства ввода-вывода данных, к которым
относятся: клавиатура, магнитный диск,
сканер, дигитайзер, лазерный диск,
видеокамера, принтер, плоттер, видеоэкран
и др. с соответствующими программными
средствами.

Сканер
обеспечивает считывание информации с
твердых носителей, чаще с бумажных,
путем сплошной оцифровки рабочей
поверхности. Дигитайзер предназначен
для оцифровывания заданных
последовательностей точек в двух- или
трехмерном представлении. Плоттер — это
устройство вывода на твердый носитель
графической информации.

Во
вторую группу выделяются средства
передачи данных: локальные вычислительные
сети с операционной системой и аппаратными
средствами, включающими рабочие станции
(РС), файл-сервер (ФС), сетевые адаптеры,
сетевой кабель; глобальные вычислительные
сети (ГВС) с соответствующим программным
обеспечением и аппаратными средствами,
включающими модем (МД), телефонную линию,
спутниковую связь.

Рабочие
станции представляют собой ПК, подключенные
к ЛВС, оборудованные необходимыми
периферийными средствами, предназначенные
для решения задач пользователя.
Файл-сервер — это наиболее мощный ПК в
сети, который концентрирует в своей
памяти всю информацию, циркулирующую
в ЛВС между РС. Модем в ГВС предназначен
для сопряжения РС с линией сетевой
связи, он обеспечивает кодирование и
декодирование с проверкой и исправлением
ошибок передаваемой информации.

Средства
манипулирования данными в БнД включены
в третью группу. Она включает СУБД, язык
запросов, например, SQL,
программы пользователей.

2.15. Виды моделей данных для бд

При
разработке прикладных программ, или
приложений, для пользователей БД удобно
ориентироваться на заранее проработанные
и рекомендованные типовые модели данных,
т.е. некоторые стандартные модели,
структуры которых удовлетворяют заранее
определенным требованиям.

В
современных информационных системах
наиболее распространены три вида моделей
данных:

  • иерархическая;

  • сетевая;

  • реляционная.


      1. Иерархическая модель данных

Иерархическая
модель данных – это модель, имеющая
древовидную графовую структуру (Рис. 0 .13),
представляющую собой иерархию элементов,
называемых вершинами (или узлами),
соединенных между собой дугами (или
ветвями). На верхнем уровне иерархии,
называемом первым, находится единственный
узел, называемый корнем. Узлы следующего
более низкого уровня порождаются
предыдущими узлами. Каждый узел более
высокого уровня может породить один
или несколько узлов следующего уровня.
Узлы, не имеющие порожденных, называются
листьями.

Иерархическая
структура используется как для
логического, так и для физического
описания данных. Файлы с записями,
связанными древовидной структурой,
называются иерархическими.

Рис.
0.13


      1. Сетевая модель данных

Сетевой
моделью данных называется структура,
в которой порожденный элемент может
иметь больше одного исходного элемента.
На Рис. 0 .14,а каждый порожденный элемент
3 и 4 имеет по два исходных: элементы 1 и
2. На Рис. 0 .14,б нижний элемент 4 имеет
три исходных: элементы 1, 2, 3.

Рис.
0.14

Для
сетевых моделей данных, как и для
иерархических, рассматривается
уровневость. Так, структура на рис.2.14,а
является двухуровневой, а на Рис. 0 .14,б
— четырехуровневая. В зависимости от
уровней связи сетевые модели разделяются
на два вида структур:

  • сетевые модели
    простой структуры — при наличии связей
    типа 1:1 и 1:М;

  • сетевые модели
    сложной структуры — при наличии связей
    типа М: М.

Соседние файлы в предмете Базы данных

  • #

    02.05.20144.96 Mб24База данных — Электрон.mdb

  • #
  • #
  • #

    02.05.2014241.82 Кб22Введение в базы данных (Алексей Федоров, Наталия Елманова).mht

  • #
  • #
  • #
  • #
  • #
  • #
  • #

Внутренняя операционная информация компании, персональные данные сотрудников, финансовая информация, информация о заказчиках и клиентах, интеллектуальная собственность, исследования рынка, анализ деятельности конкурентов, платежная информации — это сведения, которые чаще всего интересуют киберпреступников, и почти всегда они хранятся в корпоративных базах данных.

Значимость и ценность этой информации приводит к необходимости обеспечения защиты не только элементов инфраструктуры, но и самих баз данных. Попробуем комплексно рассмотреть и систематизировать вопросы безопасности различных систем управления базами данных (СУБД) в свете новых угроз, общих тенденций развития информационной безопасности и их возрастающей роли и разнообразия.

Почти все крупные производители СУБД ограничиваются развитием концепции конфиденциальности, целостности и доступности данных, а их действия направлены, в основном, на преодоление существующих и уже известных уязвимостей, реализацию основных моделей доступа и рассмотрение вопросов, специфичных для конкретной СУБД. Такой подход обеспечивает решение конкретных задач, но не способствует появлению общей концепции безопасности для такого класса ПО, как СУБД. Это значительно усложняет задачу по обеспечению безопасности хранилищ данных на предприятии.

История развития СУБД

Исторически развитие систем безопасности баз данных происходило как реакция на действия злоумышленников. Эти изменения также были обусловлены общим развитием баз данных от решений на мейнфреймах до облачных хранилищ.

Можно выделить следующие архитектурные подходы:

  • полный доступ всех пользователей к серверу БД;
  • разделение пользователей на доверенных и частично доверенных средствами СУБД;
  • введение системы аудита (логов действий пользователей) средствами СУБД;
  • введение шифрования данных; вынос средств аутентификации за пределы СУБД в операционные системы и промежуточное ПО; отказ от полностью доверенного администратора данных.

Введение средств защиты как реакции на угрозы не обеспечивает защиту от новых способов атак и формирует разрозненное представление о самой проблеме обеспечения безопасности.

С учетом таких эволюционных особенностей появилось и существует большое количество разнородных средств обеспечения безопасности, что в итоге привело к отсутствию понимание комплексной безопасности данных. Отсутствует общий подход к безопасности хранилищ данных. Усложняется и прогнозирование будущих атак, а также разработка защитных механизмов. Более того, для многих систем сохраняется актуальность уже давно известных атак, усложняется подготовка специалистов по безопасности.

Современные проблемы обеспечения безопасности БД

Список основных уязвимостей СУБД не претерпел существенных изменений за последние годы. Проанализировав средства обеспечения безопасности СУБД, архитектуру БД, известные уязвимости и инциденты безопасности, можно выделить следующие причины возникновения такой ситуации:

  • проблемами безопасности серьезно занимаются только крупные производители;
  • программисты баз данных, прикладные программисты и администраторы не уделяют должного внимания вопросам безопасности;
  • разные масштабы и виды хранимых данных требуют разных подходов к безопасности;
  • различные СУБД используют разные языковые конструкции для доступа к данным, организованным на основе одной и той же модели;
  • появляются новые виды и модели хранения данных.

Многие уязвимости сохраняют актуальность за счет невнимания или незнания администраторами систем баз данных вопросов безопасности. Например, простые SQL-инъек­ции широко эксплуатируются сегодня в отношении различных web-приложений, в которых не уделяется достаточного внимания входным данным запросов.

Применение различных средств обеспечения информационной безо­пасности является для организации компромиссом в финансовом плане: внедрение более защищенных продуктов и подбор более квалифицированного персонала требуют больших затрат. Компоненты безопасности зачастую могут негативно влиять на производительность СУБД.

Эти проблемы усугубляются с появлением и широким распространением нереляционных СУБД, оперирующих другой моделью данных, однако построенных по тем же принципам, что и реляционные. Многообразие современных NoSQL-решений приводит к разнообразию применяемых моделей данных и размывает границу понятия БД.

Следствием этих проблем и отсутствия единых методик является нынешняя ситуация с безопасностью . В большинстве NoSQL-систем отсутствуют не только общепринятые механизмы безопасности вроде шифрования, поддержки целостности и аудита данных, но даже развитые средства аутентификации пользователей.

Особенности защиты БД

Хранилища данных включает в себя два компонента: хранимые данные (собственно БД) и программы управления (СУБД).

Обеспечение безопасности хранимой информации, в частности, невозможно без обеспечения безопасного управления данными. Исходя из этого, все уязвимости и вопросы безопасности СУБД можно разделить на две категории: зависящие от данных и не зависящие от данных.

Уязвимости, независящие
от данных, являются характерными и для всех прочих видов ПО. Их причиной, например, может стать несвоевременное обновление ПО, наличие неиспользуемых функций или недостаточная квалификация администраторов ПО.

Большинство аспектов безопасности СУБД является именно зависящими от данных. В то же время многие уязвимости
являются косвенно зависимыми от данных. Например, большинство СУБД поддерживают запросы к данным с использованием некоторого языка запросов, содержащего наборы доступных пользователю функций (которые, в свою очередь, тоже можно считать операторами запросного языка) или произвольные функции на языке программирования.

Архитектура применяемых языков, по крайней мере, то, что касается специализированных языков и наборов функций, напрямую связана с моделью данных, применяемой для хранения информации. Таким образом, модель определяет особенности языка, и наличие в нем тех или иных уязвимостей. Причем такие уязвимости, например, как инъекция, выполняются по-разному (sql-инъекция, java-инъек­ция) в зависимости от синтаксиса языка.

Требования к безопасности БД

На основании разделения уязвимостей можно выделить зависящие и независящие от данных меры обеспечения безопасности хранилищ информации.

Не зависящими от данных
мож­но назвать следующие требования к безопасной системе БД:

  • Функционирование в доверенной среде.

Под доверенной средой следует понимать инфраструктуру предприятия и ее защитные механизмы, обусловленные политиками безопасности. Таким образом, речь идет о функционировании СУБД в соответствии с правилами безопасности, применяемыми и ко всем прочим системам предприятия.

  • Организация физической безопасности файлов данных.

Требования к физической безопасности файлов данных СУБД в целом не отличаются от требований, применяемых к любым другим файлам пользователей и приложений.

  • Организация безопасной и актуальной настройки СУБД.

Данное требование включает в себя общие задачи обеспечения безопасности, такие как своевременная установка обновлений, отключение неиспользуемых функций или применение эффективной политики паролей.

Следующие требования можно назвать зависящими от данных
:

  • Безопасность пользовательского ПО.

Сюда можно отнести задачи построения безопасных интерфейсов и механизмов доступа к данным.

  • Безопасная организация и работа с данными.

Вопрос организации данных и управления ими является ключевым в системах хранения информации. В эту область входят задачи организации данных с контролем целостности и другие, специфичные для СУБД проблемы безо­пасности. Фактически эта задача включает в себя основной объем зависящих от данных уязвимостей и защиты от них.

Основные аспекты создания защищенных БД

Для решения обозначенных проблем обеспечения информационной безопасности СУБД необходимо перейти от метода закрытия уязвимостей к комплексному подходу обеспечения безопасности хранилищ информации. Основными этапами этого перехода, должны стать следующие положения.

  • Разработка комплексных методик обеспечения безопасности хранилищ данных на предприятии.

Создание комплексных методик позволит применять их при разработке и внедрении хранилищ данных и пользовательского ПО. Следование комплексной методике позволит избежать многих ошибок управления СУБД и защититься от наиболее распространенных на сегодняшний день уязвимостей.

  • Оценка и классификация угроз и уязвимостей СУБД.

Классификация угроз и уязвимостей СУБД позволит упорядочить их для последующего анализа и защиты, даст возможность специалистам по безопасности установить зависимость между уязвимостями и причинами их возникновения. В результате при введении конкретного механизма в СУБД, у администраторов и разработчиков появится возможность установить и спрогнозировать связанные с ним угрозы и заранее подготовить соответствующие средства обеспечения безопасности.

  • Разработка стандартных механизмов обеспечения безопасности.

Стандартизация подходов и языков работы с данными позволит создать средства обеспечения безопасности, применимые к разным СУБД. В данный момент они могут быть лишь методическими или теоретическими, так как, к сожалению, появление готовых комплексных программных средств защиты во многом зависит от производителей и разработчиков СУБД и их желания создавать и следовать стандартам.

Об авторе

Максим Советкин окончил механико-математический факультет Белорусского государственного университета, работает в Itransition уже более семи лет. Сегодня он — ведущий системный инженер, отвечает за проектирование, развитие и поддержку корпоративной ИТ-инфраструктуры.

База данных представляет собой важнейший корпоративный ресурс, который должен быть надлежащим образом защищен с помощью соответствующих средств контроля. Существуют такие опасности, как:

  • * похищение и фальсификация данных;
  • * утрата конфиденциальности (нарушение тайны);
  • * нарушение неприкосновенности личных данных;
  • * утрата целостности;
  • * потеря доступности.

Вопросы защиты данных часто рассматриваются вместе с вопросами

поддержки целостности данных (по крайней мере, в неформальном контексте),

хотя на самом деле это совершенно разные понятия. Термин защита

относится к защищенности данных от несанкционированного доступа, изменения или умышленного разрушения, а целостность к точности или достоверности данных. Эти термины можно определить, как показано ниже.

  • · Под защитой данных подразумевается предотвращение доступа к ним со стороны несанкционированных пользователей.
  • · Под поддержкой целостности данных подразумевается предотвращение

их разрушения при доступе со стороны санкционированных пользователей.

Другими словами, защита данных получение гарантий, что пользователям разрешено выполнять те действия, которые они пытаются выполнить, а поддержка целостности получение гарантий, что действия, которые пользователи пытаются выполнить, будут допустимыми.

Между этими понятиями есть некоторое сходство, поскольку как при обеспечении защиты данных, так и при обеспечении поддержки их целостности система вынуждена проверять, не нарушаются ли при выполняемых пользователем действиях некоторые установленные ограничения. Эти ограничения формулируются (обычно администратором базы данных) на некотором подходящем языке и сохраняются в системном каталоге. Причем в обоих случаях СУБД должна каким-то образом отслеживать все выполняемые пользователем действия и проверять их соответствие установленным ограничениям.

Эти две темы обсуждаются раздельно, так как целостность данных является фундаментальным понятием, тогда как защита данных — понятием вторичным, несмотря на его большую практическую важность (особенно в наши дни повсеместного распространения Internet, электронной коммерции и соответствующих средств доступа).

Ниже описаны многочисленные аспекты проблемы защиты данных.

  • · Правовые, общественные и этические аспекты (например, имеет ли некоторое лицо легальное основание запрашивать, скажем, информацию о выделенном клиенту кредите).
  • · Физические условия (например, запирается ли помещение с компьютерами или терминалами на замок либо оно охраняется другим способом).
  • · Организационные вопросы (например, каким образом на предприятии, являющемся владельцем системы, принимается решение о том, кому разрешено иметь доступ к тем или иным данным).
  • · Вопросы управления (например, как в случае организации защиты системы от несанкционированного доступа по схеме паролей обеспечивается секретность используемых паролей и как часто они меняются).
  • · Аппаратные средства защиты (например, имеет ли используемое вычислительное оборудование встроенные функции защиты, подобные ключам защиты хранимой информации или привилегированному режиму управления).
  • · Возможности операционной системы (например, стирает ли используемая операционная система содержимое оперативной памяти и дисковых файлов после прекращения работы с ними, и каким образом обрабатывается журнал восстановления).
  • · Аспекты, имеющие отношение непосредственно к самой СУБД (например, поддерживает ли используемая СУБД концепцию владельца данных).

Обычно в современных СУБД поддерживается один из двух широко распространенных методов организации защиты данных — избирательный или мандатный, а иногда оба этих метода. В обоих случаях единица данных (или объект данных), для которой организуется защита, может выбираться из широкого диапазона, от всей базы данных до конкретных компонентов отдельных кортежей. Различия между двумя указанными методами кратко описаны ниже.

В случае избирательного контроля каждому пользователю обычно предоставляются различные права доступа (иначе называемые привилегиями, или полномочиями) к разным объектам. Более того, разные пользователи, как правило, обладают разными правами доступа к одному и тому же объекту. (Например, пользователю U1 может быть разрешен доступ к объекту А, но запрещен доступ к объекту B, тогда как пользователю U2 может быть разрешен доступ к объекту B, но запрещен доступ к объекту А.) Поэтому избирательные схемы характеризуются значительной гибкостью.

В случае мандатного контроля, наоборот, каждому объекту данных назначается некоторый классификационный уровень, а каждому пользователю присваивается некоторый уровень допуска. В результате право доступа к объекту данных получают только те пользователи, которые имеют соответствующий уровень допуска. Мандатные схемы обычно имеют иерархическую структуру и поэтому являются более жесткими. (Если пользователь U1 имеет доступ к объекту А, но не имеет доступа к объекту B, то в схеме защиты объект B должен будет располагаться на более высоком уровне, чем объект А, а значит, не может существовать никакого пользователя U2, который будет иметь доступ к объекту B, но не будет иметь доступа к объекту А.)

Независимо от того, какая схема используется (избирательная или мандатная), все решения относительно предоставления пользователям прав на выполнение тех или иных операций с теми или иными объектами должны приниматься исключительно управленческим персоналом. Поэтому все эти вопросы выходят за пределы возможностей самой СУБД, и все, что она способна сделать в данной ситуации, — привести в действие решения, которые будут приняты на другом уровне. Исходя из этих соображений, можно определить приведенные ниже условия.

  • · Принятые организационные решения должны быть доведены до сведения системы (т.е. представлены как ограничения защиты, выраженные с помощью некоторого языка описания требований защиты) и должны быть ей постоянно доступны(храниться в системном каталоге).
  • · Очевидно, что в системе должны существовать определенные средства проверки поступающих запросов на получение доступа по отношению к установленным правилам защиты. (Здесь под понятием запрос на получение доступа подразумевается конкретная комбинация запрашиваемой операции, запрашиваемого объекта и запрашивающего пользователя.) Обычно такая проверка выполняется подсистемой защиты СУБД, которую иногда называют также подсистемой авторизации.
  • · Для принятия решения о том, какие именно установленные ограничения защиты применимы к данному запросу на получение доступа, система должна быть способна установить источник этого запроса, т.е. суметь опознать запрашивающего пользователя. Поэтому при подключении к системе от пользователя обычно требуется ввести не только свой идентификатор (чтобы указать, кто он такой), но и пароль(чтобы подтвердить, что он именно тот, за кого себя выдает). Предполагается, что пароль известен только системе и тем лицам, которые имеют право применять данный идентификатор пользователя. Процесс проверки пароля (т.е. проверки того, что пользователи являются теми, за какого себя выдают) называется аутентификацией.

Также следует отметить, что в настоящее время существуют намного более сложные методы аутентификации по сравнению с простой проверкой паролей, в которых для аутентификации применяется целый ряд биометрических устройств: приборы для чтения отпечатков пальцев, сканеры радужной оболочки, анализаторы геометрических характеристик ладони, приборы проверки голоса, устройства распознавания подписей и т.д. Все эти устройства могут эффективно использоваться для проверки «персональных характеристик, которые никто не может подделать».

Кстати, в отношении идентификаторов пользователей следует заметить, что один и тот же идентификатор может совместно применяться для целого ряда разных пользователей, входящих в состав некоторой группы. Таким образом, система может поддерживать группы пользователей (называемые также ролями), обеспечивая одинаковые права доступа для всех ее членов, например, для всех работников бухгалтерского отдела. Кроме того, операции добавления новых пользователей в группу или их удаления из нее можно выполнять независимо от операций задания привилегий доступа для этой группы на те или иные объекты.

Избирательная схема управления доступом

Следует еще раз отметить, что во многих СУБД поддерживается либо избирательная, либо мандатная схема управления доступом, либо оба типа доступа одновременно. Однако точнее все же будет сказать, что в действительности в большинстве СУБД поддерживается только избирательная схема доступа и лишь в некоторых — только мандатная. Поскольку на практике избирательная схема доступа встречается гораздо чаще.

Для определения избирательных ограничений защиты необходимо использовать некоторый язык. По вполне очевидным причинам гораздо легче указать то, что разрешается, чем то, что не разрешается. Поэтому в подобных языках обычно поддерживается определение не самих ограничений защиты, а полномочий, которые по своей сути противоположны ограничениям защиты (т.е. они разрешают какие-либо действия, а не запрещают их). Дадим краткое описание гипотетического языка определения полномочий, воспользовавшись следующим примером.

GRANT RETRIEVE { S#, SNAME, CITY }, DELETE

TO Jim, Fred, Mary ;

Этот пример иллюстрирует тот факт, что в общем случае полномочия доступа включают четыре описанных ниже компонента.

  • 1. Имя (в данном примере SA3, «suppliers authority three» — полномочия поставщика с номером 3). Устанавливаемые полномочия будут зарегистрированы в системном каталоге под этим именем.
  • 2. Одна или несколько привилегий, задаваемых в конструкции GRANT.
  • 3. Задаваемое в конструкции ON имя переменной отношения, к которой применяются полномочия.
  • 4. Множество пользователей (точнее, идентификаторов пользователей),
    которым предоставляются указанные привилегии применительно к указанной переменной отношения, задаваемой с помощью фразы ТО.

Ниже приводится общий синтаксис оператора определения полномочий.

AUTHORITY

GRANT

ON

TO
;

Мандатная схема управления доступом

Методы мандатного управления доступом применяются к тем базам данных, в которых хранимая информация имеет достаточно статичную и жесткую структуру, что свойственно, например, некоторым военным или правительственным организациям. Основная идея состоит в том, что каждому объекту данных присваивается некоторый классификационный уровень (или требуемый гриф секретности, например «Совершенно секретно», «Секретно», «Для служебного пользования» и т.д.), а каждому пользователю предоставляется уровень допуска с градациями, аналогичными существующим классификационным уровням. Предполагается, что эти уровни образуют строгую иерархическую систему (например, «Совершенно секретно» > «Секретно» > «Для служебного пользования» и т.д.). Тогда исходя из этих положений можно сформулировать два очень простых правила, впервые предложенные Беллом и Ла-Падулой.

  • 1. Пользователь i может выполнить выборку данных объекта j только в том случае, если его уровень допуска больше классификационного уровня объекта j или равен ему {простое свойство безопасности — simple security property).
  • 2. Пользователь i может модифицировать объект j только в том случае, если его уровень допуска равен классификационному уровню объекта j (звездное свойство — star property).

Первое правило достаточно очевидно, тогда как второе требует дополнительных пояснений. Прежде всего, следует отметить, что иным образом второе правило можно сформулировать так: «По определению любая информация, записанная пользователем i, автоматически приобретает классификационный уровень, который равен уровню допуска пользователя i». Подобное правило необходимо, например, для того, чтобы предотвратить запись секретных данных, выполняемую пользователем с уровнем допуска

«Секретно», в файл с меньшим уровнем классификации, что нарушит всю систему секретности.

Шифрование данных

Ранее предполагалось, что некий злонамеренный пользователь пытается незаконно проникнуть в базу данных с помощью обычных средств доступа, имеющихся в системе. Теперь следует рассмотреть случай, когда он пытается проникнуть в базу данных, минуя
систему, т.е. физически перемещая внешние носители информации или подключаясь к линии связи. Наиболее эффективным методом борьбы с такими угрозами является шифрование данных, т.е. хранение и передача особо важных данных в зашифрованном виде.

Для изучения основных концепций шифрования данных следует ввести некоторые новые понятия. Исходные (незашифрованные) данные называются открытым текстом.

Открытый текст шифруется с помощью специального алгоритма шифрования. В качестве входных данных для такого алгоритма выступают открытый текст и ключ шифрования, а в качестве выходных— преобразованная форма открытого текста, которая называется шифрованным текстом. Детали алгоритма шифрования могут быть опубликованы, но ключ шифрования ни в коем случае не разглашается. Именно зашифрованный текст, непонятный всем, кто не обладает ключом шифрования, хранится в базе данных и передается по линии связи.

Пример 5.1.


Пусть в качестве открытого текста дана следующая строка.

AS KINGFISHERS CATCH FIRE (Здесь для простоты изложения предполагается, что данные состоят только из пробелов и прописных символов.) Кроме того, допустим, что ключом шифрования является следующая строка.

Ниже описывается используемый алгоритм шифрования.

1. Разбить открытый текст на блоки, длина которых равна длине ключа шифрования.

AS+KI NGFIS HERS+ CATCH +FIRE

  • (Здесь пробелы обозначены знаком «+».)
  • 2.
    Заменить каждый символ открытого текста целым числом в диапазоне 00-26, используя для пробела число 00, для А — число 01,…, для Z — число 26. В результате получится следующая строка цифр.
  • 0119001109 1407060919 0805181900 0301200308 0006091805
  • 3. Повторить п. 2 для ключа шифрования, в результате чего получится следующая строка цифр.
  • 0512091520
  • 4. Теперь значения, помещенные вместо каждого символа в каждом блоке открытого текста, просуммировать с соответствующими значениями, подставленными вместо символов ключа шифрования, и для каждой суммы из указанных двух значений определить и записать остаток от деления на 27.
  • 5. Заменить каждое число в нижней строке п. 4 соответствующим текстовым символом.

FDIZB SSOXL MQ+GT HMBRA ERRFY

Если известен ключ шифрования, то процедура расшифровки в этом примере может быть выполнена достаточно просто. Вопрос заключается в том, насколько сложно нелегальному пользователю определить ключ шифрования, обладая открытым и зашифрованным текстами. В данном простом примере это не очень сложно выполнить, однако вполне очевидно, что можно разработать и более сложные схемы шифрования. В идеале, схема шифрования должна быть такой, чтобы усилия, затраченные на ее расшифровку, во много раз превышали полученную при этом выгоду. (Фактически это замечание применимо ко всем аспектам проблемы обеспечения безопасности, т.е. стоимость осуществления попыток взлома системы защиты должна быть значительно выше потенциальной выгоды от этого.) Конечной целью поиска таких схем следует считать схему, для которой сам ее разработчик, обладая открытым и зашифрованным вариантами одной и той же части текста, не в состоянии определить ключ и, следовательно, расшифровать другую часть зашифрованного текста.

Управление безопасностью обычно осуществляется на трех уровнях:

  • * уровень базы данных;
  • * уровень операционной системы;
  • * сетевой уровень.

На уровне операционной системы у администратора базы данных (АБД) должны быть права для создания и удаления относящихся к базе данных файлов. Напротив, у обычных пользователей таких прав быть не должно. Информация о безопасности на уровне операционной системы приведена в стандартной документации Oracle. Во многих крупных организациях АБД или администратор по безопасности базы данных работают в тесном контакте с администраторами вычислительной системы, чтобы координировать усилия по разработке требований и практических мероприятий, направленных на обеспечение безопасности.

В требованиях к безопасности базы данных описываются процедуры предоставления доступа к базе путем назначения каждому пользователю пары имя/пароль (username/password). В требованиях может также оговариваться ограничение объема ресурсов (дискового пространства и процессорного времени), выделяемых одному пользователю, и постулироваться необходимость аудита действий пользователей. Механизм обеспечения безопасности на уровне базы данных также обеспечивает управление доступом к конкретным объектам схемы базы данных.

База данных является ценным корпоративным ресурсом. Возможность доступа к данным, хранимым в ней, является необходимым условием для выполнения бизнес-процессов практически во всех сферах деятельности. Безвозвратная потеря данных подвергает бизнес серьезной опасности. Утраченные вычислительные ресурсы можно восстановить, а при отсутствии мер по защите и восстановлению утраченных данных, восстановить их невозможно. По оценкам некоторых исследователей технологий баз данных, среди компаний, пострадавших от катастроф и переживших крупную необратимую потерю корпоративных данных, около половины не смогли продолжить свою деятельность.

Разрушение и потеря данных в базе могут быть вызваны рядом причин:

· сбои оборудования;

· физические воздействия на аппаратные средства базы данных;

· стихийные бедствия;

· ошибки санкционированных пользователей;

· умышленные вредоносные действия несанкционированных пользователей или программ;

· программные ошибки СУБД или операционной системы;

· ошибки в прикладных программах;

· совместное выполнение конфликтных запросов пользователей и др.

Для обеспечения безопасности баз данных существуют следующие меры следующего уровня:

  • законодательного (законы, нормативные акты, стандарты и т.п.);
  • административно-организационного (действия общего характера, предпри­нимаемые руководством организации, и конкретные меры безопасности, на­правленные на работу с людьми);
  • программно-технического (конкретные технические меры).

Меры законодательного уровня
очень важны для обеспечения безопасности баз данных. К этому уровню можно отнести весь комплекс мер, направленных на создание и поддержание в обществе негативного (в том числе карательного) отношения к нарушениям и нарушителям безопасности.

Боль­шинство людей не совершают противоправных действий потому, что это осуж­дается и/или наказывается обществом, и потому, что так поступать не принято.

Поскольку информационная безопасность вообще и безопасность баз данных в частности — это новая область деятельности, здесь важно не только запрещать и наказывать, но и научить, разъяснить, помочь. Общество должно осознать важность данной проблематики, понять основные пути решения соот­ветствующих проблем. Государство может сделать это оптимальным образом. Здесь не нужно больших материальных затрат, требуются интеллектуальные вложения.

Базы данных, также как и компьютерные программы, приравниваются к литературным произведениям и при соблюдении ряда условий могут являться объектами авторского права, что предусмотрено в статье 7 «Закона об авторском праве Республики Беларусь». Если база данных признается объектом авторского права, то это означает, что ей предоставляется охрана гражданским, административным и уголовным законодательством, как и любому другому объекту авторского права. Авторское право на базу данных не связано с авторским правом на компьютерную программу, с помощью которой осуществлялся доступ к данным и их обработка.

Меры администратпивно- организационного уровня.
Администрация организа­ции должна сознавать необходимость поддержания режима безопасности и выделения на эти цели соответствующих ресурсов. Основой мер защиты админист­ративно-организационного уровня является политика безопасности и комплекс организационных мер.

К комплексу организационных мер относятся меры безопасности, реализуемые людьми. Можно выделить следующие группы организационных мер:

· управление персоналом;

· физическая защита;

· поддержание работоспособности;

· реагирование на нарушения режима безопасности;

· планирование восстановительных работ.

К мерам административно- организационного уровня относят инструкции и правила, которые должны учитываться при проектировании и эксплуатации базы данных. К таким средствам относятся, например, порядок регистрации персоны в качестве пользователя базы данных, правила запуска и останова СУБД, инструкции по использованию каждого инструмента СУБД или приложения и т.п. Для успешного использования СУБД всем пользователям необходимо предоставить документацию, регламентирующую их действия по работе с базой данных.

Программно-технический уровень
обеспечивает в
современных СУБД специальные средства для защиты баз данных, такие как защита паролем, шифрование данных, разграничение прав доступа. Во многих случаях этих средств оказывается недостаточно, и тогда используются разнообразные методы защиты, начиная от проектирования СУБД со встроенными механизмами защиты и заканчивая интеграцией СУБД со специальными программными продуктами по защите информации.

На практике же всегда нужно быть уверенным, что за компьютером нахо­дится пользователь, подлинность которого гарантирована.

Для подтверждения подлинности пользователя существуют три последовательные процессы:

· Идентификация
-это процесс распознавания пользователя по его идентификатору (логин и пароль).

· Аутентификация
— это процесс под­тверждения достоверности идентификатора пользователя.
Процесс может быть, например, реализована секретным выражением.

· Авторизация
— предоставление пользователю только тех данных, на которые он имеет право, т. е. разграничение прав доступа.

Главное достоинство защиты с помощью логина
и пароля
– простота и привычность. Надежность парольной защиты основывается на хранении их в тайне. При использовании пароля желательно соблюдать следующие требования:

· пароль должен состоять из комбинации букв и цифр или специальных знаков;

· длина пароля должна быть не менее шести символов, пароль не должен содержать пробелы

· пароли должны часто изменяться.

При правильном использовании пароли могут обеспечить приемлемый для многих организаций уровень безопасности. Тем не менее, из-за уязвимости сохранения паролей в тайне в ряде случаев такой защиты оказывается недостаточно.

Разграничение прав доступа
является необходимой функцией любой многопользовательской СУБД. Это достаточно гибкая и развитая система, позволяющая администратору баз данных настраивать права доступа пользователей в соответствии с их служебными обязанностями. Определение прав пользователя при доступе к базе данных должно производиться, исходя из принципа минимальных полномочий, необходимых для выполнения прямых должностных обязанностей. Практически все современные СУБД предоставляют набор базовых средств по управлению правами доступа. Как правило, поддерживаются такие концепции, как пользователи и группы, а также возможность предоставить этим пользователям и группам права доступа к определенным объектам базы данных. При этом многие СУБД имеют возможности не только предоставить доступ тому или иному пользователю, но и указать разрешенный тип доступа: что именно может делать конкретный пользователь с конкретными данными – от только чтения вплоть до реорганизации всей базы данных. Основными объектами безопасности в реляционной СУБД являются таблицы, представления и хранимые процедуры. В зависимости от типа объекта можно управлять правами на конкретные действия с ним. Например, в случае таблиц можно независимо управлять правами на чтение, добавление, удаление и изменение записей. В некоторых СУБД можно управлять доступом на уровне отдельного столбца представления или таблицы.

База данных может быть зашифрована и храниться на диске в зашифрованном виде.

Шифрование
– это преобразование исходных данных по специальным алгоритмам в новое представление, скрывающее содержание исходной информации.

Дешифрование
– это обратный шифрованию процесс. При шифровании базы данных ее файл кодируется и становится недоступным для просмотра информации с помощью служебных программ.

Возможны два режима работы с зашифрованными базами данных. Наиболее простым является режим, при котором информация дешифруется на внешнем носителе, с ней производятся необходимые действия, после чего для записи на внешней носитель информация снова зашифровывается. Достоинством такого режима является независимость функционирования средств шифрования и СУБД, которые работают последовательно друг за другом. В то же время сбой или отказ в системе может привести к тому, что на внешнем носителе часть базы данных останется записанной в незашифрованном виде.

Второй режим предполагает возможность выполнения СУБД запросов пользователей без дешифрования информации на внешнем носителе. Дешифрование производится в оперативной памяти непосредственно перед выполнением конкретных действий с данными. Такой режим возможен, если процедуры шифрования встроены в СУБД. При этом достигается высокий уровень защиты от несанкционированного доступа, но реализация режима связана с усложнением СУБД. Любое шифрование снижает уровень производительности СУБД.

В работе рассмотрены некоторые наиболее существенные требования законодательства по защите персональных данных (ПД). Представлены общие подходы к защите баз данных под управлением СУБД. Показан пример защиты ПД с учетом требований законодательства для платформы Oracle — одной из самых широко применяемых в средних и крупных информационных системах.

Закон о защите персональных данных не выполняется. Почему?

Для начала, вспомним некоторые положения №152-Федерального Закона «О персональных данных» .

Согласно статье 3 закона «оператор — государственный орган, муниципальный орган, юридическое или физическое лицо, организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели и содержание обработки персональных данных». Таким образом, мы приходим к выводу, от которого и будем отталкиваться: практически все юридические лица РФ являются потенциальными операторами ПД.

В законе также прямо указано, что под обработкой ПД понимается практически все, что с ними можно сделать, начиная с получения данных и заканчивая их обезличиванием и уничтожением: «обработка персональных данных — действия (операции) с персональными данными, включая сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование, распространение (в том числе передачу), обезличивание, блокирование, уничтожение персональных данных».

Кроме этого, в требованиях закона «О защите персональных данных» №152-ФЗ содержатся некоторые, мягко говоря, непривычные для российских организаций процедуры, такие как:

  • получение согласия граждан на обработку их персональных данных, в том числе (когда это необходимо) на передачу третьим лицам;
  • определение состава ПД для каждой информационной системы, обрабатывающей персональные данные (ИСПД);
  • классификация ИСПД по объему данных и характеристикам безопасности в зависимости от оценки возможного ущерба субъектам данных;
  • подготовка и организация регулярных уведомлений об обработке персональных данных в уполномоченный орган.

Заметим, что практики выполнения таковых требований у подавляющей части российских организаций нет. Нет и установившихся правил взаимных доверительных отношений, например, исключительно редко оформляется договор оферты на согласие использовать личные данные граждан. А ведь такой подход уже достаточно давно и успешно практикуется в развитых странах. И ещё: даже если таким договором было бы четко определено, какие именно виды обработки персональных данных разрешаются конкретной организации, а также кто конкретно будет нести ответственность за нарушение оговоренных видов обработки и компрометацию личных данных, немногие граждане решились бы на заключение подобного договора. В условиях расплывчатости формулировок законодательства, очевидно, что даже если бы гражданин дал своё согласие на обработку его персональных данных, то в любом случае он оказался бы в полной зависимости от того, насколько разумно и добросовестно будет трактовать нормы закона оператор.

Стоит добавить, что по некоторым данным, упомянутая классификация и соответствующие каждому классу требования, согласно постановлению Правительства №781, уже разработаны ФСТЭК, ФСБ и Мининформсвязи России и в ближайшее время будут опубликованы. Этот долгожданный во многом документ прольет свет на эти и другие аспекты практического применения ФЗ-152. Но основные надежды, которые с ним связаны, заключаются в получении практических инструкции по реализации требований закона для государственных организаций, обрабатывающих ПД граждан.

По большому счету, коммерческие структуры давно уже защищают критичные для бизнеса данные (например, реестр акционеров и другую коммерческую информацию), в том числе и ПД. Однако немногие организации при этом выполняют требования федерального закона о коммерческой тайне, но эта обширная тема выходит за рамки данной статьи.

В свою очередь госорганизации ждут конкретных указаний и методик по построению систем защиты в зависимости от класса информационной системы и характера данных, обрабатываемых данной системой. Хочется надеяться, что в ближайшее время все необходимые документы будут доработаны и опубликованы, и это даст толчок к началу реальной работы по защите персональных данных.

Закон суров, но справедлив

Не менее интересно и то, какие возможности предусматривает закон для самих граждан — субъектов персональных данных. В дополнение к вышесказанному вспомним другие положения закона. Согласно части 4 статьи 14 ФЗ-152 субъект персональных данных имеет право на получение при обращении или при получении запроса информации, касающейся обработки его ПД, в том числе содержащей: подтверждение факта обработки персональных данных оператором, а также цель такой обработки; способы обработки ПД, применяемые оператором; сведения о лицах, которые имеют доступ к ПД; перечень обрабатываемых персональных данных и источник их получения; сроки обработки ПД, в том числе сроки их хранения; сведения о том, какие юридические последствия для субъекта персональных данных может повлечь за собой обработка его ПД. По сути, это тоже трудновыполнимая задача для оператора, ведь никто не отменял ст.137 УК РФ «Нарушение неприкосновенности частной жизни» от 13 июня 1996г. В статье, в частности, говорится, что уголовную ответственность влечет: незаконное собирание или распространение сведений о частной жизни лица, составляющих его личную или семейную тайну, без его согласия либо распространение этих сведений в публичном выступлении, публично демонстрирующемся произведении или средствах массовой информации, если эти деяния совершены из корыстной или иной личной заинтересованности и причинили вред правам и законным интересам граждан.

Согласно статье 17 ФЗ-152 в случае, если субъект ПД считает, что оператор осуществляет обработку его ПД с нарушением требований настоящего Федерального закона или иным образом нарушает его права и свободы, субъект ПД вправе обжаловать действия или бездействие оператора в уполномоченный орган по защите прав субъектов ПД или в судебном порядке. При этом лица, виновные в нарушении требований, несут административную, гражданскую, уголовную и иную, предусмотренную законодательством, ответственность.

Весьма существенным представляется то, что за реализацию требований по безопасности в системах защиты информации отвечают разработчики.

Вот основные составляющие системы госконтроля и надзора за обеспечением безопасности ПД при их обработке в ИС:

  • Россвязьохранкультура — уполномоченный орган по защите прав субъектов ПД;
  • ФСБ — Федеральный орган исполнительной власти, уполномоченный в области обеспечения государственной безопасности и применения средств шифрования;
  • ФСТЭК — федеральная служба по техническому и экспортному контролю и противодействия иностранным разведкам — уполномоченный орган в области контроля используемых технических средств защиты;
  • Министерство информационных технологий и связи РФ — порядок проведения классификации информационных систем, содержащих персональные данные.

Таким образом, создается продуманная система государственного контроля операторов, обрабатывающих персональные данные.

Как правильно защищать базы данных?

Мероприятия по защите ПД немногим отличаются от общепринятого подхода по защите информации, ограниченного доступа. Итак, комплексный подход к защите БД состоит из последовательных этапов, среди них:

  • определение адекватной модели угроз;
  • оценка рисков;
  • разработка системы защиты на ее основе с использованием методов, предусмотренных для соответствующего класса информационных систем (ИС);
  • проверка готовности систем защиты информации (СЗИ) с оформлением соответствующей документации (описание системы, правила работы, регламенты и т.д.), в том числе заключения о возможности эксплуатации данной СЗИ;
  • установка и ввод в эксплуатацию СЗИ;
  • учет применяемых СЗИ, технической документации к ним, а также носителей ПД;
  • учет лиц, допущенных к работе с ПД в ИС;
  • разработка полного описания системы защиты ПД;
  • контроль использования СЗИ.

При этом традиционно применяют две составляющих построения системы защиты информации: провести инвентаризацию информационных ресурсов, определить их владельцев, категоризировать информацию (в том числе ограниченного доступа, при необходимости ввести режим коммерческой тайны), подготовить и подписать приказ о выполнении разработанных организационных мер защиты, обосновать и получить бюджет, подобрать и подготовить кадры, обучить их, организовать переподготовку, и… это далеко не всё.

Все эти мероприятия следует описать и утвердить в нормативно-распорядительной документации. При этом очень важна поддержка руководства для последовательного проведения в жизнь выработанной политики безопасности. Очевидно, что лучшей практикой является подписание каждым сотрудником отдельного соглашения по работе с информацией ограниченного доступа. В крайнем случае, в обязательном порядке сотрудники должны быть проинструктированы, что, в свою очередь, должно быть подтверждено подписью «ознакомлен» с указанием ФИО, должности сотрудника во всех приказах и распоряжениях.

Перейдем к рассмотрению технических средств защиты БД, содержащей персональные данные, более подробно.

Основные компоненты системы защиты баз данных

Классическая схема защиты баз данных (БД) подразделяется на следующие обязательные процедуры:

  • Разграничение доступа
    — каждый пользователь, включая администратора, имеет доступ только к необходимой ему согласно занимаемой должности информации.
  • Защита доступа —
    доступ к данным может получить пользователь, прошедший процедуру идентификации и аутентификации.
  • Шифрование данных
    — шифровать необходимо как передаваемые в сети данные для защиты от перехвата, так и данные, записываемые на носитель, для защиты от кражи носителя и несанкционированного просмотра/изменения не-средствами системы управления БД (СУБД).
  • Аудит доступа к данным
    — действия с критичными данными должны протоколироваться. Доступ к протоколу не должны иметь пользователи, на которых он ведется. В случае приложений, использующих многозвенную архитектуру, приведенные функции защиты также имеют место, за исключением защиты данных на носителе — эта функция остается за БД.

Всеми перечисленными функциями безопасности в той или иной мере оснащены СУБД и приложения Oracle, что выгодно отличает их от продуктов конкурентов. Рассмотрим указанные процедуры подробнее.

Разграничение доступа

Преследуя цель защиты БД от инсайдерских угроз, для обеспечения разграничения доступа в версии СУБД 10g Release 3 компания Oracle выпустила новый продукт Database Vault , предназначенный для предотвращения несанкционированного доступа к информации пользователей, в том числе наделенных особыми полномочиями, например, администраторов базы данных. Набор правил в Database Vault , разграничивающих доступ, достаточно широк. Например, руководство организации может определить правила, согласно которым для решения задач, предполагающих доступ к критичной информации, потребуется одновременное присутствие двух сотрудников. Таким образом, Database Vault решает следующие проблемы:

  • ограничение доступа к данным администратора БД и других привилегированных пользователей;
  • предотвращение манипулирования с базой данных и обращения к другим приложениям администратора приложений;
  • обеспечение контроля над тем, кто, когда и откуда может получить доступ к приложению.

Защита доступа

Аутентификация в контексте Oracle означает проверку подлинности кого-либо или чего-либо — пользователя, приложения, устройства, кому или чему требуется доступ к данным, ресурсам или приложениям. После успешной процедуры аутентификации следует процесс авторизации, предполагающий назначение определенных прав, ролей и привилегий для субъекта аутентификации.

Oracle предоставляет разнообразные способы аутентификации и позволяет применять один или несколько из них одновременно. Общим для всех этих способов является то, что качестве субъекта аутентификации используется имя пользователя. Для подтверждения его подлинности может запрашиваться некоторая дополнительная информация, например, пароль. Аутентификация администраторов СУБД Oracle требует специальной процедуры, что обусловлено спецификой должностных обязанностей и степенью ответственности этого сотрудника. Программное обеспечение Oracle также зашифровывает пароли пользователей для безопасной передачи по сети.

Итак, рассмотрим подробнее способы аутентификации в СУБД Oracle .

Аутентификация средствами операционной системы

Ряд операционных систем позволяют СУБД Oracle использовать информацию о пользователях, которыми управляет собственно ОС. В этом случае пользователь компьютера имеет доступ к ресурсам БД без дополнительного указания имени и пароля — используются его сетевые учетные данные. Данный вид аутентификации считается небезопасным и используется, в основном, для аутентификации администратора СУБД.

Аутентификация при помощи сетевых сервисов

Данный вид аутентификации обеспечивает опция сервера Oracle Advanced Security . Она предоставляет следующие службы:

1. SSL — аутентификация
использует протокол SSL (Secure Socket Layer) — протокол уровня приложений. Он может использоваться для аутентификации в БД и в общем случае (если далее используется аутентификация пользователя средствами СУБД) не зависит от системы глобального управления пользователями, обеспечиваемой службой каталога Oracle — Oracle Internet Directory .

2. Аутентификация службами третьих сторон.

На основе Kerberos . Применение Kerberos как системы аутентификации с доверенной третьей стороной, основано на использовании, т.н. общего секрета. Это предопределяет безопасность и надежность доверенной стороны и дает возможность использования Single Sign — On , централизованного хранения паролей, прозрачной аутентификации через связи БД (database links), а также средств усиленной безопасности на рабочих станциях.

На основе PKI . Применение PKI для аутентификации предполагает издание цифровых сертификатов для пользователей (приложений), которые используются для непосредственной аутентификации на серверах БД в рамках одной организации. При этом не требуется использование дополнительного сервера аутентификации. Oracle определяет следующие компоненты для использования PKI:

  • протокол SSL
  • набор OCI (Oracle Call Interface — прикладной интерфейс доступа к БД) и PL / SQL функций
  • доверенные сертификаты (trusted certificate), для проверки подлинности сертификатов, предъявляемых пользователями (приложениями)
  • Oracle wallets — ключевые контейнеры, содержащие личный ключ (private key) пользователя, его сертификат и цепочки доверенных сертификатов
  • Oracle AS Certificate Authority — компонента Oracle Application Server , предназначенная для издания сертификатов и дальнейшего управления ими
  • — Oracle Wallet Manager (OWM) — компонента СУБД для управления wallet «ами

На основе RADIUS . СУБД Oracle поддерживает протокол RADIUS (Remote Authentication Dial — In User Service) — стандартный протокол для аутентификации удаленных пользователей. При этом становятся доступны службы и устройства аутентификации третьих производителей, с которыми может взаимодействовать сервер RADIUS (например, устройства генерации одноразовых паролей, биометрические устройства и т.п.).

На основе службы LDAP -каталога. Использование службы LDAP -каталога делает управление аутентификацией и управление учетными записями пользователей (приложений) очень эффективным. В инфраструктуре СУБД Oracle служба каталога представлена следующими компонентами:

  • Oracle Internet Directory (OID) позволяет централизованно хранить и управлять информацией о пользователях (т.н. enterprise -пользователях). Позволяет иметь единственную учетную запись пользователя для многих баз данных. Возможна интеграция со службами каталогов третьих производителей, например, MS Active Directory или iPlanet . OID позволяет гибко управлять атрибутами безопасности и привилегиями каждого пользователя, включая тех, кто аутентифицируется по цифровым сертификатам. Для повышения безопасности во время процесса аутентификации возможно использование SSL -протокола.
  • Oracle Enterprise Security Manager — утилита управления пользователями, группами, ролями и привилегиями.

3. Аутентификация в многоуровневых приложениях

Приведенные выше методы аутентификации также могут быть применены и в многоуровневых приложениях. Как правило, для доступа к приложениям из сети Интернет используется аутентификация по имени и паролю (в том числе с использованием протокола RADIUS), либо по протоколу SSL. Прочие методы используются для работы пользователей в локальной сети.

Шифрование данных

Для защиты данных, передаваемых в сети, в СУБД Oracle, начиная с версии 8i,
используется возможности опции Oracle Advanced Security ,
в которой предусмотрена функция Network encryption
, позволяющая шифровать весь поток данных. Безопасность информации обеспечивается секретностью ключа, которым шифруются данные.

Network encryption
позволяет добиться высокого уровня безопасности. Поддерживаются следующие алгоритмы шифрования AES (только 10 g /11g). DES , 3 DES , RC 4(только 10 g /11g).

Защита передаваемых в сети данных в приложениях Oracle обеспечивается протоколом SSL по алгоритмам, которые поддерживается сервером приложений, как правило, это WEB -сервер Oracle.

Защиту данных на носителе обеспечивают два компонента СУБД Oracle — пакеты, реализующие алгоритмы шифрования и опция Transparen t Data Encryption (T DE).
Начиная с версии 8i, СУБД Oracle предоставляет для разработчиков приложений пакеты хранимых процедур, реализующих алгоритмы: DES
с длиной ключа 56 бит, Triple DES
с длиной ключа 112 и 168 бит , A ES
с длиной ключа 128, 192 и 256 бит RC 4
(только 10 g /11g).

Опция T DE
появилась в версии СУБД Oracle 10g Release 2 как составная часть Advanced Security.
Она позволяет выборочно шифровать колонки таблиц с применением алгоритмов Triple DES (c длиной ключа 168 бит), AES (c длиной ключа 128, 192 или 256 бит). Управление ключами шифрования берет на себя ядро БД, а применение такого шифрования не требует переделки клиентского и серверного прикладного ПО. В версии СУБД 11g и выше появилась возможность зашифрования табличного пространства целиком.

Аудит доступа к данным

СУБД Oracle
имеет мощные средства аудита действий пользователей, включающих как доступ к данным, так и события регистрации/выхода и изменения структуры БД. Начиная с версии 9i, СУБД оснащается опцией подробного аудита (Fine Grained Audit Control), которая позволяет проводить аудит доступа по условиям, определяемым достаточно гибкими настраиваемыми правилами. Однако, данные средства аудита не позволяет проследить за действиями, которые совершаются администратором базы данных, а также не мешают ему изменять журнал аудита, удаляя любые строки и не оставляя следов подобных действий. Возникшая необходимость аудита деятельности и защиты данных аудита от привилегированных пользователей, включая администраторов БД, побудило Oracle
разработать новую концепцию аудита. В её основу положена идея, на которой базируется функционал Database Vault
: администратор БД изолирован от управления аудитом, что по поянтным причинам обеспечивает более высокий уровень безопасности БД. Как и в случае Database Vault
правила назначения аудита в Audit Vault
очень гибкие.

Достаточно ли встроенных средств защиты?

Приведённый нами краткий обзор средств защиты информации, которые корпорация Oracle встроила в свои продукты и технологии, демонстрирует солидный задел для построения ИС с различным уровнем защищенности, отвечающих самым современным требованиям по безопасности. Однако, даже поверхностный взгляд на системы защиты различного ПО, использующего СУБД или сервер приложения Oracle , покажет, что за редким исключением, встроенные средства обеспечения безопасности либо не используются вовсе, либо их заменяют аналогичные по функционалу собственные разработки или готовые разработки, предлагаемые на рынке, либо встроенные средства дополняются ПО сторонних разработчиков.

По сути, мы имеем дело с тремя подходами отечественных компаний к вопросу информационной безопасности вообще и к защите баз данных от постоянно растущих угроз, в частности.

К сожалению, стоит признать, что первый подход наиболее распространен и подразумевает использование простейшей парольной аутентификации, авторизации и шифрования данных.

От сторонников такого подхода при разработке и эксплуатации ИС чаще всего можно услышать следующие аргументы:

  • наиболее простая и, следовательно, более надежная в плане эксплуатации;
  • низкая стоимость владения;
  • более высокий уровень защиты не требуется.

Конечно, парольная защита не требует дополнительных затрат ни на стадии разработки, ни на стадии эксплуатации ИС — все «заботы» по обслуживанию пользователей и их паролей берет на себя СУБД или сервер приложений. Также отсутствуют затраты на дополнительное оборудование (серверы аутентификации, службы каталогов, устройства хранения ключевой информации и т.д.) и программное обеспечение (лицензии, ПО сторонних производителей и т.д.). Немаловажно, что и требования к квалификации администраторов БД и администраторов безопасности в данном случае значительно ниже, а это — также вопрос экономии. Третий аргумент, видимо, исторически сохраняется с тех времен, когда вопросами безопасности серьезно не занимались.

Системы защиты, построенные согласно второму подходу распространены чуть менее. Отчасти в них переходят системы из первого варианта, когда, например, заказчики такой системы, уставшие от «низкой» стоимости владения парольной защитой, заказывают разработчикам или покупают готовую систему управления паролями. Бывает, что периодические скандалы с кражами данных заставляют делать программные «нашлепки» на готовой системе для реализации шифрования, зачастую по собственным «суперстойким» алгоритмам.

Доводы для такого подхода, примерно, следующие:встроенные средства защиты явно недостаточны и изобилуют уязвимостями;

  • лучше иметь дело с «местной» командой разработчиков, чем надеяться на поддержку вендора;
  • система нормально работает с парольной защитой и лучше ее не трогать, достаточно внедрить дополнительное программное обеспечение по управлению паролями.

Рассмотренные выше два варианта использования средств защиты характерны для ИС, разработанных и внедренных преимущественно в конце 90-х годов прошлого века. Характерный пример — биллинговые системы, самостоятельной разработкой которых занимаются десятки компаний. Не менее яркими примерами являются базы данных здравоохранения и силовых структур. А ведь они содержат внушительные объемы конфиденциальной информации и, в частности, персональных данных, которые обязывает надежно защищать российское законодательство. Является ли такое халатное отношение к защите БД с персональными данными граждан причиной постоянного появления среди пиратских копий фильмов сборников баз данных по физическим и юридическим лицам? Ответ на этот вопрос следует искать, прежде всего, опираясь на недостатки описанных подходов. Предпримем попытку анализа сторонников указанных подходов.

Достаточно ли парольной аутентификации?

Действительно, простота использования парольной защиты не вызывает сомнений. Но простота и надёжность защиты в данном случае малосовместимы. В безопасности и удобстве эксплуатации такая технология себя изживает. Надежность пароля и, следовательно, безопасность его использования, напрямую зависит от его качества (применяемые символы, их регистр, отличие от осмысленных слов). А удобство использования стремительно падает даже при незначительном усилении «безопасности» пароля, ведь запомнить нечитаемую комбинацию символов довольно сложно. Обратимся к цифрам и фактам. Пароли пользователей хранятся в СУБД Oracle в виде хеш-значений и доступны для чтения привилегированным пользователям. Алгоритм вычисления хеша пароля давно известен. Наиболее полное исследование стойкости паролей в Oracle проведено компанией Red — Database — Security GmbH —
ведущего мирового эксперта в области безопасности продуктов Oracle. Вот некоторые данные по стойкости паролей для версий СУБД 7-10g:

На компьютере с Pentium 4 3 GHz требуемое время составляет (атака простым перебором):

  • 10 секунд все 5- символьные комбинации
  • 5 минут все 6- символьные комбинации
  • 2 часа все 7- символьные комбинации
  • 2,1 дня все 8- символьные комбинации
  • 57 дней все 9- символьные комбинации
  • 4 года все 10- символьные комбинации

И это при использовании далеко не самого мощного компьютера. При наращивании производительности атака по словарю проводится ещё быстрее. Нельзя сказать, что Oracle не реагирует на подобное положение дел — в версии СУБД 11g положение значительно улучшилось. Был усилен алгоритм выработки хеша и качество формирования паролей. В результате приведенные выше цифры выросли в 2.5-3 раза. Но, несмотря на такие улучшения, Oracle рекомендует использовать средства усиленной аутентификации, которые также были доработаны в лучшую сторону, например, стало возможно использовать HSM (Hardware Security Module) для аутентификации и хранения ключей шифрования.

Таким образом, делаем вывод: надежность и безопасность использования паролей для защиты ИС в настоящее время перестала отвечать требованиям компаний, которые, с одной, стороны заботятся о своей репутации, а с другой — обязаны выполнять требования текущего законодательства.

Низкая стоимость владения — миф?

Широко распространенное заблуждение. Статистика подтверждает факты значительных затрат на обслуживание, скажем, забытых паролей. Еще более ощутимые потери несут компании из-за низкой надежности и безопасности парольной защиты.

Уязвимы ли встроенные средства защиты?

И в этом вопросе мы вновь сталкиваемся с расхожим мнением о том, что штатные средства безопасности недостаточны. Как объяснить возникновение такого мнения, особенно при учёте того, что и встроенные средства защиты чаще всего используется далеко не на 100%. Т

Что же касается уязвимостей встроенных средств защиты в Oracle, то ситуация здесь ровно такая же как и в других сложных системах. Корпорация Oracle традиционно ответственно относится к обнаружению и устранению найденных уязвимостей. Регулярно (4 раза в год) выпускаются обновления CPU (Critical Patch Update), устраняющие бреши, обнаруженные как самой корпорацией Oracle, так и десятками других компаний, наиболее известная из которых — уже упоминавшаяся Red — Database — Security GmbH . Так, например, в CPU за октябрь 2007 г. были устранены 27 уязвимостей в СУБД, 11 — в сервере приложений, 13 — в различных приложениях. Учитывая число продуктов Oracle , их версий и программно-аппаратных платформ для них, это не так уж и много.

Своя разработка vs поддержка вендора

По данному вопросу существует много мнений. Некоторые организации предпочитают иметь собственные подразделения разработчиков, некоторые — нет. Пожалуй, самым веским аргументом в пользу поддержки вендора можно считать то, что не всякая компания может позволить себе иметь в подразделении разработки специалистов по информационной безопасности.

Однако даже если такие ресурсы есть, стоит иметь в виду, что «самописная» система в значительной степени зависит от команды разработчиков, принимавших участие в её проектировании и создании. А значит их уровень профессионализма, их квалификация являются определяющими с точки зрения качества разработки, отсутствия встроенных в ПО закладок, уязвимостей, которыми могут воспользоваться внешние злоумышленники. Кроме того «самописные» решения чреваты тем, что уход одного или нескольких ключевых «авторов» этих решений, может повлечь за собой риски, связанные с корректной поддержкой и развитием ранее созданной инфраструктуры новыми специалистами.

Итак, подведем промежуточные итоги. Основные аргументы, приводимые апологетами перечисленных нами подходов — встроенные средства защиты не используются и «самописные» средства надёжнее штатных — на самом деле не имеют под собой серьёзных оснований. И компании, придерживающиеся этих вариантов для защиты своих баз данных, фактически подвергают конфиденциальную информацию, содержащуюся в БД, риску хищения и утечки.

Возможности усиления функций защиты: когда это необходимо?

Приведенный нами выше пример о защите баз данных различных социальных учреждений на самом деле очень показателен. Ведь речь идёт о государственном предприятии, что напрямую связано с соблюдением, с одной стороны, интересов государства, с другой — интересов граждан. Соответственно вопрос защиты хранящихся и обрабатываемых данных, циркулирующих в информационной инфраструктуре этого учреждения, становится приоритетом номер один. И в этом случае максимальное использование возможностей штатных средств защиты в решениях надёжных поставщиков всё же может оказаться недостаточным. Требование усиления защиты для госпредприятий связано, с одной стороны, с внедрением технологий более высокого уровня безопасности, а с другой — с выполнением требований закона, в частности, по использованию исключительно сертифицированных средств защиты.

Именно поэтому в последнее время начал набирать обороты третий «смешанный» подход к защите информационных систем. Если проанализировать типичные требования по защите ИС и те возможности, которые могут быть реализованы с помощью встроенных средств Oracle, то сразу можно выделить то, что должно быть дополнено:

Алгоритмы российской криптографии (PKI, ЭЦП, шифрование в сети и на носителе)

Реализация шифрования при записи на носитель без использования TDE

Хранение ключевого материала.

По очевидным причинам разработчики Oracle не предусматривали универсальную реализацию этих двух моментов, хотя и предусмотрели некоторые общие подходы.

Применение отечественных криптографических алгоритмов

Криптографические алгоритмы могут использоваться в процессе аутентификации, выработки ЭЦП (ГОСТ Р 34.10-2001), для защиты канала связи (ГОСТ 28147-89, ГОСТ Р 34.11-94) и шифрования данных (ГОСТ 28147-89). Встроенные средства Oracle не реализуют данные алгоритмы ни в СУБД, ни в сервере приложений, ни в приложениях. Реализацию криптографии в виде библиотек, стандартных поставщиков криптографии (CSP), комплектов разработчика (SDK) предлагают несколько российских производителей — КриптоПро, Сигнал-Ком, Инфотекс, Лисси, КриптоКом, КриптоЭкс и др. Однако, заставить продукты Oracle работать с предлагаемыми библиотеками достаточно проблематично. Дело даже не в том, что данные средства не совместимы на уровне программно-аппаратного обеспечения — встраивание криптографии в продукты Oracle не должно нарушать лицензионного соглашения вендора относительно целостности ПО. Если с ИС, построенными на основе сервера приложений Ora cle или всего множества приложений Oracle, проблем со встраиванием, как правило, не возникает, то с СУБД дело обстоит сложнее. Вследствие того, что ядро СУБД не имеет программного интерфейса к криптооперациям (аутентификация, шифрование), приходится применять обходные пути. Например, использовать протокол аутентификации Kerberos или генераторы одноразовых паролей с протоколом RADIUS, а защиту канала связи осуществлять с помощью сертифицированных программных средств.

Шифрование данных без использования TDE

Несмотря на чрезвычайную простоту опции Oracle TDE, от ее использования часто приходится отказываться. Основных причин две:

Не поддерживаются некоторые типы данных

Нет возможности штатно применить российские криптоалгоритмы

Нет реальной защиты от привилегированных пользователей.

Первая проблема в принципе решается с помощью продуктов сторонних разработчиков — DbEncrypt
for Oracle (Application Security, Inc.), eToken SafeData (Aladdin Software Security R . D .), The Encryption Wizard for Oracle (Relational Database Consultants , Inc .).
Вторая проблема принципиально решается таким же образом, но здесь вариантов меньше — eToken SafeData
или The Encryption Wizard for Oracle .
Причем для первого продукта требуется дополнительная сборка версии (в зависимости от применяемого производителя сертифицированной криптографии), а по второму продукту, просто не удалось найти нужную информацию. Третья проблема, в принципе, могла бы быть решена с помощью совместного использования опций TDE
и Oracle Database Vault ,
но в этом случае полномочия администратора СУБД плавно перетекают к администратору Database Va u lt, т.е. проблема защиты от привилегированных пользователей сохраняется.

Хранение ключевого материала

Ключевой материал (сертификаты, закрытые ключи, ключи шифрования), используемые встроенными средствами обеспечения безопасности Oracle для аутентификации или шифрования данных, хранятся в ключевых контейнерах, (т.н. бумажниках — wallets) как обычные файлы. Для доступа к информации в бумажнике требуется пароль. Часто такой способ хранения не отвечает требования по безопасности, особенно на рабочих станциях клиентов. СУБД Oracle , начиная с версии 10g, позволяет хранить закрытые ключи на аппаратных устройствах, поддерживающих стандарт PKCS#11. В то же время Oracle никак не гарантирует работу аппаратных устройств, отличных от устройств производства nCipher (nCipher Corporation Ltd.).
Это не всегда приемлемо, например, если предполагается использование только сертифицированных аппаратных средств. И в этом случае проблема хранения ключей и сертификатов может быть решена с помощью решений сторонних производителей. На российском рынке, пожалуй, единственным в своем классе продуктом является eToken SecurLogon для Oracle (Aladdin Software Security R.D.)
.

Заключение

Несмотря на осознанное понимание поднятой проблемы как законодателями, так государственными и коммерческими организациями, персональные данные всё же подвержены утечкам информации, ущерб от которых подчас оценивается весьма впечатляющими цифрами. Отсутствие громких прецедентов может быть объяснено латентностью преступлений в этой области. Однако утечки происходят постоянно и рано или поздно с кражами баз данных будет развернута полномасштабная борьба на госуровне. Конечно, можно использовать несертифицированные решения, можно использовать нелицензионное ПО и самостоятельно изобретать велосипед, игнорируя проверенные промышленные решения… Но только в этом случае организации должны отдавать себе отчет в том, что и все дополнительные риски — от финансовых до репутационных — связанные с применением таких продуктов, они тоже полностью берут на себя. Есть угрозы, и есть последствия. Принимая тот или иной подход к обеспечению безопасности информационных ресурсов, организации либо идут на риски, либо создают для себя максимально безопасные условия.

В настоящее время требования к безопасности со стороны потребителей достаточно высоки, и оптимальное решение состоит в полноценном использовании встроенных средств безопасности и разумным их дополнением продуктами и решениями сторонних разработчиков. Однако часто стремление построить надежную защиту ИС упирается в банальную нехватку квалифицированных кадров — разработчиков, аналитиков, инженеров техподдержки, консультантов. Следствием этого являются слабое владение информацией о возможностях встроенных средств защиты Oracle и других систем и их корректного использования. Другим следствием является та же ситуация, но уже по отношению к продукции других производителей программно-аппаратных средств защиты информации и их использованию совместно с технологиями и продуктами Oracle. Как итог — существующие системы продолжают использовать устаревшие парольные системы защиты, обрастая ненужными доработками и ворохами дополнительных регламентов, и, что еще хуже, разрабатываются новые ИС со старыми технологиями защиты. Выход из такой ситуации, прежде всего, в подготовке кадров, обладающих экспертными знаниями в собственно информационной безопасности, в линейке продуктов Oracle и умеющих интегрировать разработки российских компаний со встроенными средствами защиты. Подобное обучение должно начинаться уже в профильных Вузах, и специалисты в данной области должны иметь возможность наращивать опыт и навыки в обучающих центрах. Хотелось бы видеть поддержку в данном вопросе как со стороны Oracle , так и со стороны других производителей, работающих на рынке информационной безопасности России.

В этой связи, очень обнадеживающей тенденцией, на наш взгляд, является, появление реальных решений, методов и подходов к организации систем ИБ, разработанных отечественными компаниями совместно с российскими представительствами западных корпораций. Такое сотрудничество позволяет обеспечить не только устойчивую работоспособность механизмов защиты в составе информационной системы, но и соответствие этих решений требованиям российского законодательства.

Сервер баз данных управляет секретностью базы данных, используя различные средства:

─ управление пользователями базы данных;

─ управление привилегиями и ролями;

─ аудит базы данных;

─ шифрование хранимых программных единиц.

Распознавание пользователя предполагает:

─ идентификацию пользователя – пользователь указывает свой идентификатор (не секретный – логин);

─ аутентификацию – проверка соответствия реального пользователя указанному идентификатору (подтверждение подлинности пользователя). К настоящему времени разработано множество методов аутентификации, включая различные схемы паролей, использование признаков и ключей, а также физических характеристик (например, отпечатки пальцев и образцы голоса).

После распознавания пользователя система производит следующие действия:

─ выделяет соответствующие пользователю ресурсы (трафик, расписание доступа, выделение памяти и т.д.);

─ устанавливает права доступа пользователя.

─ выполняет мониторинг (оперативное наблюдение) и аудит (подведение итогов, определение статистики) за пользователем;

Основное средство защиты – контроль доступа – использует два основных подхода:

─ обязательный;

─ избирательный.

Избирательный подход
– дает меньшую степень защиты, но более просто реализуется. Дл этого пользователям назначаются привилегии.

Привилегия – право на выполнение некоторой операции. Разделяются на системные и объектные привилегии.

Системные (командные) привилегии – разрешают пользователю выполнять конкретную операцию с базой данных. Используются для выполнения административных задач (создание или удаление таблиц, представлений, хранимых процедур, ввод учетных записей пользователей и т.д.). Эта группа привилегий никак не стандартизирована и реализуется в разных системах с разным набором привилегий.

Объектные привилегии – разрешают выполнять действия над заданным объектом базы данных (таблицей, представлением и т.д.). Стандартизированы в SQL системах.

Основные объектные привилегии для внешних пользователей:

ALTER – разрешает изменение определения заданных таблиц, представлений

DELETE – разрешает удаление строк из заданных таблиц, представлений

EXECUTE – разрешает выполнение заданных хранимых процедур, функций, пакетов

INSERT – разрешает вставка строк в заданные таблицы, представления

SELECT – разрешает чтение данных из заданных таблиц, представлений

UPDATE – разрешает изменение данных в заданных таблицах, представлениях

При назначении привилегий различают субъект
– (то, что выполняет действие – может быть пользователь или программа) и объект
(то, над чем выполняется действие – может быть информационный объект или программа).

Для задания привилегий заполняется матрица доступа:

Привелегии (права) задаются с помощью команды:

GRANT ON TO

(«ALL» предоставляет все привилегии на объект)

Например, чтобы позволить пользователю Ivanov выполнять запросы к таблице Sotrudnik, нужно ввести команду

GRANT SELECT ON Sotrudnik TO Ivanov;

Привилегии, объекты и субъекты можно задавать списком.

Привилегии может назначать администратор, владелец объекта или уполномоченное (доверенное) лицо – тот, кому поручили перераспределение привилегий.

Доверенное лицо получает разрешение на выдачу привилегий добавлением GRANT опции:

GRANT ON TO WITH GRANT OPTION

При этом конструкция «WITH ADMIN OPTION» разрешает предоставлять полученную привилегию другим пользователям

Напрмер, команда

“GRANT SELECT ON Sotrudnik TO Ivanov WITH GRANT OPTION”

предоставляет возможность пользователю Ivanov пере­давать право назначать привилегии работы с таблицей Sotrudnik другим пользователям.

Для отмены привилегии используется оператор

“REVOKE ON FROM ”.

Привилегию может снять только субъект, ее назначивший; снятие привилегии выполняется каскадно.

Одна из первых привилегий, которая должна быть определена — это привилегия создателей таблиц. Если все пользователи будут иметь возможность создавать в системе базовые таблицы, это может приве­сти к избыточности данных, их несогласованности и, как следствие, к неэффективности системы. Пользователь, создавший таблицу, является ее владельцем. Это означает, что пользователь имеет все привилегии в созданной им таб­лице и может передавать привилегии другим пользователям в этой таблице.

Каждый пользователь в среде SQL имеет специальное идентифи­кационное имя (или номер).

Для пользователя таблицы могут быть назначены следующие типы привилегий:

─ SELECT — разрешение выполнять запросы в таблице.

─ INSERT — разрешение выполнять оператор INSERT (вставка но­вой строки) в таблице.

─ UPDATE — разрешение выполнять оператор UPDATE (обновле­ние значений полей) в таблице. Можно ограничить эту привилегию для определенных столбцов таблицы.

─ DELETE — разрешение выполнять оператор DELETE (удаление записей) в таблице.

─ REFERENCES — разрешение определить внешний ключ.

Недостатки избирательного подхода:

─ сложность назначения привилегий;

─ ошибки нарушения конфиденциальности из-за путаницы.

Для упрощения и большей наглядности назначений может быть реализовано группирование. Существуют две формы: пользователи объединяются в группы, привилегии в роли.

В первых системах создавались группы пользователей. При этом объявляются группы, пользователи причисляются к группам. Привилегии назначаются как отдельным пользователям, так и отдельным группам. Обычно существуют предопределенные группы (например, PUBLIC – в нее автоматически зачисляются все пользователи; этой группе определяют минимальные права).

Второй вариант, который в настоящее время чаще используется – управление привилегиями через роли. Роль – именованная группа привилегий, которая может быть предоставлена пользователю. Использование ролей позволяет группировать привилегии, необходимые для разных категорий пользователей и динамически управлять привилегиями (например, достаточно переопределить привилегии, назначенные роли, что немедленно отобразится на всех пользователях, которым назначена эта роль). Администратор базы данных создает роль, определяет набор привилегий для роли и присваивает роль пользователям:

Разница данных вариантов группирования в том, что назначение в группы является статическим. Создание ролей позволяет сделать динамически управление.

В настоящее время БД являются ключевыми компонентами любого web-приложения,
давая web-сайтам возможность предоставлять разнообразное динамическое
содержимое. Поскольку в таких БД может храниться очень секретная или
высокоточная информация, вы должны предусмотреть их основательную защиту.

Для получения или сохранения любой информации вам необходимо установить соединение с БД,
отправить верный запрос, получить результат и закрыть соединение.
В настоящее время чаще всего используется язык запросов
Structured Query Language (SQL). См., как взломщик может .

PHP сам по себе не может защитить вашу БД. Последующие разделы являются
введением в основы доступа и манипулирования БД в PHP-скриптах.

Запомните простое правило: максимальная защита. Необходимо защищать БД как
можно сильнее, что уменьшит вероятность успеха взлома и получения, нарушения или уничтожения ценной информации.

Дизайн БД

Первый шаг — это всегда создание БД, если только вы не хотите
использовать готовую БД стороннего производителя. Когда БД создаётся, она
назначается пользователю, который выполняет оператор создания. Обычно только
владелец/owner (или superuser) может выполнять действия с объектами в БД, а
чтобы и другие пользователи могли пользоваться этой БД, необходимо дать привилегии доступа.

Приложения никогда не должны соединяться с БД как её owner или
superuser, поскольку эти бюджеты могут выполнять любой запрос,
модифицировать схему (например, стереть таблицы) или удалять всё содержимое полностью.

Вы можете создать различных пользователей БД для каждого аспекта вашего
приложения с ограничениями на использование объектов БД. Нужно давать только
самые необходимые привилегии и необходимо исключать возможность работы с БД
одного пользователя в разных вариантах использования. Это значит, что, если
взломщик получает доступ к вашей БД с использованием одних привилегий,
он сможет делать все изменения, какие только можно сделать ваше приложение.

Мы советуем не реализовывать всю бизнес-логику в web-приложении (т.е. в
ваших скриптах), а использовать для этого схему БД с триггерами, просмотрами
или правилами. Если система разрастается, понадобятся новые порты для БД, и
вы должны будете заново реализовывать всю логику для каждого отдельного
клиента БД. Вместо этого, можно использовать тригеры для прозрачной и
автоматической обработки полей, что часто необходимо при отладке ваших
приложений или при трассировке отката транзакций.

Соединение с БД

Вы можете установить соединение через SSL с целью шифровки соединения
клиент/сервер для повышения защиты или использовать ssh для шифровки
сетевого соединения между клиентами и сервером БД.
Если вы реализуете что-нибудь из этого, то мониторинг вашего трафика и
получение информации значительно усложнится.

Модель шифровки при хранении/Encrypted Storage

SSL/SSH защищает передачу данных с клиента на сервер, SSL/SSH не защищает
постоянные данные, хранимые в БД. SSL это протокол on-the-wire.

Если взломщик получил прямой доступ к вашей БД (в обход web-сервера), он
получит доступ к закрытым данным и может использовать их или повредить, если
информация не защищена на уровне самой БД. Шифровка данных — хороший способ
предотвратить это, но мало какие БД предлагают этот тип шифровки данных.

Простейший способ решения этой проблемы — создать сначала ваш собственный
пакет шифрования данных, а затем использовать его PHP-скриптах. PHP
может в этом случае помочь вам различными расширениями, такими как
Mcrypt и Mhash , покрывающими
большое количество алгоритмов шифрования данных. Скрипт сначала
шифрует сохраняемые данные, а затем дешифрует их при запросе. См. в описании
следующих примеров о том, как работает шифрование.

Инъекция SQL

Многие web-разработчики не в курсе того, как запросы SQL могут быть
подделаны, и считают, что SQL-запрос это надёжная команда.
SQL-запросы могут обойти управление доступом, стандартную аутентификацию и
проверку авторизации, а некоторые SQL-запросы могут даже дать доступ к командам ОС хоста.

Direct SQL Command Injection это такая техника, когда взломщик создаёт или
изменяет текущие команды SQL для получения доступа к скрытым данным, их
переопределения или даже для выполнения опасных команд системного уровня на
хосте БД. Это выполняется с помощью приложения, принимающего
пользовательский ввод, и сочетания его со static-параметрами для построения SQL-запроса.
Следующие примеры (к сожалению…) основаны на реальных фактах.

Благодаря отсутствию проверки ввода и соединения с БД или поведению superuser»а
или того, кто может создавать пользователей, взломщик может создать superuser»а в вашей БД.

Обычно пользователи щёлкают ссылки «next», «prev», где $offset кодируется в URL.
Скрипт ожидает, что входящее $offset это 10-ричное число. Однако кто-нибудь может попытаться
вломиться, присоединив urlencode()
«ированную форму
следующей информации к URL:

// в PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
select «crack», usesysid, «t»,»t»,»crack»
from pg_shadow where usename=»postgres»;

// в MySQL
0;
UPDATE user SET Password=PASSWORD(«crack») WHERE user=»root»;
FLUSH PRIVILEGES;

Если это произойдёт, то скрипт даст доступ superuser»а к нему.
Заметьте, что 0; предоставлен для того, чтобы задать правильное смещение/offset для запроса-оригинала и прервать его.

Примечание:

обычной техникой является форсирование игнорирования SQL-разборщиком
остальной части запроса, написанного разработчиком, с помощью — (знака комментария в SQL).

Возможно получение паролей путём обмана ваших страниц с результатами поиска.
Взломщику нужно лишь проверить, имеется ли отправленная переменная,
используемая в SQL-операторе, которая не обрабатывается надлежащим образом.
Эти фильтры могут быть установлены обычно в предыдущей форме для специализирования вариантов WHERE,
ORDER BY, LIMIT и OFFSET в операторах SELECT . Если ваша БД поддерживает
конструкцию UNION , взломщик может попытаться присоединить к оригинальному запросу целый запрос
на список паролей из произвольной таблицы. Использование шифрованных полей password
настоятельно рекомендуется.

Статическая часть запроса может комбинироваться с другим оператором SELECT , который
выявит все пароли:

»
union select «1», concat(uname||»-«||passwd) as name, «1971-01-01», «0» from usertable;

Если этот запрос (играя с » и —) присоединить к
одной из переменных, используемых в $query , запрос чудовищно изменится.

SQL UPDATEs также являются субъектами атаки на ваши БД. Есть угроза их
расчленения и присоединения к ним совершенно нового запроса. Взломщик может поработать с
SET . В этом случае нужно обладать некоторой схемой информации для успешного
манипулирования запросом. Это можно сделать, проверив имена переменных формы,
или просто выполнив грубое форсирование. Есть не так уж много соглашений по
именованию полей для хранения паролей и имён пользователей.

Но пользователь-злоумышленник отправляет значение » or uid like»%admin%»; — в $uid
для изменения пароля admin»а или просто устанавливает в $pwd значение «hehehe», admin=»yes», trusted=100 »
(с ведомым пробелом) для получения дополнительных привилегий. Затем запрос скручивается:

Если взломщик отправляет значение a%» exec master..xp_cmdshell «net user test testpass /ADD» —
в $prod , то $query будет:

$query = «SELECT * FROM products
WHERE id LIKE «%a%»
exec master..xp_cmdshell «net user test testpass /ADD»—«;
$result = mssql_query($query);

MSSQL Server выполняет операторы SQL в пакетном режиме, включая и
команды добавления нового пользователя в локальную БД бюджетов. Если такое
приложение запущено как sa и служба MSSQLSERVER запущена с достаточными привилегиями, хакер сможет
получить бюджет для доступа к данной машине.

Примечание:

некоторые из вышеприведённых примеров касаются определённых серверов БД.
Это не означает, что аналогичные действия невозможны в отношении других продуктов.
Работа вашего сервера БД может быть нарушена каким-нибудь другим способом.

Как этого избежать

Вы можете утешать себя тем, что хакер, в большинстве примеров, обязан
владеть некоторой информацией о схеме БД. Вы правы, но вы никогда не
знаете, когда и как будет предпринята попытка взлома, и если это произойдёт,
ваша БД может оказаться доступной для просмотра. Если вы используете
свободный ресурс или публично доступный пакет работы с БД, который может
относиться к системе менеджмента содержимого или форуму, взломщики легко
создадут копию участка вашего кода. Риск для системы безопасности может
быть также и в случае плохо сформированного кода.

Этим атакам в основном подвергается код, написанный без учёта требований
безопасности. Никогда не доверяйте вводу любого рода, особенно тому,
который поступает со стороны клиента, даже если он приходит от select-списка,
скрытого/hidden поля или куки/cookie. Первый пример показывает, что такой
небезупречный запрос может привести к тяжким последствиям.

Помимо всего прочего, вы можете извлечь пользу из запросов логинга в
вашем скрипте или в самой БД, если она это поддерживает. Очевидно, что логинг не может предотвратить попытку нанесения вреда, но может помочь для
трассировки «обманутого» приложения.
log полезен не сам по себе, а содержащейся в нём информацией. Чем больше деталей, тем обычно лучше.

Курсовая работа

ПО МДК 02.02.Р1. РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ В СУБД ACCESS

НА ТЕМУ: «Проектирование базы данных торговой организации»

Выполнил: студент гр. ПО-41

М.В.Цацин

Руководитель: И.И. Шалаева

Оценка:__________________

Г. Стерлитамак

введение…………………………………………………………………………………………… 3

Постановка задачи………………………………………………………………………. 5

1.ОСНОВНЫЕ ПОНЯТИЯ О БАЗАХ ДАННЫХ В MS ACCESS………………. 6

1.1 Базы данных и системы управления базами данных……………….. 6

1.2. Типы данных. 7

1.3. Безопасность баз данных. 8

2. Структура базы данных…………………………………………………………. 10

2.1 Схема данных…………………………………………………………………………. 10

2.2 Таблицы……………………………………………………………………………………… 11

2.3. Формы……………………………………………………………………………………….. 16

2.4. Запросы……………………………………………………………………………………… 19

2.5. Отчеты……………………………………………………………………………………….. 21

3. ВАРИАНТ БАЗЫ ДАННЫХ ТОРГОВОЙ ОРГАНИЗАЦИИ, ЗАНИМАЮЩЕЙСЯ РЕАЛИЗАЦИЕЙ ПТИЦЫ-РЫБЫ…………………………………………………………. 23

ЗАКЛЮЧЕНИЕ……………………………………………………………………………………. 25

ВВЕДЕНИЕ

Для принятия обоснованных и эффективных решений в производственной деятельности, в управлении экономикой и в политике современный специалист должен уметь с помощью компьютеров и средств связи получать, накапливать, хранить и обрабатывать данные, представляя результат в виде наглядных документов. В современном обществе информационные технологии развиваются очень стремительно, они проникают во все сферы человеческой деятельности.

В разных областях экономики зачастую приходится работать с данными из разных источников, каждый из которых связан с определенным видом деятельности. Для координации всех этих данных необходимы определенные знания и организационные навыки.

Продукт корпорации Microsoft — Access объединяет сведения из разных источников в одной реляционной базе данных. Создаваемые в нем формы, запросы и отчеты позволяют быстро и эффективно обновлять данные, получать ответы на вопросы, осуществлять поиск нужных данных, анализировать данные, печатать отчеты, диаграммы и почтовые наклейки.

Целью данной курсовой работы является рассмотрение теории и создания на практике базы данных в продукте корпорации Microsoft для управления базами данных «Microsoft Access» на тему: «Проектирование базы данных торговой организации» занимающийся реализацией птицы-рыбы.

Задачами курсовой работы были:

· Эффективно изложить информацию.

· Обеспечить доступ к информации.

· Расширить базу данных новыми данными.

· Проверить подлинность информации.

· Предотвратить возможные ошибки к доступу базы данных.

· Открыть доступ только к той информации, которая необходима для работы.

· Открыть возможность редактирования информации только проверенным людям.

· Облегчить способ для редактирования информации, а также для предоставления отчетности.

ПОСТАНОВКА ЗАДАЧИ

1.1. Разработать базу данных (БД) «Торговая организация», позволяющую вести:

· учет имеющегося товара;

· учет покупателей;

· учет поставки товара;

1.2. Основные требования к БД по функциональному набору:

1.2.1. Требования по учету торговли:

· Покупка товаров по видам;

· Покупка товаров по датам за определенный срок;

1.2.2. Требования по учету покупателей

· Данные о поставке продуктов покупателям;

· Ассортимент птицы-рыбы;

· Отчет покупок по датам;

· Отчет покупок по видам.

ОСНОВНЫЕ ПОНЯТИЯ О БАЗАХ ДАННЫХ В MS ACCESS

Базы данных и системы управления базами данных

База данных – это организованная структура, предназначенная для хранения информации. В современных базах данных хранятся не только данные, но и информация.

Это утверждение легко пояснить, если, например, рассмотреть базу данных библиотеки. В ней есть все необходимые сведения об авторах, книгах, читателях и т.д. Доступ к этой базе могут иметь как работники библиотеки, так и читатели, которым необходимо найти какое-либо издание. Но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения. Кроме данных, база содержит методы и средства, позволяющие каждому из сотрудников оперировать только с теми данными, которые входят в его компетенцию. В результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которую они потребляют и на основании которой в пределах собственной компетенции производят ввод и редактирование данных.

С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнение ее содержимым, редактирование содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройства вывода или передачи по каналам связи.

В мире существует множество систем управления базами данных. Несмотря на то что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий. Это дает нам возможность рассмотреть одну систему и обобщить ее понятия, приемы и методы на весь класс СУБД. В качестве такого учебного объекта мы выберем СУБД Microsoft Access, входящую в пакет Microsoft Office.

Типы данных

Таблицы баз данных, как правило, допускают работу с гораздо большим количеством разных типов данных. Так, например, базы данных Microsoft Access работают со следующими типами данных.

· Текстовый – тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).

· Числовой – тип данных для хранения действительных чисел.

· Поле Мемо – специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он храниться в другом месте базы данных, а в поле храниться указатель на него, но для пользователя такое разделение заметно не всегда.

· Дата/время – тип данных для хранения календарных дат и текущего времени.

· Денежный — тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа.

· Счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование – для порядковой нумерации записей.

· Логический — тип для хранения логических данных (могут принимать только два значения, например Да или Нет).

· Мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать их из раскрывающегося списка.

Безопасность баз данных

Базы данных – это тоже файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Выше мы видели, что всю работу по обслуживанию файловой структуры берет на себя операционная система. Для базы данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.

Базы данных – это особые структуры. Информация, которая в них содержится, очень часто имеет общественную ценность. Нередко с одной и той же базой работают тысячи людей по всей стране. От информации, которая содержится в некоторых базах, может зависеть благополучие множества людей. Поэтому целостность содержимого базы не может и не должна зависеть ни от конкретных действий некоего пользователя, забывшего сохранить файлы перед выключением компьютера, ни от перебоев в электросети.

Проблема безопасности баз данных решается тем, что в СУБД для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.

Структура базы данных

Схема данных

Схема данных отображает в виде дерева модель данных для страницы доступа к данным. В ней хранятся источники данных, поля и элементы управления страницы. Поскольку список полей не отображает содержимого конкретной страницы, для ознакомления со структурой страницы лучше использовать структуру данных. Можно также выбирать отображаемые в структуре данных объекты, задавать их параметры, определять и редактировать связи между источниками данных, удалять поля и источники данных.


Рис.1 Схема данных

Составляющими схемы данных являются три таблицы:

· «Номенклатура»

· «Поставка товара»

· «Покупатели»

Таблицы

Таблицы – это основные объекты любой базы данных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).

Все 3 таблицы я создал в режиме конструктора, во всех таблицах ключевым полем является — КодТовара.

Конструктор таблицы «Номенклатура птицы-рыбы» показан на рис.2.

Рис.2 Структура таблицы «Номенклатура птицы-рыбы»

Таблица «Номенклатура птицы-рыбы» показана на рис.3 предназначена для отображения всего имеющегося ассортимента который есть у организации.

Таблица «Номенклатура птицы-рыбы»

Конструктор таблицы «Покупатели» показан на рис.3.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

Частное учреждение образовательная организация высшего образования

«Омская гуманитарная академия»

Кафедра Информатики, математики и естественнонаучных дисциплин

КУРСОВАЯ РАБОТА

на тему: Безопасность базы данных

по учебной дисциплине: Базы данных

Выполнила: Нургалиева Шынар Алтайбековна

Введение

1. Хищение информации из базы данных

1.1 Управление доступом в базах данных

1.2 Управление целостностью данных

1.3 Управление параллелизмом

1.4 Восстановление данных

1.5 Транзакция и восстановление

1.6 Откат и раскрутка транзакции

2. Безопасность баз данных

2.1 Планирование баз данных

2.2 Подключение к базе данных

2.3 Хранилище зашифрованных данных

2.4 Внедрение в SQL

2.5 Техника защиты

Заключение

Список использованных источников

Приложения

Введение

Постоянные предложения приобрести различные (в большинстве своем ведомственные) базы данных свидетельствуют о том, что продажа конфиденциальных сведений о гражданах и юридических лицах стала отдельным видом бизнеса. Если появление очередной опубликованной базы для граждан является просто еще одним малоприятным фактом обнародования сведений об их частной жизни, то на некоторых предприятиях это может отрицательно повлиять на бизнес. Например, для оператора сотовой связи распространение базы биллинга может обернуться существенным оттоком абонентов к более «надежному» оператору-конкуренту. Поэтому оператору подчас экономически более выгодно найти «производителя», подготовившего украденную базу к продаже, и выкупить весь тираж. Но проблема перекрытия возможных утечек при этом остается весьма актуальной.

Защита баз данных является одной из самых сложных задач, стоящих перед подразделениями, отвечающими за обеспечение информационной безопасности. С одной стороны, для работы с базой необходимо предоставлять доступ к данным всем сотрудникам, кто по долгу службы должен осуществлять сбор, обработку, хранение и передачу конфиденциальных данных. С другой стороны, укрупнение баз данных далеко не всегда имеет централизованную архитектуру, в связи с чем действия нарушителей становятся все более изощренными. При этом четкой и ясной методики комплексного решения задачи защиты баз данных, которую можно было бы применять во всех случаях, не существует, в каждой конкретной ситуации приходится находить индивидуальный подход.

Классический взгляд на решение данной задачи включает обследование предприятия с целью выявления таких угроз, как хищения, утрата, уничтожение, модификация, отказ от подлинности. На втором этапе следует составление математических моделей основных информационных потоков и возможных нарушений, моделирование типовых действий злоумышленников; на третьем — выработка комплексных мер по пресечению и предупреждению возможных угроз с помощью правовых, организационно-административных и технических мер защиты. Однако разнообразие деятельности предприятий, структуры бизнеса, информационных сетей и потоков информации, прикладных систем и способов организации доступа к ним и т. д. не позволяет создать универсальную методику решения.

Долгое время защита баз данных ассоциировалась с защитой локальной сети предприятия от внешних атак хакеров, борьбой с вирусами и т. п. Последние аналитические отчеты консалтинговых компаний выявили другие, более важные направления защиты информационных ресурсов компаний. Исследования убедительно показали, что от утечки информации со стороны персонала и злонамеренных действий «всесильных» администраторов баз данных не спасают ни межсетевые экраны, ни VPN, ни даже «навороченные» системы обнаружения атак и анализа защищенности. Неавторизованный доступ к данным и кража конфиденциальной информации являются главными составляющими потерь предприятий после ущерба, наносимого вирусами.

Один из основных выводов отчета CSI/FBI — значительно возросший ущерб от такой угрозы, как кража конфиденциальных данных. Каждая американская компания в среднем потеряла 355,5 тыс. долл. только из-за утечек конфиденциальных данных за прошедшие 12 месяцев. Средний размер потерь от действий инсайдеров составил 300 тыс. долл. (максимальный — 1,5 млн долл.). Решение вопросов персонифицированного доступа к конфиденциальным данным позволяет выявлять злоумышленника с помощью информации, неопровержимо доказывающей его вину. Это, в свою очередь, невозможно без применения самых современных способов аутентификации и управления доступом.

Целью данной курсовой работы является рассмотрения вопроса о безопасности баз данных.

Для решения поставленной цели необходимо решить следующие задачи:

1. Возможность избежания несанкционированного доступа к базе данных.

2. Хранение зашифрованных данных.

3. Техника защиты баз данных.

информационный база управление безопасность

1
.
Хищение информации из баз данных

1.1 Управление доступом в базах данных

Сформулировать основные причины несанкционированного доступа к данным и поставленного в ряде случаев на промышленные рельсы сбыта баз данных, содержащих персональные данные абонентов, партнеров или сотрудников и коммерческие тайны компаний.

Итак, имеются следующие исходные данные:

Многие не догадываются о том, что их базы данных крадут;

Кража и причиненный ущерб имеют латентный характер;

Если факт кражи данных установлен, большинство компаний замалчивают причиненный ущерб. Одна из причин этого — отсутствие реальных механизмов сбора доказательной базы по факту кражи конкретным пользователем ресурсов;

Технологии, позволяющие строго персонифицировать действия пользователей и разграничить их права, неизвестны большинству руководителей;

Возможность защиты данных от системных администраторов также малоизвестна, руководители предпочитают считать их наиболее лояльными сотрудниками;

Бюджеты на информационную безопасность, как правило, невелики. Это не позволяет решить проблему комплексно (введение штатных единиц, отвечающих за информационную безопасность.

Основные требования по безопасности данных, предъявляемые к БД и СУБД, во многом совпадают с требованиями, предъявляемыми к безопасности данных в компьютерных системах — контроль доступа, криптозащита, проверка целостности, протоколирование и т.д.

Под управлением целостностью в БД понимается защита данных в БД от неверных (в отличие от несанкционированных) изменений и разрушений. Поддержание целостности БД состоит в том, чтобы обеспечить в каждый момент времени корректность (правильность) как самих значений всех элементов данных, так и взаимосвязей между элементами данных в БД. С поддержанием целостности связаны следующие основные требования .

Обеспечение достоверности.В каждый элемент данных информация заносится точно в соответствии с описанием этого элемента.Должны быть предусмотрены механизмы обеспечения устойчивости элементов данных и их логических взаимосвязей к ошибкам или неквалифицированным действиям пользователей.

Управление параллелизмом.Нарушение целостности БД может возникнуть при одновременном выполнении операций над данными, каждая из которых в отдельности не нарушает целостности БД. Поэтому должны быть предусмотрены механизмы управления данными, обеспечивающие поддержание целостности БД при одновременном выполнении нескольких операций.

Восстановление. Хранимые в БД данные должны быть устойчивы по отношению к неблагоприятным физическим воздействиям (аппаратные ошибки, сбои питания и т.п.) и ошибкам в программном обеспечении. Поэтому должны быть предусмотрены механизмы восстановления за предельно короткое время того состояния БД, которое было перед появлением неисправности .

Вопросы управления доступом и поддержания целостности БД тесно соприкасаются между собой, и во многих случаях для их решения используются одни и те же механизмы. Различие между этими аспектами обеспечения безопасности данных в БД состоит в том, что управление доступом связано с предотвращением преднамеренного разрушения БД, а управление целостностью — с предотвращением непреднамеренного внесения ошибки.

Большинство систем БД представляют собой средство единого централизованного хранения данных. Это значительно сокращает избыточность данных, упрощает доступ к данным и позволяет более эффективно защищать данные. Однако, в технологии БД возникает ряд проблем, связанных, например, с тем, что различные пользователи должны иметь доступ к одним данным и не иметь доступа к другим. Поэтому, не используя специальные средства и методы, обеспечить надежное разделение доступа в БД практически невозможно.

Большинство современных СУБД имеют встроенные средства, позволяющие администратору системы определять права пользователей по доступу к различным частям БД, вплоть до конкретного элемента. При этом имеется возможность не только предоставить доступ тому или иному пользователю, но и указать разрешенный тип доступа: что именно может делать конкретный пользователь с конкретными данными (читать, модифицировать, удалять и т. п.), вплоть до реорганизации всей БД Таблицы (списки) управления доступом широко используются в компьютерных системах, например, в ОС для управления доступом к файлам.Особенность использования этого средства для защиты БД состоит в том, что в качестве объектов защиты выступают не только отдельные файлы (области в сетевых БД, отношения в реляционных БД), но и другие структурные элементы БД: элемент, поле, запись, набор данных .

1.2 Управление целостностью данных

Нарушение целостности данных может быть вызвано рядом причин:

Сбои оборудования, физические воздействия или стихийные бедствия;

Ошибки санкционированных пользователей или умышленные действия несанкционированных пользователей;

Программные ошибки СУБД или ОС;

Ошибки в прикладных программах;

Совместное выполнение конфликтных запросов пользователей и др.

Нарушение целостности данных возможно и в хорошо отлаженных системах. Поэтому важно не только не допустить нарушения целостности, но и своевременно обнаружить факт нарушения целостности и оперативно восстановить целостность после нарушения.

1.3 Управление параллелизмом

Поддержание целостности на основе приведенных выше ограничений целостности представляет собой достаточно сложную проблему в системе БД даже с одним пользователем. В системах, ориентированных на многопользовательский режим работы, возникает целый ряд новых проблем, связанных с параллельным выполнением конфликтующих запросов пользователей. Прежде, чем рассмотреть механизмы защиты БД от ошибок, возникающих в случае конфликта пользовательских запросов, раскроем ряд понятий, связанных с управлением параллелизмом.

Важнейшим средством механизма защиты целостности БД выступает объединение совокупности операций, в результате которых БД из одного целостного состояния переходит в другое целостное состояние, в один логический элемент работы, называемый транзакцией. Суть механизма транзакций состоит в том, что до завершения транзакции все манипуляции с данными проводятся вне БД, а занесение реальных изменений в БД производится лишь после нормального завершения транзакции.

С точки зрения безопасности данных такой механизм отображения изменений в БД очень существенен. Если транзакция была прервана, то специальные встроенные средства СУБД осуществляют так называемый откат — возврат БД в состояние, предшествующее началу выполнения транзакции (на самом деле откат обычно заключается просто в невыполнении изменений, обусловленных ходом транзакции, в физической БД) . Если выполнение одной транзакции не нарушает целостности БД, то в результате одновременного выполнения нескольких транзакций целостность БД может быть нарушена. Чтобы избежать подобного рода ошибок, СУБД должна поддерживать механизмы, обеспечивающие захват транзакциями модифицируемых элементов данных до момента завершения модификации так называемые блокировки. При этом гарантируется, что никто не получит доступа к модифицируемому элементу данных, пока транзакция не освободит его. Применение механизма блокировок приводит к новым проблемам управления параллелизмом, в частности, к возникновению ситуаций клинча двух транзакций. Причем, если некоторая транзакция пытается блокировать объект, который уже блокирован другой транзакцией, то ей придется ждать, пока не будет снята блокировка объекта транзакцией, установившей эту блокировку. Иными словами, блокировку объекта может выполнять только одна транзакция .

1.4 Восстановление данных

Восстановление данных — процесс получения доступа к файлам, записанным на том или ином носителе информации, которые стали недоступными вследствие программного сбоя, выхода носителя из строя или ошибочных действий пользователя. Возможность восстановления данных при помощи специальных программ существует в том случае, если они не были перезаписаны другой информацией. Также во многом успех зависит от сохранности структуры файловой системы и работоспособности носителя вообще.

Как известно, данные на любом современном носителе информации на самом низком уровне хранятся в виде битовых последовательности нулей и единичек. То есть, в виде намагниченных/заряженных секторов (1) или их отсутствия (0).

Однако, Windows и прочие операционные системы для ускорения и упрощения доступа к данным работают на более высоких уровнях с использованием различных файловых систем. Файловая система представляет собой программную прослойку для эффективного взаимодействия ОС с информацией на физическом носителе. Она состоит из двух частей: системной области и области данных. Системная область хранит в себе загрузочный сектор (отвечает за возможность загрузки с носителя и его корректное распознавание), а также ряд секторов, хранящих индексные таблицы файлов и иную служебную информацию.

Вся информация физически хранится в области данных, однако, ведомости о файлах находятся в системной области. Механизм такой организации работы выглядит следующим образом: при подключении носителя к компьютеру система не сканирует весь диск на наличие файлов, а быстро считывает данные о них из системной области. Так же ОС взаимодействует с носителем, например, при удалении данных: физически файлы не уничтожаются, а удаляются лишь ссылки на них в файловой таблице. Это даёт системе основания считать «освободившиеся» кластеры носителя пустыми и пригодными для дальнейшей перезаписи. Таким образом, первый случай, когда восстановление данных возможно — исчезновение ссылки на файл в файловой таблице при условии, что файл не был перезаписан иными данными. Второй распространённый случай — форматирование носителя. Существует три типа форматирования:

Быстрое форматирование — стирается только файловая таблица, но не затрагивается область данных. При таком форматировании шансы на восстановления весьма высоки (при условии, что на отформатированную флешку ничего больше не записывалось).

Полное форматирование — стирается и системная область, и область данных. Этот тип форматирования предусматривает полную очистку носителя, однако, для ускорения процесса стирается область данных не полностью, а фрагментами. Это даёт (пусть и небольшой) шанс на восстановление нужных файлов.

Низкоуровневое форматирование — все секторы носителя информации заполняются нулями. После такого форматирования восстановить что-либо практически нереально, поскольку все данные уничтожаются полностью. В Windows штатно отсутствует возможность низкоуровневого форматирования, поэтому даже после полной очистки диска её средствами восстановление данных теоретически возможно! Аналогично можно попробовать восстановить информацию при сбоях файловых систем, которыми часто «грешат» флешки. При таких сбоях обычно частично или полностью уничтожается системная область и флешка требует форматирования:

Как уже отмечалось, возникновение сбоев в аппаратном или программном обеспечении может вызвать необходимость восстановления и быстрого возвращения в состояние, по возможности близкое к тому, которое было перед возникновением сбоя (ошибки). К числу причин, вызывающих необходимость восстановления, зачастую относится и возникновение тупиковой ситуации.

Можно выделить три основных уровня восстановления:

Оперативное восстановление, которое характеризуется возможностью восстановления на уровне отдельных транзакций при ненормальном окончании ситуации манипулирования данными (например, при ошибке в программе).

Промежуточное восстановление.Если возникают аномалии в работе системы (системно-программные ошибки, сбои программного обеспечения, не связанные с разрушением БД), то требуется восстановить состояние всех выполняемых на момент возникновения сбоя транзакций.

Длительное восстановление. При разрушении БД в результате дефекта на диске восстановление осуществляется с помощью копии БД. Затем воспроизводят результаты выполненных с момента снятия копии транзакций и возвращают систему в состояние на момент разрушения .

1.5 Транзакция и восстановление

Прекращение выполнения транзакции вследствие появления сбоя нарушает целостность БД. Если результаты такого выполнения транзакции потеряны, то имеется возможность их воспроизведения на момент возникновения сбоя. Таким образом, понятие транзакции играет важную роль при восстановлении. Для восстановления целостности БД транзакции должны удовлетворять следующим требованиям:

Необходимо, чтобы транзакция или выполнялась полностью, или не выполнялась совсем;

Необходимо, чтобы транзакция допускала возможность возврата в первоначальное состояние, причем, для обеспечения независимого возврата транзакции в начальное состояние монопольную блокировку необходимо осуществлять до момента завершения изменения всех объектов;

Необходимо иметь возможность воспроизведения процесса выполнения транзакции, причем, для обеспечения этого требования, совместную блокировку необходимо осуществлять до момента завершения просмотра данных всеми транзакциями.

В процессе выполнения любой транзакции наступает момент ее завершения. При этом все вычисления, сделанные транзакцией в ее рабочей области, должны быть закончены, копия результатов ее выполнения должна быть записана в системный журнал. Подобные действия называют операцией фиксации. При появлении сбоя целесообразнее осуществлять возврат не в начало транзакции, а в некоторое промежуточное положение. Точку, куда происходит такой возврат, называют точкой фиксации (контрольной точкой). Пользователь может установить в процессе выполнения транзакции произвольное количество таких точек. Если в ходе выполнения транзакции достигается точка фиксации, то СУБД автоматически осуществляет указанную выше операцию .

1.6 Откат и раскрутка транзакции

Основным средством, используемым при восстановлении, является системный журнал, в котором регистрируются все изменения, вносимые в БД каждой транзакцией. Возврат транзакции в начальное состояние состоит в аннулировании всех изменений, которые осуществлены в процессе выполнения транзакции. Такую операцию называют откатом. Для воспроизведения результатов выполнения транзакции можно, используя системный журнал, восстановить значения проведенных изменений в порядке их возникновения, либо выполнить транзакцию повторно. Воспроизведение результатов выполнения транзакции с использованием системного журнала называется раскруткой. Раскрутка является достаточно сложной, но необходимой операцией механизмов восстановления современных БД

2
.
Безопасность баз
данных

2.1 Планирование баз данных

Сегодня базы данных — основная составляющая практически любых приложений, основанных на Web, которая дает возможность предоставления разнообразного динамического содержимого. Поскольку в таких базах данным может храниться весьма важная и секретная информация, нужно позаботиться и об их защите. Архитектура, используемая при создании Web-страниц с помощью PL/SQL WebToolkit, на удивление проста, как показано на рис.1 (см. Приложение А).

Для получения или сохранения информации в базе данных, к ней нужно подключиться, послать запрос, обработать ответ и закрыть подключение. Сегодня для всего этого обычно используется структурированный язык запросов (Structured Query Language, SQL). Давайте посмотрим, как злоумышленник может поступить с SQL-запросом .

Как известно, PHP не может сам защитить базу данных. Следующие разделы являются введением в основы доступа и использования баз данных в скриптах на PHP.

Помните простое правило: защита строится «вглубь». Чем больше мест вы защитите и чем больше действий предпримете для защиты базы данных, тем меньше вероятность успеха у злоумышленника на извлечение и использование хранимой в ней секретной информации. Все опасные места устраняются правильной разработкой структуры базы данных и использующего ее приложения.

Первый шаг всегда — собственно создание базы данных, за исключением случаев использования чужих баз. Когда создается база данных, ей назначается владелец, который и вызвал команду создания. Обычно только один владелец («суперпользователь») может делать что угодно с объектами внутри этой базы данных и для того, чтобы позволить другим пользователям использовать ее, им должны быть назначены права доступа.

Приложения никогда не должны подключаться к базе данных в роли ее владельца или «суперпользователя», поскольку в этом случае пользователи могут произвести любые действия вроде модификации схемы (к примеру, удаления таблиц) или удаления всего ее содержимого.

Можно создать различных пользователей баз данных для каждого необходимого действия приложений, очень сильно ограничивая доступ последних к объектам базы данных. Требуемые права должны назначаться однократно, их использования в других местах приложения нужно избегать. Это значит, что если злоумышленник получит доступ с использованием той или иной учетной записи, он сможет получить лишь тот доступ, которым обладала использованная часть программы.

В приложения лучше не вводить всю логику работы с базами данных. Это можно сделать и в самой базе данных с использованием флагов, представлений, правил и встроенных процедур. В случае развития и расширения системы встроенные процедуры могут быть изменены для автоматической обработки новых полей, а флаги предоставят дополнительные возможности для отладки транзакций.

2.2 Подключение к базе данных

Можно устанавливать подключения с помощью SSL для шифрования соединений клиент-сервер, что дает повышенную безопасность. А можно использовать ssh для шифрования сетевых соединений между клиентами и сервером баз данных. Любой из этих способов сильно усложняет отслеживание и получение информации из сетевого траффика.

2.3 Хранение зашифрованных данных

SSL/SSH защищает данные только по пути от клиента к серверу, но не данные, хранимые в базе данных. SSL — лишь сетевой протокол.

Когда злоумышленник получает доступ к вашей базе данных в обход Web-сервера, хранимые важные данные могут быть получены и использованы, за исключением случая, когда информация защищена в самой базе данных. Шифрование — весьма хороший прием в этом случае, но такой способ поддерживают ныне лишь очень немногие системы управления базами данных.

Самый легкий путь в этом случае — создать свою собственную систему шифрования, а затем использовать ее в скриптах на PHP. PHP способствует такому подходу благодаря наличию специфичных раширений, таких, как Mcrypt и Mhash, охватывающих большой ряд алгоритмов шифрования. Программа шифрует сохраняемые данные и расшифровывает получаемые. Для детального описания схем шифрования смотрите ссылки .

В случае скрытых данных, где не требуется их исходный вид (к примеру, для отображения), можно использовать хеширование. Известным примером хеширования является сохранение в базе данных хеша MD5 от пароля вместо самого пароля. Для подробного описания смотрите crypt() и md5().

Пример: Использование хешированных паролей

// сохраняем хеш от пароля

$query = sprintf(«INSERT INTO users(name,pwd) VALUES(«%s»,»%s»);»,

// проверяем корректность введенного пользователем пароля

$query = sprintf(«SELECT 1 FROM users WHERE name=»%s» AND pwd=»%s»;»,

addslashes($username), md5($password));

$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {

echo «Добро пожаловать, $username!»;

echo «Введен неверный пароль для $username.»;

2.4 Внедрение в SQL

Многие разработчики Web-приложений считают запросы SQL не стоящими, внимания не зная о том, что их может использовать злоумышленник. Это означает, что запросы SQL могут быть использованы для обхода систем защиты, аутентификации и авторизации, а также иногда могут быть использованы для получения доступа к командам уровня операционной системы.

Внедрение в команды SQL — техника, при которой злоумышленник создает или изменяет команды SQL для получения доступа к скрытым данным, для изменения существующих и даже для выполнения команд уровня операционной системы. Это достигается в том случае, если программа использует введенные данные в комбинации со статическими параметрами для создания запроса SQL. Следующие примеры, к сожалению, основаны на реально произошедших случаях:

При недостаточной проверке вводимых данных и соединении с базой данных на правах суперпользователя злоумышленник может создать нового суперпользователя в базе данных.

Пример: Разделение результата запроса по страницам и… создание суперпользователей (PostgreSQL и MySQL)

$offset = argv; // внимание! нет проверки данных!

// в PostgreSQL

$result = pg_exec($conn, $query);

$result = mysql_query($query);

Обычно пользователи используют кнопочки «следующая» и «предыдущая», где $offset внедрен в URL. Программа считает, что $offset — число. Однако, кто-нибудь может попытаться внедриться путем добавления urlencode()-кодированных данных в URL

// в случае PostgreSQL

insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)

select «crack», usesysid, «t»,»t»,»crack»

from pg_shadow where usename=»postgres»;

// в случае MySQL

UPDATE user SET Password=PASSWORD(«crack») WHERE user=»root»;

FLUSH PRIVILEGES;

Если это случится, программа предоставит ему доступ суперпользователя. Заметим, что 0; служит для того, чтобы задать корректное смещение для исходного запроса и завершить его.

Обычная практика — заставить транслятор SQL проигнорировать остаток запроса разработчика с помощью обозначения начала коментария SQL —.

Существует путь получения паролей через ваши страницы поиска. Все, что нужно злоумышленнику — это одна не обработанная должным образом переменная, используемая в SQL-запросе. Использоваться могут команды WHERE, ORDER BY, LIMIT и OFFSET запроса SELECT. Если ваша база данных поддерживает конструкцию UNION, злоумышленник может добавить к исходному запросу еще один — для получения паролей. В этом случае поможет хранение зашифрованных паролей .

Пример: Вывод статей… и паролей (любой сервер баз данных)

$query = «SELECT id, name, inserted, size FROM products

WHERE size = «$size»

ORDER BY $order LIMIT $limit, $offset;»;

$result = odbc_exec($conn, $query);

Статическая часть запроса может быть совмещена с другим запросом SELECT, который выведет все пароли:

union select «1», concat(uname||»-«||passwd) as name, «1971-01-01», «0» from usertable;

Если подобный запрос (использующий » и —) будет задан в одной из переменных, используемых $query, то атака будет успешной.

Запросы SQL «UPDATE» также могут быть использованы для атаки на базу данных. Эти запросы также подвержены опасности «обрезки» и добавления новых запросов. Но здесь злоумышленник работает с командой SET. В этом случае необходимо знание некоторой информации о структуре базы данных для удачной модификации запроса. Такая информация может быть получена путем изучения названий переменных форм или просто подбором. В конце концов, не так уж и много имен придумано для полей пользователей и паролей.

Пример: От сброса пароля до получения привилегий… (любой сервер баз данных)

$query = «UPDATE usertable SET pwd=»$pwd» WHERE uid=»$uid»;»;

Злоумышленник посылает значение » or uid like»%admin%»; —, в переменную $uid для изменения пароля администратора или просто устанавливает $pwd в «hehehe», admin=»yes», trusted=100 » (с завершающим пробелом) для получения прав. Запрос будет искажен так:

// $uid == » or uid like»%admin%»; —

$query = «UPDATE usertable SET pwd=»…» WHERE uid=»» or uid like «%admin%»; —«;

// $pwd == «hehehe», admin=»yes», trusted=100 «

$query = «UPDATE usertable SET pwd=»hehehe», admin=»yes», trusted=100 WHERE …;»

А вот пример того, как на некоторых серверах баз данных могут быть выполнены команды уровня операционной системы:

Пример: Атака на операционную систему сервера баз данных (сервер MSSQL)

$query = «SELECT * FROM products WHERE id LIKE «%$prod%»»;

Если злоумышленник пошлет значение a%» exec master..xp_cmdshell «net user test testpass /ADD» — в $prod, то $query будет выглядеть так:

$query = «SELECT * FROM products

WHERE id LIKE «%a%»

exec master..xp_cmdshell «net user test testpass /ADD»—«;

$result = mssql_query($query);

Сервер MSSQL выполняет все команды SQL, включая команду добавления нового пользователя в локальную базу данных пользователей. Если это приложение было запущено, как sa и служба MSSQLSERVER имеет достаточно прав, злоумышленник будет иметь учетную запись для доступа к этой машине.

Некоторые из вышеперечисленных примеров привязаны к конкретному серверу баз данных. Но это вовсе не означает, что подобная атака невозможна на другое программное обеспечение. Ваш сервер баз данных тоже так или иначе будет уязвим для непредвиденных атак .

2.5 Техника защиты

В большинстве примеров видно, что для атаки злоумышленник должен обладать некоторой информацией. Все верно, но никогда заранее не известно, какими путями уйдет данная информация. Если это все-таки случится, база данных становится незащищенной. Если вы используете свободно распространяемый пакет управления базами данных, который принадлежит какой-нибудь системе управления содержимым или форуму, злоумышленник легко получит копию данной части вашей программы. Это также может представлять «дыру» в безопасности.

Большинство атак построены на использовании кода, который писался без учета соображений безопасности. Никогда не доверяйте введенным данным, особенно если они идут с клиентской стороны, пусть даже и из поля отметки, скрытого поля или записи cookie. Первый пример показывает, к чему может привести подмена этих данных.

Никогда не соединяйтесь с базой данных в роли суперпользователя или владельца. Всегда используйте специальных пользователей с минимумом прав.

Проверяйте ввод на совпадение типа данных с требуемым. PHP включает в себя большое количество проверочных функций, от самых простейших из разделов «Функции для работы с переменными» и «Функции обработки символьного типа», (к примеру is_numeric() и ctype_digit() соответственно) до регулярных выражений Perl («Регулярные выражения, совместимые с Perl»).

Если программа ожидает число, проверяйте данные с помощью is_numeric(), или просто изменяйте тип с помощью settype(), или даже используйте численное представление, выданное sprintf().

Пример: Более безопасная разбивка на страницы

settype($offset, «integer»);

$query = «SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;»;

// отметим %d в строке форматирования, использование %s бесполезно

$query = sprintf(«SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;»,

Необходимо предварять любой нечисловой ввод, передаваемый в базу данных, функциями addslashes() или addcslashes(). В первом примере показано, что кавычек в статической части запроса недостаточно.

Нельзя выводить никакой информации о структуре базы данных ни коим образом.

Можно использовать хранимые процедуры и заданные расположения для того, чтобы отвязать обращение к данным от программы так, чтобы пользователи не имели прямого доступа к таблицам и представлениям, но этот вариант имеет собственные проблемы.

Кроме того, необходимо вести журнал операций в программе или собственно в базе данных, если это поддерживается. Ведение журнала не предотвратит внедрения, но оно поможет определить, какая часть программы была поставлена под удар. Сам журнал бесполезен — полезна хранимая в нем информация. Чем ее больше — тем лучше.

Заключение

На сегодняшний день базы данных являются ключевыми компонентами большинства веб-приложений, позволяя предоставлять на сайтах динамический контент. Поскольку в таких БД может храниться очень точная или конфиденциальная информация, вы должны обеспечить хорошую защиту данных.

Для извлечения или сохранения любых данных вам необходимо открыть соединение с базой данных, отправить верный запрос, извлечь результат и закрыть соединение. В настоящее время наиболее распространенный стандарт общения — структурированный язык запросов (SQL). Всегда следует помнить о возможности атаки посредством SQL-запроса.

Очевидно, что сам по себе PHP не может защитить вашу базу данных. Этот раздел документации рассказывает об основах безопасного доступа и управления данными в PHP-скриптах.

Запомните простое правило: максимальная защита. Чем больше потенциально опасных участков системы вы проработаете, тем сложнее будет потенциальному взломщику получить доступ к базе данных или повредить ее. Хороший дизайн базы данных и программных приложений поможет вам справиться с вашими страхами.

Первый шаг — это всегда создание БД, исключая тот случай, когда вы хотите использовать готовую базу, предоставляемую третьим лицом. После того, как база данных создана, она назначается пользователю, который выполнил создавший БД запрос. Как правило, только владелец (или суперпользователь) может выполнять различные действия с различными объектами, хранимыми в базе данных. Для того, чтобы и другие пользователи имели к ней доступ, их необходимо наделить соответствующими привелегиями.

Приложения не должны соединяться с базой данных, используя учетную запись владельца или суперпользователя, иначе они смогут модифицировать структуру таблиц (например, удалить некоторые таблицы) или даже удалить все содержимое БД целиком.

Вы можете создать различные учетные записи пользователей БД для каждой индивидуальной потребности приложения с соответствующими функциональными ограничениями. Рекомендуется назначать только самые необходимые привилегии, также вы должны избегать ситуаций, когда один и тот же пользователь может взаимодействовать с базой данных в нескольких режимах. Вы должны понимать, что если злоумышленник сможет воспользоваться какой-либо учетной записью вашей БД, он сможет вносить в базу все те изменения, что и программа, которая использует текущую учетную запись.

Не обязательно реализовывать всю бизнес-логику в веб-приложении (т.е. в скриптах), для этого также можно использовать возможности, предоставляемые базой данных: триггеры, представления, правила. В случае роста системы вам понадобятся новые соединения с БД, и логику работы понадобиться дублировать для каждого нового интерфейса доступа. Исходя из вышесказанного, триггеры могут использоваться для прозрачной и автоматической обработки записей, что часто необходимо при отладке приложений или при трассировке отката транзакций.

В зависимости от используемой операционной системы необходимо предусматривать возможность атаки на разнообразные файлы, включая системные файлы устройств (/dev/ или COM1), конфигурационные файлы (например /etc/ или файлы с расширением.ini), хорошо известные области хранения данных (/home/, My Documents), и так далее. Исходя из этого, как правило, легче реализовать такую политику безопасности, в которой запрещено все, исключая то, что явно разрешено.

Поскольку администраторы корпоративных БД не всегда могут уделять безопасности необходимое время, некоторые компании принимают более активные меры. Они освобождают этих сотрудников от исполнения их обычных обязанностей и включают в состав группы, занимающейся ИТ-безопасностью.

Учреждение такой должности решает сразу две проблемы: специалисты по ИТ-безопасности, не обладающие большими познания в области баз данных, могут воспользоваться помощью профессионалов, а администраторы БД получают возможность сфокусировать свою деятельность на вопросах защиты иформации и получить подготовку, необходимую для обеспечения сохранности корпоративных БД.

Список использованных источников

1.Бойченко И. А. Проектирование компонентов доверенной среды реляционной СУБД на основе CASE-технологий [Текст] / И. А. Бойченко — Воронеж, 2014. — 251с.

2.Борри Х. Firebird: руководство работника баз данных [Текст]: пер. с англ. / Х. Бори. — СПб.: БХВ — Петербург, 2012. — 1104с.

3.Броневщук Е. С. Система управления базами данных [Текст] / Е.С. Броневщук, В. И. Бурдаков, Л. И. Гуков. — М.: Финансы и статистика, 2013. — 634с.

4.Гончаров А. Ю. Access 2007. Справочник с примерами [Текст] / А. Ю. Гончаров. — М.: КУДИЦ — ПРЕСС, 2011. — 296с.

5.Дейт К. Введение в системы баз данных [Текст] / К. Дейт 7-е изд. — М.: СПб.: Вильямс, 2013. — 325с.

6. Каленик А. Использование новых возможностей MS SQL Server 2005 [Текст] / А. Каленик. — СПб.: Питер, 2013. — 334с.

7. Конноли Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика [Текст] / Т. Конноли, Л Бегг, А. Страган 2-е изд. — М.: Вильямс, 2012. — 476с.

8. Мотев, А. А. Уроки My SQL. Самоучитель [Текст] / А. А. Мотев. — СПб.: БХВ — Петербург, 2013. — 208с.

9. Оппель Э. Раскрытие тайны SQL [Текст]: пер. с англ. / Э. Опель, Джим Киу, Д. А. Терентьева. — М.: НТ Пресс, 2012. — 320с.

10. Промахина И. М.Интерфейсы сетевой СУБД (ПЭВМ) с языками высокого уровня [Текст] / И. М. Промахина — М.: ВЦ РАН, 2011.- 874с.

11. Фуфаев Э. В., Базы данных; [Текст] / Э. В. Фуфаев, Д. Э. Фуфаев — Академия — Москва, 2013. — 320 c.

12. Фрост, Р. Базы данных. Проектирование и разработка [Текст]: пер. с англ. / Р. Фрост, Д. Дей, К. Ван Слайк, А. Ю. Кухаренко. — М.: НТ Пресс, 2007. — 592с.

Приложение А

Рисунок А.1 — Архитектура, используемая при создании Web-страниц

Приложение Б

Рисунок Б.1 — Схема защиты информации

Размещено на Allbest.ru

Подобные документы

    Основы безопасности персональных данных. Классификация угроз информационной безопасности персональных данных, характеристика их источников. Базы персональных данных. Контроль и управление доступом. Разработка мер защиты персональных данных в банке.

    дипломная работа , добавлен 23.03.2018

    Рассмотрение проблемы обеспечения санкционированности использования информации в базах данных (защита данных от нежелательной модификации, уничтожения, заражения программами-вирусами) и юридического регулирования безопасности на примере СУБД Ms SQL.

    курсовая работа , добавлен 30.03.2010

    Что такое базы данных, визуализация информации базы. Структура и свойства простейшей базы данных. Характеристика определений, типов данных, безопасность, специфика формирования баз данных. Подходы к проектированию технического задания. Работа с таблицами.

    презентация , добавлен 12.11.2010

    Формы представляемой информации. Основные типы используемой модели данных. Уровни информационных процессов. Поиск информации и поиск данных. Сетевое хранилище данных. Проблемы разработки и сопровождения хранилищ данных. Технологии обработки данных.

    лекция , добавлен 19.08.2013

    Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.

    курсовая работа , добавлен 06.02.2016

    Основные виды баз данных. Система управления базами данных. Анализ деятельности и информации, обрабатываемой в поликлинике. Состав таблиц в базе данных и их взаимосвязи. Методика наполнения базы данных информацией. Алгоритм создания базы данных.

    курсовая работа , добавлен 17.12.2014

    Эволюция концепций баз данных. Требования, которым должна удовлетворять организация базы данных. Модели представления данных. Язык SQL как стандартный язык баз данных. Архитектуры баз данных. Среда Delphi как средство для разработки СУБД.

    дипломная работа , добавлен 26.11.2004

    Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

    курсовая работа , добавлен 04.06.2015

    Процессы обработки информации. Эффективность автоматизированной информационной системы. Система управления базой данных. Локальная и распределенная система банков и баз данных. Этапы проектирования базы данных. Различие уровней представления данных.

    контрольная работа , добавлен 07.07.2015

    Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.

В финансовой сфере и госогранах требования к защите баз данных предъявляют регуляторы, а безопасность СУБД коммерческих компаний остается на совести владельцев бизнеса. Хотя на первый взгляд вопрос безопасности баз данных кажется достаточно понятным, универсального решения для защиты СУБД нет. Автоматизированные банковские системы АБС, CRM, ERP, системы документооборота, интернет-банкинг, системы дистанционного банковского обслуживания (ДБО) — после первой попытки разобраться в «зоопарке» различных систем в одной компании любой специалист задумывается о специализированном решении для защиты баз данных.

Базовые средства защиты баз данных

Первая линия безопасности баз данных должна исходить от IT-отдела компании и от администраторов СУБД в частности. Базовая защита БД — это настройка межсетевых экранов перед СУБД, чтобы заблокировать любые попытки доступа от сомнительных источников, настройка и поддержание в актуальном состоянии парольной политики и ролевой модели доступа. Это действенные механизмы, которым должно уделяться внимание. Следующий этап защиты информации в базах данных — аудит действий пользователей, прямая задача отдела информационной безопасности. Значимость аудита объясняется тем, что в промышленной системе сложно тонко настроить права доступа к данным, к тому же бывают и исключительные ситуации.

Например, сотруднику отдела “А” временно понадобился доступ к клиенту отдела “Б”. С большой вероятностью внесение изменений в матрицу доступа к данным не будет иметь обратного характера, что в конечном итоге приводит к наличию учетных записей с сильно расширенными привилегиями, за использованием которых стоит следить.

Штатный аудит баз данных

Для проведения такого мониторинга многие организации пользуются «штатным аудитом» – средствами защиты баз данных, входящими в состав коммерческих СУБД. Штатный режим защиты включает ведение журнала подключения к СУБД и выполнения запросов теми или иными пользователями. Если коротко, принцип работы штатного аудита – это включение и настройка триггеров и создание специфичных функций – процедур, которые будут срабатывать при доступе к чувствительной информации и вносить данные о подобном доступе (кто, когда, какой запрос делал) в специальную таблицу аудита. Этого бывает достаточно для выполнения ряда отраслевых требований регуляторов, но не принесет практически никакой пользы для решения внутренних задач информационной безопасности, таких как расследование инцидентов.

Ключевые недостатки штатного аудита как защиты баз данных:

  • Дополнительная нагрузка на серверы баз данных (10-40% в зависимости от полноты аудита).
  • Вовлечение администраторов баз данных в настройку аудита (невозможность контроля администраторов – основных привилегированных пользователей).
  • Отсутствие удобного интерфейса продукта и возможности централизованной настройки правил аудита (особенно актуально для крупных распределенных компаний, в задачи защиты которых входит целый перечень СУБД).
  • Невозможность контроля действий пользователей в приложениях с трехзвенной архитектурой (наличие WEB и SQL-сегмента, что сейчас используется повсеместно из соображений безопасности).

Автоматизированные системы защиты баз данных

Более эффективный подход – использование специализированных систем информационной безопасности в области защиты бд – решений классов DAM и DBF.

DAM (Database Activity Monitoring)
– это решение независимого мониторинга действий пользователей в СУБД. Под независимостью здесь понимается отсутствие необходимости переконфигурации и донастройки самих СУБД. Системы такого класса могут ставиться пассивно, работая с копией трафика и не оказывая никакого влияния на бизнес-процессы, частью которых являются базы данных.

Такие системы позволяют разбирать трафик взаимодействия пользователей с базами данных, классифицировать SQL-запросы по принадлежности к определенных группам. Вести полный аудит SQL-запросов и ответов на них. Кроме того, решения обладают глубокой системой фильтрации, позволяющей из сотен миллионов запросов выявить потенциальные инциденты и сохранять полный архив действий пользователей, как для удовлетворения требований регуляторов, так и для задач ретроспективного анализа при расследовании инцидентов. Кроме того, специализированные системы DAM позволяют синхронизоваться с защищаемыми базами данных с целью:

  • Классификации
    – определение местонахождения критичной для компании информации. Опция позволяет, просканировав СУБД, увидеть названия таблиц и полей, в которых могут содержаться персональные данные клиентов. Это крайне важно для упрощения последующей настройки политик безопасности.
  • Проверки на уязвимости –
    соответствие конфигурации и настройки СУБД лучшим практикам.
  • Получение матрицы доступа к данным
    – задача решается для выявления расширенных привилегий доступа, неиспользуемым правам, и наличие так называемых «мертвых» учетных записей, которые могли остаться после увольнения сотрудника из компании.

Преимущество систем такого класса – гибкая система отчетности и интеграции с SIEM-системами большинства вендоров, для более глубокого корреляционного анализа выполняемых запросов.

DBF (Database Firewall)
– это смежное по классу решение, которое также обладает возможностью «проактивной» защиты информации. Достигается это блокировкой нежелательных запросов. Для решения этой задачи уже недостаточно работы с копией трафика, а требуется установка компонентов системы защиты «в разрыв».

Учитывая достаточно большие риски при таком способе внедрения, крайне редко компании выбирают активную защиту промышленных СУБД и ограничиваются функциями мониторинга. Происходит это по причине возможности неоптимальной настройки правил блокировки. В этом случае ответственность за ложно заблокированные запросы будет лежать на плечах офицера информационной безопасности. Еще одна причина в том, что в сетевой схеме появляется дополнительный узел отказа, — главный блокирующий фактор при выборе такого способа внедрения решения.

На российском рынке представлено решение класса DAM «Гарда БД» от компании «Гарда Технологии». Это программно-аппаратный комплекс, который проводит непрерывный мониторинг всех запросов к базам данных и веб-приложениям в реальном времени и хранит их в течение длительного срока. Система проводит сканирование и выявление уязвимостей СУБД, такие как незаблокированные учётные записи, простые пароли, неустановленные патчи. Реагирование на инциденты происходит мгновенно в виде оповещений на e-mail и в SIEM-систему.

Система защиты баз данных устанавливается пассивно, то есть не влияет на производительность сети компании. Интеллектуальная система хранения позволяет формировать архив запросов и ответов к базам данных за любой период времени для дальнейшего ретроспективного анализа и расследования инцидентов. Это первая система класса DAM, вошедшая в реестр отечественного ПО и установленная в ряде крупных российских банков.

В следующей статье мы более подробно рассмотрим задачи, которые часто стоят перед DAM-системами, расскажем, почему для DAM так важно умение работы с http/http’s трафиком и как обеспечить защиту от SQL инъекций.

С увеличением использования баз данных, частота нападения на базы данных также возросла. В наши дни атаки на базы данных являются растущей тенденцией. В чём причина нападения на БД? Одна из причин — это увеличение доступа к данным, хранящимся в базе данных. Когда данные использовались многими людьми, шансы кражи данных увеличиваются. Отсюда следует, что безопасность баз данных — это диапазон методов, которые используют для защиты информации, хранящейся в базе данных. Так как попытки взлома БД являются наиболее частыми, вам необходимо будет подумать о безопасности информационной базы, так как существует множество и других опасностей.

Физическое повреждение компьютера, неправильная кодировка или коррупция, и перезагрузка данных, вот практически все потенциальные угрозы для базы данных. А это означает, что есть много мер безопасности — от брандмауэров до аудита и резервного копирования дисков — свести любой возможный ущерб к минимуму и предотвратить потерю всей базы данных. Большинство предприятий имеют собственные протоколы безопасности данных для защиты от определенных атак и возможного ущерба.

Установка межсетевого экрана для базы данных
, своеобразный защитный барьер, который запрещает все неизвестные соединения, это является самой основной формой защиты баз данных. Межсетевые экраны установлены на большинстве компьютеров и сделаны таким образом, что хакеры будут иметь трудности с подключением к компьютеру жертвы. Брандмауэры работают путем фильтрации подключений к сети и только доверенные компьютеры или пользователи могут получить доступ к базе данных. В то время как опытные хакеры могут обойти это, брандмауэр обеспечивает высокий уровень безопасности.

Шифрование
— это другая мера безопасности для базы данных, в которой данные шифруются, или были сделаны неразборчивыми для всех, кто обращается к базе данных. При использовании шифрования, алгоритм кодирует символы в бред, поэтому он не может быть прочитан. Это означает, что если хакер имеет определенные знания о ключах шифрования, информацию, которая вам нужна для изменения зашифрованных данных из неразборчивых символов обратно в понятную форму, нет никакого способа, чтобы он или она могли прочитать базу данных.

Аудит
— это, когда руководитель или менеджер, проверяет базу данных, чтобы убедиться, что в ней ничего не изменилось. Этот тип защиты БД обычно выполняют физически, кем-то, кто может читать базу данных, или для больших баз данных с помощью программы, чтобы увидеть, что целостность БД осталась такая же. Кроме того, аудит может включать проверку доступа к базе данных и, увидеть, что человек сделал, когда он получил доступ к базе данных. Это предотвращает кражи данных или, по крайней мере, позволяет администраторам, чтобы выяснить, кто совершил кражу данных.

Регулярное резервное копирование БД
— это мера безопасности баз данных, которая может защищать БД от различных угроз. Когда резервное копирование базы данных выполняется регулярно, то это означает, что данные будут храниться на другом жёстком диске или сервере. Если база данных теряет любую или всю информацию, она может быть быстро перезапущена с минимальными потерями, используя резервную копию. Делая резервное копирование базы данных, администраторы могут предотвратить физическое повреждение компьютера, например от пожара, повреждения базы данных или базы данных выключением от перегрузки.

В финансовой сфере и госогранах требования к защите баз данных предъявляют регуляторы, а безопасность СУБД коммерческих компаний остается на совести владельцев бизнеса. Хотя на первый взгляд вопрос безопасности баз данных кажется достаточно понятным, универсального решения для защиты СУБД нет. Автоматизированные банковские системы АБС, CRM, ERP, системы документооборота, интернет-банкинг, системы дистанционного банковского обслуживания (ДБО) — после первой попытки разобраться в «зоопарке» различных систем в одной компании любой специалист задумывается о специализированном решении для защиты баз данных.

Базовые средства защиты баз данных

Первая линия безопасности баз данных должна исходить от IT-отдела компании и от администраторов СУБД в частности. Базовая защита БД — это настройка межсетевых экранов перед СУБД, чтобы заблокировать любые попытки доступа от сомнительных  источников, настройка и поддержание в актуальном состоянии парольной политики и ролевой модели доступа. Это действенные механизмы, которым должно уделяться внимание. Следующий этап защиты информации в базах данных — аудит действий пользователей, прямая задача отдела информационной безопасности. Значимость аудита объясняется тем, что в промышленной системе сложно тонко настроить права доступа к данным,  к тому же бывают и исключительные ситуации.

Например, сотруднику отдела “А” временно понадобился доступ к клиенту отдела “Б”. С большой вероятностью внесение изменений в матрицу доступа к данным не будет иметь обратного характера, что в конечном итоге приводит к наличию учетных записей с сильно расширенными привилегиями, за использованием которых стоит следить.

Штатный аудит баз данных

Для проведения такого мониторинга многие организации пользуются «штатным аудитом» – средствами защиты баз данных, входящими в состав коммерческих СУБД. Штатный режим защиты включает ведение журнала подключения к СУБД и выполнения запросов теми или иными пользователями. Если коротко, принцип работы штатного аудита – это включение и настройка триггеров и создание специфичных функций – процедур, которые будут срабатывать при доступе к чувствительной информации и вносить данные о подобном доступе (кто, когда, какой запрос делал) в специальную таблицу аудита. Этого бывает достаточно для выполнения ряда отраслевых требований регуляторов, но не принесет практически никакой пользы для решения внутренних задач информационной безопасности, таких как расследование инцидентов.

Ключевые недостатки штатного аудита как защиты баз данных:

  • Дополнительная нагрузка на серверы баз данных (10-40% в зависимости от полноты аудита).
  • Вовлечение администраторов баз данных в настройку аудита (невозможность контроля администраторов – основных привилегированных пользователей).
  • Отсутствие удобного интерфейса продукта и возможности централизованной настройки правил аудита (особенно актуально для крупных распределенных компаний, в задачи защиты которых входит целый перечень СУБД).
  • Невозможность контроля действий пользователей в приложениях с трехзвенной архитектурой (наличие WEB и SQL-сегмента, что сейчас используется повсеместно из соображений безопасности).

Автоматизированные системы защиты баз данных

Более эффективный подход – использование  специализированных систем информационной безопасности в области защиты бд – решений классов DAM и DBF.

DAM (Database Activity Monitoring) – это решение независимого мониторинга действий пользователей в СУБД. Под независимостью здесь понимается отсутствие необходимости переконфигурации и донастройки самих СУБД. Системы такого класса могут ставиться пассивно, работая с копией трафика и не оказывая никакого влияния на бизнес-процессы, частью которых являются базы данных.

Такие системы позволяют разбирать трафик взаимодействия пользователей с базами данных, классифицировать SQL-запросы по принадлежности к определенных группам. Вести полный аудит SQL-запросов и ответов на них. Кроме того, решения обладают глубокой системой фильтрации, позволяющей из сотен миллионов запросов выявить потенциальные инциденты и сохранять полный архив действий пользователей, как для удовлетворения требований регуляторов, так и для задач ретроспективного анализа при расследовании инцидентов. Кроме того, специализированные системы DAM позволяют синхронизоваться с защищаемыми базами данных с целью:

  • Классификации – определение местонахождения критичной для компании информации. Опция позволяет, просканировав СУБД, увидеть названия таблиц и полей, в которых могут содержаться персональные данные клиентов. Это крайне важно для упрощения последующей настройки политик безопасности.
  • Проверки на уязвимости – соответствие конфигурации и настройки СУБД лучшим практикам.
  • Получение матрицы доступа к данным – задача  решается для выявления расширенных привилегий доступа, неиспользуемым правам, и наличие так называемых «мертвых» учетных записей, которые могли остаться после увольнения сотрудника из компании.

Преимущество систем такого класса – гибкая система отчетности и интеграции с SIEM-системами большинства вендоров, для более глубокого корреляционного анализа выполняемых запросов.

DBF (Database Firewall) – это смежное по классу решение, которое также обладает возможностью «проактивной» защиты информации. Достигается это блокировкой нежелательных запросов. Для решения этой задачи уже недостаточно работы с копией трафика, а требуется установка компонентов системы защиты «в разрыв».

Учитывая достаточно большие риски при таком способе внедрения, крайне редко компании выбирают активную защиту промышленных СУБД и ограничиваются функциями мониторинга. Происходит это по причине возможности неоптимальной настройки правил блокировки. В этом случае ответственность за ложно заблокированные запросы будет лежать на плечах офицера информационной безопасности. Еще одна причина  в том, что в сетевой схеме появляется дополнительный узел отказа, — главный блокирующий фактор при выборе такого способа внедрения решения.

На российском рынке представлено решение класса DAM «Гарда БД» от компании «Гарда Технологии». Это программно-аппаратный комплекс, который  проводит непрерывный мониторинг  всех запросов к базам данных и веб-приложениям в реальном времени и хранит их в течение длительного срока. Система  проводит сканирование и выявление уязвимостей СУБД, такие как незаблокированные учётные записи, простые пароли,  неустановленные патчи. Реагирование на инциденты происходит мгновенно в виде оповещений на e-mail и в SIEM-систему.

Система защиты баз данных устанавливается пассивно, то есть не влияет на производительность сети компании. Интеллектуальная система хранения позволяет формировать архив запросов и ответов к базам данных за любой период времени для дальнейшего ретроспективного анализа и расследования инцидентов. Это первая система класса DAM, вошедшая в реестр отечественного ПО и установленная в ряде крупных российских банков.

В следующей статье мы более подробно рассмотрим задачи, которые часто стоят перед DAM-системами, расскажем, почему для DAM так важно умение работы с http/http’s трафиком и как обеспечить защиту от SQL инъекций.



Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

В настоящее время практически ни одна современная организация не обходится без использования баз данных в своей деятельности. Базы данных (БД) – это наиболее значимый и ценный актив для любой компании. Поскольку в БД может храниться очень деликатная или конфиденциальная информация, необходимо очень серьезно относиться к ее защите. Любые сбои в работе СУБД и баз данных могут привести к катастрофическим последствиям. Согласно результатам последних исследований, финансовый ущерб от нарушения одного из свойств «конфиденциальность-целостность-доступность» одной записи базы данных составляет от $100 до $240. Затраты идут на восстановление данных, расследование, ликвидацию ущерба репутации компании и т.д. Поэтому проблема обеспечения безопасности баз данных является крайне актуальной.

Под «защитой БД» понимается способ предотвратить несанкционированный доступ к информации, хранимой в таблицах. Одним из наиболее слабых мест при обеспечении безопасности данных (защите конфиденциальных данных), как правило, является большое количество лиц, получающих к ним доступ на самых различных уровнях.

Как показывает практика, несанкционированный доступ (НСД) представляет одну из наиболее серьезных угроз для злоумышленного завладения защищаемой информацией. Как ни покажется странным, но для ПК опасность данной угрозы по сравнению с большими ЭВМ повышается, чему способствуют следующие объективно существующие обстоятельства:

1) подавляющая часть ПК располагается непосредственно в рабочих комнатах специалистов, что создает благоприятные условия для доступа к ним посторонних лиц;

2) многие ПК служат коллективным средством обработки информации, что обезличивает ответственность, в том числе и за защиту информации;

3) современные ПК оснащены несъемными накопителями на ЖМД очень большой емкости, причем информация на них сохраняется даже в обесточенном состоянии;

4) накопители на ГМД производятся в таком массовом количестве, что уже используются для распространения информации так же, как и бумажные носители;

5) первоначально ПК создавались именно как персональное средство автоматизации обработки информации, а потому и не оснащались специально средствами защиты от НСД.

В силу сказанного те пользователи, которые желают сохранить конфиденциальность своей информации, должны особенно позаботиться об оснащении используемой ПК высокоэффективными средствами защиты от НСД.

Основные механизмы защиты ПК от НСД могут быть представлены следующим перечнем:

1) физическая защита ПК и носителей информации;

2) опознавание (аутентификация) пользователей и используемых компонентов обработки информации;

3) разграничение доступа к элементам защищаемой информации;

4) криптографическое закрытие защищаемой информации, хранимой на носителях (архивация данных);

5) криптографическое закрытие защищаемой информации в процессе непосредственной ее обработки;

6) регистрация всех обращений к защищаемой информации. Ниже излагаются общее содержание и способы использования перечисленных механизмов.

 То есть угрозы хранящейся в базах данных информации возникают не только извне, но и изнутри со стороны легальных пользователей. Наиболее типичным примером является скачивание базы данных системным администратором перед увольнением, или воровство базы сотрудником, имеющим к ней доступ в связи с должностными обязанностями. Таким образом, вне зависимости от уровня защищенности каналов доступа к информации, пока существуют бумага и ручка, нельзя быть уверенными, что безопасность баз данных отвечает корпоративным требованиям.

Существует целый ряд технологий и приёмов атак на базы данных, эффективность которых зависит от конфигурации базы данных и сервера, на котором она функционирует, от того, насколько правильно спроектирована и реализована ИТ-инфраструктура и топология сети в целом, от человеческого фактора и лояльности персонала. Атаки на web-серверы и на серверы баз данных зачастую преследуют одни и те же цели, запускаются одними и теми же лицами, и имеют схожий характер. Поэтому и защита информации в базах данных строится на использовании решений, имеющих похожие принципы работы и архитектуру. Среди множества средств защиты БД можно выделить основные и дополнительные.

К основным средствам защиты информации относят следующие:

  • парольная защита;
  • защита полей и записей таблиц БД.
  • установление прав доступа к объектам БД;
  • шифрование данных и программ;

· Средства защиты базы данных

·

Средства защиты БД в различных СУБД несколько отличаются друг от друга. На основе анализа современных СУБД Borland и Microsoft можно утверждать, что средства защиты БД условно делятся на две группы, основные и дополнительные.
К основным средствам защиты информации можно отнести следующие средства:
— парольная защита;
— шифрование данных и программ;
— установление прав доступа к объектам БД;
— защита полей и записей таблиц БД.
Парольная защита представляет простой и эффективный способ защиты БД от несанкционированного доступа. Пароли устанавливаются конечными пользователями или администраторами БД. Учет и хранение паролей производится самой СУБД. Обычно пароли хранятся в определенных системных файлах СУБД в зашифрованном виде. Поэтому просто найти и определить пароль невозможно. После ввода пароля пользователю СУБД предоставляются все возможности по работе с защищенной БД.
Шифрование данных (всей базы или отдельных таблиц) применяется для того, чтобы другие программы не могли прочитать данные. Шифрование исходных текстов программ позволяет скрыть от несанкционированного пользователя описание соответствующих алгоритмов.
В целях контроля использования основных ресурсов СУБД во многих системах имеются средства установления прав доступа к объектам БД. Права доступа определяют возможные действия над объектами. Владелец объекта (пользователь, создавший объект), а также администратор БД имеют все права. Остальные пользователи к разным объектам могут иметь различные уровни доступа.
По отношению к таблицам в общем случае могут предусматриваться следующие права доступа.
— просмотр (чтение) данных;
— изменение (редактирование) данных;
— добавление новых записей;
— добавление и удаление данных;
— все операции, в том числе изменение структуры таблицы.

К данным, имеющимся в таблице, могут применяться меры защиты по отношению к отдельным полям и отдельным записям. В реляционных СУБД отдельные записи специально не защищаются.
Применительно к защите данных в полях таблиц можно выделить следующие уровни прав доступа:
— полный запрет доступа;
— только чтение;
— разрешение всех операций (просмотр, ввод новых значений, удаление и изменение).
По отношению к формам могут предусматриваться две основные операции: вызов для работы и разработка (вызов Конструктора). Запрет вызова Конструктора целесообразно делать для экранных форм готовых приложений, чтобы конечный пользователь случайно не испортил приложение. В самих экранных формах отдельные элементы могут быть тоже защищены. Например, некоторые поля исходной таблицы вообще могут отсутствовать или скрыты от пользователя, а некоторые поля – доступны только для просмотра.
Отчеты во многом похожи на экранные формы, за исключением следующего. Во-первых, они не позволяют изменять данные в таблицах, а во-вторых, основное их назначение – вывод информации на печать. На отчеты, так же, как и на экранные формы, может накладываться запрет на вызов средств их разработки.
Для исключения просмотра и модификации (случайной или преднамеренной) текстов программ, используемых в приложениях СУБД, помимо шифрации, может применяться их парольная защита.
К дополнительным средствам защиты БД можно отнести такие, которые нельзя прямо отнести к средствам защиты, но которые непосредственно влияют на безопасность данных. Это следующие средства:
• встроенные средства контроля значений данных в соответствии с типами;
• повышения достоверности вводимых данных;
• обеспечения целостности связей таблиц;
• организации совместного использования объектов БД в сети.
Редактируя БД, пользователь может случайно ввести такие значения, которые не соответствуют типу поля, в которое это значение вводится (например, ввод в числовое поле текстовой информации). В этом случае СУБД с помощью средств контроля значений блокирует ввод и сообщает пользователю об ошибке.
Средства повышения достоверности вводимых значений в СУБД служат для более глубокого контроля, связанного с семантикой обрабатываемых данных. Они обычно обеспечивают возможность при создании таблицы указывать следующие ограничения на значения: минимальное и максимальное значения, значение, принимаемое по умолчанию (если нет ввода), требование обязательного ввода; задание маски (шаблона) ввода и т.д.
Более совершенной формой организации контроля достоверности информации в БД является разработка хранимых процедур. Механизм хранимых процедур применяется в БД, размещенных на сервере. Сами хранимые процедуры представляют собой программы, алгоритмы которых предусматривают выполнение некоторых функций (в том числе контрольных) над данными. Процедуры хранятся вместе с данными и при необходимости вызываются из приложений либо при наступлении некоторых событий в БД.
Решение прикладной задачи, как правило, требует выбора информации из нескольких таблиц. Таблицы в базе данных могут быть связаны. Функции поддержаниялогической целостности связанных таблиц берет на себя СУБД. Если СУБД не реализует эти функции, то ответственность за корректность связей возлагается на приложение.
Приведем пример возможных действий СУБД по контролю целостности связей таблиц. Пусть между двумя таблицами существует связь вида 1.М и, следовательно, одной записи основной таблицы может соответствовать несколько записей вспомогательной таблицы.
При вставке записей во вспомогательную таблицу система контролирует наличие соответствующих значений в поле связи основной таблицы. Если вводимое значение отсутствует в основной таблице, СУБД временно блокирует работу с новой записью и предлагает изменить значение или удалить запись целиком.
Удаление записей из дополнительных таблиц не контролируется. При удалении записи из основной таблицы происходит проверка. В случае, когда запись основной таблицы связана с несколькими записями дополнительной таблицы, возможны два варианта поведения. Не удалять основной записи, пока имеется хотя бы одна подчиненная запись (записи должен удалять пользователь), либо удалить основную запись и все подчиненные записи (каскадное удаление).
В распределенных информационных системах, работающих с базами данных, возникает проблема разрешения конфликтов между различными действиями над одними и теми же объектами (совместного использования объектов БД). Например, что делать в случае, когда один из пользователей локальной сети редактирует БД, а другой хочет изменить ее структуру? Для таких ситуаций в СУБД должны быть предусмотрены механизмы разрешения конфликтов.
Обычно при одновременной работе нескольких пользователей в сети используются блокировки. Блокировки могут действовать на различные объекты БД и на отдельные элементы объектов. Блокировки объектов возникают, когда параллельно с использованием объекта предпринимается попытка входа в режим разработки этого же объекта. Применительно к таблицам баз данных дополнительные блокировки могут возникать при работе с отдельными записями или полями.
Блокировки бывают явные и неявные. Явные блокировки накладываются пользователем или приложением с помощью команд. Неявные блокировки организует сама система, чтобы избежать возможных конфликтов. Например, в случае попытки изменения структуры БД во время редактирования информации устанавливается запрет реструктурирования БД до завершения редактирования данных.
 

К дополнительным средствам защиты БД можно отнести такие, которые нельзя прямо отнести к средствам защиты, но которые непосредственно влияют на безопасность данных. Это:

  • встроенные средства контроля значений данных в соответствии с типами;
  • повышения достоверности вводимых данных;
  • обеспечения целостности связей таблиц;
  • организации совместного использования объектов БД в сети.

По мнению экспертов компании Application Security, существует 10 основных угроз БД, которые наиболее часто игнорируются ИТ-персоналом:

  1. Используемые по умолчанию, пустые или слабые пароли и логины;
  2. SQL-инъекции;
  3. Расширенные пользовательские и групповые права;
  4. Активизация неиспользуемых функций БД;
  5. Нарушение в управлении конфигурациями;
  6. Переполнение буфера;
  7. Эскалация привилегий;
  8. DoS-атаки;
  9. Несвоевременное обновление ПО;
  10. Отказ от шифрования данных на стационарных и мобильных устройствах.

Существует множество программных решений для защиты баз данных и обеспечения безопасности конфиденциальной информации:

  • FortiDB;
  • SafeNet DataSecure;
  • McAfee Database Security;
  • Secret Disk Server NG;
  • Крипто БД: защита баз данных (Oracle);
  • DataSecure и другие.

Помимо систематического применения арсенала средств защиты БД, необходимо использовать административные и процедурные меры, в частности регулярное изменение паролей пользователей, предотвращение доступа к физическим носителям информации и т.п.

Таким образом, информационные активы составляют основу бизнеса любой организации, а базы данных являются доминирующим инструментом для хранения структурированной информации. Растущие масштабы краж критически важных данных делают все более актуальной необходимость в защите баз данных. Особенно значимым является создание системы защиты от внутренних злоумышленников. Система защиты БД играет важнейшую роль в автоматизации контроля над действиями пользователей, работающими с базами данных, защите от внешних и внутренних угроз и повышении надежности функционирования баз данных.