sql server security best practices - Евгений Недашковский

25
SQL Server Security Best Practices

Upload: hackit-ukraine

Post on 23-Jan-2018

1.228 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: SQL Server Security Best Practices - Евгений Недашковский

SQL ServerSecurity Best Practices

Page 2: SQL Server Security Best Practices - Евгений Недашковский

Евгений Недашковский

Senior DBA

• LinkedIn

• KSSUG (LinkedIn)

• KSSUG (Facebook)

Find me

• URKAVTO

• UKRTELECOM

• KPMG

• Altareturn

Page 3: SQL Server Security Best Practices - Евгений Недашковский

Системы управления базами

данных (СУБД)

Система управления базами данных (СУБД) – это

программа, которая позволяет создавать, обновлять и

администрировать базы данных. Большинство систем

управления реляционными базами данных использует

SQL (Structured Query Language) для обеспечения

своей функциональности.

В целом различные СУБД схожи между собой, но

синтаксис языка SQL может немного отличаться.

https://www.codecademy.com/articles/sql-rdbms

Page 4: SQL Server Security Best Practices - Евгений Недашковский

SQLite

Способен хранить всю базу данных в одном

небольшом файле. Вследствие этого одним из самых

больших преимуществ SQLite является возможность

работы с данными локально, без необходимости

подключения к удалённому серверу.

SQLite является популярным выбором для работы с

базами данных в мобильных гаджетах и портативной

электронике.

Page 5: SQL Server Security Best Practices - Евгений Недашковский

MySQL

MySQL является самой популярной СУБД с открытым кодом.

Используется, как правило, для разработки веб-приложений, часто в связке с PHP.

Основные преимущества MySQL том, что она проста в использовании, недорога, относительно надёжна (существует с 1995 г.) и имеет большое сообщество, в котором могут помочь и ответить на возникающие вопросы.

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

Page 6: SQL Server Security Best Practices - Евгений Недашковский

PostgreSQL

PostgreSQL является СУБД с открытым исходным кодом и контролируется ни одной корпорацией.

Зачастую используется для разработки веб-приложений. Разделяет многие из тех же преимуществ MySQL, в том числе простоту в использовании, дешевизну, надёжность, и большое комьюнити. Она также предоставляет некоторые дополнительные функции, такие как поддержка внешнего ключа (foreign key), не требуя сложной конфигурации.

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

Page 7: SQL Server Security Best Practices - Евгений Недашковский

Oracle DB

Oracle DB принадлежит корпорации Oracle и её код не

является открытым.

Oracle используется для больших приложений, в

частности, в банковской сфере. Большинство

крупнейших банков в мире работает с Oracle, потому

что Oracle предлагает мощную комбинацию

технологий и комплексных, интегрированных бизнес-

решений, в том числе разработанных специально для

банков.

Основным недостатком использования Oracle

является то, что данная СУБД является

проприетарной и довольно дорогой.

Page 8: SQL Server Security Best Practices - Евгений Недашковский

SQL Server

SQL Server принадлежит Microsoft и как и Oracle DB,

её код является закрытым.

SQL Server используется в основном крупными

корпоративными приложениями.

Основное различие между Oracle и SQL Server

заключается в том, что SQL Server поддерживает

только операционную систему Windows.

Microsoft предлагает бесплатную версию начального

уровня под названием SQL Server Express, но с ростом

ваших потребностей стоимость СУБД может

значительно вырасти.

Page 9: SQL Server Security Best Practices - Евгений Недашковский

Что популярнее?

http://db-engines.com/en/ranking_trend

Page 10: SQL Server Security Best Practices - Евгений Недашковский

Общие рекомендации

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

Служба SQL Server Browser должна быть запущена только в случае использования именованных экземпляров SQL Server с динамическими портами TCP/IP . Для подключения к экземпляру SQL Server по умолчанию эта служба не нужна. При использовании именованных экземпляров со статическими портами, соответствующие данные так же можно указать в строке подключения.

Служба VSS Writer позволяет осуществлять резервное копирование и восстановление с помощью технологии теневого копирования тома (Volume Shadow Copy). Если вы не используете её – отключите.

Настраивайте только те сетевые интерфейсы, которые вы намереваетесь использовать.

Page 11: SQL Server Security Best Practices - Евгений Недашковский

Общие рекомендации

Выработайте политики с учётом разрешённых сетевых подключений. Используйте 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

Page 12: SQL Server Security Best Practices - Евгений Недашковский

Служебные учётные записи

Рекомендуется, чтобы все службы SQL Server службы запускались из-под отдельных учётных записей.

Лучше всего использовать доменные учётные записи, которые не являются членами групп администраторов ни в домене, ни на локальном сервере.

Неплохим вариантом будет использование управляемых учётных записей (managed service accounts). Управляемая учётная запись – это отдельный вид доменной учётной записи, которая закрепляется за компьютером и может использоваться для запуска служб. Создаётся предварительно администратором домена. С помощью данной учётной записи невозможно подключиться к компьютеру и после назначения обеспечивает автоматическое управление паролями и SPN. Может быть проблематичным в использовании, так как создаётся и настраивается только с помощью PowerShell (без помощи графического интерфейса).

Всегда используйте Configuration Manager SQL Server, для изменения учётных записей, от которых запущены службы.

Page 13: SQL Server Security Best Practices - Евгений Недашковский

Служебные учётные записи

Учётная запись службы агента SQL Server требует прав системного администратора (sysadmin) на уровне инстанса SQL Server.

Начиная с SQL Server 2005 каждый шаг в задаче агента может быть настроен на использование прокси, которые инкапсулируют альтернативные учетные данные. Под учётной записью (CREDENTAIL) подразумевается объект базы данных в котором сохраняется имя пользователя ОС и пароль. Одна такая учётная запись может быть использована для нескольких прокси. Прокси можно использовать для:

