CN111428244A - 源码测试方法及装置 - Google Patents

源码测试方法及装置 Download PDF

Info

Publication number
CN111428244A
CN111428244A CN202010217422.XA CN202010217422A CN111428244A CN 111428244 A CN111428244 A CN 111428244A CN 202010217422 A CN202010217422 A CN 202010217422A CN 111428244 A CN111428244 A CN 111428244A
Authority
CN
China
Prior art keywords
source code
vulnerability
codes
screening
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.)
Pending
Application number
CN202010217422.XA
Other languages
English (en)
Inventor
阳骁尧
夏伟
屈彦
邹为
郑旭
涂耀旭
李冬晓
李际财
王亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
China Construction Bank Corp
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202010217422.XA priority Critical patent/CN111428244A/zh
Publication of CN111428244A publication Critical patent/CN111428244A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种源码测试方法及装置,方法包括:获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告。本发明能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。

Description

源码测试方法及装置
技术领域
本发明涉及计算机技术领域,具体涉及一种源码测试方法及装置。
背景技术
随着金融领域对计算机网络和软件系统的依赖程度逐渐增加,信息技术在给传统金融业务带来巨大变革的同时,也引入了潜在的巨大安全风险,金融领域的软件系统的安全问题亟待解决。
目前金融行业多采购第三方安全静态扫描工具,手工操作安全静态扫描工具进行软件系统的安全测试,第三方的安全静态扫描工具通过扫描源码和依赖库,根据使用的规则集扫描生成独立的报告。整个过程中需要人工操作进行扫描,导致扫描效率低、人工成本高和误报率高等问题,使源码扫描效果大打折扣。
发明内容
针对现有技术中的问题,本发明提供一种源码测试方法及装置,能够提升扫描效率以及扫描结果的可信度和精准度。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种源码测试方法,包括:
获取目标源码;
基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
对所述选取出的漏洞编码进行筛选处理;
基于筛选处理后的漏洞编码生成源码测试报告。
其中,所述获取目标源码,包括:通过人工上传目标源码和/或流程自动化的导入目标源码的方式获取目标源码。
其中,所述扫描处理,包括:编码规范扫描、代码安全扫描和工程规范扫描中至少一种。
其中,所述对所述选取出的漏洞编码进行筛选处理,包括:
基于漏洞过滤库对选取出的漏洞编码进行筛选处理。
其中,所述基于漏洞过滤库对选取出的漏洞编码进行筛选处理,包括:
判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中;
确定存在于所述漏洞过滤库中的编码为误报编码并在选取出的漏洞编码中删除所述误报编码。
进一步的,在所述基于漏洞过滤库对选取出的漏洞编码进行筛选处理之后,还包括:
根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新。
其中,所述基于筛选处理后的漏洞编码生成源码测试报告,包括:
基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识;
基于各个所述唯一标识生成源码测试报告。
进一步的,在所述获取目标源码之后,还包括:
对获取的所述目标源码进行编译;
相对应的,所述基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码,包括:
基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
进一步的,在所述对获取的所述目标源码进行编译之前,还包括:
对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,所述对获取的所述目标源码进行编译,包括:
对各个目标子源码分别进行编译。
进一步的,在所述基于筛选处理后的漏洞编码生成源码测试报告之后,还包括:
对所述源码测试报告进行可视化处理并进行可视化展示。
第二方面,本发明提供一种源码测试装置,包括:
获取单元,用于获取目标源码;
扫描单元,用于基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
筛选单元,用于对所述选取出的漏洞编码进行筛选处理;
处理单元,用于基于筛选处理后的漏洞编码生成源码测试报告。
其中,所述获取单元,包括:
获取子单元,用于通过人工上传目标源码和/或流程自动化的导入目标源码的方式获取目标源码。
其中,所述筛选单元,包括:
筛选子单元,用于基于漏洞过滤库对选取出的漏洞编码进行筛选处理。
其中,所述筛选子单元,包括:
判断模块,用于判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中;
删除模块,用于确定存在于所述漏洞过滤库中的编码为误报编码并在选取出的漏洞编码中删除所述误报编码。
进一步的,所述筛选单元,还包括:
更新子单元,用于根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新。
其中,所述处理单元,包括:
标识子单元,基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识;
处理子单元,用于基于各个所述唯一标识生成源码测试报告。
进一步的,还包括:
编译单元,用于对获取的所述目标源码进行编译;
相对应的,所述扫描单元,包括:
扫描子单元,用于基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
进一步的,还包括:
拆分单元,用于对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,所述编译单元,包括:
编译子单元,用于对各个目标子源码分别进行编译。
进一步的,还包括:
可视化单元,用于对所述源码测试报告进行可视化处理并进行可视化展示。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的源码测试方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的源码测试方法的步骤。
由上述技术方案可知,本发明提供一种源码测试方法及装置,通过获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告,能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中的源码测试方法的第一流程示意图。
图2为本发明实施例中的源码测试方法的第二流程示意图。
图3为本发明实施例中的源码测试方法的第三流程示意图。
图4为本发明实施例中的源码测试方法的第四流程示意图。
图5为本发明实施例中的源码测试装置的第一结构示意图。
图6为本发明实施例中的源码测试装置的第二结构示意图。
图7为本发明实施例中的源码测试装置的第三结构示意图。
图8为本发明实施例中的源码测试装置的第四结构示意图。
图9本发明实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种源码测试方法的实施例,参见图1,所述源码测试方法具体包含有如下内容:
S101:获取目标源码;
在本步骤中,可以通过人工上传目标源码和/或者通过流程自动化的导入目标源码的方式获取目标源码。在通过流程自动化的导入目标源码的方式获取目标源码时,可以由流水线自动化引入或投产流程自动化引入的方式进行获取目标源码。在本实施例中采用人工上传的方式获取目标源码。需要说明的是,采用流程自动化的导入目标源码的方式,可以提高源码测试的自动化程度。
S102:基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
在本步骤中,预设编码规则库为编码规则集合,包括核心规则库和定制化规则库,核心规则库保存由安全专家提供的基于开发语言的基础规则,定制化规则库保存由开发人员基于不同系统提供的定制化的规则。编码规则集合规则涵盖了静态扫描规则和动态扫描规则。静态规则适用于所有文件的扫描,动态规则仅针对编译后的扫描。
需要说明的是,扫描处理,包括:编码规范扫描、代码安全扫描、语句规范和工程规范扫描中至少一种。
S103:对所述选取出的漏洞编码进行筛选处理;
在本步骤中,对选取出的漏洞编码进行筛选处理,判断选取出的漏洞编码中的误报,剔除选取出的漏洞编码中的误报,提升扫描结果的可信度和精准度。具体实施时是基于漏洞过滤库对选取出的漏洞编码进行筛选处理,判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中,确定存在于所述漏洞过滤库中的编码为误报编码,将误报编码从选取出的漏洞编码中删除。
进一步的,根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新和完善,进而降低误报概率,充实漏洞过滤库,随着持续的扫描反馈,不断充实漏洞过滤库,配合定制化规则,形成高度特性化扫描。
S104:基于筛选处理后的漏洞编码生成源码测试报告。
在本步骤中,能够基于筛选处理后的漏洞编码生成源码测试报告,源码测试报告中涵盖了本次扫描任务扫描出的具体漏洞信息和代码位置与片段。
在具体实施时,基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识,根据各个所述唯一标识生成源码测试报告,扫描任务进入交互阶段,等待开发人员处理。
从上述描述可知,本发明实施例提供的源码测试方法,通过获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告,能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。
在本发明的一实施例中,参见图2,所述源码测试方法的步骤S101之后还包括步骤S105,具体包含有如下内容:
S105:对获取的所述目标源码进行编译;
相对应的,S102所述基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码,包括:
S1021:基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
在本步骤中,获取目标源码后可以根据目标源码确定该目标源码对应的编译器,在编译器中对目标源码进行编译便于对目标源码进行测试,提高目标源码测试的准确度。需要说明的是,金融领域的网络接入服务系统中大部分都是用maven来进行工程管理,后台服务管理各个开发组的maven仓库连接。具体实施时,面对金融领域的网络接入服务系统,使用maven进行源码编译和依赖库的获取。针对非maven管理工程,通过系统管理页面进行系统维度的源码依赖包的上传来统一管理。
在本发明的一实施例中,参见图3,所述源码测试方法的步骤S105之前还包含有步骤S106,具体包含有如下内容:
S106:对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,S105所述对获取的所述目标源码进行编译,包括:
S1051:对各个目标子源码分别进行编译。
在本步骤中,目标源码由于不同开发组的开发风格,形成了大小不一的源码包,目标源码较大影响对目标源码进行编译,因此针对超过预设容量的目标源码进行拆分处理,对拆分处理后的各个目标子源码分别进行编译,实现目标子源码的统一调配。
在本发明的一实施例中,参见图4,所述源码测试方法的步骤S104之后还包含有步骤S107,具体包含有如下内容:
S107:对所述源码测试报告进行可视化处理并进行可视化展示。
在本步骤中,对源码测试报告进行可视化处理并进行可视化展示,为用户提供简洁直观的扫描结果的展示。
从上述描述可知,本发明实施例提供的源码测试,只需引入源码,大量减少人工介入程度,使得整个代码扫描流程化标准化,减少人工引入的偏差和检查时间,提高结果可信度,充分利用扫描硬件资源,减少耗时。通过定制化的多维度规则集和漏洞过滤库,能降低项目持续集成后的扫描误报率,提升扫描效率。
本发明实施例提供一种能够实现所述源码测试方法中全部内容的源码测试装置的具体实施方式,参见图5,所述源码测试装置具体包括如下内容:
获取单元10,用于获取目标源码;
扫描单元20,用于基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
筛选单元30,用于对所述选取出的漏洞编码进行筛选处理;
处理单元40,用于基于筛选处理后的漏洞编码生成源码测试报告。
其中,所述获取单元10,包括:
获取子单元,用于通过人工上传目标源码和/或流程自动化的导入目标源码的方式获取目标源码。
其中,所述筛选单元30,包括:
筛选子单元,用于基于漏洞过滤库对选取出的漏洞编码进行筛选处理。
其中,所述筛选子单元,包括:
判断模块,用于判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中;
删除模块,用于确定存在于所述漏洞过滤库中的编码为误报编码并在选取出的漏洞编码中删除所述误报编码。
其中,所述筛选单元,还包括:
更新子单元,用于根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新。
其中,所述处理单元40,包括:
标识子单元,基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识;
处理子单元,用于基于各个所述唯一标识生成源码测试报告。
在本发明的一实施例中,参见图6,还包括:
编译单元50,用于对获取的所述目标源码进行编译;
相对应的,所述扫描单元20,包括:
扫描子单元,用于基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
在本发明的一实施例中,参见图7,还包括:
拆分单元60,用于对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,所述编译单元50,包括:
编译子单元,用于对各个目标子源码分别进行编译。
在本发明的一实施例中,参见图8,还包括:
可视化单元70,用于对所述源码测试报告进行可视化处理并进行可视化展示。
本发明提供的源码测试装置的实施例具体可以用于执行上述实施例中的源码测试方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本发明实施例提供的源码测试装置,通过获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告,能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。
本申请提供一种用于实现所述源码测试方法中的全部或部分内容的电子设备的实施例所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例用于实现所述源码测试方法的实施例及用于实现所述源码测试装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图9为本申请实施例的电子设备9600的系统构成的示意框图。如图9所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图9是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,源码测试功能可以被集成到中央处理器9100中。其中,中央处理器9100可以被配置为进行如下控制:
获取目标源码;
基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
对所述选取出的漏洞编码进行筛选处理;
基于筛选处理后的漏洞编码生成源码测试报告。
从上述描述可知,本申请的实施例提供的电子设备,通过获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告,能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。
在另一个实施方式中,源码测试装置可以与中央处理器9100分开配置,例如可以将源码测试配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现源码测试功能。
如图9所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图9中所示的所有部件;此外,电子设备9600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本发明的实施例还提供能够实现上述实施例中的源码测试方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的源码测试方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
获取目标源码;
基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
对所述选取出的漏洞编码进行筛选处理;
基于筛选处理后的漏洞编码生成源码测试报告。
从上述描述可知,本发明实施例提供的计算机可读存储介质,通过获取目标源码;基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;对所述选取出的漏洞编码进行筛选处理;基于筛选处理后的漏洞编码生成源码测试报告,能够避免人工介入,减少人工引入的偏差和检查时间,提高结果可信度以及提升扫描效率,进而提高扫描结果的精准度。
虽然本发明提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本领域技术人员应明白,本说明书的实施例可提供为方法、装置(系统)或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (21)

