【技术实现步骤摘要】
基于系统调用分析的软件行为评估方法和装置
本专利技术涉及软件技术,尤其涉及一种基于系统调用分析的软件行为评估方法和装置。
技术介绍
软件行为是指软件程序运行时的表现形态和状态演变的过程;从软件程序的底层的二进制指令到高层的程序语句、系统调用、函数等都属于不同层次的软件行为。当软件程序在遭到黑客攻击、木马攻击篡改以及人为异常操作的时候,其内部流程往往会有所改变,即产生异常的软件行为。事实上,由于系统调用是操作系统提供给应用程序访问系统资源的接口,相应地,系统调用的状况在一定程度上能够反映软件程序的行为特征。这样,当软件程序的软件行为发生异常时,例如,软件程序在运行过程中可能会加载源程序中并未加载的程序库等,往往会在系统调用上留下痕迹;而通过对系统调用的分析,可以及时发现软件行为的异常并检测出问题所在。目前,现有已出现了一系列用来表示软件程序的正常行为的基于系统调用的软件行为模型,例如,最基本的N-gram模型、之后对其进行改进的Var-gram模型、以及后续的FSA(Inite State Automaton,有限状态自动机)模型等。相应地,现有的基于系统调用分析的软件行为评估方法中,主要是在获取软件程序的软件行为后,基于上述现有的基于系统调用的软件行为模型,根据其获取的软件程序的软件行为与上述软件行为模型中的正常行为之间的行为特征比对来判定软件行为的异常与否。其中,进行比对的行为特征具体是指软件行为模型中预先训练的系统调用序列。虽然上述各评估模型采用的建模方式不同,例如,有的采用动态建模方式,动态跟踪监控软件,获取软件实时运行的痕迹,并以此进行动态 ...
【技术保护点】
一种基于系统调用分析的软件行为评估方法,其特征在于,包括:在监控到待评估的软件的一次软件行为后,获取所述软件的监控日志中针对该次软件行为记录的信息,并从中提取出每个系统调用的入口地址和返回地址,以及系统调用序列;将提取出的系统调用序列与所述知识库中预先存储的所述软件的各系统调用子序列进行比较,根据比较结果确定提取出的系统调用序列的评估值;并对于获取的信息中涉及的每个系统调用,根据该系统调用的入口地址和返回地址计算出该系统调用的内存相对偏移后,将计算出的该系统调用的内存相对偏移与知识库中预先存储的该系统调用的常见内存偏移进行比较,根据比较结果确定该系统调用的评估结果;根据确定出的每个系统调用的评估结果,以及系统调用序列的评估值,对该次软件行为进行评估。
【技术特征摘要】
1.一种基于系统调用分析的软件行为评估方法,其特征在于,包括: 在监控到待评估的软件的一次软件行为后,获取所述软件的监控日志中针对该次软件行为记录的信息,并从中提取出每个系统调用的入口地址和返回地址,以及系统调用序列; 将提取出的系统调用序列与所述知识库中预先存储的所述软件的各系统调用子序列进行比较,根据比较结果确定提取出的系统调用序列的评估值;并 对于获取的信息中涉及的每个系统调用,根据该系统调用的入口地址和返回地址计算出该系统调用的内存相对偏移后,将计算出的该系统调用的内存相对偏移与知识库中预先存储的该系统调用的常见内存偏移进行比较,根据比较结果确定该系统调用的评估结果; 根据确定出的每个系统调用的评估结果,以及系统调用序列的评估值,对该次软件行为进行评估。2.如权利要求1所 述的方法,其特征在于,所述知识库中的各系统调用子序列是预先对所述软件的若干次软件正常行为进行学习获取的;其中,对所述软件的一次软件正常行为进行学习的过程为: 在监控到所述软件的一次软件正常行为后,从所述软件的监控日志中的针对该次软件正常行为所记录的系统调用信息中提取出系统调用序列,作为本次学习过程中得到的所述软件的样本系统调用序列记录在所述知识库中; 将所述知识库中中记录的所述软件的各样本系统调用序列所共有的若干个子序列作为所述软件的系统调用子序列; 针对所述软件的每个系统调用子序列,将该系统调用子序列在所述软件的所有样本系统调用序列中出现的次数总和与所述软件的样本系统调用序列的个数的比值作为该系统调用子序列的评估因子;并将该系统调用子序列的评估因子对应该系统调用子序列存储在所述知识库中。3.如权利要求2所述的方法,其特征在于,所述对所述软件的一次软件正常行为进行学习的过程中还包括: 针对该次软件正常行为所包含的每个系统调用,从所述系统调用信息中提取出该系统调用的入口地址和返回地址,并根据提取出的返回地址和入口地址,计算出该系统调用的内存相对偏移,并作为本次学习过程中得到的该系统调用的常见内存偏移记录在所述知识库中。4.如权利要求1-3任一所述的方法,其特征在于,所述将提取出的系统调用序列与所述知识库中预先存储的各系统调用子序列进行比较,根据比较结果确定提取出的系统调用序列的评估值,具体包括: 将提取出的系统调用序列与所述知识库中预先存储的各系统调用子序列进行比较,从该系统调用序列中提取出与所述知识库中预先存储的系统调用子序列相同的子序列作为该系统调用序列中所包含的匹配子序列;并根据各系统调用子序列在所述知识库中的评估因子、各匹配子序列在该系统调用序列中出现的次数,计算出该系统调用序列的评估值。5.如权利要求4所述的方法,其特征在于,所述根据各系统调用子序列在所述知识库中的评估因子、各匹配子序列在该系统调用序列中出现的次数,计算出该系统调用序列的评估值,具体包括:根据如下公式1,计算出该系统调用序列的评估值SQ: 6.如权利要求1-3任一所述的方法,其特征在于,所述将计算出的该系统调用的内存相对偏移与知识库中预先存储的该系统调用的常见内存偏移进行比较,根据比较结果确定该系统调用的评估结果,具体包括: 对于该系统调用序列中所包含的每个匹配子序列,针对该匹配子序列中所包含的每个系统调用,将该系统调用的内存相对偏移与知识库中预先存储的该系统调用的常见内存偏移进行比较,若该系统调用的内存相对偏移与所述知识库中预先存储的该系统调用的常见内存偏移相同,则将该系统调用评估为该匹配子序列中所包含的正常系统调用。7.如权利要求6所述的方法,其特征在于,所述根据确定出的每个系统调用的评估结果,以及系统调用序列...
【专利技术属性】
技术研发人员:李宁,薛静锋,董骁,向恒勇,肖飞,李清俊,
申请(专利权)人:中国电子科技集团公司第十五研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。