По китайскому календарю 2002 год — Год Лошади, а по календарю ИТ, если бы таковой был, он, скорее всего, оказался бы Годом Информационной Безопасности. Эта проблематика после нью-йоркской трагедии привлекает к себе особое внимание; даже Билл Гейтс заговорил о необходимости создания безопасных программ, активно обсуждаются проблемы уязвимости в протоколе Simple Network Time Protocol и многое другое. Обострившееся внимание к проблемам безопасности, вне всякого сомнения, исключительно важно, но все же изрядно напоминает недавнюю суету вокруг проблемы Y2K, на поверку оказавшейся все же преувеличенной, прежде всего, из-за откровенного стремления производителей стимулировать спрос. Нельзя отрицать и того, что нынешние разговоры о безопасности тоже отдают стремлением как-то стимулировать стагнирующий ИТ-рынок. Одним из наиболее ярких событий Года Безопасности оказалось появление «нерушимых» продуктов Oracle.
На конференции Oracle World 2002 слово unbreakable, введенное в оборот год назад Ларри Эллисоном получило второе рождение. Оно вновь широко использовалось, но теперь уже в приложении к надежным кластерным конфигурациям, поддерживаемым другим программным продуктом Oracle, Real Application Cluster.

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

Осенью 2001 года, непосредственно после событий 11 сентября, в логотипе Oracle появилось слово unbreakable (среди множества версий перевода наиболее точны «нерушимый» и «несокрушимый»). Дебют состоялся на Comdex 2001, когда Ларри Эллисон самолично ввел его в оборот. Он представил СУБД и сервер приложений Oracle 9i несокрушимыми с точки зрения информационной безопасности. Заявление поддержала мощная рекламная кампания, привлекшая даже кинозвезд и стоившая десятки миллионов долларов.

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

Самым аргументированным поводом для обвинений в несостоятельности утверждений о несокрушимости оказались исследования англичанина Дэвида Литчфилда, основателя и ведущего специалиста компании NGSSoftware Insight Security Research. Его труд «Hackproofing Oracle Application Server, A Guide to Securing Oracle 9» сегодня еще можно (правда, почему-то с некоторым трудом) найти по адресу www.nextgenss.com/papers. Вообще говоря, с судьбой этого документа и самой компании NGSSoftware связаны какие-то неясности. Почему в нем самом указана дата публикации «10 января 2002 года», а разговоры о его содержании начались задолго до того? Почему сайт www.ngssoftware.com, на который часто ссылаются, сегодня недоступен? Как бы то ни было, свою провоцирующую роль Литчфилд сыграл, и в конце прошлого года разыгралась настоящая буря в средствах массовой информации.

На нее в Oracle должны были отреагировать. Прежде всего, как принято, «сменили тренера». В декабре на должность директора по безопасности (chief security officer) была назначена Мэри Дэвидсон. Свои публичные оправдания она начала с интервью в Business Week, в котором признала, что назвать продукт Unbreakable предложил сам Эллисон. Эта идея не получила поддержки у специалистов из группы серверных технологий, где она тогда работала, однако по понятным причинам оказалась принятой к исполнению. Постфактум Дэвидсон признала: назвать так свой продукт — все равно что привязать на нем и на корпоративных межсетевых экранах красные тряпки перед толпой разъяренных быков, имея в виду хакерское сообщество.

Теперь она дает слову «нерушимый» следующую трактовку: «Представляя продукт как ?Unbreakable?, мы считаем, что если он и будет взломан, то это не приведет ни к каким катастрофическим последствиям. Нерушимость в этом смысле есть шанс для пользователей на выживание».

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

Затем состоялась любопытная переписка между Томасом Грином, американским автором английского электронного издания The Register и той же Дэвидсон. В своей статье, опубликованной в конце февраля на сайте www.register.co.uk, Грин предъявляет претензии в том, что ее продукты имеют врожденные дефекты, что Oracle замалчивает информацию, не достаточно оперативно обеспечивает «заплатами» пользователей. В ответе, датированном 5 марта, Дэвидсон по пунктам опровергает обвинения, делая это настолько убедительно, что Грин в своих комментариях это признает.

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

