本文分享自华为云社区《HDC.Cloud2021 | 提升漏洞修复率,DevSecOps真的很有一套》,原文作者:技术火炬手 。

近些年来,随着云计算、微服务和容器技术的快速普及,不仅IT基础架构发生了巨大的变化,政企组织的业务交付模式也迎来巨大变迁,传统的开发模式向敏捷开发和持续交付模式迁移,在业务应用交付规模不断扩大、交付速度不断提高、开发运营场景一体化的大环境下,安全问题你真的重视么?

“漏洞”带来安全隐患

近年来,随着软件开源化趋势成为主流,开源软件已经成为软件供应链的重要环节,是软件生态不可或缺的组成部分,可开源软件的安全问题却是很多组织所忽略和不知晓的。

Gartner的调查显示,99%的组织在其信息系统中使用了开源软件。Sonatype公司对3000家企业的开源软件使用情况展开过调查,结果表明每年每家企业平均下载5000多个开源软件。随着开源技术快速形成生态,企业用户引入开源软件已成大势所趋,无法避免,不仅如此,随着大型软件开发过程中,开源组件的占比越来越高,加之软件开发人员往往只关注自己开发的那部分代码的安全性,忽视了采用的开源组件的安全质量,最终导致成型软件产品的系统安全问题越来越多。

所以在这样大时代背景下,开源软件和工具已经影响到了整个软件行业,一旦具有大规模用户基础的开源软件存在安全漏洞,后果和影响是无法想象的。

在非100%自研发的今天,开源软件的漏洞已然成为了软件生态中安全漏洞的“罪魁祸首”!

安全检查,没那么简单

随着安全漏洞问题的不断爆出,越来越多的组织也开始意识到安全问题的重要性,可随着产品的开发生命周期越往后,其功能、接口、代码量、数据、内部关联等越发的庞大和复杂,安全问题排查的难度、引发的修复成本也显著增高。统计数据表明,随着产品的开发,生命周期越往后,安全问题引发的修复成本也成倍数增长。(如下图)如果到了发布阶段,再去修复安全问题,那么带来的成本将是毁灭性的。

那么问题来了,我们该怎么办呢?

提升漏洞修复率- DevSecOps实践

在以上背景下,DevSecOps应运而生。

DevSecOps又是什么呢?

简单来说,DevSecOps可以理解为在DevOps基础上嵌入了安全Security,即DevSecOps是糅合了开发、安全及运营理念以创建解决方案的全新方法——一套由战略驱动的体系化方法论,一套流程与工具支撑,将安全能力嵌入到整个软件开发体系中,在保证业务快速发展的情况下实现安全保障,即快又安全的发布可运行的软件。

DevSecOps这个概念最早是2017年美国RSA大会上提出的——DecSecOps是一种全新的安全理念与模式,它从DevOps的概念延伸和演变而来,其核心理念是:安全是IT团队中(包括开发、运维及安全团队)每个人的责任,需要贯穿从开发到运营整个业务生命周期的每一个环节,只有这样才能提供有效的安全保障。DevSevOps通过加强内部安全测试,主动搜寻安全漏洞,及时修复漏洞、控制风险,实现与业务流程的良好整合。

DevSecOps的核心

DevSecOps的安全实践主要集中于以下两个方面:

  • 安全工作前移

采用安全在软件开发前期介入的方式,降低解决安全问题的成本,前期介入的内容包括对开发、维护人员的安全意识培训、安全开发规范的培训、安全需求(非功能需求)的导入、前期的代码审计工作、基于白盒的安全测试、渗透测试等内容。在运营阶段增加的内容与前期开发阶段类似,主要内容集中在对新安全需求实现情况的验证以及软件整体安全评估。

  • 安全工作与现有工作无缝对接

为了避免安全工作(例如:测试与评估、安全策略的部署等)成为开发瓶颈,使得应用系统在最短周期内实现其应有的价值和安全属性。DevSecOps采用快速迭代的开发方式,这就需要实现安全与开发工作实现无缝对接,将安全工作导入现有的开发工作流程和工具中,包括将安全需求导入至统一需求管理流程与工具、安全测试工作与持续集成/持续部署(CI/CD)对接、安全测试结果导入至缺陷管理工具等诸多环节。

这实际上就是对自动化提出非常高的要求。

DevSecOps实施方案

