【技术实现步骤摘要】
一种针对C/C++代码漏洞补丁的摘要生成方法
本专利技术属于二进制漏洞补丁分析
,具体为一种针对C/C++代码漏洞补丁的摘要生成方法。
技术介绍
源代码级补丁通常由两个补丁前后的源代码通过diff命令比对生成,这些补丁在形式上只包含增删的代码片段,安全分析人员很难从补丁文件中了解补丁的上下文语义信息,这给补丁的分析和使用带来了巨大的困难。为了更好地分析和理解补丁,本专利技术首次提出补丁摘要的概念,旨在帮助安全分析人员和目标程序用户更好地分析和理解补丁的语义,并且评估目标二进制上的补丁状态,并更加方便地应用补丁。目前还没有对补丁语义进行自动化分析和收集的相关研究,在这里本专利技术调研了现有最为接近补丁摘要生成的工作,有:其一,通过人工分析补丁源码,从而获取补丁引入修改的语义;其二,自动化地从补丁源码中提取补丁,然后将补丁编译成二进制格式,从而获取补丁的二进制签名特征。这两种方法都存在一定的缺陷,其中人工分析往往需要进行大量的逆向和静态分析,无法进行大规模的应用。而另一种方法提取的补丁签名信息往往与特定的编 ...
【技术保护点】
1.一种针对C/C++代码漏洞补丁的摘要生成方法,其特征在于,具体步骤如下:/n1)在补丁前/后源码编译而成的二进制文件的控制流图CFG中分别找到补丁基本块的某个后续支配节点作为锚节点,锚节点保留了一条路径上补丁基本块的语义信息,同时截断了补丁之后的冗余基本块;/n2)收集单个锚节点决定的补丁相关路径上的控制流和数据流语义特征,并且将其编码成语言无关的语义信息作为路径摘要;/n3)收集所有锚节点对应的路径摘要作为整个补丁的摘要信息。/n
【技术特征摘要】
1.一种针对C/C++代码漏洞补丁的摘要生成方法,其特征在于,具体步骤如下:
1)在补丁前/后源码编译而成的二进制文件的控制流图CFG中分别找到补丁基本块的某个后续支配节点作为锚节点,锚节点保留了一条路径上补丁基本块的语义信息,同时截断了补丁之后的冗余基本块;
2)收集单个锚节点决定的补丁相关路径上的控制流和数据流语义特征,并且将其编码成语言无关的语义信息作为路径摘要;
3)收集所有锚节点对应的路径摘要作为整个补丁的摘要信息。
2.根据权利要求1所述的摘要生成方法,其特征在于,步骤1)中,补丁基本块的定位方法如下:首先收集补丁前后的源码,然后通过diff命令生成补丁文件,接着根据补丁头信息收集补丁所在的函数以及补丁行的行号,定位受补丁影响的基本块位置。
3.根据权利要求1所述的摘要生成方法,其特征在于,步骤1)中,锚节点的获取方法如下:
1)首先确定所有补丁基本块集合,对于补丁前的源码来说是删除行影响的基本块,对于补丁后的源码来说则是添加行影响的基本块;
2)接着取出其中一个补丁基本块,在相应方法...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。