Каковы риски безопасности при запуске службы Windows в качестве локальной системы?

Я написал службу .NET Windows, которая работает как «Локальная система». Недавно я прочитал, что запуск от имени локальной системы может раскрыть системные учетные данные хакерам, что позволит им захватить систему. Каковы связанные с этим риски и как я могу их предотвратить, когда я запускаю службу как локальную систему.


person softwarematter    schedule 20.09.2009    source источник


Ответы (3)


Службы, работающие как LocalSystem, являются частью доверенного пространства системы. Технически говоря, у них есть привилегия SeTcbName. Это означает, среди прочего, что такие службы могут изменять любые параметры безопасности, предоставлять себе любые привилегии и вообще делать все, что может делать Windows.

В результате любая уязвимость в вашем сервисе — недезинфицированный ввод, переданный системным функциям, неверные пути поиска dll, переполнение буфера и т. д. — становится критической дырой в безопасности. Вот почему ни один системный администратор в корпоративной среде не разрешит установить вашу службу, если она работает под LocalSystem. Используйте учетные записи LocalService и NetworkService.

person Anton Tykhyy    schedule 20.09.2009

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

Итак, если службе не нужно записывать в локальный каталог или удалять, удалите это разрешение.

Также вы можете посмотреть, понадобится ли вам доступ к ключам реестра.

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

Изменить: вы можете найти S2. Window Services, чтобы найти дополнительную информацию о рисках, связанных с локальной системой. http://www.sans.org/top20/

person James Black    schedule 20.09.2009

Я думаю, что основная проблема заключается в том, что если кто-то обнаружит ошибку безопасности в вашем сервисе, которая позволяет ему получить доступ к системным ресурсам и/или выполнить код, он получит доступ/выполнение с правами локальной системы (которые такие же, как встроенные администраторы). Вопрос в том, уверены ли вы, что ваш сервис защищен от хакеров? :П

person kyrisu    schedule 20.09.2009
comment
Встроенные администраторы не имеют SeTcbName по умолчанию после NT 4, поэтому LocalSystem имеет даже больше прав, чем локальные администраторы. - person Anton Tykhyy; 21.09.2009