https://forms.gle/bmeurFX91jaGPgWM8
https://forms.gle/bmeurFX91jaGPgWM8

觀點

免殺木馬兵臨城下 資安防線節節敗退

2009 / 08 / 26
李倫銓
免殺木馬兵臨城下 資安防線節節敗退
  一直以來,人們靠著防火牆、入侵偵測系統、防毒軟體這三大資安法器來維護網路安全。大家也都知道,防火牆擺在入口、入侵偵測系統要調校、防毒軟體要定期更新病毒碼,那為什麼入侵事件還是層出不窮?

  有些人會說,我的部門從來沒發生過入侵事件,可先別高興得太早,有可能是你家的駭客行為根本沒被抓到或是沒人通報。根據經驗,除非本身是專業安全公司,極少有人發現自家內的入侵或後門行為,大多是經由其他事件的追查結果,才被告知自己已成為跳板。但奇怪的是,資安產品怎麼都沒有發揮作用呢?

盜高一尺,魔高一丈

  駭客技術不斷推陳出新,你怎麼防,他就想辦法再找出漏洞進行攻擊。來看看這幾年的例子:

? 從伺服器系統漏洞轉向網頁應用程式漏洞

  伺服器若開啟過多服務,容易出現系統漏洞,因此系統管理者便利用防火牆阻擋不必要的通訊埠,但是駭客便從網頁應用程式下手,利用SQL injection或是網頁應用程式漏洞侵入伺服主機。

? Client-side attack

  自從微軟作業系統Windows XP SP2內建防火牆後,駭客轉向研究用戶端應用程式漏洞,利用瀏覽器或是Office軟體的問題,來達到入侵的目的。

? Zero-day attack

  Zero-day攻擊越來越多,有些已知Zero-day攻擊還都是因為攻擊事件才曝光。不知道還有多少Zeroday沒被公佈,發明者在暗地裡打得不亦樂乎!

防線退守

? 防火牆防線

  資安防線其實一直在後退,資安廠商只是將城牆往後築而已,原先決戰境外的狀態已經改變。在這幾年的「網軍事件」中,這些專業駭客利用夾帶後門程式的電子郵件寄發給特定目標,而電子郵件傳遞又無法藉由防火牆來阻擋,因此連內網都失守,直接打進用戶端的心臟。我們一直在保護伺服主機的安全,卻忽略了位於公司內網,原本以為安全的員工電腦。你以為駭客需要拼命打下伺服器主機才算攻下一成嗎?對他們來說,柿子挑軟的吃,輕輕鬆鬆地以發後門信件的方式,就可以輕易地攻下內網個人主機。

? IDS/IPS防線

  IDS/IPS到底能不能抓到真正的攻擊?也許我們都對IDS/IPS寄望太高,許多真正的攻擊行為、後門加密通訊,IDS/IPS根本無能為力。絕大部分的IDS無法偵測現在流行的網頁應用程式攻擊與SQL injection,因為這些動作與正常使用者瀏覽行為非常類似。而目前許多後門的通訊行為利用網頁通訊埠80、443,加上反向連接技術、加密通訊,IDS/IPS很難從大量的正常流量中分辨出這些後門行為。

