Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и лекции к экзамену.docx
Скачиваний:
44
Добавлен:
20.09.2019
Размер:
112.37 Кб
Скачать

1.5. Архитектура систем управления базами данных

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

При описании архитектур обработки данных используются разнообразные термины, поэтому дадим определения основных понятий, используемых в книге. Следующие определения относятся к архитектуре «клиент-сервер».

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

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

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

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

Основным назначением архитектуры «клиент-сервер» является обеспечение прикладным программам клиента доступа к данным, которыми управляет сервер. Архитектура «клиент-сервер» позво­ляет нескольким клиентам совместно эффективно использовать один сервер.

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

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

Рассмотрим преимущества и недостатки архитектуры «клиент-сервер». Путем распределения вычислений достигается гибкость и масштабируемость системы: во-первых, каждый компьютер в системе можно выбирать так, чтобы он лучше всего подходил к требованиям каждого компонента. Например, для сервера можно выбрать мощный многопроцессорный компьютер с большим объемом памяти под управлением защищенной многопользовательской операционной системы UNIX-класса. Такой сервер будет выдерживать требуемый уровень нагрузки. Для рабочих станций, на которых будет развернуто клиентское программное обеспечение, требования совсем другие. Как правило, это так называемый офисный компьютер. Во-вторых, такая система обладает хорошей адаптируемостью и гибкостью — в силу модульности легко можно заменить переставший удовлетворять требованиям компонент или даже целиком какую-либо составляющую. Например, заменить весь парк устаревших рабочих станций. В-третьих, легко масштабировать систему, добавив в нее новые рабочие станции или нарастив вычислительные мощности на сервере.

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

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

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

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

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

  • относительно низкие затраты на внедрение и эксплуатацию;

  • высокая способность к интеграции существующих информационных ресурсов;

  • прикладные программные средства доступны с любого клиентского рабочего места;

  • минимальный состав программно-технических средств на клиентском рабочем месте.

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

  • сервер баз данных Oracle;

  • универсальный сервер приложений Oracle Application Server;

  • набор драйверов в стандарте JDBC, специально оптимизированных для доступа из Java-программ к Oracle, a также SQLJ — поддержка операторов SQL, встроенных в программы Java.

Этот набор не является жестко заданным. При проектировании конкретной системы следует учитывать все особенности ее функционирования и, например, использование web-сервера Apache и языка Perl может оказаться эффективнее применения web-расширений языка PL/SQL для Oracle Application Server. Кроме того, в интерпретации Oracle многозвенная архитектура имеет еще одну особенность. Она изначально задумана как расширяемая. Основной единицей расширения является картридж—клиентский, прикладной или картридж данных, предусмотрены интерфейсы для их взаимодействия с другими компонентами информационной системы. Картриджи могут разрабатываться как производителями программного обеспечения, так и пользователями с учетом их возможного повторного использования. Существует три типа картриджей.

Картриджи базы данных — функционируют внутри сервера базы данных. Oracle предоставляет свои картриджи для решения

конкретных задач, например interMedia Text для обработки неструктурированных текстов. Также разработчики могут реализовать на каком-либо языке программирования свои картриджи. Например, для устранения недостатков работы ititerMedia Text с текстами на русском языке разработан картридж Russian Context Optimizer (RCO).

Картриджи серверов приложений — средства для получения и обработки запросов от клиентов. Примером может служить разработанное корпорацией Oracle средство Oracle Web Application Server.

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

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

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

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

1.6. Структура свойства информационной безопасности баз данных

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

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

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

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

  • конфиденциальность: обеспечение пользователям доступа только к тем данным, для которых пользователь имеет явное или неявное разрешение на доступ;

  • целостность: обеспечение защиты от преднамеренного или непреднамеренного изменения информации или процессов ее обработки;

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

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

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

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

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

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

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

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

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

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

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

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