Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Макаров.doc
Скачиваний:
13
Добавлен:
01.09.2019
Размер:
1.26 Mб
Скачать

Защита архитектуры клиент-сервер

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

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

пассивный перехват передаваемых запросов;

модификация (активный перехват) передаваемых запросов;

пассивный перехват ответов клиенту;

модификация ответов клиенту;

выдача злоумышленником себя за определенный сервер;

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

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

случайные сбои и ошибки функционирования аппаратуры и программных элементов сервера;

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

другие виды атак на ПО сервера.

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

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

сервер - его аппаратная платформа, средства администрирования, управления передачей данных и другое программное обеспечение;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рассмотрим средства обеспечения безопасности, имеющиеся в арсенале администратора системы клиент-сервер.

Во-первых, это разнообразные коммерческие продукты третьих фирм. Например, аппаратно-программный комплекс PacketShaper для назначения приоритетов доступа (группам, пользователям) к ресурсам Интернет. Для трафика выделяются участки полосы пропускания (10 Мбит/с шириной) по приоритетам, определяемым по IP-адресу или типу используемого приложения. Аппаратная часть комплекса имеет два порта Ethernet и устанавливается между концентратором и маршрутизатором. Программная часть управляет пропускной способностью TCP-соединения по заголовкам пакетов без прерывания сеанса связи; а также контролирует уровни сервиса с возможностью регулировать скорость соединения и предотвращать перегрузку сети. Управление этим комплексом осуществляется через обычный браузер - Netscape Navigator или Microsoft Internet Explorer.

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

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

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

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

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

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

44