现代应用程序在很大程度上依赖于开源软件,大多数企业 80% 的应用程序和代码库都是开源的,在某些情况下甚至更多。虽然这对快速开发和创新有很大好处,但也增加了别有用心之人利用漏洞的可能性,扩大了潜在的攻击面。
这些代码库中大量使用了开源组件,为了维护应用程序的稳健安全,开发人员和安全团队必须与快速更新的代码库保持同步——但他们如何才能确信自己做到了这一点呢?现在,Mend.io 有了答案,Mend SCA 的增强功能让您可以享受完全自动化的开源软件包更新流程,并对这些更新的成功率充满信心。
一、挑战
1、过时依赖项埋伏安全隐患
开发人员和安全专业人员都认为,如果使用最新的依赖项,应用程序就会更加安全,但说起来容易做起来难。部分原因是依赖项越来越多,更新也越来越频繁,而且这种趋势没有逆转的迹象。随着依赖项和潜在更新数量的激增,人工检查的方法越来越行不通,需要进行 "分流",而这种 "分流 "会忽略许多更新,并以过时依赖项的形式开始积累安全隐患。
自动化测试和修复对于缓解这个问题大有帮助。像 Mend Renovate 机器人这样的工具开创了“依赖自动化”时代,并已被许多高性能开发团队采用。然而,即使实现了项目级自动化,保持最新状态仍然需要开发人员花费大量时间。项目团队缺乏强大的测试套件,可能会对更新依赖项感到不确定,因此与其他团队相比变得越来越过时。
2、手动测试和部署效率低
此外,大多数应用程序的测试水平不足以依赖自动测试和部署。即使有,大多数公司也不会测试外部依赖项的内部运行问题。因此,很难相信外部依赖项的更新是否会破坏应用程序。这就导致了需要手动测试,增加了开发人员的开销,并减慢了更新依赖关系的进程。
Renovate 可生成大量更新,要手动测试和部署所有更新可能会让人不知所措。现有的分组机制可以提供帮助,但无法消除不信任更新的问题,因为不信任更新会导致整组更新失效。
因此,项目往往会因为对项目测试缺乏信心和缺乏审查更新的资源而导致依赖性更新滞后,这样一来,未来出现安全问题的风险就会增加。
二、需求
因此,当下的改进方向显然是简化和加速更新依赖关系的流程。它必须易于使用,且必须使开发人员能够接受更新并尽可能快速、轻松地应用有价值的安全问题修复程序,从而使他们的工作更加高效。这样的解决方案将提升应用程序的安全状况,因为它将:
- 为已采用依赖自动化的项目节省大量时间和资源
- 降低其他项目采用依赖自动化的门槛
- 让你了解最新的依赖关系,这是做好准备应对开源安全漏洞的最佳方式
三、解决方案—Mend SCA 智能合并控制功能
Mend SCA 现在允许开发人员根据 "合并信心 "值管理更新,从而解决了这些问题。"合并信心 "值表示 Mend.io 对给定更新在不破坏构建的情况下合并到应用程序的信心。
这个置信度值是从大量使用 Mend Renovate(世界上最流行的自动依赖关系更新机器人)的开发者那里获得的,是通过监控包含每个特定更新的拉取请求的成功率生成的。这样做的目的是,从统计学角度看,一个不当更新会导致相当数量的项目失败,而 Mend.io 可以将该更新标记为 "低 "置信度。多次合并成功的更新将产生 "高 "或 "非常高 "的合并置信度。而那些比较新的更新,或者我们没有足够信心数据的更新,则会被标记为 "中性"。随着时间的推移,收集到的数据会越来越多,置信度也会从 "中性 "逐渐过渡到 "低"、"高 "或 "非常高"。
四、智能合并控制的优势
MCW 增强功能使开源软件包更容易保持最新。这对开发人员来说意义重大,因为他们可以利用 Mend.io 的合并可信度评分来减少保持最新所需的工作量。即使是一个小型应用程序,也很容易使用大量需要定期更新的开源依赖项。如果不了解更新是否可信,就必须对每次更新进行测试。使用智能合并控制功能,开发人员可以筛选出最可信的更新并自动应用。这大大减轻了开发人员为其应用程序保持良好的依赖关系健康状况的负担。
从安全角度看,它是打击黑客的另一种工具。MCW 使依赖程序更容易接受更新,从而使应用程序更频繁地获得安全修复,随着更新采用率的提高,应用程序也将变得更加安全。这也意味着更新会更快地被应用,因此攻击者利用每个已发现漏洞的时间就会更短。此外,技术债务的减少意味着安全管理人员将更有信心,相信开发人员能够对未来可能发生的任何紧急漏洞公告做出快速反应,而不会破坏他们的应用程序。
MCW 为用户带来的主要利益:
优点 | 情景 |
在没有足够测试的情况下,无需测试/帮助,因为无需测试即可接受更新。 | 如果应用程序的测试覆盖率较低。 大多数应用程序并不测试外部依赖关系,因此更容易漏掉错误。合并置信度可以在特定应用程序测试之外,报告更新的整体质量。 |
忽略不可靠的更新。 自动合并可信的更新 | 只有 Mend.io 知道哪些更新是可信的。 |
大大缩短了处理更新所需的时间。 | 更容易确定接受哪些更新。 更易于测试和部署更新。 |
五、MCW 将 Mend SCA 自动依赖性更新提升到新水平
几年来,Mend SCA 一直是开源安全的黄金标准。我们的主要工作是检测漏洞,并帮助开发人员高效地修复漏洞。近年来,我们率先推出了自动拉取请求、提交时扫描、可达性路径分析等功能。我们与 DevOps 工具链(也称为 DevSecOps)的集成能力为我们赢得了许多大客户的青睐。最近,我们发布的研究报告显示,将 Mend SCA 与其代码库集成的客户,其平均修复时间(MTTR)缩短了 74%,在任何给定时间内修复的漏洞数量增加了三倍。
现在,我们在 Mend SCA 中增加了自动依赖性工作流,从而提高了软件构成分析的标准。我们相信,尽管许多依赖关系更新与漏洞管理并无具体关系,但这将带来巨大的安全价值。
开发人员越容易更新其应用程序中的依赖关系,应用程序就会收到越多的更新,因组件过时而积累的安全隐患也就越少。自动化缓解了对耗时和繁琐的人工依赖性测试的依赖。
Mend SCA 现在提供了一套丰富的功能,允许开发人员配置更新的交付方式,帮助他们管理维护依赖关系健康这一原本艰巨的任务。