基于进程资源依赖网络的代码风险性评估方法

文档序号:6370951阅读:153来源:国知局
专利名称:基于进程资源依赖网络的代码风险性评估方法
技术领域
本发明涉及计算机安全领域,更具体地说,涉及一种基于进程资源依赖网络的代码风险性评估方法。
背景技术
计算机的应用已经渗透到人 们生活的各个领域。然而随着计算机快速的发展,与计算机相关的安全问题也层出不穷,严重威胁到人们日常生活的正常运作。作为计算机安全的重要环节,进程对资源或对象的访问在入侵检测、恶意代码检测中起到了至关重要的作用。现有的方法与技术往往从单一进程的角度出发,建立正常、异常进程对资源和对象的访问模式,以此作为正常、异常行为模式,采用一定的行为模式匹配的方法判断是否出现异常。这些研究往往将进程行为目的二分类,即正常或异常。通过观察指定进程对资源和对象的访问行为,往往只能分析待测代码是否异常,无法客观定量地对代码的威胁度或风险性进行分析评估。而在现实中,代码的意图并不能简单的二分类分析,很多情况下,代码的威胁性、风险性呈现出多元化,简单的二分类会并不能准确刻画代码行为的安全性。本发明从系统整体的角度,以复杂网络为模型,建立进程资源依赖网络。在此基础上,计算待评估代码执行前后进程资源依赖网络中计算机资源和对象的重要性排名序列,以计算机资源和对象重要性排名的变化为依据,对待评估代码的风险性、威胁值进行评估,并可基于此判断代码的恶意性,进行恶意代码检测。

发明内容
本发明所提出的方案是基于进程资源依赖网络的代码风险性评估,包括如下步骤(a)根据正常进程对计算机中资源和对象的访问记录,构建正常进程资源依赖网络;(b)用Random Walk方法计算正常进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Ib_ ;(c)根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络;(d)用Random Walk方法计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspicdws ;(e)计算并量化IbmigjP Isuspicd■之间的差异,得到待评估代码的风险和威胁度值。在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(a)中,正常进程对计算机中资源和对象的访问记录是指在日常操作情况下,捕获一段时间内计算机上运行的正常进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的类型、访问资源和对象的名称和位置。在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(a)中,进一步包括(al)提取依赖关系已知正常进程对计算机中资源和对象的访问记录,根据进程与计算机资源和对象之间的访问操作类型,定义进程与计算机资源和对象之间的依赖关系;(a2)根据步骤(al)中得到的进程与计算机资源和对象之间的依赖关系,构造正常进程资源依赖网络G(V,E),其中V表示计算机资源和对象的集合,对于€ F,Ui表示第i个计算机资源或对象,用该资源或对象的名称和位置、节点类型两个属性来描述;E表 示进程与计算机资源和对象之间的依赖关系集合,e(Ui,Uj.) G表示Ui依赖于Uj,依赖关系决定了有向边的方向。在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(C)中,待评估进程是指,待评估代码的执行进程;待评估进程对计算机中资源和对象的访问记录是指,执行待评估代码,捕获待评估代码的执行进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的路径。在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(C)中,进一步包括(Cl)与步骤(al),(a2)类似,根据待评估进程对计算机中资源和对象的访问记录,提取待评估进程与计算机资源和对象之间的依赖关系,构造待评估进程资源访问图Gi=(ViAi),其中Vi表示待测进程及其访问的相关计算机资源和对象的集合,Ei表示进程与计算机资源和对象之间的依赖关系,依赖关系决定了有向边的方向;(c2)将步骤(Cl)中得到的待评估进程资源访问图Gi,加入步骤(a2)中得到的正常进程资源依赖网络G中,待评估进程资源依赖网络G' (T , E/ ),其中V' = VUVi,E' = E U EiO在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(e)中,进一步包括(el)将向量Ibmign和向量Isuspicd■按照元素值从大到小进行排列,分别得到资源和对象按照重要性从高到低排列的序列T和T ';(e2)计算步骤(el)中得到的序列t和序列t,中资源和对象重要性排名差异,作为向量Ibmign和向量Isuspicd■之间的差异,即为待评估代码的风险和威胁度值,其范围为
,且差异值越接近1,表明待评估代码的风险和威胁度值越大。上述过程中步骤(a)和步骤(C)中的计算机资源和对象包括但不限于进程对象、文件对象、注册表项。上述过程中步骤(a)和步骤(C)中的依赖关系包括但不限于由进程访问资源和对象引起的信息的依赖关系。上述过程中步骤(a)和步骤(C)中进程对资源和对象的访问操作类型包括但不限于对资源和对象的加载、读取、创建、写入、终止操作。
上述过程中步骤(b)计算正常进程资源依赖网络中各个资源和对象的重要性指
标,包括但不局限于使用 Random Walk 的变形-PageRank, Personalized PageRank,
HITS。本发明的基于进程资源依赖网络的代码风险性评估方法有以下优点I.本发明以依赖网络的形式描述进程与计算机资源和对象间的访问关系,以有向连接的形式表示进程与资源和对象的依赖关系。从计算机安全的角度,系统化地评价计算机资源和对象的重要性。与传统手工设置黑白名单的方法相比,该方法更具有客观性,并能够随着时间的变化自动更新,提高了计算机资源和对象重要性的分析效率;2.量化分析由代码引入的风险。传统基于静态、动态分析进程恶意性的方法旨在 对代码行为进行二分类,即正常或异常。而在计算机系统中,代码行为的多样性决定了其风险性的具体性,本发明的基于计算机资源访问的风险性评估方法,能更好的体现代码行为意图,降低分析的误报率,具有更好的准确性和适用性。


