問與答 什麼是 Network Service?

問:在 IIS 6 中,Web 應用程序的工作進程設置爲以進程標識“Network Service”運行。在 IIS 5 中,進程外 Web 應用程序則設置爲以 IWAM_<服務器名> 帳戶運行,這個帳戶是普通的本地用戶帳戶。可否提供有關這個新帳戶的信息,它對於安全性以及管理來說很重要嗎?

  答:Network Service 是 Windows Server 2003 中的內置帳戶。您說得很對,瞭解 IIS 5 上的本地用戶帳戶(IUSR 和 IWAM)與這個內置帳戶之間的區別是非常重要的。爲了理解這一點,您應該知道,Windows 操作系統中的所有帳戶都分配了一個 SID(安全標識,Security ID)。服務器是根據 SID,而不是與 SID 相關的名稱來識別服務器上所有帳戶的,而你我在與用戶界面進行交互時,則是使用名稱進行交互的。服務器上創建的絕大部分帳戶都是本地帳戶,都具有一個唯一的 SID,用於標識此帳戶隸屬於該服務器用戶數據庫的成員。由於 SID 只是相對於服務器是唯一的,因此它在任何其他系統上無效。所以,如果您爲本地帳戶分配了針對某文件或文件夾的 NTFS 權限,然後將該文件及其權限複製到另一臺計算機上時,目標計算機上並沒有針對這個遷移 SID 的用戶帳戶,即使其上有一個同名帳戶也是如此。這使得包含 NTFS 權限的內容複製可能出現問題。

  內置帳戶是由操作系統創建的、一類較爲特別的帳戶或組,例如 System 帳戶、Network Service 和 Everyone 組。這些對象的重要特徵之一就是,它們在所有系統上都擁有一個相同的、衆所周知的 SID。當將分配了 NTFS 權限的文件複製到內置帳戶時,權限在服務器之間是有效的,因爲內置帳戶的 SID 在所有服務器上都是相同的。Windows Server 2003 服務中的 Network Service 帳戶是特別設計的,專用於爲應用程序提供訪問網絡的足夠權限,而且在 IIS 6 中,無需提升權限即可運行 Web 應用程序。這對於 IIS 安全性來說,是一個特大的消息,因爲不存在緩衝溢出,懷有惡意的應用程序無法破譯進程標識,或是對應用程序的攻擊不能進入 System 用戶環境。更爲重要的一點是,再也不能形成針對 System 帳戶的“後門”,例如,再也無法通過 InProcessIsapiApps 元數據庫項利用加載到 Inetinfo 的應用程序。

  Network Service 帳戶在創建時不僅僅考慮了在 IIS 6 中的應用。它還具有進程標識 W3WP.exe 的絕大部分(並不是全部)權限。如同 ASPNET 用戶爲了運行 ASP.net 應用程序,需要具有 IIS 5 服務器上某些位置的訪問權限,進程標識 W3WP.exe 也需要具有類似位置的訪問權限,而且還需要一些默認情況下沒有指派給內置組的權限。

  爲了管理的方便,在安裝 IIS 6 時創建了 IIS_WPG 組(也稱爲 IIS 工作進程組,IIS Worker Process Group),而且它的成員包括 Local System(本地系統)、Local Service(本地服務)、Network Service(網絡服務)和 IWAM 帳戶。IIS_WPG 的成員具有適當的 NTFS 權限和必要的用戶權限,可以充當 IIS 6 中工作進程的進程標識。以下位置具有指派給 IIS_WPG 的權限: •%windir%/help/iishelp/common – 讀取

  •%windir%/IIS Temporary Compressed Files – 列出、讀取、寫入

  •%windir%/system32/inetsrv/ASP Compiled Template – 讀取

  •Inetpub/wwwroot(或內容目錄)- 讀取、執行

  另外,IIS_WPG 還具有以下用戶權限: •忽略遍歷檢查(SeChangeNotifyPrivilege)

  •作爲批處理作業登錄(SeBatchLogonRight)

  •從網絡訪問此計算機(SeNetworkLogonRight)

  因此,Network Service 帳戶提供了訪問上述位置的權限,具有充當 IIS 6 工作進程的進程標識的充足權限,以及具有訪問網絡的權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章