木馬檢測工具的實現(xiàn)畢業(yè)設(shè)計論文_第1頁
木馬檢測工具的實現(xiàn)畢業(yè)設(shè)計論文_第2頁
木馬檢測工具的實現(xiàn)畢業(yè)設(shè)計論文_第3頁
木馬檢測工具的實現(xiàn)畢業(yè)設(shè)計論文_第4頁
木馬檢測工具的實現(xiàn)畢業(yè)設(shè)計論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計計( 論論 文文) 木馬檢測工具的實現(xiàn)木馬檢測工具的實現(xiàn) 論文作者姓名:論文作者姓名: 申請學位專業(yè):申請學位專業(yè): 申請學位類別:申請學位類別: 指指導(dǎo)導(dǎo)教教師師姓姓名名(職職稱稱) : 論文提交日期:論文提交日期: 木馬檢測工具的實現(xiàn)木馬檢測工具的實現(xiàn) 摘摘 要要 近年來, “特洛伊木馬”(以下簡稱木馬)數(shù)量迅速增加,在各類非法程序中 已經(jīng)占到了極大的比重,由木馬所造成的破壞和損失也越來越嚴重,因此,反 木馬的研究己成為網(wǎng)絡(luò)安全領(lǐng)域的一個熱點和重點?;谔卣鞔a的靜態(tài)掃描技 術(shù)由于具有檢測潛伏的木馬、病毒等非法程序的能力,成為反木馬、反病毒等 研究領(lǐng)域的一個熱點,所以至今

2、特征碼技術(shù)得到了廣泛的應(yīng)用。特征代碼法, 是目前公認的檢測己知病毒的最簡單、開銷最小的方法。檢測工具在將已知木 馬以二進制讀取到的 4096 位字符串,通過 md5 取摘要作為特征碼,然后將這些 木馬獨有的特征搜集在一個木馬特征碼數(shù)據(jù)庫中。每當需要確定文件是否為木 馬的時候,檢測工具會以掃描的方式將數(shù)據(jù)文件與特征碼數(shù)據(jù)庫內(nèi)的現(xiàn)有特征 碼一一比對,如果雙方數(shù)據(jù)吻合,就可以判定該數(shù)據(jù)文件為木馬文件。本工具 檢測準確,可識別病毒的名稱,依據(jù)檢測結(jié)果,可做相應(yīng)的處理。 關(guān)鍵詞關(guān)鍵詞:網(wǎng)絡(luò)安全;木馬;md5;特征碼 the implementation of a trojan detection too

3、l abstract in recent years, the number of trojan is increasing very rapid and it now amounts to the most part among in all the illegal programs. trojans have brought much more serious damages and losses .as a result, the research of anti-trojan has already become the hotspot and the main emphasis in

4、 the area of network security. because of its ability of detecting unknown trojans, signature-based scanning has currently turned into hotspot in the anti-trojan research area. so the characteristic code technology is used widely. the characteristic code technology is the method that has the simples

5、t and lowest expense to check the trojans. the tool gets 4,096 bits from the known trojans file, and gets its message digest with md5 algorithm, then puts this value in an ini file as the database of trojan characteristic code. when a file is checked, the tool will scan the file and compare with the

6、 characteristic code database, if the message digest of this file is equal to a certain record, then we can determine the file is a trojan file. the accuracy of our tool is very high, and can identify the name of the trojan. according to the result, it can take corresponding measure to deal with the

7、 trojan file. key words:network security; trojan; md5; characteristic code 目目 錄錄 論文總頁數(shù):26 頁 1引 言.1 1.1木馬查殺工具設(shè)計背景.1 1.1.1木馬的概念及技術(shù)原理.1 1.1.2木馬的危害.3 1.2現(xiàn)在流行的查殺方式.3 1.3木馬檢測的實現(xiàn)方法.6 1.3.1pe 文件靜態(tài)信息的提取和特征碼的設(shè)置.6 1.3.2特征碼選擇與采集.8 1.3.3特征碼庫的設(shè)計.8 1.3.4信息摘要技術(shù)中的 md5 算法.9 1.3.5md5 算法的原理及應(yīng)用.10 1.3.6md5 作特征碼簡介.11 2需求

8、分析及方案設(shè)計.11 2.1本工具要完成的功能.11 2.2環(huán)境需求.11 2.3可行性研究.11 3木馬查殺功能的實現(xiàn).12 3.1工具模塊介紹.12 3.2木馬特征碼的讀取.12 3.3獲得文件 md5 特征碼.14 3.4文件屬性的更改.19 3.5實現(xiàn)驅(qū)動器的選擇.19 3.6md5 特征碼查殺.22 結(jié) 論.23 參考文獻.24 致 謝.25 聲 明.26 1 1 引引 言言 1.11.1木馬查殺工具設(shè)計背景木馬查殺工具設(shè)計背景 “特洛伊木馬”這個詞源于希臘古神話中的一場戰(zhàn)役,而今天計算機的應(yīng) 用領(lǐng)域中,木馬的存在給網(wǎng)絡(luò)安全帶來了不容忽視的問題。計算機網(wǎng)絡(luò)發(fā)展到 今天,已經(jīng)迅速延伸到

