Курсовая

Курсовая Уязвимости баз данных

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.9.2024





ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО

ТРАНСПОРТА

Иркутский Государственный Университет Путей Сообщения
Кафедра Информационной Безопасности


Курсовая работа

на тему:

«Уязвимости баз данных»
Выполнил:

студент гр. ЗИ-05-1

Зубков Е. А.
Проверил: 
Доцент кафедры ИнБ

Шлаустас Р. Ю.
Иркутск, 2008 г.


Содержание

Введение. 3

SQL уязвимости СУБД.. 4

Получение информации путем логических выводов. 4

Агрегирование данных. 5

Покушения на доступность. 5

Безопасность в среде баз данных. 6

Некоторые решения. 6

Анализ защищенности баз данных. 9

Система Database Scanner. 11

Система SQL <> Secure Policy. 14

Заключение. 16

Список литературы.. 17


Введение


Где хранится ваша наиболее ценная информация? Где содержатся финансовые данные Ваши и Ваших клиентов? Количество взломов информационных ресурсов возрастает, поэтому современная вычислительная среда нуждается в защите. Многие люди забывают защитить одну из самых важных частей своей информационной инфраструктуры. Наиболее ценная и важная информация хранится обычно не на файловом сервере, а в соответствующих базах данных. Независимо от того, какая это база - Oracle, Sybase, DB2, MS SQL Server и т.д., она содержит Вашу наиболее важную информацию. Операционная система (ОС), используемая для базы данных, должна быть соответствующим образом защищена, но это только половина дела. Мощные системы управления базами данных (СУБД) содержат свои собственные системы защиты, отдельные от ОС (пожалуй только у MS SQL Server система защиты интегрирована с защитой ОС Windows NT). Каждая из них имеет подсистемы аудита, аутентификации, целостности и разграничения доступа. Отказ от настройки или неправильная конфигурация защиты базы данных сделает большинство вашей наиболее важной информации легкой добычей для злоумышленников.

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

SQL уязвимости СУБД




Главный источник угроз для СУБД лежит в самой природе баз данных. Основным средством взаимодействия с СУБД является язык SQL - мощный непроцедурный инструмент определения и манипулирования данными. Хранимые процедуры добавляют к этому репертуару управляющие конструкции. Механизм правил дает возможность выстраивать сложные, трудные для анализа цепочки действий, позволяя попутно неявным образом передавать право на выполнение процедур, даже не имея, строго говоря, полномочий на это. В результате потенциальный злоумышленник получает в свои руки мощный и удобный инструментарий, а все развитие СУБД направлено на то, чтобы сделать этот инструментарий еще мощнее и удобнее.

Мы рассмотрим несколько угроз, возникающих при использовании злоумышленником средств языка SQL.


Получение информации путем логических выводов




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

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

Еще один пример - выяснение набора первичных ключей таблицы при наличии только привилегии INSERT (без привилегии SELECT). Если набор возможных значений ключей примерно известен, можно пытаться вставлять новые строки с "интересными" ключами и анализировать коды завершения SQL-операторов. Сам факт присутствия определенного ключа в таблице может быть весьма информативным.

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

Основным средством борьбы с подобными угрозами, помимо тщательно проектирования модели данных, является механизм размножения строк. Суть его в том, что в состав первичного ключа, явно или неявно, включается метка безопасности, за счет чего появляется возможность хранить в таблице несколько экземпляров строк с одинаковыми значениями "содержательных" ключевых полей. Наиболее естественно размножение строк реализуется в СУБД, поддерживающих метки безопасности (например, в INGRES/Enhanced Security), однако и стандартными SQL-средствами можно получить удовлетворительное решение.


Агрегирование данных




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

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

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


Покушения на доступность




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

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

Безопасность в среде баз данных


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

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

Некоторые решения


Примером архитектуры клиент/сервер, которую хорошо дополняют средства шифрования, могут служить Oracle Server, сетевые продукты (SQMNet) и программное обеспечение клиента.

