System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及静态代码分析技术,具体涉及一种基于中间表示的源代码和二进制代码混合软件漏洞分析方法。
技术介绍
1、随着软件规模的增加和复杂度的提高,软件系统的安全问题也愈发受到关注,软件中的安全漏洞可能会导致信息泄漏、拒绝服务、系统瘫痪等严重后果。为了解决这一问题,静态代码分析技术成为了一种重要的漏洞检测方法。
2、静态代码分析技术是一种不依赖于实际执行代码的分析方法,可以在不运行程序的情况下对代码进行分析,以发现其中的缺陷和漏洞。目前,静态代码分析技术已经广泛应用于软件开发和安全领域,例如:源代码安全扫描、二进制代码反汇编、污点分析、数据流分析、控制流分析、符号执行等技术。
3、然而,在混合软件中,不同的编程语言、不同的代码形式(源代码、库文件和二进制)、不同的执行环境(jvm、python解释器、c++库等)之间的交互和通信增加了混合软件分析的复杂度和难度,导致静态代码分析技术在混合软件中的应用存在一定困难和挑战。因此,研究混合软件的静态代码分析技术对于提高软件安全性和可靠性具有重要意义。
4、对于混合软件的定义,本领域认为一般涵盖两种情形:
5、1.多种编程语言的混合,如软件内部同时包含了java、c++、python等多种语言的代码;
6、2.多种形式代码的混合,如软件内部包括源代码、库文件和二进制等多种形式的代码。
7、一些研究人员已经尝试解决这些问题,例如基于符号执行的技术可以对源代码和二进制进行分析,同时可以处理不同编程语言和代码形式之间的交互
8、目前,对于混合软件的静态代码分析技术仍处于研究阶段,需要进一步深入研究和探索,以提高分析的精度和效率。而且,传统的静态分析方法往往只能针对单一的编程语言或代码形式进行分析,难以针对混合软件进行全面的漏洞分析。
技术实现思路
1、本专利技术至少一个方面和优点将在下面的描述中部分地被阐述,或者可以从描述中显而易见,或者可以通过实践本公开的主题来获取。
2、为了实现对于混合软件全面、深入的漏洞分析,本文提出了一种基于中间表示的混合软件漏洞分析方法,通过静态代码分析技术,能够在不执行代码的情况下,对多种编程语言、多种形式代码统一建模并进行漏洞分析。
3、本专利技术的目的是提供一种针对源代码和二进制代码混合软件的漏洞分析方法。对混合软件中的多种编程语言、多种形式代码建立统一的中间表示,然后在中间表示的基础上建立数据流分析模型,进而通过流追踪,发现软件中的安全漏洞。
4、根据本专利技术的第一个方面,一种混合软件漏洞分析方法,包括:
5、基于混合软件确定统一中间表示ir;
6、基于统一中间表示ir构造数据流表示模型vfg;
7、基于数据流表示模型vfg定位潜在漏洞的植入点和触发点;
8、通过流追踪的方式对漏洞进行分析;
9、所述混合软件至少包含两种以上的编程语言或者两种以上的代码形式。
10、根据本专利技术的一个实施例,统一中间表示的ir构建过程包括:
11、基于被测软件中待分析的代码获得漏洞分析的目标代码集合,所述待分析的代码至少包括源代码、压缩包、库文件或二进制文件;
12、对目标代码集合进行代码提取,得到至少包含源代码或伪代码的待分析文件集;
13、基于抽象语法树构建统一中间表示。
14、根据本专利技术的一个实施例,所述代码提取的操作还包括:
15、对压缩包、库文件或二进制文件进行包含反编译和/或解压缩,获取源代码和/或伪代码。
16、根据本专利技术的一个实施例,抽象语法树ast基于对目标代码集合的控制流分析获得。
17、根据本专利技术的一个实施例,通过流追踪的方式对漏洞进行分析包括:
18、在潜在漏洞的植入点和触发点之间进行路径搜索,确定是否存在可行路径;
19、在存在可行路径时,基于可行路径中是否存在完全中断漏洞的节点,确定是否存在漏洞。
20、根据本专利技术的一个实施例,通过流追踪的方式对漏洞进行分析包括:
21、在潜在漏洞的植入点和触发点之间进行路径搜索,确定是否存在可行路径;
22、在存在可行路径时,基于可行路径中存在的中断漏洞的节点,确定漏洞的类型。
23、根据本专利技术的第二个方面,本专利技术提供了一种混合软件漏洞分析系统,包括:
24、统一中间表示ir获取单元,用于基于混合软件确定统一中间表示ir;
25、数据流表示模型vfg获取单元,用于基于统一中间表示ir构造数据流表示模型vfg;
26、漏洞分析单元,用于基于数据流表示模型vfg定位潜在漏洞的植入点和触发点,以及通过流追踪的方式对漏洞进行分析;
27、所述混合软件至少包含两种以上的编程语言或者两种以上的代码形式。
28、本专利技术通过建立统一的中间表示模型,实现对多种编程语言、多种形式代码混合的复杂软件的检测,尤其对于多模块交互的场景,能够弥补传统检测方式的不足,提升漏洞检测的能力,发现软件系统中的深层次问题。
本文档来自技高网...【技术保护点】
1.一种混合软件漏洞分析方法,其特征在于,包括:
2.如权利要求1所述的一种混合软件漏洞分析方法,其特征在于,统一中间表示的IR构建过程包括:
3.如权利要求2所述的一种混合软件漏洞分析方法,其特征在于,所述代码提取的操作还包括:
4.如权利要求2所述的一种混合软件漏洞分析方法,其特征在于,抽象语法树AST基于对目标代码集合的控制流分析获得。
5.如权利要求1所述的一种混合软件漏洞分析方法,其特征在于,通过流追踪的方式对漏洞进行分析包括:
6.如权利要求1所述的一种混合软件漏洞分析方法,其特征在于,通过流追踪的方式对漏洞进行分析包括:
7.一种混合软件漏洞分析系统,其特征在于,包括:
【技术特征摘要】
1.一种混合软件漏洞分析方法,其特征在于,包括:
2.如权利要求1所述的一种混合软件漏洞分析方法,其特征在于,统一中间表示的ir构建过程包括:
3.如权利要求2所述的一种混合软件漏洞分析方法,其特征在于,所述代码提取的操作还包括:
4.如权利要求2所述的一种混合软件漏洞分析方法,其特征在于,抽象...
【专利技术属性】
技术研发人员:岳贯集,张世琨,高庆,
申请(专利权)人:北京北大软件工程股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。