服務的判別存取控制清單 (DACL) 是工作站和伺服器安全性的重要元件。本「Microsoft 知識庫」文件將告訴您,如何解譯服務的 DACL。本文同時也提供服務 DACL 撰寫者在開發與評估程式的安全性時,可用的最佳實務指導。
您可以使用本「Microsoft 知識庫」文件作為指南,協助評估服務的判別存取控制清單 (DACL)
的安全性。
如果要顯示服務的 DACL,請搭配使用
sc 命令和
sdshow 引數,如下列範例所示,其中
service_name 是您想要顯示的服務
DACL 的名稱:
sc sdshow service_name
命令產生的結果類似如下:
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;PU)(A;;CCDCLCSWLOCRRC;;;LS)
這個
sc 命令的範例輸出,是以 Security Descriptor Definition Language (SDDL)
語法來顯示服務的安全性說明。如需有關 SDDL 語法的詳細資訊,請造訪下列 Microsoft 網站:
判斷服務的 DACL 是否易遭受攻擊時,可以檢視幾件事。下列表格說明如何閱讀
sc
命令的結果、如何解譯每個權限字串,以及如何對權限授予的對象解譯。
您可以使用下列機碼獨立評估括弧中包含的個別字元字串:
(允許/拒絕;;權限的字串;;;內建帳戶或群組的 SID 或縮寫)
權限字串中每個成對的兩個字母都對應到特定的權限:
摺疊此表格展開此表格
| 字母組 | 權限 |
| CC | QueryConf |
| DC | ChangeConf |
| LC | QueryStat |
| SW | EnumDeps |
| RP | Start |
| WP | Stop |
| DT | Pause |
| LO | Interrogate |
| CR | UserDefined |
| GA | GenericAll |
| GX | GenericExecute |
| GW | GenericWrite |
| GR | GenericRead |
| SD | Del |
| RC | RCtl |
| WD | WDac |
| WO | WOwn |
請特別留意 ChangeConf (DC) 權限,當您在判斷服務是否容易遭受權限提高的攻擊時,請搜尋
ChangeConf 權限。這個權限可以讓被指派者變更服務設定,以包含在服務啟動時所執行的二進位檔案。您也應該特別留意 WDac (WD) 與 WOwn
(WO) 權限,因為它們可用來將權限提高到 LocalSystem。請確定這些權限不會被授予給低權限的使用者。下列表格以 SDDL
語法,列出用來識別被授予權限的使用者類型的代碼。
摺疊此表格展開此表格
| 代碼 | 使用者類型 |
| DA | 網域系統管理員 |
| DG | 網域來賓 |
| DU | 網域使用者 |
| ED | 企業網域控制站 |
| DD | 網域控制站 |
| DC | 網域電腦 |
| BA | 內建 (本機) 系統管理員 |
| BG | 內建 (本機) 來賓 |
| BU | 內建 (本機) 使用者 |
| LA | 本機系統管理員帳戶 |
| LG | 本機來賓帳戶 |
| AO | 帳戶操作員 |
| BO | 備份操作員 |
| PO | 印表機操作員 |
| SO | 伺服器操作員 |
| AU | 已驗證的使用者 |
| PS | 個人本身 |
| CO | 建立者擁有者 |
| CG | 建立者群組 |
| SY | 本機系統 |
| PU | 進階使用者 |
| WD | 每個人 (全球) |
| RE | 複寫器 |
| IU | 互動式登入使用者 |
| NU | 網路登入使用者 |
| SU | 服務登入使用者 |
| RC | 設限代碼 |
| WR | 寫入設限代碼 |
| AN | 匿名登入 |
| SA | 架構系統管理員 |
| CA | 憑證服務系統管理員 |
| RS | 遠端存取伺服器群組 |
| EA | 企業系統管理員 |
| PA | 群組原則系統管理員 |
| RU | 允許舊版 Windows 2000 的別名 |
| LS | 本機服務帳戶 (服務專用) |
| NS | 網路服務帳戶 (服務專用) |
| RD | 遠端桌面使用者 (終端機服務專用) |
| NO | 網路設定操作員 |
| MU | 效能監視器使用者 |
| LU | 效能記錄檔使用者 |
| IS | 匿名網際網路使用者 |
| CY | Crypto 操作員 |
| OW | 擁有者權限 SID |
| RM | RMS 服務 |
如何解譯 SDDL 格式的 DACL 字串
本資訊說明如何解譯本文開頭所列的範例 DACL 字串。這個解譯個別列出每個存取控制項目 (ACE)。
- (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)
此存取控制項目 (ACE)
會給予 LocalSystem (SY) 下列權限:
- QueryConf
- ChangeConf
- QueryStat
- EnumDeps
- Start
- Stop
- Pause
- Interrogate
- UserDefined
- Delete
- RCtl
- WDac
- WOwn
這個存取控制項目 (ACE) 受限制於 LocalSystem。這對有助於維護,因為 LocalSystem
已經是工作站中功能最強大的安全性內容,因此沒有權限提高的風險。 - (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
這個存取控制項目
(ACE) 適用於內建的本機系統管理員 (BA)。如同前一個存取控制項目 (ACE),這個存取控制項目 (ACE)
也提供所有本機系統管理員相同的權限,而且也是工作站中功能非常強大的安全性內容。所以,同樣也沒有權限提高的風險。 - (A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;AU)
這個存取控制項目
(ACE) 給予任何已驗證的使用者 (AU) 所有之前的權限。
在最後一個存取控制項目 (ACE) 中,低權限群組中的使用者 (例如任何已驗證的使用者)
都可以變更服務的設定。設定包含服務啟動時執行的二進位檔案,以及服務在其下執行的帳戶。
下列範例 DACL 不會將 ChangeConf
權限給予已驗證的使用者:
(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPLOCRRC;;;PU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SO)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;DT;;;LS)(A;;DT;;;NS)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;NO)
在這個 DACL 中,只提供已驗證的使用者 (AU) 下列權限:
- QueryConf
- QueryStat
- EnumDeps
- Interrogate
- UserDefined
- RCtl
透過擁有這些授予權限的「已驗證的使用者」群組,就沒有發生潛在的權限提高風險。進階使用者 (PU) 群組已經可以提高至
LocalSystem,所以不應視為是權限提高的風險。在這個範例中,除了進階使用者群組可以啟動服務 (RP)
以外,此群組和「已驗證的使用者」群組擁有相同的權限。本機系統管理員 (BA) 群組是下一個。這個群組與下一個群組 (「伺服器操作員」(SO) 群組) 都具有
ChangeConf、WDac 和 WOwn
權限。這是可以接受的,因為最信任的使用者應該在「本機系統管理員」,或是「伺服器操作員」群組中。
LocalSystem (SY)
群組擁有和進階使用者群組相同的權限,但是同時也擁有 Stop 與 Pause 的權限。這似乎是適當的設定。下兩個簡短存取控制項目 (ACE)
給予「本機服務帳戶」和「網路服務帳戶」將服務暫停的權限。這似乎也是適當的設定,因為「本機服務」與「網路服務」都是功能強大的本機帳戶。
然而,「網路設定操作員」(NO)
群組則擁有 ChangeConf 權限。「網路設定操作員」群組已新增至 Windows XP
中,這可以讓受信任的使用者在沒有完整的管理員權限下,變更網路設定。根據預設,「網路設定操作員」群組是空的。這個群組有時候用來提供網路設定權限給特定的使用者。例如,可攜式電腦的擁有者可能被給予這個權限。「網路設定操作員」群組中的使用者通常可以控制電腦本身。但是,這個群組的用意不是給予這些使用者完整的管理員權限。此,這個服務的
DACL 不應該將 ChangeConf 權限給予「網路設定操作員」群組。
最佳實務
限制服務的 DACL
只給予那些需要特定存取類型的使用者。請特別留意下列權限。如果將這些權限授予給低權限的使用者或群組,這些權限可能被用來在電腦中將權限提高至
LocalSystem:
- ChangeConf (DC)
- WDac (WD)
- WOwn (WO)
如需有關存取權限的詳細資訊,請造訪下列 Microsoft 網站:
文章編號: 914392 - 上次校閱: 2007年2月15日 - 版次: 1.4
這篇文章中的資訊適用於:
- Microsoft Windows Server 2003, Web Edition
- Microsoft Windows Server 2003, Standard Edition (32-bit x86)
- Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
- Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
- Microsoft Windows Server 2003, Standard x64 Edition
- Microsoft Windows Server 2003, Enterprise x64 Edition
- Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
- Microsoft Windows Server 2003 Service Pack 1
- Microsoft Windows XP Home Edition (家用版)
- Microsoft Windows XP Professional
- Microsoft Windows XP Media Center Edition
- Microsoft Windows XP Tablet PC Edition
- Microsoft Windows XP Service Pack 1
- Microsoft Windows XP Service Pack 1a
- Microsoft Windows XP Service Pack 2
- Microsoft Windows 2000 Professional Edition
- Microsoft Windows 2000 Server
- Microsoft Windows 2000 Advanced Server
- Microsoft Windows 2000 Datacenter Server
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。