9、世界的每個角落,大到政府、公司,小到家庭、網(wǎng)吧等 場所,己經(jīng)處處離不開網(wǎng)絡(luò),隨時隨地都要接入 internet 與世界同步。信息產(chǎn)業(yè) 的發(fā)展的確使我們生活有了很大的改善,但是如何控制信息的安全性呢。有人 為了竊取商業(yè)機密,個人隱私,使用非法手段,利用操作系統(tǒng)的漏洞,為目標 計算機植入木馬,這就相當于在對方計算機中安排“內(nèi)應(yīng)” ,而對方使用者卻毫 無察覺,于是被植入木馬的計算機對于入侵者來說完全就是透明的了,毫無機 密可言。所以木馬的出現(xiàn)給網(wǎng)絡(luò)帶來了非常嚴重的負面影響。 在計算機安全學中,特洛伊木馬是指一種表面上有某種功能,而內(nèi)部隱藏 著完成特殊任務(wù)代碼的計算機程序。它利用自身具有的植入功能或依

10、附其它具 有傳播能力病毒等途徑,進駐目標機器,搜集各種敏感信息,并通過網(wǎng)絡(luò)發(fā)回 搜集到的敏感信息,接受植入者指令,完成各種操作,在一定程度上,木馬也 可以稱為是計算機病毒。但從木馬的本質(zhì)來講,它是一種遠程控制的黑客工具, 具有隱蔽性和非授權(quán)性。一般的木馬執(zhí)行文件都很小,如果把木馬捆綁到其它 正常文件上,用戶很難發(fā)現(xiàn)。并且,木馬一般不像計算機病毒那樣去破壞文件、 占用系統(tǒng)資源,而是在背后充當“間諜”的角色,因此,用戶即使中了木馬, 也很難察覺到它的存在。 從以往網(wǎng)絡(luò)安全事件的統(tǒng)計分析中可以發(fā)現(xiàn),有相當部分的網(wǎng)絡(luò)入侵是通 過木馬進行。利用木馬,攻擊者可以竊取密碼、控制系統(tǒng)操作、進行文件操作 等,造

11、成用戶資料的泄漏、破壞或整個系統(tǒng)崩潰。 隨著網(wǎng)絡(luò)化程度的提高,如何有效防范木馬己成為人們關(guān)注的問題。目前, 國內(nèi)外很多新版殺毒軟件都加入了木馬清除功能,市場上也出現(xiàn)了很多“木馬” 專殺工具,這些軟件主要根據(jù)木馬的動態(tài)執(zhí)行特性識別木馬,不能有效識別潛 伏的木馬。針對這一情況,本文提出兩種根據(jù)文件靜態(tài)信息檢測木馬的新方法, 能有效識別木馬文件,特別是潛伏著的沒有發(fā)作的木馬文件。 1.1.1 木馬的概念及技術(shù)原理木馬的概念及技術(shù)原理 木馬是一種網(wǎng)絡(luò)通信程序,它既不同于病毒,也不同于蠕蟲。病毒具有自 我復(fù)制和感染文件的特點,它能迅速地感染某臺計算機上的每個應(yīng)用程序文件, 但它在不同計算機之間的傳播通常

12、不是自發(fā)的,需要依靠各種人為因素,例如 人為發(fā)送電子郵件等等。蠕蟲則通常會通過網(wǎng)絡(luò)主動在計算機之間傳播,因此, 它的傳播速度一般比病毒快。而木馬既不會自我復(fù)制和感染文件,也不會主動 傳播。木馬可分為后門類木馬、網(wǎng)銀類木馬、網(wǎng)游類木馬等,其中后門類木馬 最為常見,網(wǎng)銀類和網(wǎng)游類木馬次之。 圖 1 后門類木馬客戶端與服務(wù)器的通信示意圖 不論哪類木馬,均包含服務(wù)器程序,平常所說的“中了木馬”,更確切地講 是“中了木馬服務(wù)器”。服務(wù)器程序具有較強的隱蔽性和偽裝性,它通常包含在 一些合法程序或數(shù)據(jù)當中,或者木馬服務(wù)器本身偽裝為一個合法程序,例如, 游戲軟件、工具軟件、電子郵件的附件、網(wǎng)頁等等,如果計算機

13、運行這些程序、 打開這些文件或訪問這些網(wǎng)頁,就可能同時在計算機操作系統(tǒng)的后臺啟動了木 馬服務(wù)器的安裝程序,但普通計算機用戶對此是無法覺察的。 后門類木馬的通信如圖 1 所示,除服務(wù)器外,還包含客戶端,兩者遵守一 定的通信協(xié)議。如果木馬服務(wù)器被安裝到某臺計算機并成功啟動,該計算機就 成為受控于木馬客戶端的目標機,木馬投放者或者第三方可在網(wǎng)絡(luò)的另一端, 通過木馬客戶端向其發(fā)送各種命令,而服務(wù)器則負責接收、解析和執(zhí)行命令, 并將執(zhí)行結(jié)果返回給客戶端。通過這些命令,可以實現(xiàn)對目標機的遠程文件管 理、遠程屏幕監(jiān)視、鍵盤和鼠標消息記錄、遠程關(guān)機和重啟、系統(tǒng)信息獲取、 硬盤數(shù)據(jù)共享以及遠程程序執(zhí)行等。網(wǎng)銀類

