摘要:作為黑客常用的一種攻擊工具,木馬對計算機網(wǎng)絡安全構成嚴重威脅。本文介紹了木馬的定義、功能及其工作原理,重點分析了木馬文件,進程,通信隱藏技術,對防范木馬攻擊具有重要意義。
關鍵詞:木馬;隱藏技術;網(wǎng)絡安全
中圖分類號:TP309.5 文獻標識碼:A 文章編號:1007-9599 (2012) 10-0000-02
目前,木馬已經(jīng)成為常見的網(wǎng)絡攻擊技術之一,對網(wǎng)絡安全造成了嚴重的威脅。它具有攻擊范圍廣、隱蔽性強等特點。本文主要針對木馬的隱藏技術展開研究。
一、木馬定義和特征
木馬是指潛伏在電腦中,受到外部用戶控制以達到竊取本機信息或控制權為目的的程序。其全稱為特洛伊木馬,英文叫做“Trojan horse”。它是指利用一段特定的程序(木馬程序)來控制另一臺計算機。木馬通常有兩個可執(zhí)行程序:分別為客戶端和服務端,即控制端和被控制端。植入被種者電腦的是“服務器”部分,而所謂的“黑客”正是利用“控制器”進入運行了“服務器”的電腦。一旦運行了木馬程序的“服務器”以后,被種者的電腦就會有一個或幾個端口被打開,黑客就可以利用這些打開的端口進入電腦系統(tǒng),用戶的個人隱私就全無保障了。木馬的設計者采用多種手段隱藏木馬以防止木馬被發(fā)現(xiàn)。隨著病毒編寫技術的發(fā)展,木馬程序采用越來越狡猾的手段來隱蔽自己,使普通用戶很難發(fā)覺。
二、木馬的功能
木馬的主要功能有:
(一)竊取數(shù)據(jù):僅僅以竊取數(shù)據(jù)為目的,本身不破壞損傷計算機的文件和數(shù)值,也不妨礙系統(tǒng)的正常辦公。有很多木馬有鍵盤記錄功能,會記錄服務端每次敲擊鍵盤的動作,所以一旦有木馬入侵,數(shù)據(jù)將很容易被竊取。
(二)篡改文件:對系統(tǒng)的文件有選擇地進行篡改,對服務端上的文件有篩選的施行刪除,修改,運行等一些系列相關操作。
(三)使系統(tǒng)自毀。利用的方法有很多:比如改變報時的鐘頻率、使芯片熱解體而毀壞、使系統(tǒng)風癱等。
三、木馬的隱藏技術
(一)文件隱藏
木馬程序植入目標系統(tǒng)后,就會改變其文件表現(xiàn)形式加以隱蔽,從而欺騙用戶。隱藏保護木馬文件的方式主要有以下幾種:
1.捆綁隱藏
采用此隱蔽手段的木馬主要有兩種方式:插入到某程序中或者與某程序捆綁到一起,一旦程序運行木馬也就會被啟動,例如使用壓縮的木馬程序偽裝成jpeg等格式的圖片文件,木馬程序就有了隨時運行的可能?;蛘吲c常用程序捆綁到一起,一旦木馬被點擊就會加載運行,使用戶難以防范,例如提供給用戶捆綁了木馬程序的解壓軟件,一旦用戶運行該軟件此程序便被釋放并立即運行。
2.偽裝隱藏
首先利用自身多變性的外部特征偽裝成單獨的文件,選定好文件名,然后修改文件系統(tǒng)的相關程序,最后設置文件屬性為隱藏或者只讀。這樣,木馬就偽裝成了正常的文件或者非可執(zhí)行文件。
3.替換隱藏
木馬將自身的DLL替換為目標文件的同名DLL文件,備份原先的正常系統(tǒng)文件。經(jīng)過這樣的替換后,一般情況下,正常的系統(tǒng)文件,只有當具有木馬的控制端向被控制端發(fā)出指令后,隱藏的程序才開始運行。
(二)進程隱藏
進程是程序運行在操作系統(tǒng)中的表現(xiàn)行為。主要有以下三種方法:
1.注冊為系統(tǒng)服務
在WIN9X系列的操作系統(tǒng)中,在系統(tǒng)進程列表中看不到任何系統(tǒng)服務進程,因此只需要將指定進程注冊為系統(tǒng)服務就可以在系統(tǒng)進程列表中隱形此進程。
2.使用HOOK技術
我們可以利用Windows系統(tǒng)提供的掛鉤函數(shù),使得被掛鉤的進程在自己處理接收到的消息之前,先處理我們的消息處理函數(shù)。一般地,這個消息處理函數(shù)放在DLL中,讓目標進程加載,這就達到了注入代碼的目的。
所謂的HOOK技術是指通過特殊的編程手段截取Windows系統(tǒng)調(diào)用的API函數(shù),并將其丟掉或者替換。例如在用戶查看任務管理器時截取系統(tǒng)遍歷進程列表的函數(shù)并進行替換,隱藏木馬進程。
3.基于DLL的進程隱藏技術
DLL不會在進程列表中出現(xiàn),是因為它不能獨立運行,必須由進程加載并調(diào)用。一個以DLL形式的程序,通過某個已經(jīng)存在進程進行加載,就可實現(xiàn)程序的進程隱藏。主要有以下兩種方式:
在注冊表中插入DLL。在Windows NT/2000/XP/2003中,有一個注冊表鍵值HKEY_LOCAL_MACHINE\\Software\\Microsoft\\WindowsHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows\\AppInit_DLLs。當某個進程加載User32.dll時,這里面所有的DLL都將User32.dll利用LoadLibrary函數(shù)加載到該進程空間中。我們可以把自己的代碼放在一個DLL中,并加入該鍵值,這樣就可以注入到所有使用User32.dll的進程中了。
遠程線程注入。在Windows系統(tǒng)中,每個進程都有自己專門的地址空間,一個進程不能創(chuàng)建本來屬于另一個進程的內(nèi)存指針。遠程線程技術就是利用特殊的內(nèi)核編程手段打破這種限制,訪問另一個進程的地址空間,進而達到隱藏自身的目的。所謂遠程線性插入DLL技術是指通過在另一個進程中創(chuàng)建遠程線程的方法進入其內(nèi)存空間,然后加載啟動DLL程序。
文獻[3]提出的基于DLL加載三級跳和線程守護的隱藏技術,增強了木馬的隱蔽性與抗毀性。
(三)啟動隱藏
木馬的最大特點就是它一定要伴隨系統(tǒng)的啟動而啟動,否則就失去了意義。木馬啟動的方式有以下幾種:
1.注冊表啟動項:
利用windows平臺的特殊性,通過它的注冊表予以加載。一般通以下鍵值:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Runservices HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run
HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce
2.利用系統(tǒng)文件
可以利用的文件有Win.ini;system.ini;Autoexec.bat;Config.sys。當系統(tǒng)啟動的時候,這些文件的一些內(nèi)容隨著系統(tǒng)一起加載,從而可以被木馬利用。
3.利用文件關聯(lián)
修改Windows下程序的默認打開方式,在以某種后綴的文件打開時啟動木馬。例如正常情況下txt文件的打開方式為Notepad.exe文件,如果中了文件關聯(lián)類的木馬,打開一個txt文件時便啟動木馬程序。
4.利用服務加載
采取注冊為系統(tǒng)服務的手段,來達到啟動的目地。一般為自動啟動。在系統(tǒng)啟動時達到自啟動的目地。
(四)通信隱藏
主要包括流量、信道和端口的隱藏。
1.流量隱藏
木馬程序在不存在任何其他通信流量的情況下處于監(jiān)聽狀態(tài),等待其他進程通信。一旦出現(xiàn)其他通信流量,木馬程序也隨即啟動通信,實現(xiàn)通信流量的隱藏。
2.通道隱蔽
通信信道隱藏采用網(wǎng)絡隱蔽通道技術。木馬利用TCP/IP協(xié)議簇中的信息冗余建立網(wǎng)絡隱蔽通道,這樣是為了使木馬客戶端和服務器端的通信更隱蔽。利用ICMP協(xié)議時,由于ICMP報文不通過端口而由系統(tǒng)內(nèi)核或進程直接處理,這就給木馬擺脫端口創(chuàng)造了一個絕好機會,木馬將自己偽裝成一個Ping的進程,系統(tǒng)就會交給木馬進程響應的監(jiān)聽處理權,接著木馬就進行破壞活動。
2.端口隱藏
采用網(wǎng)絡隱蔽通道技術,一般選用安全策略都允許的端口通信,比如80端口,可輕易穿透防火墻和躲避入侵檢測系統(tǒng)的檢測。另外也有一些木馬采用端口復用技術,在收到正常的請求時仍然把它交與http服務器處理,只有在收到一些特殊約定的數(shù)據(jù)包后,才調(diào)用木馬。
經(jīng)過分析了防火墻的特性,木馬開發(fā)者發(fā)現(xiàn)有一種現(xiàn)象,即防火墻對于連入的鏈接會進行非常嚴格的過濾,但是疏于防范連出的鏈接。于是,就出現(xiàn)了反彈端口型木馬,它的服務端 (被控制端)使用主動端口,客戶端 (控制端)使用被動端口。木馬定時監(jiān)測控制端是否存在,如果發(fā)現(xiàn)控制端上線就立即彈出端口主動連結控制端打開的主動端口。為了具有隱蔽性,控制端的被動端口一般開在80,即使用戶使用掃描軟件檢查自己的端口,發(fā)現(xiàn)類似TCP UserIP:1026 ControllerIP:80ESTABLISHED的情況,稍微疏忽一點,就會以為是自己在瀏覽網(wǎng)頁。
(五)芯片隱藏
木馬隱藏技術發(fā)展至今,出現(xiàn)了一種隱藏在BIOS中的新型木馬。BIOS級別的木馬的實質(zhì)是利用Windows系統(tǒng)的INT13中斷,在系統(tǒng)執(zhí)行前調(diào)用刷寫在BIOS中的代碼,先于系統(tǒng)執(zhí)行,然后把執(zhí)行權交給Windows的loader。
四、總結
隨著互聯(lián)網(wǎng)的應用越來越多,新的木馬隱蔽技術將會不斷出現(xiàn),木馬的隱藏能力也會不斷提高。因此,本文系統(tǒng)的對木馬的隱蔽技術進行歸納分析,進一步把握木馬隱藏技術的發(fā)展方向,加深對木馬的認識,更好的防范、檢測木馬,以至開發(fā)出更多的反木馬工具。
參考文獻:
[1]張洪近.木馬隱藏技術初探[J].專業(yè)論壇,2011,32(4):89-91,96
[2]王海青.特洛伊木馬的隱藏技術淺析[J].甘肅廣播電視大學學報,2010,20(2):63-64
[3]許名,楊仝,鄭連清,張串絨.木馬隱藏技術與防范方法[J].計算機工程與設計,2011,32(2):489-492,496
[4]楊恩鎮(zhèn),向來生.特洛伊木馬方法技術探析[J].網(wǎng)絡安全,2010,(10):29-31
[5]韓宇,申永軍.特洛伊木馬隱藏技術分析[J].微計算機信息,2012,28(1):128-129
[作者簡介]
梁衡(1983-)男,漢,河南省鄢陵人,助教,研究方向:計算機科學與技術