加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 服务器 > 安全 > 正文

软件成分安全解析 SCA 能力的建设与演进

发布时间:2022-05-27 18:13:13 所属栏目:安全 来源:互联网
导读:随着 DevSecOps 概念的逐渐推广和云原生安全概念的快速普及,研发安全和操作环境安全现在已经变成了近两年行业非常热的词汇。在研发安全和应急响应的日常工作中,每天都会收到大量的安全风险信息,由于目前在系统研发的过程中,开源组件引入的比例越来越高,
         随着 DevSecOps 概念的逐渐推广和云原生安全概念的快速普及,研发安全和操作环境安全现在已经变成了近两年行业非常热的词汇。在研发安全和应急响应的日常工作中,每天都会收到大量的安全风险信息,由于目前在系统研发的过程中,开源组件引入的比例越来越高,所以在开源软件治理层面需要投入很多精力。但是由于早期技术债的问题,很多企业内部在整个研发流程中对使用了哪些开源组件,这些开源组件可能存在严重的安全隐患等相关的问题几乎是没有任何能力去收敛,所以多年前的 SCA(Software Composition Analysis 软件成分分析)技术又重出江湖,变成了这一部分风险治理的神器。本文主要探讨的范围是利用 SCA 技术实现对开源组件风险治理相关能力的建设与落地。
 
         SCA 概念其实出现很久了,简单来说就是针对现有的软件系统生成粒度非常细的 SBOM(Software Bill of Materials 软件物料单)清单,然后通过风险数据去匹配有没有存在风险的组件被引用。目前市面上比较出色的商业产品有 Synopsys 的 Blackduck 、Snyk 的 SCA 、HP 的 Fortify SCA 等,开源产品有国内悬镜的 OpenSCA 。但是通过对这些产品的调研和分析后发现,这些产品由于诸如风险数据库完整度、与现有研发流程耦合程度、性能和社区支持不完整等原因,不能很好地融入企业内部的研发流程,但是这一部分能力在企业内部对于SDL工作而言又是不可或缺的能力。所以企业内部的信息安全团队需要结合业务团队的需求,安全团队自身对于风险的理解,企业内部的研发流程现状和现有的技术与数据能力、应用成本和 ROI 等现状和问题进行综合考虑,打造自己的 SCA 能力,从而帮助业务团队多快好省地解决软件供应链层面上的信息安全问题,安全团队也可以更好地对组件风险问题进行全局视角下的治理。从上面的内容大家也许听出来了,在企业内部建设 SCA 能力的过程中会涉及到很多的产品和运营方面的问题,诸如跨部门协作、系统稳定性、业务和安全部门对于风险的定义不一致等问题。本文主要介绍 SCA 能力在企业内部实际落地的过程、遇到的问题以及对 SCA 技术的看法和展望,旨在为业界提供一个可以参考的解决方案和范本。
 
         安全视角下的研发风险
         在企业内部的信息安全团队看来,很多企业内部实际上在整个研发流程当中遇到的风险面实际上是蛮多的,通过对于各种攻击面的梳理和分析之后,实际上在研发流程中被经常提及的风险主要包含以下三类。
 
         通用漏洞风险
         在组件安全层面上,首先遇到的问题,也是最容易发现的问题就是漏洞问题,造成的影响也十分直观,可以导致系统因为恶意的利用导致出现非预期的功能,进一步破坏系统的完整性和可用性。根据 2021 年 Synopsys 放出的软件供应链相关的数据显示,开源代码仓库中至少存在一个漏洞的仓库占整体开源仓库的比例从 2016 年的 67% 上升到了 84%,至少存在一个高危漏洞的代码仓库占全部仓库的比例从 2016 年的 53% 上升到了 60%,最高的时候是 2017 年,这一数字是 77%。
 
IDE 插件投毒:为了更高效率地开发软件,开发人员往往会在自己的IDE当中引入各种各样的插件来提升自己的开发体验与效率。这个是一件非常正常的事情,但是往往软件开发人员没有足够的安全意识,导致自己的IDE中可能会安装了一些有问题的组件,甚至 IDE 本身也出现了供应链投毒的情况,这种 case 多到数不胜数,比较出名的是2021年5月份 Snyk 披露的一份安全报告中显示攻击者在 VSCode 的插件市场发起了投毒行为,一些有问题的扩展是“LaTeX Workshop”、“Rainbow Fart”、“在默认浏览器中打开”和“Instant Markdown”,所有这些有问题的扩展累计安装了大约 200 万次,此次事件所造成的影响是非常广泛的。
 
提交缺陷代码:在软件开发环节,开发人员因为水平、安全意识的诸多原因,往往会在开发过程中引入漏洞,这本身是一件十分正常的事情,但是对于开源软件而言,因为几乎是所有人都可以向开源项目提交代码,并且通过审核后就可以merge进项目,所以总会有不怀好意的人故意引入有问题的代码,比较典型的 case 是2021年4月,明尼苏达大学 Kangjie Lu 教授带领的研究团队因故意向 Linux 引入漏洞,导致整所大学被禁止参与 Linux 内核开发。除开道德问题,这种风险实际上有可能因为审核的疏忽导致风险直接被引入。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读