(Возврат на основную страницу)
В очередном квартальном обновлении (http://news.zdnet.com/21001009_225317165.html?tag=nl), разосланном компанией Oracle, содержатся исправления ошибок (http://news.zdnet.com/21001009_225900784.html?tag=nl). Тем не менее, целый ряд брешей в системе безопасности не устранен. Известный специалист в области безопасности Дэвид Личфилд (David Litchfield) призывает компанию сменить подходы в области исправления ошибок и даже требует отставки руководителя соответствующего подразделения.
«Это было последней каплей, — заявил Дэвид Личфилд, исследователь в области компьютерной безопасности и один из основателей базирующейся в Великобритании фирмы Next Generation Security Software. — Я был невероятно шокирован и смущен. Мне кажется, что пользователи программного обеспечения Oracle также должны быть разочарованы. Oracle должна пересмотреть свою философию подхода к вопросам безопасности, пересмотреть само представление о безопасности и ее значении для пользователя».
Oracle испытывает все большее давление со стороны исследователей в области безопасности, которые считают, что компания должна усовершенствовать процесс изготовления и распространения заплаток. После того как Microsoft существенно улучшила область безопасности, фокус внимания сместился в сторону Oracle, продукты которой представляют собой достаточно большую мишень.
Личфилд не одинок в своей критике гиганта программной индустрии. Другие исследователи согласились с ним в том, как быстро Oracle затыкает дыры в безопасности (http://news.zdnet.com/21001009_225795533.html?tag=nl), и поддержали критику качества заплаток, нуждающихся в усовершенствовании, и подхода к их наложению, не исправляющему саму ошибку, а только блокирующему возможность использования примеров кода атак, предоставляемых исследователями.
«Oracle на годы отстала от Microsoft и других компаний в том, что касается вопросов безопасности, — считает Сезар Церрудо (Cesar Cerrudo), руководитель компании Argeniss, предоставляющей услуги в области безопасности. — Мне кажется, что сейчас Oracle ведет себя, как любитель». В Oracle предпочли не комментировать это заявление.
Что же касается Microsoft, ставшей ранее одним из объектов нападок изза ошибок выпускаемого компанией программного обеспечения, теперь корпорация получает похвалы от исследователей и аналитиков за те усилия, которые были предприняты в обеспечении безопасности ее продуктов (http://news.zdnet.com/21001009_225182753.html?tag=nl).
В то же время, хотя Oracle и начинает избегать термина «непробиваемый» (unbreakable) в своей рекламе, компания попрежнему склонна восхвалять надежность своих продуктов. На встрече с журналистами Ларри Эллисон (Larry Ellison) гордо утверждал, что в них нет ошибок. Он, однако, согласился, что проблемы существуют, но только когда пользователи вносят изменения в продукт.
Однако некоторые профессиональные охотники за дырами в безопасности не склонны верить утверждениям представителей Oracle. Личфилд ссылается на факт выпуска заплатки в августе 2004 года, предназначенной для исправления ошибки, о которой он уведомил компанию восемью месяцами ранее. Он утверждает, что исправление фактически не работает. После небольшого изменения атакующего кода ему снова удалось воспроизвести проблему. «Похоже, что вместо исправления ошибки они просто закрыли возможность исполнения атаки определенным образом», — говорит Дэвид.
Личфилд, который внимательно наблюдает за состоянием Oracle в области безопасности (http://news.zdnet.com/21001009_225502538.html?tag=nl), надеялся что компания, наконец, отметит проблему в своем бюллетене, но этому не суждено было сбыться. По его словам, проблема заключается в возможности пользователя с ограниченными правами получить полный доступ к базе данных Oracle.
Не совсем понятно, привели ли обнаруженные ошибки к повреждению или краже данных. Но крупные компании, являющиеся основными пользователями Oracle, редко обсуждают такого рода проблемы на публике.
Своевременные ответы
Сколько должно пройти времени между выявлением проблемы и ее устранением — предмет давних споров между исследователями и поставщиками ПО. Ответ зависит от многих факторов, в числе которых особенности проблемы, широта ее известности и сложность кода, призванного ее исправить.
Обычно исследователи обнаруживают проблему и сообщают о ней поставщику программного обеспечения в рамках принятого в индустрии соглашения, подразумевающего сохранение в тайне информации об ошибке до выпуска заплатки. В ответ их имена указываются в статье, посвященной описанию ошибки и ее исправлению. Часто исследователи подталкивают поставщиков к скорейшему выпуску заплатки, утверждая, что, если они нашли баг, это под силу и злоумышленникам, которые наверняка выпустят червь или иную злонамеренную программу.
В идеале поставщики программного обеспечения вообще не должны сталкиваться с такой ситуацией, как считает Эд Аморозо (Ed Amoroso), главный специалист по вопросам безопасности в AT&T: «Поставляемое на рынок ПО не должно иметь ошибок, а если таковые находятся, их нужно немедленно исправлять».
Некоторые исследователи побуждают поставщиков ПО ускорить выпуск заплаток, устанавливая некоторый срок, после которого они публично заявляют о наличии проблемы. Так, eEye Digital Security, например, считает достаточным срок в 60 дней, как утверждает Стив Манцуик (Steve Manzuik), менеджер продукта по вопросам безопасности. На своем сайте (http://www.eeye.com/html/research/upcoming/index.html) эта компания публикует информацию о проблемах в ПО Microsoft и других компаний. «Только Oracle определенно хуже всех, — говорит Манцуик. — Они тратят по 600 дней на выпуск заплаток. Самое длительное ожидание от Microsoft составило 300 дней».
Александр Корнбраст (Alexander Kornbrust), специализирующийся на вопросах безопасности приложений Oracle, утверждает, что 20 ошибок в продуктах Oracle (http://www.reddatabasesecurity.com/advisory/published_alerts.html), которые он нашел, попрежнему не исправлены. При этом eEye публикует только семь ошибок в ПО Microsoft. Корнбраст (Kornbrust), управляющий германской компанией Red Database Security, утверждает, что еще 30 ошибок, найденных другими исследователями в ПО Oracle, ждут своего разрешения.
Контроль качества
Помимо непомерного долгого времени, которое тратится на выпуск заплаток, Oracle находится под огнем критики по части качества выпускаемых обновлений продукта. Часто пользователи встречаются с затруднениями при установке, а заплатки часто нуждаются в собственных исправлениях. «Это свидетельствует, что Oracle не уделяет достаточно времени тестированию», — утверждает Корнберст.
В нормальном процессе выпуска заплаток тестирование занимает большую часть времени. Собственно поиск неисправности и ее воспроизведение выполняется быстро. Подготовленная заплатка должна быть протестирована на совместимость, чтобы она сама ничего не повредила.
Главный специалист по вопросам безопасности от Oracle Мери Энн Дэвидсон (Mary Ann Davidson) в июле заявила CNET News.com, что время, требуемое для завершение тестирования, — одна из причин, по которой происходит задержка выпуска заплаток. Она также указала, что приходится увязывать состав исправлений с необходимостью исправлять продукты на нескольких платформах. «Изменение двух строк кода может занять пять минут, но передача исправления заказчику в таком виде, чтобы он мог этим воспользоваться, требует гораздо больше времени», — утверждает она.
Но даже в этом случае новейшая история выпусков исправлений Oracle позволяет утверждать, что компания не уделяет достаточно внимания вопросам безопасности в процессе разработки, как считает Майкл Гевин (Michael Gavin), старший аналитик Forrester Research: «Слишком много поставщиков ПО быстро расправляются с поддержкой существующих продуктов. Проблема с заплатками Oracle показывает, что Oracle именно такая компания».
«Если Oracle хочет, чтобы ее воспринимали серьезно с точки зрения безопасности, она должна ввести жесткие процессы проверки безопасности на каждом этапе разработки ПО», — говорит Гевин. Он указал на Microsoft как на пример компании, которая, наконец, справилась с проблемой раннего выявления и исправления ошибок: «Похоже, Microsoft усвоила урок, а Oracle — нет. Oracle больше склонна к пустым разговорам, тогда как Microsoft потратила целое состояние (это и финансы, и время), чтобы повысить качество своих продуктов, и добилась впечатляющих результатов».
С момента запуска своей инициативы Trustworthy Computing три года назад Microsoft изменила подход к разработке, чтобы обеспечить большую безопасность создаваемому программному обеспечению. Она ввела «процесс разработки защищенного ПО», направленный на корректировку кода до выхода продуктов.
Ресурсы
http://search.news.com/search?q=oracle+and+security
Большинство из нас знакомо с тем, как SQL Server 2000 поддерживает UDF (определяемые пользователем функции). Но скольким удалось расширить базовые знания об UDF и создать собственную системную функцию? Если вам стало любопытно, прочтите, что предлагает Скотт Вайем.
Мне кажется, что способность создавать собственные системные функции относится к тем возможностям SQL Server 2000, которые остались незамеченными. Они, как и системные хранимые процедуры, находятся в базе данных Master и могут использоваться из любой базы данных на сервере. Фактически многие административные хранимые процедуры, написанные в виде системных хранимых процедур, можно было бы легко встроить как неделимую часть в системные функции без лишней суеты. В более ранних версиях SQL Server я стремился использовать некоторые написанные мной или другими системные хранимые процедуры, которые оказывались полезными. В SQL Server 2000 я могу перейти от этой логики хранимых процедур к логике функций, что дает дополнительную гибкость и простоту применения. Предполагается, что читатели обладают базовыми знаниями о трех типах функций (возвращающих наборы строк, агрегирующих и скалярных), которые доступны в SQL Server 2000. Если вам требуется вспомнить, как создавать или изменять функции, введите «CREATE FUNCTION» в индекс сетевой библиотеки SQL Server 2000 Books Online (BOL).
Системные функции вызываются точно так же, как и любые другие созданные вами. Их можно вызывать из строки или как функцию с табличными значениями. В действительности системные функции подчиняются правилам и нормам, которым должны следовать три типа пользовательских функций. Как и у обычных пользовательских функций (UDF), в них необходимо ставить круглые скобки после названия, например fn_scottsfunction().
В Microsoft SQL Server 2005 была значительно улучшена модель программирования баз данных с помощью интеграции Microsoft .NET Framework 2.0 Common Language Runtime (CLR). С помощью этой технологии можно писать процедуры, триггеры и функции на всех языках CLR, особенно на Microsoft Visual C# .NET, Microsoft Visual Basic .NET и Microsoft Visual C++. Это также дает возможность расширять систему типов и агрегатные функции в СУБД, позволяя приложениям создавать собственные типы данных и агрегатные функции.
Здесь рассказывается, как лучше использовать преимущества этой технологии с точки зрения разработчика баз данных, а также сравниваются CLR, язык программирования SQL Server — TransactSQL (TSQL) — и расширенные процедуры (XP). Целью данной статьи не является обзор основного материала этих технологий, который уже подробно раскрыт в SQL Server 2005 Beta 2 Books Online.
Данная статья предназначена для разработчиков баз данных, архитекторов и администраторов баз данных, обладающих знаниями в области программирования на .NET Framework и программирования баз данных.
Обзор интеграции CLR
Ниже представлен краткий обзор функциональности SQL Server, которая появляется вместе с интеграцией CLR, а также рассказывается, как финальная версия Visual Studio 2005 будет поддерживать эту функциональность.
Регистрация и выполнение управляемого кода в базе данных состоят из следующих шагов:
• Разработчик пишет программу с помощью управляемого кода в виде набора определений класса. Код, предназначенный для использования в хранимых процедурах, функциях или триггерах внутри SQL Server записывается в статичных (static) (или, как это называется в Microsoft Visual Basic .NET, в общих (shared)) методах класса. Код, который применяется для пользовательских типов и агрегатов, создается как целый класс. Разработчик компилирует программу и создает сборку (assembly).
• Потом с помощью команд CREATE ASSEMBLY языка Data Definition Language (DDL) сборка загружается в базу данных SQL Server, где она хранится в системных каталогах.
• Объекты TransactSQL, такие как функции, процедуры, триггеры, типы и агрегаты, создаются с привязкой к точкам входа (entry points) (методам в случае функций, процедур, триггеров и классов для типов и агрегатов) в сборке, которая уже была загружена. Все эти действия выполняются с помощью команд CREATE PROCEDURE/FUNCTION/ TRIGGER/TYPE/AGGREGATE.
• После создания таких функций, процедур и триггеров они могут использоваться приложениями как объекты TSQL. Например, функции CLR могут быть вызваны из запросов TSQL, а процедуры CLR — из клиентского приложения или из пакета TSQL, как будто они являются процедурами TSQL.
Visual Studio 2005 Beta 1 поддерживает разработку, развертывание и отладку управляемого кода в SQL Server 2005. Существует новый тип проекта, проект SQL Server (SQL Server project), который позволяет разработчикам разрабатывать, развертывать и отлаживать функции, процедуры, триггеры, типы и агрегаты в SQL Server.
В этой статье рассматривается задача ExecuteSQL, входящая в состав служб интеграции SQL Server Integration Services для версии SQL Server 2005. Мы изучим все вопросы, которые необходимо знать для ее эффективного применения, и расскажем, как сделать ее наиболее гибкой.
Поднимите руки те, кто знал, что SQL Server 2000 поставляется со своим собственным провайдером Windows Management Instrumentation (WMI). Даже если вы не подняли руки, читайте дальше. Думаю, эта статья будет для вас чрезвычайно полезна.
Я объясню, как подсоединить WMI к SQL Server, и продемонстрирую, как пользоваться некоторыми из мириад классов, открываемых этим поставщиком. Как можно догадаться, этот провайдер специально спроектирован для предоставления информации об установках SQL и, что критически важно, для внесения изменений в настройки конфигурации SQL Server, чего базовый провайдер WMI не позволял делать. Материалы по установке WMI имеются на компактдиске SQL Server 2000 CD в папке x86\Other\WMI. Для установки провайдера WMI на сервер SQL Server 7.0 понадобится скопировать программу установки с диска на ваш компьютер — Microsoft не предлагает автономную загрузку.
Провайдер WMI достаточно «умен», чтобы предоставлять сведения как о SQL Server 7, так и о SQL Server 2000; версия определяется после установки, так что провайдер дает информацию о соответствующей версии. Хотя многие классы, методы и свойства одинаково хорошо работают с обеими версиями, другие ограничиваются либо одной, либо другой версией. К счастью, зависящие от версии классы обладают дополнительным свойством под названием SQLVersion, которому присваивается соответственно значение 7.0 или 8.0.