對(duì)于Windows的組策略,也許大家使用的更多的只是 管理模板 里的各項(xiàng)功能,
Windows組策略的軟件限制策略
。對(duì)于 軟件限制策略 相信用過的筒子們不是很多:)。軟件限制策略 如果用的好的話,相信可以和某些HIPS類軟件相類比了。如果再結(jié)合NTFS權(quán)限和注冊(cè)表權(quán)限,完全可以實(shí)現(xiàn)系統(tǒng)的全方位的安全配置,同時(shí)由于這是系統(tǒng)內(nèi)置的功能,與系統(tǒng)無縫結(jié)合,不會(huì)占用額外的CPU及內(nèi)存資源,更不會(huì)有不兼容的現(xiàn)象,由于其位于系統(tǒng)的最底層,其攔截能力也是其它軟件所無法比擬的,不足之處則是其設(shè)置不夠靈活和智能,不會(huì)詢問用戶。下面我們就來全面的了解一下 軟件限制策略。1、概述
使用 軟件限制策略,通過標(biāo)識(shí)并指定允許哪些應(yīng)用程序運(yùn)行,可以保護(hù)您的計(jì)算機(jī)環(huán)境免受不可信任的代碼的侵?jǐn)_。通過 散列規(guī)則、證書規(guī)則、路徑規(guī)則和Internet 區(qū)域規(guī)則,就用程序可以在策略中得到標(biāo)識(shí)。默認(rèn)情況下,軟件可以運(yùn)行在兩個(gè)級(jí)別上:“不受限制的”與“不允許的”。在本文中我們主要用到的是路徑規(guī)則和散列規(guī)則,而路徑規(guī)則呢則是這些規(guī)則中使用最為靈活的,所以后文中如果沒有特別說明,所有規(guī)則指的都是路徑規(guī)則。
2、附加規(guī)則和安全級(jí)別
附加規(guī)則
在使用 軟件限制策略 時(shí),使用以下規(guī)則來對(duì)軟件進(jìn)行標(biāo)識(shí):
證書規(guī)則
軟件限制策略可以通過其簽名證書來標(biāo)識(shí)文件。證書規(guī)則不能應(yīng)用到帶有 .exe 或 .dll 擴(kuò)展名的文件。它們可以應(yīng)用到腳本和 Windows 安裝程序包。可以創(chuàng)建標(biāo)識(shí)軟件的證書,然后根據(jù)安全級(jí)別的設(shè)置,決定是否允許軟件運(yùn)行。
路徑規(guī)則
路徑規(guī)則通過程序的文件路徑對(duì)其進(jìn)行標(biāo)識(shí)。由于此規(guī)則按路徑指定,所以程序發(fā)生移動(dòng)后路徑規(guī)則將失效。路徑規(guī)則中可以使用諸如 %programfiles% 或 %systemroot% 之類環(huán)境變量。路徑規(guī)則也支持通配符,所支持的通配符為 * 和 ?。
散列規(guī)則
散列是唯一標(biāo)識(shí)程序或文件的一系列定長字節(jié)。散列按散列算法算出來。軟件限制策略可以用 SHA-1(安全散列算法)和 MD5 散列算法根據(jù)文件的散列對(duì)其進(jìn)行標(biāo)識(shí)。重命名的文件或移動(dòng)到其他文件夾的文件將產(chǎn)生同樣的散列。
例如,可以創(chuàng)建散列規(guī)則并將安全級(jí)別設(shè)為“不允許的”以防止用戶運(yùn)行某些文件。文件可以被重命名或移到其他位置并且仍然產(chǎn)生相同的散列。但是,對(duì)文件的任何篡改都將更改其散列值并允許其繞過限制。軟件限制策略將只識(shí)別那些已用軟件限制策略計(jì)算過的散列。
Internet區(qū)域規(guī)則
區(qū)域規(guī)則只適用于 Windows 安裝程序包。區(qū)域規(guī)則可以標(biāo)識(shí)那些來自 Internet Explorer 指定區(qū)域的軟件。這些區(qū)域是 Internet、本地計(jì)算機(jī)、本地 Intranet、受限站點(diǎn)和可信站點(diǎn)。
以上規(guī)則所影響的文件類型只有“指派的文件類型”中列出的那些類型。系統(tǒng)存在一個(gè)由所有規(guī)則共享的指定文件類型的列表。默認(rèn)情況下列表中的文件類型包括: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 ,所以對(duì)于正常的非可執(zhí)行的文件,例如TXT JPG GIF這些是不受影響的,如果你認(rèn)為還有哪些擴(kuò)展的文件有威脅,也可以將其擴(kuò)展加入這里,或者你認(rèn)為哪些擴(kuò)展無威脅,也可以將其刪除。
screen.width-333)this.width=screen.width-333" border=0>
安全級(jí)別
對(duì)于軟件限制策略,默認(rèn)情況下,系統(tǒng)為我們提供了兩個(gè)安全級(jí)別:“不受限的”和“不允許的”
注:
“不允許的”級(jí)別不包含任何文件保護(hù)操作。你可以對(duì)一個(gè)設(shè)定成“不允許的”文件進(jìn)行讀取、復(fù)制、粘貼、修改、刪除等操作,組策略不會(huì)阻止,前提當(dāng)然是你的用戶級(jí)別擁有修改該文件的權(quán)限“不受限的”級(jí)別不等于完全不受限制,只是不受軟件限制策略的附加限制。事實(shí)上,“不受限的”程序在啟動(dòng)時(shí),系統(tǒng)將賦予該程序的父進(jìn)程的權(quán)限,該程序所獲得的訪問令牌決定于其父進(jìn)程,所以任何程序的權(quán)限將不會(huì)超過它的父進(jìn)程。
但實(shí)際上,還有三個(gè)級(jí)別在默認(rèn)情況是隱藏掉的,我們可以通過手動(dòng)修改注冊(cè)表來開啟其它的三個(gè)級(jí)別,打開注冊(cè)表編輯器,展開至:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\
Safer\CodeIdentifiers
新建一個(gè)DOWRD,命名為Levels,其值為 0x4131000(十六十制的4131000)
screen.width-333)this.width=screen.width-333" border=0>
創(chuàng)建完畢后重新打開gpedit.msc,我們會(huì)看到另外三個(gè)級(jí)別此時(shí)已經(jīng)開啟了。
screen.width-333)this.width=screen.width-333" border=0>
不受限的
最高權(quán)限,但其也并不是完全的不受限,而是“軟件訪問權(quán)由用戶的訪問權(quán)來決定”,即繼承父進(jìn)程的權(quán)限。
基本用戶
基本用戶僅享有“跳過遍歷檢查”的特權(quán),并拒絕享有管理員的權(quán)限。
受限的
比基本用戶限制更多,但也享有“跳過遍歷檢查”的特權(quán)。
不信任的
不允許對(duì)系統(tǒng)資源、用戶資源進(jìn)行訪問,直接的結(jié)果就是程序?qū)o法運(yùn)行。
不允許的
無條件地阻止程序執(zhí)行或文件被打開
根據(jù)權(quán)限大小可以排序?yàn)椋翰皇芟薜?基本用戶>受限的>不信任的>不允許的
3、軟件限制策略的優(yōu)先權(quán)
一個(gè)特定的程序可以有多個(gè)不同的規(guī)則適用,為此,可以按下列優(yōu)先權(quán)順序來使用這些規(guī)則。優(yōu)先權(quán)按從高到低的順序排列如下:
散列規(guī)則>證書規(guī)則>路徑規(guī)則> Internet區(qū)域規(guī)則
如果存在多個(gè)路徑規(guī)則沖突,則最具限制性的規(guī)則占有優(yōu)先權(quán)。總的原則就是:規(guī)則越匹配越優(yōu)先。
例如:
C:\Windows\System32\Taskmgr.exe C:\Windows\System32\*.exe *.exe
C:\Windows\System32\
C:\Windows\
本例是按優(yōu)先權(quán)從高到低排列的。從這里我們可以看出:
絕對(duì)路徑>通配符路徑
文件名規(guī)則>目錄規(guī)則
對(duì)于同樣是目錄規(guī)則的,則目錄數(shù)匹配越多就越優(yōu)先。
如果同時(shí)存在兩個(gè)相似的規(guī)則,則最具限制性的規(guī)則優(yōu)先權(quán)最高。例如,如果 C:\Windows\ 上有一個(gè)路徑規(guī)則,其安全級(jí)別為“不允許的”,而 %windir% 上也有一個(gè)路徑規(guī)則,其安全級(jí)別為“不受限制的”,則會(huì)采用最具限制性的規(guī)則,即“不允許的”。
這里,我們?cè)夙槺憬榻B一下環(huán)境變量和通配符。
在路徑規(guī)則里,允許使用諸如“%windir%”“%userprofile%”之類的環(huán)境變量。一般情況下,我們的系統(tǒng)是在C盤,但也有些人基于其它一些原因如要安裝雙系統(tǒng)等,將系統(tǒng)安裝在其它比如D盤下面,這時(shí)我們平常用到的一些路徑比如“C:\windows\”就會(huì)無效,為了防止這種情況,我們就可以使用系統(tǒng)變量,像“%windir%”,系統(tǒng)會(huì)自動(dòng)為我們匹配其目錄。我們?cè)趧?chuàng)建規(guī)則的時(shí)候也可以使用這些環(huán)境變量,以適用于不同的系統(tǒng)。下面列出的是一些常使用的環(huán)境變量,更多的環(huán)境變量你可以運(yùn)行 CMD 然后運(yùn)行 SET 命令進(jìn)行查看。
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\當(dāng)前用戶名\Local Settings\Temp
TMP = C:\Windows\Temp
USERPROFILE = C:\Documents and Settings\Administrator
WINDIR = C:\WINDOWS
同樣,路徑規(guī)則也支持使用通配符,對(duì)DOS熟悉的筒子應(yīng)該知道這個(gè)東西,就是“?”和“*”。
? :包括1個(gè)或0個(gè)字符* :包括任意個(gè)字符(包括0個(gè)),但不包括斜杠
對(duì)于通配符,其實(shí)網(wǎng)上很多教程上的做法是有誤的。
例如有一條:%USERPROFILE%\Local Settings\**\*.* 不允許的這條規(guī)則本意是 阻止所有被指派的文件從 Local Settings 目錄(包括其子目錄)啟動(dòng),但是經(jīng)過驗(yàn)證發(fā)現(xiàn),“**”和“*”是完全等效的,并且“*”不包括“\”,
電腦資料
《Windows組策略的軟件限制策略》(http://m.clearvueentertainment.com)。那么這條規(guī)則的實(shí)際意思就是“阻止所有被指派的文件從 Local Settings 的一級(jí)目錄運(yùn)行”,不包括 Local Settings 目錄本身,也不包括二級(jí)及其下的所有子目錄。我們來看看 Local Settings 目錄下的一級(jí)目錄有哪些呢?默認(rèn)情況下是:Temp、Temporary Internet Files、Application Data、History,那么這條規(guī)則里就包括有 禁止TEMP目錄下的所有被指派的文件運(yùn)行 的意思,其根本結(jié)果就是會(huì)造成很多軟件無法安裝。因?yàn)橛行┸浖诎惭b時(shí)會(huì)先行解壓到TEMP目錄。影響最大(簡直可以列入本年度十大最錯(cuò)誤的做法中了)的一條:?:\autorun.inf “不允許的”
相信對(duì) 軟件限制策略 有研究的筒子都見過這條規(guī)則吧,這條規(guī)則的本意是阻止所有盤根目錄下的 autorun.inf 文件運(yùn)行,以阻止U盤病毒的運(yùn)行。它也確實(shí)達(dá)到了它的目的, autorun.inf 文件雙擊的時(shí)候被阻止了。但病毒被阻止了嗎?答案是否定的,病毒還是會(huì)被正常運(yùn)行。
為什么呢?我們來了解一下系統(tǒng)是怎么處理 autorun.inf 文件的。
首先,svchost.exe 讀取 autorun.inf,然后 explorer.exe 讀取 autorun.inf,再然后 explorer.exe 將 autorun.inf 里的相關(guān)內(nèi)容寫入注冊(cè)表中 MountPoints2 這個(gè)鍵值。只要 explorer.exe 成功寫入注冊(cè)表,那么這個(gè) autorun.inf 文件的使命就完成了,U盤里的病毒就等著你去雙擊U盤了。
那么我們的軟件限制策略中,將 autorun.inf 設(shè)為“不允許的”這一做法在這個(gè)過程中起到什么作用?
很遺憾地告訴你:沒有任何作用。
真要說它起到的作用,僅僅是阻止你打開 autorun.inf 這個(gè)文件而已。所以,對(duì)于 autorun.inf 的所有策略,都是無效的。
真要想防止U盤病毒的運(yùn)行,策略的設(shè)置只有一種方法:?:\*.* 不允許 意思就是阻止所有盤下面的被指派文件運(yùn)行。當(dāng)然,如果你只想阻止U盤下的文件運(yùn)行的話,那就將規(guī)則里的“?”改為具體的盤符即可。當(dāng)然還有其它很多辦法來防止U盤病毒的,這個(gè)我會(huì)在文后附上其它解決方法的,歡迎筒子們進(jìn)行驗(yàn)證。讓我們?nèi)未嬲,找到最好的解決辦法吧:)
4、規(guī)則的權(quán)限分配及繼承
這里的講解的一個(gè)前提是:假設(shè)你的用戶類型是管理員。
在沒有軟件限制策略的情況下,如果程序a啟動(dòng)程序b,那么a是b的父進(jìn)程,b繼承a的權(quán)限
現(xiàn)在把a(bǔ)設(shè)為基本用戶,b不做限制(把b設(shè)為不受限或者不對(duì)b設(shè)置規(guī)則效果是一樣的)然后由a啟動(dòng)b,那么b的權(quán)限繼承于a,也是基本用戶,即:
a(基本用戶)-> b(不受限的)= b(基本用戶)
若把b設(shè)為基本用戶,a不做限制,那么a啟動(dòng)b后,b仍然為基本用戶權(quán)限,即
a(不受限的)-> b(基本用戶)= b(基本用戶)
可以看到,一個(gè)程序所能獲得的最終權(quán)限取決于:父進(jìn)程權(quán)限 和 規(guī)則限定的權(quán)限 的最低等級(jí),也就是我們所說的最低權(quán)限原則
舉一個(gè)例子:
若我們把IE設(shè)成基本用戶等級(jí)啟動(dòng),那么由IE執(zhí)行的任何程序的權(quán)限都將不高于基本用戶級(jí)別,只能更低。所以就可以達(dá)到防范網(wǎng)馬的效果——即使IE下載病毒并執(zhí)行了,病毒由于權(quán)限的限制,無法對(duì)系統(tǒng)進(jìn)行有害的更改,如果重啟一下,那么病毒就只剩下尸體了。
甚至,我們還可以通過NTFS權(quán)限的設(shè)置,讓IE無法下載和運(yùn)行病毒,不給病毒任何的機(jī)會(huì)。
這里,我們來看一下NTFS的權(quán)限(這里的權(quán)限是NTFS權(quán)限,與規(guī)則無關(guān))。NTFS的所有權(quán)限如下:
遍歷文件夾/運(yùn)行文件 (遍歷文件夾可以不管,主要是“運(yùn)行文件”,若無此權(quán)限則不能啟動(dòng)文件,相當(dāng)于AD的運(yùn)行應(yīng)用程序)
允許或拒絕用戶在整個(gè)文件夾中移動(dòng)以到達(dá)其他文件或文件夾的請(qǐng)求,即使用戶沒有遍歷文件夾的權(quán)限(僅適用于文件夾)。
列出文件夾/讀取數(shù)據(jù)
允許或拒絕用戶查看指定文件夾內(nèi)文件名和子文件夾名的請(qǐng)求。它僅影響該文件夾的內(nèi)容,而不影響您對(duì)其設(shè)置權(quán)限的文件夾是否會(huì)列出(僅適用于文件夾)。
讀取屬性
允許或拒絕查看文件中數(shù)據(jù)的能力(僅適用于文件)。
讀取擴(kuò)展屬性
允許或拒絕用戶查看文件或文件夾屬性(例如只讀和隱藏)的請(qǐng)求。屬性由 NTFS 定義。
創(chuàng)建文件/寫入數(shù)據(jù)
“創(chuàng)建文件”允許或拒絕在文件夾中創(chuàng)建文件(僅適用于文件夾)!皩懭霐(shù)據(jù)”允許或拒絕對(duì)文件進(jìn)行修改并覆蓋現(xiàn)有內(nèi)容的能力(僅適用于文件)。
創(chuàng)建文件夾/追加數(shù)據(jù)
“創(chuàng)建文件夾”允許或拒絕用戶在指定文件夾中創(chuàng)建文件夾的請(qǐng)求(僅適用于文件夾)。“追加數(shù)據(jù)”允許或拒絕對(duì)文件末尾進(jìn)行更改而不更改、刪除或覆蓋現(xiàn)有數(shù)據(jù)的能力(僅適用于文件)。
寫入屬性
允許或拒絕用戶對(duì)文件末尾進(jìn)行更改,而不更改、刪除或覆蓋現(xiàn)有數(shù)據(jù)的請(qǐng)求(僅適用于文件)。 即寫操作
寫入擴(kuò)展屬性
允許或拒絕用戶更改文件或文件夾屬性(例如只讀和隱藏)的請(qǐng)求。屬性由 NTFS 定義。
刪除子文件夾和文件
允許或拒絕刪除子文件夾和文件的能力,即使子文件夾或文件上沒有分配“刪除”權(quán)限(適用于文件夾)。
刪除 (與上面的區(qū)別是,這里除了子目錄及其文件,還包括了目錄本身)
允許或拒絕用戶刪除子文件夾和文件的請(qǐng)求,即使子文件夾或文件上沒有分配“刪除”權(quán)限(適用于文件夾)。
讀取權(quán)限(NTFS權(quán)限的查看)
允許或拒絕用戶讀取文件或文件夾權(quán)限(例如“完全控制”、“讀取”和“寫入”)的請(qǐng)求。
更改權(quán)限(NTFS權(quán)限的修改)
允許或拒絕用戶更改文件或文件夾權(quán)限(例如“完全控制”、“讀取”和“寫入”)的請(qǐng)求。
取得所有權(quán)
允許或拒絕取得文件或文件夾的所有權(quán)。文件或文件夾的所有者始終可以更改其權(quán)限,而不論用于保護(hù)該文件或文件夾的現(xiàn)有權(quán)限如何。
在系統(tǒng)默認(rèn)的NTFS權(quán)限下,基本用戶對(duì)于windows\program files目錄只有 遍歷文件夾/運(yùn)行文件 列出文件夾/讀取屬性 讀取擴(kuò)展屬性 讀取權(quán)限 這四項(xiàng)權(quán)限,對(duì)于documents and settings目錄,僅對(duì)其所有的目錄有完全控制的權(quán)限,其它目錄只讀?
我們的規(guī)則里面所說到的基本用戶、受限用戶,基本上等同于 NTFS 權(quán)限里的 USERS 組,但受限用戶受到的限制更多,不管NTFS權(quán)限如何,其始終受到限制。
更多NTFS權(quán)限的設(shè)置,大家可以查閱NTFS相關(guān)的內(nèi)容。
5、如何編寫規(guī)則
關(guān)于規(guī)則編寫,我們要遵循以下幾個(gè)原則:要方便,不能對(duì)自己有過多的限制,這樣,即使出現(xiàn)問題也好排隊(duì)要安全,要考慮到你的系統(tǒng)中毒的來源有哪些,針對(duì)其做好防護(hù)。
基于文件名的病毒規(guī)則盡量少用,因?yàn)槿菀壮霈F(xiàn)誤陰,而且病毒的文件名隨便可以改,我們做的又不是特征庫。
下面介紹規(guī)則的具體編寫方式
開始 -> 運(yùn)行 -> gpedit.msc
在左邊的窗口中依次展開計(jì)算機(jī)配置-> Windows設(shè)置->安全設(shè)置->軟件限制策略
如果你之前沒有進(jìn)行過設(shè)置,那么在 軟件限制策略 上點(diǎn)右鍵,選擇創(chuàng)建新的策略然后在 其它規(guī)則 上右鍵點(diǎn)擊,選擇 新路徑規(guī)則 既可以進(jìn)行規(guī)則的創(chuàng)建了。
screen.width-333)this.width=screen.width-333" border=0>
screen.width-333)this.width=screen.width-333" border=0>
規(guī)則的設(shè)置很簡單,就五個(gè)安全級(jí)別,根據(jù)你自己的需要設(shè)置即可。難點(diǎn)主要是規(guī)則的正確性和有效性,這個(gè)得靠多多實(shí)踐來提升了。
另外提醒一下,大家在設(shè)置規(guī)則時(shí),注意不要更改以下4條系統(tǒng)默認(rèn)規(guī)則同時(shí)還要考慮它們的影響:
%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%路徑不受限的
相當(dāng)于規(guī)則:
%SystemRoot%不受限的整個(gè)Windows目錄不受限
%SystemRoot%\*.exe 不受限的 Windows下的exe文件不受限
%SystemRoot%\System32\*.exe 不受限的 System32下的exe文件不受限
%ProgramFiles%不受限的整個(gè)ProgramFiles目錄不受限
這里要注意的一點(diǎn)是規(guī)則在新添加或者進(jìn)行修改以后根據(jù)不同的機(jī)器,會(huì)在一至兩分鐘內(nèi)生效,不會(huì)立即生效,如果長時(shí)間不生效,我們可以通過注銷,重新登陸來生效,也可以使用命令 gpupdate /force 來強(qiáng)制刷新。