從流氓軟件說說DLL動(dòng)態(tài)插入技術(shù)與Rootkit技術(shù) 第一篇 從技術(shù)角度解析流氓軟件
作者:不詳 文章來源:華盟收集 點(diǎn)擊數(shù): 144 更新時(shí)間:2007-8-13 1:21:14
早期,流氓軟件在沒有被正式定性為惡意程序時(shí),流氓軟件使用的技術(shù)比較簡單,往往是修改主頁,使用戶只要一登陸瀏覽器,就自動(dòng)跳轉(zhuǎn)到流氓軟件提供的廣告網(wǎng)址,或者安裝到系統(tǒng)中后,私下收集用戶的信息發(fā)送出去。而后來,隨著利益的驅(qū)動(dòng)和流氓軟件正式作為惡意程序被反病毒廠商絞殺,流氓軟件采用的技術(shù)也越來越先進(jìn),如今已經(jīng)形成了與殺毒軟件對(duì)抗的態(tài)勢(shì),魔道之爭(zhēng)真正進(jìn)入白熱化。 了解了它們使用的技術(shù),會(huì)對(duì)它們有一個(gè)更加清晰的認(rèn)識(shí),以下便是流氓軟件使用的經(jīng)典技術(shù)。
秘密潛入-流氓軟件的隱藏技術(shù)
隱藏是流氓軟件的天性,也是病毒的一個(gè)特征,任何流氓軟件都希望在用戶的電腦中隱藏起來不被發(fā)現(xiàn),由于隱藏的目的,衍生出隱藏的技術(shù)。
首先是隱藏窗口。我們知道,在Windows操作系統(tǒng)下,所有的程序執(zhí)行時(shí)都是以窗口的形式出現(xiàn)的,每個(gè)窗口都有不同的屬性,流氓軟件的目的就是不想為人所知,因此它們?cè)谶\(yùn)行的過程會(huì)將自己的程序窗口的屬性設(shè)為“不可見”,這樣用戶就看不到程序的窗口了。
但是,我們知道,每個(gè)程序運(yùn)行時(shí)雖然用戶看到的是窗口,但是對(duì)于系統(tǒng)來說,其實(shí)是執(zhí)行了一個(gè)進(jìn)程,對(duì)于稍微專業(yè)的用戶來說,雖然窗口不能看見,但是程序產(chǎn)生的進(jìn)程卻是很容易通過系統(tǒng)的任務(wù)管理器看到,從而使流氓軟件暴露。因此便出現(xiàn)了隱藏進(jìn)程技術(shù)。
隱藏進(jìn)程其實(shí)是調(diào)用了微軟的一個(gè)未公開函數(shù),將流氓軟件本身注冊(cè)為服務(wù),這樣系統(tǒng)的任務(wù)管理器就無法顯示這類程序的進(jìn)程了,從而達(dá)到了隱藏自己的目的。
對(duì)于一些細(xì)心的用戶來說,電腦出現(xiàn)了新的文件會(huì)引起他們的懷疑,因此流氓軟件作者又采用了隱藏文件技術(shù)。它們?cè)诎惭b時(shí)會(huì)將自身拷貝到系統(tǒng)目錄,然后將文件的屬性設(shè)置為隱藏,這樣,用戶如果采用的是默認(rèn)系統(tǒng)設(shè)置,則就無法看到他們。
但是,這些都是初級(jí)的隱藏技術(shù),對(duì)電腦熟悉的用戶,只要利用系統(tǒng)提供的工具就可以找到這些流氓軟件的蛛絲馬跡,或者安裝一個(gè)防火墻軟件,只要有程序訪問網(wǎng)絡(luò),立刻就會(huì)報(bào)警,從而能夠暴露流氓軟件的行蹤。
我中有你-流氓軟件的線程插入技術(shù)
為了更好地隱藏自己,流氓軟件開始大量采用線程插入技術(shù)。
上面講到,一個(gè)程序進(jìn)入系統(tǒng)中,會(huì)首先產(chǎn)生文件,該文件運(yùn)行時(shí),會(huì)產(chǎn)生窗口,在內(nèi)存中產(chǎn)生進(jìn)程。進(jìn)程說白了就是一個(gè)被激活了的程序文件。而進(jìn)程又會(huì)產(chǎn)生許多線程。
線程是Windows系統(tǒng)為程序提供的并行處理機(jī)制,它允許一個(gè)程序在同一時(shí)間建立不同的線程,完成不同的操作。另外,由于Windows操作系統(tǒng)為了提高軟件的復(fù)用性,減少重復(fù)開發(fā)的開銷,采用了動(dòng)態(tài)鏈接庫機(jī)制,即將一些公用的程序放在DLL文件中,程序不用包括這些代碼,只要在運(yùn)行時(shí)對(duì)這些DLL文件直接進(jìn)行調(diào)用就可以完成各種功能,因此每一個(gè)可執(zhí)行程序除了自身的程序體外,還包括許多外部的模塊。如果我們用一些內(nèi)存查看工具的話,能看到每一個(gè)應(yīng)用程序都包含了大量的DLL動(dòng)態(tài)鏈接庫文件。
而流氓軟件正是利用了這一點(diǎn)。他們的可執(zhí)行程序并不是EXE形式的,而是DLL形式,這類文件一般是存在于系統(tǒng)中,由可執(zhí)行程序進(jìn)行調(diào)用。
而流氓則是將DLL文件載入內(nèi)存,然后通過“線程插入”的方式,插入到某個(gè)進(jìn)程的地址空間。一般地,如果流氓軟件想控制瀏覽器,則它們往往會(huì)將自己注入到瀏覽器(explorer.exe)的進(jìn)程空間,只要瀏覽器運(yùn)行,就會(huì)自動(dòng)調(diào)用該流氓軟件。
由于瀏覽器程序本身會(huì)調(diào)用大量的DLL文件,因此即使用戶用第三方進(jìn)程查看工具,也分辨不清哪個(gè)DLL是流氓軟件。面且,采用線程注入技術(shù)的流氓軟件由于已經(jīng)并入了正常程序的內(nèi)存空間,即使是防火墻程序也不會(huì)攔截,從而可以在用戶電腦自由出入。
銷聲匿跡-流氓軟件的RootKit技術(shù)
線程插入對(duì)于普通用戶來說,或者對(duì)于用戶的手工清除來說,是很難處理的, 但是這些招數(shù)對(duì)于殺毒軟件來說,是非常簡單的,為了能夠躲避殺毒軟件的追殺,流氓軟件的研制者又引入了RootKit技術(shù)。
本來RootKit是LINUX的概念,指能夠以透明的方式隱藏于系統(tǒng),并獲得LINUX系統(tǒng)最高權(quán)限的一組程序集。而后來被病毒制作者借鑒,病毒的RootKit技術(shù)指的是那些能夠繞過操作系統(tǒng)的API調(diào)用,直接利用更底層的調(diào)用,然后接管系統(tǒng)的高級(jí)API調(diào)用,當(dāng)有程序試圖查找它們時(shí),便返回假信息,從而得以隱藏自己的技術(shù)。由于目前的殺毒軟件都是直接調(diào)用系統(tǒng)API來進(jìn)行病毒掃描的,因此采用這種技術(shù)的病毒,都能夠輕松躲避殺毒軟件的追殺,因?yàn)槿绱?,所以目前的流氓軟件開始越來越多地采用這種方式來保護(hù)自己。
不過,殺毒軟件也開始繞過API調(diào)用,通過更加底層的應(yīng)用,來對(duì)抗這種技術(shù)。
借尸還魂-流氓軟件的碎片技術(shù)
流氓軟件之所以要流氓,那是因?yàn)榫薮蟮睦?,而為了巨大的利益,流氓就變得更流氓。目前流氓軟件大多?shù)還會(huì)采用一項(xiàng)流行的技術(shù),那就是碎片技術(shù)。這種技術(shù)的思想其實(shí)很簡單,就是在進(jìn)入用戶系統(tǒng)時(shí),就產(chǎn)生多個(gè)或相同,或不同的碎片文件,這些文件除了分布在系統(tǒng)目錄、一些盤符的根目錄下,它們還會(huì)隱藏在其它軟件的目錄、臨時(shí)文件夾、甚至回收站里。
這些文件之間互相保護(hù),一旦一個(gè)文件被刪除了,另一些碎片就會(huì)重新將這個(gè)文件恢復(fù)。只要系統(tǒng)中存在有這樣的碎片文件,這些碎片文件只要有一個(gè)能夠激活,在用戶連接網(wǎng)絡(luò)的時(shí)候,就能夠連通網(wǎng)絡(luò)進(jìn)行升級(jí),從而重新還原成一個(gè)完整的流氓軟件體系,而且一旦升級(jí),這些新升級(jí)的流氓軟件還會(huì)將這些碎片文件刪除,然后產(chǎn)生新的碎片文件,從而能夠在一定程度上躲過了反病毒軟件的查殺。
有的流氓軟件多達(dá)數(shù)十個(gè)碎片文件,這對(duì)于手動(dòng)清除的用戶來說,幾乎是不可能完成的任務(wù),而即便是殺毒軟件也未必能夠?qū)?shù)十種碎片文件都一一識(shí)別,因此會(huì)產(chǎn)生殺不干凈的問題,即使是只有一個(gè)碎片,流氓軟件就有可能通過升級(jí)和下載借尸還魂,繼續(xù)為惡。
以上便是目前流氓軟件用得最多的技術(shù),當(dāng)然,隨著同各種反病毒軟件的對(duì)抗,它們會(huì)采用越來越多的底層技術(shù),有些流氓已經(jīng)開始采用寫固件的方式,通過BIOS來進(jìn)行傳播了。而隨著流氓軟件的發(fā)展,手工清除越來越不可能,人們將會(huì)越來越依賴于專業(yè)的流氓軟件清除工具。
流氓軟件的8大癥狀
1.強(qiáng)迫性安裝:不經(jīng)用戶許可自動(dòng)安裝,或者是不給出明顯提示,欺騙用戶安裝 。
2.無法卸載:不提供正常的卸載程序,或當(dāng)用戶選擇卸載時(shí),不真正卸載。
3.彈出廣告窗:在用戶上網(wǎng)時(shí),頻繁彈出廣告窗口,干擾用戶正常使用電腦
4.首頁修改:瀏覽器的默認(rèn)首頁,在沒有經(jīng)過用戶的同意擅自被修改。
5.修改瀏覽器:在菜單欄上添加不需要的按鈕,在瀏覽器的地址欄中添非法內(nèi)容,自動(dòng)添加菜單。
6.資源占用:CPU資源被大量占用,系統(tǒng)變得越來越慢。
7.使瀏覽器崩潰:流氓軟件由于太信賴于瀏覽器,因此,經(jīng)常會(huì)出現(xiàn)使瀏覽器莫名崩潰的情況。
8.干擾軟件:流氓軟件為了達(dá)到它的常久生存的目的,總是干擾一些如殺毒軟件的正常運(yùn)行,使這些軟件出現(xiàn)莫名其妙的錯(cuò)誤。
-- | | - 帖子
- 187
- 積分
- 440
- 貢獻(xiàn)值
- 5
- 表現(xiàn)值
- 377
- 飄香幣
- 3759
- 狀態(tài)
- 當(dāng)前離線
|