Рис. 1. Архитектура сайта Oracle

В чем Литчфилд «уличил» Oracle

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

Архитектура сайта Oracle обычно состоит из защитного экрана, Web-сервера и сервера баз данных. На Web-сервере работают заказные или собственные программные компоненты, а также приложения, работу которых поддерживает Oracle Application Server. Это могут быть приложения PL/SQL, JSP, XSQL, Java-сервлеты, приложения, использующие SOAP, или какие-то другие, например perl, fastcgi или еще что-то. Получив клиентский запрос, Web-сервер обеспечивает его диспетчеризацию, обращение к серверу баз данных и т.д. Взаимосвязь между серверами обеспечивает модуль Listener, играющий важную роль при выполнении внешних процедур (Extproc). Oracle выпускает собственный Web-сервер Oracle Web Listener, но как альтернативу допускает использование более популярного программного обеспечения Apache. Хотя и тот и другой имеют определенные проблемы безопасности, по умолчанию с Oracle Application Server поставляется Apache. Эта архитектурная схема служит основой для анализа уязвимостей.

Наибольшее число уязвимостей, обнаруженных Литчфилдом, связано с реализацией языка PL/SQL:

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

В OracleJSP имеются уязвимости, связанные с возможностью доступа анонимного пользователя к исходным файлам .java, содержащим бизнес-логику или идентификаторы пользователей и пароли. Есть также уязвимости в XSQL и SOAP. В Oracle Application Server есть места, таящие в себе опасность, возможны переполнения буферов Listener, отдельные ошибки в EXTPROC, кроме того, есть список из 160 пользовательских идентификаторов и паролей, которые можно использовать по умолчанию.

Более полное перечисление всех уязвимостей Oracle Application Server и Oracle Database можно найти в публикации координационного центра по безопасности в Сети CERT Coordination Center (CERT/CC); она сделана на основании работы Литчфилда и датирована серединой марта. По мнению экспертов CERT, обнаруженные уязвимости могут вести к выполнению произвольных команд, отказу в обслуживании и возможности неавторизованного доступа к существенно важной информации. Здесь же приведены все соответствующие «заплаты». Соблюдая корректность, до публикации Литчфилд передал результаты своих изысканий в Oracle, где были сделаны все необходимые исправления.

Технология разработки — основа нерушимости

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

  • Электронный бизнес устраняет посредническую прослойку между пользователями и информацией, прежде состоявшую из служащих. Этот процесс сегодня называют disintermediation, что буквально означает удаление посредника. В традиционном офисе многие элементы безопасности строились просто исходя из здравого смысла, теперь же они должны быть формально определены.
  • Объем доступных пользователю данных становится больше, они помогают проникать в них глубже, дает увидеть полную картину бизнеса. Для этого процесса используют термин streamlining information, который можно перевести в данном случае как упрощение, модернизация или рационализация.
  • Пользовательское сообщество стремительно растет количественно, порождая проблемы масштабирования и управления.
  • Пользовательское сообщество изменяется качественно, появляются новые категории пользователей. Как следствие возникает задача обеспечения разделения доступа к одним и тем же аппаратным и программным ресурсам или согласования действий подмножеств пользователей с разными интересами (communities of interest).

