【技术实现步骤摘要】
一种源代码检测方法及装置、电子设备
本专利技术涉及软件检测
,特别是指一种源代码检测方法及装置、电子设备。
技术介绍
现有的源代码漏洞和缺陷检测方法分为静态测试和动态测试两大类。静态测试主要是通过对代码进行静态分析(主要包括词法分析、程序评注、类型推断和模型检测等)来推测程序运行时的表现行为,从而发现代码中可能存在的缺陷。动态检测是指在程序运行过程中注入测试数据,观察程序运行是否正常,输出是否符合程序意图,达到寻找程序漏洞的目的。其中,静态测试与动态测试均包括分别测试不同类别源代码的测试工具,各种测试工具的测试内容与测试角度不同,均存在不同程度的误报和漏报情况,无法全面准确的评估软件源代码的真实情况。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种源代码检测方法及装置、电子设备,能够根据源代码的特征,调用合适有效的至少一种检测工具对源代码进行检测,并对各检测结果进行动态验证得到更为全面准确的检测结果。基于上述目的,本专利技术提供了一种源代码检测方法,包括:采集源代码样本,分析确定源代码的多个样本特征,得到包括多个样本特征的样本特征集,所述样本特征包括开发语 ...
【技术保护点】
1.一种源代码检测方法,其特征在于,包括:采集源代码样本,分析确定源代码的多个样本特征,得到包括多个样本特征的样本特征集,所述样本特征包括开发语言、开发平台、编译环境、程序类型、运行环境和应用领域;根据所述样本特征集,确定源代码所需检测的检测指标组,从软件检测工具集中确定出用于检测所述检测指标组中各指标项的至少一种检测工具,所述软件检测工具集包括多种静态检测工具和多种动态检测工具;利用所述至少一种检测工具对所述源代码进行检测,获得相应的至少一组检测结果;对所述至少一组检测结果进行标准化处理,得到标准化检测结果;根据所述标准化检测结果,对所述源代码进行动态验证,得到最终的检测 ...
【技术特征摘要】
1.一种源代码检测方法,其特征在于,包括:采集源代码样本,分析确定源代码的多个样本特征,得到包括多个样本特征的样本特征集,所述样本特征包括开发语言、开发平台、编译环境、程序类型、运行环境和应用领域;根据所述样本特征集,确定源代码所需检测的检测指标组,从软件检测工具集中确定出用于检测所述检测指标组中各指标项的至少一种检测工具,所述软件检测工具集包括多种静态检测工具和多种动态检测工具;利用所述至少一种检测工具对所述源代码进行检测,获得相应的至少一组检测结果;对所述至少一组检测结果进行标准化处理,得到标准化检测结果;根据所述标准化检测结果,对所述源代码进行动态验证,得到最终的检测结果;所述动态验证的方法是:使用WebInspect动态扫描工具对所述源代码进行扫描,得到扫描结果,将所述扫描结果与所述标准化检测结果的相应内容进行对比,若对比结果相似或一致,则所述标准化检测结果中的缺陷通过动态验证。2.根据权利要求1所述的源代码检测方法,其特征在于,确定所述样本特征的方法是:若存在所述源代码的工程文件,则根据所述工程文件的扩展名,确定所述源代码的开发语言、开发平台,根据所述工程文件的内容,确定所述源代码的编译环境,若不存在所述源代码的工程文件,则根据所述源代码文件的扩展名,确定所述源代码的开发语言。3.根据权利要求1所述的源代码检测方法,其特征在于,所述标准化处理的方法是:对比各检测工具的检测结果,去掉重复的测试指标项,合并不重复的测试指标项,去除误报的测试指标项。4.根据权利要求3所述的源代码检测方法,其特征在于,所述去除误报的测试指标项的方法包括:建立误报分析专家库,该误报分析专家库保存了各检测工具及其相应的误报结果标记,以及将各检测工具的检测结果进行对比,若多个检测工具检测出同一个缺陷,则认为误报等级低,反之认为误报等级高,根据误报等级,综合进行筛选。5.根据权利要求1所述的源代码检测方法,其特征在于,根据所述编译环境,从所述软件检测工具集中确定与所述编译环境相匹配的编译环境引擎,利用所述编译环境引擎对所述源代码进行检测;根据运行环境,检测运行参数配置是否合理,若所述运行参数的配置不合理,记录检测结果并提供参数配置建议;根据程序类...
【专利技术属性】
技术研发人员:徐俊,李纠,李红霞,罗俊松,倪皖波,林佳,
申请(专利权)人:长沙软工信息科技有限公司,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。