CN102750444B - 基于进程资源依赖网络的代码风险性评估方法 - Google Patents
基于进程资源依赖网络的代码风险性评估方法 Download PDFInfo
- Publication number
- CN102750444B CN102750444B CN201210182715.4A CN201210182715A CN102750444B CN 102750444 B CN102750444 B CN 102750444B CN 201210182715 A CN201210182715 A CN 201210182715A CN 102750444 B CN102750444 B CN 102750444B
- Authority
- CN
- China
- Prior art keywords
- resource
- assessed
- dependence
- network
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
一种基于进程资源依赖网络的代码风险性评估方法,根据正常进程对计算机资源和对象的访问记录,构建正常进程资源依赖网络;计算正常进程资源依赖网络中各个资源和对象的重要性指标Ibenign;根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络;计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspicious;计算并量化Ibenign和Isuspicious之间的差异,得到待评估代码的风险和威胁度值。本发明以计算机资源和对象重要性排名的变化为依据,对待评估代码的风险性、威胁值进行评估;并判断代码的恶意性,进行恶意代码检测。
Description
技术领域
本发明涉及计算机安全领域,更具体地说,涉及一种基于进程资源依赖网络的代码风险性评估方法。
背景技术
计算机的应用已经渗透到人们生活的各个领域。然而随着计算机快速的发展,与计算机相关的安全问题也层出不穷,严重威胁到人们日常生活的正常运作。作为计算机安全的重要环节,进程对资源或对象的访问在入侵检测、恶意代码检测中起到了至关重要的作用。
现有的方法与技术往往从单一进程的角度出发,建立正常、异常进程对资源和对象的访问模式,以此作为正常、异常行为模式,采用一定的行为模式匹配的方法判断是否出现异常。这些研究往往将进程行为目的二分类,即正常或异常。通过观察指定进程对资源和对象的访问行为,往往只能分析待测代码是否异常,无法客观定量地对代码的威胁度或风险性进行分析评估。
而在现实中,代码的意图并不能简单的二分类分析,很多情况下,代码的威胁性、风险性呈现出多元化,简单的二分类会并不能准确刻画代码行为的安全性。
本发明从系统整体的角度,以复杂网络为模型,建立进程资源依赖网络。在此基础上,计算待评估代码执行前后进程资源依赖网络中计算机资源和对象的重要性排名序列,以计算机资源和对象重要性排名的变化为依据,对待评估代码的风险性、威胁值进行评估,并可基于此判断代码的恶意性,进行恶意代码检测。
发明内容
本发明所提出的方案是基于进程资源依赖网络的代码风险性评估,包括如下步骤:
(a)根据正常进程对计算机中资源和对象的访问记录,构建正常进程资源依赖网络;
(b)用Random Walk方法计算正常进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Ibenign;
(c)根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络;
(d)用Random Walk方法计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspicious;
(e)计算并量化Ibenign和Isuspicious之间的差异,得到待评估代码的风险和威胁度值。
在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(a)中,正常进程对计算机中资源和对象的访问记录是指在日常操作情况下,捕获一段时间内计算机上运行的正常进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的类型、访问资源和对象的名称和位置。
在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(a)中,进一步包括:
(a1)提取依赖关系:已知正常进程对计算机中资源和对象的访问记录,根据进程与计算机资源和对象之间的访问操作类型,定义进程与计算机资源和对象之间的依赖关系;
(a2)根据步骤(a1)中得到的进程与计算机资源和对象之间的依赖关系,构造正常进程资源依赖网络G(V,E),其中V表示计算机资源和对象的集合,对于υi表示第i个计算机资源或对象,用该资源或对象的名称和位置、节点类型两个属性来描述;E表示进程与计算机资源和对象之间的依赖关系集合,e(υi,υj)∈表示υi依赖于υj,依赖关系决定了有向边的方向。
在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(c)中,待评估进程是指,待评估代码的执行进程;待评估进程对计算机中资源和对象的访问记录是指,执行待评估代码,捕获待评估代码的执行进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的路径。
在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(c)中,进一步包括:
(c1)与步骤(a1),(a2)类似,根据待评估进程对计算机中资源和对象的访问记录,提取待评估进程与计算机资源和对象之间的依赖关系,构造待评估进程资源访问图Gi=(Vi,Ei),其中Vi表示待测进程及其访问的相关计算机资源和对象的集合,Ei表示进程与计算机资源和对象之间的依赖关系,依赖关系决定了有向边的方向;
(c2)将步骤(c1)中得到的待评估进程资源访问图Gi,加入步骤(a2)中得到的正常进程资源依赖网络G中,待评估进程资源依赖网络G′(V′,E′),其中V′=V∪Vi,E′=E∪Ei。
在本发明所述的基于进程资源依赖网络的代码风险性评估方法中,所述步骤(e)中,进一步包括:
(e1)将向量Ibenign和向量Isuspicious按照元素值从大到小进行排列,分别得到资源和对象按照重要性从高到低排列的序列τ和τ′;
(e2)计算步骤(e1)中得到的序列τ和序列τ′中资源和对象重要性排名差异,作为向量Ibenign和向量Isuspicious之间的差异,即为待评估代码的风险和威胁度值,其范围为[0,1],且差异值越接近1,表明待评估代码的风险和威胁度值越大。
上述过程中步骤(a)和步骤(c)中的计算机资源和对象包括但不限于进程对象、文件对象、注册表项。
上述过程中步骤(a)和步骤(c)中的依赖关系包括但不限于由进程访问资源和对象引起的信息的依赖关系。
上述过程中步骤(a)和步骤(c)中进程对资源和对象的访问操作类型包括但不限于对资源和对象的加载、读取、创建、写入、终止操作。
上述过程中步骤(b)计算正常进程资源依赖网络中各个资源和对象的重要性指标,包括但不局限于使用Random Walk的变形——PageRank,Personalized PageRank,HITS。
本发明的基于进程资源依赖网络的代码风险性评估方法有以下优点:
1.本发明以依赖网络的形式描述进程与计算机资源和对象间的访问关系,以有向连接的形式表示进程与资源和对象的依赖关系。从计算机安全的角度,系统化地评价计算机资源和对象的重要性。与传统手工设置黑白名单的方法相比,该方法更具有客观性,并能够随着时间的变化自动更新,提高了计算机资源和对象重要性的分析效率;
2.量化分析由代码引入的风险。传统基于静态、动态分析进程恶意性的方法旨在对代码行为进行二分类,即正常或异常。而在计算机系统中,代码行为的多样性决定了其风险性的具体性,本发明的基于计算机资源访问的风险性评估方法,能更好的体现代码行为意图,降低分析的误报率,具有更好的准确性和适用性。
附图说明
图1为本发明实施例建立的正常进程资源依赖网络示例图;
图2为本发明实施例建立的待评估进程资源访问图;
图3为本发明实施例建立的待评估进程资源依赖网络示例图。
具体实施方式
下面举例对本发明加以说明。
(1)根据正常进程对资源和对象的访问情况,建立正常进程资源依赖网络。得到的正常进程对计算机中资源和对象的访问记录如下,其中使用资源和对象的全路径名来表示其名称和位置:
1:{“Explorer.exe”,“File”,“C:\1.txt”,“CreateFile”}
2:{“cmd.exe”,“File”,“C:\1.txt”,“ReadFile”}
3:{“Explorer.exe”,“Process”,“cmd.exe”,“CreateProcess”}
4:{“Explorer.exe”,“File”,“C:\WINDOWS\system32\ntdll.dll”,“LoadImage”}
其中,第一个元素表示正常进程名,第二个元素表示访问资源和对象的节点类型,第三个元素表示访问资源和对象的全路径名/进程名,第四个元素表示访问操作类型。
根据访问记录可以得到依赖关系网络中的节点:
v1={“Explorer.exe”,“Process”}
v2={“cmd.exe”,“Process”}
v3={“C:\1.txt”,“File”}
v4={“C:\WINDOWS\system32\ntdll.dll”,“File”}
其中,表示节点的集合中,第一个元素表示资源或对象的全路径名/进程名,第二个元素表示节点类型。在此实例中,我们根据进程访问资源和对象时产生的信息依赖关系,定义进程p与访问资源或对象o的依赖关系,如表1所示。
表1本发明实施例中进程与计算机资源或对象之间的依赖关系
因此,上述访问记录可以分别表示为:
1:v1←v3
2:v2→v3
3:v1←v2
4:v1→v4
因此,得到如图1所示的正常进程资源依赖网络。
(2)对于计算机资源和对象重要性的计算可使用Random Walk及其变形,如PageRank[1],Personalized PageRank[2],HITS[3]等。下面以PageRank算法为例,计算正常进程资源依赖网络中各个资源和对象的重要性指标,其具体的公式为:
其中Ibenign(c)是正常进程资源依赖网络中节点c的重要性值;Nin(c)是正常进程资源依赖网络中依赖于节点c的节点集合,p是属于Nin(c)中的一个节点;Ibenign(p)是正常进程资源依赖网络中节点p的重要性值;Nout(p)是正常进程资源依赖网络中节点p所依赖的节点集合;|Nout(p)|是集合Nout(p)中节点的数量;d为衰减因子,取值范围为[0,1];D(c)标识集合N(c)是否为空集,当时,D(c)=1,否则D(c)=0。
在使用上述公式计算资源和对象重要性时,为了减少计算的数据规模,可设定迭代终止条件,在满足迭代终止条件时停止迭代计算,迭代终止条件包括迭代预定次数或两次迭代误差小于预定阈值。
本实例中,设置d=0.85,设定迭代预定次数为100,两次迭代误差的阈值为10-4,得到Ibenign=[{v1:0.3954},{v2:0.15},{v3:0.2138},{v4:0.4861}]
(3)执行待评估代码,得到待评估进程对计算机中资源和对象的访问记录如下:
1:{“suspicious.exe”,“File”,“C:\WINDOWS\system32\ntdll.dll”,“WriteFile”}
2:{“suspicious.exe”,“Process”,“Explorer.exe”,“CreateProcess”}
根据访问记录得到待评估进程资源访问图中的节点:
v1={“Explorer.exe”,“Process”}
v4={“C:\WINDOWS\system32\ntdll.dll”,“File”}
v5={“suspicious.exe”,“Process”}
同时,根据表1中依赖关系的定义,上述访问记录可以分别表示为:
1:v5←v1
2:v5←v4
因此,得到如图2所示的待评估进程资源访问图。将图1所示的正常进程资源依赖网络与图2所示的待评估进程资源访问图合并,得到如图3所示的待评估进程资源依赖网络。
(4)与步骤(2)类似的,同样以PageRank算法为例,计算正待评估进程资源依赖网络中各个资源和对象的重要性指标Isuspicious=[{v1:0.3954},{v2:0.15},{v3:0.2138},{v4:0.3181},{v5:0.5884}]
(5)根据上述步骤(2)和步骤(4)得到的资源和对象重要性向量I1和I2,按照元素值从大到小排列,分别得到资源和对象重要性排名序列τ={υ4,υ1,υ3,υ2},τ′={υ5,υ1,υ4,υ3,υ2}。在此实例中,对资源和对象重要性排名序列差异的计算采用如下过程:
1)选取k=min(|τ|,|τ′|=4,分别得到重要性排名序列τ和τ′的子序列τ4={υ4,υ1,υ3,υ2},τ′4={υ5,υ1,υ4,υ3}。计算子序列τk和τ′k的差异公式为:
其中,当满足以下三种情况中的任何一种时,
r1只出现在一个序列,r2仅出现在另一个序列;
在其中一个序列中,r1排在r2之前,而在另一个序列中仅出现r2;
r1和r2同时出现在两个序列中,且在两个序列中的前后顺序相反;否则,
2)得到K(τk,τ′k)后,经归一化得到最终Ibenign和Isuspicious之间的差异公式为:
在此实例中可得:
对于其他υi和υj情况下, 最终 K(I1,I2)=8/42=0.5,即可得到待评估代码suspicious.exe的风险值为0.5。
此外,所得到的风险值越大,恶意性越高,可基于此判断代码的恶意性,进行恶意代码检测。
参考文献
[1]L.Page,S.Brin,R.Motwani,and T.Winograd,“The pagerank citation ranking:Bringingorderto the web.”Stanford InfoLab,Technical Report 1999-66,November 1999
[2]T.H.Haveliwala,Topic-sensitive PageRank:a context-sensitive rankingalgorithm for Web search,IEEE Transactions on Knowledge and Data Engineering,Vol.15,No.4,2003
[3]Kleinberg,Jon M.,Authoritative sources in a hyperlinked environment,J.ACM,Vol.46,No.5,1999
Claims (6)
1.一种基于进程资源依赖网络的代码风险性评估方法,其特征在于,包括如下步骤:
(a)根据正常进程对计算机资源和对象的访问记录,构建正常进程资源依赖网络;
(b)计算正常进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Ibenign;
(c)根据待评估代码对计算机中资源和对象的访问记录,构建待评估进程资源访问图,将待评估进程资源访问图和正常进程资源依赖网络合并,得到待评估进程资源依赖网络;
(d)计算待评估进程资源依赖网络中各个资源和对象的重要性指标,得到资源和对象的重要性向量Isuspicious;
(e)计算并量化Ibenign和Isuspicious之间的差异,得到待评估代码的风险和威胁度值;
步骤(e)具体为:
(e1)向量Ibenign和向量Isuspicious中的元素值为对应进程资源依赖网络中各个资源和对象的重要性指标,按照向量Ibenign和向量Isuspicious中的元素值从大到小的顺序,分别得到资源和对象按照重要性从高到低排列的序列τ和τ′;
(e2)计算步骤(e1)中得到的序列τ和序列τ′中资源和对象重要性排名差异,作为向量Ibenign和向量Isuspicious之间的差异,即为待评估代码的风险和威胁度值,其范围为[0,1],且差异值越接近1,表明待评估代码的风险和威胁度值越大;
步骤(a)具体为:
(a1)提取依赖关系:已知正常进程对计算机中资源和对象的访问记录,根据进程与资源和对象之间的访问操作类型,定义进程与计算机资源和对象之间的依赖关系;依赖关系描述了进程访问资源和对象引起的信息依赖关系,包括:如果访问操作类型为“读取”、“加载”,则进程依赖于对应的计算机资源或对象;如果访问操作类型为“创建”、“写入”、“修改”“执行”、“终止”,则对应计算机资源或对象依赖于进程;
(a2)根据步骤(a1)中得到的进程与计算机资源和对象之间的依赖关系,构造正常进程资源依赖网络G(V,E),其中V表示计算机资源和对象的集合,对于vi表示第i个计算机资源或对象,用该资源或对象的名称和位置、节点类型两个属性来描述;E表示进程与计算机资源和对象之间的依赖关系集合,e(vi,vj)∈E表示vi依赖于vj,依赖关系决定了有向边的方向;
步骤(b)和(d)计算重要性指标的方法是Random Walk或其变形方法,包括PageRank、Personalized PageRank或HITS方法。
2.根据权利要求1所述的方法,其特征在于:所述步骤(a)中,正常进程对计算机中资源和对象的访问记录是指在日常操作情况下,捕获一段时间内计算机上运行的正常进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的类型、访问资源和对象的名称和位置;计算机资源和对象包括文件资源对象、注册表资源对象、进程对象、线程对象。
3.根据权利要求1所述的方法,其特征在于:所述步骤(a2)中,节点类型包括“进程”、“线程”、“文件”、“注册表”、“计算机网络地址”。
4.根据权利要求1所述的方法,其特征在于:所述步骤(c)中,待评估进程是指,待评估代码的执行进程;待评估进程对计算机中资源和对象的访问记录是指,执行待评估代码,捕获待评估代码的执行进程对计算机中资源和对象的访问记录,访问记录至少包括进程名、访问操作类型、访问资源和对象的名称和位置。
5.根据权利要求1所述的方法,其特征在于,所述步骤(c)具体为:
(c1)根据待评估进程对计算机中资源和对象的访问记录,提取待评估进程与计算机资源和对象之间的依赖关系,构造待评估进程资源访问图Gi=(Vi,Ei),其中Vi表示待测进程及其访问的相关计算机资源和对象的集合,Ei表示进程与计算机资源和对象之间的依赖关系,依赖关系决定了有向边的方向;
(c2)将步骤(c1)中得到的待评估进程资源访问图Gi,加入步骤(a2)中得到的正常进程资源依赖网络G中,待评估进程资源依赖网络G′(V′,E′),其中V′=V∪Vi,E′=E∪Ei。
6.根据权利要求1所述的方法,其特征在于:所述进程对资源和对象的访问操作类型包括对资源和对象的加载、读取、创建、写入、修改、执行、终止操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182715.4A CN102750444B (zh) | 2012-06-05 | 2012-06-05 | 基于进程资源依赖网络的代码风险性评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210182715.4A CN102750444B (zh) | 2012-06-05 | 2012-06-05 | 基于进程资源依赖网络的代码风险性评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750444A CN102750444A (zh) | 2012-10-24 |
CN102750444B true CN102750444B (zh) | 2015-08-05 |
Family
ID=47030620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210182715.4A Active CN102750444B (zh) | 2012-06-05 | 2012-06-05 | 基于进程资源依赖网络的代码风险性评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750444B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105046155B (zh) * | 2015-06-24 | 2018-05-08 | 北京系统工程研究所 | 软件系统漏洞风险评估方法及装置 |
CN117439824B (zh) * | 2023-12-21 | 2024-03-12 | 山东科技大学 | 基于ai的智慧城市评价方法、系统、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245295B2 (en) * | 2007-07-10 | 2012-08-14 | Samsung Electronics Co., Ltd. | Apparatus and method for detection of malicious program using program behavior |
-
2012
- 2012-06-05 CN CN201210182715.4A patent/CN102750444B/zh active Active
Non-Patent Citations (3)
Title |
---|
基于差异对比法的文件可疑通信行为检测;钟明全等;《计算机应用》;20100101;第30卷(第1期);210-212页 * |
基于网页链接和内容分析的改进PageRank算法;钱功伟;《计算机工程与应用》;20070721;第43卷(第21期);160-164页 * |
基于语义的恶意代码行为特征提取及检测方法;王蕊等;《软件学报》;20120215;第23卷(第2期);379-393页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102750444A (zh) | 2012-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rahimkhani et al. | A fast algorithm for finding most influential people based on the linear threshold model | |
Gurukar et al. | Commit: A scalable approach to mining communication motifs from dynamic networks | |
US9697100B2 (en) | Event correlation | |
Dallachiesa et al. | Uncertain time-series similarity: Return to the basics | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
Mao et al. | Security importance assessment for system objects and malware detection | |
CN101950338A (zh) | 一种基于层次化漏洞威胁评估的漏洞修复方法 | |
CN103577323B (zh) | 基于动态关键指令序列胎记的软件抄袭检测方法 | |
CN103617397B (zh) | 智能终端中应用的安全性评估方法及系统 | |
CN102291392A (zh) | 一种基于Bagging算法的复合式入侵检测方法 | |
Liu et al. | NSDroid: efficient multi-classification of android malware using neighborhood signature in local function call graphs | |
Yin et al. | A K-means Approach for Map-Reduce Model and Social Network Privacy Protection. | |
Xu et al. | Depcomm: Graph summarization on system audit logs for attack investigation | |
Liu et al. | On detecting spatial categorical outliers | |
VS | Multi Label Deep Learning classification approach for False Data Injection Attacks in Smart Grid. | |
CN110289995A (zh) | 基于利用属性攻击图的社交网络行为监控方法及装置 | |
CN105045715A (zh) | 基于编程模式和模式匹配的漏洞聚类方法 | |
CN102158372B (zh) | 一种分布式系统异常检测方法 | |
CN102750444B (zh) | 基于进程资源依赖网络的代码风险性评估方法 | |
CN102904780B (zh) | 检测网络健康度的方法及装置 | |
Avidan et al. | From obfuscation to comprehension | |
Wu et al. | Efficient nonparametric subgraph detection using tree shaped priors | |
CN114297665A (zh) | 基于深度学习的智能合约漏洞检测方法和装置 | |
Gyamfi et al. | Malware detection using convolutional neural network, a deep learning framework: comparative analysis | |
Huang et al. | Riding down the Bay: Space‐time clustering of ecological trends |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |