袁 梁
(無錫城市職業(yè)技術(shù)學(xué)院,江蘇 無錫 214000)
基于Oracle觸發(fā)器的后門隱藏技術(shù)研究
袁 梁
(無錫城市職業(yè)技術(shù)學(xué)院,江蘇 無錫 214000)
基于云計(jì)算環(huán)境下網(wǎng)絡(luò)攻擊與防御技術(shù)的研究,對傳統(tǒng)后門隱藏方式進(jìn)行分析,提出了一種基于Oracle觸發(fā)器的后門隱藏技術(shù). 通過在當(dāng)前Oracle賬戶下指定的觸發(fā)器中插入Java存儲過程調(diào)用語句塊,當(dāng)業(yè)務(wù)系統(tǒng)發(fā)生特定操作行為時(shí),觸發(fā)Java存儲過程調(diào)用語句塊的執(zhí)行,達(dá)到通過Java存儲過程調(diào)用外部程序的目的,從而啟動(dòng)潛伏于操作系統(tǒng)中的后門程序,而在業(yè)務(wù)系統(tǒng)正常的業(yè)務(wù)操作過程中,觸發(fā)器執(zhí)行自身應(yīng)有功能,后門程序保持長期靜態(tài)潛伏. 通過針對該后門隱藏技術(shù)實(shí)現(xiàn)原理的深入分析,找到了有效的防御措施.
Oracle云計(jì)算; 存儲過程; Oracle觸發(fā)器; 后門隱藏
后門也叫做陷阱門,是訪問程序、在線服務(wù)的一種秘密方式,通過安裝后門,攻擊者可保持一條秘密的通道,不必每次登錄到目標(biāo)主機(jī)都要重新實(shí)施攻擊才能完成[1]..目前,傳統(tǒng)后門方式,由于網(wǎng)絡(luò)安全人員意識和水平的不斷提高,主動(dòng)防御軟件、殺毒軟件的廣泛使用,以及各反病毒工具對其所使用伎倆了如指掌,及時(shí)查殺,其長期穩(wěn)定隱藏難度越來越大.
但是隨著云計(jì)算等新興計(jì)算方式的推廣,一些新型的后門正在蓄勢待發(fā),給網(wǎng)絡(luò)安全帶來了新的挑戰(zhàn)[2].后門能帶來的威脅主要源于其隱蔽性,假如后門在植入目標(biāo)主機(jī)、潛伏或運(yùn)行時(shí)被檢測工具發(fā)現(xiàn)端口、進(jìn)程等的異常變化,那么其將面臨嚴(yán)重的后果.因而研究后門的隱藏技術(shù),特別是云計(jì)算環(huán)境下的后門隱藏技術(shù)迫在眉睫. 作為信息安全工作者,通過對電信、金融等大型企業(yè)業(yè)務(wù)網(wǎng)絡(luò)的安全評估,針對Oracle云計(jì)算技術(shù)在云計(jì)算市場中占有重要地位,以及Oracle數(shù)據(jù)庫在Oracle云計(jì)算技術(shù)中處于基礎(chǔ)地位的特點(diǎn),提出了一種基于Oracle觸發(fā)器的后門隱藏技術(shù).為了找出防御此類后門的有效途徑,就需要對其實(shí)現(xiàn)原理以及植入、隱藏、啟動(dòng)的細(xì)節(jié)問題進(jìn)行深入分析,掌握其規(guī)律和特點(diǎn),找到更好的應(yīng)對措施.
云計(jì)算已經(jīng)成為海量數(shù)據(jù)管理的重要方向,從成本和性能兩方面考慮,越來越多的企業(yè)愿意把自己的數(shù)據(jù)中心轉(zhuǎn)移到共有云或私有云[2].Oracle對云計(jì)算的闡述也從三個(gè)方面展開:SaaS、PaaS和IaaS.Oracle除了在SaaS領(lǐng)域會向最終用戶提供云計(jì)算服務(wù)外,在PaaS和IaaS領(lǐng)域,主要是幫助云計(jì)算服務(wù)提供商構(gòu)建相應(yīng)的平臺.在幫助企業(yè)構(gòu)建PaaS和IaaS上,Oracle Database,Oracle Fusion MiddleWare等是Oracle公司針對用戶推出的重點(diǎn)產(chǎn)品,比如,在亞馬遜公司,甲骨文主要是通過Oracle Database,Oracle Fusion MiddleWare等自身產(chǎn)品的部署,幫助亞馬遜構(gòu)建起云計(jì)算服務(wù)的平臺[3-4].
圖1 Oracle云計(jì)算架構(gòu)解決方案
從圖1可以看出,Oracle Database處在Pass的最底層,在Oracle云計(jì)算架構(gòu)解決方案中起著基礎(chǔ)的支撐作用,是Oracle云計(jì)算的重要組成部分.因此從Oracle數(shù)據(jù)庫自身特點(diǎn)出發(fā),研究針對Oracle數(shù)據(jù)庫的后門隱藏技術(shù),對于開展Oracle云計(jì)算環(huán)境下的后門隱藏技術(shù)研究具有一定通用性和適用性.
基于上述思路,本文提出了一種基于Oracle觸發(fā)器的后門隱藏技術(shù),期望在云計(jì)算環(huán)境下網(wǎng)絡(luò)攻擊與防御技術(shù)研究中起到拋磚引玉的作用.
目前比較流行的后門隱藏方式主要有端口復(fù)用、遠(yuǎn)程注入DLL、Hook技術(shù)、內(nèi)核級Rootkit技術(shù)以及Bootkit技術(shù)等.
端口復(fù)用技術(shù)可以復(fù)用已有的系統(tǒng)端口,而不需要打開一個(gè)新的端口,簡單地說就是把后門做成嗅探器的形式,當(dāng)它嗅探到指定形式數(shù)據(jù)的時(shí)候,再進(jìn)行連接[5]..端口復(fù)用的好處是無端口從而可以避免被netstat和端口掃描軟件發(fā)現(xiàn).但是其主要缺陷是常復(fù)用Http,Telnet,Ftp等常見網(wǎng)絡(luò)服務(wù),而且主要是使用setsockopt()函數(shù)設(shè)置socket的SO-REUSEADDR選項(xiàng)來實(shí)現(xiàn)端口重綁定,進(jìn)程特征明顯,很容易被主動(dòng)防御軟件和殺毒軟件查殺.
遠(yuǎn)程注入DLL也是一種比較常用的后門隱藏技術(shù),攻擊者將后門的主要功能寫成一個(gè)函數(shù),封裝進(jìn)Dll文件中,然后通過遠(yuǎn)程線程技術(shù)將后門代碼寫入到正在運(yùn)行的進(jìn)程空間中去[6].這樣做的好處是無進(jìn)程隱蔽性很強(qiáng),但是其主要缺陷是在遠(yuǎn)程線程注入過程中通常都需要調(diào)用OpenProcess()、VirtualAllocEx()、CreatRemoteThread()等特定函數(shù)來完成遠(yuǎn)程注入動(dòng)作,行為特定很明顯,一些采用行為查殺的主動(dòng)防御軟件都會及時(shí)上報(bào)該行為.
Hook技術(shù)主要在Windows系統(tǒng)中應(yīng)用較廣泛,Hook即鉤子,Windows是基于消息機(jī)制的,攻擊者通過掛鉤關(guān)鍵API函數(shù),從函數(shù)正常的消息作業(yè)中把要監(jiān)聽的消息鉤出來,先進(jìn)入自己的代碼,之后再把消息放回到正常的作業(yè)中[7].Hook技術(shù)的優(yōu)點(diǎn)在于進(jìn)程的所有返回消息都是正常的,所以無論是任務(wù)管理器還是殺毒軟件,想通過進(jìn)程來檢測此類后門都是徒勞的.然后Hook技術(shù)主要在Windows系統(tǒng)下較成熟,對于云計(jì)算等新興計(jì)算應(yīng)用中類Unix平臺逐漸增多的趨勢顯得力不從心.
內(nèi)核Rootkit工作在Ring0級,擁有對Cpu的最高操作權(quán)限,通過加載特殊的驅(qū)動(dòng),修改系統(tǒng)內(nèi)核,可直接操作硬件設(shè)備,無內(nèi)存訪問限制,進(jìn)而達(dá)到隱藏信息的目的.Rootkit在隱藏技術(shù)上更接近操作系統(tǒng)內(nèi)核,完全隱藏后門程序文件、進(jìn)程和注冊表,不僅用戶難以覺察其身影,還可以躲過某些安全軟件的檢測,致使檢測難度增大[8-9]. Bootkit是指在操作系統(tǒng)啟動(dòng)之前或者在操作系統(tǒng)內(nèi)核加載之前獲取控制權(quán),從而直接在內(nèi)存空間感染操作系統(tǒng)內(nèi)核來達(dá)到深度隱藏的技術(shù),是一種高級的Rootkit技術(shù).該技術(shù)的特點(diǎn)是在主機(jī)加電啟動(dòng)過程中盡可能早地執(zhí)行,不僅不需要對操作系統(tǒng)做任何修改,而且具有非常強(qiáng)的生存和潛伏能力,用戶經(jīng)過系統(tǒng)還原和鏡像恢復(fù)等措施后,后門程序仍然有效存在[10].但是無論是Rootkit還是Bootkit操作都很復(fù)雜,植入后門的難度較大,并且它們都工作在系統(tǒng)底層,甚至是硬件層,多數(shù)Rootkit和Bootkit技術(shù)都依賴于特定的操作系統(tǒng)版本和硬件型號,通用性較差.因此利用Rootkit和Bootkit后門技術(shù)的成功概率較低.
圖2 后門程序文件實(shí)現(xiàn)邏輯圖
本文通過對常見后門隱藏方式的技術(shù)特點(diǎn)、適用性以及安全軟件查殺特征的深入分析,從云計(jì)算環(huán)境下網(wǎng)絡(luò)攻擊與防御技術(shù)研究的角度出發(fā),結(jié)合Oracle云計(jì)算技術(shù)自身特點(diǎn),提出了一種基于Oracle觸發(fā)器的后門隱藏技術(shù).Oracle數(shù)據(jù)庫是大型業(yè)務(wù)系統(tǒng)采用的數(shù)據(jù)庫管理系統(tǒng),觸發(fā)器也常被用作實(shí)現(xiàn)數(shù)據(jù)庫定義本身所不能滿足的更為復(fù)雜的業(yè)務(wù)規(guī)則[11].該技術(shù)通過在當(dāng)前Oracle賬戶下指定的觸發(fā)器中插入Java存儲過程調(diào)用語句塊,當(dāng)業(yè)務(wù)系統(tǒng)發(fā)生特定操作行為時(shí),觸發(fā)Java存儲過程調(diào)用語句塊的執(zhí)行,達(dá)到通過Java存儲過程調(diào)用外部后門程序的目的,而在正常操作過程中,觸發(fā)器執(zhí)行自身應(yīng)有功能,后門程序保持靜態(tài)潛伏,其主要設(shè)計(jì)與實(shí)現(xiàn)思路可用圖2表示.
該后門隱藏技術(shù)在Windows和Linux兩種操作系統(tǒng)下進(jìn)行了測試,涉及多種操作系統(tǒng)版本和安全軟件,Oracle數(shù)據(jù)庫涉及9i、10g、11g多個(gè)版本,主要實(shí)驗(yàn)數(shù)據(jù)如表1(其中M、K、S、A分別表示McAfee、KasperSky、Symantec、Antivir安全軟件,“√”表示測試成功,并繞過了安全軟件的查殺及主動(dòng)防御,“!”表示主動(dòng)防御出安全警告)[12].
由于Oracle數(shù)據(jù)庫的跨平臺性,使得該后門程序具有很好的通用性,在Windows和類Unix操作都具有極強(qiáng)的存活能力;Oracle觸發(fā)器事件觸發(fā)的特點(diǎn)和對大多數(shù)主流安全軟件的規(guī)避能力,增強(qiáng)了后門程序的隱蔽性,另外由于該后門程序從植入、隱蔽、啟動(dòng)都在系統(tǒng)應(yīng)用層完成,降低了該后門程序的隱蔽難度,提高了植入的成功率[13].后續(xù)部分將重點(diǎn)論述后門的實(shí)現(xiàn)過程,論述過程主要以Redhat AS4.4+Oracle 10.2.0.3的實(shí)驗(yàn)過程為準(zhǔn).
表1 后門程序?qū)嶒?yàn)數(shù)據(jù)表
4.1 當(dāng)前賬戶賦權(quán)
當(dāng)前賬戶是業(yè)務(wù)系統(tǒng)連接Oracle數(shù)據(jù)庫所采用的賬戶,出于安全考慮,一般情況下該賬戶的權(quán)限較低,Oracle中用戶權(quán)限分為系統(tǒng)權(quán)限、用戶數(shù)據(jù)表權(quán)限兩種,為了使Java存儲過程有足夠的權(quán)限調(diào)用后門程序,需要對當(dāng)前Oracle賬戶賦于指定的系統(tǒng)權(quán)限.通過權(quán)限提升或者高權(quán)限用戶給低權(quán)限用戶授權(quán)的方式來實(shí)現(xiàn),主要方法是利用dbms-java授權(quán):
dbms-java.grant-permission(‘mduser’,’SYS:java.io.FilePermission’,’?All FILE?’,’read,write,
execute’)
通過對當(dāng)前賬戶賦權(quán),在該賬戶下創(chuàng)建的Java存儲過程對系統(tǒng)的磁盤文件具備了可讀、可寫、可執(zhí)行的能力.
4.2 java存儲過程創(chuàng)建
在Oracle數(shù)據(jù)庫中可以直接進(jìn)行Java存儲過程的編寫,在該后門實(shí)現(xiàn)過程中,需要?jiǎng)?chuàng)建一個(gè)Java存儲過程來調(diào)用系統(tǒng)磁盤上的后門程序.首先創(chuàng)建一個(gè)Java源,其主要的功能是運(yùn)行外部程序或命令,其代碼可簡略表示如下:
Creat or replace and compile java source name “execmd” as
Public class execmd{
Public static void RunThis(String args){
Runtime rt=Runtime.getRuntime();
Process p=RT.exec(args);}}
創(chuàng)建一個(gè)Java存儲過程來調(diào)用該Java源:
Create or replace procedure execommand (cmd in varchar2)as language java name
‘execmd.RunThis(java.lang.String)’;
通過上述方法名為execommand的存儲過程能夠直接調(diào)用系統(tǒng)磁盤上的可執(zhí)行程序或者執(zhí)行系統(tǒng)命令.
4.3 觸發(fā)器中植入存儲過程調(diào)用
每一個(gè)觸發(fā)器都必須作用在一個(gè)數(shù)據(jù)表上,觸發(fā)器主要是通過事件進(jìn)行觸發(fā)而被執(zhí)行,當(dāng)對表進(jìn)行諸如INSERT、DELETE、UPDATE這些操作時(shí),Oracle會自動(dòng)執(zhí)行觸發(fā)器所定義的語句塊.通過在Oracle數(shù)據(jù)庫中已存在的觸發(fā)器中插入execommand存儲過程,并增加限定條件,達(dá)到特定事件發(fā)生時(shí),execommand存儲過程被執(zhí)行的目的.以下是在觸發(fā)器中植入的execommand存儲過程調(diào)用語句.
IF(VCV IS NOT NULL AND V-OPERATION=’DELETE’)THEN
execommand(‘java-jar/u01/app/oracle10g/admin/orcl/bdump/orcl-lgwr-4235.trc’);
END IF:
上述語句表明在該觸發(fā)器中,當(dāng)VCV變量不為空,并且操作為DELETE時(shí),執(zhí)行bdump目錄下的文件名為orcl-lgwr-4235.trc的后門程序,而其他對當(dāng)前表的操作動(dòng)作,觸發(fā)器正常工作,不觸發(fā)后門程序的運(yùn)行.
4.4 后門程序文件隱藏
bdump目錄存放的是數(shù)據(jù)庫預(yù)警文件,在Oracle數(shù)據(jù)庫運(yùn)行過程中,后臺進(jìn)程trace和alert log文件會生成在該目錄下.因此在該目錄下寫入后門程序,一般不會引起安全軟件報(bào)警,同時(shí)將后門程序文件名dt.jar改成酷似trace文件的名字orcl-lgwr-4235.trc,并且隨著系統(tǒng)的運(yùn)行,該目錄下文件眾多,極易從視覺上欺騙系統(tǒng)管理員.另外JAR包文件和傳統(tǒng)的可執(zhí)行文件(EXE,DLL,SO等)有本質(zhì)的區(qū)別,JAR包本質(zhì)上是ZIP文件,多數(shù)安全軟件在后臺運(yùn)行時(shí),對壓縮包格式的文件一般只檢測文件格式,很少進(jìn)行全文檢查,極易躲過大多數(shù)安全軟件的常規(guī)檢查,實(shí)現(xiàn)后門程序的長期潛伏隱藏[14].
4.5 后門啟動(dòng)
Oracle數(shù)據(jù)庫是為存儲業(yè)務(wù)系統(tǒng)各類信息而存在的,業(yè)務(wù)系統(tǒng)的各種信息相關(guān)的操作行為最終都將反映到數(shù)據(jù)庫的各個(gè)表項(xiàng)上,各個(gè)表上定義的觸發(fā)器也將被執(zhí)行.通過分析業(yè)務(wù)系統(tǒng)數(shù)據(jù)流、觸發(fā)器、數(shù)據(jù)庫表三者之間的關(guān)系,確定業(yè)務(wù)系統(tǒng)操作與觸發(fā)器行為之間的一一對應(yīng)關(guān)系,進(jìn)而最終確定某種特殊的操作將觸發(fā)特定行為,達(dá)到啟動(dòng)后門的目的.而業(yè)務(wù)系統(tǒng)根據(jù)其業(yè)務(wù)特點(diǎn),有的是面向網(wǎng)絡(luò)內(nèi)部用戶,有的直接是面向公眾用戶,無論是哪種方式,掌握普通用戶信息都比直接控制系統(tǒng)管理員來得容易得多.
后門程序的父進(jìn)程是Oracle,出于效率的考慮,多數(shù)安全軟件在初始配置中都將會Oracle設(shè)為可信進(jìn)程,從而能夠躲過安全軟件的查殺,另外由于后門程序是一個(gè)Jar包,主動(dòng)防御的安全提示信息是啟動(dòng)一個(gè)Java程序,而Oracle本身也啟動(dòng)Java程序,對管理員具有很強(qiáng)的迷惑性.作者出于實(shí)際工作需要,將某業(yè)務(wù)系統(tǒng)在實(shí)驗(yàn)工作需要,將某業(yè)務(wù)系統(tǒng)在實(shí)驗(yàn)環(huán)境中進(jìn)行了恢復(fù),采取上述方式啟動(dòng)后門,躲過了McAfee、KasperSky、Symantec、Antivir的查殺,并且只有McAfee的主動(dòng)防御進(jìn)行了啟動(dòng)攔截.
在未來云計(jì)算技術(shù)盛行的時(shí)代,網(wǎng)絡(luò)規(guī)模變得越來越龐大,網(wǎng)絡(luò)結(jié)構(gòu)變得越來越復(fù)雜,安全防護(hù)手段也將越來越多樣化,網(wǎng)絡(luò)攻擊與防御單純從網(wǎng)絡(luò)層和操作系統(tǒng)層觸發(fā)將變得越來越困難.只有分清網(wǎng)絡(luò)提供的應(yīng)用服務(wù)類型,掌握業(yè)務(wù)本身特點(diǎn),從符合業(yè)務(wù)邏輯規(guī)律的角度出發(fā),才能使防御網(wǎng)絡(luò)攻擊行為變得更隱,更持久,掌握了攻擊行為的新手段和新特點(diǎn),網(wǎng)絡(luò)防御也將有更開闊的思路和方法.
[1]張新宇,卿斯?jié)h,馬恒太.特洛伊木馬隱藏技術(shù)研究[J]. 通信學(xué)報(bào),2004,25(7):153-159.
[2]馮登國,張敏,張妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71-83.
[3]Armbrust A,Fox A,Griffith R,et a1. A view of cloud computing[J]. Commun ACM,2010,53(4):50-58.
[4]Hao F,Lakshman T V,Mukherjee S,et a1. Secure cloud computing with a virtualized network infrastructure [J]. The 2nd USENIX conference Oil Hot Topics in Cloud Computing,Massachusetts,2011,35(1):1-7.
[5]Wu N Q,Qian Y M,Chen G Q. A Novel Approach to Trojan Horse Detection by Process Tracing:Networking Sensing and Control[J]. ICNSC’06. Proceedings of the 2006 IEEE international Conference,2006,50(5):721-726.
[6]Bulter J,Undercoffer J L. Hidden Process:the Implication for intrusion detection[J].Proceedings of IEEE International Workshop on Information Assurance,2003,42(6):116-121.
[7]Muna M. Taher Jawhar,Monica Mehrotra. System Design for Packet Sniffer[J]. Internaional Journal of Computer Science & Communication,2011,1(1):171-173.
[8]Reg Hoglund,James Butler. Rootkits:subvering the Window kernel[M]. New Jersey:Addison-Wesley,2006.
[9]Wampler Doug,Graham James H. A normality based method for detecting kernel rootkit[J]. ACM SIGOPS Operating System Review,2008,42(3):59-64.
[10]Stoned Bootkit[EB/OL]. http://www.stonedvienna.com/,2011-10-07.
[11]俞能海,郝卓,徐甲甲. 云安全研究進(jìn)展綜述[J].電子學(xué)報(bào),2013,41(2):371-381.
[12]鮑誠毅,王軼駿.Oracle 1lg網(wǎng)頁注入中數(shù)據(jù)返回攻防研究[J].信息安全與通信保密,2011(3):61-63.
[13]張鳳荔.Oracle 11g數(shù)據(jù)庫基礎(chǔ)教程[M]. 2版. 北京:人民郵電出社,2012.
[14]Hudic A,Islam S,Kieseberg P,et al. Data Confidentiality using fragmentation in cloud computing[J].Int J Communication Networks and Distributed Systems,2012,1(3):1-10.
[責(zé)任編輯:蔣海龍]
ResearchBackdoorHiddenTechnologyBasedonOracleTrigger
YUAN Liang
(Wuxi City College of Vocational Technology,Wuxi Jiangsu 214000,China)
Because of oracle cloud computing technology occupying an important seat in the cloud computing market and the feature of oracle database in the basic position of the oracle cloud computing infrastructure solutions,We put forward a backdoor hidden technology based on oracle trigger for new attack and defense technology research in cloud computing environments. in short,we insert java stored procedure call statement block in specified trigger under the current oracle account,when the certain operation is taking place in the information system,the java stored procedure call statement block is running because of the oracle trigger,and for the purpose of executing external program through the java stored procedure,so the backdoor program is running which is hiding in the operation system,otherwise when we do the normal operation in the information system,the trigger perform the original job,and the backdoor is taking long time static latent.
oracle cloud computing; java stored procedure; oracle trigger; backdoor
2015-02-22
袁梁(1981-),女,江蘇無錫人,講師,碩士,研究方向?yàn)閿?shù)據(jù)庫和網(wǎng)絡(luò)安全. E-mail:zhangailing0403@163.com
TP393.08
:A
:1671-6876(2015)03-0238-05