登錄

惡意代碼

1.什么是惡意代碼[1]

惡意代碼(malicious code)又稱為惡意軟件(malicious software,Malware),是能夠在計(jì)算機(jī)系統(tǒng)中進(jìn)行非授權(quán)操作的代碼。

2.惡意代碼的分類[2]

分類惡意代碼的標(biāo)準(zhǔn)主要是代碼的獨(dú)立性和自我復(fù)制性,獨(dú)立的惡意代碼是指具備一個完整程序所應(yīng)該具有的全部功能,能夠獨(dú)立傳播、運(yùn)行的惡意代碼,這樣的惡意代碼不需要寄宿在另一個程序中。非獨(dú)立惡意代碼只是一段代碼,必須嵌入某個完整的程序中,作為該程序的一個組成部分進(jìn)行傳播和運(yùn)行。對于非獨(dú)立惡意代碼,自我復(fù)制過程就是將自身嵌入宿主程序的過程,這個過程也稱為感染宿主程序的過程。對于獨(dú)立惡意代碼,自我復(fù)制過程就是將自身傳播給其他系統(tǒng)的過程。不具有自我復(fù)制能力的惡意代碼必須借助其他媒介進(jìn)行傳播。目前具有的惡意代碼種類及屬性如圖1所示。按照圖1中的分類稱為“病毒”的惡意代碼是同時具有寄生和感染特性的惡意代碼,稱之為狹義病毒。習(xí)慣上,把一切具有自我復(fù)制能力的惡意代碼統(tǒng)稱為病毒,為和狹義病毒相區(qū)別,將這種病毒稱為廣義病毒?;趶V義病毒的定義,病毒、蠕蟲和Zombie可以統(tǒng)稱為病毒。
Image:惡意代碼分類.jpg

1.陷阱門

陷阱門是某個程序的秘密入口,通過該入口啟動程序,可以繞過正常的訪問控制過程,因此,獲悉陷阱門的人員可以繞過訪問控制過程,直接對資源進(jìn)行訪問。陷阱門已經(jīng)存在很長一段時問,原先的作用是程序員開發(fā)具有鑒別或登錄過程的應(yīng)用程序時,為避免每一次調(diào)試程序時都需輸入大量鑒別或登錄過程需要的信息,通過陷阱門啟動程序的方式來繞過鑒別或登錄過程。程序區(qū)別正常啟動和通過陷阱門啟動的方式很多,如攜帶特定的命令參數(shù)、在程序啟動后輸入特定字符串等。

程序設(shè)計(jì)者是最有可能設(shè)置陷阱門的人,因此,許多免費(fèi)下載的實(shí)用程序中含有陷阱門或病毒這樣的惡意代碼,使用免費(fèi)下載的實(shí)用程序時必須注意這一點(diǎn)。

2.邏輯炸彈

邏輯炸彈是包含在正常應(yīng)用程序中的一段惡意代碼,當(dāng)某種條件出現(xiàn),如到達(dá)某個特定日期、增加或刪除某個特定文件等,將激發(fā)這一段惡意代碼,執(zhí)行這一段惡意代碼將導(dǎo)致非常嚴(yán)重的后果,如刪除系統(tǒng)中的重要文件和數(shù)據(jù)、使系統(tǒng)崩潰等。歷史上不乏程序設(shè)計(jì)者利用邏輯炸彈訛詐用戶和報復(fù)用戶的案例。

3.特洛伊木馬

特洛伊木馬也是包含在正常應(yīng)用程序中的一段惡意代碼,一旦執(zhí)行這樣的應(yīng)用程序,將激發(fā)惡意代碼。顧名思義,這一段惡意代碼的功能主要在于削弱系統(tǒng)的安全控制機(jī)制,如在系統(tǒng)登錄程序中加入陷阱門,以便黑客能夠繞過登錄過程直接訪問系統(tǒng)資源;將共享文件的只讀屬性修改為可讀寫屬性,以便黑客能夠?qū)蚕砦募M(jìn)行修改;甚至允許黑客通過遠(yuǎn)程桌面這樣的工具軟件控制系統(tǒng)。

4.病毒

這里的病毒是狹義上的惡意代碼類型,單指那種既具有自我復(fù)制能力,又必須寄生在其他實(shí)用程序中的惡意代碼。它和陷阱門、邏輯炸彈的最大不同在于自我復(fù)制能力,通常情況下,陷阱門、邏輯炸彈不會感染其他實(shí)用程序,而病毒會自動將自身添加到其他實(shí)用程序中。

5.蠕蟲

從病毒的廣義定義來說,蠕蟲也是一種病毒,但它和狹義病毒的最大不同在于自我復(fù)制過程,病毒的自我復(fù)制過程需要人工干預(yù),無論是運(yùn)行感染病毒的實(shí)用程序,還是打開包含宏病毒的郵件,都不是由病毒程序自我完成的。蠕蟲能夠自我完成下述步驟。

(1)查找遠(yuǎn)程系統(tǒng):能夠通過檢索已被攻陷的系統(tǒng)的網(wǎng)絡(luò)鄰居列表或其他遠(yuǎn)程系統(tǒng)地址列表找出下一個攻擊對象。

(2)建立連接:能夠通過端口掃描等操作過程自動和被攻擊對象建立連接,如Telnet連接等。

(3)實(shí)施攻擊:能夠自動將自身通過已經(jīng)建立的連接復(fù)制到被攻擊的遠(yuǎn)程系統(tǒng),并運(yùn)行它。

6.Zombie

