2009-09-20 33 views
7

我已經編寫了一個運行爲「本地系統」的.NET Windows服務。最近我讀到,由於本地系統可能會將系統憑據暴露給黑客,使他們能夠接管系統,所以我運行這個系統。 涉及的風險是什麼?當我以本地系統運行服務時,如何防止這些風險。作爲「本地系統」運行Windows服務有哪些安全風險?

回答

6

作爲LocalSystem運行的服務是系統可信空間的一部分。從技術上講,他們有SeTcbName特權。這意味着,尤其是,這些服務可以改變任何安全設置,授予他們自己的任何特權,並且通常可以做Windows所能做的任何事情。因此,服務中的任何缺陷 - 傳遞給系統函數的unsanitized輸入,錯誤的dll搜索路徑,緩衝區溢出,無論如何 - 都會成爲一個嚴重的安全漏洞。這就是爲什麼沒有企業環境中的系統管理員將允許您的服務在LocalSystem下運行。使用LocalServiceNetworkService帳戶。

0

對於您運行的任何服務,或者我相信任何應用程序,您都應該刪除不需要的應用程序權限,以減少黑客的影響。

因此,如果服務不需要寫入本地目錄或刪除,那麼刪除該權限即可。

另外,您可以查看是否需要訪問註冊表項。

有各種權限可以刪除,以限制可以完成的損害。

編輯:你可能想要找一個S2。 Window Services以查找有關本地系統導致的風險的更多信息。 http://www.sans.org/top20/

0

我認爲主要的問題是,如果有人會發現在你的服務中的安全漏洞,可以讓他訪問系統資源和/或執行代碼 - 它的訪問/使用本地系統權限執行(這是一樣的建在管理員中)。 問題是 - 你是否確信你的服務是黑客證明? :P

+0

內建管理員在NT 4之後默認沒有'SeTcbName',所以'LocalSystem'擁有比本地管理員更多的權限。 – 2009-09-20 21:43:43

相關問題