图I为本发明实施例建立的正常进程资源依赖网络示例图;图2为本发明实施例建立的待评估进程资源访问图;图3为本发明实施例建立的待评估进程资源依赖网络示例图。
具体实施例方式下面举例对本发明加以说明。(I)根据正常进程对资源和对象的访问情况,建立正常进程资源依赖网络。得到的正常进程对计算机中资源和对象的访问记录如下,其中使用资源和对象的全路径名来表示其名称和位置I :{ “Explorer, exe”,“File”,“C:\l.txt”,“ CreateFi I e,,}2 :{ “cmd. exe”,“File”,“C:\l.txt”,“ReadFile,,}3 : { “Explorer, exe,,,“Process,,,“cmd. exe,,,“ CreateProcess,,}4 {“Explorer, exe”,“File”,“C: \WIND0WS\system32\ntdll. dll,,,“LoadImage,,}其中,第一个元素表示正常进程名,第二个元素表示访问资源和对象的节点类型,第三个元素表示访问资源和对象的全路径名/进程名,第四个元素表示访问操作类型。根据访问记录可以得到依赖关系网络中的节点vl= { “Explorer, exe”,“Process,,}v2= { “cmd. exe,,,“Process,,}v3={ “C:\l. txt”,“File”}v4= { “C: \WIND0WS\system32\ntdll. dll ”,“File,,}其中,表示节点的集合中,第一个元素表示资源或对象的全路径名/进程名,第二个元素表示节点类型。在此实例中,我们根据进程访问资源和对象时产生的信息依赖关系,定义进程P与访问资源或对象O的依赖关系,如表I所示。表I本发明实施例中进程与计算机资源或对象之间的依赖关系
权利要求
1.一种基于进程资源依赖网络的代码风险性评估方法,其特征在于,包括如下步骤 (a)根据正常进程对计算机资源和对象的访问记录,构建正常进程资源依赖网络; (b)计算正常进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Ibmign;(C)根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络; (d)计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspic^us ; (e)计算并量化Ibmig^PIsuspicd■之间的差异,得到待评估代码的风险和威胁度值。
2.根据权利要求I所述的方法,其特征在于所述步骤(a)中,正常进程对计算机中资源和对象的访问记录是指在日常操作情况下,捕获一段时间内计算机上运行的正常进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的类型、访问资源和对象的名称和位置;计算机资源和对象包括文件资源对象、注册表资源对象、进程对象、线程对象。
3.根据权利要求I所述的方法,其特征在于,所述步骤a)具体为 (al)提取依赖关系已知正常进程对计算机中资源和对象的访问记录,根据进程与资源和对象之间的访问操作类型,定义进程与计算机资源和对象之间的依赖关系;依赖关系描述了进程访问资源和对象引起的信息依赖关系,包括如果访问操作类型为“读取”、“加载”,则进程依赖于对应的计算机资源或对象;如果访问操作类型为“创建”、“写入”、“修改” “执行”、“终止”,则对应计算机资源或对象依赖于进程; (a2)根据步骤(al)中得到的进程与计算机资源和对象之间的依赖关系,构造正常进程资源依赖网络G (V,E),其中V表示计算机资源和对象的集合,对于V巧€ V’ Ui表示第i个计算机资源或对象,用该资源或对象的名称和位置、节点类型两个属性来描述;E表示进程与计算机资源和对象之间的依赖关系集合,e(Ui,Ui) E表示Ui依赖于U」,依赖关系决定了有向边的方向。
4.根据权利要求3所述的方法,其特征在于所述步骤(a2)中,节点类型包括“进程”、“线程”、“文件”、“注册表”、“计算机网络地址”。
5.根据权利要求I所述的方法,其特征在于所述步骤(c)中,待评估进程是指,待评估代码的执行进程;待评估进程对计算机中资源和对象的访问记录是指,执行待评估代码,捕获待评估代码的执行进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的名称和位置。
6.根据权利要求I所述的方法,其特征在于,所述步骤(c)具体为 (Cl)根据待评估进程对计算机中资源和对象的访问记录,提取待评估进程与计算机资源和对象之间的依赖关系,构造待评估进程资源访问图Gi = (VpEi),其中Vi表示待测进程及其访问的相关计算机资源和对象的集合,Ei表示进程与计算机资源和对象之间的依赖关系,依赖关系决定了有向边的方向; (c2)将步骤(Cl)中得到的待评估进程资源访问图Gi,加入步骤(a2)中得到的正常进程资源依赖网络G中,待评估进程资源依赖网络G' (T,E'),其中V' = V U Vi, E'=E U EiO
7.根据权利要求I所述的方法,其特征在于,所述步骤(e)具体为 (el)向量Ibmign和向量Isuspicd■中的元素值为对应进程资源依赖网络中各个资源和对象的重要性指标,按照向量Ibmign和向量Isuspicdws中的元素值从大到小的顺序,分别得到资源和对象按照重要性从高到低排列的序列T和T '; (e2)计算步骤(el)中得到的序列T和序列T,中资源和对象重要性排名差异,作为向量Ibmign和向量Isuspicd■之间的差异,即为待评估代码的风险和威胁度值,其范围为[O,1],且差异值越接近1,表明待评估代码的风险和威胁度值越大。
8.根据权利要求I所述的方法,其特征在于所述进程对资源和对象的访问操作类型包括对资源和对象的加载、读取、创建、写入、修改、执行、终止操作。
9.根据权利要求I所述的方法,其特征在于所述步骤b)和d)计算重要性指标的方法是 Random Walk 或其变形方法,包括 PageRank、Personalized PageRank 或 HITS 方法。
全文摘要
一种基于进程资源依赖网络的代码风险性评估方法,根据正常进程对计算机资源和对象的访问记录,构建正常进程资源依赖网络;计算正常进程资源依赖网络中各个资源和对象的重要性指标Ibenign;根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络;计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspicious;计算并量化Ibenign和Isuspicious之间的差异,得到待评估代码的风险和威胁度值。本发明以计算机资源和对象重要性排名的变化为依据,对待评估代码的风险性、威胁值进行评估;并判断代码的恶意性,进行恶意代码检测。
文档编号G06F19/00GK102750444SQ20121018271
公开日2012年10月24日 申请日期2012年6月5日 优先权日2012年6月5日
发明者毛蔚轩, 管晓宏, 蔡忠闽 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1