Скриптов ActiveX

Операционной системы (CmdExec)

Агентов репликации

Запрос и команд служб Аналитики (Analysis Services)

Выполнения пакетов SSIS (в т.ч. и планов обслуживания)

PowerShell

Page 14: SQL Server Security Best Practices - Евгений Недашковский

Использование антивируса

Следующие пути и расширения файлов необходимо исключить из проверки антивирусом: Файлы баз данных (как правило, они имеют следующие расширения):

.mdf

.ldf

.ndf

Файлы резервных копий:

.bak

.trn

Файлы каталогов полнотекстового поиска (обычно находятся по следующему пути) :

Инстанс по умолчанию: …\MSSQL\FTDATA

Именованный инстанс: …\MSSQL$instancename\FTDATA

Page 15: SQL Server Security Best Practices - Евгений Недашковский

Использование антивируса

Файлы трассировок (эти файлы могут быть созданы либо во время создания трассировки вручную, либо при активации С2 аудита):

.trc

Файлы аудита:

.sqlaudit

Файлы данных службы аналитики (Analysis Services):

…\MSSQL.X\OLAP\Data

Файлы резервных копий службы аналитики:

…\MSSQL.X\OLAP\Backup

Файлы журналов службы аналитики:

…\MSSQL.X\OLAP\Log

Page 16: SQL Server Security Best Practices - Евгений Недашковский

Использование антивируса

Список процессов которые необходимо исключить из

сканирования:

…\MSSQL11.<Имя Инстанса>\MSSQL\Binn\SQLServr.exe

…\MSRS11.<Имя Инстанса>\Reporting

Services\ReportServer\Bin\ReportingServicesService.exe

…\MSAS11.< Имя Инстанса >\OLAP\Bin\MSMDSrv.exe

Антивирус можно использовать на кластеризированных

машинах, но только в том случае, если он

поддерживает кластеризацию. Также убедитесь, что

вы исключили из сканирования следующие директории:

Q:\ (Quorum drive)

C:\Windows\Cluster

Page 17: SQL Server Security Best Practices - Евгений Недашковский

Привилегии администратора

Для упрощения проверки не добавляйте группам роль

администратора (sysadmin). Желательно выдавать

подобные полномочия индивидуальным учётным

записям.

Если локальная builtin\administrators (локальные

администраторы компьютера) имеет

административный доступ на уровне SQL Server,

лучше его забрать.

Page 18: SQL Server Security Best Practices - Евгений Недашковский

Блокировка системных

хранимых процедур

Отключите xp_cmdshell если в нет ней явной

необходимости.

Отключите компоненты COM после их полной

конвертации в SQLCLR.

Если в отправке почты (Database Mail) нет

необходимости – отключите её.

Используйте Policy-Based Management для

принудительной стандартизации расширенных

процедур.

Page 19: SQL Server Security Best Practices - Евгений Недашковский

Использование гостевого

пользователя

Логин (login) СУБД может получить доступ к объектам

баз данных только в случае, если он сопоставлен с

соответствующим пользователем (user) внутри.

Существует специальный гостевой пользователь

(guest), который позволяет обойти это правило. Так

как любой логин получает доступ к базе при наличии

в ней гостевого пользователя, не рекомендуется

использовать его где-либо кроме системной базы

MSDB. Так некоторые функции SQL Server станут

недоступными, не удаляйте гостевого пользователя

из базы MSDB.

Page 20: SQL Server Security Best Practices - Евгений Недашковский

Автономные базы данных

Начиная с SQL Server 2012 был предложен концепт

автономных баз данных (contained databases).

Автономная база данных содержит в себе все

настройки и метаданные для своего

функционирования в пределах инстанса. С точки

зрения безопасности проще ограничить

пользователей конкретной базой данных.

Page 21: SQL Server Security Best Practices - Евгений Недашковский

Автономные базы данных

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

Защитите резервные копии автономных баз данных с помощью пароля.

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

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

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

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

Page 22: SQL Server Security Best Practices - Евгений Недашковский

Сетевая безопасность

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

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

Отключите протоколы NETBIOS и SMB, если в них нет необходимости.

Не разрешайте машинам, на которых установлен SQL Server выход в интернет.

Настройте именованные инстансы SQL Server для использования статических портов TCP/IP вместо динамических.

Настройте инстанс по умолчанию для SQL Server на использование какого-нибудь другого порта кроме 1433.

Включите опцию сокрытия инстансов SQL Server в сети

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

Настройте расширенную (Extended Protection) как для привязки сервисов так и каналов (service binding and channel binding).

Page 23: SQL Server Security Best Practices - Евгений Недашковский

Аудит

Аудит является ресурсоёмким процессом. Активируйте его только с пониманием конкретных задач и целей.

Используйте внутренний аудит SQL Server для наиболее безлопастного и гранулярного аудита.

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

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

DML (язык модификации данных) может быть отслежен с помощью трассировки событий (trace events) либо функции SQL Server Audit.

Page 24: SQL Server Security Best Practices - Евгений Недашковский

Управление на базе политики

Policy-Based Management (PBM)

Выберите тот аспект (facet) РВМ, который хотите

настроить.

Укажите условие, которые описывает нужный аспект.

Укажите политику, которая содержит необходимое

условие, дополнительное условие которое содержит

целевые фильтры и способ оценки.

Проверьте, удовлетворяет ли выбранный инстанс SQL

Server обозначенной политике.

Page 25: SQL Server Security Best Practices - Евгений Недашковский

We are impressed with your security level :-DAny questions?