+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 91.78 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Скрытые возможности MS SQL: расширенная функциональность или уязвимость системы?

19.07.2012 11:33
Константин Марченко

Скрытые возможности MS SQL: расширенная функциональность или уязвимость системы?

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

Цель данной статьи - обратить внимание администраторов баз данных и специалистов по информационной безопасности на данную проблему и показать один из вариантов реализации атаки на СУБД MS SQL, в результате которой потенциальный нарушитель получит доступ не только к хранимой в базе данных информации, но и полный контроль над сервером СУБД.

Краткий обзор СУБД MS SQL 2000

Рассмотрим более подробно конфигурацию MS SQL по умолчанию. В данной СУБД есть несколько служебных баз данных, создаваемых в процессе его установки (master, tempdb, model, msdb, pubs) и тестовая база данных (Northwind).

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

Хранимая процедура  - это набор скомпилированных команд T-SQL, доступных напрямую SQL-серверу. Команды размещаются в хранимой процедуре и выполняются как одно целое или подпрограмма по аналогии с другими языками программирования. Хранимые процедуры находятся на сервере СУБД и используются, когда необходимо часто выполнять повторяющиеся в определенном порядке запросы к серверу MS SQL.

Расширенные хранимые процедуры  - это разновидность обычных хранимых процедур, но в них можно использовать обращения к подпрограммам, написанным на языке С или С++, что позволяет расширить возможности T-SQL. Обычно расширеннные хранимые процедуры представляются в виде динамических библиотек. Имена этих процедур как правило начинаются с префикса xp (eXtended Procedure). Вместе с MS SQL поставляется большой набор расширенных хранимых процедур. Наиболее интересная из них - xp_cmdshell. Она предоставляет доступ к командной строке операционной системы. Так как данная хранимая процедура обладает широкими возможностями, то по умолчанию доступ к ней разрешен только владельцу базы данных master, то есть пользователю, наделенному ролью "Администратор базы данных".

Теперь рассмотрим способы аутентификации в MS SQL. Первый вариант - аутентификация средствами Windows, второй - аутентификация средствами самой СУБД (в том случае если при установке MS SQL был выбран смешанный режим аутентификации).

В первом варианте аутентификация пользователя проводится средствами операционной системы, и вход осуществляется с использованием учетных данных пользователя ОС Windows. Стоит отметить, что в этом случае при установке MS SQL всем пользователям операционной системы, входящим в группу "Администраторы", автоматически назначается роль "Администратор базы данных".

Во втором случае аутентификацию проводит СУБД, используя собственную базу учетных записей пользователей. При установке MS SQL будет создана учетная запись "sa" с ролью "Администратор базы данных".

Проникновение

Рассмотрим сценарий атаки на сервер с установленным MS SQL Server 2000. Потенциальному нарушителю необходимо получить доступ к MS SQL с ролью "Администратор базы данных", а это может легко произойти если:
  • пароль учетной записи "sa" пустой или может быть легко подобран, что часто встречается, когда СУБД используется в тестовой эксплуатации, либо как платформа для разработчиков;
  • неправильно назначены роли пользователей в самой СУБД: учетная запись обычного пользователя СУБД обладает ролью "Владелец базы данных" master, либо ролью "Администратор базы данных".
  • пароль некоторой учетной записи, входящей в группу "Администраторы", пустой или может быть легко подобран или определен (задача получения доступа к серверу, зная пароль администратора, на первый взгляд может показаться странной, но, например, если к серверу разрешено подключение только к портам MS SQL, описываемый в статье способ позволяет выполнять команды ОС).

Затем потенциальный нарушитель может выполнить расширенную хранимую процедуру xp_cmdshell, указав ей в качестве параметра команду операционной системы, создающую пользователя и включающую его в группу "Администраторы", чтобы получить полный доступ к серверу, на котором установлена СУБД.

Для этого необходимо запустить SQL Server Enterprise Manager, входящий в состав MS SQL Server (ссылка на данную оснастку находится в Пуск->Программы->Microsoft SQL Server). Далее в Enterprise Manager требуется создать новое поключение к SQL-серверу, и, после установления связи с сервером, создать новое представление (view) для базы данных master. 

В появившемся окне, предназначенном для ввода SQL-запросов, можно ввести и выполнить следующие команды для создания нового пользователя операционной системы с правами администратора:

  • EXEC xp_cmdshell 'net user test_user test_passW0rd /add'  - вызывает хранимую процедуру xp_cmdshell и передает ей в качестве параметра команду операционной системы, создающую в системе нового пользователя test_user с паролем test_passW0rd.
  • EXEC xp_cmdshell 'net localgroup Administrators test_user /add'  - данная команда добавляет пользователя test_user в локальную группу "Администраторы".

Если сервер, на котором установлена СУБД MS SQL, выполняет также и другие функции (контроллер домена, услуги корпоративной почты, хранение архива документов), потенциальный ущерб от проникновения на данный сервер при помощи атаки на MS SQL существенно увеличивается.

Рекомендации

Для устранения описанной уязвимости и снижения риска от проникновения нарушителя на сервер с установленной СУБД MS SQL рекомендуется:
  1. Четко разграничить производственную и тестовую среду (среду разработки). Производственные сервера не должны содержать тестовых баз данных или инструментария разработчиков.
  2. Исключить возможность совмещения различных корпоративных сервисов на сервере с установленной СУБД MS SQL.
  3. Использовать сложные пароли для административных учетных записей как операционной системы, так и СУБД - не менее 15 символов, содержащих буквы в разных регистрах, цифры и специальные символамы.
  4. Удалить из пользователей MS SQL группу "Администраторы" операционной системы и четко прописать, какие учетные записи операционной системы имеют доступ к базам данных.
  5. Избегать предоставления доступа к расширенным хранимым процедурам для пользователей СУБД.
  6. Использовать привилегированные учетные записи СУБД только для выполнения административных задач.
  7. Запускать процесс MS SQL Server с правами учетной записи непривилегированного пользователя. Это серьезно усложнит проникновение в систему, так как потенциальный нарушитель в лучшем случае сможет выполнять команды только как пользователь с ограниченными привилегиями.
  8. Протоколировать системные события MS SQL Server, что позволит упростить процесс слежения за действиями потенциального нарушителя.
  9. Регулярно устанавливать обновления операционной системы Windows и СУБД MS SQL.
  10. Ограничить с помощью межсетевого экрана доступ к портам MS SQL для пользователей, не использующих этот сервис.

Константин Марченко,
аналитик по информационной безопасности, Digital Security

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

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

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

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



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года