Защита базы данных SQL Server - SearchInform

Защита базы данных SQL Server

Защита информации
с помощью DLP-системы

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

Средства аутентификации и авторизации  

Как советуют руководства по информационной безопасности, защиту систем требуется начинать с создания ограниченного доступа к SQL Server. MS SQL реализует задачу через использование средств аутентификации. Система распознает пользователя при введении им пары логин-пароль.   

В SQL Server доступны две модели аутентификации:  

  • Windows (Windows Authentication) – аутентификация осуществляется с помощью штатной системы безопасности Windows. Пользователям, которые уже аутентифицировались в операционной системе, при входе в SQL Server не нужно еще раз проходить процедуру авторизации. Единая учетная запись позволяет входить и в систему, и в базу данных;   
  • смешанный режим аутентификации (Mixed Mode Authentication) – в этом режиме после аутентификации в Windows нужно ввести в SQL Server еще один логин и пароль. 

При передаче в систему данные шифруются. Некоторые старые версии SQL Server не поддерживают средства Windows, это надо учитывать при настройке системы защиты базы данных SQL Server. 

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

Разрешения могут устанавливаться для отдельного сотрудника, группы (отдела, департамента), роли. 

Авторизация предполагает создание следующей иерархии уровней безопасности:  

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

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

Встроенные серверные роли

Для системных администраторов в БД созданы роли, отличающиеся объемом прав:

  • системный администратор. Под этой ролью разрешен допуск ко всем настройкам и возможностям БД SQL Server; 
  • администратор сервера. Он вправе менять базовые конфигурации сервера, включать и отключать его;
  • администратор безопасности. Его функции и возможности практически аналогичны роли системного администратора, он может управлять учетными записями и их свойствами. Ему открыты права доступа GRANT, DENY и REVOKE на уровне сервера и на уровне базы данных; 
  • администратор процессов. Он вправе запускать все процессы, встроенные в SQL Server;
  • Dbcreator. Он может удалять, создавать и редактировать базы данных и таблицы. 

Роль public не предоставляет никаких прав, кроме доступа к данным. На практике встроенный набор возможностей почти не используется. Для каждого сотрудника IТ-подразделения создается уникальная роль со своим функционалом. При создании ролей высшего уровня желательно не предоставлять излишних привилегий, не предусмотренных должностными обязанностями.  

Роли, создаваемые для управления возможностями БД

Более полезной для выстраивания системы защиты баз данных SQL Server оказывается система ролей, встроенных в сам программный продукт:

  • db_owner. Роль владельца информационного ресурса разрешает выполнять все задачи, включая удаление;
  • db_securityadmin. Управляет созданием других ролей и их возможностями;
  • db_backupoperator. Отвечает за резервное копирование;
  • db_datawriter. Управляет данными в пользовательских таблицах, вправе дополнять, корректировать, удалять сведения.

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

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

Процедуры фильтрации данных

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

Безопасность на уровне строк, или Row-Level Security (RLS), – функция, которая дает возможность фильтровать данные по строкам таблицы. В одном из столбцов будет указан логин сотрудника или группы, которым доступна конкретная строка. Группы создавать целесообразнее, потому что в базу нужно вносить меньше информации. При этом пользователю с большим уровнем привилегий, например, менеджеру, будут видны все строки. 

Схемы, реализуемые в SQL Server

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

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

В базе данных есть уже готовые схемы по умолчанию:

  • Dbo;
  • Guest;
  • Sys;
  • INFORMATION_SCHEMA.

Каждый новый пользователь может использовать для работы в базе схему Dbo. Остальные нужны для работы на сервере.

Криптография

Средства криптографической защиты информации (СКЗИ) используются для обеспечения безопасности баз данных постоянно. В программное обеспечение SQL Server встроены утилиты, обеспечивающие шифрование. Этот способ защиты баз данных применяется для:

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

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

