Итак, как уже не один раз упоминалось, СУБД — это программное обеспечение, с помощью которого пользователи могут определять, создавать и поддерживать базу данных, а также осуществлять к ней контролируемый доступ.
По степени универсальности различаются два класса СУБД — системы общего назначения и специализированные системы.
СУБД общего назначения не ориентированы на какую-либо конкретную предметную область или на информационные потребности конкретной группы пользователей. Каждая система такого рода реализуется как программный продукт, способный функционировать на некоторой модели ЭВМ в определенной операционной обстановке. СУБД общего назначения обладает средствами настройки на работу с конкретной БД в условиях конкретного применения.
В некоторых ситуациях СУБД общего назначения не позволяют добиться требуемых проектных и эксплуатационных характеристик (производительность, занимаемый объем памяти и прочее). Тем не менее создание специализированных СУБД весьма трудоемкий процесс и для того, чтобы его реализовать, нужны очень веские основания.
В процессе реализации своих функций СУБД постоянно взаимодействует с базой данных и с другими прикладными программными продуктами пользователя, предназначенными для работы с данной БД и называемыми приложениями.
Для того чтобы СУБД успешно справлялась со своими задачами, она должна обладать определенными возможностями.
Можно дать следующую обобщенную характеристику возможностям современных СУБД.
СУБД включает язык определения данных, с помощью которого можно определить базу данных, ее структуру, типы данных, а также средства задания ограничений для хранимой информации. В многопользовательском варианте СУБД этот язык позволяет формировать представления как некоторое подмножество базы данных, с поддержкой которых пользователь может создавать свой взгляд на хранимые данные, обеспечивать дополнительный уровень безопасности данных и многое другое.
СУБД позволяет вставлять, удалять, обновлять и извлекать информацию из базы данных посредством языка управления данными.
Большинство СУБД могут работать на компьютерах с разной архитектурой и под разными операционными системами, причем на работу пользователя при доступе к данным практически тип платформы влияния не оказывает.
Многопользовательские СУБД имеют достаточно развитые средства администрирования БД.
СУБД предоставляет контролируемый доступ к базе данных с помощью:
системы обеспечения безопасности, предотвращающей несанкционированный доступ к информации базы данных;
системы поддержки целостности базы данных, обеспечивающей непротиворечивое состояние хранимых данных;
системы управления параллельной работой приложений, контролирующей процессы их совместного доступа к базе данных;
системы восстановления, позволяющей восстановить базу данных до предыдущего непротиворечивого состояния, нарушенного в результате аппаратного или программного обеспечения.
Вопросы защиты данных являются критическими при обеспечении безопасности современных корпоративных систем. Статья посвящена сложившейся ситуации в области безопасности данных, находящихся под управлением систем БД. Сделан обзор существующих работ на указанную тему как отечественных, так и зарубежных авторов. Рассмотрены этапы эволюции систем защиты информации в СУБД. Выделены современные комплексные проблемы в области защиты данных теоретического и практического характера. При анализе проблем безопасности учтены новые направления развития СУБД, такие как in memory и NoSQL-решения. В статье выделены особенности БД с точки зрения информационной безопасности по отношению к другим видам ПО. Предложено базовое деление уязвимостей СУБД на основании выделенных особенностей. Сформулированы перспективные пути исследований и развития систем защиты для построения надежных и защищенных серверов по обработке информации.
Атаки на хранилища и БД являются одними из самых опасных для предприятий и организаций. Согласно статистике компании infowateh [1], в последние годы количество утечек данных в мире неуклонно растет, при этом на 2015 год более тридцати процентов из них приходятся на внешних нарушителей и более шестидесяти выполнено с участием сотрудников организации. Даже если предположить, что в ряде случаев утечка включала данные, к которым сотрудник имеет легальный доступ, каждый третий случай приходился на внешнюю атаку. Также нужно отметить, что, согласно приведенным в [1] данным, на внешние атаки приходятся семь из восьми утечек объемом более десяти миллионов записей.
Злоумышленников интересуют такие виды информации, как внутренняя операционная информация, персональные данные сотрудников, финансовая информация, информация о заказчиках/клиентах, интеллектуальная собственность, исследования рынка/анализ деятельности конкурентов, платежная информация [2]. Эти сведения в итоге хранятся в корпоративных хранилищах и БД различного объема.
Все это приводит к необходимости обеспечения защиты не только коммуникаций, операционных систем и других элементов инфраструктуры, но и хранилищ данных как еще одного барьера на пути злоумышленника. Однако на сегодняшний день работы в области обеспечения безопасности БД направлены в основном на преодоление существующих и уже известных уязвимостей, реализацию основных моделей доступа и рассмотрение вопросов, специфичных для конкретной СУБД. Целью данной работы являются комплексное рассмотрение и систематизация вопросов безопасности различных БД в свете новых угроз, общих тенденций развития информационной безопасности и возрастающей роли и разнообразия хранилищ данных.
Вопросы комплексной безопасности БД привлекают внимание исследователей, им ежегодно посвящается ряд работ как в России, так и за рубежом. Можно отметить такие исследования, как классическая работа [3]. В ней рассматриваются подходы к обеспечению конфиденциальности, целостности и доступности СУБД, предотвращение, определение и игнорирование атак. Предлагаются подходы к обеспечению мандатного и ролевого дискреционного доступа к реляционному серверу. Данную тему развивает работа [4], затрагивающая те же вопросы обеспечения разделения доступа, привилегий, аудита и шифрования данных, а также вопросы применения для обеспечения защищенного доступа встроенных механизмов, таких как триггеры, представления и хранимые процедуры. Резюмирующая их работа [5] обобщает развитие подходов к безопасности в историческом аспекте.
Среди зарубежных работ, освещающих современные направления исследований, можно отметить [6, 7]. Работы российских исследователей в основном посвящены узким вопросам безопасности СУБД, например [8-12].
Нельзя не отметить также монографии [13, 14]. Однако эти работы, как и известные учебные пособия и материалы, в частности [15, 16], также не выходят за рамки вышеозначенных тем или же, как например [14], отражают специфику конкретной СУБД.
Аналогичную ситуацию можно наблюдать и в работе [17]. STIG включает известные вопросы безопасности и критерии уровневой сертификации программных средств СУБД, оценивая безопасность ПО на основании известных угроз, без учета специфики хранимых данных.
Таким образом, сегодняшние исследования в области безопасности СУБД ограничиваются развитием концепции конфиденциальности, целостности и доступности данных, что не соответствует современным требованиям к системам защиты и информационной безопасности программных решений (например [18]), причем в контексте конкретных методов защиты, а не целостного рассмотрения проблемы. При этом они зачастую посвящены конкретным программным продуктам, а не всему классу соответствующего ПО.
Эволюция систем безопасности БД
Исторически развитие систем безопасности БД происходило как реакция на действия злоумышленников в соответствии с этапами эволюции самих хранилищ (БД) и изменениями типа и вида возрастающих угроз. Эти изменения были обусловлены общим развитием БД от решений на мейн-фреймах до облачных хранилищ.
В архитектурном плане [5] можно выделить следующие подходы:
- полный доступ всех пользователей к серверу БД;
- разделение пользователей на доверенных и частично доверенных средствами СУБД (системы управления БД);
- введение системы аудита (логов действий пользователей) средствами СУБД;
- введение шифрования данных; вынос средств аутентификации за пределы СУБД в операционные системы и промежуточное ПО; отказ от полностью доверенного администратора данных.
Тем не менее, введение средств защиты как реакции на угрозы не обеспечивает защиту от новых способов атак и формирует разрозненное представление о самой проблеме обеспечения безопасности. С одной стороны, крупные компании могут выделить достаточное количество средств обеспечения безопасности для своих продуктов, с другой стороны, именно по этой причине имеется большое количество разнородных решений, отсутствует понимание комплексной безопасности данных (и ее компоненты разнятся от производителя к производителю), нет общего, единого подхода к безопасности хранилищ данных и, как следствие, возможности. Усложняются прогнозирование будущих атак и перспективная разработка защитных механизмов, для многих систем сохраняется актуальность уже давно известных атак, усложняется подготовка специалистов по безопасности.
Именно разработка программных средств перспективной защиты (на опережение злоумышленника), обеспечение возможности внедрения такой технологии представляются авторам статьи наиболее актуальными задачами на текущем этапе.
Современные проблемы обеспечения безопасности БД
Список основных уязвимостей хранилищ данных, актуальный на сегодняшний день [19], не претерпел существенных изменений за последние более чем пять лет. Проанализировав средства обеспечения безопасности СУБД, архитектуру БД, интерфейсы, известные уязвимости и инциденты безопасности, можно выделить следующие причины возникновения такой ситуации:
- проблемами безопасности серьезно занимаются только крупные производители прежде всего в ведущих продуктах линеек для хранения данных;
- программисты БД, прикладные программисты и администраторы БД не уделяют должного внимания вопросам безопасности;
- разные масштабы и виды хранимых данных требуют разных подходов к безопасности;
- различные СУБД используют разные языковые диалекты для доступа к данным, организованным на основе одной и той же модели;
- появляются новые виды и модели хранения данных.
Рассмотрим эти положения более подробно на примере линейки продуктов от Oracle. СУБД Oracle Database Server имеет достаточно развитую систему безопасности, включающую основные и дополнительные модули и содержащую средства гранулирования доступа до уровня записи и маскирования данных. Отметим, что продукт компании СУБД MySQL не может похвастаться таким уровнем защищенности. Это достаточно серьезная проблема, так как MySQL - широко применяемая СУБД как в электронной коммерции, так и в БД государственных структур.
Многие уязвимости, обозначенные в исследованиях (например в [19]), сохраняют актуальность за счет невнимания или незнания администраторами систем БД вопросов безопасности. Например, известные техники простой SQL-инъекции широко эксплуатируются сегодня в отношении различных web и иных приложений, в которых не уделяется внимание контролю входных данных запроса. Причинами этого являются как недостаточная информированность или внимание администраторов СУБД и прикладных программистов, так и отсутствие встроенных средств контроля известных уяз-вимостей в большинстве СУБД. Хорошим решением были бы автоматизация и перенос контроля таких угроз на уровень сервера, однако многообразие языковых диалектов не позволяет это сделать.
Также нужно отметить, что применение различных средств обеспечения информационной безопасности является для организации компромиссом в финансовом плане: внедрение более защищенных продуктов и подбор более квалифицированного персонала требуют больших затрат. К тому же компоненты безопасности могут отрицательно влиять на производительность систем управления БД, например уровни согласованности транзакций. Полное соответствие модели ACID - самый медленный способ обеспечения целостности при многопользовательской работе. Такие подходы, как маскирование данных или введение проверок безопасности доступа, также замедляют работу [13, 20].
Еще одна причина такой ситуации - разрозненность диалектов языка запросов к СУБД. Если рассматривать только известные реляционные СУБД, несмотря на наличие развивающегося стандарта SQL (SQL-92, SQL-99, SQL-2003, SQL-2008), даже крупные производители не только используют собственные расширения языка, но и не поддерживают до конца операции принятой версии стандарта. Этот факт осложняет разработку единых механизмов защиты БД уровня сервера.
Приведенные выше проблемы усугубляются с появлением и широким распространением нереляционных хранилищ данных и СУБД, оперирующих другой моделью данных, однако построенных по тем же принципам и имеющих аналогичное назначение, что и традиционные, реляционные серверы. По сути многообразие современных так называемых NoSQL (нереляционных) решений приводит к разнообразию применяемых моделей данных и размывает границу понятия БД.
Следствием этих проблем и отсутствия единых методик является нынешняя ситуация с безопасностью NoSQL-систем. Эти решения появились на рынке недавно и еще не успели пройти «путь ошибок и уязвимостей», характерный для их более зрелых реляционных аналогов. В большинстве NoSQL-систем отсутствуют не только общепринятые механизмы безопасности вроде шифрования, поддержки целостности и аудита данных, но даже развитые средства аутентификации пользователей.
Особенности систем БД как объекта защиты
В связи с появлением новых решений в области нереляционных хранилищ, размывающих границу традиционного представления о СУБД (например, система кэширования данных в памяти Mem-casheDB или Hadoop HDFS), определим функции, отличающие СУБД от файлового хранилища и других типов программных продуктов. В этом ключе в [20] выделено несколько признаков. Переформулировав первый признак - «поддержание логически согласованного набора файлов», в силу активного развития in memory СУБД, осуществляющих хранение и все операции над данными в оперативной памяти, приведем эти критерии в следующей редакции:
- поддержание логически согласованного набора данных;
- обеспечение языка манипулирования данными;
- восстановление информации после разного рода сбоев;
- реальная параллельная работа нескольких пользователей (процессов).
Используя такой подход, можно отделить именно СУБД от файловых систем и ПО другого вида.
Отличительной особенностью систем БД от остальных видов прикладного ПО является (относительно информационной безопасности и не только) их двойственная природа. С этой точки зрения СУБД включает в себя два компонента: хранимые данные (собственно БД) и программы управления (СУБД).
Обеспечение безопасности хранимой информации, в частности, невозможно без обеспечения безопасного управления данными. Исходя из этой концепции, все уязвимости и вопросы безопасности СУБД можно разделить на две категории: зависимые от данных и независимые от данных.
Отметим, что уязвимости, независимые от данных (их структуры, организации и т.д.), являются характерными для всех прочих видов ПО. К этой группе можно отнести несвоевременное обновление ПО или наличие неиспользуемых функций.
Зависимыми от данных (в той или иной степени) является большое число аспектов безопасности. В частности, зависимыми напрямую можно назвать механизмы логического вывода и агрегирования данных, называемые специфичными проблемами СУБД. В то же время многие уязвимости являются косвенно зависимыми от данных. Например, современные СУБД (считая и реляционные, и нереляционные решения) поддерживают запросы к данным с использованием некоторого языка запросов. В свою очередь, в этом качестве используются специализированные языки запросов (SQL, CQL, OQL и других), наборы доступных пользователю функций (которые, в свою очередь, тоже можно считать операторами запросного языка) или произвольные функции на языке программирования (чаще всего Java). Обобщенные интерфейсы работы с данными представлены на рисунке.
Архитектура применяемых языков, по крайней мере, то, что касается специализированных языков (запросов) и наборов функций, напрямую связана с моделью данных, применяемой для хранения информации. Таким образом, модель определяет особенности языка, а особенности языка - наличие в нем тех или иных уязвимостей. Причем уязвимости общего типа, например инъекция (под инъекцией будем понимать атаку на БД путем модификации входных запросов, заставляющую сервер СУБД выполнить нелегитимный набор действий), выполняются по-разному (SQL-инъекция, JAVA-инъек-ция) в зависимости от синтаксиса и семантики языка, которые, как уже сказано выше, отчасти определяются моделью данных и, следовательно, являются зависимым от данных компонентом.
К этой категории относятся задачи построения безопасных интерфейсов и вызовов (в том числе с учетом интерфейса СУБД и механизма доступа к данным).
• Безопасная организация данных и манипулирование ими.
Проблема организации данных и управления ими имеет важное значение в системах хранения информации. Хотя эта область указана последней в списке, она включает в себя организацию данных с проверкой целостности, защиту от логических выводов и другие вопросы безопасности, характерные для СУБД. По сути, эта задача включает в себя основной пул уязвимостей, зависящих от данных, и защиту от них.
На основании изложенного делаем следующие выводы. В результате обзора российских и зарубежных работ, а также ситуации на рынке СУБД в статье освещаются современный подход к обеспечению безопасности, принцип и основные этапы эволюции систем баз данных. Сформулированы проблемы информационной безопасности современных СУБД: многообразие языковых средств, появление новых моделей данных, не основанных на теоретической базе, необходимость поиска баланса между безопасностью и ее стоимостью, разработка систем защиты, а также ответ на потерю средства и престиж, а также общее невнимание к вопросам безопасности.
Сформулированы критерии, выделяющие СУБД из сходных программных продуктов, с учетом новых кластерных и in memory решений, особенности этого класса ПО с точки зрения информационной безопасности и предложено базовое деление уязвимостей на зависимые и независимые от данных и их организации.
В результате сформулированы общие требования к безопасности баз данных, перспективны пути исследования и разработки систем защиты для построения надежных и защищенных серверов обработки информации. Они включали как систематизацию и развитие существующих подходов в виде разработки методов и стандартизации механизмов защиты, так и направления новых исследований, например классификацию уязвимостей СУБД и формализация новых моделей данных, построение предиктивной защиты инструмента.
Достарыңызбен бөлісу: |