前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Shift Left在开发安全中的应用

Shift Left在开发安全中的应用

作者头像
aerfa
发布于 2021-06-17 10:15:48
发布于 2021-06-17 10:15:48
1.5K0
举报

01

前言

开发安全是一个老生常谈的话题,随着云计算虚拟化等技术的发展,开发安全在SDL(Software Development Life Cycle)、DevOps中的体现也倍受关注。很高兴受邀参加EISS开发安全分会场的邀请,谈谈自己对开发安全的一些理解与思考。会上分享的材料也都提供给主办方,并且也在SDL专属群中分享。考虑到PPT终究只是个框架,很难描绘出会议上分享的内容,故趁着假期挑灯夜战记录下来。

02

从测试视角看左移

提到开发安全,我们肯定会想到“左移“。但是今天我们尝试从另一个角度来看 - - 软件测试工程。因为安全测试像极了功能测试,都是评估软件质量的方法。在被外界关注的顺序上,功能测试也应该早于安全测试。但软件工程测试种类繁多,为了避免产生歧义,后续文中狭义的称功能测试为软件测试,软件测试不包括安全测试。

2.1 Where Shift-Left?

首先来看“左移“,最早也是出现在软件测试中,这里不谈古老的”V”模型,就聊软件测试工程大牛Arthur Hicken提出的:The Shift-Left Approach to Software Testing。

Arthur Hicken提出:测试左移,指测试活动尽早的介入到软件研发过程中,更多的则强调开发工程师验证自己编写的代码(即:开发自测,包括代码逻辑、接口测试等,从效能方面来看也更加合适)。后来在Gartner的大会上也提出安全左移的概念。

2.2 Why Shift-Left?

其次是为什么要进行左移?答案相比人尽皆知,但是此处为了说明情况或为涉及该领域的同行提供一些素材,引入另一位大牛Capers Jones,Applied Software Measurement : Global Analysis of Productivity and Quality书中的一些图片。(图中数据未做考量与深入研究,仅供说明投入悬殊较大的问题)

图中横轴表示软件研发的主要阶段,纵轴表示软件缺陷的百分比,蓝色线表示发现软件缺陷数的趋势。不难看出在coding阶段发现的缺陷是最多的,占比高达85%。

相比上一张图,此处多了一条橙色曲线,表示发现缺陷的趋势。在测试阶段(尤其是功能测试和系统测试)发现的缺陷占比最多。

较上一张图,又多了一条红色曲线,表示修复缺陷所付出的花销。在研发阶段越靠后,修复缺陷的花销就越大,并且比例类似指数曲线,在coding阶段的1倍,在release阶段直接变成了640倍。尽管不可能在发布前将所有软件缺陷发现并修复完,但是越早发现、越早修复肯定是花销越少的。

类似于软件测试,安全测试中漏洞的发现与修复成本,完全符合这个规律。

2.3 What Shift-Left?

在谈安全左移之前,先看看大多数安全测试的现状。如下图所示,在软件的发布前进行安全测试,通过即发布,不通过则与业务线死磕,在业务大于安全的压迫下,很可能“带病”上线。

传统瀑布型的开发模式还好,在敏捷开发或者DevOps下,安全与开发的矛盾点会被放得更大。所以类似于软件测试,安全测试也应该前置,在产品研发流程中,在靠前的环节嵌入相应的安全活动。

于是,就出现了SSDL、DevSecOps等流程或体系。结合公司的业务场景(硬件安全产品为主)和产品管理体系IPD,将安全活动进行裁剪、改变、融合也构建了适合我们的“基于业务场景的开发安全全景图”。

这种类似的图,想必都已经见过了很多。这并不是说当前已经具备的水平,而是期望发展的目标,将其中任意一项安全活动做得精细化都比较困难。但是开发安全是否就是应该建立庞大的工程体系,否则就做不好了呢?

03

开发安全左移实践

其实不然,我经常在思考如何做好开发安全?不一定是要先建立完善的大工程,才能将开发安全问题收敛。比如针对典型问题进行专项突破,对多个专项进行联动织网,紧盯目标、结合现实做一些力所能及的安全活动,也能解决大多数的开发安全问题。今天主要分享7个小实践案例,进行抛砖引玉。

