APP下载

基于行为分析方法的主动防御系统设计

2019-03-20胡敬文王柏清杨文茵

关键词:主动防御注册表木马

胡敬文,王柏清,杨文茵,黄 营

(1.佛山开放大学社区教育处,广东佛山528000;2.佛山开放大学信息技术处,广东佛山528000;3.佛山科学技术学院电子信息工程学院,广东佛山528000)

目前反病毒软件大多数采用特征码扫描技术与人工分析方法相结合的方式,在查找病毒时一般都采用特征码扫描技术,而在杀病毒时多采用人工分析并编制解毒代码的方式,形成目前市面上的反病毒软件。病毒特征码扫描技术是一种对已知病毒进行分析、找出病毒特征码的反病毒技术[1]。这种特征码反病毒技术的主要优点是误报率低,检测较准确,但缺点是漏报率相对较高。如果有些病毒通过变形、加壳、加花、多态等技术可绕过特征码的扫描,而无法检测出这种变种病毒,这种反病毒技术对未知病毒或变种病毒无能为力,属于被动式病毒检测技术[2]。

因此,本文设计了一种以行为为核心的等级评分策略,将用户行为等级的权限作为主要判断依据,对进程、线程、窗口、文件和注册表等定义出敏感行为,并对这些行为按敏感程度分级进行权限控制,每个敏感行为能动态修改可信任的权限等级,是一套以行为为核心的自动监控、自动分析、自动诊断的主动防御型系统。

1 基于特征码扫描的主动防御技术

特征码扫描主要是提取病毒文件的特征,其技术核心思想就是从新发现病毒样本中,根据病毒特征,人工提取出该病毒的一次或多处二进制码,该二进制码就是该类病毒“身份”标识,即特征码。然后更新到云库中,便于用户升级。查杀的对象就是对比特征码,判断是否为病毒。特征码扫描技术主要优点是误报率低,检测准确[3]。市面上信息安全公司工作原理如图1所示。

由图1可以看出特征码扫描技术存在以下缺陷。

(1)防御系统库更新滞后,用户不停地在病毒威胁的环境之中。

(2)对于通过变形、加壳、加花等多态技术变种的病毒,可绕过特征码扫描。

(3)对于不断变种的新病毒,特征码库越来越庞大,而对特征码描述,不同的反病毒公司提取的病毒特征也不尽相同,使得特征码的统一标准存在较大的困难。

图1 特征码扫描技术工作原理

2 基于行为分析方法的策略判断技术

基于行为分析方法主要是制定一套规则集来定义非法程序,与此同时制定另一套规则集定义合法程序[4]。基于行为分析方法的主要思想是:如果当前运行的程序不符合合法程序所制定规则轮廓或者符合非法程序的规则轮廓,便可判定此运行的程序为非法程序。

与传统的基于特征码的静态扫描技术相比,行为分析方法不同点在于监控并限制应用程序运行过程中的动态行为[5]。

2.1 应用在反病毒中的行为分析方法

行为分析方法在反木马中的应用原理主要是:在应用程序运行过程中,检测其是否具有木马的行为特征,如果有木马的行为特征,则可初步判定此应用程序可能是木马。

针对病毒的特征分析,得到木马会触发的系统敏感行为有如下5种方法[6]。

(1)在注册表设置自启动项。

(2)拷贝或创建文件到系统目录。

(3)远程线程注射。

(4)在注册表里修改哪些关联。

(5)杀死其他进程。

本系统将行为归类为进程敏感行为、注册表敏感行为及文件敏感行为3类。

(1)进程敏感行为。进程敏感行为包括远程线程注与杀死其他进程。

(2)注册表敏感行为。注册表敏感行为通过两种方式实现,即:1)在注册表设置自启动项;2)在注册表里修改部分关联。

(3)文件敏感行为。拷贝或创建文件到系统目录。

反木马技术若采用行为分析方法,需掌握木马的行为特征。关于当前著名或流行的已知木马的研究较多,许多反木马的工作者均提出了较多已知木马的行为特征。

