陳遠鵬,李永忠
(江蘇科技大學 江蘇 鎮(zhèn)江212003)
Linux平臺下Rootkit木馬分析與檢測
陳遠鵬,李永忠
(江蘇科技大學 江蘇 鎮(zhèn)江212003)
Rootkit作為當前危害最大的木馬程序,它能夠運行在內核層,從中破壞系統(tǒng)的內核結構,比傳統(tǒng)木馬程序的隱蔽性更強。針對Rootkit隱藏技術和檢測技術面臨的問題,采用了一種新的檢測方法,它能夠檢測隱藏在虛擬機中的內核級Rootkit。通過實驗驗證,結果表明該技術能夠有效監(jiān)測內核級Rootkit木馬。
Linux;Rootkit;木馬分析;內核模塊
隨著計算機應用技術的不斷發(fā)展,信息網絡安全正逐漸引起人們的重視。現(xiàn)今,各種不同的后臺程序被黑客開發(fā)出來,它們正嚴重威脅著網絡安全[1]。2013年,紐約時代報刊稱世界近一半的互聯(lián)網用戶都遭受過網絡入侵,據統(tǒng)計,中國因網絡入侵造成370億美元的損失[2]。另據IBM-X-Force安全研究小組針對2013年典型攻擊情況的分析調查顯示,近三分之二的網絡攻擊為未知原因的攻擊[3]。Rootkit木馬作為最著名的后門程序,使得黑客能夠通過不同的方式獲得root權限,最終實現(xiàn)對目標主機的長期控制。
目前,對于Rootkit檢測方面已經有一些在虛擬機中開發(fā)惡意木馬檢測與監(jiān)控技術的研究工作。這些工作主要是檢測虛擬機的隱藏進程和一些重要的文件,卻未對Rootkit本身進行檢測[4]。針對目前存在的這一類問題,文中提出了一種內核級Rootkit檢測技術,并在虛擬化平臺中實現(xiàn)了一個原型系統(tǒng),經過實驗驗證,該方法能夠有效檢測內核級的Rootkit木馬。
Linux操作系統(tǒng)由4個重要部分組成:內核、shell、文件系統(tǒng)和應用程序,它們一起形成了基本的操作系統(tǒng)結構[5]。
內核層屬于Linux系統(tǒng)的核心部分,它負責管理系統(tǒng)的進程、內存、設備驅動程序、文件和網絡系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性[6]。Shell層是系統(tǒng)的用戶界面,提供了用戶與內核進行交互操作的一種接口[7]。文件系統(tǒng)是文件存放在磁盤等存儲設備上的組織方法[8]。應用層主要是一些重要的應用程序包,其中包括文本編輯器VIM(Vi IMproved)、編程語言、辦公軟件、網絡工具等[9]。
目前Rootkit的檢測方法主要分為文件完整性檢測與隱藏性檢測,但這兩種方法都有一定的缺陷。文件檢測方法只能檢測到應用程序中的Rootkit,卻無法檢測內核級Rootkit;隱藏性檢測只注重于系統(tǒng)內核Rootkit檢測,對上層應用程序Rootkit不采取任何措施。結合這兩種檢測技術的優(yōu)點,文中提出一種在內核級與用戶級上保護系統(tǒng)和用戶數(shù)據的安全檢測技術,并在內核虛擬機KVM (Kernel Virtual Machine)平臺中實現(xiàn)了原型系統(tǒng)。
2.1 設計原理
根據Linux系統(tǒng)的類型,Rootkit木馬有不同的方法來對內核進行修改,最簡易的方法就是利用可加載內核模塊LKM[10](Linux Kernel Module)的功能。因此大多數(shù)的內核Rootkit通過利用LKM動態(tài)地更新內核來提供新功能,加入新的模塊擴展內核,同時對內核和其他使用內核的所有程序擁有了完全訪問權限[11]。例如,sys_read()系統(tǒng)調用函數(shù)劫持前與劫持后的函數(shù)執(zhí)行鏈如圖1所示。
從圖1可以看出,在LKM模塊開始初始化函數(shù)時,新的自定義函數(shù)指針hacked_read()將會存入原有系統(tǒng)調用所對應的表項,進行系統(tǒng)調用劫持,此時,hacked_read()將會代替sys_read(),并將新的結果返回給用戶態(tài)[12]。
2.2 系統(tǒng)設計
為了實現(xiàn)對虛擬機中的內核級Rootkit檢測,Rootkit檢測器需要從不同層面獲取虛擬機用戶態(tài)視圖、內核態(tài)視圖和VMM[13]層視圖進行交叉對比。視圖的獲取依賴于不同的安全模塊,檢測系統(tǒng)總體結構圖如圖2所示[14]。

圖1 系統(tǒng)調用表劫持前與劫持后的函數(shù)執(zhí)行鏈

圖2 Rootkit木馬檢測系統(tǒng)總體結構圖
圖2中,模塊檢測器的作用是監(jiān)控虛擬機內核模塊加載與卸載的動作;內核視圖重構器負責建立與維護真實模塊鏈表;內核視圖重構器根據虛擬機語義信息重構虛擬機內核視圖;調用器在KVM層發(fā)起自下而上的功能調用,與用戶態(tài)視圖獲取器相互協(xié)作;用戶態(tài)視圖獲取器根據lsmod產生用戶態(tài)視圖[15]。Rootkit檢測器通過獲取用戶態(tài)視圖和內核態(tài)視圖信息后,進行文件檢測和LKM模塊檢測,其結構圖如圖3所示。

圖3 Rootkit檢測器結構圖
文件檢測模塊通過監(jiān)視文件MD5值、常被攻擊的文件、文件權限、隱藏文件等來判斷Linux系統(tǒng)是否被入侵。LKM模塊檢測模塊通過將系統(tǒng)LKM模塊與Rootkit木馬特征庫進行對比,進行判斷是否存在可疑內核模塊。
3.1 文件檢測
文件檢測首先對Binary文件進行MD5校驗測試,檢測任何文件是否改動;檢測Rootkit經常攻擊的二進制和系統(tǒng)工具文件;檢測大多常用程序的文件權限屬性;檢測Rootkit隱藏性文件。文件檢測模塊通過執(zhí)行do_system_check()函數(shù),來檢測系統(tǒng)的入口函數(shù),部分核心代碼如下:

do_system_check () 函 數(shù) 依 次 調 用do_system_commands_checks (),do_Rootkit_checks(),do_local_host_checks()這些子函數(shù)來檢查系統(tǒng),流程圖如圖4所示。

圖4 文件檢測流程圖
3.2LKM模塊檢測
LKM模塊檢測主要對指定的模塊進行測試,do_system_check_initialisation()函數(shù)將獲取的當前系統(tǒng)LKM模塊與Rootkit特征庫中可疑LKM模塊比較,若發(fā)現(xiàn)可疑內核模塊,最后在結果輸出顯示,并在日志中進行記錄,部分代碼如下:

Rootkit木馬檢測系統(tǒng)實現(xiàn)如圖5所示。

圖5 Rootkit木馬檢測系統(tǒng)
功能測試項:1)文件檢測:md5校驗檢測;檢測易被攻擊文件;文件權限檢測;隱藏性文件檢測。2)LKM模塊檢測。
為了測試系統(tǒng)的功能,選取了當前幾個流行的內核級 Rootkit作為測試對象:SHV5,DDRK,SUTERUSU。這里以SHV5為例說明檢測結果,執(zhí)行過程如圖6和圖7所示。

圖6 文件檢測

圖7 LKM檢測
程序執(zhí)行到最后,可以發(fā)現(xiàn)測試用例SHV5,如圖8所示。

圖8 Rootkit檢測結果
針對當前基于虛擬機監(jiān)視器的內核級Rootkit檢測技術存在的不足,文中提出了一種檢測技術,檢測隱藏在虛擬機中的內核級Rootkit。實驗結果表明,系統(tǒng)的檢測效果良好,解決了以往檢測方式中檢測結果信息不足等問題,為后續(xù)研究中對Rootkit的處理提供了支持。但是,這種檢測技術太過依賴宿主機操作系統(tǒng)和虛擬機監(jiān)視器,如何在虛擬化環(huán)境中提高宿主機和虛擬機監(jiān)視器的安全,還需要在以后的工作中進一步研究。
[1]陳華亭,吳邦欲.基于LKM的Rootkit技術[J].計算機工程與科學,2004(2):88-90,96.
[2]Symantec Corporation.2013 Nortonreport[EB/OL]. [2014-12-10].http://www.yle.fi/tvuutiset/uutiset/ upics/liitetiedostot/norton_raportti.pdf.
[3]IBM Corporation.IBM X-Force 2013 annual trends and riskreport[EB/OL].[2014-12-10].http://www-03.ibm.com/security/xforce/.
[4]符蓉.Linux內核級Rootkit檢測方法的研究與應用[D].長沙:湖南大學,2009.
[5]唐偉杰.微內核進程間通信的優(yōu)化與實現(xiàn)[D].杭州:浙江工業(yè)大學,2009.
[6]陳寶君.基于ARM9的嵌入式系統(tǒng)設計及EPA設備實現(xiàn)[D].大連:大連理工大學,2006.
[7]許力.基于ARM9家庭心電監(jiān)護系統(tǒng)的設計和實現(xiàn)[D].武漢:武漢理工大學,2008.
[8]李潔瓊,馮丹.一種基于網絡磁盤陣列的高性能海量存儲系統(tǒng) [J].小型微型計算機系統(tǒng),2006(12):2326-2330.
[9]陳斌.Linux應用程序調試技術的研究[J].開封教育學院學報,2014(2):289,292.
[10]梁升榮.Windows Rootkit檢測機制的研究與實現(xiàn)[D].成都:電子科技大學,2009.
[11]羅糧,周熙.Rootkit在Linux下的工作原理及其檢測[J].計算機安全,2007(3):19-21.
[12]李善平,陳文智.邊干邊學:Linux內核指導[M].杭州:浙江大學出版社,2002:133-16.
[13]施江勇,王會梅,鮮明,等.硬件虛擬化rootkit檢測方法研究綜述[J].計算機應用研究,2014(1):1-5,12.
[14]Tomlinson A.Introduction to the TPM[M]//Smart Cards, Tokens,Security and Applications.New York:Spring US,2008:155-172.
[15]張磊,陳興蜀,任益,等.一種基于VMM的內核級Rootkit檢測技術[J].信息網絡安全,2015(4):56-61.
Analysis and detect of Kernel-level Rootkit in Linux platform
CHEN Yuan-peng,LI Yong-zhong
(Jiangsu University of Science and Technology,Zhenjiang 212003,China)
Rootkit,as the current most dangerous Trojans,it can run at the kernel level,interference system kernel,allowing attackers to achieve the goal,it is more powerful than the traditional hidden Trojan.As for its imperceptibility,a new detecting method is proposed in this article,can find kenellevel Rootkit in a virtual machine.And the method has been test that can detect kernel-level Rootkit efficiently.
Linux;Rootkit;trojan analysis;kernel module
TN301
:A
:1674-6236(2017)01-0039-04
2015-12-23稿件編號:201512230
陳遠鵬(1989—),男,江蘇南京人,碩士。研究方向:通信技術及應用工程。