Добавление учетной записи «Сетевой сервис» в группу администраторов - PullRequest
6 голосов
/ 09 февраля 2010

Мое веб-приложение работает в IIS 6.0 под Windows Server 2003, и мы все знаем, что в этой ситуации IIS использует учетную запись пользователя «Сетевая служба».

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

Мне кажется, что самое ленивое решение - добавить "Сетевая служба" в группу администраторов, и оно действительно работает.

МОЙ ВОПРОС, как ОПАСНО это решение и каким образом оно может поставить под угрозу безопасность моего веб-сервера?

Ответы [ 3 ]

5 голосов
/ 09 февраля 2010

Это вообще "плохая идея". Если это общедоступный сервер, то это действительно плохая идея.

Что вы должны сделать, и именно так мы подходим к таким проблемам, как «песочница» - конкретные задачи администратора, которые вам необходимо выполнить в другом процессе, например в службе Windows с повышенными правами.

Затем мы размещаем Remoting Server в службе Windows и связываемся со службой либо по именованному каналу, либо по TCP / IP (если машина-машина и это через внутреннюю частную сеть).

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

Учетная запись пользователя Windows, которая выполняет только положения IIS7

Еще лучшим подходом было бы никогда не иметь прямой связи между веб-приложением и службой Windows, а проходить через посредника, такого как задание или очередь сообщений. Ваше приложение с низкими привилегиями размещает запрос на выполнение задачи администратора, а ваша служба с повышенными привилегиями считывает эти задачи из очереди и выполняет их.

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

2 голосов
/ 09 февраля 2010

Если бы я написал какую-то веб-функцию, которая требовала бы администратора уровня ящика, я бы сделал так, чтобы это было собственное приложение в его собственном пуле приложений, заблокировав это приложение как можно плотнее, предоставив этому пулу приложений именную учетную запись ресурс домена, если он находится в Active Directory), а затем предоставьте этой учетной записи права администратора на коробке. Хранение его в собственном пуле приложений эффективно блокирует его от обычного приложения.

NT Authority / Network Service взаимодействует с кучей вещей на вашем компьютере. Я не могу найти вескую причину для получения прав администратора сетевой службы.

1 голос
/ 12 февраля 2010

Ни при каких обстоятельствах не делайте этого.

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

По вашему вопросу

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

это нормально - используйте аутентификацию Windows на этой веб-странице и сделайте пользователя обычным администратором Windows. Теперь они и все другие администраторы могут выполнять поставленные вами задачи.

...