Я написал службу .NET Windows, которая работает как «Локальная система». Недавно я прочитал, что запуск от имени локальной системы может раскрыть системные учетные данные хакерам, что позволит им захватить систему. Каковы связанные с этим риски и как я могу их предотвратить, когда я запускаю службу как локальную систему.
Каковы риски безопасности при запуске службы Windows в качестве локальной системы?
Ответы (3)
Службы, работающие как LocalSystem, являются частью доверенного пространства системы. Технически говоря, у них есть привилегия SeTcbName. Это означает, среди прочего, что такие службы могут изменять любые параметры безопасности, предоставлять себе любые привилегии и вообще делать все, что может делать Windows.
В результате любая уязвимость в вашем сервисе — недезинфицированный ввод, переданный системным функциям, неверные пути поиска dll, переполнение буфера и т. д. — становится критической дырой в безопасности. Вот почему ни один системный администратор в корпоративной среде не разрешит установить вашу службу, если она работает под LocalSystem. Используйте учетные записи LocalService и NetworkService.
С любой службой, которую вы запускаете, или, я полагаю, с любым приложением, вы должны удалить разрешения, которые не нужны, чтобы уменьшить влияние хакеров.
Итак, если службе не нужно записывать в локальный каталог или удалять, удалите это разрешение.
Также вы можете посмотреть, понадобится ли вам доступ к ключам реестра.
Существуют различные разрешения, которые вы можете удалить, чтобы ограничить ущерб, который может быть нанесен.
Изменить: вы можете найти S2. Window Services, чтобы найти дополнительную информацию о рисках, связанных с локальной системой. http://www.sans.org/top20/
Я думаю, что основная проблема заключается в том, что если кто-то обнаружит ошибку безопасности в вашем сервисе, которая позволяет ему получить доступ к системным ресурсам и/или выполнить код, он получит доступ/выполнение с правами локальной системы (которые такие же, как встроенные администраторы). Вопрос в том, уверены ли вы, что ваш сервис защищен от хакеров? :П
SeTcbName по умолчанию после NT 4, поэтому LocalSystem имеет даже больше прав, чем локальные администраторы.
- person Anton Tykhyy; 21.09.2009