3.1 源头管控(跳出研发流程)

刚才介绍的基本都是研发流程相关的安全活动,但是仅关注需要进行研发的项目就足够了吗?答案显然否定的,比如外购的软件或外购软件二开等情况,很可能就是不会走研发流程,这些软件的安全性在企业安全中却是不可或缺的一环。

对源头进行管控,应该包括自研产品、外购软件。针对外购软件可以从两个层面进行要求:

  • 安全清单:要求供应商提供能够证明交付软件的安全性报告,以及系统架构、组件清单和版本信息。安全性报告包括但不仅限于代码审计报告、渗透测试报告、漏洞扫描报告等,报告可以由安全公司、供应商自有安全团队出具,具体可根据采购的软件或项目大小而定。对接公司采购部,在供应商第一轮交流中就加入,提出安全要求作为供应商入围必备材料,并力争在技术评分中占据一席之地。
  • 安全响应:除了常规的发现漏洞时,需要应急SLA要求,还要求供应商及时主动同步漏洞信息。这些内容都应该写入到合同中并明确处罚方式,才能保证有效的落地。

3.2 开源治理(进入研发流程)

再回到研发流程中,供应链攻击在最近几年已成为热点,软件中使用第三方开源组件的安全性也倍受关注。一提到开源组件,首先想到的是组件的漏洞,但组件的安全性还包括使用开源协议的合规安全、组件供应链安全、片段代码引用安全等问题。相应的需要有工具进行检测,其一是在内部将工具与Git仓库对接,通过githook触发进行源代码层面的组件安全扫描;其二是对接制品库,从二进制方面进行安全检测。(为了避嫌推荐产品,此处不详细说明使用的工具,有需求的可以留言交流)

在不少的实践中,会经常提到建立内部组件库并持续维护,严格把控入库和开发仅使用内部库中的组件。但这带来的工作量可能不是一般企业能够承担的,所以另辟蹊径选择有效、成本相对较低的方式较为妥当。

开源组件的安全问题较多,最为被广泛讨论的还是组件漏洞。使用工具扫描发现的漏洞数量庞大,以至于不知如何下手修复,怎么办?为了解决这个问题,可以从以下两个角度进行分析:

  • 合规视角:若有客户对组件漏洞风险提要求,那是最直接有效推动修复的方式;其次是结合组件-漏洞的关系,针对非常多漏洞的组件,建议建立黑名单机制。(何为非常多漏洞?具体需要结合实际的使用情况来定,比如知名的fastjson,又如扫出的组件漏洞中,占比非常大的某个组件等等)
  • 攻击视角:能够被利用且危害较大的组件,需要修复。这句话有两层意思,一是能够被利用,结合业务场景和使用情况,需要开发人员确认;而是危害较大,可以参照CVSS3.0的评分,7.0及以上的漏洞为高危和严重,需要被关注。将两者结合,即开发和安全人员配合,才能找出真实可以被利用的组件漏洞。

要想解决修复哪些漏洞的问题,从原则上来说已经有了方向,但是在实际场景中,可能会给安全和开发带来大量的沟通成本,因为开发人员懂业务(组件使用姿势)不一定懂安全、安全人员懂安全(漏洞利用方式)但不一定懂业务。故有必要建立开源组件可利用漏洞库,将高危及以上漏洞的触发条件、利用危害、修复方案提供给开发参考,各业务的相同组件使用方式可能不一样,但是漏洞原理是相通的,可以减少修复工作量并针对性的积累了组件漏洞。

当互联网上传播组件漏洞情报时,如何快速定位哪些业务受影响?基于源代码层面的组件漏洞扫描,可以将代码中使用的组件及版本信息(甚至是多层的引用与包含关系)识别出来,获取这些信息后建立以系统或部门为单位的开源组件资产库,再将受影响的系统直接生成漏洞工单(打通工单系统),可追溯至漏洞闭环。

3.3 安全教育

安全培训,想必很多企业都在做。但是真的有效,并能持续不断的生效吗?安全教育通常都会被理解为安全培训+考试,但即使是考试通过,也不能意味着开发的代码安全。

