一般來說,Windows系統中的各個對象都屬于客體,訪問這些對象的每個系統進程,甚至是其下的每個線程都屬于主體。每個線程都可以共享每個進程的基本令牌,但有些特殊的線程,它自己擁有一個獨立的模擬令牌,能模擬特定客戶端的身份,所以模擬令牌就是這些線程的有效令牌,而其他普通線程的有效令牌只能是其所屬進程的基本令牌了。
在主體訪問客體的過程中,Windows系統會進行權限審查操作,也就是檢查比對客體的安全描述符與主體的有效令牌,以便判斷主體的訪問是否合法可信。為了改善審查效率,Windows系統的權限審查機制允許使用緩存功能來進行訪問權限審查,審查結果會被自動緩存到進程的句柄表中,日后通過調閱緩存內容就能確認訪問的合法性,而不需要每次打開或創建一個對象或一個進程,而且這也能節省更大的系統開銷??紤]到系統對象和系統進程都有對應的繼承層次,所以系統進程的令牌和系統對象的安全描述符從邏輯上講也是能夠繼承的。
例如文件系統中的文件能將其所在文件夾的安全描述符繼承過來,子進程能將父進程的有效令牌繼承過來,這種繼承機制可讓系統對象和系統進程擁有了默認的權限屬性。所以在特定環境下,系統進程的令牌和對象的安全描述符實例數目相當有限,很多時候都是從父輩們繼承過來的默認值。
系統對象的安全描述符規定了何種身份的主體,申請的哪種類型訪問權限會被允許或者拒絕。Windows在對系統對象或系統進程的權限執行審查操作時,如果發現系統對象的安全描述符為空,意味著目標對象沒有受到權限保護,允許任何主體進行訪問。
當權限審查機制發現目標系統對象存在非空的安全描述符時,會自動比對權限規定和主體的身份標識,直到對應主體所請求的訪問權限被部分或全部允許,也可以是某一訪問請求的權限被拒絕,這樣權限審查操作就會結束。
除普通權限審查外,還有特權和超級特權審查、強制策略和完整性級別審查、可信級別審查、受限令牌審查等。
為了保護系統對象訪問安全,很多人會下意識想到利用各種外力工具,實際上巧妙通過Windows系統自帶的權限配置功能,對計算機系統中的重要對象加以安全防范,能夠達到意想不到的效果。
大家知道,通過IE瀏覽器程序上網訪問時,該程序先天性的安全漏洞,常常會被網上的病毒木馬利用,從而給終端系統的安全運行帶來麻煩。如果強行以較低權限運行IE瀏覽器程序,日后病毒木馬即使悄悄利用了IE瀏覽器程序,不過因為操作權限有限,也不能對終端系統發起多大威脅的惡意攻擊,那么終端系統的運行安全性就不容易受到影響了。更重要的是,用戶進行其他操作,權限一點也不會受到影響。
要實現上述安全防范目的,只要正確設置Windows系統軟件限制策略,讓用戶僅以“基本用戶”級別的權限運行IE瀏覽器程序,具體實施步驟為:首先為軟件限制策略添加“基本用戶”安全等級。Windows系統在默認狀態只支持“不允許的”、“不受限的”這幾個權限級別,要增加一個介于受限用戶賬號和系統管理員權限之間的權限級別時,不妨按下“Win+R”快捷鍵,打開系統運行文本框,輸入“regedit”命令并回車,展開系統注冊表編輯界面,依次展開“HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiers”注冊表分支選項,在指定注冊表分支下手工生成“Levels”雙字節鍵值,將其數值輸入為十六進制的“20000”,單擊“確定”按鈕后軟件限制策略就能支持“基本用戶”權限級別了。
之后強行以“基本用戶”權限級別啟動IE瀏覽器程序。依次點擊“開始”、“運行”命令,在系統運行框中輸入“secpol.msc”命令,打開本地安全設置窗口,將鼠標定位于該窗口左側的“安全設置”、“軟件限制策略”、“其他規則”節點上,打開該節點的右鍵菜單,選擇“新路徑規則”命令,點擊新路徑規則設置框中的“瀏覽”按鈕,從彈出的文件選擇框中導入IE瀏覽器可執行文件,同時從“安全級別”位置處,選中“基本用戶”權限級別,單擊“確定”按鈕后退出設置對話框。重新啟動終端系統后,用戶不管以何種方式運行IE瀏覽程序,它都處于基本用戶權限狀態,在該權限狀態下上網時,IE瀏覽器是不容易受到攻擊的。但是,用戶在本地計算機系統中進行其他操作時,權限不會受到任何限制。
Windows系統服務實際上也屬于一種進程或程序,只是在系統后臺悄悄運行而已,它的啟動運行,可以保證系統實現某種功能或達到某種目的。與普通的應用程序相比,系統服務在運行過程中,不會彈出設置對話框或窗口,用戶很難直觀地看到它們的“影子”,所以黑客程序經常喜歡以此為攻擊目標,通過替換或劫持正常系統服務方式實現攻擊系統目的。所以,對終端系統中的一些重要服務,謹慎開啟它們的運行權限十分有必要。
比如說,對于終端上網用戶來說,“Remote Registry”系統服務一般沒有多大作用,不過黑客很喜歡它的強控制力和破壞力,常常會利用該系統服務,偷偷遠程調整局域網中重要終端系統的注冊表鍵值,來達到攻擊或破壞目的。黑客一旦獲取到遠程計算機系統的管理員賬號,同時在注冊表編輯器窗口中點擊“連接網絡注冊表”命令,輸入遠程計算機系統的IP地址或名稱,連接成功后就能非法調整其所有鍵值了。要是不想讓終端系統遭遇這種遠程攻擊時,為“Remote Registry”系統服務配置嚴格的權限是很有必要的。當為該危險服務授予了嚴格權限時,注冊表編輯界面中的“連接網絡計算機”命令,對一些用戶來說就會自動失效,那么這些用戶就不能遠程修改注冊表鍵值了。
要為特定服務授權,可以請“Process explorer” 這款工具幫忙。只要開啟該工具的運行狀態,在其主操作窗口中,點擊“Services”標簽,進入系統服務列表頁面。選中“Remote Registry”系統服務,按下“Permissions”按鈕,切換到權限編輯對話框。選中并刪除這里的所有普通用戶賬號,同時為“administrators”組賬 號設置“讀取”權限,確認后保存設置操作。這樣,“Remote Registry”系統服務就會自動處于安全保護之中,非法用戶日后就不能隨意通過該服務,遠程修改注冊表鍵值了。
同樣地,“Server”、“Clip Book”、“Shell Hardware Detection”、“Task Scheduler”、“DNS Client”等系統服務,都可能會帶來一系列安全麻煩,都需要經過嚴格的授權,確保普通用戶不能隨意訪問這些系統服務。
惡意用戶經常會利用系統漏洞,偷偷與特定終端系統建立遠程連接,再利用一些特殊技術竊取系統管理員權限,開啟遠程桌面窗口,對特定系統進行惡意攻擊。為了避免這種危險現象,不妨嚴格控制用戶賬號的遠程桌面使用權限,讓合法可信的管理員賬號才可以創建遠程桌面連接,其他用戶賬號無權擁有遠程桌面權限??紤]到遠程桌面窗口打開操作和“explorer.exe”程序文件訪問權限有關,要是將該程序文件的讀取權限授權合法可信用戶賬號,就能達到之前的控制目的。在進行這種操作時,先打開系統資源管理器窗口,在“C:Windows”系統文件夾中選中“explorer.exe”程序文件,點選它右鍵菜單中的“屬性”命令,切換到對應文件屬性對話框,單擊“安全”選項卡,刪除該選項設置頁面中的所有用戶賬號。單擊“添加”按鈕,彈出賬號選擇設置框,導入合法可信用戶賬號,將其相關操作權限都修改為“允許”,確認后保存設置操作。
當然,之前的設置操作,只適用于還未開啟的“explorer.exe”程序,要是該程序已被調入系統內存時,那一定要通過微軟自行開發的“Process Explorer”程序來設置。進入該程序主操作窗口,點選“explorer.exe”程 序,點選其右鍵菜單中的“Properties”命令,展開“Security”面板,按下“Permissions”按鈕,將“explorer.exe”程序操作權限授予特定用戶賬號。日后,只有特定用戶賬號才可以擁有遠程桌面權限,其他用戶賬號即使已創建好遠程桌面連接,也無法打開桌面窗口進行惡意攻擊。
為了避免一些用戶賬號從低版本系統中,隨意遠程登錄局域網服務器系統,建議為它們賦予帶網絡驗證的遠程桌面權限。比如說,在Windows 7系統中進行這種操作時,可以打開系統桌面上“計算機”圖標的右鍵菜單,單擊“屬性”命令,打開系統屬性對話框,按下“遠程設置”按鈕,切換到如圖1所示的遠程設置對話框,選中“只允許運行帶網絡級身份驗證的遠程桌面的計算機連接”,確認后退出即可。

