1 软件成分漏洞危害凸显
近期,国外安全机构的调研报告显示,企业应用代码超过80%来自第三方资源库或第三方组件,97%的java程序至少存在1个已知安全漏洞,而由第三方代码缺陷导致的信息泄露漏洞占比高达72%。
国内企业应用系统也普遍存在同样的问题,如非常流行的fastjson库,在2017年官方主动爆出fastjson反序列化漏洞,可造成任意命令执行,影响面积颇广,危害严重;jackson框架的反序列化漏洞(CVE-2017-7525)同样危害严重,影响广泛。企业普遍对软件成分风险的重视度不高,时至今日,相关漏洞还经常在红蓝对抗中出现。
Gartner 在2019《应用安全测试(AST)魔力象限报告》中指出,软件成分分析(SCA)是一种应用安全测试技术,用于发现某应用程序所包含的开源或第三方组件以及其中的已知漏洞;并建议应用安全负责人应将SCA(软件成分分析)作为AST项目的基本要求,发现开源组件中的已知漏洞。
2 SCA的种类和功能
国外SCA工具种类很多,有些专门做license合规,有些则同时做安全防护和license的管理。
SCA工具发挥管理和保护作用的前提是要明确目标对象中究竟包含哪些开源组件。因此,SCA的第一大功能是输出一个目标产品中所有的开源组件清单。找到开源组件后,SCA提供每个组件的开源license以及是否包含安全漏洞等基本信息。更为高级的SCA工具还能通过匹配开源代码与组织策略及流程的方式,触发自动审批的策略执行请求。
另外,还有一些SCA还能够实现开源代码选择、审批、跟踪等全流程的自动化,不但节约了开发人员大量的时间,也极大地提高了工作准确性。有些侧重安全的SCA工具还能够在代码进入开发系统前即发出安全漏洞的预警,避免引入外部安全威胁。即使开发系统中已经存在安全弱点,该工具也能够将高风险组件的精确位置告知开发人员,提高效率,减轻开发人员工作量。
SCA工作流程(来源:KPMG)
3 SCA类工具的演变
SCA相关的技术最早可以追溯到2002年,之后经历了3次技术飞跃,因此可以划分为三个阶段。
第一阶段:开源代码扫描
2002年左右,开源代码扫描工具能够识别代码块并与开源数据库进行匹配。但受限于当时的技术水平,工具误报率非常高(很多商业和专有代码也会被误认为是开源代码)。因此,还需要专业人员进行人工核查。
代码扫描对于开源软件的license管理来说很有意义,这类工具也迅速占据了市场。但随着SDLC和敏捷开发的飞速发展,扫描耗时长、误报率高等缺点还是让这种解决方案走向了下坡路。
第二阶段:持续性开源组件管理
2011年前后,市场上开始出现能够满足现代敏捷开发标准需求的新技术——开源组件持续性管理,与不同的软件开发工具集成,并在每次运行、提交执行等时间点识别开源组件,做到了安全漏洞及license问题的实时检测。
漏洞和license实时检测初步实现了安全团队开源组件管理的“左移”,从流程的早期阶段即发现问题,修复成本更低。
第三阶段:有效使用分析
2018年,国外较多安全公司开始推出SCA解决方案——不仅能够发现该应用程序中存在哪些开源组件,还能给出很多如何安全使用这些开源组件的可操作性建议并提供自动化服务。
4 为什么必须在应用安全环节做SCA?
开源组件已经是所有垂直行业中软件应用程序的主要构建模块。尽管严重依赖开源代码,但很多公司在确保开源组件符合基本安全标准以及开源license方面一般都不严格。大多数情况是,当黑客已经疯狂盯上开源代码后,软件开发和安全团队的保护意识才逐渐提高;而一旦某个漏洞被公开,黑客就会利用这些宝贵的资源发起漏洞利用。开源组件越受欢迎,黑客从中获利就越大。
SCA应运而生。
SCA工具能够发现目标系统源码中使用的开源组件,并将其与漏洞库比对,发现源码中可能存在的漏洞。SCA工具能够为高管、开发部门、安全与法律部门提供有价值的数据。
总结一下,SCA工具有以下优点:
软件上线更快、更安全
研究显示,现代应用程序中有50%以上的代码都是开源的。SCA的作用就是帮助用户高效地扫描和管理开源软件,确保合规并处置了绝大部分漏洞。产品的快速面市、低错误率、为终端用户提供更安全的产品、减少未合规license的影响等都是现代应用程序的竞争优势,而SCA就是增强优势的功臣之一。
安全地进行技术创新
开源软件成本低、灵活度高的特点是专有软件所不具备的,更有利于实现技术创新,而SCA能够让产品安全地进行创新,避免了因为安全问题最终导致创新过程功亏一篑。
消除开源组件潜在的业务风险
很多公司对自己所使用的开源组件认知度不到10%,而SCA则能通过恰当的流程和自动化的方式将未知转化为已知,发现并控制开源组件中的安全和license合规风险。
5 填补空白 默安科技国内率先推出SCA
默安科技的雳鉴SDL全流程解决方案中已经正式推出SCA功能,管理在应用程序和容器中使用开源和第三方代码所带来的安全、质量和许可证合规性风险,避免开源和第三方代码成为企业安全体系的短板。具体来说,能够为用户带来以下5大价值:
为所有应用程序创建BOM(物料清单)
BOM描述的是应用程序中的所有组件版本及license类型,能够帮助安全人员和开发人员了解详细情况并发现潜在的安全风险以及license问题。
发现并监控所有开源组件
帮助用户发现源代码、构建依赖项、子组件等方面所使用的开源组件。这样的全面程度对于拥有较大规软件供应链(合作伙伴、第三方供应商较多)的公司来说至关重要。
设置并执行合规策略
开源软件license的合规无论是对开发人员还是高级管理层来说都非常重要。SCA强调制定针对license合规和安全事件的策略,并在整个组织内部展开相关培训。默安科技SCA技术已经实现了策略执行流程审批的自动化,并为客户提供定制化的使用方法和风险控制指南。
主动、持续的监控服务
为了更好地管理工作负载、提高工作效率,默安科技SCA技术会持续监控目标软件中的安全性和漏洞问题,针对当前或已发布产品创建可操作性警报。
将开源代码扫描功能无缝集成至开发环境
在DevOps环境中集成开源组件的安全性和license扫描功能,实现高效的扫描,保证安全性的同时不影响开发速度。
本文参考来源:
Gartner2019《应用安全测试魔力象限报告》;
https://resources.whitesourcesoftware.com;
https://blog.flexerasoftware.com。
来源:freebuf.com 2019-08-26 11:45:32 by: 默安科技
请登录后发表评论
注册