Безопасная установка Microsoft SQL Server 2000

Опубликовано: 13 Апреля, 2023

SQL-сервер — это очень популярная система управления реляционными базами данных, т. е. РСУБД. Своей популярностью она обязана не только активным маркетинговым действиям производителя, но и тому, что это очень эффективная, стабильная, масштабируемая и достаточно безопасная платформа базы данных. К сожалению, производители серверов предпочитают концентрироваться на эффективности, а не на безопасности, и если они, наконец, сделают это, то будет слишком поздно. Самый серьезный противник сервера Microsoft SQL, сервер Oracle9i, был представлен на рынке в прошлом году под прозвищем «неуязвимый», что означает «невзламываемый». В то время его меры безопасности были не более чем красивым лозунгом [1][2], а проблемы с безопасностью все еще исправляются [3]. В популярном среди пользователей сервере Linux PostgreSQL недавно были устранены серьезные ошибки [4][5][6]. Также были проблемы с MySQL [7] и Sybase [8] — здесь не исключение сервер Microsoft SQL [10]. Может ли использование сервера базы данных быть безопасным в связи с этими фактами? Да, если сервер правильно защищен.


Введение


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


Другие ограничения связаны с операционной системой сервера: служба SQL Server 2000 может быть установлена только на Windows 2000 Server (также Advanced и Datacenter) или Windows NT 4.0 Server (или Enterprise Edition). Эта последняя платформа больше официально не поддерживается Microsoft [10], поэтому в этой статье основное внимание будет уделено установке SQL Server 2000 на платформу Windows 2000 Server. Из соображений сетевой безопасности этот сервер не может быть сервером домена. Он должен принадлежать всему домену как рядовой сервер, чтобы пользователи могли использовать службы SQL Server без необходимости дополнительной аутентификации (что абсолютно не означает ухудшение безопасности, но повысит ее из-за отсутствия немного защищенной SQL-аутентификации). Тем не менее, из соображений безопасности необходимо установить файл Service Pack 3 для Windows 2000 и последние исправления [11]. Кроме того, вы должны усилить безопасность сервера, установив параметры GPO и/или локальной политики безопасности [12]. Чтобы применить соответствующие настройки к серверу, не являющемуся контроллером домена, найдите приложение «Шаблоны безопасности» и перейдите к имени файла «hisecws» [13]. И последнее, но не менее важное: вы должны убедиться, что пароль учетной записи системного администратора защищен паролем, который трудно взломать. Как бы тщательно вы ни настраивали безопасность, если злоумышленник сможет угадать пароль системного администратора, уникальный пароль не защищен от атак методом перебора.


Установка


Установка SQL Server не начинается обычным образом — сначала вам нужно создать учетную запись для службы. Если репликация не требуется и другие механизмы не используют инициированные SQL соединения с другими компьютерами, эта учетная запись должна быть определена в базе локальных учетных записей (т. е. SAM). В противном случае вы должны определить его в домене. Он должен входить в группу «Пользователи» (в случае доменной учетной записи — в группу «Пользователи домена»). Если вы не собираетесь использовать агент SQL Server, вы можете даже отказаться от этого уровня разрешений и поместить учетные записи в группу «Гости» (или «Гости домена»). Давайте выберем «sqlsvc» в качестве имени учетной записи в следующем примере процесса установки. На данный момент вы не даете никаких дополнительных разрешений — право входа в систему в качестве службы будет предоставлено программой установки. Не забудьте выбрать длинный и сложный пароль, потому что от этого зависит безопасность ваших данных.


Подготовив учетную запись, запустите установку — после вставки установочного компакт-диска должен появиться экран приветствия. Выберите вариант компонентов SQL-сервера, а затем установите драйвер базы данных. Если ваш компьютер не запускает компакт-диски автоматически (это рекомендуемая мера безопасности), вам придется запустить файл setup.bat в корневом каталоге компакт-диска вручную. Появится мастер установки службы SQL Server. На первом экране нажмите кнопку Далее, на следующем — целевое место установки — Локальный компьютер. На следующем экране представлены доступные параметры установки: создание новой установки, изменение (или удаление) текущей установки и, наконец, дополнительные параметры. Выберите вариант по умолчанию, верхний. Затем пришло время для заполнения ваших личных данных. Нажав кнопку «Далее», вы попадете на экран настройки лицензии. Подтвердив это, выберите элементы установки — средний вариант, Серверные и клиентские инструменты, который предоставляется для установки служб сервера. Затем выберите установку SQL Server. Вы можете запустить до 16 экземпляров, т.е. независимо работающих служб SQL-сервера на одном компьютере. Обычно вы будете использовать только один экземпляр за раз — в противном случае вам придется столкнуться с затратами на дополнительные лицензии и фактом ограничения эффективности. Вот почему вам следует выбрать вариант установки по умолчанию, оставив поле «По умолчанию» отмеченным, как было с самого начала, и перейти к следующему экрану установки. Здесь вы выбираете конкретные элементы установки и их расположение на жестком диске. Нажмите « Типичная установка», но не переходите к следующему экрану. Подумайте, на каком диске вы должны хранить базы данных (опция «Файлы данных» ) — хранение их на выделенном диске (или, что еще лучше, в системе массива хранения, оснащенной жесткими дисками SCSI) позволит достичь оптимальной эффективности и немного повысить безопасность данных.



