基于软件指纹的软件动态可信认证方法技术

技术编号:8105946 阅读:312 留言:0更新日期:2012-12-21 05:00
本发明专利技术提供一种基于软件指纹的软件动态可信认证方法,该方法由4个步骤组成:软件指纹提取、软件动态行为监控、软件动态行为认证、软件动态行为控制,可分别对应4个模块。软件指纹提取模块提取软件的指纹信息,软件指纹包括软件数据指纹及行为指纹两部分。软件动态行为监控模块对软件行为指纹中所描述的关键行为进行细粒度监控。软件动态行为认证模块基于软件指纹对监控的软件行为进行动态认证,以判定软件自身及其行为是否符合预期,是则继续监控,否则交由软件动态行为控制模块处理。软件动态行为控制模块以有利于保障软件动态可信的方式进行处理。通过同时保障软件的数据完整性和行为动态可信性,可有效保障目标系统的整体可信性。

【技术实现步骤摘要】

本专利技术属于信息系统安全领域,特别涉及一种。
技术介绍
随着软件规模的不断増大,软件的开发、集成和演化变得越来越复杂,这导致软件产品在推出时总会含有很多已知或未知的缺陷。这些缺陷对软件系统安全的可靠运行构成了严重的威胁;另ー方面,软件的运行和开发环境从传统的静态封闭的状态变成互联网环境下动态开放的状态。越来越多的软件漏洞和缺陷被发现并被恶意攻击者频繁利用。为了保障软件的运行安全,目前安全界采用了多种防护手段和技木。典型的包括数据完整性验证技术、特征值检测技术、虚拟机技术、启发式扫描技术、主动防御技术、防火 墙技术、补丁自动修补技术、云查杀技术等。数据完整性验证技术目前已经被很多安全软件所采用,其缺陷在于无法保障软件运行过程中动态行为的可信性。特征值检测技术在检测已知病毒上效果良好,但却无法检测未知病毒,且已知病毒在经过免杀处理之后极易绕过特征值检测技木。启发式扫描技术根据恶意软件的代码及行为特征经验来判定病毒,其可检测未知病毒,但误报率较高,且也容易被恶意攻击者通过巧妙设计软件行为来绕过。虚拟机技术结合特征值检测后可以有效对抗已知的加密型病毒,但对未知病毒依然无能为力,且虚拟机机制也容易被病毒检测到和绕过。主动防御技术对疑似危险行为进行了拦截,但却没有考虑软件行为主体自身的行为特性,因此误报率较高,目前的主动防御技术也存在被绕过甚至被终结的风险。防火墙技术基于预定规则对网络进出数据进行过滤,可有效抵挡一部分已知的入侵行为,但无法抵抗未知的攻击,目前很多恶意软件采用与正常软件相似的网络通信特征,从而可绕过各类防火墙。补丁自动修补技术能够及时地修补已知漏洞,保护系统的安全性,但是目前地下市场有大量的ODay漏洞,其对这些没有补丁的漏洞无能为力。云查杀技术将病毒判定过程从原来的客户端转移到服务端,从一定程度上说,其提升了病毒判定的能力,但其实时判定速度则有可能不能满足需求,另外,部分云查杀引擎需要上传客户计算机中的文件,也可能对用户数据的私密性产生影响。可见,现有的安全防护技术很难保证系统的可信性,尤其是系统的动态行为可信性。如何提高现有计算机终端的安全防护能力,确保计算机系统的安全,已成为当前我国信息安全保障工作中亟待解决的关键问题。软件动态行为可信技术是可信计算必须解决的一个关键性问题,同时也是促进软件安全、有效增强系统信息安全的一种有效方式。要确保软件动态行为可信就要确保软件主体的行为“总是以预期的方式,达到预期的目标”。
技术实现思路
本专利技术目的在于解决现有技术不足,提出了,以求在保证软件静态完整性的同吋,提升软件行为的动态可信性,从而有效保障信息系统的安全性。本专利技术提供的基于软件指纹的动态可信认证方法,具体方案如下软件指纹提取、软件动态行为监控、软件动态行为认证、软件动态行为控制。这四个步骤可以设计四个对应的模块来实现。 软件指纹提取阶段软件指纹包括软件的数据指纹及行为指紋。数据指纹是指,软件的数字签名信息、通过散列函数运算得到的散列值或通过其他校验和算法计算软件自身的校验值;行为指纹是指软件的预期行为,包括控制流信息以及其数据流信息。进行软件数据指纹提取时,根据具体的静态指纹类别采用静态提取方式直接对软件自身进行相应的运算来获取,譬如,如果将MD5值作为软件的静态指紋,则采用MD5算法对目标软件的ニ进制文件进行计算;进行软件行为指纹提取时,可采取静态提取方式,也可以采取动态提取方式,或者两者同时结合使用。静态提取时,首先采用反汇编工具或自编程序对其进行反汇编,得到软件的行为调用图以及数据依赖关系,然后对获取到的信息进行精简压縮,提取其关键信息保存。进行动态提取时,则在干净的监控环境中,尽可能全面地运行软件的各种功能,并捕获到软件的各类行为调用及数据參数信息,最終获得软件的动态行为关系及数据依赖关系,然后对获取到的信息进行精简压缩,提取其关键信息保存。为降低软件行为认证的复杂性和系统性能影响,软件的行为指纹可根据实际可信需求进行针对性精简,在精简软件行为特征时,可以只选取那些可能影响软件可信需求的疑似危险类行为。提取到软件的数据指纹利动态指纹之后,可以将该指纹信息与软件自身捆绑发布,也可以由相关网站直接公布软件的对应指纹数据。在进行软件行为动态监控时,将对软件进程的启动行为、软件行为指纹中涉及的各类行为进行监控,监控手段既可以在目标系统内核层实现也可能在用户层实现。软件行为认证中心对监控到的各类软件动态行为进行认证。当监控到新的执行体(如进程)即将被启动时,则首先对其进行数据指纹认证(数字签名校验、或散列值校验、或校验和校验),认证通过之后,则允许启动新进程。当监控到软件行为指纹涉及到的各类软件行为时,软件行为认证中心则根据软件行为指纹来判定当前行为(或当前行为序列)是否符合预期,符合则放行并继续监控认证后续行为,否则交由软件动态行为控制中心处理。对于不符合预期的软件行为,软件动态行为控制中心可提示用户并让其进行处理,也可以直接根据预设策略修改其行为使其符合预期,或者直接終止该软件行为。该方法可以用于保障各类架构和用途的智能处理系统的可信性,不仅限于个人计算机和各类移动終端(如智能手机等)。附图说明图I为本专利技术给出的ー种具体实施方式的实施流程。具体实施例方式为便于实施,下面给出本专利技术所提供方法的ー种具体实施方式(參见图I)该实施实例的运行环境为Windows XP操作系统,其目的是防止恶意软件入侵目标系统,保障系统的安全性。步骤101 :软件数据指纹提取阶段软件指纹包括软件的数据指纹及行为指紋。进行软件数据指纹提取时,采用MD5算法对目标软件P ニ进制文件进行计算,并将其MD5值作为软件的静态指纹进行保存,标记 为Zl0系统的安全性威胁是本实施案例的最終的防护目标,因此,为了进ー步降低软件行为指纹的复杂度,将有可能对系统安全造成威胁的所有疑似危险行为列入ー个集合S,集合S中包括如下几类行为{可执行文件创建并执行,修改或増加系统启动项,驱动加载,远程线程注入,远程可执行程序下载并执行,},将集合S中的行为细化分析为更细粒度的可监控行为(或序列),形成监控行为集合M。步骤102 :软件行为指纹提取阶段进行软件行为指纹提取时,首先可采取静态提取方式,采用反汇编工具IDA或自编程序对其进行反汇编,得到软件的行为调用图以及数据依赖关系,然后再依据集合M中的疑似危险行为进行动态提取,得到预期行为集合BI,在干净的监控环境中,尽可能全面地运行软件的各种功能,依据集合M中的行为捕获到软件的各类相关行为调用及数据參数信息,再次获得软件的动态行为关系及数据依赖关系,得到预期行为集合B2,综合静态提取利动态提取的结果BI与B2,然后对获取到的信息进行精简压缩,提取其关键信息保存。将此作为行为指纹Z2进行保存。步骤103 :软件指纹融合阶段将Zl及Z2合并为最終的软件P的软件指纹信息。按照此法依次处理其他软件个体,得到所有软件的指纹信息。步骤104 :软件动态行为监控阶段在Windows下,采用SSDT Hook的方式(也可采用其他用户态和内核态的系统拦截方式)对集合M中的行为进行拦截。当采用SSDT Hook方式进行拦截时,应当将集合M中的软件可监控行为与SSDT中的系统函数进行关系映射,从而可以在SSDT本文档来自技高网
...

【技术保护点】
一种基于软件指纹的软件动态行为可信认证方法,其特征在于:其包含了如下几个步骤:软件指纹提取、软件动态行为监控、软件动态行为认证、软件动态行为控制。这四个步骤可以设计四个对应的模块来实现。

【技术特征摘要】

【专利技术属性】
技术研发人员:彭国军黎晓方
申请(专利权)人:武汉安珈教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1