实现高效、高精度的静态应用安全检测
作者: 日期:2022年02月07日 阅:12,901

随着科技的飞速发展,网络空间的主权完整和安全也成为影响国际关系的重要因素,国家之间的竞争也在由物理空间逐渐转向网络空间,国内的网络安全也面临着越来越多的风险和挑战。根据Gartner提供的数据表示,75%的安全攻击是由软件自身漏洞造成的,针对软件漏洞的攻击已成为黑客入侵的主要方式之一,而且攻击者通过挖掘软件代码中的多个安全漏洞,形成攻击链条的不法行为,对关系到国计民生的软件系统带来了重大安全隐患。除此之外,开源文化的盛行在大幅度提升软件开发效率的同时,也增进了潜在的风险,这些开源组件中潜在的安全漏洞很可能被攻击者利用。

面对这些威胁时,传统上以“渗透测试”为主的软件安全检测手段,发现安全漏洞的覆盖率远远不足,且产品上线之前执行的渗透测试相对滞后,安全漏洞修复成本过高。因此在对开发效率和安全要求越来越高的情况下,企业组织还要面临更严峻的挑战:

  • 敏捷开发快速迭代,更短的开发周期,对安全检测响应要求更高;
  • 很多企业在系统上线运行之后采用加固、防火墙、WAF等措施,这些被动防御措施,只能防范已有的安全漏洞,对于未知的安全漏洞无法进行防御,导致软件仍然存在着巨大风险;
  • 在研发阶段没有有效的安全检测手段,缺乏有效的检测工具,或检测工具得不到有效利用。

传统软件测试工作强调左移,要求进行单元测试和接口测试,其实代码中的安全漏洞也属于缺陷,这种安全上的缺陷比功能缺陷为企业带来了更大的风险,所以在研发阶段,有必要引入静态应用安全测试工具(SAST),对代码进行迭代开发的同时,进行迭代检测。介于上述行业背景和技术发展现状,发布本期牛品推荐——开源网安:CodeSec代码审核平台。

标签

静态应用安全测试工具、代码审核工具、代码审计、源代码扫描、开发安全

用户痛点

目前SAST产品市场已经成熟,很多的安全厂商推出SAST类型的检测工具,形成了百花齐放、百家争鸣的情况,这对于很多企业决策者来说,带来了工具选择性的挑战,同时也存在着一些认知上的误区。主要体现在以下几点:

  1. SAST误报率高,对于检测出的漏洞进行复核,工作量较大;
  2. 安全漏洞描述过于专业化,让开发人员很难理解;
  3. 未提供直接的、代码级的修复方案,开发人员需要额外花时间寻找可行的修复方案;
  4. 对于中、大型以上企业往往需要对大量软件进行迭代检测,需要高并发、高可调度的方案;
  5. SAST工具不能够满足企业与现有流程规范的一致性;
  6. SAST工具集成度不够,需要花费人工时间去进行处理。

解决方案

开源网安的“CodeSec 代码审核平台“是全新一代静态应用安全测试(SAST)解决方案,主要用于软件代码安全审核和质量分析,提供漏洞详情和修复方案,能够帮助开发和安全团队在开发阶段早期发现并修复漏洞,提升软件代码安全质量,实现“安全左移”,全面助力企业用户解决上述痛点问题;

首先,由于静态分析技术的局限性,导致静态分析工具存在一定比例的误报率。针对这一问题,开源网安的CodeSec通过采用自研的核心检测引擎,在传统工具多是采用数据流分析的基础上,采用函数摘要、指向分析等进行上下文敏感的分析,进而发现传统检测工具无法检测出的安全缺陷和漏洞,同时,通过对用户开发软件进行共性分析,进一步优化软件产品的检测规则,可以大幅度减少误报。

图:完整的安全弱点概览

其次, CodesSec的安全专家对CWE、OWASP等安全漏洞进行大量研究的基础上,对安全漏洞描述做了全新的描述,包括存在的风险、缓解措施、示例代码、污点轨迹跟踪、定位到代码行等描述信息,能够让开发人员快速理解漏洞的引入点、触发点,找到最佳的修复位置,排除风险。另外,开源网安能够为开发人员提供安全编码方面的培训,对检测报告提供解读服务、远程支持等附加服务,最大程度上帮助开发人员解决安全开发中的实际问题。

第三, CodeSec在检测报出的安全漏洞描述中,提供代码修复示例,能够让开发人员快速修复漏洞。同时,CodeSec团队也在研究安全漏洞自动修复技术,计划在不久的将来推出能够安全漏洞自动修复的版本,进而为代码级解决方案提供全面支撑。

图:详细的漏洞信息与修复方案

第四,在并发检测的需求上,CodeSec采用多进程、多线程方式,每个检测任务在一个线程中进行检测分析,对于查询、审计等采用独立线程进行处理等方式,可以支持多个检测任务并发检测。而对于并发需求更高的用户,可以采用分布式部署方案。

第五,对于企业自身编码规范满足性要求,CodeSec安全专家对工具提供的上千个检测规则与企业自身的编码规则进行对比分析,对于工具不满足的检测规则提供定制,最大程度满足用户要求,保证其业务和标准的延续性。

最后一点,基于用户需要检测工具与其它工具进行集成的要求,CodeSec能够与Git、GitLab、GitHub、SVN、TFS、Perforce、Mercurial、Jira、禅道、Bugzilla、Eclipse、IDEA、VS-Code、Visual Studio、Android Studio等工具集成,基本上可以满足大部分用户要求。

图:支持与Jira对接

用户反馈

开源网安为金融、通信、政府、交通、评测机构等用户部署了上百套 CodeSec 代码审核平台,在有多项目高并发需求的大型企业中建立代码审核SaaS平台,帮助企业避免因为应用程序漏洞而造成的损失。以下是两个典型案例的用户反馈:

“开源网安CodeSec代码审核平台为我市若干信息系统提供代码审计服务,并为信息中心技术人员提供专业的安全培训,帮助信息技术人员提升了软件安全能力;同时,信息中心安全人员通过CodeSec代码审核平台对内部系统的源代码进行安全扫描,便于日常安全运营。”

——某市信息中心

“CodeSec代码审核平台将安全控制线提前,大幅降低安全人员工作量,源代码安全扫码覆盖我司上百个应用,保障上线前的安全,大幅度提升软件的安全质量同时,也满足了用户对供应商软件安全的要求。”

——某大型基础软件企业

安全牛评

“代码安全”是软件安全之“根”,而“浸入式”的代码安全是最低成本的安全解决方案。提高易用性,提高漏洞检出率,降低漏洞修改难度,修复方案的可落地性是对静态安全工具提出的严峻挑战,同时,检测能力、核心漏洞库的管理、安全规则的应用,这些方面如何减少开发者的使用成本是源码安全工具的另一个挑战。

本次牛品推荐的方案将源码检测与多种常用的开发项目管理的流程结合起来而不仅局限于对DevOps平台的集成,可以使源码级测试得到更广泛的应用,提高代码开发迭代的效率与质量。而打破传统测试的方法,将多种源码级测试能力结合起来,是开源网安的另一个优势点。


相关文章