14、木馬通常沒有客戶端,它的主要目 的在于竊取目標機用戶的網(wǎng)絡(luò)銀行帳號和密碼,并將其發(fā)送到指定的電子郵箱。 而網(wǎng)游類木馬的目的則在于竊取網(wǎng)絡(luò)游戲的帳號、密碼和虛擬裝備等,并將其 發(fā)送到指定的電子郵箱,供郵件接收者牟利。 多數(shù)服務(wù)器會隨著目標機的啟動而自動運行,運行時,一般還會隱藏進程 和網(wǎng)絡(luò)連接,以躲避進程查看工具以及防火墻軟件。另外,目前某些木馬還具 有自我恢復(fù)功能,在目標機上存放多個服務(wù)器程序及相關(guān)文件的備份,如果只 是其中的某一個被刪除,那么,其它備份又會在一定條件下運行起來。 木馬一直是國內(nèi)外黑客和安全專家研究的熱點,它發(fā)展至今,從早期的 backorifice、netspy、冰河等到現(xiàn)在

15、的廣外女生、網(wǎng)絡(luò)神偷等木馬,功能越來 越強大,隱藏、自啟動等方面的技術(shù)手段也逐漸多樣化。 1.1.2 木馬的危害木馬的危害 木馬不僅破壞計算機及計算機網(wǎng)絡(luò),而且對其進行控制,并竊取或篡改重 要信息,不斷對網(wǎng)絡(luò)安全造成嚴重的破壞。另外,木馬還被許多不法分子用作 犯罪工具,造成巨大的經(jīng)濟損失,甚至擾亂社會治安。 綜觀 2006 年國內(nèi)的各類典型木馬, “傳奇男孩”、 “劍俠幽靈”及“蜜蜂大盜”等 網(wǎng)類木馬會盜取網(wǎng)絡(luò)游戲的帳號、密碼及游戲裝備,并將其發(fā)送到指定電子郵 箱,供木馬使用者出售牟利,嚴重侵犯了網(wǎng)絡(luò)游戲合法用戶的網(wǎng)絡(luò)虛擬財產(chǎn); “msn 小尾巴”、 “qq 小尾巴”等廣告類木馬會修改網(wǎng)頁定向

16、,導(dǎo)致被感染的計算 機無法訪問一些網(wǎng)站;“網(wǎng)銀大盜 a”等網(wǎng)銀類木馬采用竊取擊鍵記錄的方法, 盜用合法用戶網(wǎng)上銀行的帳號和密碼,給用戶帶來巨大的經(jīng)濟損失;而“灰鴿子” 、 “黑洞”等后門類木馬則可能使計算機系統(tǒng)完全受到非法控制。據(jù)國際著名風險 管理公司公布的調(diào)查結(jié)果顯示,在 2006 年,病毒、蠕蟲和特洛伊木馬等惡意程 序或混合型攻擊共給全球造成了 1890 億美元的經(jīng)濟損失。同時它預(yù)計,全球約 有 6 億部 windows 計算機,每部計算機因遭受攻擊而帶來的經(jīng)濟損失大約在 281 美元到 340 美元之間。 基于上述情況,反木馬應(yīng)是反病毒工作者的重點工作之一。目前,一般的 反病毒軟件都加入

17、了反木馬功能,甚至出現(xiàn)了專門的反木馬軟件。反木馬的研 究正日益受到關(guān)注。 1.21.2現(xiàn)在流行的查殺方式現(xiàn)在流行的查殺方式 1.通過網(wǎng)絡(luò)監(jiān)控發(fā)現(xiàn)網(wǎng)絡(luò)通信的異常并阻斷木馬的網(wǎng)絡(luò)通信,或者定義各 種規(guī)則,使木馬無法進行網(wǎng)絡(luò)通信。 防火墻、入侵檢測(intrusion detection)以及入侵保護(intrusion protection)是 這類技術(shù)的典型代表。它們對網(wǎng)絡(luò)通信的端口及網(wǎng)絡(luò)連接作了嚴格的限制和嚴 密的監(jiān)控,發(fā)現(xiàn)并攔截任何未經(jīng)允許的網(wǎng)絡(luò)連接或者通信端口的使用,并向用 戶報警。此外,入侵檢測還能探測網(wǎng)絡(luò)流量中潛在的入侵和攻擊。而入侵保護 在此基礎(chǔ)上又增加了主動阻斷功能,目前的入侵保護

18、系統(tǒng)產(chǎn)品在性能和數(shù)據(jù)包 的分析能力上比入侵檢測系統(tǒng)產(chǎn)品都有了質(zhì)的提升。 另外,防火墻聯(lián)動技術(shù)的發(fā)展將防火墻從眾多的安全問題中解脫出來,與 其它技術(shù)互補互益,架構(gòu)起立體的防護系統(tǒng)。例如,防火墻與入侵檢測系統(tǒng)聯(lián) 動,可以對網(wǎng)絡(luò)進行動靜結(jié)合的保護,對網(wǎng)絡(luò)行為進行細顆粒的檢查,并對網(wǎng) 絡(luò)內(nèi)外兩個部分都進行可靠管理。 2.特征碼技術(shù): 特征碼技術(shù)最初被應(yīng)用于反病毒,后亦用于反木馬,它被作為檢測這些非 法程序的最基本的技術(shù)沿用至今,也是目前各類反病毒軟件普遍采用的主要技 術(shù)。 3.實時監(jiān)控: “實時監(jiān)控”從文件、郵件、網(wǎng)頁等多個不同的角度對流入、流出系統(tǒng)的數(shù)據(jù) 進行過濾,檢測并處理其中可能含有的非法程序代

