https://newera17031.activehosted.com/index.php?action=social&chash=0245952ecff55018e2a459517fdb40e3.2287&nosocial=1
https://newera17031.activehosted.com/index.php?action=social&chash=0245952ecff55018e2a459517fdb40e3.2287&nosocial=1

新聞

使用者端防禦一二事

2006 / 10 / 23
林佳明
使用者端防禦一二事

想像一下圖1的網路架構,企業使用兩個防火牆區分出DMZ (Demilitarized Zone)、內部網路,並將IDS(Intrusion Detection System)放置在第一層防火牆保護下或DMZ區中。
這是以前「制式」的網路架構-為了避免防火牆被攻擊穿透而使用兩個防火牆,並利用入侵偵測系統來發現是否有外部攻擊者正在進行攻擊行為。然而這樣的網路架構對於DMZ區的防護看似是足夠的,但對於內部網路的防護卻略顯不足。因為這種網路架構的防護重點都是在保護DMZ區中的伺服器,如果內部網路中出現了惡意的使用者,將無法被發現。再者,由於NAT(Network Address Translation)技術的使用、作業系統安全性的增強(如Windows XP內建個人防火牆功能)、以及入侵者對資料竊取的意向轉變(DMZ區中的伺服器已經不太會放機密資料,只有內部使用者才會握有敏感資訊;以及從Phish(網路釣魚)攻擊的數量增加可以證明入侵者入侵意圖的轉變),駭客們已經開始針對使用者來發展他們的入侵手法了。

使用者行為
在一般的網路架構中,大都只會限制網際網路僅能對企業連線特許的通訊埠,而未限制內部使用者往網際網路的連線行為。尤其是使用NAT技術來充當防火牆的架構更是毫無禁忌。然而這種「自由」的模式,對網管人員來說卻是一個很大的考驗。這表示使用者可能從各式各樣的管道,不小心取得含有惡意行為的木馬程式,以及網管人員在分析網路封包、行為時困難度的增加。所以為了避免以上的兩種狀況,已經有許多的企業在防火牆或網路設備上限制使用者對網際網路的連線行為。也因此,駭客便開始從研究伺服器上服務的弱點轉向研究用戶端軟體的弱點。
試想一下,為何企業需要配給電腦給員工使用?主要目的就是處理公務,而這些公務可能包括編寫文件、上網收集資料、收發與客戶、同仁間的電子郵件。於是網管人員便在防火牆上設定僅允許以上公務行為的連線(開放80、443、53、25、110...通訊埠)。而駭客就根據使用者公務行為與網管人員所採用的阻擋機制來發展入侵行為。
首先,駭客開始將惡意連線(後門連線、攻擊行為等)偽裝成或使用防火牆所允許的連線。常見的就是後門程式使用80通訊埠往跳板主機連線、或者將後門程式注入IE(Internet Explorer)瀏覽器程式中,透過IE往外連線,躲避防火牆或入侵偵測系統的阻擋。然後駭客開發編寫文件用的程式(Office軟體、壓縮軟體、PDFreader、MP3播放器等)、網頁瀏覽器、電子郵件收發軟體的弱點,再搭配社交工程手法引誘使用者編寫或者讀取含有惡意程式的「文件檔」、讀取惡意的網址、接收惡意的電子郵件。企業就被迫要開始思考如何來對抗這些正在盛行的使用端攻擊。


