Научная статья на тему 'Обеспечение информационной безопасности Интернет- ориентированных программных продуктов'

Обеспечение информационной безопасности Интернет- ориентированных программных продуктов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
114
15
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Черноусова Елена Сергеевна, Массель Людмила Васильевна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Черноусова Елена Сергеевна, Массель Людмила Васильевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Обеспечение информационной безопасности Интернет- ориентированных программных продуктов»

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

Библиографический список

1. Опарин ГА, Феоктистов А.Г, Основанная на знаниях визуальная технология решения вычислительных задач II Оптимизация, управление, интеллект. - Иркутск: ИДСТУ СО РАН, 2000, - №5(1). - С. 157-166.

2, Опарин Г.А., Феоктистов А.Г, Графическая модель проблемной области в инструментальной САТУРН-среде II Интеллектуальные системы: Трудов IV межд, симпозиума (ИНТЕЛС'2000) / Под ред, К.А.Пупкова, - М.: РУСАКИ, 2000. -С. 179-181.

3. Васильев С.Н., Опарин ГА, Феоктистов А,Г., Сидоров И.А, Интеллектуализация инструментальных средств организации распределенных систем модульного программирования II Оптимизация, управление, интеллект. - Иркутск: ИДСТУ СО РАН, 2005. - №10 (1),

4, Хлебцевич Г.Е., Цыганкова С.В, Визуальный стиль программирования: понятия и возможности, - //' Программирование,- 1990,- №4. - С,68-79.

5. Опарин Г.А,, Феоктистов А,Г. Инструментальная распределенная вычислительная САТУРН-среда // Программные продукты и системы, - 2002. - №2. - С, 27-30.

6, Опарин Г.А., Феоктистов А.Г. Технология разработки распределенных пакетов знаний II Проблемы управления и

моделирования в сложных системах: Труды III межд, конф, -Самара: Самарский научный центр РАН, 2001. - С. 496-502.

7, Опарин ГА, Феоктистов А.Г,, Новопашин А.П., Богданова В.Г, Распределенный решатель булевых уравнений большой размерности: методы и средства управления вычислениями /I Проблемы управления и моделирования в сложных системах: Труды VII межд. конф, (июнь-июль 2005 г., Самара) - Самара: Самарский научный центр РАН, 2005. - С, 113-116,

8, OPNET Modeler, Network Modellng and Simulation Envlronmení - OPNET Technologies, Inc. http://www, opnet.com/products/modeler/home.html

9, QualNet Parallel Developer - Scalable Network Technologies Inc., http://www.scalable-networks.com/products/parallel_simulator.php

10, Vantage Predictor, Complete WAN provisioning and growth management - Compuware Corp,, http://www.compuware.com/products/vantage/predictor.htm

11, Вишневский B.M. Теоретические основы проектирования компьютерных сетей, - М.: Техносфера, 2003. - 512с,

12, Minuteman Software GPSS World for Windows, -http://www.minutemansoftware.com.

13, Опарин Г.А., Феоктистов А,Г, Имитационное моделирование процессов функционирования распределенных пакетов знаний II Идентификация систем и задачи управления: Труды IV Межд, конф, (SICPRO'2005). - М,: ИПУ РАН, 2005. -С.1139-1144. - Электрон, Опт, диск (CD ROM), - ISBN 5-201-14975-8,

Е.С.Черноусова, Л.В.Массель

Обеспечение информационной безопасности Интернет-ориентированных программных продуктов

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

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

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

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

сложные и требующие больших затрат с точки зрения установки и эксплуатации, более быстрыми, отвечающими требованиям бизнеса и более эффективные с экономической точки зрения [4]. На данный момент существ ряд коммерческих проектов, выполненных с помощью SOA - продукты компании «Диасофт», Sonic Software Corp. и т.д.

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

Концепция Web-сервисов, являющаяся практической реализацией SO А, закладывались в 1999 году, В современном мире эта технология применяется (и может стать доминирующей) для построения сложных систем автоматизации продаж, обслуживания клиентов и т.д., в том числе и для реализации отдельных бизнес-процессов в различных отраслях. Корпорацией IBM даже созданы наборы специальных шаблонов, описывающих применение Web-сервисов в конкретных бизнес-ситуациях. Лидеры ИТ-индустрии (IBM, Microsoft, SUN Microsystems, BEA) активно занимаются стандартизацией в области разработки и применения Web-сервисов, а также методологиями разработки и развертывания ИС на основе Web-сервисов [6],

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

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

■ Рассмотрение информационной безопасности собственно самой информационной системы, в которой используются Web-сервисы - взаимодействие клиента (потребителя сервиса), реестра сервисов и сервиса, При этом не рассматриватся проблема обеспечения аппаратной отказоустойчивости как ИС, так и Web-сервиса.

■ Информационная безопасность самого Web-сервиса как программного продукта (ПП),

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

В настоящее время ведется активная работа по созданию и вопросам использования стандартов, которые обеспечивали бы необходимый уровень защиты. Примером такого стандарта является WS-Security, в котором описываются возможности аутентификации, авторизации и управления доступом для Web-сервисов, а также развивающиеся WS-SecureConversa-tion, WS-Federation, WS-Authori-zation, WS-Trust и WS-Privacy,

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

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

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

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

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

С точки зрения недобросовестных разработчиков, процедуры обеспечения ИБ могут быть удалены из процесса разработки ПО из-за желания снизить затраты на разработку ПП. Однако в большинстве случаев это следствие отсутствия необходимой квалификации для реализации и последующего тестирования безопасности модулей приложения [9]. Например, для того, чтобы обеспечить защиту \А/еЬ-сервиса от незаконного копирования, необходимо разрешить ряд задач: использовать системы обеспечения ИБ, устанавливаемые на уже скомпилированные модули или встраивать их в исходный код, использовать логические механизмы или шифрование, использовать привязку к носителям или электронные ключи и т.д. Для решения этих задач необходимо провести комплексный анализ с точки зрения экономических, организационных и др. критериев, а также оценить положительные и отрицательные стороны выбранных средств защиты, что требует обязательного присутствия и консультирования специалистом, которых явно недостаточно [10],

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

Тестирования ИС целиком - это сложный процесс, который должен учитывать распределенные компоненты системы. Когда происходит тестирование системы и возникает ошибка, всегда сложно точно указать, в каком из элементов она возник/л. Так, если клиентом для У/еЬ-сервиса является У/еЬ-приложение, получая сообщение «Страница не может быть доставлена», нельзя точно утверждать, в каком элементе системы возникла ошибка - ошибка при выполнении самого \А/еЬ-сервиса, ошибка удаленного подключения, ошибка баз данных и т.д., поэтому для выяснения ситуации проводятся дополнительные тесты. Тестирование осложняется тем, что ИС работает на базе различного программного и аппаратного обеспечения и протестировать все возможные комбинации окружающей среды для одного тестового случая становится невозможным.

Для тестирования \Л/еЬ-сервиса наибольшее значение приобретает тестирование надежности, как основного свойства безопасности. Например, это тестирование параллельного исполнения программ.

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

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

Наиболее полным тестированием на защищенность можно признать экспертизу исходных кодов сервиса [12].

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

В то же время даже при проведении всеобъемлющего тестирования невозможно обеспечить гарантированную защищенность и безопасность ИС с У/еЬ-сервисами. Необходимо применять комплекс мер, в том числе нормативно-правовые, административно-организационные, морально-этические, физические, программно-технические, экономические, Разработчик, проектируя и разрабатывая системы, использующие У/еЬ-сервисы, не всегда может проконтролировать применение вышесказанных мер при эксплуатации ИС, но может существенно повлиять на величину ущерба, который может быть нанесен пользователю, самому разработчику или другому лицу при инциденте информационной безопасности [13].

Проблемы защищенности и безопасности, как правило, возникают при появлении ошибки. Любая

ошибка, возникающая при работе Web-сервиса - это уязвимость для системы в целом. Таким образом, роль разработчика или другого лица при формировании блоков безопасности в ИС сводится не к обеспечению гарантированной защищенности, а к средствам затруднения взлома путем исключения 99,9% возможных ошибок. Такого результата можно добиться путем комплексного тестирования - функционального, модульного, тестирования производительности, устойчивости и т.д., а также путем увеличения качества программирования. Применение методик создания качественного кода приводит к уменьшению числа ошибок, улучшению читабельности кода, что естественным образом повышает его гибкость, свойства модифицируемости, а также снижает вероятность внесения дефектов при внесении изменений [14].

К сожалению, бурное развитие отрасли информационных технологий привело к тому, что программированием зачастую занимаются люди, не имеющие культуры программирования и плохо представляющие, что такое качественный код, что существенно затрудняет наследование и создание новых ПП. Следует учитывать, что существуют специфические особенности реализации Web - сервисов (и не только) на разных языках программирования, что приводит к тому, что человек, работающий и использующий семейство продуктов Sun MicroSystems - Java, не сможет также качественно реализовать (и за то же время) сервис с помощью Object Pascal. Специфические особенности разных языков программирования и компиляторов приводят к тому, что, реализуя ПП на разных языках с помощью одних и тех же конструкций, можно получить или безопасный ПП, или потенциальную уязвимость для вашей ИС. Существуют ошибки, характерные как для отдельных языков программирования и потенциально опасные для использования (например, операции с нулевыми строками в С), так и ошибки, не зависящие от языка (переполнение буфера) программирования. Подводя итог вышесказанному, можно сделать вывод, что при реализации Web-сервиса необходимо выбирать такой язык программирования, который не только отвечает требованиям и знаниям разработчика, но и требованиям безопасности.

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

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

Каждый \/\/еЬ-сервис начинает свою работы при получении некоторых параметров, в соответствии с которыми он выполняет работу. Следовательно, от того, насколько корректны и правильны будут эти параметры, будет зависеть работа сервиса. Таким образом, можно сделать вывод, что обязательной процедурой является предварительная проверка на корректность всех параметров, переданных сервису. Однако могут возникнуть ситуации, в которых сервис должен принимать пустое значение параметра.

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

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

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

■ Применение современных единых стандартов и технологий для обмена данными для ИС с УУеЬ-сервисами.

» Создание и обеспечения необходимого и безопасного окружения для работы Web-сервисов в ИС.

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

■ Создание и встраивание собственных средств защиты для компонентов ПО.

■ Использование специальных методов, алгоритмов и средств для тестирования и сертификации безопасности ПО.

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

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

Библиографический список

1. Шевель А. Технология GRID II Открытые системы, -2001, - №, 2. - С,12-17.

2. Дубова Н, SOA; подходы к реализации //Открытые системы. - 2004, - №. 6, - С,19-25,

3. Ворожцова Т.Н., Скрипкин С.К., Черноусое А,В, Grid-проекты: обзоры состояния и перспективы / Под ред, ЛВ.Массель, ИСЭМ Препринт №2006,- 41с,

4. SOA (сервис-ориентированная архитектура) // http://unitspace.ru/main/soa.htm

5. Массель ЛВ, Методы и технологии создания ИТ -инфраструктуры научных исследований//Информационные и метематические технологии в науке, технике и образовании. -2005. - Ч. 1. - С.57,

6. Долотин И, Web-сервисы - миф или реаль-HOCTb?//http;//www,ubs.ru/ws/ ws_myphorreal.html

7. Алексей Куваев Время SOA еще не пришло II http://www.cnews.ru/ newcom/' index,shtml?2005/02/04/l74034

8. Полаженко С. Вариант определения понятий защищённости и безопасности программных продуктов II http://www. software-testing.ru/lib/polazhenko/security-definitions, htm

9. Лукацкий А, Размышления о Web-студиях и защищенном сайте II http://www.bytemag.ru/9ID=603203

10. Середа С,А, Оценка эффективности систем защиты программного обеспечения II http://citforum.ru/security/ software/ seredal I

11. Полаженко С, Деревья атак и их применение при анализе проблемы безопасности и защищённости программных продуктов ¡1 http://www.software-testing.ru/lib/polazhenko/attack-trees-security-testing.htm

12. Полаженко С, Экспертиза исходных текстов, как метод тестирования безопасности и защищённости программных продуктов II http://software-testing.ru/lib/polazhenko/codereview-in-security-testing.htm

13. Полаженко С. Актуальность вопросов тестирования безопасности и защищённости программных продуктов II http://www.software-testinq.ru/lib/polazhenko/security-testing-actuality.htm

14. Макконел С, Совершенный код, Мастер-класс, -М,:Издательско-торговый дом «Русская редакция». - СПб,: Питер, 2005,-896 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.