萬盛學電腦網

 萬盛學電腦網 >> Windows xp教程 >> 全面了解Windows軟件限制策略

全面了解Windows軟件限制策略

  隨著網絡、Internet 以及電子郵件在商務計算方面的使用日益增多,用戶發現他們經常會遇到新軟件。用戶必須不斷作出是否該運行未知軟件的決定。病毒和特洛伊木馬經常故意地偽裝自己以騙得用戶的運行。要用戶做出安全的選擇來確定應運行的程序是非常困難的,這時候就需要用到軟件限制策略,今天就為大家講解windows中這一神奇的功效吧.

  1、概述

  使用 軟件限制策略,通過標識並指定允許哪些應用程序運行,可以保護您的計算機環境免受不可信任的代碼的侵擾。通過散列規則、證書規則、路徑規則和Internet 區域規則,就用程序可以在策略中得到標識。默認情況下,軟件可以運行在兩個級別上:“不受限制的”與“不允許的”。在本文中我們主要用到的是路徑規則和散列規則,而路徑規則呢則是這些規則中使用最為靈活的,所以後文中如果沒有特別說明,所有規則指的都是路徑規則。

  2、附加規則和安全級別

  附加規則

  在使用 軟件限制策略 時,使用以下規則來對軟件進行標識:

  證書規則

  軟件限制策略可以通過其簽名證書來標識文件。證書規則不能應用到帶有 .exe 或 .dll 擴展名的文件。它們可以應用到腳本和Windows 安裝程序包。可以創建標識軟件的證書,然後根據安全級別的設置,決定是否允許軟件運行。

  路徑規則

  路徑規則通過程序的文件路徑對其進行標識。由於此規則按路徑指定,所以程序發生移動後路徑規則將失效。路徑規則中可以使用諸如 %programfiles% 或 %systemroot% 之類環境變量。路徑規則也支持通配符,所支持的通配符為 * 和 ?。

  散列規則

  散列是唯一標識程序或文件的一系列定長字節。散列按散列算法算出來。軟件限制策略可以用 SHA-1(安全散列算法)和 MD5 散列算法根據文件的散列對其進行標識。重命名的文件或移動到其他文件夾的文件將產生同樣的散列。

  例如,可以創建散列規則並將安全級別設為“不允許的”以防止用戶運行某些文件。文件可以被重命名或移到其他位置並且仍然產生相同的散列。但是,對文件的任何篡改都將更改其散列值並允許其繞過限制。軟件限制策略將只識別那些已用軟件限制策略計算過的散列。

  Internet區域規則

  區域規則只適用於 Windows 安裝程序包。區域規則可以標識那些來自 Internet Explorer 指定區域的軟件。這些區域是 Internet、本地計算機、本地 Intranet、受限站點和可信站點。

  以上規則所影響的文件類型只有“指派的文件類型”中列出的那些類型。系統存在一個由所有規則共享的指定文件類型的列表。默認情況下列表中的文件類型包括:ADE ADP BAS BAT CHM CMD COM CPL CRT EXE HLP HTA INF INS ISP LNK MDB MDE MSC MSI MSP MST OCX PCD PIF REG SCR SHS URL VB WSC ,所以對於正常的非可執行的文件,例如TXT JPG GIF這些是不受影響的,如果你認為還有哪些擴展的文件有威脅,也可以將其擴展加入這裡,或者你認為哪些擴展無威脅,也可以將其刪除。

  安全級別

  對於軟件限制策略,默認情況下,系統為我們提供了兩個安全級別:“不受限的”和“不允許的”

  注:

  “不允許的”級別不包含任何文件保護操作。你可以對一個設定成“不允許的”文件進行讀取、復制、粘貼、修改、刪除等操作,組策略不會阻止,前提當然是你的用戶級別擁有修改該文件的權限“不受限的”級別不等於完全不受限制,只是不受軟件限制策略的附加限制。事實上,“不受限的”程序在啟動時,系統將賦予該程序的父進程的權限,該程序所獲得的訪問令牌決定於其父進程,所以任何程序的權限將不會超過它的父進程。

  但實際上,還有三個級別在默認情況是隱藏掉的,我們可以通過手動修改注冊表來開啟其它的三個級別,打開注冊表編輯器,展開至:

  HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\

  Safer\CodeIdentifiers

  新建一個DOWRD,命名為Levels,其值為 0x4131000(十六十制的4131000)

  創建完畢後重新打開gpedit.msc,我們會看到另外三個級別此時已經開啟了。

  不受限的

  最高權限,但其也並不是完全的不受限,而是“軟件訪問權由用戶的訪問權來決定”,即繼承父進程的權限。

  基本用戶

  基本用戶僅享有“跳過遍歷檢查”的特權,並拒絕享有管理員的權限。

  受限的

  比基本用戶限制更多,但也享有“跳過遍歷檢查”的特權。

  不信任的

  不允許對系統資源、用戶資源進行訪問,直接的結果就是程序將無法運行。

  不允許的

  無條件地阻止程序執行或文件被打開

  根據權限大小可以排序為:不受限的>基本用戶>受限的>不信任的>不允許的 上一頁1234下一頁共4頁

  3、軟件限制策略的優先權

  一個特定的程序可以有多個不同的規則適用,為此,可以按下列優先權順序來使用這些規則。優先權按從高到低的順序排列如下:

  散列規則>證書規則>路徑規則> Internet區域規則

  如果存在多個路徑規則沖突,則最具限制性的規則占有優先權。總的原則就是:規則越匹配越優先。

  例如:

  C:\Windows\System32\Taskmgr.exe C:\Windows\System32\*.exe *.exe

  C:\Windows\System32\

  C:\Windows\

  本例是按優先權從高到低排列的。從這裡我們可以看出:

  絕對路徑>通配符路徑

  文件名規則>目錄規則

  對於同樣是目錄規則的,則目錄數匹配越多就越優先。

  如果同時存在兩個相似的規則,則最具限制性的規則優先權最高。例如,如果 C:\Windows\ 上有一個路徑規則,其安全級別為“不允許的”,而 %windir% 上也有一個路徑規則,其安全級別為“不受限制的”,則會采用最具限制性的規則,即“不允許的”。

  這裡,我們再順便介紹一下環境變量和通配符。

  在路徑規則裡,允許使用諸如“%windir%”“%userprofile%”之類的環境變量。一般情況下,我們的系統是在C盤,但也有些人基於其它一些原因如要安裝雙系統等,將系統安裝在其它比如D盤下面,這時我們平常用到的一些路徑比如“C:\windows\”就會無效,為了防止這種情況,我們就可以使用系統變量,像“%windir%”,系統會自動為我們匹配其目錄。我們在創建規則的時候也可以使用這些環境變量,以適用於不同的系統。下面列出的是一些常使用的環境變量,更多的環境變量你可以運行 CMD 然後運行 SET 命令進行查看。

  ALLUSERSPROFILE = C:\Documents and Settings\All Users

  APPDATA = C:\Documents and Settings\Administrator\Application Data

  CommonProgramFiles = C:\Program Files\Common Files

  ComSpec = C:\WINDOWS\system32\cmd.exe

  HOMEDRIVE = C:

  HOMEPATH = \Documents and Settings\Administrator

  ProgramFiles = C:\Program Files

  SystemDrive = C:

  SystemRoot = C:\WINDOWS

  TEMP = C:\Documents and Settings\當前用戶名\Local Settings\Temp

  TMP = C:\Windows\Temp

  USERPROFILE = C:\Documents and Settings\Administrator

  WINDIR = C:\WINDOWS

  同樣,路徑規則也支持使用通配符,對DOS熟悉的筒子應該知道這個東西,就是“?”和“*”。

  ? :包括1個或0個字符* :包括任意個字符(包括0個),但不包括斜槓

  對於通配符,其實網上很多教程上的做法是有誤的。

  例如有一條:%USERPROFILE%\Local Settings\**\*.* 不允許的這條規則本意是阻止所有被指派的文件從 Local Settings 目錄(包括其子目錄)啟動,但是經過驗證發現,“**”和“*”是完全等效的,並且“*”不包括“\”。那麼這條規則的實際意思就是“阻止所有被指派的文件從 Local Settings 的一級目錄運行”,不包括 Local Settings 目錄本身,也不包括二級及其下的所有子目錄。我們來看看 Local Settings 目錄下的一級目錄有哪些呢?默認情況下是:Temp、Temporary Internet Files、Application Data、History,那麼這條規則裡就包括有 禁止TEMP目錄下的所有被指派的文件運行的意思,其根本結果就是會造成很多軟件無法安裝。因為有些軟件在安裝時會先行解壓到TEMP目錄。

  影響最大(簡直可以列入本年度十大最錯誤的做法中了)的一條:?:\autorun.inf “不允許的”

  相信對 軟件限制策略 有研究的筒子都見過這條規則吧,這條規則的本意是阻止所有盤根目錄下的 autorun.inf 文件運行,以阻止U盤病毒的運行。它也確實達到了它的目的, autorun.inf 文件雙擊的時候被阻止了。但病毒被阻止了嗎?答案是否定的,病毒還是會被正常運行。

  為什麼呢?我們來

copyright © 萬盛學電腦網 all rights reserved