19、碼。與其它技術(shù)相比,它在 反病毒、反木馬等方面體現(xiàn)出實時性的特點,能較明顯地減少甚至完全避免由 非法程序帶來的危害。目前國內(nèi)外各類較為著名和常用的安全軟件(如 kaspersky,江民、金山毒霸、瑞星等)均具備了這項功能。 4.行為分析: 簡而言之,行為分析就是根據(jù)程序的動態(tài)行為特征(如在注冊表設(shè)置自啟動 項等)判斷其是否可疑。 目前,病毒、木馬等非法程序的種類迅速增加、變化不斷加快,帶來的危 害日益嚴重,而特征碼的提取又必然滯后于非法程序出現(xiàn),根據(jù)國際著名的信 息安全廠商熊貓軟件公司的技術(shù)文獻,從某種特征碼未知的非法程序出現(xiàn),到 研究出它的檢測和清除方法,通常會相隔 72 個小時甚至更多的時

20、間。因而需要 這樣一種技術(shù):能在特征碼提取之前,檢測特征碼未知的非法程序,以有效的 阻止其進行破壞,更大程度地降低損失。 行為分析正是具有可檢測特征碼未知的非法程序的特點,所以成為目前國 內(nèi)外反病毒、反木馬等領(lǐng)域研究的熱點。然而,行為分析在具體應(yīng)用時一般有 較高的誤報率,這也是它早在 20 世紀 90 年代早期就被提出,而至今仍未得到 廣泛應(yīng)用的主要原因。如何在不提高漏報率的同時,有效地降低行為分析在具 休實施時的誤報率,是承待解決的問題之一。最近幾年,很多國外研究者將新 的智能處理技術(shù)引入網(wǎng)絡(luò)攻擊和病毒的檢測,提出了許多檢測網(wǎng)絡(luò)攻擊和惡意 程序的新方法,如: 1、在 2001 年 nafip

21、s (north american fuzzy information processing society)國 際會議上,j.e. dickerson 等人提出基于 agent 方法的網(wǎng)絡(luò)入侵監(jiān)測系統(tǒng),該系 統(tǒng)通過在各個 agent 上對網(wǎng)絡(luò)活動進行分析,匯總后識別網(wǎng)絡(luò)攻擊行為,可有 效識別網(wǎng)絡(luò)入侵。后來基于 agent 的方法也被很多人用于惡意程序的分析上但 這種方法基本可歸類為前面提到的方法,對檢測潛伏木馬仍有一定局限性。 2、在可執(zhí)行程序中檢測惡意代碼的觀點是由 lsfm 研究組提出的。他們應(yīng) 用各種靜態(tài)和動態(tài)方法執(zhí)行模型檢驗,看分析的程序是否與違背預(yù)先定義的安 全策略。這種識別惡意代

22、碼方式存在的最大問題是需要分析者以策略的形式定 義惡意代碼的行為。在 ac sac02 會議上,m weber 等人對此方法進行了改進, 提出了 peat 系統(tǒng),該系統(tǒng)不需要定義或識別惡意代碼的行為,而是為用戶提 供了一些工具來分析整個程序的結(jié)構(gòu)特征。他們認為被插入可執(zhí)行程序的惡意 代碼,其結(jié)構(gòu)特征一般與宿主程序的結(jié)構(gòu)特征不一致,并據(jù)此判定文件中是否 插入了惡意代碼。但如果病毒編寫者對該應(yīng)用程序的結(jié)構(gòu)非常熟悉,模仿其結(jié) 構(gòu)特征,或用惡意代碼完全替換原程序代碼,那么該方法就很難檢測出惡意代 碼的存在。 3,eleazar eskin 等人在 2005 年初的報告中提出將數(shù)據(jù)挖掘技術(shù)用于木馬 文件

23、的檢測。與本設(shè)計提出方法不同之處是,他們先利用數(shù)據(jù)挖掘技術(shù)發(fā)現(xiàn)己 知類型木馬的特征,然后利用這些特征構(gòu)造分類器來檢測木馬文件。 與國外相比,國內(nèi)研究者的主要結(jié)合木馬的攻擊原理與特征研究木馬的檢 測方法,近年提出的檢測方法主要是對傳統(tǒng)檢測方法的改進,也對未知木馬的 檢測進行了探討: 1、西安交通大學的李順東等人運用字母集合到數(shù)字集合的映射理論、字符 串的可計算性理論與數(shù)論理論,設(shè)計的特洛伊木馬檢測算法;陳桂清等人提出 的通過監(jiān)視與跟蹤系統(tǒng)對外通信進程的操作檢測木馬的方法等等。這些方法對 識別新型的木馬,特別是 dll 型木馬,就需要進一步改進。 2、中國科學技術(shù)大學的朱明等人提出了基于多 age

24、nt 協(xié)作實現(xiàn)未知木馬自 動識別的方法。該方法利用駐留在局域網(wǎng)各機器監(jiān)測 agent 和網(wǎng)絡(luò)監(jiān)測 agent 所收集的證據(jù)和初步判斷,并由協(xié)作 agent 對這些證據(jù)和初步判斷進行融合印 證并做出最終結(jié)論。該方法將 agent 技術(shù)引入木馬防范領(lǐng)域,但仍是通過動態(tài) 執(zhí)行特性檢測木馬,對檢測潛伏木馬仍有一定局限性。 3、2004 年,武漢大學計算機學院的單氏虹將人工智能中的啟發(fā)式分析技 術(shù)引入木馬檢測,提出一種啟發(fā)式分析的木馬實時查殺模型。這種模型既可以 實現(xiàn)對已知木馬的查殺,又可以對未知木馬進行啟發(fā)式分析,并將分析數(shù)據(jù)提 交專家系統(tǒng),由專家系統(tǒng)對其判定。 本設(shè)計提出的通過分析文件的靜態(tài)信息,發(fā)

