SQL Server Security Best Practices - Евгений Недашковский
-
Upload
hackit-ukraine -
Category
Technology
-
view
1.228 -
download
2
Transcript of SQL Server Security Best Practices - Евгений Недашковский
SQL ServerSecurity Best Practices
Евгений Недашковский
Senior DBA
• KSSUG (LinkedIn)
• KSSUG (Facebook)
Find me
• URKAVTO
• UKRTELECOM
• KPMG
• Altareturn
Системы управления базами
данных (СУБД)
Система управления базами данных (СУБД) – это
программа, которая позволяет создавать, обновлять и
администрировать базы данных. Большинство систем
управления реляционными базами данных использует
SQL (Structured Query Language) для обеспечения
своей функциональности.
В целом различные СУБД схожи между собой, но
синтаксис языка SQL может немного отличаться.
https://www.codecademy.com/articles/sql-rdbms
SQLite
Способен хранить всю базу данных в одном
небольшом файле. Вследствие этого одним из самых
больших преимуществ SQLite является возможность
работы с данными локально, без необходимости
подключения к удалённому серверу.
SQLite является популярным выбором для работы с
базами данных в мобильных гаджетах и портативной
электронике.
MySQL
MySQL является самой популярной СУБД с открытым кодом.
Используется, как правило, для разработки веб-приложений, часто в связке с PHP.
Основные преимущества MySQL том, что она проста в использовании, недорога, относительно надёжна (существует с 1995 г.) и имеет большое сообщество, в котором могут помочь и ответить на возникающие вопросы.
Недостатками, без сомнения является плохая масштабируемость, замедление развития после перехода под крыло Oracle и отсутствие многих привычных разработчикам функций.
PostgreSQL
PostgreSQL является СУБД с открытым исходным кодом и контролируется ни одной корпорацией.
Зачастую используется для разработки веб-приложений. Разделяет многие из тех же преимуществ MySQL, в том числе простоту в использовании, дешевизну, надёжность, и большое комьюнити. Она также предоставляет некоторые дополнительные функции, такие как поддержка внешнего ключа (foreign key), не требуя сложной конфигурации.
Основным недостатком является то, что PostgreSQLмедленнее, чем другие СУБД. Из-за своей меньшей популярности по сравнению с MySQL, не все хостинг-площадки предоставляют возможность работы с PostgreSQL.
Oracle DB
Oracle DB принадлежит корпорации Oracle и её код не
является открытым.
Oracle используется для больших приложений, в
частности, в банковской сфере. Большинство
крупнейших банков в мире работает с Oracle, потому
что Oracle предлагает мощную комбинацию
технологий и комплексных, интегрированных бизнес-
решений, в том числе разработанных специально для
банков.
Основным недостатком использования Oracle
является то, что данная СУБД является
проприетарной и довольно дорогой.
SQL Server
SQL Server принадлежит Microsoft и как и Oracle DB,
её код является закрытым.
SQL Server используется в основном крупными
корпоративными приложениями.
Основное различие между Oracle и SQL Server
заключается в том, что SQL Server поддерживает
только операционную систему Windows.
Microsoft предлагает бесплатную версию начального
уровня под названием SQL Server Express, но с ростом
ваших потребностей стоимость СУБД может
значительно вырасти.
Что популярнее?
http://db-engines.com/en/ranking_trend
Общие рекомендации
Устанавливайте только те компоненты, которые вы будете использовать. Дополнительные компоненты всегда могут быть установлены по мере необходимости. Отключите ненужные службы либо установите из запуск вручную.
Служба SQL Server Browser должна быть запущена только в случае использования именованных экземпляров SQL Server с динамическими портами TCP/IP . Для подключения к экземпляру SQL Server по умолчанию эта служба не нужна. При использовании именованных экземпляров со статическими портами, соответствующие данные так же можно указать в строке подключения.
Служба VSS Writer позволяет осуществлять резервное копирование и восстановление с помощью технологии теневого копирования тома (Volume Shadow Copy). Если вы не используете её – отключите.
Настраивайте только те сетевые интерфейсы, которые вы намереваетесь использовать.
Общие рекомендации
Выработайте политики с учётом разрешённых сетевых подключений. Используйте SQL Server Policy-Based Management для их стандартизации.
Выработайте набор политик для использования дополнительных функций (optional features). Используйте SQL Server Policy-Based Management для стандартизации активации дополнительных функций. Документируйте все исключения из политики на уровне каждого экземпляра.
Используйте Central Management Servers для стандартизации и соблюдение политики безопасности по всем серверам на предприятии.
Используйте Enterprise Policy Management Framework для консолидации отчётности в масштабах предприятия.
Develop a set of policies for Use Central Management SeUse Enterprise Policy Manag
Служебные учётные записи
Рекомендуется, чтобы все службы SQL Server службы запускались из-под отдельных учётных записей.
Лучше всего использовать доменные учётные записи, которые не являются членами групп администраторов ни в домене, ни на локальном сервере.
Неплохим вариантом будет использование управляемых учётных записей (managed service accounts). Управляемая учётная запись – это отдельный вид доменной учётной записи, которая закрепляется за компьютером и может использоваться для запуска служб. Создаётся предварительно администратором домена. С помощью данной учётной записи невозможно подключиться к компьютеру и после назначения обеспечивает автоматическое управление паролями и SPN. Может быть проблематичным в использовании, так как создаётся и настраивается только с помощью PowerShell (без помощи графического интерфейса).
Всегда используйте Configuration Manager SQL Server, для изменения учётных записей, от которых запущены службы.
Служебные учётные записи
Учётная запись службы агента SQL Server требует прав системного администратора (sysadmin) на уровне инстанса SQL Server.
Начиная с SQL Server 2005 каждый шаг в задаче агента может быть настроен на использование прокси, которые инкапсулируют альтернативные учетные данные. Под учётной записью (CREDENTAIL) подразумевается объект базы данных в котором сохраняется имя пользователя ОС и пароль. Одна такая учётная запись может быть использована для нескольких прокси. Прокси можно использовать для:
Скриптов ActiveX
Операционной системы (CmdExec)
Агентов репликации
Запрос и команд служб Аналитики (Analysis Services)
Выполнения пакетов SSIS (в т.ч. и планов обслуживания)
PowerShell
Использование антивируса
Следующие пути и расширения файлов необходимо исключить из проверки антивирусом: Файлы баз данных (как правило, они имеют следующие расширения):
.mdf
.ldf
.ndf
Файлы резервных копий:
.bak
.trn
Файлы каталогов полнотекстового поиска (обычно находятся по следующему пути) :
Инстанс по умолчанию: …\MSSQL\FTDATA
Именованный инстанс: …\MSSQL$instancename\FTDATA
Использование антивируса
Файлы трассировок (эти файлы могут быть созданы либо во время создания трассировки вручную, либо при активации С2 аудита):
.trc
Файлы аудита:
.sqlaudit
Файлы данных службы аналитики (Analysis Services):
…\MSSQL.X\OLAP\Data
Файлы резервных копий службы аналитики:
…\MSSQL.X\OLAP\Backup
Файлы журналов службы аналитики:
…\MSSQL.X\OLAP\Log
Использование антивируса
Список процессов которые необходимо исключить из
сканирования:
…\MSSQL11.<Имя Инстанса>\MSSQL\Binn\SQLServr.exe
…\MSRS11.<Имя Инстанса>\Reporting
Services\ReportServer\Bin\ReportingServicesService.exe
…\MSAS11.< Имя Инстанса >\OLAP\Bin\MSMDSrv.exe
Антивирус можно использовать на кластеризированных
машинах, но только в том случае, если он
поддерживает кластеризацию. Также убедитесь, что
вы исключили из сканирования следующие директории:
Q:\ (Quorum drive)
C:\Windows\Cluster
Привилегии администратора
Для упрощения проверки не добавляйте группам роль
администратора (sysadmin). Желательно выдавать
подобные полномочия индивидуальным учётным
записям.
Если локальная builtin\administrators (локальные
администраторы компьютера) имеет
административный доступ на уровне SQL Server,
лучше его забрать.
Блокировка системных
хранимых процедур
Отключите xp_cmdshell если в нет ней явной
необходимости.
Отключите компоненты COM после их полной
конвертации в SQLCLR.
Если в отправке почты (Database Mail) нет
необходимости – отключите её.
Используйте Policy-Based Management для
принудительной стандартизации расширенных
процедур.
Использование гостевого
пользователя
Логин (login) СУБД может получить доступ к объектам
баз данных только в случае, если он сопоставлен с
соответствующим пользователем (user) внутри.
Существует специальный гостевой пользователь
(guest), который позволяет обойти это правило. Так
как любой логин получает доступ к базе при наличии
в ней гостевого пользователя, не рекомендуется
использовать его где-либо кроме системной базы
MSDB. Так некоторые функции SQL Server станут
недоступными, не удаляйте гостевого пользователя
из базы MSDB.
Автономные базы данных
Начиная с SQL Server 2012 был предложен концепт
автономных баз данных (contained databases).
Автономная база данных содержит в себе все
настройки и метаданные для своего
функционирования в пределах инстанса. С точки
зрения безопасности проще ограничить
пользователей конкретной базой данных.
Автономные базы данных
Используйте настройку аутентификации по умолчанию, где опция подключения к автономным базам данных отключена. Её можно включить при необходимости.
Защитите резервные копии автономных баз данных с помощью пароля.
Проведите аудит возможностей пользователей и отдельных модулей внутри автономной базы данных.
Проведите аудит пользователей, имеющих права перевести базу в автономный режим.
Отключите гостевого пользователя на базах данных, которые расположены там же, где и автономные.
Избегайте строк подключения с указанием первичного каталога для тех серверов, где активированы автономные базы данных.
Сетевая безопасность
Активируйте брандмауэр и ограничьте количество используемых протоколов.
Не активируйте сетевые протоколы если в них нет необходимости.
Отключите протоколы NETBIOS и SMB, если в них нет необходимости.
Не разрешайте машинам, на которых установлен SQL Server выход в интернет.
Настройте именованные инстансы SQL Server для использования статических портов TCP/IP вместо динамических.
Настройте инстанс по умолчанию для SQL Server на использование какого-нибудь другого порта кроме 1433.
Включите опцию сокрытия инстансов SQL Server в сети
Разрешите подключения к логинам только тем конечным точкам (endpoints), о которых вам известно.
Настройте расширенную (Extended Protection) как для привязки сервисов так и каналов (service binding and channel binding).
Аудит
Аудит является ресурсоёмким процессом. Активируйте его только с пониманием конкретных задач и целей.
Используйте внутренний аудит SQL Server для наиболее безлопастного и гранулярного аудита.
Сохраняйте как неудачные так и удачные попытки входа в систему пользователями, если в базе данных хранятся высоко конфиденциальные данные.
Активируйте аудит операций изменения (DDL) и специфических событий сервера путём включения соответствующих журналов, либо с помощью настройки нотификаций.
DML (язык модификации данных) может быть отслежен с помощью трассировки событий (trace events) либо функции SQL Server Audit.
Управление на базе политики
Policy-Based Management (PBM)
Выберите тот аспект (facet) РВМ, который хотите
настроить.
Укажите условие, которые описывает нужный аспект.
Укажите политику, которая содержит необходимое
условие, дополнительное условие которое содержит
целевые фильтры и способ оценки.
Проверьте, удовлетворяет ли выбранный инстанс SQL
Server обозначенной политике.
We are impressed with your security level :-DAny questions?