DevSecOps通常是将安全嵌入到DevOps的流程阶段中,所以一般来说,DevSecOps的工具通常也是基于编码、构建、测试、配置、部署、监控这六个阶段嵌入的,如果要自行搭建DevSecOps的流水线需要至少在以上环节中加入相应的工具并实现自动化,具体分析如下:

1)开发阶段

良好的编码习惯更易于代码本身的理解和更改。 DevSecOps通过添加用于编写良好和安全代码的安全检查来扩展这些实践。

传统的单元测试,代码审查,静态代码检查等实践可以扩展到该阶段的安全性检查。为了不影响开发人员的工作效率,可以在代码提交至代码仓库之前查找并修复常见的安全问题。

2)构建阶段

将代码提交到代码仓库后,将执行应用程序的构建和基本自动化测试,以确保代码始终可编译可构建。

同样,需要在此阶段添加安全性检查,以检测严重和高危安全性问题。如果发现严重问题,则需要进行安全控制,设定构建为失败并发送警报通知。

3)测试阶段

成功构建后,通过选择生成的工件并将其部署到容器或者测试环境来触发测试阶段。这些测试包括功能测试,集成测试,性能测试,高级SAST,安全性和DAST。

这个阶段通常需要更多的时间和资源来执行,并且遵循快速失败方法优先原则,即更费劲和耗时的测试要尽可能后延,只有在其他测试都通过时才执行。

4)配置阶段

配置管理工具可以轻松地反复大规模部署和创建安全基础架构。通过标准化配置,配置管理工具可以减少与补丁管理相关的问题,最大限度地降低黑客可以利用未修补的服务器的风险,并有助于减少不同环境之间的差异。值得一提的是,使用配置管理工具可以在中央代码库和版本控制下跟踪配置信息。

5)部署阶段

如果上述所有阶段成功运行,则需要准备投入生产环境运行。该阶段目标主要是验证在配置或部署时间内是否存在任何错误,这些错误是否会降低系统的可靠性和弹性,是否可以在故障情况通过这些进行攻击。

该阶段使用自动化运行时检查和测试中发挥重要作用的地方,特别是发现安全违规和漏洞的安全问题,并突出了风险,如访问控制策略或防火墙规则的变化。

6)监控阶段

系统投入生产后,安全性不会终止,而是真正开始。在DevSecOps中,自动安全检查和监视反馈循环迭代是生产操作的基本部分。

持续监控可以深入了解应用程序正在接收的流量类型,并帮助识别恶意用户的攻击模式。

总结

综上,DevSecOps的工具主要是基于编码、构建、测试、配置、部署、监控这6个阶段嵌入的,如果要自行搭建DevSecOps的流水线,需要至少在以上环节中加入相应的工具(参考工具如下图),并实现自动化。如果自行搭建较为困难可借助平台提供DevSecOps的能力,比如华为云DevCloud软件开发平台来进行流水线的配置与开发。

当你遇到安全问题或者想要预防安全问题发生,DevSecOps是一个很好的解决方案,希望您看完本文,对DevSecOps有所了解。

作为华为ICT基础设施业务面向全球开发者的年度盛会,华为开发者大会2021(Cloud)将于2021年4月24日-26日在深圳举行。本届大会以#每一个开发者都了不起#为主题,将汇聚业界大咖、华为科学家、顶级技术专家、天才少年和众多开发者,共同探讨和分享云、计算、人工智能等最新ICT技术在行业的深度创新和应用。智能时代,每一个开发者都在创造一往无前的奔腾时代。世界有你,了不起!

了解大会详细信息,请点击https://developer.huaweicloud.com/HDC.Cloud2021.html。

点击关注,第一时间了解华为云新鲜技术~