目前已对250个正常程序与250个流行木马病毒触发的敏感行为进行统计分析[7]。正常程序与恶意程序敏感行为总次数对比如图2所示。

从图表数据可以看出,木马病毒与正常程序对于敏感行为触发的次数具有明显的区别,用行为特征来标识病毒,具有可行性。

图2 正常程序与恶意程序敏感行为总次数对比

2.2 基于病毒多行为的判断策略

对于病毒木马,仅仅从单一的敏感行为作为判断标准,难以达到监控目的,而且误报率高。正常程序有与病毒相似的单一行为,特别对于潜伏性病毒,它的每个敏感行为的触发具有一定的时间差,因此判断更难[8]。

如何从正常程序中区别出病毒,进行病毒多行为的分析,病毒区别于正常程序,通常在用户不知情的情况下隐藏运行进程,从而达到特定目的。其特定目的包括:取得系统权限、反弹连接、开启后门服务、窃听数据、破坏系统、破坏文件等。所以通常一个木马在完成一系列目的时,会触发多种敏感行为,这个有别于正常进程。

大部分病毒会设置自启动项,从而达到开机就运行的目的,例如斯巴达木马。值得注意的是正常进程注册表编缉器也会设置自启动项。除此外,斯巴达木马还要完成端口绑定,才能把用户的帐号和密码等私人信息传送出去。

针对木马的综合行为,总结其行为规律,制订木马综合行为判断策略标准具有非常好的可行性。

3 基于行为分析方法的主动防御系统的设计

基于行为策略的主动防御系统主要包括5大模块,包括驱动层模块、行为判断模块、进程保护模块、注册表保护模块、文件保护模块。本系统的结构模块如图3所示。

图3 行为策略主动防御系统结构

3.1 驱动层模块

SSDT是系统服务描述符表(System Service Descriptor Table),是将系统应用层的指令传输给系统内核的通道,如图4所示。若要对常用的Windows函数及API函数进行截获(即采用HOOK技术),可通过修改SSDT表的函数地址完成,对敏感的系统动进行提取,作进一步的过滤、监控和禁止运行,避免了恶意代码的运行,通过这种方式实现主动防御功能。

图4 SSDT HOOK前后Windows NT操作系统内部结构原理

3.2 行为判断模块

行为判断模块包括评分机制和综合行为判断机制。本模块根据预先制定的行为策略判断当前进程是否为非法进程,判断的行为策略主要依据评分机制和综合行为判断机制。

(1)评分机制。根据每种敏感行为影响大小,设定一个恶意分数,然后监控中心,累积进程敏感分数,当进程的恶意分数大于或等于100时,启动报警。病毒木马类型的描述,根据恶意分数最高的行为作为基准。

(2)综合行为判断机制。为每个具有敏感行为的进程记录由3大监控模块传送来的信息,然后与订制的综合行为策略库匹配,每次的行为触发都会进行一次遍历匹配,当匹配成功时,就会报警。行为描述根据综合行为信息判断。

当评分机制和综合行为判断机制同时报警时,此时综合行为判断机制优先触发。两种机制工作原理如图5所示。

图5 综合行为判断机制原理

3.3 进程保护模块

在进程保护模块中监控的敏感行为有3个:远程线程注射、杀死其他进程及绑定端口。监控模块根据进程调用API判定其行为。

3.3.1 远程线程注射

远程线程注射指通过进程创建一个运行于其他进程虚拟地址空间的新线程,这个新线程拥有访问被注射进程所有对象的权限,这样木马可以达到进程隐藏的目的。

判定API函数有:NtWriteVirtualMemory与NtCreatetRemoteThread。

3.3.2 杀死其他进程

系统若中了木马,其主要行为是“杀死其他进程”,这种行为主要采用以下两种方法。

(1)向指定进程的窗口发送“关闭窗口”的消息。Wnidows操作系统是以消息驱动的操作系统,是一个利用Wnidows消息来传达信息的操作系统,其通讯方式是在应用程序与应用程序之间或应用程序与操作系统之间进行,在Windows消息中,有一种窗口消息是终止或退出当前窗口的消息,即WM_CLOSE消息。

