掌桥专利:专业的专利平台
掌桥专利
首页

基于扫描方案的静态代码流程分析方法

文献发布时间:2023-06-19 18:58:26


基于扫描方案的静态代码流程分析方法

技术领域

本发明属于计算机技术领域,具体为基于扫描方案的静态代码流程分析方法。

背景技术

近年来,源代码安全扫描有了较大发展,代码扫描分为静态代码扫描和动态代码扫描,其中静态代码扫描技术已经较为成熟。静态代码扫描是读取源代码,对其进行词法语法分析、基于抽象语法树的语义分析、规则检查分析、数据流控制流分析、字符串匹配和模型化分析等方式检查其中的代码缺陷、代码安全、代码规范等问题。在项目开发中,通过对项目代码进行静态扫描分析,从而充分的了解代码中的缺陷、漏洞等问题,做出更加有效的修改和补救。

静态代码扫描的过程是先选定规则,通过工具在选定的规则下对目标代码进行分析,从而找到代码中存在的问题。当前代码扫描工具众多,扫描规则更是成千上万,将扫描过程中选用出一套合适的规则集合甚至多套规则集合是当前欠缺的。本发明提出一种形成扫描方案的改进方法,通过不同语言、不同工具、不同层的应用场景下划分出多种的规则集合,然后再将这些规则集合进行组合形成不同的扫描方案,并再扫描流程中根据方案高效的选用规则快速的有效的进行扫描。极大优化了扫描过程,提升了扫描速度,扩大扫描维度。

发明内容

针对现有技术的不足,本发明提供了基于扫描方案的静态代码流程分析方法,具有针对不同工具、不同类别的规则以及质量门禁,将其有层次的结合起来,形成扫描方案,实现对众多规则的合理选用,提升静态代码扫描结果的准确性与合理性的优点。

为实现上述目的,本发明提供如下技术方案:基于扫描方案的静态代码流程分析方法,具体方法如下:

S1、构建规则集合;

首先,根据多种扫描工具的特性,将规则进行多语言、多维度、多等级的划分,再将不同的规则根据不同的应用常见、不同的使用习惯融合出有特色的规则集合,并在扫描要求一致的情况下,更全面、层次的扫描目标代码;

其次,当扫描要求不确定的时,利用常用、通用的规则,汇集成扫描集合,形成多个有通用性、常用性、特色性的规则集合;

最后,用户也可以自定义的构建适合自己的规则集合,满足不同情况下的需求;

S2、根据不同规则集合融合扫描方案、并设置质量门禁;

首先,基于高效的、常用的、通用的、不同维度的规则集合形成基本的扫描方案;

其次,研究和分析不同的语言、不同应用场景的代码数据特征,搭建完善的扫描方案,然后根据该扫描方案设定合适的门禁规则;

最后,用户也是可以自定义扫描方案和质量门禁的设定;

S3、结合扫描方案,实现静态代码扫描的分布扫描;

首先,待扫描代码根据选用的扫描方案,获取扫描方案中的全部规则集合,然后再根据规则集合找到对应的规则,以及记录的工具信息、语言信息、扫描维度,然后这些信息进行编排整合;

其次在将整合好的信息,根据工具、维度的划分,同时发送不同的扫描服务,实现同时的分布扫描;

S4、利用结果文件的特征信息对多种扫描结果的自动解析与合并;

首先对各个扫描服务的扫描结果进行收集汇总,根据不同结果文件找到对应的解析算法,对结果文件进行解析;

其次对解析出的结果进行合并,然后将结果存储;

S5、通过质量门禁预设值,对扫描结果进行判定,实现扫描结果的研判;

首先根据扫描结果,将结果数据与扫描方案中的质量门禁设定值进行校对,是否达到质量门禁的要求,如果达到质量门禁要求将会进行报警标记和处理。

优选的,所述S1步骤中规则包括但不限于多语言、多维度、多等级,所述等级包括但不限于材料内存大小等级、保密程度等级、复杂程度等级。

优选的,所述S2步骤中结合网络数据检索将各类扫描工具进行数据提取与汇总。

优选的,所述S3步骤中扫描方案中的扫描信息包括但不限于数据扫描规则、数据记录的工具信息、语言信息、扫描维度。

优选的,所述自动解析与合并具体为对不同工具扫描的结果,自动的根据结果文件对其进行解析,然后并对所有工具扫描结果的解析结果进行合并。

优选的,所述质量门禁预设值是对扫描结果评估的“门禁”,即扫描结果中的某一或多个指标是否达到预先设定的值。

与现有技术相比,本发明的有益效果如下:

本申请通过针对不同工具、不同类别的规则以及质量门禁,将其有层次的结合起来,形成扫描方案,实现对众多规则的合理选用,提升静态代码扫描结果的准确性与合理性;

扫描方案、规则集合、规则、工具、语言之间的关联和查询流程,通过扫描方案的关联,找到规则集合,再通过规则集合与规则的关联找到对应规则,最后根据规则中的信息找到对应的语言和工具;