Zombie(俗稱僵尸)是一種具有秘密接管其他連接在網(wǎng)絡(luò)上的系統(tǒng),并以此系統(tǒng)為平臺發(fā)起對某個特定系統(tǒng)的攻擊功能的惡意代碼。Zombie主要用于定義惡意代碼的功能,并沒有涉及該惡意代碼的結(jié)構(gòu)和自我復(fù)制過程,因此,分別存在符合狹義病毒的定義和蠕蟲定義的Zombie。

3.惡意代碼的特征[3]

惡意代碼的編寫大多是出于商業(yè)或探測他人資料的目的,如宣傳某個產(chǎn)品、提供網(wǎng)絡(luò)收費(fèi)服務(wù)或?qū)λ说?a href="/wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA" title="計(jì)算機(jī)">計(jì)算機(jī)直接進(jìn)行有意的破壞等,總的來說,它具有惡意破壞的目的、其本身為程序,以及通過執(zhí)行發(fā)生作用3個特征。

(1)惡意破壞的目的。

有相當(dāng)一部分黑客進(jìn)行惡意代碼攻擊的目的是從破壞其他用戶的系統(tǒng)中得到“成就感”。但現(xiàn)在更多的黑客則是出于經(jīng)濟(jì)利益。例如,某些廣告類代碼可以通過用戶的上網(wǎng)習(xí)慣以提高廣告點(diǎn)擊率來獲取經(jīng)濟(jì)利益,而更直接的則是通過竊取其他用戶的網(wǎng)上信用卡、銀行代碼等直接對其進(jìn)行經(jīng)濟(jì)侵犯?,F(xiàn)今又出現(xiàn)了潛伏性的惡意代碼,在攻擊的同時盡量不被發(fā)現(xiàn),對用戶和社會都造成了嚴(yán)重的危害,構(gòu)成了嚴(yán)重的經(jīng)濟(jì)犯罪。

(2)其本身為程序。

惡意代碼是一段程序,它可以在很隱蔽的情況下嵌入另一個程序中,通過運(yùn)行別的程序而自動運(yùn)行,從而達(dá)到破壞被感染計(jì)算機(jī)的數(shù)據(jù)、程序以及對被感染計(jì)算機(jī)進(jìn)行信息竊取等目的。

(3)通過執(zhí)行發(fā)生作用。

惡意代碼與木馬一樣,只要用戶運(yùn)行就會發(fā)作,只不過惡意代碼是通過網(wǎng)頁進(jìn)行傳播的。

4.惡意代碼的發(fā)展史[4]

惡意代碼經(jīng)過30多年的發(fā)展,破壞性、種類和感染性都得到增強(qiáng)。隨著計(jì)算機(jī)的網(wǎng)絡(luò)化程度逐步提高,網(wǎng)絡(luò)傳播的惡意代碼對人們?nèi)粘I钣绊懺絹碓酱蟆?

1988年11月泛濫的Morris蠕蟲,頃刻之間使得6000多臺計(jì)算機(jī)(占當(dāng)時Intemet上計(jì)算機(jī)總數(shù)的10%多)癱瘓,造成嚴(yán)重的后果,并因此引起世界范圍內(nèi)關(guān)注。

1998年CIH病毒造成數(shù)十萬臺計(jì)算機(jī)受到破壞。1999年Happy99、Melissa病毒大爆發(fā),Melissa病毒通過E-mail附件快速傳播而使E.mail服務(wù)器和網(wǎng)絡(luò)負(fù)載過重,它還將敏感的文檔在用戶不知情的情況下按地址簿中的地址發(fā)出。

2000年5月爆發(fā)的“愛蟲”病毒及其以后出現(xiàn)的50多個變種病毒,是近年來讓計(jì)算機(jī)信息界付出極大代價的病毒,僅一年時間共感染了4000多萬臺計(jì)算機(jī),造成大約87億美元的經(jīng)濟(jì)損失。

2001年,國信安辦與公安部共同主辦了我國首次計(jì)算機(jī)病毒疫情網(wǎng)上調(diào)查工作。結(jié)果感染過計(jì)算機(jī)病毒的用戶高達(dá)73%,其中,感染三次以上的用戶又占59%多,網(wǎng)絡(luò)安全存在大量隱患。

2001年8月,“紅色代碼”蠕蟲利用微軟Web服務(wù)器IIS4.0或5.0中Index服務(wù)的安全漏洞,攻破目標(biāo)機(jī)器,并通過自動掃描方式傳播蠕蟲,在互聯(lián)網(wǎng)上大規(guī)模泛濫。

2003年,SLammer蠕蟲在10分鐘內(nèi)導(dǎo)致互聯(lián)網(wǎng)90%脆弱主機(jī)受到感染。同年8月,“沖擊波”蠕蟲爆發(fā),8天內(nèi)導(dǎo)致全球計(jì)算機(jī)用戶損失高達(dá)20億美元之多。

2004年到2006年,振蕩波蠕蟲、愛情后門、波特后門等惡意代碼利用電子郵件和系統(tǒng)漏洞對網(wǎng)絡(luò)主機(jī)進(jìn)行瘋狂傳播,給國家和社會造成了巨大的經(jīng)濟(jì)損失。

根據(jù)2010年1月28日網(wǎng)絡(luò)安全廠商金山安全發(fā)布的《2009年中國電腦病毒疫情及互聯(lián)網(wǎng)安全報告》。2009年,金山毒霸共截獲新增病毒和木馬20684223個,與5年前新增病毒數(shù)量相比,增長了近400倍。其中IE主頁篡改類病毒第一次登上十大病毒之首,成為“毒王”。

目前,惡意代碼問題成為信息安全需要解決的,迫在眉睫的、刻不容緩的安全問題。圖2顯示了過去20多年主要惡意代碼事件。
Image:惡意代碼的發(fā)展.jpg