判定 API函数有:NtUserPostMessage、NtUserPostMessageCall以及 NtUserPostThreadMessage。

(2)调用 APITerminateProeess、NtTerminateJobObject、NtSuspendThread 函数。APITerminateProeess、NtTerminateJobObject、NtSuspendThread这3个函数是WindowsSDK提供的API函数,它是通过进程句柄作为输入参数,来终止指定进程和该进程的所有线程。

判断 API函数有:APITerminateProeess、NtTerminateJobObject以及 NtSuspendThread。

3.3.3 绑定端口

进程要与远程网络通信时需要在计算机里打开一个“窗口”来进行与外界通信。这个窗口就是计算机的网络端口,打开窗口即绑定端口。通过检测进程是否有与外界通信的行为,就可以检测其有无绑定端口。

判定过程:在驱动层定时枚举网络连接端口信息,然后将信息向监控应用层传送出去。

3.4 注册表保护模块

在注册表保护模块中监控的敏感行为有2个:设置自启动项与修改文件关联。

进程关于注册表的操作调用API函数有:NtRestoreKey、NtCreateKey、NtDeleteKey、NtDeleteValueKey、NtSetValueKey、NtLoadKey、NtLoadKey2 以及 NtReplaceKey等,判定步骤分为:1)先匹配进程调用的API函数;2)再与匹配注册表受监控的键值匹配。

3.4.1 设置自启动项

Run是木马较常用的自启动注册表项,位置在以下两处。

(1)HKEY_CURRENT_USERSotfwareMicrosotfWindowsCurrentVersionRun。

(2)HKEY_LOCAL_MACHINESOFTWAREMieorsotfWindowsCurrentVersionRun。

如果木马修改了这两个注册表项,那么它们对应的值项为木马程序的路径和文件名,在此处添加值项可使木马程序随着计算机的每次启动而自动运行[5]。

除了run系列,还有设置Winlogon系列、Services系列以及Session Manager系列也可以达到自启动目的。

3.4.2 修改文件关联

通常病毒修改注册表某些文件关联,来达到自己掩蔽运行的目的,如修改关于屏幕保护HKCUControl Paneldesktop,可以设置指向木马的路径,下次系统触发屏幕保护时被动启动。

修改文件关联键值还有:Command Processor,LSA系列、Internet Explorer系列、Explorer系列、RPC系列以及WOW系列。

3.5 文件保护模块

在文件保护模块中监控的敏感的行为有:拷贝或创建文件到系统目录。进程关于文件操作调用的API有:NtWriteFile、NtSetInformationFile 以及 NtCreateFile、NtDuplicateObject。监控目录是本地系统目录,如c:windows。同时,添加本系统目录到监控中,达到系统保护作用。由于host文件是一个比较敏感文件,所以也添加到监控中。

4 小结

病毒、木马等恶意程序破坏信息系统的安全性、保密性和可用性,为预防这种恶意程序的破坏,须针对操作系统脆弱性的特点,设计较完善的防御恶意程序对操作系统进行保护。

本文从操作系统的底层出发,提出一个主动防御恶意程序的解决方案,在终端系统中构建一个基于行为策略的主动防御体系,根据对进程评分和综合行为机制判断当前进程是否为恶意代码的特征来进行报警,以进程行为作为控制的核心,即对进程、文件和注册表等操作行为进行监控,对进程的行为和系统的关键资源进行监控、自动分析、自动诊断,有效地抵制了未知病毒和未知攻击的侵入,保障终端系统的安全性。

猜你喜欢

主动防御注册表木马
主动防御撞击地球的“杀手”
小木马
骑木马
主动防御飞行器的范数型微分对策制导律
小木马
旋转木马
更上一层楼 用好注册表编辑器
网络安全主动防御技术分析
浅析HIPS系统防火墙技术与发展
学习器揭开注册表面纱