以安全培训为起点,往前想一想,安全培训的素材来自哪儿?编码安全规范,规范怎么来的?主要通过平时的安全测试结果总结而来,也就是说安全培训的初衷是为了不再有已知的安全漏洞,实际的演进路线是:安全测试发现安全问题-->制作标准与规范-->安全培训赋能。

然培训之后,用考试通过率作为安全培训的指标,并不是最初想要实现的目标,也就意味着这个方案过于单薄,单点发挥的效果不够理想。不可能经常组织考试,考试满分也不能肯定写的代码没有漏洞,毕竟说到和做到有不小差距,考试场景和日常工作也差距较大。不过还有更进一步的方式:把编码安全规范,细化为AST的检测规则,比如常见也是最常用的SAST,维护最小化的有效规则,做到与规范相呼应,保障其落地,还能解决传统SAST扫描结果误报巨大的被动局势。

3.4 开发环境

在供应链攻击方面,除了第三方开源组件外,在开发安全中还需要关注开发者使用的工具、技术和环境。

  • 开发工具:使用官方或企业提供的工具,避免使用论坛中提供的安装包、云盘中的安装软件、破解方法中的破解文件…来历不明情况下,很可能遭受水坑攻击。若在必须使用的情况下,建议先上传VT杀毒或跑在线云沙箱,以初步确定其安全性。另需持续关注官方的安全补丁更新情况,虽然漏洞预警的职责属于安全团队。
  • 开发框架:经常爆出漏洞的开发框架,建议不允许在内部使用,比如漏洞之王- -Struts2,直接拉到黑名单中。另外在框架层面做安全配置,以防御常见的漏洞。比如Django的querysets防御SQLi,模板可以抵御大部分XSS攻击,通过白名单限制允许访问origin头防御CSRF等。
  • 开发环境:JAVA的JDK环境、Python环境等都属于在本地开发时必备的,该部分的安全可交由终端上的EDR防御,或若是服务器上的话,可能就只能借助NTA设备的监测。安全还是需要从源头治理,故在安装这些环境的时候得注意来源渠道和软件的正规性。
  • 网络环境:这一点比较难以做到,即开发环境与办公环境隔离、开发环境与互联网隔离。理论上做到网络隔离,即使开发环境沦陷,也能控制住受影响范围。至于落地情况,每家都不一样,尽可能的做好内部安全域的精细化管理。

3.5 安全编译

这个小实践有一定的局限性,仅适用于使用C/C++的产品开发,但是在我们这种硬件盒子厂商,属于比较常见的安全需求。在使用GCC和VS进行编译时,使用工具提供的安全加固选项,比如加入ASLR(Address Space Layout Randomization:地址空间布局随机化,将进程中的内存空间地址进行随机化,增大入侵者猜测目的地址难度)可以在极大程度上防止缓冲区溢出攻击。

  • 作用选项不同:针对不同的平台,安全编译选项也会有所不同,特别是Windows和其他平台之间的差别较为明显。在这些安全相关选项中,具体的配置选项也有所不同,包括链接选项、编译选项、内核选项、运行系统配置、编译链接选项等;
  • 作用范围不同:尤其要关注对性能影响较大的编译选项,比如FS在运行时会对相关函数的调用进行检查,会影响性能。可以在测试环境中重点进行性能测试,根据结果决定是否应用到生产环境。

3.6 代码保护

对于代码安全的保护,应该覆盖全链路,包括编码时加入安全意识、完成编码时安全存储代码、交付时保护代码防止被逆向或解密。编码安全在前面的环节已经提到很多,这里主要从以下方面来阐述:

  • 代码仓库保护:代码属于公司的数据资产,按照业务重要程度进行分级分库管理,建议将核心业务代码和一般业务代码分开。核心业务代码通过云桌面进行开发和提交,代码不在个人电脑上落盘。所有级别的代码拉取日志,统一接入管理,代码拷贝通过终端DLP监控,建立异常行为监控和分析,及时发现代码存在的风险。
  • 软件交付物安全:在我们的业务场景中,产品会以软件安装包、虚拟机等方式交付。此时客户侧会接触到安装原始文件、安装完成后本地生成的文件,前者可能存在逆向调试的风险,后者的加密算法则会存在一定挑战。常见的安全问题中,硬编码密码、SAST未发现的漏洞等都可能被外部人员发现,故需要从软件保护、交付物安全加固等方面做好代码的保护。
  • 敏感信息泄露监测:公网GitHub敏感信息泄露监控比较常见,开源的工具也比较多,基本能够满足监测代码通过GitHub泄露的需求。但还有通过网盘、码云等其他公网代码托管平台、云文档等途径泄露,自动化程度比较低还是需要人工关注或半自动化。另外内网的wiki平台、员工自己搭建的共享服务,也都是代码泄露的主要战场。