伴隨著用戶對網(wǎng)絡(luò)安全問題的日益關(guān)注,黑客、病毒木馬制作者的“生存方式”也在發(fā)生變化。病毒的“發(fā)展”已經(jīng)呈現(xiàn)多元化的趨勢,類似熊貓燒香、灰鴿子等大張旗鼓進(jìn)行攻擊、售賣的病毒已經(jīng)越來越少,而以貓癬下載器、寶馬下載器、文件夾偽裝者為代表的“隱蔽性”頑固病毒頻繁出現(xiàn),同時有針對性的木馬、病毒也已經(jīng)成為新增病毒的主流。

5.惡意代碼存在的原因[4]

1.系統(tǒng)漏洞層出不窮

AT&T實(shí)驗(yàn)室的S.Bellovin曾經(jīng)對美國CERT提供的安全報告進(jìn)行過分析,分析結(jié)果表明,大約50%的計(jì)算機(jī)網(wǎng)絡(luò)安全問題是由軟件工程中產(chǎn)生的安全缺陷引起的,其中,很多問題的根源都來自于操作系統(tǒng)的安全脆弱性。

在信息系統(tǒng)的層次結(jié)構(gòu)中,包括從底層的操作系統(tǒng)到上層的網(wǎng)絡(luò)應(yīng)用在內(nèi)的各個層次都存在著許多不叮避免的安全問題和安全脆弱性。而這些安全脆弱性的不可避免,直接導(dǎo)致了惡意代碼的必然存在。

2.利益驅(qū)使

目前,網(wǎng)絡(luò)購物、網(wǎng)絡(luò)支付、網(wǎng)絡(luò)銀行和網(wǎng)上證券交易系統(tǒng)的已經(jīng)普及,各種盜號木馬甚至被掛在了金融、門戶等網(wǎng)站上,“證券大盜”、“網(wǎng)銀大盜”在互聯(lián)網(wǎng)上瘋狂作案,給用戶造成了嚴(yán)重的經(jīng)濟(jì)損失。

如果下載網(wǎng)銀木馬,該木馬會監(jiān)視IE瀏覽器正在訪問的網(wǎng)頁,如果發(fā)現(xiàn)用戶正在登錄某銀行的網(wǎng)上銀行,就會彈出偽造的登錄對話框,誘騙用戶輸入登錄密碼和支付密碼,通過郵件將竊取的信息發(fā)送出去,威脅用戶網(wǎng)上銀行賬號密碼的安全。

騙取IP流量,所謂的IP流量指的是訪問某個網(wǎng)站的獨(dú)立IP數(shù)量。IP流量是評估一個網(wǎng)站的重要指標(biāo),因此一些商家就出售這些流量。

有了利益的驅(qū)使,就出現(xiàn)了很多非法彈網(wǎng)頁的惡意軟件,這些惡意軟件通過定時器程序定時彈出某網(wǎng)頁或者修改IE的默認(rèn)頁面,實(shí)現(xiàn)謀利。還有的網(wǎng)站,在用戶打開時,自動彈出好幾個廣告網(wǎng)頁,這些也都可以歸納到惡意代碼范疇。

6.惡意代碼的傳播方式和趨勢[3]

惡意代碼按傳播方式可以分為病毒、蠕蟲、木馬、移動代碼和間諜軟件等。其傳播的目的已有所變化,傳統(tǒng)的攻擊活動常常是受好奇心驅(qū)使,希望自己的技術(shù)可以得到認(rèn)可,而現(xiàn)在的攻擊則以獲得經(jīng)濟(jì)利益為目的。這些攻擊通常為犯罪行為,例如,為牟取經(jīng)濟(jì)利益而非法盜取他人的信息,從而對其造成經(jīng)濟(jì)損失。

1.惡意代碼的傳播方式

總的來說,惡意代碼的傳播是因?yàn)橛脩舻能浖霈F(xiàn)了漏洞、操作不慎或者是兩者的結(jié)合造成。

(1)病毒。病毒具有自我復(fù)制的功能,一般嵌入主機(jī)的程序中。當(dāng)被感染文件執(zhí)行操作,例如,用戶打開一個可執(zhí)行文件時,病毒就會自我繁殖。病毒一般都具有破壞性。

(2)木馬。這種程序從表面上看沒有危害,但實(shí)際上卻隱含著惡意的意圖和破壞的作用。一些木馬程序會通過覆蓋系統(tǒng)中已經(jīng)存在的文件的方式存在于系統(tǒng)之中;另外有的還會以軟件的形式出現(xiàn),因?yàn)樗话闶且砸粋€正常的應(yīng)用程序身份在系統(tǒng)中運(yùn)行的,所以這種程序通常不容易被發(fā)現(xiàn)。

(3)蠕蟲。蠕蟲是一種可以自我復(fù)制的完全獨(dú)立的程序,它的傳播不需要借助被感染主機(jī)中的其他程序和用戶的操作,而是通過系統(tǒng)存在的漏洞和設(shè)置的不安全性來進(jìn)行入侵,如通過共享的設(shè)置來侵入。蠕蟲可以自動創(chuàng)建與它的功能完全相同的副本,并能在無人干涉的情況下自動運(yùn)行,大量地復(fù)制占用計(jì)算機(jī)的空間,使計(jì)算機(jī)的運(yùn)行緩慢甚至癱瘓。其中比較典型的有Blaster和SQLSlammer。