Наиболее часто выбирают TDE (прозрачное шифрование данных) и Always Encrypted. Прозрачное шифрование данных защищает информационную базу целиком. Кража информационного объекта, файла, таблицы не даст злоумышленнику возможности прочитать похищенные сведения. Always Encrypted действует по иному принципу. Эта технология позволяет хранить шифрованные данные в SQL Server без передачи ключей шифрования самой базе данных. Сведения шифруются на уровне каждого столбца.  

Утилита использует два ключа:

  • Column Encryption Key (CEK);
  • Column Master Key (CMK).

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

Когда возникает потребность в использовании встроенных алгоритмов шифрования

Утилиты SQL Server не всегда решают задачу защиты информации полностью. Если есть необходимость в повышенном уровне безопасности данных, например, при обработке сведений, имеющих отношение к государственной тайне, необходимо применять СКЗИ, сертифицированные ФСБ РФ. Вторая ситуация, когда штатное шифрование не применяется, – если принимается решение, что излишняя нагрузка на информационные ресурсы не нужна.

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

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

Групповые управляемые учетные записи

Технология Group Managed Service Accounts для SQL Server – еще один популярный способ защиты базы данных. Она исключает ручную смену паролей отдельных пользователей и их групп. Это важно, так как данные о введении информации через командную строку часто становятся добычей злоумышленников, если файл истории был очищен несвоевременно. Когда системный администратор настраивает и устанавливает аgMSA-аккаунт, он должен дать указания системе, как часто утилита меняет пароль и список пользователей, имеющих доступ к этой информации. 

Оценка уязвимостей БД при помощи средств SS MS

Хакеры хорошо знакомы с типовыми уязвимостями баз данных SQL Server. При попытке взлома информационной системы она сразу тестируется на наличие лакун в безопасности, найденных ранее с помощью специального ПО. Эти же программные средства могут использовать и компании для регулярного выявления зон риска. Для аудита рекомендуется использовать утилиту Management Studio, встроенную в БД SQL Server. Сканер выявит наиболее часто встречающиеся ошибки в конфигурации системы и даст рекомендации об изменении настроек безопасности. Именно этой утилитой можно не ограничиваться. В Интернете много бесплатных программ для аудита и мониторинга обязательств. 

Мониторинг активности пользователей

Технические возможности SQL Server позволяют вести аудит любой пользовательской активности на сервере. Это мощное оружие в борьбе с несанкционированным доступом. Можно отследить попытки проникновения со стороны пользователей, разработчиков, сотрудников технических служб, осуществляющих поддержку.

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


Базы данных часто страдают от действий инсайдеров: сотрудники после конфликта с руководством удаляют из БД критически важные данные, взламывают базу, чтобы украсть данные клиентов на продажу. Как защититься? 


Общие принципы защиты баз данных SQL Server 

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

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

Задачи администраторов требуется решать строго в рамках ограничений. Встроенные роли надо использовать только тогда, когда объем полномочий полностью совпадает с задачами пользователя. Для качественной настройки системы защиты базы данных SQL Server лучше предоставлять права ролям, а не пользователям. Это решит часть задач по уничтожению учетных записей, если работник уволился или перевелся на другую должность. Роли в аналогичных ситуациях могут наследоваться.

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

Операционная система и ее обновления

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

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

Физическая безопасность данных

Ценная информация может быть утрачена из-за гибели или повреждения оборудования. Поэтому задача ограничения доступа к серверной крайне важна. Также необходимо вести журналы учета съемных носителей и организовать безопасный режим их хранения. Такие требования напрямую содержатся в документах ФСТЭК, посвященных вопросам защиты персональных данных.

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

Реализация комплексных решений по обеспечению безопасности баз данных SQL Server требует высокого профессионализма сотрудников. Несмотря на то, что ответы на все вопросы, связанные с безопасностью, присутствуют в руководствах пользователей, далеко не всегда у сотрудников IТ-подразделений хватает опыта для решения этих задач. Иногда требуется приглашение консультантов.

11.08.2020

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