开源代码中的安全隐患 要从DevOps的角度 进行6个方面的预防

简介:

各行各业的组织,无论规模大小,都会使用开源应用,眼下这种趋势有增无减。在开发阶段,将源代码嵌入软件中既经济、又高效。借助于其他资源,开发人员可以将更多的精力集中于组织的内部代码。但 DevSecOps 的问题不容忽视。

据GitHub调查,94%的受访者表示至少会时不时地使用开源应用,而81%的人则经常使用。实际上,82%的开发人员透露,所在单位接受使用开源软件,而84%的人被鼓励在应用中使用开源代码。

虽然使用开源代码 还需要在持续交付中确保安全

虽然开源部件可节约时间和成本,但其许可协议中均规定了相关责任。此外,在请求下载的开源软件中,有1/16的软件存在已知漏洞。

在瀑布开发模式中,开源部件存在漏洞显然让人头疼,但远没有现在这么严重。敏捷开发速度快,每个周期结束都应该交付可用、安全的产品用于销售。在要求持续、敏捷开发的同时,如何才能保证解决方案中不存在开源漏洞呢?

Modern%20service%20Delivery%20Life%20Cyc

图 传统的非协调业务交付生命周期与现代持续应用安全测试方法对比 ( 来源 :Forrester,2016 年 月 日 .Amy DeMartine — 加速现代业务交付 

坚持在开发阶段发现漏洞 强化安全测试

但开源代码呢?现在,这些代码在组织的产品代码中比私有代码还要常见。Gartner于2017年2月发布的应用安全测试魔力象限报告中提到,

“到2019年,80%的应用安全测试厂商将在其产品中包含软件构成分析,而当前这一比例为40%。”

这说明在仅仅两年时间中增长 40 个百分点 。正常的应用安全产品中除了静态分析安全测试(SAST)、动态分析安全测试(DAST)和交互式应用安全测试(IAST)方案外,再加入软件构成分析(SCA),这对客户来说意味着什么呢?总的来说,Gartner的预测表明,客户可能会利用厂商的方案包来测试自己的老旧、现代、移动或组合应用。

Application%20Security%20Testing.jpg

图 应用安全测试工具类型 ( 来源 :Forrester,2017 年 月 日 .Amy DeMartine — 厂商比较 : 应用安全测试 

(小编,安全测试服务的相关介绍可参考: 你不要觉得渗透测试随便拿个工具就可以做了 要了解业务还需要给出解决方案 

防止代码出现漏洞只要三步

如今,应用安全工具越来越早地出现在软件开发生命周期(SDLC)中。最理想情况下,它们会与组织的构建工具绑定,若存在有漏洞的部件,构建就会失败,或者至少会通知相关漏洞部件的发布经理。

对于开发经理和首席安全官(CSO)来说,这样的日常做法能满足六个 DevOps 安全要求中的五项:自动化、速度、覆盖率、检测与修复。

Imperatives%20for%20Security%20DevOps.jp

但第六个要求“预防”呢?这正是未来最佳实践要发挥作用的地方:让开发人员去防止有漏洞的开源部件进入到代码中。为此目的,安全主管应采取如下步骤:

  1. 定义需自动实施的开源策略。 理想情况下,可利用公司的SCA工具设置任何策略,包括安全漏洞严重性、许可团队、漏洞级别及入库年限。
  2. 要求开发人员只下载安全部件。 使用浏览器扩展,在开发人员欲下载有漏洞的开源部件时,发出警告。
  3. 利用集体智慧 , 采用同类公司已实施过的策略 , 包括类似垂直行业(如健康和金融服务)开发者实施的策略。还可以利用相同规模组织实施过的策略。学习他人经验,占据主动,拒安全漏洞于代码之外。

精心规划 实践安全开发生命周期SDL 保证安全

持续交付与组合应用的安全性很快将成为日常活动。要确保下一步的最佳实践—能力最终左移至开发人员,防止安全漏洞进入到代码中。在这个方面绿盟科技已经总结并实践了一套安全开发生命周期SDL

ADSL.png

我们不仅希望自己更少遇到风险,更希望自己遇到风险之后能够有足够强的能力应对。针对一个企业来说,开发人员应该通过安全培训来具备足够强的安全风险意识和安全开发能力。对于企业的安全管理,应该要具备一套健全的安全开发规范制度和系统上线运营安全流程。在一个互联网金融的项目上线之前,应该做好完善的安全准备,建立各个层面的安全防线,从项目的各个阶段引入安全控制,从源头上来避免安全风险。一个完善的开发项目应该引入SDL(Security Development Lifecycle,安全开发生命周期)流程,从安全风险管理的视角来避免安全风险。

SDL从需求阶段、设计阶段、实施阶段、测试阶段和发布响应阶段来引入安全管理。SDL的各个阶段相关内容可参考上图。



原文发布时间:2017年8月23日

本文由:security intelligence发布,版权归属于原作者

原文链接:http://toutiao.secjia.com/prevent-opensource-security-risks

本文来自云栖社区合作伙伴安全加,了解相关信息可以关注安全加网站

相关文章
|
15天前
|
Java Devops 持续交付
探索Java中的Lambda表达式:简化代码,提升效率DevOps实践:持续集成与部署的自动化之路
【8月更文挑战第30天】本文深入探讨了Java 8中引入的Lambda表达式如何改变了我们编写和管理代码的方式。通过简化代码结构,提高开发效率,Lambda表达式已成为现代Java开发不可或缺的一部分。文章将通过实际例子展示Lambda表达式的强大功能和优雅用法。
|
15天前
|
运维 Devops Java
DevOps 工具链:从代码到生产
【8月更文第30天】在现代软件开发中,DevOps(Development 和 Operations 的结合)已成为确保快速而可靠的软件交付的关键方法。DevOps 通过自动化流程将软件开发与 IT 运维相结合,从而实现持续集成 (CI) 和持续部署 (CD)。本文将介绍一个典型的 DevOps 工具链,并提供实际的代码示例来帮助您理解如何将这些工具集成在一起。
31 5
|
17天前
|
Kubernetes 监控 Devops
【独家揭秘】.NET项目中的DevOps实践:从代码提交到生产部署,你不知道的那些事!
【8月更文挑战第28天】.NET 项目中的 DevOps 实践贯穿代码提交到生产部署全流程,涵盖健壮的源代码管理、GitFlow 工作流、持续集成与部署、容器化及监控日志记录。通过 Git、CI/CD 工具、Kubernetes 及日志框架的最佳实践应用,显著提升软件开发效率与质量。本文通过具体示例,助力开发者构建高效可靠的 DevOps 流程,确保项目成功交付。
41 0
|
26天前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何找回旧版rdc的代码仓库
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
26天前
|
敏捷开发 缓存 Java
阿里云云效产品使用合集之如何确保代码不泄密
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
27天前
|
存储 运维 网络安全
阿里云云效操作报错合集之推送代码到仓库报错:Could notread from remote repository.,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
15天前
|
监控 安全 Devops
DevOps实践:从代码到部署的无缝过渡
【8月更文挑战第30天】本文通过深入浅出的方式,向读者展示了DevOps文化和实践如何帮助团队实现从代码编写到软件部署的高效、自动化流程。我们将探讨持续集成(CI)、持续交付(CD)以及监控和日志记录的最佳实践,旨在为希望优化软件开发周期的专业人士提供实用指南。文章不展示具体代码示例,而是聚焦于概念理解和实践应用,确保内容即便在没有代码的情况下也具有实质性价值。
|
17天前
|
缓存 资源调度 Kubernetes
阿里云云效产品使用合集之如何将两个独立的代码仓库构建并部署到同一个容器内
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
17天前
|
Kubernetes Java 开发工具
阿里云云效产品使用合集之如何将代码库中的代码覆盖目录
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
26天前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何优化克隆代码时长
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。