Oracle, один из ведущих поставщиков программного обеспечения для корпоративного рынка, постаралась быть во главе нового движения, возникшего в ответ на эти требования. И после неудачного старта маркетинговой кампании по продвижению идей нерушимости ей нужно было прояснить свою позицию. Поэтому в начале 2002 года компания опубликовала два документа: «Unbreakable: Oracle?s Commitment to Security» и «Oracle 9i Data Base Security for E-Business». В них она исчерпывающе представляет свои взгляды на обеспечение информационной безопасности. Первый из документов начинается и заканчивается словами: «Маркетинговые кампании приходят и уходят. Unbreakable — это совокупность наших взглядов на безопасность и обязательств перед потребителями вчера, сегодня и завтра». В ней даются (может быть, излишне пространные) ответы на вопросы о том, что такое нерушимость и зачем она нужна, проводятся параллели между физической безопасностью и атаками террористов с одной стороны и информационной безопасностью и атаками кибертеррористов — с другой.

Независимо от природы системы, будь то механическая, электрическая или информационная, существуют две полярные идеологии обеспечения надежности. Одна из них состоит в том, чтобы навешивать на малонадежную систему опции, повышающие ее надежность. Вторая — в том, чтобы строить всесторонне надежные системы, обладающие конструктивной надежностью. Для подготовки спортивной версии автомобиля можно взять стандартные «Жигули», снабдить их более надежными агрегатами, установить дуги безопасности, надеть на гонщика шлем, но по интегральной безопасности такой автомобиль никак нельзя сравнивать с продукцией лидеров автомобильного рынка. Преимущества второго подхода всем понятны, но не всем он доступен: индустрия программного обеспечения в целом еще не вышла на должный инженерный уровень. Oracle же, обладая огромным опытом и инженерным потенциалом, вполне может ее исповедовать. Не стоит забывать и о финансовых возможностях. Oracle инвестировала в работы по безопасности порядка 1 млрд. долл. Компания идет теми же самыми путями, как традиционные инженерные отрасли (например, машиностроение, авиастроение): сертификация надежности со стороны авторитетных независимых организаций и создание изделий, в которых требования безопасности закладываются в технологию проектирования с первого эскизного проекта. Для тех, кто хоть немного знаком с классической инженерией, это звучит почти банально.

Следует учесть особенность нынешнего момента, которая заключается в чрезвычайно быстрой смене парка программных продуктов. Стимулом к этому стало проникновение Web-технологий (webification) всей сферы современного бизнеса. С калейдоскопической скоростью появляются новые продукты, обновляются и насыщаются новыми функциями старые, в большинстве своем не проходя должной проверки временем. В результате складывается парадоксальная ситуация: внешние условия требуют повышения надежности, но рынок заполняют продукты-скороспелки. Выходом из этой ситуации является сертификация продуктов сторонними организациями. Это, с одной стороны, служит проверкой на соответствие требованиям, а с другой — признаком стабильности свойств продукта. Oracle уделяет большое значение сертификации своих продуктов. Например, по количеству сертификатов (TCSEC, ITSEC, ГОСТ Р, FIPS) Oracle опережает других производителей. Процесс сертификации продолжается уже несколько лет. Как следствие, компании удалось отработать необходимую технологию разработки и выработать необходимую корпоративную культуру безопасности.

Технология проектирования, являющаяся отражением уровня инженерной культуры, включает в себя управление жизненным циклом безопасности (Secure Product Lifecycle). И в этой части можно провести параллель с традиционной инженерией надежных изделий. Известно, что каждая инженерная школа, складывающаяся годами, обладает своими особенностями. Так школа проектирования безопасных пассажирских самолетов принципиально отличается от проектирования военных летательных аппаратов. КБ, проектировавшее истребители, не будет проектировать пассажирский самолет. Опора на собственную школу проектирования отличает «фирменное» изделие от кустарного. В Oracle считают, что компании удалось создать именно такую школу безопасного проектирования программных продуктов. Процесс безопасного проектирования состоит из следующих пяти составляющих.

  • Кодирование в соответствии со стандартами безопасности. Внутренний стандарт для создания текстов программ, которому должны следовать все разработчики, называется "С". Следование этому стандарту позволяет использовать готовые приемы, в частности, централизованные функции безопасности. Например, для того, чтобы включить в программу криптографические средства, программисту нет необходимости быть специалистом в этом вопросе. Кроме того, внутренний стандарт позволяет создавать эффективные продукты.
  • Использование стандартных шаблонов. В компании имеется стандартизованные шаблоны спецификаций для описания функциональности, проекта и тестов.
  • Регрессионное тестирование. В процессе развития любого продукта расширяется его функциональность и в этих условиях необходимо проверять соответствие модернизированного продукта исходным требованиям.
  • Централизация работ по безопасности. В компании имеются специальные группы, общие библиотеки средств и алгоритмов криптографии.
  • Формальная оценка свойств безопасности и сертификация новых продуктов. Помимо тех сертификатов, о которых шла речь выше, в этом году Oracle9i Database Server и Oracle9i Label Security Release 2 будут проверены на соответствие Common Criteria EAL4, а Oracle9i Application Server Release 2 - FIPS-140.