25、現(xiàn)木馬文件與正常文件的區(qū)別, 不需要上面提到的專家系統(tǒng)的支持。 傳統(tǒng)的木馬檢測與清除方法歸納起來可分為兩類:一種是利用木馬程序運 行時的特征碼檢測木馬,另一種通過監(jiān)視系統(tǒng)端口、網(wǎng)絡(luò)連接、注冊表狀態(tài)變 化等動態(tài)監(jiān)控的方法檢測木馬。這些方法共同特點是通過文件的動態(tài)執(zhí)行狀態(tài)、 特性信息來檢測木馬,對發(fā)現(xiàn)某些潛伏得十分隱蔽和新出現(xiàn)的未知木馬,沒有 較好方法。本設(shè)計提出基于文件自身的靜態(tài)信息來檢測木馬,是與傳統(tǒng)木馬檢 測方法的最大區(qū)別,為有效解決潛伏木馬的識別問題開辟了一條新思路。 1.31.3 木馬檢測的實現(xiàn)方法木馬檢測的實現(xiàn)方法 特征碼技術(shù)被作為反病毒技術(shù)中最基本的技術(shù)沿用至今,也是到目前為止 各類

26、反病毒軟件仍普遍采用的技術(shù)。 “特征碼”是一串信息,它能唯一標識某一非法程序(如病毒、木馬等)。研究 人員通過對非法程序樣本的分析,提取出“特征碼”寫入反病毒軟件的特征碼庫。 特征碼技術(shù)的基本原理就是在待測文件中查找特征碼,一旦查找到,就判定該 文件是非法程序或包含了非法程序,并作相應(yīng)的處理。 基于特征碼的靜態(tài)掃描便是對特征碼技術(shù)最直接的應(yīng)用,目前的各類反病 毒軟件均具備這項基本功能,它對用戶指定的某個或某幾個文件進行掃描,以 確定是否包含非法程序的特征碼。據(jù)有吻合之處,就可以判定該數(shù)據(jù)文件己遭 病毒感染。特征代碼法的實現(xiàn)步驟如下(1)采集己知病毒樣本。如果病毒既感染 com 文件,又感染 e

27、xe 文件,那么要對這種病毒要同時采集 com 型病毒樣 本和 exe 型病毒樣本。(2)在病毒樣本中,抽取病毒特征代碼。對于既感染 com 文件又感染 exe 文件的病毒樣本,要抽取兩種樣本共有的代碼。(3)將特 征代碼存入病毒庫。(4)檢測文件。打開被檢測文件,在文件中搜索,檢查文件 中是否含有病毒數(shù)據(jù)庫中的病毒特征代碼。如果發(fā)現(xiàn)病毒特征代碼,查詢病毒 特征代碼就可以知道所感染的病毒類型。在具體實現(xiàn)時,它最初是采用對待測 文件全部掃描的方式,在病毒等非法程序出現(xiàn)的早期,非法程序的種類不過數(shù) 百種,采用這種掃描方式還是比較快捷的,但在目前病毒、木馬、蠕蟲及其變 種的總數(shù)超過 60000 的情

28、況下,這種方式顯然是效率低下的。為此,采用了一 些用來提高特征碼掃描效率的技術(shù)。因為木馬文件一個很明顯的特征就是它的 文件名和大小,所以通過這兩個特征來作為靜態(tài)查殺的初步選擇。另外就是取 文件的 md5 值來進行查殺,先對掃描文件進行 md5 計算,然后根據(jù)得到的 md5 值與庫中特征碼進行比較,如果相同就進行處理。 1.3.11.3.1 pe 文件靜態(tài)信息的提取文件靜態(tài)信息的提取和特征碼的設(shè)置和特征碼的設(shè)置 pe 文件是 portable executable file(可移植的執(zhí)行文件)的簡稱,它是 window、環(huán)境自帶的可執(zhí)行文件的標準格式,它的一些特性繼承了 unix 的 coff

29、(common object file format)文件格式。 “portable executable”意味著此文件 格式是跨 win32 平臺的:即使 window、運行在非 intel 的 cpu 上,任何 win32 平臺下的 pe 裝載器都能識別和使用該文件格式。當然,移植到不同的 cpu 上 pe 執(zhí)行文件必然得有一些改變。所有 win32 執(zhí)行程序(除了 vxd 和 16 位的 dll 外)都使用 pe 文件格式,包括 nt 的內(nèi)核模式驅(qū)動程序。 pe 文件主體結(jié)構(gòu)如圖 2 所示。 pe 文件使用的是一個平面地址空間,所有代碼和數(shù)據(jù)都被合并在一起,組 成一個很大的結(jié)構(gòu)。文件的內(nèi)

30、容被分割為不同的區(qū)塊(section,又稱區(qū)段、節(jié)), 區(qū)塊中包含代碼或數(shù)據(jù),各個區(qū)塊按頁邊界對齊,區(qū)塊沒有大小限制,是一個 連續(xù)結(jié)構(gòu)。每個區(qū)塊都有它自己在內(nèi)存中的一套屬性,如該區(qū)塊是否包含代碼、 是否只讀或可讀/寫等。 每一個區(qū)塊都有不同的名字,這個名字用來表示區(qū)塊的功能。例如,一個 叫 rdata 的區(qū)塊表明它是一個只讀區(qū)塊。常見的區(qū)塊有 text,rdata,data,idata 和 rsrc 等。各種塊的具體含義詳見圖 3 塊名的具體含義。pe 文件最大的優(yōu)點是 在磁盤上的數(shù)據(jù)結(jié)構(gòu)與內(nèi)存中的結(jié)構(gòu)是一致的,如圖 4 物理結(jié)構(gòu)與內(nèi)存結(jié)構(gòu)對 照圖。 圖 2 pe 文件主體結(jié)構(gòu) 圖 3 塊名與

