張 琦
2009年的7月,一定會載入信息安全史冊,火熱的7月爆發(fā)了大量的零日攻擊(0Day),各種應(yīng)用和系統(tǒng)漏洞導(dǎo)致0Day威脅高頻度爆發(fā),IE、火狐、Office、視頻、Direct漏洞造成的大面積Web攻擊,無疑成為最具威脅的“漏洞月”。
0Day頻繁爆發(fā)的原因
0Day的概念最早用于軟件和游戲破解領(lǐng)域。那時,0day的主要目的是信息交換,由于完全是非商業(yè)化、非盈利、志愿的行為,并沒有被網(wǎng)絡(luò)安全管理者所關(guān)注。
還是2009年7月,如果你咨詢?nèi)魏我幻髽I(yè)的網(wǎng)絡(luò)安全主管,問他們最擔(dān)心什么?我想回答必然是:0Day 。
從技術(shù)手段來講,似乎我們沒有什么可再擔(dān)心的。但不可控的漏洞依然存在,它們存在于我們所使用的操作系統(tǒng)、網(wǎng)站平臺或其他第三方應(yīng)用程序,我們并不知曉這些平臺中是否存在著某個不為人知的重大漏洞。但網(wǎng)絡(luò)已遭入侵,信息已被竊取,查遍所有漏洞數(shù)據(jù)庫和安全補丁資料很可能不得其解。
從概念上講,所謂0Day漏洞,是指那些沒有公開過,因而也沒有補丁的漏洞,也就是通常所說的“未公開漏洞”。從理論上講,每一個稍具規(guī)模的應(yīng)用軟件都可能存在漏洞,只是尚未被發(fā)現(xiàn)而已,彌補措施永遠(yuǎn)滯后才是最大的威脅。那么是什么環(huán)境激發(fā)了0Day攻擊大面積爆發(fā)呢?有以下幾個主要原因:
· 代碼編寫
造成0Day漏洞被利用的本質(zhì)原因應(yīng)該是在代碼編寫環(huán)節(jié)上。商業(yè)利益促使代碼編寫進度的無限加快,從而缺少了最重要的代碼安全檢測,本來需要反復(fù)循環(huán)的次數(shù)有可能減少。只要用戶使用操作系統(tǒng)或應(yīng)用程序, 0Day的出現(xiàn)就是遲早的事,無論你是使用數(shù)據(jù)庫還是網(wǎng)站管理平臺,無論你是使用媒體播放器還是看圖工具。
在操作系統(tǒng)的代碼編寫上,并不像普通用戶想象的那樣,因為開源軟件并不會經(jīng)過統(tǒng)一的更多的安全檢測,因此會比Windows存在更多的漏洞。隨著開源環(huán)境的普遍應(yīng)用,在企業(yè)級平臺上威脅更大的災(zāi)難很可能會爆發(fā)。
· 不安全的Web環(huán)境
另外一個造成0Day危機爆發(fā)的原因在于不安全的Web服務(wù)環(huán)境,這為惡意軟件注入提供了入口,網(wǎng)絡(luò)犯罪者采用許多新手段來感染計算機,比如其中一種方法是先入侵一些合法的站點,然后誘使訪問這些站點的用戶前往放置了惡意軟件的服務(wù)器。
· 不安全的內(nèi)網(wǎng)環(huán)境
在今天日益泛濫的 Web 威脅環(huán)境中,“不知不覺”輕點一下鼠標(biāo),很可能就會幫黑客打開通往企業(yè)內(nèi)部的網(wǎng)絡(luò)大門。如果一臺客戶端主機遭遇病毒,由于其內(nèi)網(wǎng)環(huán)境的相互信賴,交叉感染的幾率將會大幅增加。終端的多元化發(fā)展,讓臺式機、筆記本電腦、U盤、手機等終端設(shè)備隨時訪問企業(yè)網(wǎng)絡(luò)成為可能。
· 補丁推出滯后
系統(tǒng)管理員和信息安防專家們都知道:每天都有幾十種新的安防漏洞被發(fā)現(xiàn)。從浩如煙海的互聯(lián)網(wǎng)里把所有的系統(tǒng)漏洞都找出來,可以說沒有任何可能,更不用說為它們都打好補丁了,而這正是攻擊者所依仗的法寶。安全組織在發(fā)現(xiàn)漏洞之后,往往會經(jīng)過正式的途徑通知軟件供應(yīng)商,但廠商推出補丁程序最起碼需要十幾天或者更久的時間,這就造成了安全防御體系的“空檔期”。
0Day危機如何防范
以往,對于利用漏洞進行傳播的病毒,我們可以下載更新,在漏洞出現(xiàn)的第一時間利用補丁程序和管理工具修復(fù)這些漏洞,保證系統(tǒng)安全穩(wěn)定地運行。但針對0Day攻擊,由于廠商尚未對外發(fā)布修補漏洞的補丁,因此最大限度避免該漏洞帶來的威脅的任務(wù)大多落到了企業(yè)和普通用戶身上。
這包括一些常規(guī)性的操作,不要小看這些非?;A(chǔ)的操作,有的時候到會有奇效。例如:在受到漏洞影響的系統(tǒng)上運行程序時,以最小用戶權(quán)限運行;在電腦上啟用病毒防護軟件中的監(jiān)控關(guān)鍵進程選項,定期檢查目前正在使用的登錄信息。
· 尋找代碼中的漏洞
編寫安全的代碼是減少0Day攻擊最有效的手段?,F(xiàn)在,編寫安全的軟件比以往更為重要,每個軟件開發(fā)人員都必須學(xué)習(xí)如何將安全性集成到項目當(dāng)中。包含操作系統(tǒng)、應(yīng)用平臺,哪怕是一個很小的插件的開發(fā)環(huán)境中都涉及了更多的安全編碼技術(shù),這包括:緩沖區(qū)溢出避免、確定適當(dāng)?shù)脑L問控制、以最小特權(quán)運行、加密的弱點、保護機密數(shù)據(jù),以及規(guī)范表示等諸多問題。因此需要開發(fā)人員配合代碼安全審查制度的實施。
代碼安全審查的重點是識別出可能引起安全問題和事故的不安全的編碼技術(shù)和缺陷。雖然可能非常耗時,但是代碼審查必須在項目開發(fā)周期中定期進行,因為在開發(fā)時修補安全缺陷的成本和工作量比以后修補它們要小得多。
以0Day中出現(xiàn)頻率最高的緩沖區(qū)溢出為例,因為攻擊者可以將代碼注入正在運行的進程中并取得控制權(quán),因此在發(fā)現(xiàn)之后竭盡全力將它們從代碼里清除出去,顯然不如首先確保不讓它們進入代碼為妙。
· 部署智能行為監(jiān)控系統(tǒng)
企業(yè)根據(jù)需要來更新或升級現(xiàn)有的防護系統(tǒng),例如增加基于惡意行為模式分析的防御手段,通過這種防御方式,不管惡意軟件利用了已知或是未知漏洞,都能夠被有效地檢測和發(fā)現(xiàn)。這種方式與基于特征分析的防御手段相比,最大的優(yōu)勢在于前者不需要具體分析某一惡意軟件的特征,也就不需要因為跟蹤最新的木馬或是漏洞而疲于奔命,它能夠有效防御“未知”的惡意軟件,是應(yīng)對0Day 攻擊的有效補充。
很多網(wǎng)絡(luò)管理中心無法控制客戶端被惡意代碼侵入,無法對未安裝或者悄悄卸載了防病毒軟件的終端進行統(tǒng)計和遠(yuǎn)程部署,從而無法精準(zhǔn)定位網(wǎng)絡(luò)威脅的感染源頭,這就沒有辦法快速、安全地切斷入侵事件,同時為企業(yè)網(wǎng)絡(luò)內(nèi)同一種病毒反復(fù)發(fā)作提供了溫床。因此,企業(yè)不但需要在網(wǎng)關(guān)上部署安全過濾產(chǎn)品,更應(yīng)在內(nèi)網(wǎng)布置監(jiān)控機制。
· 加大云安全產(chǎn)品部署
傳統(tǒng)防毒軟件查殺病毒的方法是通過病毒特征碼與殺毒軟件的病毒庫中的代碼來進行比較,如果病毒庫中有相同的特征碼,就認(rèn)為這個程序是病毒。通過擴大病毒庫,對照查證病毒的做法已經(jīng)達到極限,因為病毒庫無限擴大,將會令服務(wù)器和客戶端的壓力都很大。而且面對那么多病毒,安全軟件和服務(wù)廠家也不可能無限收集特征碼。因此,改變傳統(tǒng)防毒技術(shù)機制迫在眉睫。
如果從信息安全戰(zhàn)略的角度看,云安全是被如0Day這樣的威脅 “逼”出來的,其總體思路與傳統(tǒng)的安全邏輯的差別并不大,但二者的服務(wù)模式卻截然不同。
在“云”的另一端,擁有專業(yè)的團隊來幫助用戶處理和分析安全威脅,也有先進的數(shù)據(jù)中心來幫你保存病毒庫,當(dāng)然并發(fā)訪問能力也是超強的。然而,云安全對用戶端的配置要求卻降低了,使用起來也像通透式防火墻哪樣,用戶并不需要知道它在哪里,但卻有了核心。有了領(lǐng)導(dǎo)者,有了信譽評估機制,聯(lián)動起來的成千上萬個客戶端就可以在最短的時間內(nèi)避免訪問那些被掛馬的站點,或者自動下載由第三方發(fā)布的漏洞補丁。
尋找漏洞
漏洞早已成為企業(yè)信息安全的最大危害
0Day漏洞可能會愈演愈烈,這也加速了軟件生產(chǎn)企業(yè)的安全補丁更新進程,但這只能相對減少惡意程序的危害程度。現(xiàn)在有些人在研究如何制造或利用漏洞,他們將研究的結(jié)果作為對系統(tǒng)進行攻擊的資源握在手中秘而不宣。
為了應(yīng)對這種挑戰(zhàn),人們投入了大量資源,期望減少信息系統(tǒng)中的漏洞數(shù)量以及降低由此帶來的系統(tǒng)脆弱性問題,漏洞研究中的對抗和博弈也因此形成。