Каковы риски безопасности при использовании cmdexec?

Мы находимся в процессе перехода с SQL 2000 на SQL 2005. У нас есть сотни пакетов DTS, которые команда разработчиков неохотно пересматривает, используя SSIS.

При переносе этих пакетов в SSIS я столкнулся с проблемой - многие из этих пакетов читаются из файлов Excel.

Учитывая, что мой производственный Box является 64-битным, я вынужден использовать подсистему CmdExec для вызова 32-битной среды выполнения для выполнения этих пакетов.

Мой вопрос здесь: Каковы риски безопасности, связанные с использованием подсистемы CmdExec для планирования этих пакетов служб SSIS в качестве заданий агента SQL?

Спасибо Радж

3 ответа

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

Например, если пользователь может создать задание, которое будет запускаться в контексте вашего sqlagent, а ваш агент sql был чрезмерно привилегированным (права на изменение безопасности), он может предоставить себе повышенные привилегии или нанести вред вашей машине.

В SQL 2008 появился переключатель для DTExec, который позволяет запускать пакеты в 32-разрядном режиме с помощью встроенной задачи агента SQL для служб SSIS. На вкладке выполнения свойств шага задания есть флажок для 32-битного, который переводится в ключ "/X86" при просмотре командной строки.

Если вы застряли с использованием SQL 2005, то опция CMDEXEC - единственная, о которой я знаю.

xp_cmdshell представляет собой наибольшую угрозу безопасности в SQL Server, поскольку позволяет скомпрометированному блоку SQL Server повысить уровень атаки на саму операционную систему хоста и оттуда на всю сеть.

Типичный вектор атаки - HTTP-форма веб-сайта -> SQL-инъекция -> xp_cmdshell -> захватить хостинг SQL -> захватить домен. Если xp_cmdshell выключен, то злоумышленник должен найти другие способы повысить свою атаку с SQL на хост.

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

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

Другие вопросы по тегам