? 防毒軟體防線

  也許我們會寄望最後一道防線-用戶端上的防毒軟體。悲慘地是駭客不但持續研究新的攻擊手法,也開發避免被「查殺」的木馬程式,如此一來才能長期地控制受害主機而不被發現。所謂的「查殺」意指被防毒軟體等防禦工具偵測並移除。駭客積極開發許多「免殺木馬」,已經有許多方式能讓木馬程式不被防毒軟體偵測,其中包括了rootkit技術、加殼、修改source code等。一般防毒軟體多使用「特徵比對(Pattern matching) 」的技巧,藉由病毒定義檔的更新來偵測病毒與木馬,但是這類技術往往無法偵測到駭客「手工打造」的木馬程式,也難以發現使用rootkit技術的木馬,因此市面上出現了所謂Antispyware產品,強調可以藉由分析「行為特徵」找出惡意程式。

  寄望Anti-spyware技術在探討An t i -Sp ywa re前,首先先定義何謂「Spyware(間諜軟體)」,這個名詞首次出現在1995年10月Usernet的一篇關於微軟商業模式的文章中,直到1999年左右,Zone Alarm個人防火牆這個產品才開始正式定義間諜軟體這個詞,這時候的間諜軟體意指一些惡意的廣告軟體廠商開發的廣告軟體(Adware),行為輕者可能僅更換瀏覽器首頁設定(Browser hijacker)、彈跳廣告視窗(Popup Adware),惡意者則可能偷偷記錄個人使用行為並回傳(Keylogger),更甚者,利用特殊方法讓人無法輕易移除,這也是後來廣義之惡意Spyware的濫觴,將使用rootkit技術、隱藏本體、具有鍵盤側錄、回傳使用者資料等木馬程式這類惡意程式(malware),也列入Spyware之中。最初這些Spyware可能利用ActiveX的方式令用戶端安裝,或者在使用者安裝免費好用的小工具時,順道「好心」幫你安裝上,接下來的類型更為惡劣,利用微軟瀏覽器漏洞直接植入用戶端電腦,完全不給用戶選擇的機會。

  如果我們依據早期定義之S p y w a r e ( 或許你就稱他們為「Adware(廣告軟體)」)來評斷Anti-spyware產品,可以獲得較為滿意的測試結果,因為他們就是設計出來移除這些綁架網頁、竄改機碼、偷加Browser helper object( B H O ) 等行為的廣告軟體, 如Gator/Gain(後來改名叫Claria)、websearch、WhenU等。但是若是你要求這些Anti-spyware軟體偵測具有rootkit技術等較為高深的惡意程式,那可能就會非常失望,雖然我們也可以將這些惡意程式定義為Spyware,但畢竟太強人所難,因為這些Anti-spyware軟體本身便沒有能力對抗這類Spyware。

  不是做不到,而是不能做不只是A n t i - s p y w a r e , 部分Anti-virus產品也對這類Spyware毫無招架能力,這些使用rootkit技術的惡意程式,藉由攔截系統呼叫來避免被偵測,所以Anti-spyware或是Anti-virus產品,若想抓這些惡意程式就得鑽得更下層,這樣一來易造成系統不穩,而且「行為原則偵測技術(Behavior-based detection) 」 也遠比「特徵比對(Pattern-matching)」方式更容易誤判,產品會造成使用者嚴重的困擾,因此無法變成上市產品,也許他們不是做不到,而是不太能做。看到這,讀者應該了解到,你裝防毒、防間諜軟體僅能阻絕部分木馬、病毒、蠕蟲與間諜程式,而且這些都是所謂「無意識」的病毒(就是自我傳播、固定形式、不會變種、不是駭客特意手工打造的木馬、病毒程式),現在駭客已經朝向客製化病毒、木馬程式邁進,所以真正會控制你電腦的木馬、偷取資料的Spyware,防毒軟體未必找得到。所以當你使用防毒軟體在電腦中掃到某個惡意程式時,可別高興得太早,掃到未必是駭客送進來的那隻後門程式。

用戶端安全解決方案呢

  既然位於閘道口的防火牆、IPS都無法抵禦新型攻擊,防線都已經退守至用戶端主機,因此許多企業強制用戶端主機安裝agent,希望藉由監控用戶端點上的安全狀況、政策符合性來決定是否允許用戶主機上網。目前有思科的NAC、微軟的NAP,及TCG的TNC方案。但這些控制存取方案仍需配合用戶端的agent提供阻擋資訊,若是無法得知是否感染惡意程式,也不能有效地阻擋這些潛在威脅,因此問題又回到原點。

微軟的安全計畫

  也許,我們最終還是得寄望微軟,要解決這些問題還是得靠釜底抽薪的方法-徹底換成下一代作業系統。上面說的這些安全威脅,微軟不是不知道,微軟曾喊出:「從OS上來確保資訊安全有其必要性,而非靠著附加的軟體來達成。」所以微軟在新版作業系統Windows Vista上,增加了許多安全機制,像是:

? IE 7的安全性:由於瀏覽器漏洞已成為駭客研究的重點,因此微軟在開發IE 7時,特別注意安全性,不但更強化原先的安全性區域原則,Vista上的IE 7更會以「保護模式(Protected mode) 」執行,可限制IE 7的若干行為。另外還有釣魚網站過濾機制等。

? Windows Defender/Windows Live OneCare:你可以說微軟有跨足防毒產業的野心,一直以來,病毒、惡意程式的問題的確非常困擾微軟,他們也想好好解決問題。而Windows Defender(前身為Windows Anti-spyware)和Windows Live OneCare便是微軟積極想剷除惡名的武器,前者專門對付間諜程式,可以監控註冊機碼、系統狀態等,而後者可結合不同掃毒引擎來對付病毒與惡意程式。

  其它部分, 微軟也改良了Windows 防火牆、增加了使用者執行權限控管(User account control)等安全機制,微軟本身為作業系統的製造者,最了解自己的作業系統,這點佔了非常大的優勢,研究指出,V i s t a的推出會嚴重影響反間諜軟體、防火牆市場。但也有人說Vista可能還不致於嚴重影響高達26億美元的防毒軟體市場,因防毒軟體廠商經年累月對抗病毒與分析惡意程式的經驗,短期內還無法被取代。且Windows Live OneCare是需另行購買,因此使用者仍可選擇其它的防毒防駭技術。