提升漏洞修复率,DevSecOps真的很有一套相关推荐

  1. java web运行的快慢_WebAssembly执行速度真的很强悍吗?对微软Edge很无语

    原标题:WebAssembly执行速度真的很强悍吗?对微软Edge很无语 Firefox一直在WebAssembly上耕耘,在macOS与Windows上表现的都很好,Chrome 67在WebAss ...

  2. 是什么 通信中unit_Ubuntu Linux中的特权提升漏洞Dirty Sock分析(含PoC)

    2019年1月,由于默认安装的服务snapd API中的一个bug,通过默认安装的Ubuntu Linux被发现存在特权提升漏洞,任何本地用户都可以利用此漏洞直接获取root权限. 概述 首先在此提供 ...

  3. Kubernetes 真的很复杂吗?

    作者 | jason moiron 译者 | 弯月 责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 近日,VMware首席工程师.Kubernetes项目创始人之一Joe Beda发表了 ...

  4. 指纹、面部、语音识别技术,破解真的很简单!| 知乎

    原标题:指纹.面部.语音识别技术,破解真的很简单!| 知乎 面部识别被今年央视315晚会狠狠地 打脸,这一技术并没有成熟到能令人 们放心使用的地步,但已经被普遍采 用到各种智能终端上,智能手机便是 其 ...

  5. 我把淘宝当副业,一年全款买了房:你看不起的行业,真的很赚钱

    在这个物欲横流.花呗信用卡都不够刷的时代,我特别佩服一种人: 他们拼命赚钱,尽可能多的把钱握在自己手里. 通过自己的努力.坚持和规划,实现财富的积累. 大家在经历了魔幻的2020年后,都为了生存卯足了 ...

  6. 计算机专业毕业的人,工资真的很高吗?看完之后我哭了

    计算机专业毕业的人,工资真的很高吗? 科比问:"你见过洛杉矶凌晨4点的样子吗?" 程序员A说:"没见过,那个时候我在写代码,还没下班呢!" 小爱问小丽:&quo ...

  7. CVE-2020-1472 Netlogon权限提升漏洞分析

    一.漏洞信息 1. 漏洞简述 漏洞名称:Netlogon 权限提升漏洞 漏洞编号:CVE-2020-1472 漏洞类型:权限提升 CVSS评分:10 利用难度:简单 基础用户:不需要 2. 组件概述 ...

  8. CVE-2020-1472NetLogon权限提升漏洞

    0x01 概述 2020年8月12日,阿里云应急响应中心监测到微软发布补丁修复了NetLogon权限提升漏洞(CVE-2020-1472),CVSS评分10,官方评级严重.攻击者通过NetLogon( ...

  9. netlogon启动后停止_【通告更新】漏洞EXP已流出,影响巨大,微软NetLogon权限提升漏洞安全风险通告第三次更新...

    近日,奇安信CERT监测到国外安全厂商发布了NetLogon 权限提升漏洞(CVE-2020-1472)的详细技术分析文章和验证脚本.此漏洞是微软8月份发布安全公告披露的紧急漏洞,CVSS漏洞评分10 ...

最新文章

  1. 研究生走私实验材料被海关查获!为了毕业,真的太难了...
  2. 学完 CompletionService,可以做时间管理大师?
  3. 从硬盘上装xp手记(2005.8.14 )
  4. The Elements of C# Style -Naming
  5. Android edittext限制字节数
  6. BZOJ2240 : ural1676 Mortal Combat
  7. springboot springcloud区别_SpringCloud微服务全家桶-第一篇!为什么要用微服务
  8. 克隆CentOS6虚拟机eth0被修改为eth1如何修改eth0
  9. Python-Matplotlib可视化(7)——多方面自定义统计图绘制
  10. 决定员工发展命运的34条重要行为规范
  11. 酉矩阵和次酉矩阵的定义
  12. 电力拖动系统课程问题汇总(答案)
  13. python滑稽代码
  14. 地图上如何量方位角_利用GPS测量方位角的方法
  15. Report Categories修改LDB选择屏幕
  16. spring-day04_JdbcTemplate声明式事务
  17. tf.clip_by_global_norm详解
  18. Tomcat调优指南
  19. oracle中查看pga大小,关于oracle pga大小限制
  20. 负数在计算机中如何表示

热门文章

  1. 装逼 | 10个JS精简代码无形装逼集合,最为致命,记得收藏好
  2. 设计模式-创建型模式-工厂模式(工厂三兄弟)
  3. goland创建一个不限长度的字节切片_Go语言3 : 切片
  4. VERP中建立集合collection
  5. java写的教育管理的项目_干货分享|推荐12款适合做Java后台管理系统的项目
  6. python面试题_01
  7. wireshark数据包分析实战 第三、四章
  8. ASP.NET关于WebPages的一点总结
  9. jquery checkbox 操作
  10. .NET : 如何理解字符串和它的字节表现形式