浅谈木马防护技术及应用.docx
- 文档编号:23668264
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:12
- 大小:76.08KB
浅谈木马防护技术及应用.docx
《浅谈木马防护技术及应用.docx》由会员分享,可在线阅读,更多相关《浅谈木马防护技术及应用.docx(12页珍藏版)》请在冰豆网上搜索。
浅谈木马防护技术及应用
1引言
据统计,全球共新增蠕虫、木马、病毒等恶意代码11851种,其中木马后门程序占总病毒数的86.2%,呈快速增长的趋势。
从统计数据看:
木马程序已经取代蠕虫成为危害互联网安全的主要因素,并越来越多地危害到人们的经济安全。
目前木马检测技术主要在木马植入阶段进行特征检测和木马激活后的木马行为检测。
特征检测处理的数据量大且需要庞大的特征码库进行支持。
行为检测利用系统调用进行检测,存在规则配置复杂,误报率高的缺陷。
基于上述检测方法的缺点,本文提出了基于限定令牌的木马防护技术,通过限制木马程序运行权限,阻止木马行为,使木马变为“死马”,达到木马防御的目的。
2Windows木马的攻击模式和实现技术分析
2.1Windows木马的攻击模式
Windows木马的攻击模式如图1所示。
木马受攻击者的意图的影响在行为表现上存在差异,但都遵循相同的攻击模式。
Windows木马的攻击模式分为6个部分:
(1)发现目标:
攻击者通过互联网或者其他信息获取方式搜索到攻击目标。
(2)信息收集:
收集攻击目标的系统信息,包括操作系统类型,网络服务,系统配置等。
(3)植入木马:
攻击者根据收集到的攻击目标信息,分析目标系统的弱点,制定相应的植入策略。
如网络、电子邮件,缓冲区溢出攻击等。
(4)隐藏木马:
木马成功植入后,攻击者为了实施攻击意图,需要采取技术或欺骗手段对木马进行隐藏。
包括:
攻击行为隐藏、通信信道隐藏。
(5)激活木马、实施攻击:
木马藏匿于目标系统中,在满足一定的激活条件下,实施其攻击行为如破坏主机系统,窃取涉密信息,远程访问。
(6)信息回传:
木马成功实施其攻击意图之后,将获取的信息通过回传信道传给攻击者或者提供目标系统的控制权给攻击者,同时清除木马攻击行为在目标系统上遗留的痕迹。
2.2Windows木马实现技术分析
从木马的攻击模式分析得到:
在windows平台下,木马实现技术包括:
植入技术、自启动技术、隐藏技术、信道技术、反跟踪技术。
2.2.1木马自启动技术
木马采取自启动技术来达到长期控制目标系统的目的。
在Windows系统中,早期木马多采用系统配置文件和注册表启动项启动,随着木马查杀技术的发展,出现了技术复杂度高的木马自启动技术:
(1)服务自启动:
木马将自启动模块注册为系统服务,利用操作系统自动加载该服务。
(2)插入系统服务自启动:
木马将自启动模块插入系统服务程序,跟随系统服务程序启动。
(3)利用插件自启动:
随着浏览器插件的流行,木马将自启动模块做成浏览器插件,伴随浏览器启动木马。
2.2.2木马隐藏技术
木马为了能够逃避安全检测,要设法进行自身行为和痕迹的隐藏。
隐藏目标包括:
文件、进程、注册表项,通信端口。
目前的隐藏技术有:
(1)线程插入技术:
Windows平台上提供了有权状态下进程调试技术,进程能够在运行期调试并修改其他进程。
木马将功能模块做成DLL文件形式,打开合法目标进程并将主功能模块作为线程体注入到目标进程中,删除DLL文件。
待系统退出时,重新释放出DLL文件,达到隐藏进程和文件的目的。
(2)内核钩子与内核数据结构篡改:
木马通过修改内核系统调用表替换系统内核函数地址或者修改内核数据结构,并将木马相关的信息从原内核函数的返回结果中过滤掉,从而实现对注册表项、文件、进程的隐藏。
(3)替换系统服务:
木马替换系统原有系统服务,替换服务在执行原有服务的基础上,执行木马的攻击行为,达到隐藏自身的功能。
例如:
修改系统SPI服务配置,系统调用SPI服务时,替换服务生效,在提供SIP服务的同时,触发攻击行为。
2.2.3信道技术
随着防火墙特别是主机防火墙应用的普及,木马为了提供稳定、可靠的信息回传信道,必须躲避防火墙的拦截。
技术手段主要有:
(1)线程插入:
原理在2.2.2中进行了分析,利用线程插入技术插入防火墙授权通过的进程来欺骗防火墙;
(2)利用系统服务程序:
利用系统服务程序的开放性特点,使用系统服务程序加载木马功能模块,借助授权服务程序通信,如Svehost服;
(3)协议栈技术:
当前主机防火墙多是在不同协议栈层的封包拦截技术实现,如TDI层、NDISIM层、NDISHOOK。
木马程序使用网络内核模式驱动实现收发数据包通信,穿透防火墙。
从而形成了与主机防火墙拦截的技术对抗。
以NDISHOOK为例(图2),天网、诺顿防火墙是基于NDISHOOK封包拦截技术实现。
木马加载木马NDISHOOK驱动后,木马程序通过I/O通道与木马驱动交换数据,木马驱动将数据封装为网络数据包发送,避开防火墙的拦截。
图2基于NDISHOOK驱动的木马信道
3木马检测研究
3.1木马检测的研究现状
木马作为危害计算机安全的恶意程序,对其的检测和防御研究,一直是信息安全领域研究的重要方向。
3.2基于网络数据包检测
通过监听木马服务端与控制段之间的网络通信,抓取进出主机的网络数据包,根据规则分析可疑通信流量,控制可疑通信端口的数据流。
但是处理的数据量比较大,且规则配置复杂。
随着木马信道技术的改进,基于网络数据包检测难以区分可疑数据与正常数据,造成该检测方法的漏报率较高。
3.3基于特征检测
基于特征检测通过检测木马程序在主机中驻留的特征进行检测,包括木马程序在主机中放置的木马文件,注册表信息等。
基于特征检测的优点在于即使木马程序发生改变,只要其特征不变,就能够很好的检测到木马程序,误报率低。
缺点是要收集、提取大量的木马特征。
3.4基于木马行为检测
基于木马行为检测有称为基于系统调用的检测技术是一种异常检测的方法。
通过监视木马常用的系统服务函数和服务函数调用链对是否是木马做出评估。
基于木马行为检测在一定程度上可以检测和预防未知的缓冲区溢出攻击,但是它也存在缺点:
(1)误报率高,对木马的系统调用和合法的系统调用无法做出确切的划分;
(2)配置复杂,要提高检测准确率,依赖于系统调用访问控制表的构造。
构造系统调用访问控制表需要对系统服务和木马技术有较深的理解。
基于网络数据包检测和基于特征检测都是运用规则库进行检测,对已知木马检测能起到较好的效果。
木马多态与变种技术的运用,对这些检测方法发起有力挑战。
基于木马行为检测由于是拦截木马的系统调用进行检测,而这些系统调用被合法程序大量使用,访问控制表策略过严将影响系统的可用性。
从第2章木马实现技术分析,得到这样的结论:
木马充分利用了操作系统开放性,防御系统难以有效识别。
同时,在平等权限条件下,木马与防御系统形成技术上的对抗。
反之,如果降低木马在主机上的运行权限,使之在弱权限下运行,限制木马的行为,使之得不到必要的生存条件,不失为一种好的防御方案。
4木马对抗Windows系统安全机制分析
4.1令牌与权限
Windows系统提供了一系列的安全保护机制,其中使用令牌对用户身份和权限标识。
令牌(Token)是操作系统为用户创建的标识用户身份的数据结构。
令牌包含用户SID,用户所属组的SID,用户具有的权限列表。
用户登录操作系统,通过了身份认证,操作系统即为该用户分配用户令牌。
在用户后续使用的过程中,启动的任何进程系统都为该进程分配进程令牌,该进程令牌继承用户令牌。
由该进程创建的子进程,继承该进程令牌。
操作系统使用进程令牌和资源访问控制列表控制进程对系统资源(文件、进程、注册表等)的访问。
Windows系统中Administrators用户和LocalSystem用户是两个特殊的用户帐号,它们具有完全资源访问权限。
Windows的用户令牌包含一系列的用户权限,它们将允许或者不允许某些影响整个计算系统而非某一对象的授权操作,如:
登录一台计算机、调试其它应用程序进程等,其中有些权限的能力是很强的,恶意滥用将对系统安全产生严重的影响。
表1Windows系统权限列表
4.2Windows服务
服务程序是一类特殊程序,由应用服务程序、内核服务程序组成。
它运行的操作系统后台,为其他的应用程序提供服务,所有的服务程序由服务控制管理器来管理,且只能以Administrators和LocalSystem用户帐号启动,所以服务程序具有完全权限。
Windows系统提供了一系列的系统服务程序,如:
Schedule服务,在设定时间点调度程序启动,并继承服务特权。
同时,用户程序可以通过SCM将自身注册为用户服务程序执行。
5基于限定令牌的木马保护系统设计与实现
在发现木马实现技术极大程度上依赖于Windows的特权。
本文设计的系统基于削弱木马执行环境的权限,使之不能得到生存所需的特权,以达到防御木马的目的。
优点在于在不对称环境下防御木马,避免了与木马之间的资源与特权竞争,同时,破坏生存环境可以对未知木马进行有效的预防。
系统由进程环境控制模块、服务管理模块和异常诊断模块等组成。
系统结构图如图3所示。
图3系统设计框架结构图
5.1进程环境控制模块
进程环境控制模块包括两部分:
应用层程序和内核驱动程序,应用层程序负责调用CreateProcessAsUser函数以最小特权令牌启动进程,使进程在最小特权环境下使用系统资源。
内核驱动程序负责监控系统中的进程的创建,对非ProcessMon.exe启动的进程进行阻止。
5.1.1应用层程序
应用层程序ProcessMon.exe算法如下:
步骤1ProcessMon获取当前登录用户的用户令牌UserToken;
步骤2以当前用户令牌为基础,从其中去除强特权列表中的项目,建立最小特权令牌MiniPrivilegeToken;
步骤3打开内核驱动程序ProcessSys.Sys中建立的同步事件对象ProcEvent,使用waitForsingle0bject函数等待ProcEvent事件对象的消息;
步骤4如果接收到来自内核驱动的ProcEvent对象事件,调DeviceloControl函数通过I/O通道从内核驱动程序ProcessSys.Sys中取得ProcessSys.Sys拦截的创建中的进程的文件名;
步骤5从策略库中查找是否有该进程文件策略,如果有,则以策略中的进程权限创建令牌,并以此令牌调用CreateProcessAsUser函数创建进程。
否则,调CreateProcessAsUser函数以最小特权令牌MinPrivilegeToken来创建进程。
算法流程图如图4所示:
图4进程环境控制模块流程图
5.1.2内核驱动程序模块
内核驱动程序算法如下:
步骤1ProcessSys.Sys以内核模式驱动加载,连接系统服务函数ZwCreateSection。
拦截系统中的进程创建过程;
步骤2建立同步通知事件ProcEvent。
当有新进程创建而被拦截时,置同步事件ProcEvent来通知应用层程序(ProcessMon.exe)来取得当前要创建的进程文件名;
步骤3有新进程创建时,取得新进程的父进程。
如果新进程的父进程是ProcessMon,则表示新进程是ProcessMon以最小特权令牌创建的进程。
调用系统原服务wCreateSection完成进程的创建,否则表示新进程是由系统的创建的,是以用户令牌创建,即非最小特权进程令牌创建,则阻止该进程的创建。
取得该进程的进程文件名,同时置同步通知事件ProcEvent事件,通知应用层程序ProcessMon通过I/O通道取得被阻止创建的进程文件名。
算法流程图如图5所示:
图5进程环境控制模块流程图
5.2服务管理模块
缺省的状态下,Windows系统启动的某些功能服务可以被木马利用来提升木马的权限。
这样的服务主要有SecLogon服务和Schedule服务。
服务管理控制模块流程算法:
步骤1停止SecLogon,Schedule服务;
步骤2审核SvcHost为宿主程序的服务;
步骤3调用LockServiceDatabaseAPI函数锁定服务控制管理器SCM。
5.3异常诊断模块
在用户环境下控制所有的应用程序以最小特权令牌运行,构造出在操作系统上安全的工作环境,抵御木马的攻击,但是有一些正常的应用程序在设计的时候,没有考虑进程环境特权对其功能的影响或者一些正常的应用程序完成自己的功能需要高特权的进程环境。
为避免进程环境控制模块造成对这些应用程序的影响,当应用程序(含恶意程序)不能正常地运行时,用异常诊断模块对其发生的异常行为进行分析,发现造成应用程序异常的原因所在。
5.3.1程序异常的因素分析
在进程环境控制模块的控制下,造成程序异常的主要原因集中三个方面:
(1)用户环境的低权限造成应用程序特权访问失败;
(2)应用程序缺少对注册表的访问权限造成对访问失败;
(3)应用程序缺少对文件系统的访问权限造成访问失败。
5.3.2模块算法
异常诊断模块从造成程序运行异常的三个因素出发,异常诊断模块算法如下:
步骤1以Administrators权限运行异常诊断模块工具;
步骤2启动发生异常的进程;
步骤3提取系统的安全审计日志中的安全特权日志信息,检查是否包含异常程序运行造成的安全特权日志。
如果没有,则表示进程运行异常不是由于特权问题造成的,则转到注册表非法访问分析。
否则,表示进程运行异常是受特权问题的影响。
步骤4分析安全审计日志信息,发现造成进程异常的特权问题。
由用户干预,判断这个应用程序是否是正常的应用程序。
如果非正常应用程序,将生成异常程序的特权异常报告,存入日志库。
否则,作为正常的应用程序,根据安全设计日志,生成该应用程序的特权规则,存入策略库。
再次运行该进程是否异常,异常消失则退出,否则转到步骤2;步骤4提取注册表监控模块监控的注册表访问日志信息,检查是否包含异常程序运行造成的注册表访问失败日志。
如果没有,则表示进程运行异常不是由于注册表访问失败造成的,则转到文件访问失败分析否则,表示进程运行异常是发生了对注册表的访问失败。
步骤5分析注册表访问失败日志信息,发现造成进程异常的注册表项。
如果发生异常的应用程序是非正常应用程序,将生成该程序的注册表非法访问报告,存入日志库。
否则,作为正常的应用程序,根据注册表访问日志,生成该应用程序的授权注册表访问规则,存入策略库。
再次运行该进程是否异常,异常消失则退出,否则转步骤2;步骤5借助FileMon等文件访问监视工具,生成文件访问日志,检查是否包含异常程序运行造成的文件访问失败日志。
如果没有,则表示进程运行异常不是由于文件访问失败造成的,转步骤6。
否则,表示进程运行异常是发生了对文件的访问失败。
分析文件访问失败日志信息,发现造成进程异常的文件访问。
如果发生异常的应用程序是非正常应用程序,将生成该程序的文件非法访问报告,存入日志库。
否则,作为正常的应用程序,根据文件访问日志,生成该应用程序的授权文件访问规则,存入策略库。
再次运行该进程是否异常,异常消失则退出,否则转步骤2。
步骤6进程运行异常不是由特权问题、注册表非法访问、文件非法访问造成的,是不可识别的异常。
结论
从上述实验结果可以看出,基于限定令牌的木马防护系统根据变查杀为抑制的思想,通对主机工作环境的控制,破坏木马的工作环境,使木马不能正常运行来实施攻击行为而成为一匹“死马”,从而保证了主机信息的安全。
在本文的讨论中,以下两个方面有待在今后的工作中进一步改进和完善:
(1)本系统在木马启动时,对应用程序的工作环境进行控制,抑制了木马的攻击行为。
在对未知木马的防御上,能够起到很好的防御效果,但是对已知木马的检测上准确性低于基于特征码检测的木马防御软件。
因此加强与这些防御软件的协同,能够大大提高对木马检测的准确性。
(2)木马尸体的清除。
本系统控制了木马攻击环境,木马在主机环境上失去攻击能力,但目前的缺乏对木马尸体的清除功能,在今后的研究工作中,应加入此项功能。
参考文献:
[1]CERT/CC.2005年上半年网络安全工作报告[EB/OL].[2005—071.http:
//www.cert.org.
[2]尚明磊.基于关联分析的木马实时检测模型[DJ,2005—05.
[3]Mcclure,Secmbray,Kurtz.黑客大曝光[M].北京:
清华大学出版社,
200O一09.
[4]TobiasWeltner.Windows脚本编程核心技术精解[M].北京:
中国水
利水电出版社.2001—04.
[5]病毒和网络攻击中的多态变形技术原理分析及对策[EB/OL].[2003—12].http:
//www.xfocus.nefxcon.
[6]朱明,徐骞,刘春明.木马病毒分析及其检测方法研究[J].计算机工
程与应用,2003,39(28):
176—179.
[7]郭林.二层架构的特洛伊木马深度防御体系[DJ,2006—05.
[8]SVCHOST进程的原理剖析[EB/OL].[2004—101.http:
//www.enet.tom.
Cn/article/2()O4/1O28/A2OO41O28356938.shtm1.
[9]Windows2000的通用的SIDs[EB/OL]_[2003—101.http:
//www.
5dmail.net.
[10]HowardM,LeBlancD.WritingSecureCode[M].2nded.[s.1.]:
Mi—
crosoftPress,2000.
[11]陈向群,向勇.Windows操作系统原理第[M].2版.北京:
机械工业出
版社,2004—11.
[12]广外男生测试报~[EB/OL].[2003—04].http:
//www.1andun.org.
[13]灰鸽子2005病毒技术分析报~[EB/OL].[2005一O1].http:
//news3.
xinhuanet.Corn/it/2005一O1/]0/content244O033htm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 木马 防护 技术 应用