一种汽车电控单元代码漏洞分析方法和系统技术方案

技术编号:24354100 阅读:19 留言:0更新日期:2020-06-03 02:11
本发明专利技术公开了一种汽车电控单元代码漏洞分析方法和系统,根据待分析漏洞的类型设置对应的漏洞分析规则,对待检测的汽车电控单元代码进行头文件目录标记后进行编译,生成符号执行语法树和程序控制流图,根据控制流图遍历访问符号执行语法树进行漏洞检测,最后将符号执行语法树中各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。本发明专利技术可以实现汽车电控单元代码漏洞的自动分析和报告生成,提高漏洞分析效率,从而保证汽车电控单元代码的安全性。

A method and system of code vulnerability analysis for automobile electronic control unit

【技术实现步骤摘要】
一种汽车电控单元代码漏洞分析方法和系统
本专利技术属于汽车电控单元
,更为具体地讲,涉及一种汽车电控单元代码漏洞分析方法。
技术介绍
随着智能网联汽车的普及,车载电子设备越来越多且越来越复杂,激增的电子设备数量也使得代码量大幅上升,当汽车上的代码规模相当大后,仅仅依靠人工审阅代码漏洞和混淆代码变得不现实。汽车行业有别于传统互联网行业,对软件的安全有相当高的标准和要求,代码安全问题在汽车上可能会导致严重的问题,然而专门对汽车代码漏洞分析的研究目前还比较少。因此对汽车代码漏洞的分析规则及方法的研究有助于汽车和软件行业安全健康地发展。虽然目前有一些开源工具可以实现代码漏洞分析,但是依然存在需要人工输入参数和命令、并且从分析结果中手动筛选的问题,无法完成自动化分析。因此研发一种自动化的代码漏洞分析方法十分有必要。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种汽车电控单元代码漏洞分析方法和系统,实现汽车电控单元代码漏洞的自动分析和报告生成,提高漏洞分析效率,从而保证汽车电控单元代码的安全性。为实现上述专利技术目的,本专利技术汽车电控单元代码漏洞分析方法包括以下步骤:S1:根据待分析漏洞的类型,设置对应的漏洞分析规则;S2:对待检测的汽车电控单元代码进行头文件目录标记;S3:根据标记好的头文件目录,对待检测的源代码进行编译,生成中间语言并对其进行分析,生成符号执行语法树;S4:根据符号执行语法树生成程序控制流图;S5:根据控制流图遍历访问符号执行语法树,通过符号执行模拟汽车电控单元程序运行,将符号执行语法树程序块中的函数与分析规则中对应函数做匹配,如果匹配通过,则判定该程序块对应的代码无漏洞,如果匹配未通过,则判定该程序块对应的代码存在漏洞,对其进行记录;S6:将步骤S5所得到的各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。本专利技术还提供了一种汽车电控单元代码漏洞分析系统,包括工程管理模块、分析规则库模块、漏洞分析模块和报告生成模块,其中:工程管理模块,用于导入待检测的汽车电控单元代码,并对其进行头文件目录标记;分析规则库模块,用于存储汽车电控单元代码各漏洞类型对应的分析规则;漏洞分析模块,用于根据用户所输入的待分析漏洞类型从分析规则库模块中读取相应分析规则,然后按照以下步骤进行漏洞分析:1)对待检测的源代码进行编译,生成中间语言并对其进行分析,生成符号执行语法树;2)根据符号执行语法树生成程序控制流图;3)根据控制流图遍历访问符号执行语法树,通过符号执行模拟汽车电控单元程序运行,将符号执行语法树程序块中的函数与分析规则中对应函数做匹配,如果匹配通过,则判定该程序块对应的代码无漏洞,如果匹配未通过,则判定该程序块对应的代码存在漏洞,对其进行记录并将该记录发送至报告生成模块;报告生成模块,用于将接收到的各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。本专利技术汽车电控单元代码漏洞分析方法和系统,根据待分析漏洞的类型设置对应的漏洞分析规则,对待检测的汽车电控单元代码进行头文件目录标记后进行编译,生成符号执行语法树和程序控制流图,根据控制流图遍历访问符号执行语法树进行漏洞检测,最后将符号执行语法树中各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。本专利技术可以实现汽车电控单元代码漏洞的自动分析和报告生成,提高漏洞分析效率,从而保证汽车电控单元代码的安全性。附图说明图1是本专利技术汽车电控单元代码漏洞分析方法的具体实施方式流程图;图2是符号执行语法树的示例图;图3是本实施例中的函数匹配示例图;图4是本专利技术汽车电控单元代码漏洞分析系统的具体实施方式结构图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。实施例图1是本专利技术汽车电控单元代码漏洞分析方法的具体实施方式流程图。如图1所示,本专利技术汽车电控单元代码漏洞分析方法的具体步骤包括:S101:设置漏洞分析规则:根据待分析漏洞的类型,设置对应的漏洞分析规则。在汽车电控单元代码中存在多种漏洞,例如计算机安全应急响应组(CERT)的语法标准检测规则、一般弱点列举(CWE)和开放式Web应用程序安全项目(OWASP)中可用于汽车ECU代码安全漏洞的规则和标准、针对内存的操作的规则和标准。不同漏洞的分析规则不尽相同,因此在实际应用时要根据待分析漏洞的类型来设置分析规则。S102:标记头文件目录:对待检测的汽车电控单元代码进行头文件目录标记,具体方法为:从待检测的汽车电控单元代码目录逐级向下扫描,如发现头文件,记录所在目录。当存在第三方依赖库时,添加预先设置好的依赖库头文件目录,从而解决编译当中的依赖库问题。S103:生成符号执行语法树:根据标记好的头文件目录,对待检测的源代码进行编译,生成中间语言并对其进行分析,生成符号执行语法树。符号执行语法树是源代码语法结构的一种抽象表示,它以树状的形式表现编程语言的语法结构,符号执行语法树上的每个节点即为一个程序块,表示源代码中的一种结构,其包含了程序状态、变量的值、当前执行的语句和执行这条语句满足的路径条件。符号执行语法树使用符号值来表示程序的输入数据,并将程序的运算过程逐指令或逐语句地转换为数学表达式。符号执行语法树为每一条路径建立一系列以输入数据为变量的符号表达式在符号执行过程中,每当遇到判断与跳转语句时,符号执行工具便会将当前执行路径的路径约束收集到该路径的约束集合中。其中,路径约束是指程序分支指令中与输入符号相关的分支条件的取值,是一系列不具有量词的布尔型公式。而路径约束集合则被用来存储每一条程序路径上收集到的约束,用“与”操作进行连接,通过使用约束求解器对约束集合进行求解,可以得到该条路径的可达性:如果约束求解的结果有解,表示该条路径可达,否则表示该条路径不可达,在时间与计算资源足够的理想情况下,符号执行能够遍历目标程序的所有路径并判断其可达性。图2是符号执行语法树的示例图。如图2所示,符号执行语法树用一般的符号值来代表变量的具体值,用一阶逻辑表达式来进行分支的约束,从而穷举该代码所能走的全部路径。语法树中每一个程序块都是程序顺序执行的最大单元即不含分支等语句,程序块如图2中A-H所示。就中间语言的分析方法而言,包括词法分析、语法分析和语义分析,词法分析是将待检测源代码转换成一系列记号,并且丢弃掉其中不重要的部分(如空白、注释);语法分析是在词法分析的基础上将记号流按照源程序语法规则进行分析形成抽象语法树;语义分析是对结构上正确的源程序进行上下文有关性质的审查。S104:生成程序控制流图:根据符号执行语法树生成程序控制流图。控制流图是以程序块为基本单位相互连接以表示在程序执本文档来自技高网...