資安意識訓練vs.多層次縱深防禦

  不光是作業系統,人腦也應該上patch。若使用者沒有良好的電腦衛生習慣,就算是再好的系統或安全機制也藥石罔效。

  用戶資安意識訓練不僅要訓練使用者防範新型態攻擊手法(像是最近出現的Office zero-day事件後,需告知使用者不要開啟來路不明且夾帶word/ppt/excel的郵件),同時也要教育使用者資安概念,才有能力設定這些新版防火牆與微軟新安全功能。雖然防火牆、IDS/IPS、防毒軟體可能有其死角,而駭客也積極針對Vista研究新的漏洞與缺失,目前也確有一些突破Vista安全機制的方法,但是面對這些資安威脅,仍可藉由多層次縱深防禦佈署,達到聯合防禦的效果,只不過在操作這些資安法器時,需充分了解目前的攻擊手法與原理,才不至於徒勞無功,白費金錢!

惡意程式規避偵測的技術趨勢

  惡意程式為了躲避防毒軟體偵測,演化出許多閃躲技巧。例如:對付heuristics 檢查技術的 anti-heuristics 反制方式;針對 emulation (模擬) 偵測技術,病毒就改用較難甚至無法模擬的 FPU 或 MMX 指令。惡意程式為了避免自己有特徵被防毒軟體拿來辨認,甚至演化出重排自己所有副程式位置 (permutation)、把自己加密、polymorphisam 與 metamorphism 等變種技巧。今年則是出現了兩個前所未見、釜底抽薪的新概念,讓惡意程式的匿蹤能力更上一層樓,巧合的是,兩者都是運用virtualization (虛擬化)技術躲避電腦保護軟體的偵測。

  首先是美國密西根大學在微軟的贊助之下進行的 SubVirt 計畫,其構想是在惡意程式感染電腦時,修改電腦的開機過程,使惡意程式夾帶的虛擬化軟體在開機時先取得控制權,然後分別載入兩個作業系統,一個是原本電腦使用的作業系統 A,另一個則是專門用來執行惡意程式的作業系統B。在這種狀況下,底層的虛擬化軟體將 A、B 兩個作業系統完全隔開,原本電腦安裝的任何保護軟體能觸及的範圍都只在 A 之內,根本接觸不到B,遑論B 內執行的惡意程式。此時保護軟體和惡意程式就像活在兩個平行的時空 (A 和 B 兩個作業系統) 當中,完全無法得知對方的存在。這種惡意程式其實有不少用途,例如紀錄該電腦透過網路收發的所有資料等。不過這種方式必須在開機時搶先一步取得控制權,因此勢必在BIOS 或硬碟的開機區域中動手腳,所以不容易躲過用光碟片開機掃描 BIOS 和硬碟的檢查方式。

  另一種也是利用虛擬化技術的手法,則由新加坡 COSEINC 公司研究員 JoannaRutkowska 提出,使用首度出現在 AMD 公司 64-bit CPU 上的虛擬化技術 SVM/Pacifica (Intel 晶片也有類似的技術,稱為Vanderpool)。此方式與 SubVirt 最大的差異在於,SubVirt使用虛擬化「軟體」創造虛擬環境,Joanna 的方法卻是仰賴 AMD64 晶片的「硬體」虛擬化功能。此外,SubVirt 方法會在 BIOS 或硬碟上留下痕跡,但 Joanna 的方法是透過啟動 CPU 虛擬化功能,on the fly 讓電腦進入虛擬環境,並不會在 BIOS或硬碟上留下任何痕跡。Joanna 的方法發表之後,到現在還沒有出現有效的偵測方式。Joanna 把她發明的方法稱為Blue Pill (藍色藥丸)。聽起來很耳熟嗎?沒錯,就是「駭客任務」(The Matrix) 第一集中,Morpheus 拿給Neo 吃的藥丸。紅色藥丸會讓 Neo 醒過來面對真實世界,藍色藥丸則讓Neo 繼續活在虛擬幻境中。Joanna 的方法,就是丟一個藍色藥丸 (啟動AMD64 SVM/Pacifia 功能的程式) 給電腦吞下去,從此電腦就活在幻境中。此外,Joanna 也寫了一個程式,能夠偵測程式本身執行時是否活在SubVirt 之類「軟體」創造的虛擬環境內,猜猜這個程式叫什麼名字?Red Pill!