基于扫描方案,有序的将大一统的规则集合有序的下发到各个扫描服务的扫描流程,实现多工具同时分布扫描;

对于不同类型工具的扫描结果根据结果的特征值,进行识别、提取关键数据,并合并全部的结果数据;

本发明针对代码扫描过程复杂的问题,提供一套基于扫描方案的改进方法构建静态代码扫描流程、多工具和多规则选用、不同扫描结果融合这一系列过程,提升扫描的覆盖范围,实现代码扫描广度和深度的结合。

附图说明

图1为JAVA系统推荐扫描方案;

图2为SonarQube的规则情况;

图3为当前传统扫描流程;

图4为本发明的扫描流程。

具体实施方式

基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种技术方案:基于扫描方案的静态代码流程分析方法,具体方法如下:

S1、构建规则集合;

S2、根据不同规则集合融合扫描方案、并设置质量门禁;

S3、结合扫描方案,实现静态代码扫描的分布扫描;

S4、利用结果文件的特征信息对多种扫描结果的自动解析与合并;

S5、通过质量门禁预设值,对扫描结果进行判定,实现扫描结果的研判。

其中,所述S1步骤中规则包括但不限于多语言、多维度、多等级,所述等级包括但不限于材料内存大小等级、保密程度等级、复杂程度等级。

其中,所述S2步骤中结合网络数据检索将各类扫描工具进行数据提取与汇总。

其中,所述S3步骤中扫描方案中的扫描信息包括但不限于数据扫描规则、数据记录的工具信息、语言信息、扫描维度。

其中,自动解析与合并具体为对不同工具扫描的结果,自动的根据结果文件对其进行解析,然后并对所有工具扫描结果的解析结果进行合并。

其中,质量门禁预设值是对扫描结果评估的“门禁”,即扫描结果中的某一或多个指标是否达到预先设定的值。

针对上述情况本申请做具体实施例解释说明,如表1所示,

表1多常用规则融合形成的规则集合

一种基于扫描方案形成能够全面、有深度的静态代码扫描流程的改进方法,以扫描Java代码为例进一步说明。

步骤1、构建规则集

首先,针对每一个Java相关的规则,根据其规则的特性进行划分和标记,并形成规则集合。如表1中Java缺陷代码扫描规则集所示,通过规则的信息描述,确定规则的维度和风险等级。四个规则信息均属于缺陷类别,风险等级为高,将这些规则集成到一块形成Java缺陷代码扫描规则集。

首先,基于多种的、有特色的规则集合进行需求性的搭配形成扫描方案,图1是扫描方案的示意图。

步骤2、根据不同规则集合融合扫描方案、并设置质量门禁

将Java缺陷代码扫描规则集、Java规范代码扫描规则集、Java安全代码扫描规则集融合到一起,同时设定质量门禁如:设定缺陷问题数、文件大小、千行高危BUG数、规范问题数、安全问题数等预设值,形成Java扫描方案。

步骤3、基于扫描方案进行布式扫描

首先,系统根据扫描方案:《Java扫描方案》,查找出对应的规则集合:《Java缺陷代码扫描规则集》、《Java规范代码扫描规则集》、《Java安全代码扫描规则集》。然后再根据规则集合查找出全部的规则,再通过每一个规则找对对应的风险等级、维度、工具等信息。根据查询出的规则以及映射信息进行分类聚合,形成缺陷、规范、安全、代码度量、可维护性、重复代码等不同维度下关联着PMD、Pylint、Golint、ESlint、ccheck、自研系列不同等开源或自研工具信息体。

其次,系统将信息体按照维度、工具的划分将信息发送到多个分布式的扫描服务,扫描服务根据消息中的维度和工具以及规则等信息,同时对目标代码进行扫描。

步骤4、对不同工具扫描结果,根据结果特征进行融合

首先,系统会对扫描的结果进行收集汇总,然后根据每一个扫描工具的结果文件找到对应的解析算法进行解析。其次,获取到解析结果需要根据扫描方案对结果进行融合,将众多的结果形成有序的、易筛查的结果数据,并保存起来。

步骤5、通过合并扫描结果和设置门禁给出扫描研判结果,并给出详细的报告结果

首先,系统根据整体扫描的结果与扫描方案设定的质量门禁进行比对,例如千行高危BUG数是否达到预先设定值,如果达到预设值将会发出警报和设定标志,警报包含不限于发送邮件、短信等,满足实时提醒的需求。其次,系统会根据扫描结果和质量门禁的研判情况,将给出一份详细的完成的报告方便知悉本次扫描的结果。

图3说明:传统的扫描流程,较为单一,以工具为中心展开扫描,结果维度固然也较为单一,多维度的规则无法开展;

图4说明:本发明的扫描流程,基于扫描方案,开展对维度、多工具的分布扫描,并对扫描结果进行研判。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

相关技术
  • 一种基于静态分析的应用系统代码安全扫描装置
  • 基于源代码静态分析的软件安全代码分析器及其检测方法
技术分类

06120115751398