3.7 运营反馈

关于运营反馈,平时讨论的也比较多。这里以一个最常见的场景来举例。当SRC收到高危漏洞时,负责审核的同学会去验证漏洞真实性,若是存在则会联动二线安全运营人员,对该漏洞的攻击路径进行复盘:

  • 系统是否经过安全测试(安全测试被绕过)?
  • 安全测试工具能否检出漏洞(安全测试规则)?
  • 人工安全测试能否发现漏洞(人工安全能力)?
  • 白帽子发现或利用漏洞时,安全设备是否告警(安全检测能力)?
  • 安全设备告警后,是否一线运营人员及时处置(应急响应能力)?

从漏洞的发现到利用点提出疑问,对现有漏洞发现机制和运营检测规则进行检查与反思。针对每一点不足设置提升的目标和明确的计划,做到:

  • 每一个运营阶段发现的漏洞,就是一次提升的机会,向左层层反馈,查漏补缺,持续优化;
  • 明确验证防守能力最有效的方式就是攻击,与其被动接受(监管单位如CNVD通报等),不如主动获取,内部组织开展红队渗透、外部漏洞悬赏等方式。

04

开发安全左移建议

总结一下,每家的开发流程和业务形态不一样,但是要做好开发安全,个人觉得还是有一定的规矩可寻以及借鉴。

4.1 左移是相对的

在被外部爆出漏洞之前,内部组织安全测试,是左移;在被外部爆出漏洞且在媒体炒作之前,通过内部建立完善的公关机制主动出击,对外PR避免公司产生损失,也是左移的体现…因此左移是相对的,左移代表着安全在产品的研发周期及产品的生命周期中无处不在、无处不移。只要是适合发展现状,能解决当前主要问题的安全措施,都是最佳的左移实践。

4.2 贯彻纵深防御

产品安全可以说是企业网络安全的一个缩影,纵深防御的思想同样非常适用于产品研发周期。从最开始的立项开始介入,随后的需求、设计、编码、测试、发布、运营等阶段做出相应安全要求。最开始不用、也不能在每个环节追求完美,想把每个安全问题都检测出来,想要把每个检出的安全问题都推动闭环,而且按照最根本的方案而不是缓解措施,这是很难实现的。大概率会造成ROI低,带来业务方矛盾激化等问题。引入纵深防御的思路,层层设卡与安全检测,在每一个环节解决相对应的top问题,整体效果将会更显著、更上一层。

4.3 安全责任共担

最开始引入“Where Shift-Left”时,就想告诉大家不是安全人员为代码安全买单,而主要问题是出在开发身上。安全人员是有责任帮助开发人员规避漏洞,但主要责任应该归属于开发同学。我们应该以一个教练的角色加入其中,引导开发为自己写的程序安全性负责,提供安全检测工具给他们使用,提供安全咨询服务辅助他们找到真正问题和顺利解决漏洞。安全人员应该是一个教练,而非保姆。“安全责任共担”,是DevSecOps的核心关键之一,在其他开发模式下想必也适用。

4.4 问题抓大放小

当我们将各项安全活动补齐,新上安全测试工具和规则,新添代码审计能手,…会发现漏洞越来越多。这在开发安全初期较为常见,持续一段时间后就会归于平稳。但是这么多漏洞怎么处理呢?全部抓可能接不住或抓不好,不如借助OWASP Top 10的思想,总结内部的top开发安全问题,确定重点解决目标,其他问题同步网格化管理。比如想要消灭SQLi(将漏洞数占总漏洞的百分比降到很低),可以从培训-考核-检测中的每个单方面进行加强。解决完成之后,在第二个问题、第三…直至解决完成。

4.5 安全问题闭环

