При построении grid-систем приходится решать весьма непростые задачи, связанные с организацией защиты. Что же делается сейчас и что еще необходимо сделать для обеспечения безопасности grid-систем?

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

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

В grid-среде стороны формируют виртуальные организации динамически. Доверительные отношения, установленные до начала такого сотрудничества, как правило, складываются на уровне компаний, а не отдельных лиц [1]. Таким образом, зачастую задать ограничивающие правила на индивидуальной основе (между конкретными пользователями) оказывается крайне сложно. Кроме того, обычно в одной транзакции задействуются несколько узлов grid, причем происходит это динамически и непредсказуемо. Наконец, в отличие от Internet, grid предоставляет внешним для организации пользователям полный доступ к ресурсам, увеличивая риск нарушений защиты.

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

Основные требования к защите

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

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

Специфические задачи защиты grid

Grid-системы первого поколения создавались преимущественно доверяющими друг другу административными единицами — исследовательскими лабораториями и академическими институтами. Globus Alliance (международный консорциум исследователей grid) вместе с другими научными и коммерческими организациями разработал Open Grid Services Architecture (OGSA). Эта архитектура определяет поведение и механизмы для создания, именования и обнаружения служб grid на постоянной основе.

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

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

Идентификационные данные

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

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

Что касается объединений, включающих в себя множество организаций, установить между последними доверительные отношения весьма непросто. Зачастую такие виртуальные организации предпочитают реализовывать доверительные отношения через центральный сервер удостоверений, такой как Community Authorization Service (CAS) [2].

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

Многообразие

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

Распределенная платформа

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

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

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

Чтобы обеспечить отказоустойчивость и приемлемую производительность, grid зачастую тиражирует данные между различными узлами ресурсов. Кроме того, во время работы служба или процесс могут переноситься с одного ресурса grid на другой. Однако, традиционные правила контроля доступа применяются к ресурсу, содержащему данные, а не к самим данным. Снять остроту этой проблемы помогает использование OGSA для виртуализации ресурсов и данных в службах [3]. Вместе с данными приложений grid может тиражировать между узлами и сами правила. В силу вышесказанного, для обеспечения высокого уровня защиты grid необходима синхронизация данных в режиме реального времени.

Конечные пользователи

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

Сейчас большинство сессий в grid используют кратковременные мандаты, созданные на основе постоянных мандатов пользователей. Интерактивное хранилище мандатов MyProxy может содержать мандаты пользователей и предоставлять по мере необходимости мандаты с меньшим сроком действия [4]. При длительной или запланированной на более позднее время работе задачи порой выполняются от имени пользователя еще долгое время после его выхода из системы, а краткосрочный мандат может потребовать обновления. В таких случаях пользователь может передать субъектам право запросить обновленный сертификат у MyProxy.

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

Ресурсы

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

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

Динамическая природа доверительных отношений grid также влияет на защиту ресурсов. Например, в конце любого конкретного взаимодействия организации-участники должны иметь возможность закрыть доступ, чтобы предотвратить нелегитимное обращение к своим ресурсам. Изменения в информации, необходимой для аутентификации и определении прав доступа, следует распространять на все соответствующие субъекты в grid. Список отозванных сертификатов, такой как используемый в PKI, для этого, очевидно, не подходит. Отзывы сертификатов должны выполняться в режиме реального времени [4].

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

Стандарты и технологии защиты grid

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

Инфраструктура защиты grid

Самые современные grid-структуры используют Grid Security Infrastructure [5]. Инструментарий GSI, созданный в рамках проекта Globus, выполняет защищенную аутентификацию и устанавливает каналы связи с помощью PKI. Основу этой системы составляют мандаты, выдаваемые субъектам grid. Система идентифицирует каждого пользователя и службу в grid с помощью стандартного сертификата X.509, содержащего информацию о потребителе или сервисе. Она, как правило, сопровождается подписью независимого CA, подтверждающего идентификационную информацию субъекта.

В GSI используется SSL/TLS для взаимной аутентификации субъектов. Обе стороны обмениваются своими сертификатами, и когда каждая из них определяет, что сертификат другой стороны подписан пользующимся доверием CA, они устанавливают аутентифицированный сеанс.

Кроме того, в GSI учитывается гетерогенность локальных доменов за счет реализации всех алгоритмов защиты в терминах стандарта Generic Security Services (GSS). Он определяет API, предоставляющий абонентам стандартный интерфейс для защищенных служб. GSI дает пользователям grid возможность единой регистрации и делегирования полномочий. В сеансе grid используется краткосрочный сертификат (так называемый «посредник» — proxy), заверенный пользовательским сертификатом.

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

Защита на уровне сообщений

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

WS-Security

IBM, Microsoft и VeriSign передали на утверждение в OASIS (Organization for the Advancement of Structured Information Standards) спецификацию защиты Web-сервисов, получившую название WS-Security. Она предлагает платформу передачи сообщений SOAP, служащую для интеграции и поддержки существующих моделей защиты, и набор расширений для SOAP, которые обеспечивают целостность данных и конфиденциальность [6]. Расширение для заголовка сообщений SOAP обеспечивает стандартный, не зависящий от платформы и языка механизм обмена защищенными заверенными сообщениями.

Security Assertion Markup Language

