APP下载

基于Oracle触发器的后门隐藏技术研究

2015-07-18

关键词:主动防御后门触发器

袁 梁

(无锡城市职业技术学院,江苏 无锡 214000)

基于Oracle触发器的后门隐藏技术研究

袁 梁

(无锡城市职业技术学院,江苏 无锡 214000)

基于云计算环境下网络攻击与防御技术的研究,对传统后门隐藏方式进行分析,提出了一种基于Oracle触发器的后门隐藏技术. 通过在当前Oracle账户下指定的触发器中插入Java存储过程调用语句块,当业务系统发生特定操作行为时,触发Java存储过程调用语句块的执行,达到通过Java存储过程调用外部程序的目的,从而启动潜伏于操作系统中的后门程序,而在业务系统正常的业务操作过程中,触发器执行自身应有功能,后门程序保持长期静态潜伏. 通过针对该后门隐藏技术实现原理的深入分析,找到了有效的防御措施.

Oracle云计算; 存储过程; Oracle触发器; 后门隐藏

0 引言

后门也叫做陷阱门,是访问程序、在线服务的一种秘密方式,通过安装后门,攻击者可保持一条秘密的通道,不必每次登录到目标主机都要重新实施攻击才能完成[1]..目前,传统后门方式,由于网络安全人员意识和水平的不断提高,主动防御软件、杀毒软件的广泛使用,以及各反病毒工具对其所使用伎俩了如指掌,及时查杀,其长期稳定隐藏难度越来越大.

但是随着云计算等新兴计算方式的推广,一些新型的后门正在蓄势待发,给网络安全带来了新的挑战[2].后门能带来的威胁主要源于其隐蔽性,假如后门在植入目标主机、潜伏或运行时被检测工具发现端口、进程等的异常变化,那么其将面临严重的后果.因而研究后门的隐藏技术,特别是云计算环境下的后门隐藏技术迫在眉睫. 作为信息安全工作者,通过对电信、金融等大型企业业务网络的安全评估,针对Oracle云计算技术在云计算市场中占有重要地位,以及Oracle数据库在Oracle云计算技术中处于基础地位的特点,提出了一种基于Oracle触发器的后门隐藏技术.为了找出防御此类后门的有效途径,就需要对其实现原理以及植入、隐藏、启动的细节问题进行深入分析,掌握其规律和特点,找到更好的应对措施.

1 Oracle云计算

云计算已经成为海量数据管理的重要方向,从成本和性能两方面考虑,越来越多的企业愿意把自己的数据中心转移到共有云或私有云[2].Oracle对云计算的阐述也从三个方面展开:SaaS、PaaS和IaaS.Oracle除了在SaaS领域会向最终用户提供云计算服务外,在PaaS和IaaS领域,主要是帮助云计算服务提供商构建相应的平台.在帮助企业构建PaaS和IaaS上,Oracle Database,Oracle Fusion MiddleWare等是Oracle公司针对用户推出的重点产品,比如,在亚马逊公司,甲骨文主要是通过Oracle Database,Oracle Fusion MiddleWare等自身产品的部署,帮助亚马逊构建起云计算服务的平台[3-4].

图1 Oracle云计算架构解决方案

从图1可以看出,Oracle Database处在Pass的最底层,在Oracle云计算架构解决方案中起着基础的支撑作用,是Oracle云计算的重要组成部分.因此从Oracle数据库自身特点出发,研究针对Oracle数据库的后门隐藏技术,对于开展Oracle云计算环境下的后门隐藏技术研究具有一定通用性和适用性.

基于上述思路,本文提出了一种基于Oracle触发器的后门隐藏技术,期望在云计算环境下网络攻击与防御技术研究中起到抛砖引玉的作用.

2 常见后门隐藏方式

目前比较流行的后门隐藏方式主要有端口复用、远程注入DLL、Hook技术、内核级Rootkit技术以及Bootkit技术等.

端口复用技术可以复用已有的系统端口,而不需要打开一个新的端口,简单地说就是把后门做成嗅探器的形式,当它嗅探到指定形式数据的时候,再进行连接[5]..端口复用的好处是无端口从而可以避免被netstat和端口扫描软件发现.但是其主要缺陷是常复用Http,Telnet,Ftp等常见网络服务,而且主要是使用setsockopt()函数设置socket的SO-REUSEADDR选项来实现端口重绑定,进程特征明显,很容易被主动防御软件和杀毒软件查杀.

远程注入DLL也是一种比较常用的后门隐藏技术,攻击者将后门的主要功能写成一个函数,封装进Dll文件中,然后通过远程线程技术将后门代码写入到正在运行的进程空间中去[6].这样做的好处是无进程隐蔽性很强,但是其主要缺陷是在远程线程注入过程中通常都需要调用OpenProcess()、VirtualAllocEx()、CreatRemoteThread()等特定函数来完成远程注入动作,行为特定很明显,一些采用行为查杀的主动防御软件都会及时上报该行为.

