Windows Vista系統賬戶保護機制初探

來源:互聯網
上載者:User

最近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命令,因此看起來該程式就好像其他使用者啟動的。當然,因為這三個進程使用了不同的存取權杖(也就是使用者身份),那麼這三個程式的許可權也就會有所不同。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.