Изображение 26109
Рис. 1: Варианты установки SQL Server


Если вы выбрали выделенный диск, не забудьте настроить его защиту (конечно, это должен быть раздел NTFS). Правильные разрешения для диска хранения данных:




    1. Администраторы: полный доступ
    2. СИСТЕМА: Полный контроль
    3. sqlsvc: чтение и просмотр содержимого папки

Напоминание: данные SQL не должны сжиматься файловой системой NTFS, так как это может привести к серьезному падению эффективности или даже ошибкам при выполнении запросов. Если вы выбрали сжатый раздел, вы должны остановить службу SQL сразу после установки и распаковать каталог, содержащий данные. Оставьте расположение файла программного обеспечения по умолчанию, т. е. C:Program FilesMicrosoft SQL Server, как есть. Этот каталог займет примерно 120 мегабайт места на жестком диске C:. После нажатия кнопки «Далее» вам нужно будет предоставить программе данные предыдущей настроенной учетной записи. SQL Server устанавливает две службы (MSSQLServer и SQLServerAgent), поэтому есть возможность определить отдельные учетные записи для каждой из них, но вам это не понадобится.



Изображение 26110
Рис. 2: Настройка учетной записи службы


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



Изображение 26111
Рис. 3: Настройка режима аутентификации


Впоследствии, нажав кнопку «Далее », вы перейдете к экрану, где вам будет предложено ввести информацию о типе и количестве приобретенных лицензий. После этого программа установки SQL Server начнет процедуру установки. По завершении на экране появится надпись «Настройка завершена». Установка Service Pack 2 для SQL Server — ваш следующий этап. Загрузите 49-мегабайтный файл SQL2KSP2.exe с веб-сайта Microsoft и запустите его на своем сервере. Важное напоминание: Service Pack 2 можно установить только на полную версию SQL Server; ознакомительную версию нельзя «отремонтировать» или защитить с помощью более новых исправлений, поскольку для этого требуется установить пакет обновления 2 (SP2). После запуска файла SQL2KSP2.exe вас спросят о папке установки. Вопреки тому, что подсказывает вам ваша интуиция, этот вопрос касается каталога, в котором должны быть распакованы временные установочные файлы, а не каталога службы SQL Server. Выберите любой временный каталог, например C:winnt empsql2ksp2 или C:sql2ksp2 по умолчанию. Когда распаковка будет завершена, вы получите сообщение «Пакет успешно доставлен». В этот момент вы можете начать правильную установку Service Pack 2 для SQL Server 2000. Запустите файл setup.bat, который был скопирован в указанный ранее каталог. Затем вы пройдете два экрана мастера установки. В окне «Подключиться к серверу» отметьте параметр по умолчанию для выбора аутентификации на сервере SQL — Информация об учетной записи Windows ….. — что заставит вас использовать режим аутентификации Windows. В тот момент, когда пакет обновления 2 для SQL Server 2000 будет завершен, на экране появится следующая информация: «Теперь вам следует сделать резервную копию ваших баз данных master и msdb, так как эта установка обновила их содержимое» — этот совет нельзя игнорировать. Однако, если вы не устанавливали никаких баз данных и не меняли настройки производителя сервера, вам не нужно обращать на это внимание. После подтверждения появится окно «установка завершена».