31、對應(yīng)的解釋 圖 4 物理結(jié)構(gòu)與內(nèi)存結(jié)構(gòu) 1.3.21.3.2 特征碼選擇與采集特征碼選擇與采集 特征碼采集的好壞直接影響到整個實驗的結(jié)果,如果所采集的樣本具有一 定的普遍性和代表性的話,那么理論值與實際值差別不會有很大出入,甚至直 接應(yīng)用到產(chǎn)品中去;如果木馬特征碼特性帶有局部性,不能代表一般性的話, 即使得出結(jié)論,也會使實驗結(jié)果與實際產(chǎn)生很大的偏離。所以采集特征碼的方 式在本工具中被列為了重點。本工具的根本目的是要找出木馬文件在文件靜態(tài) 特征上的特征,即文件在執(zhí)行以前所具有的特征差異,重點是木馬文件的靜態(tài) 特性。所以在選擇特征碼時,既要選擇有代表性的 pe 文件,又要滿足一定的 數(shù)量。 1.3

32、.31.3.3 特征碼庫的設(shè)計特征碼庫的設(shè)計 由于是簡單木馬的查殺,所以直接采用了 ini 文件手動設(shè)置特征碼庫,特征 碼庫 ini 文件如圖 5。 注:mnum的值代表收錄的木馬特征碼個數(shù); n代表的是具體第 n+1 個病毒; name 代表的是木馬文件的文件名; size 代表的是木馬文件的文件大小(以 byte 計算); md5 代表的是木馬文件的 md5 值; 圖 5 特征碼庫的具體格式 1.3.41.3.4 信息摘要技術(shù)中的信息摘要技術(shù)中的 md5 算法算法 md5 的全稱是 message-digest algorithm 5,md5 是一種不可逆的算法,即 對生成的密文求逆,對應(yīng)

33、著無窮個逆。在 90 年代初山 mit laboratory for computer science(it 計算機科學實驗室)和 rsa data security(rsa 數(shù)據(jù)安全公 司)的 ronald l.rivest 開發(fā)出來,經(jīng) md2, md3 和 md4 發(fā)展而來。它的作用 是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格 式(就是把一個任意長度的字節(jié)串變換成一定長的大整數(shù))。不管是 md2, md4 還是 md5,它們都需要獲得一個隨機長度的信息,產(chǎn)生一個 128 位的信 息摘要。雖然這些算法的結(jié)構(gòu)或多或少有些相似,但是 md2 的設(shè)計與 md4 和 md

34、5 完全不同,是因為 md2 是為 8 位機器做過設(shè)計優(yōu)化的,而 md4 和 md5 卻是而向 32 位的電腦。這三個算法的描述和 c 語言源代碼在 internet rfcs1321 中有詳細的描述,這是一份最具權(quán)威的文檔,由 ronald l.rivest 在 1992 年 8 月 向 ifft 提交。 van.oorscho 和 wiener 曾經(jīng)考慮過一個在散列中暴力搜尋沖突的函數(shù) (brute-force hash function),而目他們猜測一個被設(shè)計專門用來搜索 md5 沖突的 機器(這臺機器在 1994 年的制造成本大約是一百萬美元)可以平均每 24 天就找 到一個沖突,但

35、從 1991 年到 2001 年這 10 年間,竟沒有出現(xiàn)替代 md5 算法的 md6 或被叫做其他什么名字的新算法這一點,我們就可以看出這個瑕疵沒有太 多的影響 md5 的安全性。上而所有這些都不足以成為 md5 的在實際應(yīng)用中的 問題,并且由于 md5 算法的使用不需要支付任何版權(quán)費用的,所以在一般的情 況下(非絕密應(yīng)用領(lǐng)域,但即便是應(yīng)用在絕密領(lǐng)域內(nèi),md5 也不失為一種非常 優(yōu)秀的中間技術(shù)),md5 怎么都應(yīng)該算得上是非常安全的了。 1.3.51.3.5 md5 算法的原理及應(yīng)用算法的原理及應(yīng)用 message-digest 泛指字節(jié)串(message)的 hash 變換,就是把一個任意

36、長度的 字節(jié)串變換成一定長的大整數(shù)。請注意我使用了“字節(jié)串”而不是“字符串”這個 詞,是因為這種變換只與字節(jié)的值有關(guān),與字符集或編碼方式無關(guān)。md5 將任 意長度的“字節(jié)串”變換成一個 128bit 的大整數(shù),并且它是一個不可逆的字符串 變換算法,換句話說就是,即使看到源程序和算法描述,也無法將一個 md5 的 值變換回原始的字符串,從數(shù)學原理上說,是因為原始的字符串有無窮多個, 這有點像不存在反函數(shù)的數(shù)學函數(shù)。 md5 的典型應(yīng)用是對一段 message(字節(jié)串)產(chǎn)生 fingerprint(指紋),以防止 被“篡改”。舉個例子,將一段話寫在一個叫 readme.txt 文件中,并對這個 r