(4)移動代碼。移動代碼是能夠從主機(jī)傳輸?shù)娇蛻舳擞?jì)算機(jī)上并執(zhí)行的代碼,它通常是作為病毒、蠕蟲或者是特洛伊木馬的一部分被傳送到客戶的計(jì)算機(jī)上的。此外,移動代碼還可以利用系統(tǒng)的漏洞進(jìn)行入侵,如非法的數(shù)據(jù)訪問和盜取管理員賬號等。

(5)間諜軟件。散布間諜軟件的網(wǎng)站或個人會使用各種方法使用戶下載間諜軟件并將其安裝在他們的計(jì)算機(jī)上。這些方法包括創(chuàng)建欺騙性的免費(fèi)服務(wù),以及隱蔽地將間諜軟件和用戶可能需要的其他軟件捆綁在一起等,如使用免費(fèi)的共享軟件,達(dá)到利用軟獲取經(jīng)濟(jì)利益等目的。

2.惡意代碼的傳播趨勢

(1)種類更多。惡意代碼的傳播不再單純地依賴軟件漏洞或者他人操作中的不慎,也有可能是兩者的結(jié)合,如蠕蟲產(chǎn)生寄生的文件病毒、特洛伊木馬程序、口令竊取程序、后門程序等,這進(jìn)一步模糊了蠕蟲、病毒和特洛伊木馬之間的區(qū)別。

(2)利用混合傳播模式。“混合病毒威脅”和“收斂威脅”已成為新的病毒術(shù)語,紅色代碼利用的就是IIS的漏洞,它們的特點(diǎn)都是利用軟件漏洞,以病毒的模式從引導(dǎo)區(qū)方式發(fā)展為多種類病毒方式進(jìn)行攻擊。

(3)跨平臺攻擊。跨平臺攻擊已開始出現(xiàn),有些惡意代碼對所有的平臺都能夠起作用,例如,代碼能兼容Windows、UNIX及Linux平臺并進(jìn)行攻擊。

(4)使用銷售技術(shù)。另外一個趨勢是更多的惡意代碼使用銷售技術(shù),其目的不僅在于利用受害者的郵箱實(shí)現(xiàn)最大數(shù)量的信息轉(zhuǎn)發(fā),而且要引起受害者的興趣,讓受害者進(jìn)一步對惡意代碼進(jìn)行下載等操作,并且使用網(wǎng)絡(luò)探測和電子郵件腳本嵌入等技術(shù)來達(dá)到目的。

(5)服務(wù)器和客戶機(jī)同樣受到攻擊。對于現(xiàn)今的惡意代碼,服務(wù)器和客戶機(jī)的區(qū)別越來越模糊,客戶計(jì)算機(jī)和服務(wù)器如果運(yùn)行同樣的應(yīng)用程序,也將會受到惡意代碼的攻擊。

(6)Windows操作系統(tǒng)被攻擊得最頻繁。WindoWS操作系統(tǒng)更容易遭受惡意代碼的攻擊,它也是病毒攻擊最集中的平臺,病毒總是選擇配置不好的網(wǎng)絡(luò)共享和服務(wù)作為進(jìn)入點(diǎn)。

(7)惡意代碼類型變化。惡意代碼利用MIME邊界和UUEncode頭的處理薄弱的缺陷,將惡意代碼偽裝成安全的數(shù)據(jù)類型,欺騙用戶執(zhí)行代碼。

7.惡意代碼攻擊機(jī)制[4]

惡意代碼的行為表現(xiàn)各異,破壞程度千差萬別,但基本作用機(jī)制大體相同,其整個作用過程分為6個部分。

(1)侵入系統(tǒng)。侵入系統(tǒng)是惡意代碼實(shí)現(xiàn)其惡意目的的必要條件。惡意代碼入侵的途徑很多,如:從互聯(lián)網(wǎng)下載的程序本身就可能含有惡意代碼;接收已經(jīng)感染惡意代碼的電子郵件;從光盤或U盤往系統(tǒng)上安裝軟件;黑客或者攻擊者故意將惡意代碼植入系統(tǒng)等。

(2)維持或提升現(xiàn)有特權(quán)。惡意代碼的傳播與破壞必須盜用用戶或者進(jìn)程的合法權(quán)限才能完成。

(3)隱蔽策略。為了不讓系統(tǒng)發(fā)現(xiàn)惡意代碼已經(jīng)侵入系統(tǒng),惡意代碼可能會改名、刪除源文件或者修改系統(tǒng)的安全策略來隱藏自己。

(4)潛伏。惡意代碼侵入系統(tǒng)后,等待一定的條件,并具有足夠的權(quán)限時,就發(fā)作并進(jìn)行破壞活動。

(5)破壞。惡意代碼的本質(zhì)具有破壞性,其目的是造成信息丟失,泄密,破壞系統(tǒng)完整性等。

(6)重復(fù)(1)至(5)對新的目標(biāo)實(shí)施攻擊過程。惡意代碼的攻擊模型如圖3所示。
Image:惡意代碼的攻擊模型.jpg

8.惡意代碼的命名規(guī)則[5]

由于惡意代碼的迅猛發(fā)展,使用統(tǒng)一的公用名稱命名各種惡意代碼,已經(jīng)成為當(dāng)前各個反病毒機(jī)構(gòu)的迫切任務(wù)。目前,各個反病毒機(jī)構(gòu)仍然試著通過盡量使用統(tǒng)一的公用名來減少混亂。在各個反病毒機(jī)構(gòu)內(nèi)部都有一個類似的命名機(jī)制,一般格式為:<病毒前綴>.<病毒名>.<病毒后綴>

(1)病毒前綴

病毒前綴是指一個病毒的種類,它是用來區(qū)別病毒的種族分類的。不同種類的病毒,其前綴也是不同的。比如常見的木馬病毒的前綴Trojan,蠕蟲病毒的前綴是Worm等。常見的病毒前綴有:

①系統(tǒng)病毒:系統(tǒng)病毒的前綴為Win32、PE、Win95、W32、W95等。這些病毒的一般公有的特性是可以感染W(wǎng)indows系統(tǒng)的.exe和.dll文件,并通過這些文件進(jìn)行傳播,如CIH病毒。

②蠕蟲病毒:前綴為Worm,如沖擊波Worm.Blaster。

③木馬:前綴為Trojan,如Trojan.LMir.PSW.60。

④腳本病毒:前綴為Script,腳本病毒的公有特性是使用腳本語言編寫,通過網(wǎng)頁進(jìn)行傳播,如紅色代碼Script.Redlof,或表示使用何種腳本編寫的,如歡樂時光VBS.Happytime。

⑤宏病毒:宏病毒是一種特俗的腳本病毒,第一前綴為Macro,第二前綴為Word、Word97、Excel、Excel97等,代表能夠感染的OFFICE版本,如著名的美麗莎Macro.Melissa。

⑥后門:后門病毒的前綴為Backdoor,該類病毒的公有特性是通過網(wǎng)絡(luò)傳播,給系統(tǒng)開后門,如IRC后門Backdoor.IRCBot。

⑦病毒種植程序病毒:前綴為Dropper,該類病毒的公有特性是運(yùn)行時會從體內(nèi)釋放出一個或幾個新的病毒到系統(tǒng)目錄下,如冰河播種者Dropper.BingHe2.2C、MSN射手Dropper.Worm.Smibag等。

⑧破壞性程序病毒:前綴為Harm,該類病毒的公有特性是本身具有好看的圖標(biāo)來誘惑用戶點(diǎn)擊,當(dāng)用戶點(diǎn)擊這類病毒時,病毒便會直接對用戶計(jì)算機(jī)產(chǎn)生破壞,如格式化C盤Harm.formatC.f、殺手命令Harm.Command.Killer等。

⑨玩笑病毒:前綴為Joke,也稱惡作劇病毒,該類病毒的公有特性是本身具有好看的圖標(biāo)來誘惑用戶點(diǎn)擊,當(dāng)用戶點(diǎn)擊這類病毒時,病毒會做出各種破壞動作來嚇唬用戶,其實(shí)病毒并沒有對用戶電腦進(jìn)行任何破壞,如女鬼病毒Joke.Girlghost。

⑩捆綁機(jī)病毒:前綴為Binder,該類病毒的特性是病毒作者會使用特定的捆綁程序?qū)⒉《九c一些應(yīng)用程序如QQ、IE捆綁起來,表面上看是一個正常的文件,當(dāng)用戶運(yùn)行這些捆綁病毒的應(yīng)用程序時,隱藏運(yùn)行捆綁在一起的病毒,如捆綁QQ的Binder.QQPass.QQBin、系統(tǒng)殺手Binder.killsys等。

(2)病毒名

病毒名是指一個病毒的家族特征,是用來區(qū)別和標(biāo)識病毒家族的,如以前著名的CIH病毒的家族名都是統(tǒng)一的“CIH”,振蕩波蠕蟲病毒的家族名是“Sasser”。

(3)病毒后綴

病毒后綴是指一個病毒的變種特征,是用來區(qū)別具體某個家族病毒的某個變種的。一般都采用英文字母來表示,如Worm.Sasser.b就是指振蕩波蠕蟲病毒的變種B,因此一般稱為“振蕩波變種B”。

9.惡意代碼的危害[5]

惡意代碼問題,不僅使企業(yè)和用戶蒙受了巨大的經(jīng)濟(jì)損失,而且使國家的安全面臨著嚴(yán)重威脅。1991年的海灣戰(zhàn)爭是美國第一次公開在實(shí)戰(zhàn)中使用惡意代碼攻擊技術(shù)取得重大軍事利益,從此惡意代碼攻擊成為信息戰(zhàn)、網(wǎng)絡(luò)戰(zhàn)最重要的入侵手段之一。惡意代碼問題無論從政治上、經(jīng)濟(jì)上,還是軍事上,都成為信息安全面臨的首要問題。

目前,惡意代碼的危害主要表現(xiàn)在以下幾個方面:

(1)破壞數(shù)據(jù):很多惡意代碼發(fā)作時直接破壞計(jì)算機(jī)的重要數(shù)據(jù),所利用的手段有格式化硬盤、改寫文件分配表和目錄區(qū)、刪除重要文件或者用無意義的數(shù)據(jù)覆蓋文件等。例如,磁盤殺手病毒(DiskKiller)在硬盤感染后累計(jì)開機(jī)時問48小時內(nèi)發(fā)作,發(fā)作時屏幕上顯示“Waming!!Don’turn off power or remove diskette while Disk Killer is Processing!”,并改寫硬盤數(shù)據(jù)。

(2)占用磁盤存儲空間:引導(dǎo)型病毒的侵占方式通常是病毒程序本身占據(jù)磁盤引導(dǎo)扇區(qū),被覆蓋的扇區(qū)的數(shù)據(jù)將永久性丟失、無法恢復(fù)。文件型的病毒利用一些DOS功能進(jìn)行傳染,檢測出未用空間把病毒的傳染部分寫進(jìn)去,所以一般不會破壞原數(shù)據(jù),但會非法侵占磁盤空間,文件會不同程度的加長。

(3)搶占系統(tǒng)資源:大部分惡意代碼在動態(tài)下都是常駐內(nèi)存的,必然搶占一部分系統(tǒng)資源,致使一部分軟件不能運(yùn)行。惡意代碼總是修改一些有關(guān)的中斷地址,在正常中斷過程中加入病毒體,干擾系統(tǒng)運(yùn)行。