已发现的安全问题不闭环,Shift Left的效果将大打折扣。更何况还有一些没有被发现的问题,更不能谈到闭环。所以推动已知问题被解决,是一件高价值、理应做得好,却又不好做的任务。比如以安全漏洞为例,各种AST扫描出的漏洞如何管理好呢?一般会遇到这些场景:

  • 开发流程中发现的漏洞,好闭环。在发布前有卡点、有红线要求,不用太担心不修复。不过,也会有绿色通道的情况,即业务需求大于已知高中危漏洞带来的影响,先上线再修复。
  • 运营阶段中发现的漏洞,难闭环。特别是内网环境的高危、可利用漏洞,团队开发了精准的POC扫描,轻而易举的扫出很多高可用漏洞,但是在推动修复时却举步维艰。

经过不断摸索,一致认为走技术已经到头,要想做好漏洞运营工作必须加入管理方法。此时借助了安全管理委员会的力量,由委员会主任组建了内部的安全问题响应群,将公司董事长、总裁、各部门的一把手和安全接口人都拉到群中,每日对超期未修复的漏洞进行公布,并按照部门排名,还时不时的在群里点名,久而久之总裁也在群里点点名,甚至发明和推动了漏洞安全风险分数的落地,整个群一下子就活跃起来,各部门的修洞速度也节节攀升。关于漏洞风险分数有如下内容:

  • 计算公式:安全漏洞风险分数=高危漏洞数*10*时间(超期未修复天数) + 中危漏洞数*3*时间(超期未修复天数) + 中危漏洞数*1*时间(超期未修复天数),漏洞数后面的数值代表权重,超期表示不同漏洞级别有对应的修复时间,内部安全测试发现的漏洞修复时间要求低于外部从SRC收到的相同等级漏洞,比如安全提测发现的高危是1个工作日时限、SRC收到的高危是12h内须完成修复并上线。
  • 充分落地:前期漏洞风险分数从无到有,起到了巨大的漏洞闭环推动作用。但是时间一长,即使有领导的点名,也会出现部分较长时间未修复的情况。于是又增加了一个指标—高危漏洞最长未修复时间,将以前的漏洞风险分数排名榜中,重点标记这个新指标,大家的注意力有会集中到标亮的指标上,又推动了那部分漏洞的整改速度。由此可以总结出,分析未修复漏洞的数据,找到这个可以用作抓手的指标,单独拿出来计算或排名,不断变化和完善。
  • 指标升级:截止写这篇文章为止,又和领导沟通出漏洞闭环的新玩法。先分析漏洞为什么不按要求被修复,应该是部门领导不重视。为什么不重视,因为这件事儿没让他们心疼或肉疼。于是总裁拍板一个漏洞风险分,让相关部门扣100元部门预算到网络安全部。至于效果怎样,还在推进中,不过阻力不小,但是结果应该不会差。

4.6 安全运营反馈

要想做好开发安全,人工运营是必要条件。主动发现人员、工具和流程上的缺陷并提出优化意见,用安全把产品研发周期和产品生命周期管理串联起来形成一个闭环。运营阶段的安全问题向左反馈,提前到研发周期中解决;开发阶段未完全解决的问题,在运营时设置防护和监测措施得以缓解。

05

开发安全能力输出思考

在开发过程中,发现安全问题为第一步,推动其闭环为第二步,让开发尽可能的把精力和时间放在业务功能实现上、且编写出安全的代码,这是第三步。通常我们找出问题、推动修复会给业务带来不少的麻烦,简单来说修复漏洞就要花费大量的时间。原因可能有:

  • 问题修复方法被绕过要重修
  • 同类安全问题的排查与修复
  • 修复完成后要重新提交功能和安全测试
  • 修复方法引入新的安全问题还要再做一遍以上操作…

如果是有能力的安全团队,可以做更多的事情,比如:

  • 输出安全SDK,提供给业务方使用,被发现漏洞时快速标准化修复漏洞,在编码时杜绝已知漏洞;
  • 输出IDE安全插件,提供给开发同学在编码时,及时发现安全问题并完成修复;……

