基于多引擎融合的自动化代码安全检测平台研发

admin 2022年4月9日02:25:32评论83 views字数 2279阅读7分35秒阅读模式

Gartner最新数据表明,信息安全75%以上的威胁都来自于软件自身的安全问题,而源代码中的安全隐患正是大多数安全漏洞的根源所在。近几年,代码安全审计正在逐渐步入安全行业的视野,并占据了日渐重要的地位,这项工作通过分析软件系统的源代码,发现和消除源代码中存在的安全漏洞、逻辑缺陷,从源头上保障系统安全,对于政府部门、党政机关的重要信息系统和电信、金融、能源、交通等国家重点行业的信息化基础设施的安全保障和自主可控都具有重要意义。

基于多引擎融合的自动化代码安全检测平台研发

传统的代码安全审计以人工审计为主,通过代码走查,结合动态验证等辅助手段,依据审计人员自身的经验寻找软件代码中的安全隐患。这种方式的安全检查结果严重依赖于审计人员的经验积累和技术水平,容易导致重要问题的遗漏,并且效率较低,很难推广至大规模的系统和应用上。随着代码自动化分析技术的发展,国内外在软件安全性分析领域开展了大量的研究,并推出了代码安全缺陷检测工具,如Fortify、Coverity、国产工具360代码卫士等。由于各个工具自身的技术特点和局限,往往是各有侧重,但均存在较高的误报率和漏报率,尚不能作为“万金油”全面通吃。同时,商业工具往往价格不菲,对于中小企业而言,为了提升代码质量而购买多款商业工具并不是一种性价比高的做法。


俗话说:“工欲善其事,必先利其器”。结合多年的业务经验,国家互联网应急中心(CNCERT)源代码安全测评团队联合360代码卫士团队,构建了一个多引擎融合的自动化源代码安全检测平台,集成多款知名商业代码检测工具和自主研发工具,取长补短,实现了从单兵作战到集团军作战的突破。同时,作为一款向社会开放的公共平台,中小企业可远程上传代码并利用该平台实现对代码的安全性检测,降低了代码安全质量保障的成本。


基于多引擎融合的自动化代码安全检测平台概况

基于多引擎融合的自动化代码安全检测平台研发


对于用户远程提交的项目代码,平台综合利用多款商业代码安全检测引擎,通过特定算法整合各引擎的分析结果,并支持用户在线审计结果和导出检测报告,整体分析步骤如下图所示。具体功能包括:


·  提供统一的开放平台,允许企业用户、个人开发者远程在线提交待检测软件代码或APP代码;

·  为应用软件源代码、网站源代码、手机APP源代码、APK文件、编译后代码等进行安全漏洞、代码隐患、恶意行为等的安全检测;

·  实现多个代码安全分析引擎的一键检测,通过智能算法整合多个引擎的检测结果,实现不同引擎的互补,最终给用户呈现出归一化的检测结果;

·  支持多用户、并发的在线结果审计,用户可在线查看缺陷或漏洞详细信息、触发路径、相关问题代码片段、修复建议、单个工具的检测结果等信息;

·  提供定制化的检测报告下载功能;

·  用户可以方便地为各个引擎添加自定义安全规则,简单高效;

·  具备对业务逻辑漏洞等高级漏洞的检测能力;

·  对检测项目进行流程管理,提供友好的用户界面、完善的用户权限划分、对检测任务提供日志管理等功能;

·  用户上传检测的代码在检测完毕后会自动化安全删除,更好的保护用户隐私。

 

该平台同时具备良好的检测性能,主要包括:

·  支持对C/C++/C#/Objective-C/Java/PHP/Python等语言开发的程序进行检测;

·  能够检测的缺陷类型不少于600个;

·  平台可以同时支持的并发任务数不少于20个;

·  支持maven等主流开发框架。


多分析引擎智能化融合的技术特色


构建该平台的出发点是整合多款代码安全性检测引擎,实现一键检测和结果归一化,其重要意义包括:

·  免除了用户对不同检测引擎的繁琐配置和适配操作;

·  避免用户分别理解不同报告形式的麻烦;

·  不同检测引擎的分析结果往往有大量重复,结果的归一化可避免用户花费大量时间查看不同引擎的相同结果;

·  通过智能算法整合多个引擎的分析结果,实现优势互补,能够显著提升缺陷结果的准确率和检出率。


具体来说,平台基于如下思想,对缺陷检测结果进行智能归一化、排序、筛选:

·  不同引擎检测出的同一个缺陷往往具有类似的爆发点和传播路径;

·  多个引擎检测到的缺陷集合比单个引擎检查到的缺陷集合大,因而利用多款引擎的检测结果的并集进行判断决策可减少漏报率;

·  如果同一个缺陷被多款引擎检测到,那么该缺陷极有可能是漏洞,因而利用多款引擎的检测结果的交集进行判断决策可减少误报率。


因此,针对多款源代码安全检测引擎检测规则覆盖面和检测能力侧重点不同的问题,使用多引擎数据融合技术,通过查漏去重、精确定位,能够极大提高发现安全漏洞的效率,解决现有引擎结果误报率和漏报率较高,以及多款引擎无法协同发挥作用的难题。


主要业务应用案例


国家互联网应急中心源代码安全测评团队依托网络安全国家队的强大人才储备和国家漏洞库(CNVD)的丰富资源,以支撑政府、服务行业为宗旨,开展代码安全审计服务。


目前,基于多引擎融合的自动化代码安全检测平台主要用于支撑中心源代码安全测评团队的代码审计业务工作,平台包括10余款商业检测工具和自主研发的检测工具,审计业务覆盖网信办、工信部等重要政府部门,以及电信、金融、电力等重点行业。此外,平台已在部分企业单位展开应用,并收到了大量来自用户的积极反馈。


基于该平台,已完成对近300款流行的开源软件进行代码安全检测,并且每季度持续发布开源软件代码安全分析报告,预警开源软件的安全问题,已取得了一定的社会影响。利用该平台累计检测超过1亿行代码,发现源代码安全缺陷20余万个,其中高危安全缺陷3万余个。


(本文作者:国家互联网应急中心运行三部首席工程师 王博)

原文始发于微信公众号(奇安信集团):基于多引擎融合的自动化代码安全检测平台研发

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月9日02:25:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于多引擎融合的自动化代码安全检测平台研发http://cn-sec.com/archives/619876.html

发表评论

匿名网友 填写信息