(4)影響計(jì)算機(jī)運(yùn)行速度:惡意代碼不僅占用系統(tǒng)資源覆蓋存儲空間,還會影響計(jì)算機(jī)運(yùn)行速度。比如,惡意代碼會監(jiān)視計(jì)算機(jī)的工作狀態(tài),伺機(jī)傳染激發(fā);還有些惡意代碼會為了保護(hù)自己,對磁盤上的惡意代碼進(jìn)行加密,CPU要多執(zhí)行解密和加密過程,額外執(zhí)行了上萬條指令。

10.惡意代碼的防范[6]

為了確保系統(tǒng)的安全與暢通,已有多種惡意代碼的防范技術(shù),如惡意代碼分析技術(shù)、誤用檢測技術(shù)、權(quán)限控制技術(shù)和完整性技術(shù)等。

一、惡意代碼分析技術(shù)

惡意代碼分析是一個多步過程,他深入研究惡意軟件結(jié)構(gòu)和功能,有利于對抗措施的發(fā)展。按照分析過程中惡意代碼的執(zhí)行狀態(tài)可以把惡意代碼分析技術(shù)分成靜態(tài)分析技術(shù)和動態(tài)分析技術(shù)兩大類。

1.靜態(tài)分析技術(shù)

靜態(tài)分析技術(shù)就是在不執(zhí)行二進(jìn)制程序的條件下,利用分析工具對惡意代碼的靜態(tài)特征和功能模塊進(jìn)行分析的技術(shù)。該技術(shù)不僅可以找到惡意代碼的特征字符串、特征代碼段等,而且可以得到惡意代碼的功能模塊和各個功能模塊的流程圖。由于惡意代碼從本質(zhì)上是由計(jì)算機(jī)指令構(gòu)成的,因此根據(jù)分析過程是否考慮構(gòu)成惡意代碼的計(jì)算機(jī)指令的語義,可以把靜態(tài)分析技術(shù)分成以下兩種:

(1)基于代碼特征的分析技術(shù)。在基于代碼特征的分析過程中,不考慮惡意代碼的指令意義,而是分析指令的統(tǒng)計(jì)特性、代碼的結(jié)構(gòu)特性等。比如在某個特定的惡意代碼中,這些靜態(tài)數(shù)據(jù)會在程序的特定位置出現(xiàn),并且不會隨著程序拷貝副本而變化,所以,完全可以使用這些靜態(tài)數(shù)據(jù)和其出現(xiàn)的位置作為描述惡意代碼的特征。當(dāng)然有些惡意代碼在設(shè)計(jì)過程中,考慮到信息暴露的問題而將靜態(tài)數(shù)據(jù)進(jìn)行拆分,甚至不使用靜態(tài)數(shù)據(jù),這種情況就只能通過語義分析或者動態(tài)跟蹤分析得到具體信息了。

(2)基于代碼語義的分析技術(shù)?;诖a語義的分析技術(shù)要求考慮構(gòu)成惡意代碼的指令的含義,通過理解指令語義建立惡意代碼的流程圖和功能框圖,進(jìn)一步分析惡意代碼的功能結(jié)構(gòu)。因此,在該技術(shù)的分析過程中首先使用反匯編工具對惡意代碼執(zhí)行體進(jìn)行反匯編,然后通過理解惡意代碼的反匯編程序了解惡意代碼的功能。從理論上講,通過這種技術(shù)可以得到惡意代碼的所有功能特征。但是,目前基于語義的惡意代碼分析技術(shù)主要還是依靠人工來完成,人工分析的過程需要花費(fèi)分析人員的大量時間,對分析人員本身的摹求也很高。

采用靜態(tài)分析技術(shù)來分析惡意代碼最大的優(yōu)勢就是可以避免惡意代碼執(zhí)行過程對分析系統(tǒng)的破壞。但是他本身存在以下兩個缺陷:①由于靜態(tài)分析本身的局限性,導(dǎo)致出現(xiàn)問題的不可判定;②絕大多數(shù)靜態(tài)分析技術(shù)只能識別出已知的病毒或惡意代碼,對多態(tài)變種和加殼病毒則無能為力。無法檢測未知的惡意代碼是靜態(tài)分析技術(shù)的一大缺陷。

2.動態(tài)分析技術(shù)

動態(tài)分析技術(shù)是指惡意代碼執(zhí)行的情況下,利用程序調(diào)試工具對惡意代碼實(shí)施跟蹤和觀察,確定惡意代碼的工作過程,對靜態(tài)分析結(jié)果進(jìn)行驗(yàn)證。根據(jù)分析過程中是否需要考慮惡意代碼的語義特征,將動態(tài)分析技術(shù)分為以下兩種:

(1)外部觀察技術(shù)。外部觀察技術(shù)是利用系統(tǒng)監(jiān)視工具觀察惡意代碼運(yùn)行過程中系統(tǒng)環(huán)境的變化,通過分析這些變化判斷惡意代碼功能的一種分析技術(shù)。

通過觀察惡意代碼運(yùn)行過程中系統(tǒng)文件、系統(tǒng)配置和系統(tǒng)注冊表的變化就可以分析惡意代碼的自啟動實(shí)現(xiàn)方法和進(jìn)程隱藏方法:由于惡意代碼作為一段程序在運(yùn)行過程中通常會對系統(tǒng)造成一定的影響,有些惡意代碼為了保證自己的自啟動功能和進(jìn)程隱藏的功能,通常會修改系統(tǒng)注冊表和系統(tǒng)文件,或者會修改系統(tǒng)配置。