然而,该部分也在努力实践中,后续有进展再继续做分享。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我的安全视界观 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
专访腾讯安全副总裁董志强:我们该如何应对愈演愈烈的安全威胁?
容器技术在诞生的时候,本身并没有太多的考虑安全性,所以近些年来,随着云原生席卷全球,处于云原生计算最前沿的容器技术频频出现安全问题:2018 年,特斯拉、Weight Watchers 在内的多家公司的 Kubernetes 环境遭到攻击;2019 年,黑客利用了一个 Docker Hub 的安全漏洞导致一个企业的 19 万用户数据泄露;另一方面,Log4j 事件预示着全球企业组织正面临漏洞攻击飞速增长的空前局势,软件供应链安全威胁愈演愈烈......
深度学习与Python
2022/06/13
4480
快速了解DevSecOps:构建安全软件开发的基石!
「软件供应链是将“原材料”(代码)进行加工(修改、编译等)交付(分发或再分发)给用户的过程。」 「软件供应链安全指在软件设计与开发的各个阶段中来自本身的编码过程、工具、设备或供应链上游的代码、模块和服务的安全,以及软件交付渠道安全的总和。软件供应链因其复杂多样且攻击简单的特点,极易成为攻击者的攻击目标」
DevOps在路上
2023/08/29
7730
快速了解DevSecOps:构建安全软件开发的基石!
【SDL最初实践】安全测试
SDL可视作为软件安全方面的纵深防御,到了测试阶段也就代表着软件架构与设计已经定型、第三方开源组件的引用已基本不太可能改变、前面各环节的漏网安全bug已迎来最后一次发布前的检测。
aerfa
2019/12/19
1.6K0
从敏捷视角看漏洞管理
在高度自动化的软件研发运维过程中,实现软件内生安全的方法之一就是在各环节引入对应的安全活动和安全要求,通过层层安全检测实现“纵深防御”。然而,为了支撑安全活动的落地,需要打造安全工具链。由此嵌入的安全工具会带来大量安全漏洞,将成为DevSecOps运营的巨大挑战。建立人人参与安全的文化、持续优化安全工具检测规则、所有漏洞聚合关联资产进行管理,推动“高可用”漏洞的闭环,实现快速交付更安全的软件。
aerfa
2022/12/20
9690
从敏捷视角看漏洞管理
如何应对开源组件⻛险?软件成分安全分析(SCA)能力的建设与演进
总第511篇 2022年 第028篇 随着 DevSecOps 概念的推广,以及云原生安全概念的快速普及,研发安全和操作环境安全现在已经变成了近几年非常热的词汇。目前,在系统研发的过程中,开源组件引入的比例越来越高,所以在开源软件治理层面安全部门需要投入更多的精力。 但由于早期技术债的问题,很多企业内部在整个研发流程中对使用了哪些开源组件、这些开源组件可能存在哪些严重的安全隐患等相关的问题,几乎是没有任何能力去进行收敛,多年前的 SCA(Software Composition Analysis 软件成分
美团技术团队
2022/05/27
1.2K0
如何应对开源组件⻛险?软件成分安全分析(SCA)能力的建设与演进
SCA能力再获认可!腾讯Xcheck通过可信开源治理工具能力评估
9月21日,中国信息通信研究院(以下简称“中国信通院”)、中国通信标准化协会联合主办的2023 OSCAR开源产业大会在京召开,会上发布了2023可信开源最新评估结果。其中,腾讯Xcheck-SCA开源威胁管控平台通过了可信开源治理工具评估。继去年通过静态应用程序安全测试(SAST)工具能力要求评估之后,XCheck再次获得了信通院权威认可。
小腾资讯君
2023/10/07
7650
SCA能力再获认可!腾讯Xcheck通过可信开源治理工具能力评估
从SDL到DevSecOps:腾讯云是如何更早地收敛安全漏洞的?
导语 | 随着互联网技术的不断迭代更新,信息安全领域的内涵也在不断发展,安全研发技术的地位也愈加凸显。本文作者来自腾讯安全云鼎实验室,新近参与了《研发运营一体化(DevOps)能力成熟度模型》等安全部分标准制定,此次来和大家分享他对研发安全以及DevSecOps的理解和实践尝试。 随着云计算被普遍运用,微服务等基础架构的成熟,同时企业业务高速发展带来的对开发运维更高效的要求,企业开发运维模型也从传统的瀑布模型演变到敏捷模型再到DevOps。 而安全模型也随之改变,但其核心一直都是贯穿始终以及更前置的安全。
腾讯大讲堂
2020/06/09
2.2K0
2025带你看清DevSecOps的发展背景、现状及未来趋势和最佳实践
DevSecOps的概念在2012年由Gartner首次提出,并逐渐受到国内企业的追捧。随着数字化转型加速和企业上云进程的推进,敏捷开发模式使软件开发生命周期缩短(几天到几周),留给安全的时间越来越短,因此必须在DevOps中有效地融入安全,即DevSecOps。业界已经达成一种共识,即DevSecOps是DevOps发展的必然结果。
软件供应链安全工具推荐
2025/02/21
1690
2025带你看清DevSecOps的发展背景、现状及未来趋势和最佳实践
《研发运营安全白皮书(2020年)》深度解读:全生命周期安全体系将是未来趋势
日前,《研发运营安全白皮书(2020年)》(以下简称“白皮书”)在中国信息通信研究院、中国通信标准化协会联合主办的可信云线上峰会上正式发布。该白皮书是由中国信息通信研究院牵头,联合腾讯、华为、阿里、京东等诸多知名企业共同编制的,旨在用系统化、流程化方法梳理软件应用服务研发运营全生命周期安全及发展趋势,帮助从业者提升对软件应用服务研发运营安全的理解。
腾讯安全
2020/08/14
1K0
《研发运营安全白皮书(2020年)》深度解读:全生命周期安全体系将是未来趋势
SCA技术进阶系列(一):SBOM应用实践初探
现代软件都是组装的而非纯自研。随着开源组件在数字化应用中的使用比例越来越高,混源开发已成为当前业内主流开发方式。开源组件的引入虽然加快了软件开发效率,但同时将开源安全问题引入了整个软件供应链。软件组成成分的透明性成为软件供应链安全保障的基础,SBOM(Software Bill of Materials,软件物料清单)作为软件供应链安全治理的重要抓手,其在行业的应用实践速度明显加快。
OpenSCA社区
2023/02/13
1.3K0
从混沌到体系化——DevSecOps在腾讯云的落地实践
随着云计算被普遍运用,微服务等基础架构的成熟,同时企业对开发运维提出更高效的要求,敏捷开发运维(DevOps)这种提高研发效能,节省成本,最终更快捷实现产品交付并提示产品质量的模式被得到推广和应用。敏捷开发运维的应用,其天生的敏捷性与传统较为缓慢的安全体系的冲突给安全也带来了挑战,如何有效解决这个问题,Gartner在2012年也提出了“DevSecOps”的概念,人人为安全负责,让业务、技术和安全协同工作以生产更安全的产品。 “高速交付”结合“安全编码” DevSecOps引领新时代     Dev
云鼎实验室
2020/05/20
1.6K0
敏捷测试核武库:左移和自动化
在软件开发这个日新月异的行业里,敏捷方法论可谓是"一骑绝尘",成为现代软件研发的主流。它提倡协作、迭代、快速交付,而在这个过程中,敏捷测试扮演了举足轻重的角色。敏捷测试不是简单的"查漏补缺",而是一种贯穿开发全流程的测试策略,它让测试与开发"并肩作战",提升软件质量,缩短交付周期,让产品更灵活、更可靠。
FunTester
2025/04/09
1300
敏捷测试核武库:左移和自动化
默安科技云舒:十五年后,重谈安全开发体系
前些时候我讲了点“欺骗防御”的事情,并且预言了它的发展趋势。没想到,突如其来的一场全国范围的攻防演练让它爆红。在攻防博弈中,防御方第一次抢到了一点先机,给攻击者带来了一些不确定性。我相信,随着这次演练,欺骗防御产品将会得到更加普遍的使用,继续改变后续的攻防模式。
FB客服
2019/09/05
1.1K0
默安科技云舒:十五年后,重谈安全开发体系
供应链安全:安全建设中的第三方组件依赖问题
读者们可否有信息回答这个问题:"作为安全负责人,你知道公司使用和开发的应用中使用的开源组件都是最新的,已经安装了所有的重要安全补丁?"答案一定是窘迫的,如果连自己公司正在使用哪些软件,用什么开发的系统都不知道,何谈为其安装安全补丁呢?原因在于许多企业所用的开源组件并没有保存准确、全面、更新的资产清单,所以要做好组件安全,首先要有清晰的组件列表,并实时后台自动维护。不仅仅关注外部引入的代码,也要区分商业组件、开源组件和内部组件的版本和漏洞。
安全乐观主义
2019/11/20
9940
內建安全的软件开发 | TW洞见
今日洞见 文章作者/配图来自ThoughtWorks:马伟。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发布/发表。已经本网协议授权的媒体、网站,在使用时必须注明"内容来源:ThoughtWorks洞见",并指定原文链接,违者本网将依法追究责任。 1. 传统安全实践面临着严峻的挑战 随着互联网应用、移动应用爆发式的增长,伴随而来的黑客攻击事件也是层出不穷。仅在过去的2015年里,被公开报道的数
ThoughtWorks
2018/04/20
7170
內建安全的软件开发 | TW洞见
2025 年软件测试趋势:你准备好了吗?
随着软件开发模式的不断变化,软件测试行业也在经历着一场深刻的变革。曾几何时,手工测试一度占据主导地位,但如今,自动化测试已经成为标准,而 AI 驱动的智能测试正迅速崛起。测试工程师的角色与技能要求也在不断提升,从单纯的找 Bug 到如今的质量保障全链条参与。到了 2025 年,软件质量的保障不仅仅依赖传统的测试人员,更需要与开发、运维、安全团队的深度协作,形成 DevOps、DevSecOps 以及智能化测试的新生态。
FunTester
2025/02/26
3490
2025 年软件测试趋势:你准备好了吗?
从开发者视角浅谈供应链安全
软件供应链安全,它覆盖整个软件生命周期过程(可分为开发、交付、使用三大环节),单从软件产品的复杂性来说,除了保障软件项目自身的安全之外,还需包括每个项目的依赖关系与可传递依赖关系,以及这些关系链所组成的软件生态系统的安全。
小道安全
2023/09/14
4850
从开发者视角浅谈供应链安全
互联网企业如何有效落地SDL
笔者在实施SDL方面有多年的经验,实施过微软厚重的SDL,实施过互联网企业粗糙的SDL,目前在落地标准化自动化的SDL,在此将我的经验分享出来。为了让大家更好的理解SDL实施的过程,本文尽量以口语化叙事的方式描述SDL实施的过程。当然每家公司的devops和实际的开发流程不一样,所以实施SDL不能照搬照套,还是得结合自己公司的实际情况。
FB客服
2019/12/09
1.3K0
互联网企业如何有效落地SDL
从SDLC到DevOps下的广义应用安全管控体系
17年起,我们引入建立了适合内部研发的SDLC流程,在传统的研发模式下,一个需求从意向拆分到用户故事,再到开发子任务,一次迭代大多都要经过2周以上的时间。经过重人力运营的严格SDLC活动(各业务开发条线配备一名或多名专职安全运营人力进入开发团队深度运营),完成下来基本上可以极大的降低应用安全风险。但随着这两年公司IT人力迅速扩张,以及各类业务需求的爆发增长,推动着敏捷开发的迭代周期不断缩短,倒逼研发模式向DevOps转型。这种状态下,重人力运营的SDLC逐渐成为整个开发流程中的短板,对于动辄数千个应用的组织来说,也只能挑选重要的业务系统执行SDLC,大量内网应用无人力覆盖,而且在新时期对更频繁、快捷、可靠以及智能的要求下,愈发凸显出这种模式的缺点,由此必须转变思维,建设在敏捷模式下的广义应用安全体系。
FB客服
2020/09/04
1.8K0
从SDLC到DevOps下的广义应用安全管控体系
DevSecOps详解及案例分享
绝大部分的网络攻击事件都会伴随着对系统、软件当中漏洞的利用;因此,可以说软件开发者身处网络安全的斗争前线,也毫不为过。然而,现实来看,由于过去对网络安全的忽视,造成软件开发人员安全意识的缺乏,使得我们的软件中总是存在着大量的漏洞——甚至是一些极其轻易就能被利用却产生严重后果的漏洞。
DevOps持续交付
2021/05/11
5K0
推荐阅读
相关推荐
专访腾讯安全副总裁董志强:我们该如何应对愈演愈烈的安全威胁?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档