教育使用者
使用者端的攻擊大部分都是從「人性上的弱點」來進行,而這個牽扯到人的弱點還是有技術面無法防禦的時候。例如,筆者曾見過某單位的秘書透過電子郵件收到一封沒有主旨、寄件人、信件內文的電子郵件,整封信就只有一個執行檔的附檔。而這位「好奇」的秘書就因為什麼資訊都看不到,所以對這個執行檔更充滿好奇,於是滑鼠移至執行檔上點了兩下。想當然爾,這位天真無知的秘書電腦裡面馬上躲了不少隻惡意程式。
所以,教育使用者是使用者端防護的必要條件。而教育使用者的內容,也不能只是防護的觀念而已,還必須包含防護的技術。就好像前一陣子很流行的詐騙電話,不能只跟民眾宣導留意詐騙電話這個概念而已,還必須跟民眾講詐騙電話可能使用的伎倆以及分辨詐騙電話的技巧。因此,許多單位對於使用者的教育訓練不能再只是一句「請勿開啟來路不明的非法文件」來教導使用者。必須教導使用者如何分辨「來路不明」、「非ㄇ法文件」。在使用者開啟無法肯定的檔案時,可以使用Filemon http://www.sysinternals.com/Utilities/Filemon.html)軟體監視文件是否會偷偷的開啟、執行異常的程式。以下舉一個開啟Word文件卻被安裝後門的實例來說明Filemon如何協助找出惡意的程式。
從1 行可以看到微軟OFFICE的WORD在C: \DOCUME~1ADMINI~1LOCALS~1\Temp目錄產生了一個WINW0RD.EXE的執行檔。並且將20060110.doc這個文件中的資料複製到WINW0RD.EXE這個執行檔中。 (如圖2)
到了第8行可以看見這個WINW0RD.EXE被執行起來讀取MFC42.DLL檔案。因此,透過Filemon使用者可以分析自己在開啟下載得來或者透過電子郵件取得的文件時,這些文件是否會偷偷的產生莫名的執行檔並執行起來。請注意!這個由20060110.doc文件所產生的WINW「0」RD.EXE,其實是WINW「零」RD.EXE入侵者嘗試使用相似的字樣(數字的0裝成英文字的O)來混淆使用者,讓使用者誤會正在執行中的後門程式是微軟的OFFICE WORD。如同圖3一樣,當使用者使用工作管理員檢查是否電腦正在執行惡意程式時,可能會被欺騙認為是真的WORD在執行中。
或者使用者也可以利用InstallWatch(http://www.epsilonsquared.com/installwatch.htm)來分析一個文件是否會造成惡意的行為。使用的方式也非常簡單,安裝完InstallWatch之後,在開啟任何文件之前先製作一份系統資訊的快照(Snapshot)。然後開啟懷疑的文件(任何不是自己製作出來的文件都應當視為可疑的文件)。再回到InstallWatch執行Analyze,InstallWatch就會告訴你在快照製作後到分析之前這段時間系統有
哪些檔案、註冊機碼被新增、修改以及刪除。圖4就是InstallWatch分析後的結果。
雖然InstallWatch是GUI介面的工具比較容易讓使用者了解分析結果,可是由於他是採快照分析的方式,如果入侵者使用了Rootkit技術,就很有可能會讓InstallWatch分析不到電腦已經被入侵的事實。而Filemon則是採即時記錄的方式,就算惡意文件會安裝Rootkit,其安裝過程還是會被紀錄下來。


更動網路架構
如同先前所說的,舊式針對DMZ區進行防護的網路架構已經不敷使用,因此該考量建立對使用者端防護的網路架構。
首先建議在內層防火牆上增加或使用應用層防火牆,透過應用層防火牆來阻擋偽裝正常連線的封包。使用應用層防火牆還有額外的好處,可以控管使用者是否可以使用即時通訊(Instant Message)、點對點(P2P)軟體,減少使用者取得惡意程式的來源進而降低被入侵的
機率。現今許多的商業或開放原始碼的P2P應用程式辨識解決套件都是使用協定分析的方式來當成分析引擎。這些解決方案包含:L7-fi lter、Cisco's PDML、Juniper的netscreen-IDP、Alteon Application Switches、Microsoft common application signatures、以及NetScout。這些工具都是使用正規化表示式的比對方式來比對、分析網路應用層上的資料,藉此來決定出是哪一套的P2P軟體正被使用中。為了發現內部是否有惡意的使用者再進行攻擊,也建議在內部網路佈建IDS設備或者開啟路由器或交換器上紀錄網路流量(Netfl ow)的功能來得到網路流量的紀錄。透過內部網路封包的監控,可以及早發現入侵行為的發生,進而提早做損壞控管。建議制定一套蒐集使用者系統資訊的程序,例如技術上使用AD(Active Directory)環境來收集每一位使用者的系統註冊機碼、系統執行程序、檔案資訊,進而分析這些資訊判斷使用者的系統是否已經被駭客入侵。


隔開資料、實體防護
不管是哪一種的安全機制都是將被入侵的機率降低,可是被入侵的機率卻永遠不可能等於零(就算你拔除了網路線,還是有實體入侵這條管道)。既然,被入侵是無法避免的,那麼我們應該將被入侵後會發生的損失減低到最小。讓入侵者就算入侵進了系統也沒有任何有價值的資料可以被駭客竊取走。因此可以將組織敏感、重要的資料存放在無法對外連線到網際網路的特殊機器或區段上進行-機密資料不存放在連接網際網路電腦的管理程序。
如同以上所提及的就算失去了網際網路這項入侵的路徑,惡意的入侵者還是可以透過實體入侵來竊取資料。而為了避免發生這類的情事,企業就必須良好的進行實體管理,例如辦公室人員進出的管理、機器設備存放地點的管理、使用者電腦密碼管理、可攜式儲存設備管理、文件銷毀管理等。



HoneyMonkey
由於有越來越多的駭客在研究如何透過網頁瀏覽器入侵使用者,所以微軟發展了一個專門分析某個網站是否存在惡意程式網頁的計畫-HoneyMonkey(蜜糖猴,http://research.microsoft.com/honeymonkey/)。HoneyMonkey偵測的運作方式是先執行一個Strider Flight Data Recorder (FDR)程式來監視目錄中的每一個檔案以及註冊機碼(Registry)的讀寫行為。然後,再執行瀏覽器去瀏覽某一個網站上的網頁資料並在瀏覽每一個網頁時都會等待數分鐘,且HoneyMonkey不接受任何提出安裝要求對話框的請求。在瀏覽網頁時,任何不是建立在瀏覽器暫存目錄中的執行檔都會被FDR給記錄下來。HoneyMonkey就是利用這樣的黑箱測試來判斷某個網站是否存在惡意的程式碼。
HoneyMonkey除了執行FDR程式外,還會執行Strider Gatekeeper來偵測是否有任何執行檔被利用以Auto-Start Extensibility Points (ASEPs)的方式來進行hook動作,及執行GhostBuster 來偵測是否有任何會進行隱藏程式動作的惡意程式。微軟目前也將HoneyMonkey計畫的成果開發成工具。
URLTracer(http://research.microsoft.com/URLTracer/)。讓任何使用者可以自行下載來安裝,並監視自己的瀏覽行為是否會造成自己的電腦被入侵。不過,整個HoneyMonkey計畫的目標是「發現」懷有入侵行為的惡意網站,而不是「保護使用者的電腦不被入侵」。所以當URLTracer發現某個網站藏有入侵行為時,也等於表示你的電腦已經被入侵成功了!所以,微軟在運行HoneyMonkey計畫時,是將符URLTracer安裝在虛擬機器上,只要發現某個網站存在惡意程式造成系統被入侵後,就重新啟動VM,讓系統回復到被入侵前的狀態。


MIS Need To Know
微軟在2005年發佈了編號919637的安全通告,說明微軟的文書處理軟體Word在XP以及2003的版本存在弱點可以執行駭客的任意指令。而比較令人覺得驚慌的是,這個919637所代表的弱點是發現自zero-day(零時差、零日)的攻擊。也就是說早在微軟察覺到這個弱點之前,已經有駭客神不知鬼不覺的利用這個弱點到處入侵系統。

安全模式
這份文件在微軟尚未釋放修補程式(Patch)之前,建議的因應措施為「永遠在安全模式中使用Microsoft Word」。而文件中所教導在安全模式中使用MicrosoftWord的方式是新增一個啟動Word的捷徑,並在開啟命令最後加上/safe參數,然後透過這個捷徑所啟用的Word來開啟想開啟的文件。使用這樣的方式有一個很大的缺點,即違反了使用者的使用習慣。一般使用者在收到一份Word文件時,很少會先開啟Word執行檔然後才來開啟文件,都是直接對該文件使用滑鼠敲擊兩下開啟。如果遵照微軟的設定方式,使用滑鼠敲擊兩下所開啟的Word文件將不是使用安全模式來執行的,所以還是會被駭客入侵。因此比較好的作法應該是更改檔案類型的關聯性,讓使用者就算不小心使用了滑鼠敲擊開啟了Word文件也是使用安全模式來執行Word。首先開啟任意的資料夾,選擇「工具」/「資料夾選項」,再選擇「檔案類型」。找到註冊的檔案類型附檔名為「DOC」的資
料,點選後選擇「進階」按鈕。在「編輯檔案類型」畫面中點選「開啟舊檔(O)」,再選擇「編輯」按鈕。在「用來執行動作的應用程式(L)」欄位中把參數/safe加到命令的最後即可。這樣就可以使用安全模式來開啟現有Word文件,而可用正常模式來編輯新的文件。
使用安全模式來開啟Word文件,的確可以用來防範919637安全通告的弱點,但是對於其他不是用到以上功能造成的弱點就一點幫助都沒有。因此,Word使用安全模式對於使用者安全防護上的幫助是非常有限的。


放棄使用標準執行程式
為了避免在開啟文件或者瀏覽網頁時, 因為該軟體的弱點而造成入侵,資安人員會建議使用較安全的軟體。針對最近常被利用的OFFICE弱點,使用者也可以改用其他的編輯器來產生OFFICE文件。例如OPENOFFICE(http://zh.openoffice.org)。使用者可以利用OPENOFFICE來製作、瀏覽office文件,而且OEPNOFFICE目前對於讀取微軟Office文件的相容性是可以令人接受的。或透過類似http://www2.writely.com此類的網站來瀏覽特定的Office文件。這是一個可以編輯、線上觀看Word文件的網站,使用者僅需要上傳Word文件,該網站就會將該文件轉換成網頁呈現。這樣Word的讀取行為根本不在使用者的電腦上運行,就不用擔心會被入侵。然而,使用這樣的方法也有其缺點,像是使用OPENOFFICE開啟微軟的Office文件,可能會發生功能不相容而導致文件排版異常的狀況。而透過writely網站來觀看Word文件,會受限於使用者必須連上網際網路才能使用該項目;而且很多時候機密資料也不適合上傳到非單位內的機構中觀看,而破壞了單位的安全政策。

最低權限(Least-Privilege)
為了預防使用者在開啟文件、瀏覽網頁時遭受惡意程式的攻擊,最佳的解決方案應該是要求使用者進行「使用最低權限(Least-Privilege)」。正統的作法是將使用者的帳號設定為「Users」的權限,而不給予Administrators、Power Users群組的權限。使用Users權限來運行電腦的好處是,惡意程式想要將自己常駐在電腦中時,會因為權限不足而無法常駐,在下一次的重開機中惡意程式就會消失。而且,使用Users權限來執行程式或者Office軟體,也不會發生因為功能被停用而導致文件排版異常的狀況。不過使用Users權限並不代表惡意程式就無法將自己常駐,而是程式會被限制只能存檔在特定的目錄以及用特定的方式來啟動(例如,將檔案儲存在各別使用者的「啟動」目錄),而這些特定目錄及方式因為太容易被發現,造成大部分惡意程式不會使用這些技術。雖然使用Users權限登入可以確保「大部分」的惡意程式無法入侵您的系統,可是也造成使用者無法安裝軟體、甚至是安裝修補程式的窘境。也由於這樣的缺點,使得很多的組織在推行使用者利用Users權限登入上的困難。也有不少組織為了能夠讓使用者可以自行安裝軟體或修補程式,給予使用者兩組帳號、密碼,一組為Users權限允許本機登入、另一組帳號為Administrators群組權限但卻不允許本機登入。這樣使用者僅能用Users權限登入主機而無法用另一組較高權限的帳號登入。在使用者想要安裝軟體的時候,才使用「執行身份」(對執行檔使用滑鼠右鍵敲擊一次即可看見)功能來提升該軟體安裝程式的權限,讓軟體得以被安裝在系統之中。設定的方式也非常簡單,使用「系統管理工具」的「本機安全性原則」工具,設定「本機原則」中的「使用者權限指派」,將不給予本機登入的帳號加入「拒絕本機登入」選項中即可。雖然,使用者無法使用較高權限的帳號進行登入,不過使用者還是可以提高權限來設定「本機安全性原則」取消拒絕本機登入的選項。當然,也有單位將整個使用方式反過來,讓使用者平時用管理者權限進行登入,要求使用者在開啟文件或瀏覽網頁時,才使用「執行身份」來降低該執行程式或網頁瀏覽器的權限。

SAFER
微軟在Windows XP之後推出了SAFER(軟體限制原則)可以讓使用者自訂各別軟體的執行權限,解決每次執行程式之前需要使用「執行身份」來降低權限的問題。軟體限制原則可以透過兩種方式來執行,第一種是透過本機安全性原則管理介面中的軟體限制原則來進行設定。第二種方式是透過SaferCreateLevel以及SaferComputeTokenFromLevel之類的API呼叫來進行設定。
先來介紹第一種方式的設定方式-開啟本機安全性原則,然後新增軟體限制原則(使用滑鼠右鍵點選「軟體限制原則」,選擇「建立新原則」)。預設的「安全性等級」有兩種-「不允許」、「沒有限制」。為了避免使用者限制了軟體的執行而導致系統無法正常運作,所以在建立新原則的時候系統會在「其他原則」中自動新增四筆沒有限制的路徑原則。若在安全性等級中將「不允許」設定為預設值,在使用者下次登入之後將會無法執行預設沒有限制的四筆
原則外的所有程式。因此為了符合針對特定程式給予特定執行權限的要求,必須利用軟體限制原則中的「其他原則」來進行設定。在使用其他原則之前,由於預設的安全性等級只提供了不允許、沒有限制兩個權限而已,所以必須手動增加我們所需要使用的權限。根據MSDN文件,SAFER及SaferCreateLevel API針對dwLevelId變數還提供了另外三種的執行權限-NORMALUSER(基本使用者)、CONSTRAINED(受限制的)、UNTRUSTED(不受信任的)。


Drop My Rights
透過本機安全性原則設定介面來設定軟體限制原則,會造成不論使用者透過哪一個帳號登入系統、利用哪一種方式執行被降低權限的執行檔,都會執行在被限制的權限當中。除非移除軟體限制路徑規則或者透過API呼叫的方式,否則使用者無法隨意的決定何時才降低權限。而一位微軟工程師Micheal Howard就撰寫了的一個工具:「Drop My Rights」來協助使用者透過API呼叫來修改執行檔的執行權限,進而讓使用者可以想降低權限時才降低權限。
首先至微軟網站下載「Drop My Rights」工具,或者至MSDN網站搜尋「11152004」文章取得原文的工具下載、使用說明。
下載後將工具安裝至任意目錄, 以下文章預設筆者安裝在C:\DropMyRi ght s 目錄以利說明。DropMyRights.exe的執行命令格式為「DropMyRights.exe 『執行檔』權限參數」。權限參數可以填入c、u、和空白。空白表示使用NORMALUSER(基本使用者)權限、c參數表示CONSTRAINED(受限制的)權限、u參數表示UNTRUSTED(不受信任的)權限。因此使用者可以在桌面新增一筆「捷徑」,所示在建立捷徑精靈「輸入項目的位置(T)」先選擇C:\DropMyRights\DropMyRights.exe,然後在後面加入欲降低權限的執行檔路徑(%SystemRoot%\system32\cmd.exe)以及權限參數(空白不填;使用基本使用者權限)。再給予本捷徑一個名稱(NCMD;Normaluser CMD)。
透過這樣的方式, 如果使用者想要開啟一個基本使用者權限的Console時,就點選桌面的捷徑,而要使用原使用者權限來執行Console就選擇原來的%SystemRoot%\system32\cmd.exe來執行即可。


分別使用
使用本機安全性原則設定介面來設定軟體限制原則的缺點是,使用者無法決定何時該降低權限,何時不用降低。優點是,如果使用者將WINWORD.EXE設定為較低的權限,在使用者開啟透過電子郵件所取得的Word檔時會自動的降低權限,進而降低被入侵的風險。而透過DropMyRights工具來設定軟體執行權限的優點是,使用者可以自己決定何時降低執行檔的權限。然而,最大的缺點是如果沒有修改檔案類型所關聯的執行檔,使用者僅用DropMyRights建立一筆WINWORD.EXE捷徑的話,這樣使用者如果直接開啟透過電子郵件所取得的Word檔時,還是用使用者所登入的權限在執行程式。等於沒有降低執行權限,容易被入侵。
所以何時使用本機安全性原則設定介面來設定軟體限制原則、何時需要透過API來修改軟體限制原則就必須取決於使用者對於特定執行檔的使用狀況。但是使用最低權限(Least-Privilege)卻是最高的指導原則。