Программный пакет Microsoft Data Access Components версии 2.6 является одним из компонентов SQL Server 2000. Пакет обновлений 2 обновляет его до версии 2.6 SP2 [12]. Вам следует обновить его до версии 2.7 из-за ошибки MS02-065.[13]. Для этого вам необходимо подключиться к веб-сайту Microsoft [14] и выбрать из списка опцию MDAC 2.7 Refresh for x86 — English, а затем нажать кнопку «Перейти к загрузке». Скачав патч, запустите файл MDAC_TYP.EXE. Дав свое согласие с лицензионным соглашением, нажмите «Далее», чтобы программа проверила возможность установки MDAC 2.7. Далее вы увидите экран «Установка программного обеспечения» и довольно забавное сообщение «Нажмите «Готово», чтобы начать установку». Компоненты MDAC будут скопированы в системы после того, как вы нажмете кнопку «Готово». На следующем экране «Установка завершена» нажмите «Закрыть». Текущую установленную версию MDAC можно проверить в разделе реестра HKLMSOFTWAREMicrosoftDataAccess.



Изображение 26112
Рис. 4: Обновление до версии 2.7


Последним патчем, который необходимо установить на ваш компьютер, является патч MS02-061 [16]. Это необходимо для обновления служебных файлов SQL Server путем удаления основных дыр в безопасности, обнаруженных в Service 2. К сожалению, в отличие от предыдущих исправлений, исправления для SQL Server не устанавливаются по умолчанию вместе с системой, и вы должны сделать это вручную. Перейдите к бюллетеню по безопасности Microsoft [16] и перейдите по ссылке, связанной с проблемой Q316333 [17]. Он содержит информацию об этом исправлении и всех предыдущих исправлениях безопасности SQL Server. Патчи для SQL Server являются кумулятивными, т. е. самое последнее исправление для любого компонента будет содержать все исправления для этого компонента продукта. Если это так, все, что вам нужно, это установить последний патч. Перейдите к информации об исправлении: «Выпуск от 16 октября 2002 г.», а затем загрузите файл 8.00.0686_enu.exe. Это самораспаковывающийся ZIP-файл размером 10 МБ (точнее, это WinZip Self-Extractor). После запуска файла вам будет предложено указать каталог назначения, в который вы хотите скопировать файлы исправлений — используйте временный каталог, например, C:WINNTTEMPMS02-061 (будет создан соответствующий подкаталог). автоматически).



Изображение 26113
Рис. 5: Распаковка патча MS02-061


После извлечения файлов вы увидите сообщение о количестве скопированных файлов. Закройте WinZip. Перейдите в указанный ранее каталог и найдите подкаталог «x86». Он содержит файлы исправлений, которые необходимо вручную скопировать в соответствующие каталоги, а именно файлы SQL Server и README.TXT, содержащие инструкции по установке.



Изображение 26114
Рис. 6: Файлы патчей MS02-061 после извлечения


Эти инструкции описывают файлы исправлений и операции, необходимые для установки:


1. Остановка служб SQL Server и агента SQL Server. Для этого можно либо использовать приложение «Службы», входящее в состав средств администрирования компьютера, либо выполнить две операции в командной строке:



чистая остановка sqlserveragent


чистая остановка mssqlserver


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




  • Файлы службы SQL Server из каталога C:Program FilesMicrosoft SQL ServerMSSQLBinn (если вы выбрали расположение файлов службы SQL Server по умолчанию и установили экземпляр по умолчанию — в противном случае вам придется искать соответствующий каталог для каждого установленного экземпляра):


SQLSERVR.EXE, ODSOLE70.DLL, XPQUEUE.DLL, XPREPL.DLL, XPWEB70.DLL, XPLOG70.DLL, SSNETLIB.DLL, SQLCMDSS.DLL, SQLAGENT.DLL, SQLAGENT.EXE, XPSTAR.DLL




  • Символы отладки службы, а именно C:Program FilesMicrosoft SQL ServerMSSQLBinnExeSQLSERVR.PDB


  • Компоненты управления и вспомогательные службы. Скопируйте следующие файлы из каталога C:Program FilesMicrosoft SQL ServerMicrosoft SQL Server80COM:


IMPPROV.DLL, RDISTCOM.DLL, REPLMERG.EXE, RINITCOM.DLL, LOGREAD.EXE, QRDRSVC.EXE



  • Скрипты установки службы SQL Server, т.е. файлы из каталога C:Program FilesMicrosoft SQL ServerMSSQLinstall:


INSTDIST.SQL, REPLCOM.SQL, REPLMERG.SQL, REPLTRAN.SQL, REPLSYS.SQL



  • Файлы ресурсов языковой версии — для англоязычной версии SQL Server возьмите следующие файлы из каталога C:Program FilesMicrosoft SQL ServerMSSQLBinnResources1033:


SQLCMDSS.RLL, SQLAGENT.RLL



  • Файлы DISTMDL.* из каталога, содержащего данные базы данных SQL — в данном случае это будет F:MSSQLData

3. Копирование обновленных версий файлов из каталога, в который был загружен патч MS02-061



  • Перейдите в C:Program FilesMicrosoft SQL ServerMSSQLBinn и скопируйте файлы:


SQLSERVR.EXE, ODSOLE70.DLL, XPQUEUE.DLL, XPREPL.DLL, XPWEB70.DLL, XPLOG70.DLL, SSNETLIB.DLL, SQLCMDSS.DLL, SQLAGENT.DLL, SQLAGENT.EXE, XPSTAR.DLL



  • Перейдите в папку C:Program FilesMicrosoft SQL ServerMSSQLBinnExe и скопируйте файл SQLSERVR.PDB из исполняемого файла. подкаталог, расположенный в каталоге, содержащем патч
  • Перейдите в C:Program FilesMicrosoft SQL ServerMicrosoft SQL Server80COM и скопируйте файлы


IMPPROV.DLL, RDISTCOM.DLL, REPLMERG.EXE, RINITCOM.DLL, LOGREAD.EXE, QRDRSVC.EXE



  • Перейдите в папку C:Program FilesMicrosoft SQL ServerMSSQLinstall и скопируйте файлы


INSTDIST.SQL, REPLCOM.SQL, REPLMERG.SQL, REPLTRAN.SQL, REPLSYS.SQL



  • Перейдите в C:Program FilesMicrosoft SQL ServerMSSQLBinnResources1033 и скопируйте файлы


SQLCMDSS.RLL, SQLAGENT.RLL



  • Перейдите в каталог, содержащий базы данных (в нашем примере F:MSSQLData) и скопируйте


DISTMDL.LDF, DISTMDL.MDF


4. Запустите SQL Server и агент SQL Server. Вы можете использовать либо приложение «Сервисы», либо выполнить команды:



чистый запуск mssqlserver


чистый запуск sqlserveragent


5. Запустите командную строку (то есть программу CMD.EXE — если вы ее еще не запустили) и перейдите в каталог, содержащий разархивированные файлы патчей (используйте «cd C:WINNTTEMPMS02-061x86 ” команда) — здесь находятся дополнительные файлы, необходимые для завершения установки патча.


6. Запустите сценарии SQL Qfe356326.sql и SecurityHotfix.sql один за другим. Для этого воспользуйтесь утилитой osql.exe (параметры ее запуска отображаются после ввода команды osql.exe -?). Запустите соответствующие скрипты, используя следующие команды (соблюдайте последовательность!):



osql -E -n -iQfe356326.sql


osql -E -n -iSecurityHotfix.sql


Изображение 26115
Рис. 7: Установка SQL-скриптов для применения набора исправлений…


7. Запустите утилиту servpriv.exe. Он предназначен для предотвращения доступа SQL Server к данным конфигурации службы, содержащимся в разделе реестра HKLMSYSTEMCurrentControlSetServicesMSSQLServer. Любые избыточные разрешения по умолчанию позволят повысить права учетной записи пользователя, связанные со службой (в нашем примере это «sqlsvc»), до уровня привилегий LocalSystem. Аргументом вызова скрипта является имя экземпляра — в нашем примере имя экземпляра по умолчанию — MSSQLServer. Для этого используйте команду:



servpriv MSSQLServer


Изображение 26116
Рис. 8: … и установить ограниченный набор сервисных привилегий в реестре


Теперь вы завершили установку SQL Server и всех необходимых и текущих исправлений. Чтобы завершить операцию, вы должны изменить настройки службы для большей безопасности. Во-первых, используйте приложение «Enterprise Manager». Это приложение MMC (Microsoft Management Console), ярлык для него включен в программный пакет «Microsoft SQL Server». Запустите это приложение и подождите, пока оно свяжется с локально установленным сервером SQL. Через определенное время вы увидите окно «SQL Server Enterprise Manager». Разверните дерево управления, расположенное слева, и перейдите к имени «(локального) сервера Windows NT» (что означает: локальная установка SQL на основе проверки подлинности Windows). Щелкните правой кнопкой мыши на (local) и в расширенном меню выберите Properties. Приложение установит связь с SQL-сервером (после того, как соединение будет установлено, значок стрелки рядом с именем (локальный) изменит свой цвет), после чего вы увидите диалоговое окно «Свойства SQL-сервера (Настройка) — (локальный)». '. Перейдите на вкладку «Безопасность» и выберите параметр «Вход во все базы данных». Затем нажмите кнопку «ОК» и перезапустите службу, чтобы выполнить операции, предусмотренные во всплывающем меню сервера: «Остановить», а затем «Запустить». С этого момента служба будет входить в систему при каждом подключении.