1.一种源码测试方法,其特征在于,包括:
获取目标源码;
基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
对所述选取出的漏洞编码进行筛选处理;
基于筛选处理后的漏洞编码生成源码测试报告。
2.根据权利要求1所述的源码测试方法,其特征在于,所述获取目标源码,包括:通过人工上传目标源码和/或流程自动化的导入目标源码的方式获取目标源码。
3.根据权利要求1所述的源码测试方法,其特征在于,所述扫描处理,包括:编码规范扫描、代码安全扫描和工程规范扫描中至少一种。
4.根据权利要求1所述的源码测试方法,其特征在于,所述对所述选取出的漏洞编码进行筛选处理,包括:
基于漏洞过滤库对选取出的漏洞编码进行筛选处理。
5.根据权利要求4所述的源码测试方法,其特征在于,所述基于漏洞过滤库对选取出的漏洞编码进行筛选处理,包括:
判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中;
确定存在于所述漏洞过滤库中的编码为误报编码并在选取出的漏洞编码中删除所述误报编码。
6.根据权利要求4所述的源码测试方法,其特征在于,在所述基于漏洞过滤库对选取出的漏洞编码进行筛选处理之后,还包括:
根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新。
7.根据权利要求1所述的源码测试方法,其特征在于,所述基于筛选处理后的漏洞编码生成源码测试报告,包括:
基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识;
基于各个所述唯一标识生成源码测试报告。
8.根据权利要求1所述的源码测试方法,其特征在于,在所述获取目标源码之后,还包括:
对获取的所述目标源码进行编译;
相对应的,所述基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码,包括:
基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
9.根据权利要求8所述的源码测试方法,其特征在于,在所述对获取的所述目标源码进行编译之前,还包括:
对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,所述对获取的所述目标源码进行编译,包括:
对各个目标子源码分别进行编译。
10.根据权利要求1所述的源码测试方法,其特征在于,在所述基于筛选处理后的漏洞编码生成源码测试报告之后,还包括:
对所述源码测试报告进行可视化处理并进行可视化展示。
11.一种源码测试装置,其特征在于,包括:
获取单元,用于获取目标源码;
扫描单元,用于基于预设编码规则库对所述目标源码进行扫描处理并选取出漏洞编码;
筛选单元,用于对所述选取出的漏洞编码进行筛选处理;
处理单元,用于基于筛选处理后的漏洞编码生成源码测试报告。
12.根据权利要求11所述的源码测试装置,其特征在于,所述获取单元,包括:
获取子单元,用于通过人工上传目标源码和/或流程自动化的导入目标源码的方式获取目标源码。
13.根据权利要求11所述的源码测试装置,其特征在于,所述筛选单元,包括:
筛选子单元,用于基于漏洞过滤库对选取出的漏洞编码进行筛选处理。
14.根据权利要求13所述的源码测试装置,其特征在于,所述筛选子单元,包括:
判断模块,用于判断选取出的漏洞编码中各个编码是否存在于所述漏洞过滤库中;
删除模块,用于确定存在于所述漏洞过滤库中的编码为误报编码并在选取出的漏洞编码中删除所述误报编码。
15.根据权利要求13所述的源码测试装置,其特征在于,所述筛选单元,还包括:
更新子单元,用于根据所述筛选处理后的漏洞编码对所述漏洞过滤库进行更新。
16.根据权利要求11所述的源码测试装置,其特征在于,所述处理单元,包括:
标识子单元,基于筛选处理后的各个漏洞编码各自对应的代码行数、文件路径和函数名称生成各自对应的唯一标识;
处理子单元,用于基于各个所述唯一标识生成源码测试报告。
17.根据权利要求11所述的源码测试装置,其特征在于,还包括:
编译单元,用于对获取的所述目标源码进行编译;
相对应的,所述扫描单元,包括:
扫描子单元,用于基于预设编码规则库对编译通过的所述目标源码进行扫描处理并选取出漏洞编码。
18.根据权利要求17所述的源码测试装置,其特征在于,还包括:
拆分单元,用于对超过预设容量的目标源码进行拆分处理生成所述目标源码对应的各个目标子源码;
相对应的,所述编译单元,包括:
编译子单元,用于对各个目标子源码分别进行编译。
19.根据权利要求11所述的源码测试装置,其特征在于,还包括:
可视化单元,用于对所述源码测试报告进行可视化处理并进行可视化展示。
20.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至10任一项所述的源码测试方法的步骤。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至10任一项所述的源码测试方法的步骤。
CN202010217422.XA 2020-03-25 2020-03-25 源码测试方法及装置 Pending CN111428244A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010217422.XA CN111428244A (zh) 2020-03-25 2020-03-25 源码测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010217422.XA CN111428244A (zh) 2020-03-25 2020-03-25 源码测试方法及装置