【技术保护点】
1.一种汽车电控单元代码漏洞分析方法,其特征在于,包括以下步骤:/nS1:根据待分析漏洞的类型,设置对应的漏洞分析规则;/nS2:对待检测的汽车电控单元代码进行头文件目录标记;/nS3:根据标记好的头文件目录,对待检测的源代码进行编译,生成中间语言并对其进行分析,生成符号执行语法树;/nS4:根据符号执行语法树生成程序控制流图;/nS5:根据控制流图遍历访问符号执行语法树,通过符号执行模拟汽车电控单元程序运行,将语法树程序块中的函数与分析规则中对应函数做匹配,如果匹配通过,则判定该程序块对应的代码无漏洞,如果匹配未通过,则判定该程序块对应的代码存在漏洞,对其进行记录;/nS6:将步骤S5所得到的各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。/n

【技术特征摘要】
1.一种汽车电控单元代码漏洞分析方法,其特征在于,包括以下步骤:
S1:根据待分析漏洞的类型,设置对应的漏洞分析规则;
S2:对待检测的汽车电控单元代码进行头文件目录标记;
S3:根据标记好的头文件目录,对待检测的源代码进行编译,生成中间语言并对其进行分析,生成符号执行语法树;
S4:根据符号执行语法树生成程序控制流图;
S5:根据控制流图遍历访问符号执行语法树,通过符号执行模拟汽车电控单元程序运行,将语法树程序块中的函数与分析规则中对应函数做匹配,如果匹配通过,则判定该程序块对应的代码无漏洞,如果匹配未通过,则判定该程序块对应的代码存在漏洞,对其进行记录;
S6:将步骤S5所得到的各个程序块的漏洞检测结果归纳整理为漏洞分析报告并输出。


2.根据权利要求1所述的汽车电控单元代码漏洞分析方法,其特征在于,所述步骤S2中头文件目标标记的具体方法如下:从待检测的汽车电控单元代码目录逐级向下扫描,如发现头文件,记录所在目录;当存在第三方依赖库时,添加预先设置好的依赖库头文件目录。


3.根据权利要求1所述的汽车电控单...

【专利技术属性】
技术研发人员:李允王崇鉴赵焕宇
申请(专利权)人:广东为辰信息科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1