Hook技术主要在Windows系统中应用较广泛,Hook即钩子,Windows是基于消息机制的,攻击者通过挂钩关键API函数,从函数正常的消息作业中把要监听的消息钩出来,先进入自己的代码,之后再把消息放回到正常的作业中[7].Hook技术的优点在于进程的所有返回消息都是正常的,所以无论是任务管理器还是杀毒软件,想通过进程来检测此类后门都是徒劳的.然后Hook技术主要在Windows系统下较成熟,对于云计算等新兴计算应用中类Unix平台逐渐增多的趋势显得力不从心.

内核Rootkit工作在Ring0级,拥有对Cpu的最高操作权限,通过加载特殊的驱动,修改系统内核,可直接操作硬件设备,无内存访问限制,进而达到隐藏信息的目的.Rootkit在隐藏技术上更接近操作系统内核,完全隐藏后门程序文件、进程和注册表,不仅用户难以觉察其身影,还可以躲过某些安全软件的检测,致使检测难度增大[8-9]. Bootkit是指在操作系统启动之前或者在操作系统内核加载之前获取控制权,从而直接在内存空间感染操作系统内核来达到深度隐藏的技术,是一种高级的Rootkit技术.该技术的特点是在主机加电启动过程中尽可能早地执行,不仅不需要对操作系统做任何修改,而且具有非常强的生存和潜伏能力,用户经过系统还原和镜像恢复等措施后,后门程序仍然有效存在[10].但是无论是Rootkit还是Bootkit操作都很复杂,植入后门的难度较大,并且它们都工作在系统底层,甚至是硬件层,多数Rootkit和Bootkit技术都依赖于特定的操作系统版本和硬件型号,通用性较差.因此利用Rootkit和Bootkit后门技术的成功概率较低.

3 后门设计

图2 后门程序文件实现逻辑图

本文通过对常见后门隐藏方式的技术特点、适用性以及安全软件查杀特征的深入分析,从云计算环境下网络攻击与防御技术研究的角度出发,结合Oracle云计算技术自身特点,提出了一种基于Oracle触发器的后门隐藏技术.Oracle数据库是大型业务系统采用的数据库管理系统,触发器也常被用作实现数据库定义本身所不能满足的更为复杂的业务规则[11].该技术通过在当前Oracle账户下指定的触发器中插入Java存储过程调用语句块,当业务系统发生特定操作行为时,触发Java存储过程调用语句块的执行,达到通过Java存储过程调用外部后门程序的目的,而在正常操作过程中,触发器执行自身应有功能,后门程序保持静态潜伏,其主要设计与实现思路可用图2表示.

该后门隐藏技术在Windows和Linux两种操作系统下进行了测试,涉及多种操作系统版本和安全软件,Oracle数据库涉及9i、10g、11g多个版本,主要实验数据如表1(其中M、K、S、A分别表示McAfee、KasperSky、Symantec、Antivir安全软件,“√”表示测试成功,并绕过了安全软件的查杀及主动防御,“!”表示主动防御出安全警告)[12].

由于Oracle数据库的跨平台性,使得该后门程序具有很好的通用性,在Windows和类Unix操作都具有极强的存活能力;Oracle触发器事件触发的特点和对大多数主流安全软件的规避能力,增强了后门程序的隐蔽性,另外由于该后门程序从植入、隐蔽、启动都在系统应用层完成,降低了该后门程序的隐蔽难度,提高了植入的成功率[13].后续部分将重点论述后门的实现过程,论述过程主要以Redhat AS4.4+Oracle 10.2.0.3的实验过程为准.

表1 后门程序实验数据表

4 后门植入、隐藏与启动

4.1 当前账户赋权

当前账户是业务系统连接Oracle数据库所采用的账户,出于安全考虑,一般情况下该账户的权限较低,Oracle中用户权限分为系统权限、用户数据表权限两种,为了使Java存储过程有足够的权限调用后门程序,需要对当前Oracle账户赋于指定的系统权限.通过权限提升或者高权限用户给低权限用户授权的方式来实现,主要方法是利用dbms-java授权:

dbms-java.grant-permission(‘mduser’,’SYS:java.io.FilePermission’,’≪All FILE≫’,’read,write,

execute’)

通过对当前账户赋权,在该账户下创建的Java存储过程对系统的磁盘文件具备了可读、可写、可执行的能力.

4.2 java存储过程创建

在Oracle数据库中可以直接进行Java存储过程的编写,在该后门实现过程中,需要创建一个Java存储过程来调用系统磁盘上的后门程序.首先创建一个Java源,其主要的功能是运行外部程序或命令,其代码可简略表示如下:

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);}}