Publications (1)

Publication Number Publication Date
CN111428244A true CN111428244A (zh) 2020-07-17

Family

ID=71549578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010217422.XA Pending CN111428244A (zh) 2020-03-25 2020-03-25 源码测试方法及装置

Country Status (1)

Country Link
CN (1) CN111428244A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955914A (zh) * 2011-08-19 2013-03-06 百度在线网络技术(北京)有限公司 一种源文件安全漏洞的检测方法及检测装置
CN104462981A (zh) * 2013-09-12 2015-03-25 深圳市腾讯计算机系统有限公司 漏洞检测方法及装置
CN106598842A (zh) * 2016-11-10 2017-04-26 乐视控股(北京)有限公司 代码检测方法、装置及电子设备
CN107392026A (zh) * 2017-06-23 2017-11-24 北京小度信息科技有限公司 漏洞检测方法及装置
CN109241735A (zh) * 2018-09-27 2019-01-18 四川长虹电器股份有限公司 一种基于漏洞扫描平台的持续集成方法
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN110619215A (zh) * 2019-08-23 2019-12-27 苏州浪潮智能科技有限公司 一种代码安全扫描方法及系统
CN110704847A (zh) * 2019-09-27 2020-01-17 重庆紫光华山智安科技有限公司 漏洞扫描方法及相关装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955914A (zh) * 2011-08-19 2013-03-06 百度在线网络技术(北京)有限公司 一种源文件安全漏洞的检测方法及检测装置
CN104462981A (zh) * 2013-09-12 2015-03-25 深圳市腾讯计算机系统有限公司 漏洞检测方法及装置
CN106598842A (zh) * 2016-11-10 2017-04-26 乐视控股(北京)有限公司 代码检测方法、装置及电子设备
CN107392026A (zh) * 2017-06-23 2017-11-24 北京小度信息科技有限公司 漏洞检测方法及装置
CN109241735A (zh) * 2018-09-27 2019-01-18 四川长虹电器股份有限公司 一种基于漏洞扫描平台的持续集成方法
CN110619215A (zh) * 2019-08-23 2019-12-27 苏州浪潮智能科技有限公司 一种代码安全扫描方法及系统
CN110554965A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 自动化模糊测试方法及相关设备、计算机可读存储介质
CN110704847A (zh) * 2019-09-27 2020-01-17 重庆紫光华山智安科技有限公司 漏洞扫描方法及相关装置

