【教學】Mark's Blog : Running as Limited User - the Easy Way



贊助商連結


FYI
2007-02-07, 08:03 AM
Mark's Blog : Running as Limited User - the Easy Way (http://blogs.technet.com/markrussinovich/archive/2006/03/02/running-as-limited-user-the-easy-way.aspx)

資深安全專家都知道維護系統安全首要之道在於降低用戶的權限, 然而說得容易做得難, 許多軟體都會要求寫入這裡存取那裡, 這使得大多用戶乾脆直接使用Administrator 作業, 以避免麻煩, 一旦惡意程式入侵, 自然也取得相同的權限, 可以為所欲為, 小弟的Maxthon 預設只允許下載圖片, 其他一律禁止, 然而也造成許多不便, 尤其不少網站從首頁就開始採用腳本(Scripts), 如果不允許腳本的話, 就什麼都看不見, 真是令人為之氣結, 為了安全只好安裝反間諜軟體, 然而還是防不勝防, 解決方法之一是創建一個權限較低的用戶, 然後 "以其他身份" 執行程式的捷徑, 或者執行 "RunAs", 方法之二是執行Sysinternals Process Explorer (http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/ProcessExplorer.mspx)'s "Run as Limited User" 或執行 "PsExec (http://www.microsoft.com/technet/sysinternals/ProcessesAndThreads/PsExec.mspx)", 方法之三是運用群組原則物件編輯器(gpedit.msc)或直接修改登錄檔來限制軟體的權限(Software Restriction Policies (http://www.microsoft.com/taiwan/technet/security/guidance/secmod65.mspx), or SAFER (http://msdn2.microsoft.com/en-us/library/ms722422.aspx)), 只適用於WinXP 以後的系統, 您可以從Process Explorer 檢視以上三者的權限差異, 如同作者所說, 結果是否可行端看應用程式是否可以在較低權限下執行

以下登錄檔可以限制Internet Explorer, Outlook Express, Windows Media Player 和Maxthon 的權限, 您可以自行將Maxthon 替換成Mozilla Firefox

