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