Similar Documents

Publication Publication Date Title
CN113885870B (zh) 应用程序更新方法、电子设备、终端设备及系统
CN110674047B (zh) 软件测试方法、装置及电子设备
US9207913B2 (en) API publication on a gateway using a developer portal
CN110543301A (zh) jenkins代码文件的生成方法及装置
CN113760729A (zh) 一种代码检测方法和装置
CN110941547A (zh) 自动化测试用例库管理方法、装置、介质及电子设备
WO2019237239A1 (zh) 数据测试方法、装置、设备/终端/服务器及计算机可读存储介质
CN113407165A (zh) Sdk的生成和自升级方法、装置、可读介质和设备
CN111428244A (zh) 源码测试方法及装置
CN110716866A (zh) 代码质量扫描方法、装置、计算机设备及存储介质
KR100640243B1 (ko) 이동통신 단말기의 응용프로그램 실행속도 향상장치 및방법
CN113515447B (zh) 系统自动化测试方法及装置
US8615744B2 (en) Methods and system for managing assets in programming code translation
CN111367791B (zh) 一种生成测试用例的方法、装置、介质和电子设备
CN113032004B (zh) 在开发环境中管理开发作业的方法、设备和程序产品
CN113050985A (zh) 前端工程依赖自动注册方法及装置
CN112612474A (zh) 产品移植方法、装置、存储介质和电子设备
CN115543227B (zh) 跨系统数据迁移方法、系统、电子设备及存储介质
CN113297076B (zh) 基于调用链图的服务变更识别方法及装置
CN112905491B (zh) 一种软件测试有效性分析方法及装置
CN113342633B (zh) 一种性能测试方法和装置
CN107544777B (zh) 用于集成开发环境的工作空间控制方法和装置
CN114089993A (zh) 数据作业的处理方法及装置
CN113656794A (zh) 识别Android应用引用的第三方SDK的方法及装置
CN117873480A (zh) 一种定向编译方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220923

Address after: 12 / F, 15 / F, 99 Yincheng Road, Pudong New Area pilot Free Trade Zone, Shanghai, 200120

Applicant after: Jianxin Financial Science and Technology Co.,Ltd.

Address before: 25 Financial Street, Xicheng District, Beijing 100033

Applicant before: CHINA CONSTRUCTION BANK Corp.

Applicant before: Jianxin Financial Science and Technology Co.,Ltd.