Сетевая служба безопасности (SNS — Secure Network Services) предлагает стандартный, оптимизированный алгоритм шифрования DES с ключом длиной 56 бит для организаций, от которых требуется использовать стандарт DES. Для заказчиков вне пределов США или Канады SNS предлагает DES40, в котором комбинируется использование алгоритма шифрования DES с общепринятым ключом длиной 40 бит (экспорт технологий шифрования в США законодательно ограничен). Наряду с DES возможно также использование алгоритма шифрования RSA RC4.

Секретный, генерируемый случайным образом ключ для каждой сессии SQL* Net сохраняет весь сетевой трафик — включая пароли, значения данных, SQL-утверждения и сохраняемые вызовы и результаты.

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

Устойчивость к искажению данных обеспечивается следующим образом:

1) криптографически защищенная контрольная сумма в каждом пакете SQL* Net обеспечивает защиту от модификации данных и замены операции;

2) при обнаружении нарушений операции незамедлительно автоматически завершаются;

3) информация о всех нарушениях регистрируется в журнале.

Наряду с этим обеспечивается многопротокольная перекодировка данных, т.е. полностью поддерживается Oracle Multiprotocol Interchange — при работе с зашифрованной сессией можно начинать работу с одним сетевым протоколом, а заканчивать с другим, при этом не требуется дешифрование или перешифрование информации. SNS полностью поддерживается сквозными шлюзами, Oracle Transparent Gateways, и процедурными шлюзами, Oracle Procedural Gateways, которые дают возможность организовывать полностью зашифрованные сессии клиент/сервер к отличным от Oracle источникам данных, включая Adabas, CA-Datacom, DB2, DRDA, FOCUS, IDMS, IMS, ISAM, MUMPS, QSAM, Rdb, RMS, SAP, SQL/DS, SQL/400, SUPRA, Teradata, TOTAL, VSAM и другие.

SNS работает со всеми основными протоколами, поддерживаемыми SQL* Net, включая AppleTalk, Banyan, DECnet, LU6.2, MaxSix, NetBIOS, SPX/IPX, TCP/IP, X.25 и другие.

Обеспечивается независимость от топологии сети — SNS работает во всех основных сетевых средах, поддерживаемых SQL-Net.

SNS представляет собой дополнительный продукт к стандартному пакету SQL* Net, то есть требуется предварительно приобрести лицензию на SQL* Net. Продукт надо покупать и для клиента, и для сервера.

Вместе тем СУБД Oracle, начиная с версии 7.1, пароль передается по сети в зашифрованном виде.

Это означает, что при организации связи клиент/сервер используется новый протокол установления связи, в котором применяется сеансовый ключ, пригодный только для единственной попытки соединения с базой данных и используемый в качестве ключа для шифрования пароля, прежде чем он будет передан клиентам. Oracle-сервер находит зашифрованный пароль для этого пользователя и использует его в качестве ключа, которым он зашифровывает сеансовый ключ. Затем сервер пересылает этот зашифрованный сеансовый ключ клиенту. Клиент шифрует (применяя тот же самый односторонний алгоритм, который используется сервером) пароль, введенный пользователем, и с его помощью дешифрует зашифрованный сеансовый ключ. Обнаружив этот сеансовый ключ, он использует его — это становится совместным секретом клиента и сервера — для шифрования пароля пользователя. Этот зашифрованный пароль затем передается через сеть серверу. Сервер дешифрует пароль и затем зашифровывает его, используя односторонний алгоритм сервера; результат этих вычислений сверяется со значением, хранимым в словаре данных. Если они совпадают, клиенту предоставляется доступ. Такой подход реализуется как в соединениях типа клиент/сервер, так и сервер/сервер, где сеансы устанавливаются через так называемые полномочные звенья баз данных (т.е. звенья баз данных без вложенных имен пользователей и паролей).



Анализ защищенности баз данных




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

Атакующий может перехватить пароль и имя администратора базы данных (учетная запись - sa). Тем самым он может скомпрометировать всю информацию, хранимую в базе данных. Однако это еще не все. Вся мощь систем управления базами данных встает на его сторону и он может использовать ее не на благо, а во вред. Например, при помощи встроенной хранимой (stored) процедуры xp-cmdshell, позволяющей выполнять команды операционной системы Windows NT, злоумышленник может выполнять заданные команды так, как будто он работает за консолью сервера, а не удаленно. С помощью следующих SQL-команд злоумышленник, получивший доступ к СУБД, сможет создать пользователя с заданным паролем и правами администратора:

xp_cmdshell 'NET USER Lexa password /ADD'

go

xp_cmdshell 'NET LOCALGROUP /ADD
Администраторы
Lexa'


go


С помощью первой команды злоумышленник создает пользователя с именем Lexa с паролем password. А с помощью третьей команды пользователь с именем Lexa заносится в группу Администраторы. Работает это потому, что указанные команды выполняются с привилегиями той учетной записи, под которой загружен SQL-Server. По умолчанию это учетная запись System. В качестве другого примера можно назвать использование расширенных хранимых процедур (extended stored procedures), которые при помощи OLE Automation позволяют контролировать другие приложения Windows NT. И таких примеров можно назвать множество не только для СУБД компании Microsoft, но и Sybase, Oracle и т.д.

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

Правильно сконфигурированная не только СУБД, но и операционная система предотвратит возникновение проблем, связанных с защитой SQL-сервера. Однако зачастую администратор базы данных является и администратором всей сети и выполняет еще ряд задач, что не позволяет ему в должной мере обратить свой взгляд на защиту баз данных. У него не хватает времени на проведение работ по поиску уязвимостей в СУБД. А если сервер баз данных находится на другой территории, то эта задача становится практически неразрешимой. Это приводит к нарушению политики безопасности организации, компрометации важной информации, хранимой в БД, и т.д. Автоматизировать процесс поиска уязвимостей помогут средства анализа защищенности (Security Assessment System), называемые также сканерами безопасности (security scanner). Использование этих средств поможет определить уязвимости в корпоративной сети и устранить их до тех пор, пока ими воспользуются злоумышленники.

Но, если средств анализа защищенности, работающих на уровне сети и операционной системы, существует не один десяток, то средств, анализирующих базы данных существует намного меньше. Если говорить конкретно, то на сегодняшний день всего два. Это система Database Scanner компании Internet Security Systems, Inc. (ISS) и система SQL <> Secure Policy компании BrainTree Security Software.



Система Database Scanner


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

Система Database Scanner обнаруживает различные проблемы, связанные с безопасностью баз данных, начиная от "слабых" паролей и заканчивая "проблемой 2000 года". Встроенная база знаний (Knowledge Base), доступная непосредственно из создаваемых отчетов, рекомендует корректирующие действия, которые позволяют устранить обнаруженные уязвимости. Система Database Scanner может быть использована для анализа защищенности систем управления базами данных Microsoft SQL Server и Sybase Adaptive Server [2]. Поддержка других СУБД (Oracle, Informix и т.д.) планируется обеспечить в конце второго квартала 1999 года.

Текущая версия системы Database Scanner (2.0) обнаруживает около 200 уязвимостей названных СУБД. Система Database Scanner проводит различные проверки в трех основных областях: аутентификация, авторизация и целостность. Дополнительно СУБД проверяется на совместимость с проблемой "2000 года". Все проверки можно разделить на 17 категорий, в т.ч.:

- Проверки подсистемы аудита СУБД;

- Проверки подсистемы резервного копирования (backup);

- Проверки прав доступа пользователей к объектам СУБД;

- Проверки хранимых процедур (stored procedure);

- Проверки возможности осуществления различных атак;

- И т.д.

Периодическое обновление базы данных уязвимостей позволяет поддерживать уровень защищенности Вашей корпоративной сети на необходимом уровне.

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

- "пустых" паролей; · паролей, совпадающих с идентификатором;

- паролей, совпадающих с идентификатором с добавленной цифрой на конце

- паролей, порядок букв в которых обратен тому, который используется в идентификаторе;

- и т.д.

Администратор безопасности, проводящий анализ защищенности баз данных Вашей корпоративной сети, может использовать либо один из трех изначально устанавливаемых шаблонов, определяющих степень детализации сканирования (Top Secret, Confidential, Secure), либо создавать на их основе свои собственные шаблоны, задающие только те проверки, которые должны проводиться для выбранных Вами серверов баз данных . Все созданные шаблоны могут быть сохранены для последующего использования.