圖1 遠程設置對話框

圖2 使用空白密碼的本地賬號權限設置
日后,當一些用戶賬號從低版本系統中,遠程連接到局域網服務器時,將不能取得成功,那么服務器系統的安全性就能得到保障了,這可以有效防止低版本系統中的病毒任意傳播。
此外,如果允許空白密碼用戶賬號隨意登錄Windows系統,也容易給惡意用戶帶來攻擊機會。為了避免這種現象,建議在重要計算機系統中,僅能授予空白密碼用戶賬號控制臺登錄權限,不能授予其他操作權限:使用“Win+R”快捷鍵,調出系統運行設置框,輸入“gpedit.msc”命令并回車,打開系統組策略編輯窗口。依次跳轉到“本地計算機策略”、“計算機配置”、“Windows設置”、“安全設置”、“本地策略”、“安全選項”節點上,找到特定節點下的“賬戶:使用空白密碼的本地賬號只允許進行控制臺登錄”選項,通過雙擊鼠標方式,打開如圖2所示的選項設置對話框。選中“已啟用”選項, 確認后保存設置即可。
在Windows系統環境下,執行一些特定操作時,普通用戶常常會遇到權限不夠的煩惱,例如打開特定系統文件夾,編輯處理某個系統文件,保存文件時或許會出現權限不足提示。即使通過右鍵菜單,執行“以管理員身份運行”命令,相關操作有時也無法取得成功。這個時候,有些人為了圖方便,索性會以系統管理員權限賬號重新登錄系統,來執行上述特殊操作,不過這可能會給Windows系統帶來不效的安全威脅。
其實,在普通用戶權限狀態下,用戶能夠進行下面的設置操作,來臨時獲得全局管理員操作權限:首先按下“Ctrl+Alt+Del”快捷鍵,展開Windows任務管理器窗口,選擇“進程”選項卡,在Windows任務管理器中找到并選中“explorer.exe”選項,按下“結束進程”按鈕。
之后逐一點選系統任務管理器窗口菜單欄中的“文件”、“新建任務”選項,切換到系統任務運行對話框中,輸入“explorer.exe”命令,并勾選“利用管理特權創建此任務”選項,單擊“確定”按鈕后就能臨時獲取全局系統管理員操作權限了。
此時,繼續進行上述特殊操作時,系統就不會彈出權限不夠錯誤提示了。完成特定操作后,將以管理員權限開啟的“explorer.exe”進程關閉掉,就能退出系統管理員權限狀態了。
當然,要想以系統管理員權限臨時開啟特定程序運行狀態,普通用戶也能用鼠標右鍵單擊特定程序快捷圖標,點選“以管理員身份運行”命令,來快速獲得臨時運行權限。
目前一些病毒木馬程序,會將可執行文件悄悄隱藏到系統注冊表相關啟動目錄中,例如隱藏到注冊表Winlogon、RunServicesOnce、load、RunOnceEx、Run、RunOnce、RunServices等分支下,以實現與系統同步啟動運行目的。為了避免這種現象,大家可以定期查看上述分支下的鍵值內容,確保立刻刪除陌生鍵值啟動權限。
比如說,要查看系統注冊表Run分支下有無陌生病毒木馬鍵值時,只要進入系統注冊表編輯窗口,將鼠標定位到該編輯窗口左側列表中的HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion、HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersion兩個分支下,要是發現有陌生啟動鍵值時,選中并刪除它們即可。
同時,一些病毒木馬程序還相當狡猾,常常會以系統服務形式與系統同步啟動運行,所以大家還必須將鼠標定位到注冊表編輯器窗口的“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”注冊表分支上,將指定分支下的陌生服務選項找出來并刪除掉。在進行該操作時,先打開系統運行對話框,輸入“services.msc”命令并回車,進入系統服務列表窗口,從中找到陌生服務選項并用鼠標雙擊,彈出目標服務屬性對話框,按下常規設置頁面中的“停止”按鈕,同時將“啟動類型”設置為“已禁用”即可。
為了防止一些狡猾病毒程序卷土重來,用戶還需要對與系統啟動相關的注冊表分支寫入權限進行控制,避免它們重新將惡意啟動鍵值導入到系統注冊表中。比如說,要阻止病毒向注冊表分支HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun下寫入惡意鍵值時,只要先將鼠標定位到注冊表特定分支上,逐一單擊“編輯”、“權限”命令,展開指定分支的權限設置對話框,刪除所有陌生用戶賬號,同時單擊“添加”按鈕導入合法可信用戶賬號,并為它們授予適當操作權限。