惡意代碼
出自 MBA智库百科(https://wiki.mbalib.com/)
惡意代碼(malicious code)
目錄 |
什麼是惡意代碼[1]
惡意代碼(malicious code)又稱為惡意軟體(malicious software,Malware),是能夠在電腦系統中進行非授權操作的代碼。
惡意代碼的分類[2]
1.陷阱門
陷阱門是某個程式的秘密入口,通過該入口啟動程式,可以繞過正常的訪問控制過程,因此,獲悉陷阱門的人員可以繞過訪問控制過程,直接對資源進行訪問。陷阱門已經存在很長一段時問,原先的作用是程式員開發具有鑒別或登錄過程的應用程式時,為避免每一次調試程式時都需輸入大量鑒別或登錄過程需要的信息,通過陷阱門啟動程式的方式來繞過鑒別或登錄過程。程式區別正常啟動和通過陷阱門啟動的方式很多,如攜帶特定的命令參數、在程式啟動後輸入特定字元串等。
程式設計者是最有可能設置陷阱門的人,因此,許多免費下載的實用程式中含有陷阱門或病毒這樣的惡意代碼,使用免費下載的實用程式時必須註意這一點。
2.邏輯炸彈
邏輯炸彈是包含在正常應用程式中的一段惡意代碼,當某種條件出現,如到達某個特定日期、增加或刪除某個特定文件等,將激發這一段惡意代碼,執行這一段惡意代碼將導致非常嚴重的後果,如刪除系統中的重要文件和數據、使系統崩潰等。歷史上不乏程式設計者利用邏輯炸彈訛詐用戶和報複用戶的案例。
3.特洛伊木馬
特洛伊木馬也是包含在正常應用程式中的一段惡意代碼,一旦執行這樣的應用程式,將激發惡意代碼。顧名思義,這一段惡意代碼的功能主要在於削弱系統的安全控制機制,如在系統登錄程式中加入陷阱門,以便黑客能夠繞過登錄過程直接訪問系統資源;將共用文件的只讀屬性修改為可讀寫屬性,以便黑客能夠對共用文件進行修改;甚至允許黑客通過遠程桌面這樣的工具軟體控制系統。
4.病毒
這裡的病毒是狹義上的惡意代碼類型,單指那種既具有自我複製能力,又必須寄生在其他實用程式中的惡意代碼。它和陷阱門、邏輯炸彈的最大不同在於自我複製能力,通常情況下,陷阱門、邏輯炸彈不會感染其他實用程式,而病毒會自動將自身添加到其他實用程式中。
5.蠕蟲
從病毒的廣義定義來說,蠕蟲也是一種病毒,但它和狹義病毒的最大不同在於自我複製過程,病毒的自我複製過程需要人工干預,無論是運行感染病毒的實用程式,還是打開包含巨集病毒的郵件,都不是由病毒程式自我完成的。蠕蟲能夠自我完成下述步驟。
(1)查找遠程系統:能夠通過檢索已被攻陷的系統的網路鄰居列表或其他遠程系統地址列表找出下一個攻擊對象。
(2)建立連接:能夠通過埠掃描等操作過程自動和被攻擊對象建立連接,如Telnet連接等。
(3)實施攻擊:能夠自動將自身通過已經建立的連接複製到被攻擊的遠程系統,並運行它。
6.Zombie
Zombie(俗稱僵屍)是一種具有秘密接管其他連接在網路上的系統,並以此系統為平臺發起對某個特定系統的攻擊功能的惡意代碼。Zombie主要用於定義惡意代碼的功能,並沒有涉及該惡意代碼的結構和自我複製過程,因此,分別存在符合狹義病毒的定義和蠕蟲定義的Zombie。
惡意代碼的特征[3]
惡意代碼的編寫大多是出於商業或探測他人資料的目的,如宣傳某個產品、提供網路收費服務或對他人的電腦直接進行有意的破壞等,總的來說,它具有惡意破壞的目的、其本身為程式,以及通過執行發生作用3個特征。
(1)惡意破壞的目的。
有相當一部分黑客進行惡意代碼攻擊的目的是從破壞其他用戶的系統中得到“成就感”。但現在更多的黑客則是出於經濟利益。例如,某些廣告類代碼可以通過用戶的上網習慣以提高廣告點擊率來獲取經濟利益,而更直接的則是通過竊取其他用戶的網上信用卡、銀行代碼等直接對其進行經濟侵犯。現今又出現了潛伏性的惡意代碼,在攻擊的同時儘量不被髮現,對用戶和社會都造成了嚴重的危害,構成了嚴重的經濟犯罪。
(2)其本身為程式。
惡意代碼是一段程式,它可以在很隱蔽的情況下嵌入另一個程式中,通過運行別的程式而自動運行,從而達到破壞被感染電腦的數據、程式以及對被感染電腦進行信息竊取等目的。
(3)通過執行發生作用。
惡意代碼與木馬一樣,只要用戶運行就會發作,只不過惡意代碼是通過網頁進行傳播的。
惡意代碼的發展史[4]
惡意代碼經過30多年的發展,破壞性、種類和感染性都得到增強。隨著電腦的網路化程度逐步提高,網路傳播的惡意代碼對人們日常生活影響越來越大。
1988年11月泛濫的Morris蠕蟲,頃刻之間使得6000多台電腦(占當時Intemet上電腦總數的10%多)癱瘓,造成嚴重的後果,並因此引起世界範圍內關註。
1998年CIH病毒造成數十萬台電腦受到破壞。1999年Happy99、Melissa病毒大爆發,Melissa病毒通過E-mail附件快速傳播而使E.mail伺服器和網路負載過重,它還將敏感的文檔在用戶不知情的情況下按地址簿中的地址發出。
2000年5月爆發的“愛蟲”病毒及其以後出現的50多個變種病毒,是近年來讓電腦信息界付出極大代價的病毒,僅一年時間共感染了4000多萬台電腦,造成大約87億美元的經濟損失。
2001年,國信安辦與公安部共同主辦了我國首次電腦病毒疫情網上調查工作。結果感染過電腦病毒的用戶高達73%,其中,感染三次以上的用戶又占59%多,網路安全存在大量隱患。
2001年8月,“紅色代碼”蠕蟲利用微軟Web伺服器IIS4.0或5.0中Index服務的安全漏洞,攻破目標機器,並通過自動掃描方式傳播蠕蟲,在互聯網上大規模泛濫。
2003年,SLammer蠕蟲在10分鐘內導致互聯網90%脆弱主機受到感染。同年8月,“衝擊波”蠕蟲爆發,8天內導致全球電腦用戶損失高達20億美元之多。
2004年到2006年,振蕩波蠕蟲、愛情後門、波特後門等惡意代碼利用電子郵件和系統漏洞對網路主機進行瘋狂傳播,給國家和社會造成了巨大的經濟損失。
根據2010年1月28日網路安全廠商金山安全發佈的《2009年中國電腦病毒疫情及互聯網安全報告》。2009年,金山毒霸共截獲新增病毒和木馬20684223個,與5年前新增病毒數量相比,增長了近400倍。其中IE主頁篡改類病毒第一次登上十大病毒之首,成為“毒王”。
目前,惡意代碼問題成為信息安全需要解決的,迫在眉睫的、刻不容緩的安全問題。圖2顯示了過去20多年主要惡意代碼事件。伴隨著用戶對網路安全問題的日益關註,黑客、病毒木馬製作者的“生存方式”也在發生變化。病毒的“發展”已經呈現多元化的趨勢,類似熊貓燒香、灰鴿子等大張旗鼓進行攻擊、售賣的病毒已經越來越少,而以貓癬下載器、寶馬下載器、文件夾偽裝者為代表的“隱蔽性”頑固病毒頻繁出現,同時有針對性的木馬、病毒也已經成為新增病毒的主流。
惡意代碼存在的原因[4]
1.系統漏洞層出不窮
AT&T實驗室的S.Bellovin曾經對美國CERT提供的安全報告進行過分析,分析結果表明,大約50%的電腦網路安全問題是由軟體工程中產生的安全缺陷引起的,其中,很多問題的根源都來自於操作系統的安全脆弱性。
在信息系統的層次結構中,包括從底層的操作系統到上層的網路應用在內的各個層次都存在著許多不叮避免的安全問題和安全脆弱性。而這些安全脆弱性的不可避免,直接導致了惡意代碼的必然存在。
2.利益驅使
目前,網路購物、網路支付、網路銀行和網上證券交易系統的已經普及,各種盜號木馬甚至被掛在了金融、門戶等網站上,“證券大盜”、“網銀大盜”在互聯網上瘋狂作案,給用戶造成了嚴重的經濟損失。
如果下載網銀木馬,該木馬會監視IE瀏覽器正在訪問的網頁,如果發現用戶正在登錄某銀行的網上銀行,就會彈出偽造的登錄對話框,誘騙用戶輸入登錄密碼和支付密碼,通過郵件將竊取的信息發送出去,威脅用戶網上銀行賬號密碼的安全。
騙取IP流量,所謂的IP流量指的是訪問某個網站的獨立IP數量。IP流量是評估一個網站的重要指標,因此一些商家就出售這些流量。
有了利益的驅使,就出現了很多非法彈網頁的惡意軟體,這些惡意軟體通過定時器程式定時彈出某網頁或者修改IE的預設頁面,實現謀利。還有的網站,在用戶打開時,自動彈出好幾個廣告網頁,這些也都可以歸納到惡意代碼範疇。
惡意代碼的傳播方式和趨勢[3]
惡意代碼按傳播方式可以分為病毒、蠕蟲、木馬、移動代碼和間諜軟體等。其傳播的目的已有所變化,傳統的攻擊活動常常是受好奇心驅使,希望自己的技術可以得到認可,而現在的攻擊則以獲得經濟利益為目的。這些攻擊通常為犯罪行為,例如,為牟取經濟利益而非法盜取他人的信息,從而對其造成經濟損失。
1.惡意代碼的傳播方式
總的來說,惡意代碼的傳播是因為用戶的軟體出現了漏洞、操作不慎或者是兩者的結合造成。
(1)病毒。病毒具有自我複製的功能,一般嵌入主機的程式中。當被感染文件執行操作,例如,用戶打開一個可執行文件時,病毒就會自我繁殖。病毒一般都具有破壞性。
(2)木馬。這種程式從錶面上看沒有危害,但實際上卻隱含著惡意的意圖和破壞的作用。一些木馬程式會通過覆蓋系統中已經存在的文件的方式存在於系統之中;另外有的還會以軟體的形式出現,因為它一般是以一個正常的應用程式身份在系統中運行的,所以這種程式通常不容易被髮現。
(3)蠕蟲。蠕蟲是一種可以自我複製的完全獨立的程式,它的傳播不需要藉助被感染主機中的其他程式和用戶的操作,而是通過系統存在的漏洞和設置的不安全性來進行入侵,如通過共用的設置來侵入。蠕蟲可以自動創建與它的功能完全相同的副本,並能在無人干涉的情況下自動運行,大量地複製占用電腦的空間,使電腦的運行緩慢甚至癱瘓。其中比較典型的有Blaster和SQLSlammer。
(4)移動代碼。移動代碼是能夠從主機傳輸到客戶端電腦上並執行的代碼,它通常是作為病毒、蠕蟲或者是特洛伊木馬的一部分被傳送到客戶的電腦上的。此外,移動代碼還可以利用系統的漏洞進行入侵,如非法的數據訪問和盜取管理員賬號等。
(5)間諜軟體。散佈間諜軟體的網站或個人會使用各種方法使用戶下載間諜軟體並將其安裝在他們的電腦上。這些方法包括創建欺騙性的免費服務,以及隱蔽地將間諜軟體和用戶可能需要的其他軟體捆綁在一起等,如使用免費的共用軟體,達到利用軟獲取經濟利益等目的。
2.惡意代碼的傳播趨勢
(1)種類更多。惡意代碼的傳播不再單純地依賴軟體漏洞或者他人操作中的不慎,也有可能是兩者的結合,如蠕蟲產生寄生的文件病毒、特洛伊木馬程式、口令竊取程式、後門程式等,這進一步模糊了蠕蟲、病毒和特洛伊木馬之間的區別。
(2)利用混合傳播模式。“混合病毒威脅”和“收斂威脅”已成為新的病毒術語,紅色代碼利用的就是IIS的漏洞,它們的特點都是利用軟體漏洞,以病毒的模式從引導區方式發展為多種類病毒方式進行攻擊。
(3)跨平臺攻擊。跨平臺攻擊已開始出現,有些惡意代碼對所有的平臺都能夠起作用,例如,代碼能兼容Windows、UNIX及Linux平臺併進行攻擊。
(4)使用銷售技術。另外一個趨勢是更多的惡意代碼使用銷售技術,其目的不僅在於利用受害者的郵箱實現最大數量的信息轉發,而且要引起受害者的興趣,讓受害者進一步對惡意代碼進行下載等操作,並且使用網路探測和電子郵件腳本嵌入等技術來達到目的。
(5)伺服器和客戶機同樣受到攻擊。對於現今的惡意代碼,伺服器和客戶機的區別越來越模糊,客戶電腦和伺服器如果運行同樣的應用程式,也將會受到惡意代碼的攻擊。
(6)Windows操作系統被攻擊得最頻繁。WindoWS操作系統更容易遭受惡意代碼的攻擊,它也是病毒攻擊最集中的平臺,病毒總是選擇配置不好的網路共用和服務作為進入點。
(7)惡意代碼類型變化。惡意代碼利用MIME邊界和UUEncode頭的處理薄弱的缺陷,將惡意代碼偽裝成安全的數據類型,欺騙用戶執行代碼。
惡意代碼攻擊機制[4]
惡意代碼的行為表現各異,破壞程度千差萬別,但基本作用機制大體相同,其整個作用過程分為6個部分。
(1)侵入系統。侵入系統是惡意代碼實現其惡意目的的必要條件。惡意代碼入侵的途徑很多,如:從互聯網下載的程式本身就可能含有惡意代碼;接收已經感染惡意代碼的電子郵件;從光碟或U盤往系統上安裝軟體;黑客或者攻擊者故意將惡意代碼植入系統等。
(2)維持或提升現有特權。惡意代碼的傳播與破壞必須盜用用戶或者進程的合法許可權才能完成。
(3)隱蔽策略。為了不讓系統發現惡意代碼已經侵入系統,惡意代碼可能會改名、刪除源文件或者修改系統的安全策略來隱藏自己。
(4)潛伏。惡意代碼侵入系統後,等待一定的條件,並具有足夠的許可權時,就發作併進行破壞活動。
(5)破壞。惡意代碼的本質具有破壞性,其目的是造成信息丟失,泄密,破壞系統完整性等。
(6)重覆(1)至(5)對新的目標實施攻擊過程。惡意代碼的攻擊模型如圖3所示。惡意代碼的命名規則[5]
由於惡意代碼的迅猛發展,使用統一的公用名稱命名各種惡意代碼,已經成為當前各個反病毒機構的迫切任務。目前,各個反病毒機構仍然試著通過儘量使用統一的公用名來減少混亂。在各個反病毒機構內部都有一個類似的命名機制,一般格式為:<病毒首碼>.<病毒名>.<病毒尾碼>
(1)病毒首碼
病毒首碼是指一個病毒的種類,它是用來區別病毒的種族分類的。不同種類的病毒,其首碼也是不同的。比如常見的木馬病毒的首碼Trojan,蠕蟲病毒的首碼是Worm等。常見的病毒首碼有:
①系統病毒:系統病毒的首碼為Win32、PE、Win95、W32、W95等。這些病毒的一般公有的特性是可以感染Windows系統的.exe和.dll文件,並通過這些文件進行傳播,如CIH病毒。
②蠕蟲病毒:首碼為Worm,如衝擊波Worm.Blaster。
③木馬:首碼為Trojan,如Trojan.LMir.PSW.60。
④腳本病毒:首碼為Script,腳本病毒的公有特性是使用腳本語言編寫,通過網頁進行傳播,如紅色代碼Script.Redlof,或表示使用何種腳本編寫的,如歡樂時光VBS.Happytime。
⑤巨集病毒:巨集病毒是一種特俗的腳本病毒,第一首碼為Macro,第二首碼為Word、Word97、Excel、Excel97等,代表能夠感染的OFFICE版本,如著名的美麗莎Macro.Melissa。
⑥後門:後門病毒的首碼為Backdoor,該類病毒的公有特性是通過網路傳播,給系統開後門,如IRC後門Backdoor.IRCBot。
⑦病毒種植程式病毒:首碼為Dropper,該類病毒的公有特性是運行時會從體內釋放出一個或幾個新的病毒到系統目錄下,如冰河播種者Dropper.BingHe2.2C、MSN射手Dropper.Worm.Smibag等。
⑧破壞性程式病毒:首碼為Harm,該類病毒的公有特性是本身具有好看的圖標來誘惑用戶點擊,當用戶點擊這類病毒時,病毒便會直接對用戶電腦產生破壞,如格式化C盤Harm.formatC.f、殺手命令Harm.Command.Killer等。
⑨玩笑病毒:首碼為Joke,也稱惡作劇病毒,該類病毒的公有特性是本身具有好看的圖標來誘惑用戶點擊,當用戶點擊這類病毒時,病毒會做出各種破壞動作來嚇唬用戶,其實病毒並沒有對用戶電腦進行任何破壞,如女鬼病毒Joke.Girlghost。
⑩捆綁機病毒:首碼為Binder,該類病毒的特性是病毒作者會使用特定的捆綁程式將病毒與一些應用程式如QQ、IE捆綁起來,錶面上看是一個正常的文件,當用戶運行這些捆綁病毒的應用程式時,隱藏運行捆綁在一起的病毒,如捆綁QQ的Binder.QQPass.QQBin、系統殺手Binder.killsys等。
(2)病毒名
病毒名是指一個病毒的家族特征,是用來區別和標識病毒家族的,如以前著名的CIH病毒的家族名都是統一的“CIH”,振蕩波蠕蟲病毒的家族名是“Sasser”。
(3)病毒尾碼
病毒尾碼是指一個病毒的變種特征,是用來區別具體某個家族病毒的某個變種的。一般都採用英文字母來表示,如Worm.Sasser.b就是指振蕩波蠕蟲病毒的變種B,因此一般稱為“振蕩波變種B”。
惡意代碼的危害[5]
惡意代碼問題,不僅使企業和用戶蒙受了巨大的經濟損失,而且使國家的安全面臨著嚴重威脅。1991年的海灣戰爭是美國第一次公開在實戰中使用惡意代碼攻擊技術取得重大軍事利益,從此惡意代碼攻擊成為信息戰、網路戰最重要的入侵手段之一。惡意代碼問題無論從政治上、經濟上,還是軍事上,都成為信息安全面臨的首要問題。
目前,惡意代碼的危害主要表現在以下幾個方面:
(1)破壞數據:很多惡意代碼發作時直接破壞電腦的重要數據,所利用的手段有格式化硬碟、改寫文件分配表和目錄區、刪除重要文件或者用無意義的數據覆蓋文件等。例如,磁碟殺手病毒(DiskKiller)在硬碟感染後累計開機時問48小時內發作,發作時屏幕上顯示“Waming!!Don’turn off power or remove diskette while Disk Killer is Processing!”,並改寫硬碟數據。
(2)占用磁碟存儲空間:引導型病毒的侵占方式通常是病毒程式本身占據磁碟引導扇區,被覆蓋的扇區的數據將永久性丟失、無法恢復。文件型的病毒利用一些DOS功能進行傳染,檢測出未用空間把病毒的傳染部分寫進去,所以一般不會破壞原數據,但會非法侵占磁碟空間,文件會不同程度的加長。
(3)搶占系統資源:大部分惡意代碼在動態下都是常駐記憶體的,必然搶占一部分系統資源,致使一部分軟體不能運行。惡意代碼總是修改一些有關的中斷地址,在正常中斷過程中加入病毒體,干擾系統運行。
(4)影響電腦運行速度:惡意代碼不僅占用系統資源覆蓋存儲空間,還會影響電腦運行速度。比如,惡意代碼會監視電腦的工作狀態,伺機傳染激發;還有些惡意代碼會為了保護自己,對磁碟上的惡意代碼進行加密,CPU要多執行解密和加密過程,額外執行了上萬條指令。
惡意代碼的防範[6]
為了確保系統的安全與暢通,已有多種惡意代碼的防範技術,如惡意代碼分析技術、誤用檢測技術、許可權控制技術和完整性技術等。
一、惡意代碼分析技術
惡意代碼分析是一個多步過程,他深入研究惡意軟體結構和功能,有利於對抗措施的發展。按照分析過程中惡意代碼的執行狀態可以把惡意代碼分析技術分成靜態分析技術和動態分析技術兩大類。
1.靜態分析技術
靜態分析技術就是在不執行二進位程式的條件下,利用分析工具對惡意代碼的靜態特征和功能模塊進行分析的技術。該技術不僅可以找到惡意代碼的特征字元串、特征代碼段等,而且可以得到惡意代碼的功能模塊和各個功能模塊的流程圖。由於惡意代碼從本質上是由電腦指令構成的,因此根據分析過程是否考慮構成惡意代碼的電腦指令的語義,可以把靜態分析技術分成以下兩種:
(1)基於代碼特征的分析技術。在基於代碼特征的分析過程中,不考慮惡意代碼的指令意義,而是分析指令的統計特性、代碼的結構特性等。比如在某個特定的惡意代碼中,這些靜態數據會在程式的特定位置出現,並且不會隨著程式拷貝副本而變化,所以,完全可以使用這些靜態數據和其出現的位置作為描述惡意代碼的特征。當然有些惡意代碼在設計過程中,考慮到信息暴露的問題而將靜態數據進行拆分,甚至不使用靜態數據,這種情況就只能通過語義分析或者動態跟蹤分析得到具體信息了。
(2)基於代碼語義的分析技術。基於代碼語義的分析技術要求考慮構成惡意代碼的指令的含義,通過理解指令語義建立惡意代碼的流程圖和功能框圖,進一步分析惡意代碼的功能結構。因此,在該技術的分析過程中首先使用反彙編工具對惡意代碼執行體進行反彙編,然後通過理解惡意代碼的反彙編程式瞭解惡意代碼的功能。從理論上講,通過這種技術可以得到惡意代碼的所有功能特征。但是,目前基於語義的惡意代碼分析技術主要還是依靠人工來完成,人工分析的過程需要花費分析人員的大量時間,對分析人員本身的摹求也很高。
採用靜態分析技術來分析惡意代碼最大的優勢就是可以避免惡意代碼執行過程對分析系統的破壞。但是他本身存在以下兩個缺陷:①由於靜態分析本身的局限性,導致出現問題的不可判定;②絕大多數靜態分析技術只能識別出已知的病毒或惡意代碼,對多態變種和加殼病毒則無能為力。無法檢測未知的惡意代碼是靜態分析技術的一大缺陷。
2.動態分析技術
動態分析技術是指惡意代碼執行的情況下,利用程式調試工具對惡意代碼實施跟蹤和觀察,確定惡意代碼的工作過程,對靜態分析結果進行驗證。根據分析過程中是否需要考慮惡意代碼的語義特征,將動態分析技術分為以下兩種:
(1)外部觀察技術。外部觀察技術是利用系統監視工具觀察惡意代碼運行過程中系統環境的變化,通過分析這些變化判斷惡意代碼功能的一種分析技術。
通過觀察惡意代碼運行過程中系統文件、系統配置和系統註冊表的變化就可以分析惡意代碼的自啟動實現方法和進程隱藏方法:由於惡意代碼作為一段程式在運行過程中通常會對系統造成一定的影響,有些惡意代碼為了保證自己的自啟動功能和進程隱藏的功能,通常會修改系統註冊表和系統文件,或者會修改系統配置。
通過觀察惡意代碼運行過程中的網路活動情況可以瞭解惡意代碼的網路功能。惡意代碼通常會有一些比較特別的網路行為,比如通過網路進行傳播、繁殖和拒絕服務攻擊等破壞活動,或者通過網路進行詐騙等犯罪活動,或者通過網路將搜集到的機密信息傳遞給惡意代碼的控制者,或者在本地開啟一些埠、服務等後門等待惡意代碼控制者對受害主機的控制訪問。
雖然通過觀測惡意代碼執行過程對系統的影響可以得到的信息有限,但是這種分析方法相對簡單,效果明顯,已經成為分析惡意代碼的常用手段之一。
(2)跟蹤調試技術。跟蹤調試技術是通過跟蹤惡意代碼執行過程使用的系統函數和指令特征分析惡意代碼功能的技術。在實際分析過程中,跟蹤調試可以有兩種方法:
①單步跟蹤惡意代碼執行過程,即監視惡意代碼的每一個執行步驟,在分析過程中也可以在適當的時候執行惡意代碼的一個片段,這種分析方法可以全面監視惡意代碼的執行過程,但是分析過程相當耗時。
②利用系統hook技術監視惡意代碼執行過程中的系統調用和API使用狀態來分析惡意代碼的功能,這種方法經常用於惡意代碼檢測。
二、誤用檢測技術
誤用檢測也被稱為基於特征字的檢測。他是目前檢測惡意代碼最常用的技術,主要源於模式匹配的思想。其檢測過程中根據惡意代碼的執行狀態又分為靜態檢測和動態檢測:靜態檢測是指離線對電腦上存儲的所有代碼進行掃描;動態檢測則是指實時對到達電腦的所有數據進行檢查掃描,併在程式運行過程中對記憶體中的代碼進行掃描檢測。誤用檢測的實現流程如圖4所示。誤用檢測的實現過程為:根據已知惡意代碼的特征關鍵字建立一個惡意代碼特征庫;對電腦程式代碼進行掃描;與特征庫中的已知惡意代碼關鍵字進行匹配比較,從而判斷被掃描程式是否感染惡意代碼。
誤用檢測技術目前被廣泛應用於反病毒軟體中。早期的惡意代碼主要是電腦病毒,其主要感染電腦文件,併在感染文件後留有該病毒的特征代碼。通過掃描程式文件並與已知、特征值相匹配即可快速準確地判斷是否感染病毒,並採取對應的措施清除該病毒。隨著壓縮和加密技術的廣泛採用,在進行掃描和特征值匹配前,必須對壓縮和加密文件先進行解壓和解密,然後再進行掃描。而壓縮和加密方法多種多樣,這就大大增加了查毒處理的難度,有時甚至根本不能檢測。同時,基於特征字的檢測方法對變形病毒也顯得力不從心。
三、許可權控制技術
惡意代碼要實現入侵、傳播和破壞等必須具備足夠許可權。首先,惡意代碼只有被運行才能實現其惡意目的,所以惡意代碼進入系統後必須具有運行許可權。其次,被運行的惡意代碼如果要修改、破壞其他文件,則他必須具有對該文件的寫許可權,否則會被系統禁止。另外,如果惡意代碼要竊取其他文件信息,他也必須具有對該文件的讀許可權。
許可權控制技術通過適當的控制電腦系統中程式的許可權,使其僅僅具有完成正常任務的最小許可權,即使該程式中包含惡意代碼,該惡意代碼也不能或者不能完全實現其惡意目的。通過許可權控制技術來防禦惡意代碼的技術主要有以下兩種。
1.沙箱技術
沙箱技術是指系統根據每個應用程式可以訪問的資源,以及系統授權給該應用程式的許可權建立一個屬於該應用程式的“沙箱”,限制惡意代碼的運行。每個應用程式以及操作系統和驅動程式都運行在自己受保護的“沙箱”之中,不能影響其他程式的運行,也不能影響操作系統的正常運行。
目前,沙箱技術實現的最典型實例就是由加州大學Berkeley實驗室開發的—個基於Solaris操作系統的沙箱系統。該系統首先為每個直用程式建立一個配置文件,配置文件中規定了該應用程式可以訪問的資源和系統賦予的許可權。當應用程式運行時,通過調用系統底層函數解釋執行,系統自動判斷應用程式調用的底層函數是否符合系統的安全要求,並決定是否執行。
此外,Windows XP也提供了一種軟體限制策略,這種限制策略也是一種沙箱技術。他只允許受信任的程式運行,拒絕不受信任的惡意代碼執行,即他允許用戶設定未授權應用程式限制運行或禁止運行,只有用戶明確授權後,該應用程式才可以運行,這在一定程度上防止通過電子郵件或網上傳播的惡意代碼的攻擊。
2.安全操作系統
惡意代碼要實現成功入侵的重要一環,就是他必須使操作系統為他分配系統資源。如果能夠合理控製程序對系統的操作許可權,則程式對系統可能造成的破壞將被限制。安全操作系統具有一套強制訪問控制機制,他首先將電腦系統劃分為3個空間:系統管理空間、用戶空間和保護空間。其次再將進入系統的用戶劃分為不具有特權的普通用戶和系統管理員兩類。則系統用戶對系統空間的訪問必須遵循以下原則:
(1)系統管理空間不能被普通用戶讀寫。用戶空間包含用戶的應用程式和數據,可以被用戶讀寫。
(2)保護空間的程式和數據不能被用戶空間的進程修改,但可以被用戶空間的進程讀取。
(3)一般通用的命令和應用程式放在保護空間內,供用戶使用。由於普通用戶對保護空間的數據只能讀不能寫,從而限制了惡意代碼的傳播。
(4)在用戶空間內,不同用戶的安全級別不同,惡意代碼只能感染同級別的用戶的程式和數據,限制了惡意代碼的傳播範圍。
四、完整性技術
惡意代碼感染、破壞其他目標系統的過程,也是破壞這些目標完整性的過程。完整性技術就是通過保證系統資源,特別是系統中重要資源的完整性不受破壞,來阻止惡意代碼對系統資源的感染和破壞。
校驗和法是完整性控制技術對信息資源實現完整性保護的一種應用,他主要通過Hash值和迴圈冗餘碼來實現,即首先將未被惡意代碼感染的系統生成檢測數據,然後周期性地使用校驗和法檢測文件的改變情況,只要文件內部有一個比特發生了變化,校驗和值就會改變。運用校驗和法檢查惡意代碼有3種方法:
(1)在惡意代碼檢測軟體中設置校驗和法。對檢測的對象文件計算其正常狀態的校驗和並將其寫入被查文件中或檢測工具中,而後進行比較。
(2)在應用程式中嵌入校驗和法。將文件正常狀態的校驗和寫入文件本身中,每當應用程式啟動時,比較現行校驗和與原始校驗和,實現應用程式的自我檢測功能。
(3)將校驗和程式常駐記憶體。每當應用程式開始運行時,自動比較檢查應用程式內部或別的文件中預留保存的校驗和。
校驗和法能夠檢測未知惡意代碼對目標文件的修改,但存在兩個缺點:①校驗和法實際上不能檢測目標文件是否被惡意代碼感染,它只是查找文件的變化,而且即使發現文件發生了變化,既無法將惡意代碼消除,又不能判斷所感染的惡意代碼類型;②校驗和法常被惡意代碼通過多種手段欺騙,使之檢測失效,而誤判斷文件沒有發生改變。
在惡意代碼對抗與反對抗的發展過程中,還存在其他一些防禦惡意代碼的技術和方法,比如常用的有網路隔離技術和防火牆控制技術,以及基於生物免疫的病毒防範技術、基於移動代理的惡意代碼檢測技術等。
- ↑ 徐磊主編.電腦網路原理與實踐.機械工業出版社,2011.01.
- ↑ 沈鑫剡編著.2 惡意代碼分析與預防 電腦網路安全.人民郵電出版社,2011.03.
- ↑ 3.0 3.1 神龍工作室編著.第五章 木馬病毒攻防 新手學黑客攻防.人民郵電出版社,2011.03.
- ↑ 4.0 4.1 4.2 石志國,薛為民,尹浩編著.第7章 惡意代碼 電腦網路安全教程.北京交通大學出版社,2011.02.
- ↑ 5.0 5.1 張仕斌,曾派興,黃南銓編著.第2章 病毒及惡意軟體清除與防禦技術 網路安全實用技術.人民郵電出版社,2010.12.
- ↑ 張建標,賴英旭,侍偉敏編著.第四章 系統安全 信息安全體繫結構.北京工業大學出版社,2011.09.