NetRoc's Blog

N-Tech

 

瑞星2008主动防御体系分析

 

cc682/NetRoc

http://netroc682.spaces.live.com/

一、             基本原理和基本技术

1、 Rising 2008本身对产品的描述:

瑞星杀毒软件2008中采用的主动防御技术包含三个层次,资源访问规则控制;资源访问扫描;程序活动行为分析引擎,其中尤其以行为分析引擎技术最为关键。

 

第一层:资源访问控制层(即HIPS

 

    它通过对系统资源(注册表、文件、特定系统API的调用、进程启动)等进行规则化控制,阻止病毒、木马等恶意程序对这些资源的使用,从而达到抵御未知病毒、木马攻击的目的。

 

    第二层:资源访问扫描层(即传统的文件监控、邮件监控等)

 

    通过监控对一些资源,如文件、引导区、邮件、脚本的访问,并使用拦截的上下文内容(文件内存、引导区内容等)进行威胁扫描识别的方式,来处理已经经过分析的恶意代码。

 

    第三层:进程活动行为判定层(危险行为判定、DNA识别)

 

    进程活动行为判定层自动收集从前两层传上来的进程动作及特征信息,并对其进行加工判断。瑞星专家经过对数十万病毒的危险行为进行分析,提炼,设计出全新的主动防御智能恶意行为判定引擎。无需用户参与,该层可以自动识别出具有有害动作的未知病毒、木马、后门等恶意程序。

 

    目前,市面上的一些主动防御软件只做了三层结构中的部分功能,瑞星认为,只有全面实现三个层级的主动防御,才是真正意义上的“主动防御功能”,如果用户使用不完全的主动防御,将给自己带来严重的安全风险。

 

帐号保险柜,严密保护您的帐号密码

木马强杀技术,彻底查杀70万木马

2、 分析得到的rising 2008主动防御的体系结构

Rising2008的主动防御体系基本涵盖了它自己描述的几大方面。

文件访问控制方面,对关键的系统目录、Rising程序安装目录进行保护,在其他程序进行访问系统目录的时候,弹出用户提示;拒绝对Rising安装目录的修改、删除等操作。

进程启动控制方面,通过对注册表相关项的监控实现。很弱智的是,对Start Menu\Programs\Startup的访问没有进行监控。

系统动作规则方面,对跨进程访问的一些API调用进行了Hook和控制。包括ntos和少量win32k的操作。在应用程序调用这些API函数时,rising只是给以任务栏的气泡提示,并没有发现可供用户选择策略的方法。这可能也是为了方便大多数普通用户采取的模式。

 


邮件和网页监控由于不在本次分析重点范围内,所以也跳过这部分。不过在驱动内部没有发现和这两个功能相关代码,基本可排除在ring0实现的可能性。

Rising用于主动防御的文件和基本结构如图:

HookNtosHookRegHookSys分别有一个驱动和一个ring3层接口dll构成。HookNtos主要处理对 SSDT中进程保护相关的函数、Win32Khook和相关逻辑

HookReg主要处理SSDT中注册表相关函数的Hook和逻辑。

HookSys中包含对文件系统驱动的Hook,以及文件扫描、处理等的代码。

上述三个模块,都依赖于一个支持模块HookHelp.sysHookHelp提供对内核Hook的支持。包括管理Hook所使用的跳板代码的内存等功能。另外,提供对nt!_EPROCESS等内核结构的访问支持,供其它模块获取进程信息使用。

3、 基本技术

Rising主动防御的核心技术只有2

SSDT以及SSDT ShadowHook

DriverObjectIRP处理例程Hook

二、             详细实现

1、 HookHelp.sys部分

下图是HookHelp.sys的导出函数

Hook方面HookSSDT会跳转到HookHelp中的跳板代码:

f775a571 687caa46f7      push    offset HookNtos+0x1a7c (f746aa7c)

f775a576 c3              ret

通过跳板,实际转到Hook函数中。

ProcessInfo方面,都是从nt!_EPROCESS中获取。

2、 HookReg部分

通过Hook SSDT中以下函数实现:

NtCreateKey

NtDeleteKey

NtDeleteValueKey

NtRenameKey

NtRestoreKey

NtSetSecurityObject

NtSetValueKey

对注册表操作进行监控,向一些关键的注册表主键下面写入或者修改数据,会提示用户并询问操作。主要有以下几处:

3、 HookNtos部分

Hook掉的函数包括SSDTSSDT Shadow中的一共有以下几个:

这些函数都是对应于瑞星进程保护的各个选项:

另外,对Rising的几个进程,默认都是会进行保护的。

监控了驱动加载和卸载的几个函数,以实现对内核模块加载卸载的控制。

4、 HookSys部分

主要是处理文件操作的Hook

通过ObReferenceObjectByName获取以下几个设备对象:

\FileSystem\Ntfs

\FileSystem\Fastfat

\FileSystem\fastfat

\FileSystem\MRxSmb

\FileSystem\mrxsmb

\FileSystem\Cdfs

\FileSystem\Rdr

并钩挂DriverObject里面的

IRP_MJ_CLEANUP

IRP_MJ_CLOSE

IRP_MJ_SET_INFORMATION

IRP_MJ_WRITE

IRP_MJ_SET_SECURITY

DRIVER_OBJECT::FastIoDispatch::FastIoWrite

实现对文件监控。

三、             整体评价

Rising的主动防御系统是08Rising主推的产品特性。总体来看,还是实现得中规中矩。没有什么新东西,但是还是具备基本的一些主动防御产品的特性。例如对系统文件夹访问的控制、对启动项的监控、对驱动加载的监控等等。

不过,和现在市面上绝大多数主动防御系统一样。由于突破关键保护的方法多种多样,并且很多是由系统本身所提供的,主动防御难以面面俱到,将每种方法都进行监控,Rising不可避免的存在一点突破,满盘皆输的毛病。对于普通用户的价值有限。

posted on 2008-05-04 15:13 NetRoc 阅读(1079) 评论(0)  编辑 收藏 引用 所属分类: 内核技术逆向分析

只有注册用户登录后才能发表评论。

导航

统计

常用链接

留言簿(7)

随笔档案(99)

文章分类(35)

文章档案(32)

Friends

Mirror

搜索

最新评论

阅读排行榜

评论排行榜