文章詳情頁
Windows Vista系統賬戶保護機制初探(圖)
瀏覽:3日期:2023-08-01 10:46:25
最近Vista又有了很多新聞,還有Vista中的新成員WMP11也閃亮登場。今天,我們就一起來看看Vista中是如何保護賬戶安全的。通常在提到微軟的操作系統時,我們最關心的永遠都是安全性。因為普及率非常高,再加上全球無數各種水平的用戶都在使用它,同時在微軟的操作系統上運行有大量質量良莠不齊的應用程序,這一切結合起來就讓微軟產品的安全問題非常突出。例如前兩年曾肆虐網絡的沖擊波、振蕩波、斯文等病毒,都是利用了微軟產品的漏洞以及用戶的粗心大意傳播開的。微軟自然不會讓這種問題繼續下去。在去年很長的一段時間里,微軟全部的開發人員都停下了手頭的開發工作,開始對現有產品進行安全性檢查。這個檢查直接影響了Windows XP SP2和Vista的推出時間,不過從檢查之后發布的Windows XP SP2和Windows Server 2003 SP1來看,安全性確實得到了很大提高,長時間的等待是值得的。雖然在打過補丁之后安全性得到了一定提高,不過這畢竟還是在現有漏洞上打補丁,總會讓人覺得不夠放心。那么全新的下一代操作系統在安全性方面會有什么進步?我們可以通過Vista測試版體驗一下。本文以5219版Vista為例,在該版本中,安全性方面最主要的一個改進就是增加了一個叫做用戶賬戶保護的功能(User Account Protection,UAP)。Vista發展動態Vista新成員WMP11亮相作為Windows捆綁的播放器,WMP一直擁有巨大的用戶群,它每一次新版本的發布都為很多Windows的粉絲們所關注。最近,WMP11的發布終于在Vista Beta1推出4個月后有了眉目。從截圖來看,WMP11增加了預覽功能,可以顯示視頻文件的縮略圖。其用戶界面大體上與前作相同,但在細節上,更突出了面板的質感,和晶瑩剔透的Vista配合而相得益彰。 漂亮的Vista WMP11你可能覺得,這是一套相當安全并且方便的機制,因為只要在登錄系統的時候輸入一次用戶名和密碼,就可以在整個登錄過程中直接執行任何具有權限的操作。同時只要保護好SAM數據庫,也就不用擔心系統的安全問題。然而事實遠非如此,這樣的做法雖然方便,不過卻相當不安全。我們可以考慮這樣的情況:使用管理員賬戶登錄系統后,我們運行的任何程序自然也將具有管理員權限。如果我們不小心運行了網上下載的含有惡意程序的文件會怎樣?惡意程序在運行的時候會使用當前用戶的訪問憑據,也就是說程序的進程也具有了管理員權限,進而該進程可以對系統進行任何操作。意識到其中包含的風險了吧。所以很多介紹系統安全的文章都會建議,平時使用計算機的時候最好不要用管理員賬戶登錄,而是用權限小一些的賬戶,只有在偶爾需要進行維護或者其他必要操作的時候才使用管理員賬戶,或者直接使用Runas命令。這樣才能保證系統安全。小知識:不得不提的Runas命令這里再介紹一下Runas命令。通過該命令,我們可以在保持當前用戶登錄的情況下使用其他用戶的身份運行程序。例如,對于開始菜單中某個程序的快捷方式,我們只需要在該快捷方式上點擊鼠標右鍵,然后點擊“運行方式”命令,接著在彈出的對話框中選擇“下列用戶”選項,指定一個用戶名并輸入密碼。這樣程序就可以使用指定的用戶身份運行了。當然,如果你喜歡使用命令行方式,也可以運行CMD打開命令提示符,使用類似這樣的命令:“runas user:要使用的用戶名 要運行的程序的路徑和名稱”,按下回車,并輸入該用戶的密碼。例如通過“runas user:administrator regedit”這樣的命令就可以使用Administrator的身份運行注冊表編輯器。雖然我們可以在平時使用權限低的用戶名登錄,但在需要執行特定操作的時候使用runas命令,不過這還是有些麻煩,同時需要進行的額外操作也太多。為了解決這一問題,Vista中提供了UAP功能。在介紹這個功能之前,我們先了解一下Windows中的各種權限是如何控制的。這部分主要以單機或工作組環境下的Windows XP Professional為例,同時也適用于Windows 2000/2003,不適用于Windows 98。系統安裝好后,所有用戶的憑據信息(也就是用戶名和密碼)都被保存在本地SAM(Security Accounts Manager,安全賬戶管理器)數據庫中。當用戶登錄系統時,首先要輸入用戶名和密碼,這些信息由winlogon進程獲取,并由LSA(Local Security Authority,本地安全驗證)子系統提交到SAM數據庫中驗證。如果SAM數據庫中有符合條件的記錄,那么LSA子系統就會生成一個訪問令牌(Access Token),并傳遞給用戶。當該用戶需要運行程序或訪問資源的時候,系統首先會在用戶持有的訪問令牌中查找相應的權限信息,然后和想要進行的操作所需要具有的權限進行比較,如果權限足夠,那么就可以進行操作;反之操作則會被禁止。以運行程序為例,當我們試圖啟動一個程序的時候,系統會使用我們的訪問令牌來啟動程序,這樣被啟動的程序就擁有了和令牌所有者一樣的權限。為了證實這一點,我們可以打開Windows任務管理器的進程選項卡。該選項卡下列出了當前系統中的所有進程,每個進程在“用戶名”一欄就顯示了該進程的“身份”。以圖1中的幾個進程為例,csrss.exe是系統進程,因此用戶名一欄顯示的是“SYSTEM”;emeditor.exe是當前登錄用戶啟動的程序,因此用戶名一欄顯示的是當前用戶的用戶名;emule.exe雖然也是當前用戶啟動的,不過在啟動的時候使用了Runas命令,因此看起來該程序就好像其他用戶啟動的。當然,因為這三個進程使用了不同的訪問令牌(也就是用戶身份),那么這三個程序的權限也就會有所不同。 進程顯示啟用該功能之后,Vista實際上自動運行在一個被減少了很多特權的安全級別上。如果因為某些操作,系統需要更高的權限,就會顯示一個對話框,并要你輸入密碼。這個密碼只能用于發起這次請求的操作,隨后你進行的其他操作,哪怕是由此前的操作導致的額外操作,全部都是以最低的權限運行的。默認情況下UAP是被禁用的,要啟用該功能,在開始菜單中點擊“All Programs(所有程序)”,然后點擊“Turn UAP settings On or Off(打開或關閉UAP)”,你將能看到圖2所示界面,點擊Yes按鈕即可打開UAP,隨后我們需要注銷并重新登錄。試試看更改一下系統設置吧,例如隨便打開控制面板中任何一個控制程序,你都將會看到圖3所示的對話框,要求你輸入管理員用戶的密碼。 彈出警告框 需要輸入管理員密碼有人擔心這個功能在啟用后會不會造成使用上的不便,其實擔心是沒必要的,UAP只是一種保護,而不是單純的限制。假設我們已經啟用了UAP功能,并要執行某個需要一定特權才能執行的操作,例如修改注冊表,那么可能有兩種情況:如果當前登錄的賬戶已經有了修改注冊表的權限,那么Vista會彈出一個對話框,詢問用戶是否繼續該操作,用戶可以作出選擇;如果當前登錄的用戶沒有修改注冊表的權限,Vista會彈出一個對話框,告知用戶這一情況,并允許用戶輸入一個具有相應權限的賬戶的用戶名和密碼,驗證成功后一樣可以進行操作。如果你覺得這樣還不夠直觀,也可以通過編輯注冊表打開UAP的另一個界面。在注冊表編輯器中定位到HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesSystem,將ConsentPromptBehavior的數值改為“1”,重啟動系統。這樣當運行一個需要一定特權的程序時,首先會看到圖4所示對話框,如果確實打算執行該操作,那么可以點擊“I want to complete this action(我想要執行該操作)”,否則可以點擊“I do not want to complete this action(我不想執行該操作)”,返回到桌面。 選擇項UAP是個相當好的改進,在保持了易用性的同時又增強了安全性,建議每個用戶都使用。然而該功能最大的一個不足就是和現有程序的兼容問題,因為UAP是Vista中一個新增的功能,因此有些老程序(尤其是工作在系統底層的程序,例如老版本的殺毒軟件、防火墻、備份軟件等)在啟用UAP后可能無法正常工作,或者存在問題。例如我們安裝的McAfee VirusScan Enterprise 8,雖然并沒有針對Vista進行優化,不過在默認設置下完全可以在Vista中安裝和使用。但是啟用UAP之后卻有個小問題,不管用什么賬戶登錄系統(包括管理員和來賓),當McAfee殺毒軟件啟動的時候都需要用戶輸入具有管理員權限的用戶密碼。其實仔細想想,這也是不可避免的,畢竟Vista太新了,大部分程序在設計的時候并沒有考慮過這些新特性。不過這個問題并不嚴重,畢竟以微軟在個人電腦操作系統領域的絕對統治地位來說,軟件開發商如果不能及時發布適應新版操作系統的應用程序,那必定會被用戶所拋棄;相反,如果能緊跟微軟腳步,在第一時間推出能夠用在微軟最新操作系統上的應用程序,那則會大獲成功。因此可以肯定,當Vista正式發布之后,相應的應用程序都會在第一時間里發布針對Vista設計的新版本,或者為老版本提供補丁程序。編后:Vista中新增的或者改進的安全功能當然不止如此,其他諸如驗證方式、防惡意軟件、網絡訪問保護、防火墻、Windows服務加固、增強的IE,以及數據保護等功能無不令Vista更加安全。雖然這些功能目前可能還不夠完善,甚至有些還處于開發階段,本報會在以后的文章中向大家詳細介紹這些內容。
標簽:
Windows系統
排行榜
