在設定軟體限制原則的路徑規則時,善用環境變數能讓規則更具彈性與通用性。下表彙整 Windows XP Professional 的預設環境變數,說明各變數的類型與用途:
| 變數名稱 | 類型 | 說明 |
|---|---|---|
| ALLUSERSPROFILE | 本地 | 所有使用者設定檔的儲存位置 |
| APPDATA | 本地 | 應用程式預設資料儲存路徑 |
| CD | 本地 | 目前目錄字串 |
| CMDCMDLINE | 本地 | 啟動目前 Cmd.exe 的完整命令列 |
| CMDEXTVERSION | 系統 | 命令處理器擴充功能版本號 |
| COMPUTERNAME | 系統 | 電腦名稱 |
| COMSPEC | 系統 | 命令解譯器可執行檔的確切路徑 |
| DATE | 系統 | 目前日期(格式同 date /t) |
| ERRORLEVEL | 系統 | 最近一個命令的錯誤代碼(非零通常表示錯誤) |
| HOMEDRIVE | 系統 | 使用者主目錄所在的本機磁碟機代號 |
| HOMEPATH | 系統 | 使用者主目錄的完整路徑 |
| HOMESHARE | 系統 | 使用者共享主目錄的網路路徑 |
| LOGONSEVER | 本地 | 驗證目前登入工作階段的網域控制站名稱 |
| NUMBER_OF_PROCESSORS | 系統 | 安裝的處理器數量 |
| OS | 系統 | 作業系統名稱(XP 顯示為 Windows NT) |
| PATH | 系統 | 可執行檔搜尋路徑 |
| PATHEXT | 系統 | 系統視為可執行檔的副檔名清單 |
| PROCESSOR_ARCHITECTURE | 系統 | 處理器架構(x86、IA64) |
| PROCESSOR_IDENTFIER | 系統 | 處理器描述資訊 |
| PROCESSOR_LEVEL | 系統 | 處理器型號 |
| PROCESSOR_REVISION | 系統 | 處理器修訂版本 |
| PROMPT | 本地 | 目前命令提示字元設定 |
| RANDOM | 系統 | 0 到 32767 之間的隨機十進位數 |
| SYSTEMDRIVE | 系統 | 包含 Windows 根目錄的磁碟機 |
| SYSTEMROOT | 系統 | Windows 根目錄位置 |
| TEMP / TMP | 系統/使用者 | 目前登入使用者的預設暫存目錄 |
| TIME | 系統 | 目前時間(格式同 time /t) |
| USERDOMAIN | 本地 | 包含使用者帳號的網域名稱 |
| USERNAME | 本地 | 目前登入的使用者名稱 |
| USERPROFILE | 本地 | 目前使用者設定檔位置 |
| WINDIR | 系統 | 作業系統目錄位置 |
路徑規則支援「?」與「*」兩種萬用字元,靈活套用可大幅簡化規則管理:
\\DC???\login$ 可對應 \\DC001\login$、\\DC002\login$ 等。*\Windows:比對所有磁碟機下的 Windows 目錄及其子目錄C:\win*:比對 C:\winnt、C:\Windows、C:\windir 等*.vbs:比對所有 .vbs 檔案C:\Application Files\*.*:比對特定子目錄下的所有檔案許多應用程式將安裝路徑寫入登錄,而非固定安裝在特定資料夾。此時可使用「登錄路徑規則」,格式為:
%<登錄樹>\<登錄機碼名稱>\<值名稱>%
範例:%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PlatformSDK\Directories\Install Dir%
注意事項:
為防止系統檔案被封鎖導致無法運作,系統會自動建立下列「不受限制」的登錄路徑規則(僅限進階使用者修改或刪除):
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%\*.exe%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRoot%\System32\*.exe%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir%當多個路徑規則同時符合同一程式時,最具體(最明確)的規則優先權最高。優先順序由高至低如下:
磁碟機:\資料夾1\資料夾2\檔案名.副檔名(完整路徑+檔名)磁碟機:\資料夾1\資料夾2\*.副檔名(資料夾+副檔名萬用字元)*.副檔名(僅副檔名)磁碟機:\資料夾1\資料夾2\(完整資料夾路徑)磁碟機:\資料夾1\(較上層資料夾)區域規則依據 Internet Explorer 的安全性區域識別軟體來源,適用區域包含:
重要限制:目前版本的 Internet 區域規則僅適用於 Windows Installer (*.msi) 套件,不適用於透過 IE 下載的一般軟體。所有受區域規則影響的檔案類型均定義於指派檔案類型清單中。
| 管理任務 | 建議規則類型 | 範例 |
|---|---|---|
| 允許/封鎖特定程式版本 | 雜湊規則 瀏覽至檔案建立雜湊值 |
精確鎖定某版本的 application.exe |
| 識別固定安裝位置的程式 | 含環境變數的路徑規則 | %ProgramFiles%\Internet Explorer\IExplore.exe |
| 識別可安裝任意位置的程式 | 登錄路徑規則 | %HKEY_LOCAL_MACHINE\SOFTWARE\ComputerAssociates\InoculateIT\6.0\Path\HOME% |
| 識別中央伺服器上的腳本群組 | 路徑規則 | \\SERVER_NAME\Share |
| 識別一組伺服器上的腳本(如 DC01、DC02、DC03) | 含萬用字元的路徑規則 | \\DC??\Share |
| 封鎖所有 .vbs 檔,但允許登入腳本目錄 | 含萬用字元的路徑規則(結合優先權) | *.VBS 設為「不允許」\\LOGIN_SRV\Share\*.VBS 設為「不受限制」 |
| 封鎖病毒固定檔名(如 flCSS.exe) | 路徑規則 | flCSS.exe 設為「不允許」 |
| 識別可在任意位置執行的腳本群組 | 憑證規則 | 使用數位憑證簽署腳本 |
| 允許從信任網站安裝軟體 | 區域規則 | 將「信任的網站」設為「不受限制」 |
不同類型規則間的優先權順序(由高至低):
同類規則衝突時:安全性等級較高者優先。例如同一程式同時套用「不允許」與「不受限制」兩個雜湊規則,「不允許」生效,程式將無法執行。
預設不檢查 DLL,僅驗證主要可執行檔(.exe)。這是大多數環境的建議設定,原因有三:
何時啟用? 追求最高安全性時(某些病毒專門感染 DLL)。建議搭配雜湊規則同時識別主程式與所有 DLL。
關閉方式: 在「強制執行屬性」對話框選擇「除程式庫檔案(如 DLL)以外的所有軟體檔案」。

圖 6.9:「強制執行屬性」對話框,顯示檔案與使用者強制選項