通過觀察惡意代碼運(yùn)行過程中的網(wǎng)絡(luò)活動情況可以了解惡意代碼的網(wǎng)絡(luò)功能。惡意代碼通常會有一些比較特別的網(wǎng)絡(luò)行為,比如通過網(wǎng)絡(luò)進(jìn)行傳播、繁殖和拒絕服務(wù)攻擊等破壞活動,或者通過網(wǎng)絡(luò)進(jìn)行詐騙等犯罪活動,或者通過網(wǎng)絡(luò)將搜集到的機(jī)密信息傳遞給惡意代碼的控制者,或者在本地開啟一些端口、服務(wù)等后門等待惡意代碼控制者對受害主機(jī)的控制訪問。

雖然通過觀測惡意代碼執(zhí)行過程對系統(tǒng)的影響可以得到的信息有限,但是這種分析方法相對簡單,效果明顯,已經(jīng)成為分析惡意代碼的常用手段之一。

(2)跟蹤調(diào)試技術(shù)。跟蹤調(diào)試技術(shù)是通過跟蹤惡意代碼執(zhí)行過程使用的系統(tǒng)函數(shù)和指令特征分析惡意代碼功能的技術(shù)。在實(shí)際分析過程中,跟蹤調(diào)試可以有兩種方法:

①單步跟蹤惡意代碼執(zhí)行過程,即監(jiān)視惡意代碼的每一個執(zhí)行步驟,在分析過程中也可以在適當(dāng)?shù)臅r候執(zhí)行惡意代碼的一個片段,這種分析方法可以全面監(jiān)視惡意代碼的執(zhí)行過程,但是分析過程相當(dāng)耗時。

②利用系統(tǒng)hook技術(shù)監(jiān)視惡意代碼執(zhí)行過程中的系統(tǒng)調(diào)用和API使用狀態(tài)來分析惡意代碼的功能,這種方法經(jīng)常用于惡意代碼檢測。

二、誤用檢測技術(shù)

誤用檢測也被稱為基于特征字的檢測。他是目前檢測惡意代碼最常用的技術(shù),主要源于模式匹配的思想。其檢測過程中根據(jù)惡意代碼的執(zhí)行狀態(tài)又分為靜態(tài)檢測和動態(tài)檢測:靜態(tài)檢測是指脫機(jī)對計(jì)算機(jī)上存儲的所有代碼進(jìn)行掃描;動態(tài)檢測則是指實(shí)時對到達(dá)計(jì)算機(jī)的所有數(shù)據(jù)進(jìn)行檢查掃描,并在程序運(yùn)行過程中對內(nèi)存中的代碼進(jìn)行掃描檢測。誤用檢測的實(shí)現(xiàn)流程如圖4所示。
Image:誤用檢測流程.jpg

誤用檢測的實(shí)現(xiàn)過程為:根據(jù)已知惡意代碼的特征關(guān)鍵字建立一個惡意代碼特征庫;對計(jì)算機(jī)程序代碼進(jìn)行掃描;與特征庫中的已知惡意代碼關(guān)鍵字進(jìn)行匹配比較,從而判斷被掃描程序是否感染惡意代碼。

誤用檢測技術(shù)目前被廣泛應(yīng)用于反病毒軟件中。早期的惡意代碼主要是計(jì)算機(jī)病毒,其主要感染計(jì)算機(jī)文件,并在感染文件后留有該病毒的特征代碼。通過掃描程序文件并與已知、特征值相匹配即可快速準(zhǔn)確地判斷是否感染病毒,并采取對應(yīng)的措施清除該病毒。隨著壓縮和加密技術(shù)的廣泛采用,在進(jìn)行掃描和特征值匹配前,必須對壓縮和加密文件先進(jìn)行解壓和解密,然后再進(jìn)行掃描。而壓縮和加密方法多種多樣,這就大大增加了查毒處理的難度,有時甚至根本不能檢測。同時,基于特征字的檢測方法對變形病毒也顯得力不從心。

三、權(quán)限控制技術(shù)

惡意代碼要實(shí)現(xiàn)入侵、傳播和破壞等必須具備足夠權(quán)限。首先,惡意代碼只有被運(yùn)行才能實(shí)現(xiàn)其惡意目的,所以惡意代碼進(jìn)入系統(tǒng)后必須具有運(yùn)行權(quán)限。其次,被運(yùn)行的惡意代碼如果要修改、破壞其他文件,則他必須具有對該文件的寫權(quán)限,否則會被系統(tǒng)禁止。另外,如果惡意代碼要竊取其他文件信息,他也必須具有對該文件的讀權(quán)限。

權(quán)限控制技術(shù)通過適當(dāng)?shù)目刂朴?jì)算機(jī)系統(tǒng)中程序的權(quán)限,使其僅僅具有完成正常任務(wù)的最小權(quán)限,即使該程序中包含惡意代碼,該惡意代碼也不能或者不能完全實(shí)現(xiàn)其惡意目的。通過權(quán)限控制技術(shù)來防御惡意代碼的技術(shù)主要有以下兩種。

1.沙箱技術(shù)

沙箱技術(shù)是指系統(tǒng)根據(jù)每個應(yīng)用程序可以訪問的資源,以及系統(tǒng)授權(quán)給該應(yīng)用程序的權(quán)限建立一個屬于該應(yīng)用程序的“沙箱”,限制惡意代碼的運(yùn)行。每個應(yīng)用程序以及操作系統(tǒng)和驅(qū)動程序都運(yùn)行在自己受保護(hù)的“沙箱”之中,不能影響其他程序的運(yùn)行,也不能影響操作系統(tǒng)的正常運(yùn)行。