创建一个Java存储过程来调用该Java源:

Create or replace procedure execommand (cmd in varchar2)as language java name

‘execmd.RunThis(java.lang.String)’;

通过上述方法名为execommand的存储过程能够直接调用系统磁盘上的可执行程序或者执行系统命令.

4.3 触发器中植入存储过程调用

每一个触发器都必须作用在一个数据表上,触发器主要是通过事件进行触发而被执行,当对表进行诸如INSERT、DELETE、UPDATE这些操作时,Oracle会自动执行触发器所定义的语句块.通过在Oracle数据库中已存在的触发器中插入execommand存储过程,并增加限定条件,达到特定事件发生时,execommand存储过程被执行的目的.以下是在触发器中植入的execommand存储过程调用语句.

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:

上述语句表明在该触发器中,当VCV变量不为空,并且操作为DELETE时,执行bdump目录下的文件名为orcl-lgwr-4235.trc的后门程序,而其他对当前表的操作动作,触发器正常工作,不触发后门程序的运行.

4.4 后门程序文件隐藏

bdump目录存放的是数据库预警文件,在Oracle数据库运行过程中,后台进程trace和alert log文件会生成在该目录下.因此在该目录下写入后门程序,一般不会引起安全软件报警,同时将后门程序文件名dt.jar改成酷似trace文件的名字orcl-lgwr-4235.trc,并且随着系统的运行,该目录下文件众多,极易从视觉上欺骗系统管理员.另外JAR包文件和传统的可执行文件(EXE,DLL,SO等)有本质的区别,JAR包本质上是ZIP文件,多数安全软件在后台运行时,对压缩包格式的文件一般只检测文件格式,很少进行全文检查,极易躲过大多数安全软件的常规检查,实现后门程序的长期潜伏隐藏[14].

4.5 后门启动

Oracle数据库是为存储业务系统各类信息而存在的,业务系统的各种信息相关的操作行为最终都将反映到数据库的各个表项上,各个表上定义的触发器也将被执行.通过分析业务系统数据流、触发器、数据库表三者之间的关系,确定业务系统操作与触发器行为之间的一一对应关系,进而最终确定某种特殊的操作将触发特定行为,达到启动后门的目的.而业务系统根据其业务特点,有的是面向网络内部用户,有的直接是面向公众用户,无论是哪种方式,掌握普通用户信息都比直接控制系统管理员来得容易得多.

后门程序的父进程是Oracle,出于效率的考虑,多数安全软件在初始配置中都将会Oracle设为可信进程,从而能够躲过安全软件的查杀,另外由于后门程序是一个Jar包,主动防御的安全提示信息是启动一个Java程序,而Oracle本身也启动Java程序,对管理员具有很强的迷惑性.作者出于实际工作需要,将某业务系统在实验工作需要,将某业务系统在实验环境中进行了恢复,采取上述方式启动后门,躲过了McAfee、KasperSky、Symantec、Antivir的查杀,并且只有McAfee的主动防御进行了启动拦截.

5 结束语

在未来云计算技术盛行的时代,网络规模变得越来越庞大,网络结构变得越来越复杂,安全防护手段也将越来越多样化,网络攻击与防御单纯从网络层和操作系统层触发将变得越来越困难.只有分清网络提供的应用服务类型,掌握业务本身特点,从符合业务逻辑规律的角度出发,才能使防御网络攻击行为变得更隐,更持久,掌握了攻击行为的新手段和新特点,网络防御也将有更开阔的思路和方法.

[1]张新宇,卿斯汉,马恒太.特洛伊木马隐藏技术研究[J]. 通信学报,2004,25(7):153-159.

[2]冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,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].电子学报,2013,41(2):371-381.

[12]鲍诚毅,王轶骏.Oracle 1lg网页注入中数据返回攻防研究[J].信息安全与通信保密,2011(3):61-63.

[13]张凤荔.Oracle 11g数据库基础教程[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.

[责任编辑:蒋海龙]

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-),女,江苏无锡人,讲师,硕士,研究方向为数据库和网络安全. E-mail:zhangailing0403@163.com

TP393.08

:A

:1671-6876(2015)03-0238-05

猜你喜欢

主动防御后门触发器
主动防御撞击地球的“杀手”
主动防御飞行器的范数型微分对策制导律
工业物联网后门隐私的泄露感知研究
主从JK触发器逻辑功能分析
使用触发器,强化安全性
网络安全主动防御技术分析
这个班还不错
新帕萨特右后门玻璃升降功能失效
新途安1.4TSI车后门车窗玻璃不能正常升降
对触发器逻辑功能转换的分析