Один из этапов настройки шаблона для анализа защищенности СУБД MS SQL Server

Централизованное управление процессом анализа защищенности всех баз данных Вашей корпоративной сети с одного рабочего места делает систему Database Scanner незаменимым помощником специалистов отделов технической защиты информации или управлений автоматизации любой организации.

Для периодического (или в заданное время) проведения анализа защищенности существует возможность запуска системы Database Scanner по расписанию. Для этого можно использовать сервис AT операционной системы Windows NT. При помощи данной утилиты администратор может не только запускать систему Database Scanner для проведения локального или дистанционного сканирования, но и создавать отчеты по его результатам.

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

Однако при построении комплексной системы защиты информации корпоративной сети анализом защищенности одних только баз данных дело не ограничивается. Выбор системы Database Scanner является идеальным решением, поскольку компания Internet Security Systems предлагает целый спектр средств анализа защищенности, обнаруживающих уязвимости и на уровне сети (система Internet Scanner) и на уровне операционной системы (системы System Scanner и Security Manager). Общее число уязвимостей, которые обнаруживаются средствами компании ISS, превышает 1600, что на порядок превышает ближайших конкурентов.



Система SQL <> Secure Policy


Система SQL <> Secure Policy по своим возможностям очень похожа на систему Database Scanner, но помимо анализа защищенности выполняет и другие функции, связанные с защитой баз данных. Но, поскольку нас интересует только анализ защищенности, то рассмотрим только те компоненты системы SQL <> Secure Policy, которые отвечают за реализацию этого механизма. Подсистема Password Manager является аналогом Password Strength в Database Scanner и анализирует пароли на уязвимость и осуществляет управление процессом назначения паролей и продолжительностью их действий. Подсистема Policy Manager помогает пользователям производить оценку своих баз данных на предмет соответствия принятым стандартам корпоративной безопасности. Осуществляется это путем создания эталонного шаблона, описывающего политику безопасности баз данных Вашей организации, с которым затем сравнивается текущее состояние СУБД. Эти правила охватывают все аспекты безопасности баз данных, начиная с подсистемы аудита и параметров загрузки базы данных, и заканчивая подсистемой аутентификации и разграничения доступа к объектам базы данных.

Настройка правил осуществляется при помощи т.н. Мастеров Правил (Rules wizards), которые позволяет очень точно и гибко настроить процесс оценки Ваших баз данных , учитывая специфику технологии обработки информации и политику безопасности, принятые в Вашей организации [4].



Мастера
Rules Wizard
в

подсистеме
Policy Manager


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

В настоящий момент система функционирует под управлением операционных систем Windows 9x, Windows NT и работает с базами данных Oracle и Sybase.

Как уже упоминалось выше, система SQL <> Secure Policy это не система анализа защищенности "в чистом виде". Помимо поиска и устранения уязвимостей, она обладает возможностью анализа журналов, создаваемых подсистемой аудита, контроля используемых пользователем ранее паролей, использования единого пароля для множества распределенных баз данных (механизм Single Sign On) и т.д. Поэтому, если Вам необходима только система анализа защищенности, то, возможно, лучше воспользоваться системой Database Scanner, не отягощенной дополнительными, по отношению к анализу защищенности, функциями.

Заключение


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

Другая необходимая мера это тщательная настройка СУБД и операционной системы для работы с базой данных.

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

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

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

Список литературы


·        http://www.bezpeka.com

·        http://www.softlab.ru/rubrs.asp?rubr_id=258

·        http://xaker-world.boom.ru



1. Кодекс и Законы Русские земли в кольце агрессии Востока и Запада
2. Шпаргалка Шпаргалка по Бхгалтерскому учету
3. Контрольная работа по Экономике 19
4. Реферат на тему Анализ связи между производством и потреблением
5. Реферат Право на отдых
6. Реферат на тему Компютри и автоматика
7. Реферат Стиль деятельности руководителя
8. Реферат на тему Technology Friend Or Foe Essay
9. Курсовая Роль и значение отчетной формы 5 Приложение к бухгалтерскому балансу.
10. Реферат Логіка Давньої Індії