目前,沙箱技術(shù)實(shí)現(xiàn)的最典型實(shí)例就是由加州大學(xué)Berkeley實(shí)驗(yàn)室開發(fā)的—個基于Solaris操作系統(tǒng)的沙箱系統(tǒng)。該系統(tǒng)首先為每個直用程序建立一個配置文件,配置文件中規(guī)定了該應(yīng)用程序可以訪問的資源和系統(tǒng)賦予的權(quán)限。當(dāng)應(yīng)用程序運(yùn)行時,通過調(diào)用系統(tǒng)底層函數(shù)解釋執(zhí)行,系統(tǒng)自動判斷應(yīng)用程序調(diào)用的底層函數(shù)是否符合系統(tǒng)的安全要求,并決定是否執(zhí)行。

此外,Windows XP也提供了一種軟件限制策略,這種限制策略也是一種沙箱技術(shù)。他只允許受信任的程序運(yùn)行,拒絕不受信任的惡意代碼執(zhí)行,即他允許用戶設(shè)定未授權(quán)應(yīng)用程序限制運(yùn)行或禁止運(yùn)行,只有用戶明確授權(quán)后,該應(yīng)用程序才可以運(yùn)行,這在一定程度上防止通過電子郵件或網(wǎng)上傳播的惡意代碼的攻擊。

2.安全操作系統(tǒng)

惡意代碼要實(shí)現(xiàn)成功入侵的重要一環(huán),就是他必須使操作系統(tǒng)為他分配系統(tǒng)資源。如果能夠合理控制程序?qū)ο到y(tǒng)的操作權(quán)限,則程序?qū)ο到y(tǒng)可能造成的破壞將被限制。安全操作系統(tǒng)具有一套強(qiáng)制訪問控制機(jī)制,他首先將計(jì)算機(jī)系統(tǒng)劃分為3個空間:系統(tǒng)管理空間、用戶空間和保護(hù)空間。其次再將進(jìn)入系統(tǒng)的用戶劃分為不具有特權(quán)的普通用戶和系統(tǒng)管理員兩類。則系統(tǒng)用戶對系統(tǒng)空間的訪問必須遵循以下原則:

(1)系統(tǒng)管理空間不能被普通用戶讀寫。用戶空間包含用戶的應(yīng)用程序和數(shù)據(jù),可以被用戶讀寫。

(2)保護(hù)空間的程序和數(shù)據(jù)不能被用戶空間的進(jìn)程修改,但可以被用戶空間的進(jìn)程讀取。

(3)一般通用的命令和應(yīng)用程序放在保護(hù)空間內(nèi),供用戶使用。由于普通用戶對保護(hù)空間的數(shù)據(jù)只能讀不能寫,從而限制了惡意代碼的傳播。

(4)在用戶空間內(nèi),不同用戶的安全級別不同,惡意代碼只能感染同級別的用戶的程序和數(shù)據(jù),限制了惡意代碼的傳播范圍。

四、完整性技術(shù)

惡意代碼感染、破壞其他目標(biāo)系統(tǒng)的過程,也是破壞這些目標(biāo)完整性的過程。完整性技術(shù)就是通過保證系統(tǒng)資源,特別是系統(tǒng)中重要資源的完整性不受破壞,來阻止惡意代碼對系統(tǒng)資源的感染和破壞。

校驗(yàn)和法是完整性控制技術(shù)對信息資源實(shí)現(xiàn)完整性保護(hù)的一種應(yīng)用,他主要通過Hash值和循環(huán)冗余碼來實(shí)現(xiàn),即首先將未被惡意代碼感染的系統(tǒng)生成檢測數(shù)據(jù),然后周期性地使用校驗(yàn)和法檢測文件的改變情況,只要文件內(nèi)部有一個比特發(fā)生了變化,校驗(yàn)和值就會改變。運(yùn)用校驗(yàn)和法檢查惡意代碼有3種方法:

(1)在惡意代碼檢測軟件中設(shè)置校驗(yàn)和法。對檢測的對象文件計(jì)算其正常狀態(tài)的校驗(yàn)和并將其寫入被查文件中或檢測工具中,而后進(jìn)行比較。

(2)在應(yīng)用程序中嵌入校驗(yàn)和法。將文件正常狀態(tài)的校驗(yàn)和寫入文件本身中,每當(dāng)應(yīng)用程序啟動時,比較現(xiàn)行校驗(yàn)和與原始校驗(yàn)和,實(shí)現(xiàn)應(yīng)用程序的自我檢測功能。

(3)將校驗(yàn)和程序常駐內(nèi)存。每當(dāng)應(yīng)用程序開始運(yùn)行時,自動比較檢查應(yīng)用程序內(nèi)部或別的文件中預(yù)留保存的校驗(yàn)和。

校驗(yàn)和法能夠檢測未知惡意代碼對目標(biāo)文件的修改,但存在兩個缺點(diǎn):①校驗(yàn)和法實(shí)際上不能檢測目標(biāo)文件是否被惡意代碼感染,它只是查找文件的變化,而且即使發(fā)現(xiàn)文件發(fā)生了變化,既無法將惡意代碼消除,又不能判斷所感染的惡意代碼類型;②校驗(yàn)和法常被惡意代碼通過多種手段欺騙,使之檢測失效,而誤判斷文件沒有發(fā)生改變。

在惡意代碼對抗與反對抗的發(fā)展過程中,還存在其他一些防御惡意代碼的技術(shù)和方法,比如常用的有網(wǎng)絡(luò)隔離技術(shù)和防火墻控制技術(shù),以及基于生物免疫的病毒防范技術(shù)、基于移動代理的惡意代碼檢測技術(shù)等。

評論  |   0條評論