Механизмы защиты данных

Обеспечением безопасности данных в продуктах Oracle заняты десятки различных механизмов. Вот некоторые из них.

Виртуальные частные базы. Для защиты данных в СУБД Oracle существует несколько механизмов, в том числе виртуальные частные базы Virtual Private Database (VDB), деюбютировавшие еще в версии 8i, а также появившийся в Oracle 9i компонент Label Security, плюс к тому селективная криптозащита и развитый аудит.

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

В Oracle 9i в VDB появился ряд новых возможностей.

  • Для назначения политики предназначен Oracle Policy Manager. Это удобное средство с развитым графическим интерфейсом, доступ к нему осуществляется через Oracle Enterprise Manager. (Oracle Policy Manager используется и для управления механизмом Oracle Label Security, о котором речь пойдет ниже.)
  • Деление VDB на разделы может осуществляться не только по отношению к пользователям, но и по отношению к приложениям (partitioned fine-grained access), этот механизм существенно упрощает процесс разработки приложений, поскольку не требует согласованности действий отдельных групп разработчиков.
  • Global Application Context упрощает разработчикам регламентацию доступа к данным со стороны пользователей или приложений. Оно позволяет разделить пользователей или приложения на определенные, наперед заданные уровни и сообщить эти уровни приложению, к которому они обращаются.
  • Для обеспечения централизованного контроля (External Application Context) в Oracle 9i поддерживается управление пользователями в каталоге Oracle Internet Directory, построенном на основе LDAP.
  • Самое последнее нововведение, появившееся в Oracle9i/R2 - Virtual Private Database Support for Synonyms, позволяющее поддерживать необходимые для маскирования объектов синонимы.

Oracle9i Label Security. Новым компонентом СУБД стал механизм Oracle9i Label Security, расширяющий возможности VDB. Он настолько естественен по своему смыслу и прост в использовании, что его называют «решением из коробки» (out-of-box). Как следует из названия, Oracle9i Label Security позволяет присваивать информационным объектам метки и обеспечивает доступ к ним в соответствии с полномочиями. Метки имеют составную организацию, состоящую из трех частей:

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

Selective Data Encryption. Начиная с Oracle7, поддерживается селективное шифрование данных Selective Data Encryption. В основном предполагается шифрование критически важной информации, такой, например, как номера кредитных карт, национальные идентификационные номера, пароли. Начиная с версии 9i, появилась возможность для хранения зашифрованных и расшифрованных данных. Пакет, предназначенный для этого, поддерживает алгоритмы криптографии Data Encryption Standard, криптографический хэш MD5 и сертифицированный по стандарту Federal Information Processing Standard (FIPS) генератор ключей.

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

Кроме этих средств Oracle 9i включает ряд механизмов безопасности, которые можно разделить на две группы. В первую входит целый ряд «интернетовских» механизмов, в том числе прокси-аутентификацию, поддерживающую стандарты SSL, инфраструктуру открытых ключей и JDBS Security. Во вторую — механизмы, относящиеся к внутри корпоративному использованию Enterprise User Security.

Заключение

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