37、eadme.txt 產(chǎn)生一個 md5 的值并記錄在案,然后可以傳播這個文件給別人,別 人如果修改了文件中的任何內(nèi)容,對這個文件重新計算 md5 時就會發(fā)現(xiàn)。如果 再有一個第三方的認證機構(gòu),用 md5 還可以防止文件作者的“抵賴”,這就是所 謂的數(shù)字簽名應(yīng)用。md5 的應(yīng)用非常廣泛,如加密和解密技術(shù)等等。在 802.1x 認證中,eapmd5 認證采用 md5 算法,用戶密碼不以明文方式在網(wǎng)上傳輸, 從而保證了認證信息的安全。同時,它還被應(yīng)用于加密和解密技術(shù)上,譬如在 unix 系統(tǒng)中用戶的密碼就是使用 md5 算法(或其他類似的算法)加密后存儲 在文件系統(tǒng)中。當用戶登錄的時候,系統(tǒng)把用戶輸入的

38、密碼計算成 md5 值,然 后再去和保存在文件系統(tǒng)中的 md5 值進行比較,進而確定輸入的密碼是否正確。 通過這樣的步驟,系統(tǒng)在并不知道用戶明文密碼的情況下就可以確定用戶登錄 的合法性,也就是說,用戶的密碼是以 md5 值(或類似的其它算法)的方式保 存的,用戶 login 的時候,系統(tǒng)是把用戶輸入的密碼計算成 md5 值,然后再去 和系統(tǒng)中保存的 md5 值進行比較,而系統(tǒng)并不“知道”用戶的密碼是什么。這樣 不但可以避免普通用戶的密碼被系統(tǒng)管理員知道,而且還在一定程度上增加了 密碼被破解的難度。另外,大家比較熟悉的即時通信軟件 myim 也使用 md5 算法。利用 md5 算法來進行文件校驗

39、的方案,被大量應(yīng)用在軟件下載站點、論 壇數(shù)據(jù)庫和系統(tǒng)文件安全等方面。 1.3.61.3.6 md5 作特征碼簡介作特征碼簡介 本文描述了 md5 報文摘要算法,此算法將對輸入的任意長度的信息進行計 算,產(chǎn)生一個 128 位長度的“指紋”或“報文摘要”,假定兩個不同的文件產(chǎn)生相 同的報文摘要或由給定的報文摘要產(chǎn)生原始信息在計算上是行不通的。md5 算 法適合用在文件判定應(yīng)用中,在此應(yīng)用中,一個大的文件必須在類似 rsa 算法 的公用密鑰系統(tǒng)中用私人密鑰加密前被“壓縮”在一種安全模式下。md5 算法能 在 32 位機器上能以很快的速度運行。md5 的作用是對一段信息(message)生成 信息摘要

40、(message-digest),該摘要對該信息具有唯一性,可以作為特征碼。用 于驗證文件的有效性(是否有丟失或損壞的數(shù)據(jù)),對木馬文件的判定,在哈希 函數(shù)中計算散列值輸入一個任意長度的字節(jié)串,生成一個 128 位的整數(shù)。由于 算法的某些不可逆特征,在加密應(yīng)用上有較好的安全性。并且,md5 算法的使 用不需要支付任何版權(quán)費用。唯一性和不可逆性都不是絕對的,從理論上分析 是一種多對一的關(guān)系,但兩個不同的信息產(chǎn)生相同摘要的概率很小。不可逆是 指從輸出結(jié)果中反推輸入所需的運算量和計算時間太大,使用窮舉字典的方法 又需要太多的存儲空間。所以用 md5 來作為特征碼是很有高效性和穩(wěn)定性的。 2 2 需求

41、分析及方案設(shè)計需求分析及方案設(shè)計 2.12.1本工具要完成的功能本工具要完成的功能 本工具的運行是基于 windows 平臺的,選用所熟悉的開發(fā)工具及開發(fā)環(huán)境 進行本工具的設(shè)計與開發(fā)。 設(shè)計開發(fā)一個木馬檢測工具,本設(shè)計要求實現(xiàn)部分功能(1)能對特征 碼庫進行設(shè)置;(2)本工具能自動的讀取特征碼庫中的特征碼;(2)本工具 能檢測指定盤符的文件,并進行相應(yīng)的檢測。 (4)本工具能進行的檢測有普通 查殺和特征碼查殺。 2.22.2環(huán)境需求環(huán)境需求 操作系統(tǒng):windows xp sp2 開發(fā)平臺:visual c+ 6.0 2.32.3可行性研究可行性研究 本程序的開發(fā)利用 visual c+作為開

42、發(fā)工具。使用其作為程序的開發(fā)工具, 是因為它采用面向?qū)ο蟮木幊谭椒?把程序和數(shù)據(jù)封裝起來作為一個對象,并 為每個對象賦予相應(yīng)的屬性;事件驅(qū)動的編程機制-通過事件執(zhí)行對象的操作, 在設(shè)計應(yīng)用程序時,不必建立具有明顯的開始和結(jié)束的程序,而是編寫若干個 過程,通過這些過程執(zhí)行指定的操作;提供完善的指令控制語句,給開發(fā)高性 能的系統(tǒng)提供了保障,保證了代碼的模塊化要求,而且 visual c+本身就自帶 一些庫函數(shù)能夠提供一些功能,更利于本工具的開發(fā)。 3 3 木馬查殺功能的實現(xiàn)木馬查殺功能的實現(xiàn) 3.13.1工具模塊介紹工具模塊介紹 模塊一:驅(qū)動器的選擇,該模塊可以選擇機器上所以本地硬盤和移動盤 模塊