Когда организации совместно используют ресурсы, им необходим общий язык, с помощью которого субъекты grid могут обмениваться информацией о защите. Security Assertion Markup Language (SAML), утвержденный OASIS в качестве стандарта, определяет язык и протокол для обмена данными об аутентификации и предоставлении прав доступа. Утверждения SAML содержат информацию об аутентификационных ссылках, решения о правах доступа и атрибутах, связанных с указанным субъектом.

Правила SAML могут размещаться во внешних хранилищах правил, благодаря чему виртуальной организации будет проще использовать разнообразные правила, используемые в локальных доменах. SAML определяет интерфейс протокола запросов/ответов, который позволяет клиентам запрашивать утверждения у уполномоченных SAML. Этот протокол, состоящий из форматов сообщений на базе XML, можно легко связать со многими базовыми коммуникациями и транспортными протоколами. Сейчас SAML определяет лишь одну связь — к SOAP через HTTP. Кроме того, временные метки, устанавливаемые для запросов и утверждений SAML, позволяют администраторам grid связывать временные ограничения с состоянием виртуальной организации и пользовательскими атрибутами. Тем самым отражается динамический характер формирования доверительных отношений в средах grid.

Extensible Access Control Markup Language

Согласованное представление правил доступа на различных ресурсах является основой реализации защиты. Стандарт Extensible Access Control Markup Language, утвержденный OASIS, определяет базовую схему для выражения правил предоставления прав доступа в формате XML для различных устройств и приложений. Эта схема определяет элементы, требуемые для формулировки правил контроля за доступом, а также предоставляет язык запросов/ответов для передачи запросов и решений. Кроме того, XACML позволяет использовать различные традиционные алгоритмы объединения правил для принятия решений о выборе политики и для объединения правил (возможно, получаемых из разных источников) в единый набор.

Защита grid следующего поколения

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

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

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

Протоколы защиты grid

Ненадежность архитектуры защиты часто является следствием неспособности разработчиков grid координировать требования к обеспечению безопасности как часть всей системной архитектуры. Стандартные процедуры разработки grid-приложений и платформ должны включать в себя защиту как неотъемлемый компонент более общего процесса проектирования, в частности, потому, что при создании защиты grid возникают действительно уникальные проблемы. Например, такое понятие, как «нарушение контракта», имеет разные значения с точки зрения различных участников grid. Даже общепринятые термины (скажем, «член группы» — insider), можно интерпретировать по-разному. Член группы для одного узла grid может не являться таковым для удаленного ресурса, к которому он пытается обратиться.

Протоколы защиты grid должны обеспечивать интероперабельность, поддерживая при этом различные локальные домены. Сейчас установление доверительных отношений и инициация совместной работы предполагают значительную трату времени и сил. Чтобы обеспечить эффективную совместную работу в среде grid, потребуются автоматические протоколы для формирования динамических grid и правил доступа в режиме реального времени. И службам, и клиентам необходима возможность устанавливать соглашения об уровне обслуживания (service level agreement, SLA), предусматривающие поддержку определенных параметров защиты и тем самым позволяющие повысить уровень достоверности информации.

Мониторинг и оценка достоверности информации

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

Усовершенствованные методологии

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

Экономика и законы grid

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

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

Литература
  1. I. Foster, C. Kesselman, S. Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations. International Journal of Supercomputer Applications, vol. 15, no. 3, 2001.
  2. L. Pearlman et al. A Community Authorization Service for Group Collaboration. Proc. IEEE 3rd Int'l Workshop on Policies for Distributed Systems and Networks, IEEE CS Press, 2002.
  3. I. Foster et al. The Physiology of the Grid: An Open Grid Service Architecture for Distributed Systems Integration, 2.9 [draft]. Open Grid Services Architecture Working Group, Global Grid Forum, June 2002.
  4. J. Novotny, S. Tuecke, V. Welch. An Online Credential Repository for the Grid: MyProxy. Proc. Tenth Int'l Symp. High-Performance Distributed Computing, IEEE Press, 2001.
  5. I. Foster et al. A Security Architecture for Computational Grids. Proc. Fifth ACM Computer and Communications Security Conf., ACM Press, 1998.
  6. N. Nagaratnam et al. The Security Architecture for Open Grid Services, 2.9 [draft version 1]. Open Grid Services Security Architecture Working Group, Global Grid Forum, July 2002.

Лавения Рамакришнан (lavanya@cnidr.org) — научный сотрудник института MCNC Research and Development Institute.


Lavanya Ramakrishnan. Securing Next-Generation Grids. IEEE IT Pro, March — April 2004. IEEE Computer Society, 2004, All rights reserved. Reprinted with permission.


WS-Security: предварительные спецификации

СпецификацияЦель
WS-PolicyОпределяет способы описания разрешенных действий и ограничений политики защиты
WS-TrustПредоставляет модель для организации доверительных отношений, как прямых, так и с участием посредника
WS-PrivacyОписывает подробности внедрения и применения средств обеспечения конфиденциальности в контексте Web-сервисов
WS-SecureОписывает методы обмена защищенными сообщениями, передачи защитного контекста, а также способы установки и получения сеансовых ключей
WS-FederationОтносится к вопросам управления и посредничества при организации доверительных отношений в гетерогенной распределенной среде
WS-AuthorizationСтандартизует данные предоставления прав доступа и управление политикой для Web-сервисов

Поделитесь материалом с коллегами и друзьями