Каковы риски безопасности при использовании cmdexec? - PullRequest
0 голосов
/ 19 июля 2009

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

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

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

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

Спасибо, Радж

Ответы [ 3 ]

1 голос
/ 05 августа 2009

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

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

0 голосов
/ 21 мая 2010

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

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

0 голосов
/ 19 июля 2009

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

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

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

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

...