43、二:普通查殺的選擇,即快速查殺,通過比較文件名和文件大小來查 殺。 模塊三:特征碼查殺的選擇,即 md5 特征碼查殺,通過讀取特征庫里的數(shù) 據(jù)與文件特征碼進行比較來進行查殺。 模塊四:顯示查殺成功的文件。 模塊五:顯示正在查殺的文件夾。 圖 6 木馬查殺工具的功能模塊界面 3.23.2木馬特征碼的讀取木馬特征碼的讀取 由于本工具用的是 ini 文件作為特征庫文件,所以木馬查殺工具開始運行第 一件事就是對特征庫文件的讀取,獲得病毒的特征碼。讀取的方法是首先打開 和工具同一目錄下的 code.ini 文件,首先讀取得到總共的病毒數(shù),然后依次循 環(huán)讀出每個 section 下的屬性值,即對應(yīng)的文件的

44、 name 屬性和 size 屬性,也就 是文件名和文件大小。下是基于 ini 特征庫文件讀取的代碼: cstring cinifile:getfilestring(cstring section, cstring item, cstring value) readinifile();/打開文件 if(bfileexist = false | filecontainer.getsize() 0) return value;/文件打開出錯或文件為空,返回默認值 int i = 0; int ifilelines = filecontainer.getsize(); cstring strline

45、,str; while(iifilelines) strline = filecontainer.getat(i+); strline.trimleft(); if(strline.getat(0)=)/查找 section,第一個必須為 str=strline.left(strline.find();/去掉右邊 str=str.right(str.getlength()-str.find()-1);/去掉左邊 str.trimleft(); str.trimright(); if(section = str)/找到 section while(icount0 = pms-count1 = 0

46、; pms-abcd0 = 0 x67452301; pms-abcd1 = 0 xefcdab89; pms-abcd2 = 0 x98badcfe; pms-abcd3 = 0 x10325476; 添加字符竄到消息摘要中: md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes) const md5_byte_t *p = data; int left = nbytes; int offset = (pms-count0 3) if i pursue you i will not catch you, and if

47、i catch you-through your own slowness and clumsiness-i will not kill you, and if i kill you i will not eat you. nicholas had begun to back away, and at the last; words, realizing that they were a signal, he turned and began to run, splashing through the shallow water. ignacio ran after him, much hel

48、ped by his longer legs, his hair flying behind his dark young face, his square teeth-each white as a bone and as big as nicholass thumbnail-showing like spectators who lined the railings of his lips. dont run, nicholas, dr. island said with the voice of a wave. it only makes him angry that you run.

49、nicholas did not answer, but cut to his left, up the beach and among the trunks of the palms, sprinting all the way because he had no way of knowing ignacio was not right behind him, about to grab him by the neck. when he stopped it was in the thick jungle, among the boles of the hardwoods, where he

50、 leaned,.; out of breath, the thumping of his own heart the only . sound in an atmosphere silent and unwaked as earths long, prehuman day. for a time he listened for any sound ignacio might make searching for him; there was none. he drew a deep breath then and said, well, thats over, expecting dr. i

51、sland to answer from somewhere; there was only the green hush. the light was still bright and strong and nearly, shadowless, but some interior sense told him the day, was nearly over, and he noticed that such faint shades as he could see stretched long, horizontal distortions of their objects. he fe

52、lt no hunger, but he had fasted be- fore and knew on which side of hunger he stood; he was not as strong as he had been only a day past, and by this time next day he would probably be unable to outrun ignacio. he should, he now realized, have eaten the monkey he had killed; but his stomach revolted

53、at the thought of the raw flesh, and he did not know how he might build a fire, although ignacio seemed to have done so the night before. raw fish, even if he were able to catch a fish, would be as bad, or worse, than raw monkey; he remembered his effort to open a coconut-he had failed, but it was s

54、urely not impossible. his mind was hazy as to what a coconut might contain, but there had to be an edible core, because they were eaten in books. he decided to make a wide sweep through the jungle that would bring him back to the beach well away from ignacio; he had several times seen coconuts lying

55、 in the sand under the trees. he moved quietly, still a little afraid, trying to think of ways to open the coconut when he found it. he imagined himself standing before a large and raggedly faceted stone, holding the coconut in both hands. he raised it and smashed it down, but when it struck it was

56、no longer a coconut but mayas head; he heard her nose cartilage break with a distinct, rubbery snap. her eyes, as blue as the sky above madhya pradesh, the sparkling blue sky of the egg, looked up at him, but he could no longer look into them, they retreated from his own, and it came to him quite su

57、ddenly that lucifer, in falling, must have fallen up, into the fires and the coldness of space, never again to see the warm blues and browns and greens of earth: 1 was watching satan fall as lightning from heaven. he had heard that on tape somewhere, but he could not remember where. he had read that

58、 on earth lightning did not come down from the clouds, but leaped up from the planetary surface toward them, never to return. nicholas. he listened, but did not hear his name again. faintly water was babbling; had dr. island used that sound to speak to him? he walked toward it and found a little ril

59、l that threaded a way among the trees, and followed it. in a hundred steps it grew broader, slowed, and ended in a long blind pool under a dome of leaves. . diane was sitting on moss on the side opposite him; she looked up as she saw him, and smiled. hello, he said. hello, nicholas. i thought i hear

60、d you. i wasnt mistaken after all, was i? i didnt think i said anything. he tested the dark water with his foot and found that it was very cold. you gave a little gasp, i fancy. i heard it, and i said to myself, thats nicholas, and i called you. then i thought i might be wrong, or that it might be i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論