SetSAFER.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer]

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers]
"Levels"=dword:00031000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072]

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths]

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFFD8629-E248-4C3C-A06B-C178921C6745}]
"Description"="Internet Explorer"
"ItemData"="C:\\Program Files\\Internet Explorer"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFFE51CA-369D-4A15-BA47-D465336EFCBF}]
"Description"="Outlook Express"
"ItemData"="C:\\Program Files\\Outlook Express"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EF49EF65-2AA3-4898-B447-8D6891F5F6D8}]
"Description"="MSN Messenger"
"ItemData"="C:\\Program Files\\MSN Messenger"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFC58886-979A-4a92-9BCC-5483DD82FF84}]
"Description"="Windows Media Player"
"ItemData"="C:\\Program Files\\Windows Media Player"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EF655072-68DE-498d-A780-FA56C3F2471C}]
"Description"="RealPlayer"
"ItemData"="C:\\Program Files\\Real"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFA51896-E198-4e3e-A45F-80DEA7941369}]
"Description"="Maxthon"
"ItemData"="C:\\Program Files\\Maxthon"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EF4372ED-6CE3-4c73-98C0-FCF9650695DF}]
"Description"="Mozilla Firefox"
"ItemData"="C:\\Program Files\\Mozilla Firefox"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFCCF058-2A8B-46b4-8815-CCC7B03FC057}]
"Description"="Mozilla Thunderbird"
"ItemData"="C:\\Program Files\\Mozilla Thunderbird"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EF1BCAA9-C6E3-4e33-97F9-C0FBDE7EA312}]
"Description"="Orbit Downloader"
"ItemData"="C:\\Program Files\\Orbitdownloader"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFFF9BDB-2B3F-43e4-8F60-0EC1DD13286D}]
"Description"="Skype"
"ItemData"="C:\\Program Files\\Skype"
"SaferFlags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\131072\Paths\{EFE4BFBA-5F21-4516-851B-B29EB9E20D2C}]
"Description"="Gizmo Project"
"ItemData"="C:\\Program Files\\Gizmo Project"
"SaferFlags"=dword:00000000
然而如果您需要Administrator 權限, 以便於IE 安裝Adobe Flash Player 等等, 方法一是以群組原則物件編輯器移除Internet Explorer 的軟體限制原則, 或者直接修改登錄檔, 然後執行 "gpupdate", 其二是將 "IEXPLORE.EXE" 複製到別處, 然後執行副本, 如此就不會受到SAFER 的限制, 但對於WinXP Home 用戶來說, 由於WinXP Home 並未 (http://cnbeta.com/modules.php?name=News&file=article&sid=15830)內建群組原則物件編輯器, 所以只能採行直接修改登錄檔, 一旦SAFER 生效之後才修改SAFER 設定的話, 則只能重新啟動, 才能夠讓修改後的設定生效, 或者在使用者登入登出的方式中停用 "快速使用者切換", 如此只要登出便會使改變生效

小弟對於使用上的建議是, 請將預設瀏覽器設定為Maxthon 或FireFox, 然後以SAFER 將其權限降低, 但仍然維持Internet Explorer 不變, 遇到必須以Administrator 權限安裝軟件時才改用Internet Explorer, 如此可以保持最大的彈性, 然而對於Win2000 以前的系統來說, 由於不支援SAFER, 所以只能採用RunAs, Process Explorer 或PsExe, 但請留意勿從瀏覽器以外的軟體直接執行網址, 例如從不明郵件或PDF 之中, 因為那樣做會取得您的用戶權限

另外要提醒網友的是, 限制程序的權限並無法防止不明軟體入侵到記憶體中, 所能做到的只是防止不明軟體變更您的系統設定(權限不足), 換句話說, 重新啟動便能恢復前一個狀態, 然而從被入侵直到重新啟動這段期間, 則仍然會對您造成傷害, 所以並無法取代反間諜程式的功能, 以上若有謬誤, 敬請不吝指正

Force an application to run as a restricted user : Knowledgebase :: Trinet Ltd (http://www.trinet.co.uk/kb.asp?kbid=000039)
以系統管理員身份安全地瀏覽網站並閱讀電子郵件,第 1 部 (http://msdn2.microsoft.com/en-us/library/ms972827.aspx)
以系統管理員身份安全地瀏覽網站並閱讀電子郵件,第 2 部 (http://msdn2.microsoft.com/en-us/library/ms972802.aspx)
Michael Howard's Web Log : SAFER and Internet Explorer (http://blogs.msdn.com/michael_Howard/archive/2005/01/31/363985.aspx)
Download details: Microsoft Exchange Server GUID Generator (http://www.microsoft.com/downloads/details.aspx?FamilyID=94551f58-484f-4a8c-bb39-adb270833afc&DisplayLang=en)
Michael Howard's Web Log : SetSAFER and .NET Framework 2.0 (http://blogs.msdn.com/michael_howard/archive/2006/05/07/592136.aspx)

此應用程式設定軟體限制原則的第 1 版 (又名為 SAFER) 目前已與 .NET Framework 2.0 發行版本相容。SetSAFER 在「以系統管理員身份安全地瀏覽網站並閱讀電子郵件,第 2 部」一文中首次豋場。

Microsoft Shared Computer Toolkit for Windows XP - PCZONE 討論區 (http://www.pczone.com.tw/thread/25/116258/)

補充: (2007-03-11)
如果您使用以上SetSAFER.reg, 不妨將IE 換成您常用的瀏覽器, 例如IE <-> Maxthon, Windows Messenger <-> MSN Messenger, 前者不受限, 後者受限制, 必要時可以相互替換

補充: (2007-04-12)
SetSAFER.reg 新增限制 "RealPlayer", 因為 "RealPlayer" 可能會防止休眠

補充: (2008-01-28)
以Orbit Downloader 取代Free Download Manager
新增限制Gizmo Project 和Mozilla Thunderbird

贊助商連結


FYI
2007-02-09, 08:22 AM
小弟並非資安專家, 只不過近來由於病毒頻傳, 如今就連上網衝浪也不保險, 曾幾何時, 網路世界怎麼變得如此不安全? 所以小弟才會開始尋找這方面的解答, 其實資安專家早已有了答案, 簡而言之, "Running As Non Admin (http://nonadmin.editme.com/RunningAsNonAdmin)"

如果讓您整天帶著一百萬現金在身上到處跑來跑去, 要不被偷走也難, 要您少帶一點, 或許您會說 "不知道什麼時候要用錢啊!", 身上只擺個一兩仟元, 不夠再去領, 這麼簡單的道理相信誰都瞭解, 但是一旦回到電腦的領域, 卻大部分人都做不到, 這到底是 "知難行易" 還是 "知易行難" 呢? 話說就連小弟也向來不太重視這個問題, 在今年以前, 小弟的電腦是不裝防毒軟體的, 純粹憑藉良好的習慣來避免中毒, 第一次中的毒是巴基斯坦難兄難弟所寫的Brain 病毒, 當時還好玩得故意把禍種留了下來, 第二次中毒是因為別人的畢業光碟感染了車諾比事件的後遺症 - CIH 病毒, 敵人不可怕, 可怕的是你所信任的朋友, 第三次是在去年九月, 至今還不知所以, 懷疑很可能是因為VML 漏洞 (http://www.pczone.com.tw/thread/28/130905/)而引狼入室, 或者是某個從中國網站所下載的程式內藏木馬, 以上只是反映敵人不斷在求進步, 如果我們還一成不變, 最後難保不會成為階下囚

"一朝被蛇咬, 十年怕草繩", 小弟現在把上網衝浪當成如臨大敵一般, 雖然安裝了免費的防毒軟體, 但是仍然不敢掉以輕心, 平常總是在戒備狀態, 在一些大站也紛紛中箭落馬之後, 一切都變得不可信賴, 但是在研讀了資安專家的文章後, 小弟也已經逐漸恢復信心, 以小弟粗淺的認知, "斯斯有兩種", "Running As Non Admin" 也有兩種, 第一種也就是前一篇的作法, 小弟姑且稱之為 "向下沉淪", 也就是大部分時候都維持Admin 的最高權限, 但是針對少部份不安全的工作則降低授權, 另一種則反過來, 小弟稱之為 "向上提昇", 也就是大部分時候都維持受限的User 權限, 但是針對少部份工作則隨時可以提高至Admin 權限, 兩種作法各有利弊得失, 前者對於大多數人的使用習慣來說改變最少, 影響最小, 因此比較適合於不想花費太多心思於管理上的人, 但是存在著一定的風險, 後者適合於有能力自行解決問題的人, 操作上可能會遇到不便, 而且需要自行管理帳戶的權限, 但是安全等級較高, 所以到底是要 "向上提昇" 還是 "向下沉淪", 聰明如您應該不難做出決定, 由於Windows XP 在安全性(SAFER)上有很大的進步, 使得搭配的工具比較容易開發和取得, 因此小弟建議還在使用Win2000 以前的作業系統的網友, 最好能升級到WinXP SP2 以上, 以策安全, 底下列出一些相關連結, 提供給您作為參考

Applying the Principle of Least Privilege to User Accounts on Windows XP (http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/luawinxp.mspx)
Aaron Margosis' WebLog : All Tags >> Non-admin (http://blogs.msdn.com/aaron_margosis/archive/tags/Non-admin/default.aspx), Aaron Margosis 是微軟的資安專家
Aaron Margosis' WebLog : Table of contents, Aaron Margosis' non-admin blog (http://blogs.msdn.com/aaron_margosis/archive/2005/04/18/TableOfContents.aspx)
Aaron Margosis' WebLog : The easiest way to run as non-admin (http://blogs.msdn.com/aaron_margosis/archive/2004/06/17/158806.aspx)
Aaron Margosis' WebLog : How to allow users to manage file and print shares without granting other advanced privileges (http://blogs.msdn.com/aaron_margosis/archive/2005/04/18/409105.aspx)
Aaron Margosis' WebLog : PrivBar -- An IE/Explorer toolbar to show current privilege level (http://blogs.msdn.com/aaron_margosis/archive/2004/07/24/195350.aspx)
Aaron Margosis' WebLog : PrivBar source (finally) (http://blogs.msdn.com/aaron_margosis/archive/2005/10/13/480901.aspx), 下載 PrivBar.dll v1.0.2.1

nonadmin - Home (http://nonadmin.editme.com/)
nonadmin - Useful Tools (http://nonadmin.editme.com/UsefulTools)
nonadmin - RunAsAdmin Explorer (http://nonadmin.editme.com/RunAsAdminExplorer)
nonadmin - Privilege Manager (http://nonadmin.editme.com/PolicyMakerApplicationSecurity)
nonadmin - sudo Wn (http://nonadmin.editme.com/sudoWn)
nonadmin - Sudo For Windows (http://nonadmin.editme.com/SudoForWindows)

FYI
2007-02-19, 06:27 PM
除了PsExec, SAFER 之外, Sandboxie (沙盤) 是另外一種可以限制應用程式的Windows 子系統, 不過其原理不在於限制權限, 而在於限制儲存時僅能存入虛擬磁碟

【下載】Sandboxie (沙盤) - 微型影子系統 - PCZONE 討論區 (http://www.pczone.com.tw/thread/67/131248/)
【轉貼】PowerShadow-方便安全的軟體測試平台 - PCZONE 討論區 (http://www.pczone.com.tw/thread/67/128466/#post931863)
【轉貼】iThome online : : 揪出資安威脅藏鏡人:傀儡程式 - PCZONE 討論區 (http://www.pczone.com.tw/thread/28/130060/)

How the right user account can help your computer security (http://www.microsoft.com/athome/security/online/logoff_admin_account.mspx)
Windows Administration: Problems of Privilege: Find and Fix LUA Bugs -- TechNet Magazine, August 2006 (http://www.microsoft.com/technet/technetmag/issues/2006/08/LUABugs/)

Least-Privilege User Accounts
Determining a true LUA bug
Techniques for fixing LUA bugs
Mark's Blog : PsExec, User Account Control and Security Boundaries (http://blogs.technet.com/markrussinovich/archive/2007/02/12/638372.aspx)

There’s only one catch to the virtual sandbox the restricted token creates: processes running in the sandbox are running as you, and so can read and write any files, Registry keys, and even other processes to which your account has access. That caveat creates major gaps in the walls of the sandbox and malicious code written with awareness of the restricted environment could take advantage of them to escape and become full administrator. An easy way out is for the malware to simply use OpenProcess to gain access to one of your processes running outside the sandbox and to inject into it code and a thread to execute the code.

FYI
2007-03-11, 01:52 PM
受限制的應用程式所開啟的程序仍然是受限制的, 這一點有時會產生一些副作用, 例如由IE 下載軟體並立即開啟, 或者由IE 啟動續傳程式再開啟下載的軟體, 則所有子(孫)程序仍然是受限制的, 萬一該軟體需要管理員權限, 此時就會安裝失敗, 有些共享軟體會因此不允許重新安裝, 所以要注意, 解決之道就是先儲存, 再由檔案總管開啟下載的軟體

大灰芒果
2007-03-12, 04:28 PM
昨天發現一個叫 DropMyRights 的好東西(類似 RunAs),在 MSDN 有,可是我還是不太會用啊。:|||:

FYI
2007-03-12, 05:15 PM
DropMyRights (http://nonadmin.editme.com/DropMyRights) 是SetSAFER 作者Michael Howard (http://blogs.msdn.com/michael_howard/) 的舊作, 原理類似PsExec, 適合各種Windows 版本, 對於WinXP 以上仍建議使用SAFER, 簡單方便而且比較能顧及全面, 因為DropMyRights 和PsExec 都只能限制主動開啟的程式, 然而對於被動開啟的程式(由捷徑或是檔案關聯等)則管不到