Изображение 26117
Рис. 9: Регистрация подключений к SQL Server


Следующий патч связан с ограничениями привилегий в каталоге, содержащем служебные файлы, а именно C:Program FilesMicrosoft SQL ServerMSSQL. По умолчанию пользователи SQL Server имеют полный доступ к этому каталогу, его подкаталогам и файлам. В этом нет необходимости — ограничьте учетные записи пользователей, связанные с 'sqlsvc', разрешениями на чтение и выполнение, список содержимого папки и чтение. Вы также можете проверить разрешения, относящиеся к каталогу, содержащему данные службы SQL — это подкаталог MSSQL, принадлежащий каталогу (или диску), выбранному на этапе установки — в нашем примере это F:MSSQL. Разрешения по умолчанию означают:



  1. Администраторы: полный доступ
  2. sqlsvc: полный доступ

Пользователь, имеющий право на чтение файлов базы данных (в нашем примере файлы, содержащиеся в каталоге F:MSSQLData), может читать данные, содержащиеся в этом каталоге, независимо от привилегий, определенных в SQL Server. Поэтому лучше всего предоставить минимальный доступ — желательно, оставив настройки по умолчанию.


Последняя операция связана с изменением пароля самой привилегированной учетной записи доступа к SQL Server — привилегии SA. Несмотря на то, что «Режим проверки подлинности Windows» эффективно позволяет пользователю входить/подключаться к SQL Server только с проверкой подлинности Windows, непреднамеренное переключение в «Смешанный режим» (названный «SQL Server и Windows» в настройках, доступных в «Диспетчере предприятия»). ') может привести к тому, что учетная запись SA будет доступна без пароля. Чтобы изменить пароли, используйте утилиту osql.exe, а затем вызовите процедуру sp_password, чтобы наложить любые дополнительные ограничения на предоставленный пароль, которые вы хотите. При запуске osql.exe введите аргумент -E (проверка подлинности Windows, необходимая для подключения к локальному серверу SQL). Для настройки процедуры sp_password требуются следующие параметры:



  1. имя учетной записи @loginame='sa' и
  2. новый пароль @new='anynewpassword' (конечно, вводите собственные пароли, желательно более сложные).

Имена параметров процедуры SQL всегда начинаются с префикса «@», за которым следует знак равенства и значение (имена должны быть заключены в апострофы, параметры должны быть разделены запятыми). После входа в процедуру запустите ее с помощью команды «go», а затем выйдите из программы osql с помощью команды «quit». На рис. 10 показана процедура смены пароля.



Изображение 26118
Рис. 10: Изменение пароля учетной записи SA


Для получения дополнительной информации по этой теме я рекомендую прочитать статью о безопасности SQL Server 2000, доступную на веб-сайте Microsoft TechNet [18].


Библиография


[1] http://online.securityfocus.com/news/309
[2] http://www.cert.org/advisories/CA-2002-08.html
[3] http://otn.oracle.com/deploy/security/alerts.htm
[4] http://online.securityfocus.com/archive/1/288036
[5] http://online.securityfocus.com/archive/1/288305
[6] http://online.securityfocus.com/archive/1/288334
[7] http://online.securityfocus.com/archive/1/303182
[8] http://www.appsecinc.com/resources/alerts/sybase/
[9] http://www.appsecinc.com/resources/alerts/db2/
[10] http://www.microsoft.com/technet/security/current.aspx
[11] http://www.microsoft.com/windows2000/downloads/servicepacks/sp3/default.asp
[12] http://www.microsoft.com/data/MDAC26Info/readmerefresh.htm
[13] http://www.microsoft.com/technet/security/bulletin/MS02-065.mspx
[14] http://www.microsoft.com/data/download_270RTM.htm
[15] http://www.microsoft.com/technet/security/bulletin/MS02-040.mspx
[16] http://www.microsoft.com/technet/security/bulletin/MS02-061.mspx
[17] http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316333
[18] http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/sp3sec00.mspx