ChatGPT:DevSecOps 落地实践的最后一公里

DevSecOps 背后的三个逻辑


复杂性:让安全从 “幕后” 走向 “台前”

安全并不是一个新鲜的话题,自软件诞生以来,安全就一路伴随,但是近几年安全似乎又到了一个新的 “热度” 与 “高度”。

一些企业、组织都在探讨软件供应链安全的问题。安全从之前的小众话题(可能只有安全、CISO 关注)变成了大众话题(研发、运维也在讨论)。究其原因可能是因为软件发展到如今的复杂性,让安全从 “幕后(个别人关注)” 走到了 “台前(大众关注)”。这些复杂性可能包括:

➤ 开源的使用率持续提升

开源成为了构建现代化数字基础设施的重要因素。企业、组织都无可避免的用到了开源。根据 Linux 基金会的 SBOM 报告显示,98% 的受访者表示自己所在的组织在使用开源;另外根据 Synopsys 开源安全和风险分析报告指出,调研使用的代码库中,75% 的代码是来源于开源软件。

当然,安全也成为了伴随开源使用和渗透率持续提升而出现的一个大问题。这两年为大众所熟知的 log4j 漏洞、NPM 包投毒就是典型的开源安全问题,还有时不时发生的许可证合规问题等。

➤ 软件研发模式的改变

软件研发模式从瀑布式到敏捷开发再到 DevOps 的演进,让软件的频繁发布(周发布,甚至天发布)成为常态,发布时间的缩短就并不意味着忽视安全,而是需要在早期就考虑安全问题,需要做到在保证软件安全的前提下完成软件的敏捷发布。

➤ 云(或者云原生)的转型

企业期望通过上云来利用云平台弹性伸缩的特性实现降本增效,而安全是企业 “走向” 云平台的首要考虑因素。拿这几年火爆的云原生(有说法是云原生是云计算的下一个时代)来讲,其安全也是经常被提及。

比如,镜像是云原生应用程序交付的关键,但 Snyk 发布的容器镜像安全报告指出,Docker Hub 上的热门镜像几乎都存在安全漏洞,多的达上百个,少的也有数十个。这些安全漏洞会对云原生应用程序的安全造成威胁。

➤ 法律法规的完善

近些年国内外都相继颁布了多项法律法规措施来推进安全的治理和发展。比如我国从 2017 年开始,陆续颁布并实施了《网络安全法》、《等保 2.0》、《数据安全法》以及《个人信息保护法》等法案,旨在针对数据安全(安全问题的背后其实是数据安全,安全问题是造成数据安全的重大杀手,而安全是数字化时代的核心要素)提出相应的要求和目标;而欧洲也在 2018 年开始实施 GDPR(通用数据保护条例);美国总统在 2021 年签署了提高国家网络安全的行政命令。

法律法规的完善意味着如果发生了相应的安全问题,那么就有可能会受到监管机构的处罚,令企业蒙受经济损失。

➤ 软件供应链安全事件频发

Sonatype 发布的 2021 年软件供应链状态报告显示,2015 年 - 2021 年,软件供应链攻击事件的年增长率达到了惊人的 650%。

而 2020 年的 SolarWinds 事件,2021 年的 log4j 事件都是从业者耳熟能详的典型软件供应链安全实践。其影响将持续数年甚至更长时间。

DevSecOps:应用安全新范式,未来已来

2009 年 DevOps 首次面世,此后发展成为了应用交付的事实标准。众多企业在实践 DevOps 后实现了应用程序交付效率的大幅提升。但是安全是应用程序的基线,也是企业良好发展的生命线。尤其在现如今软件敏态开发场景下,需要在保证安全的前提下实现软件交付效率的提升。

而 DevSecOps 讲的就是将安全嵌入到软件研发生命周期的每一个阶段,通过流程、工具、文化的融合,构建起应用程序的纵深防御体系,形成应用程序效率与安全兼得的双赢局面。

DevSecOps 由 Gartner 在 2012 年首次提出(当初的叫法是 SecDevOps)。根据 Gartner 过往发布的应用程序安全测试(Application Security Testing)技术度成熟曲线来看,DevSecOps 也是经历了期望峰值期、泡沫破裂的低谷期、稳步爬升期,到了现在的成熟实践期,这也是另外一个原因:为什么这两年会有越来越多的人员、企业、组织在讨论 DevSecOps。

安全左移:解铃还须系铃人

安全问题的循环周期大概为:安全问题引入、风险识别、问题追踪、安全修复、安全复盘,然后再回到安全问题引入。绝大多数的安全问题都是在研发阶段引入,后续阶段的安全防护手段主要是对前期引入的安全问题进行挖掘修复,以其减轻其带来的安全风险。

而研发阶段在整个软件开发生命周期的左侧,因此这也是安全左移的由来:

越靠近左侧,修复安全问题的成本就越低,主要原因为:

  • 研发对于环境的掌控能力强,可以在研发环境上自行进行问题复现、修复,沟通成本大大下降(相比集测环境、生产环境,如果需要抓取日志、问题复现等,可能需要权限的申请、团队的沟通协作);

  • 越快发现问题,研发越能够快速梳理清楚整个逻辑,快速解决问题(随着时间的推移,研发对于过往完成的研发任务的细节越模糊比如要梳理三个月之前的业务逻辑,总是会比梳理一周以前的业务逻辑要花费的时间更多),时间成本也大大降低;

  • 研发阶段的 “爆炸半径” 相对而言是最小的(相比于生产环境)。研发阶段面对的是研发人员或者系统内部,而生产环境需要直面用户,用户体验下降,对产品的影响是重大的。

因此,对于 DevSecOps 常讲的安全左移来讲,属于是解铃还需系铃人:安全问题(绝大多数,非全部)的引入在研发侧,那么在研发侧来修复,从原则和成本来看都是可行的。

前面讲述了 DevSecOps 背后的三大逻辑:安全问题频发,需要修复 → DevSecOps 是当前认可的最佳手段 → 安全左移是 DevSecOps 落地的基本原则。这是一个层层递进的关系。

当然,目前安全这部分还有一个非常重要的逻辑:重要不等于重视。安全很重要是业界的认可,但是真正重视,在安全领域去做投入的却不多。这算是安全当前的一个窘境或困境吧!

DevSecOps 发展的四个阶段


人类的进化经历了漫长的阶段:从猿类到人类,从爬行到站立直行。不管是生产力还是社会的文明程度都得到了极大的提升。

图片来源:FreePik

对于 DevSecOps 来讲也是一样,大概经历了以下四个阶段:

手动化

这个阶段,主要以手动方式对于安全进行测试。当需要发布版本的时候,对发布版本进行一次安全测试(有可能针对单一安全手段,比如 SAST 或 DAST,也有可能针对多重安全手段,比如 SAST 和 DAST 的结合),针对输出的报告进行对应责任的划分,然后完成安全问题的修复。

手动操作是长时期以来一直存在的安全测试手段。其优点是:对于安全进行了投入。但是缺点也很明显:手动操作是重复性劳动,没办法针对每次代码提交都进行安全测试,只能是针对特定版本进行,而且需要测试人员熟悉所使用的测试工具。整体下来效率不高,安全问题修复的周期是比较长的。

自动化

自动化比手动化更近了一步。将安全测试集成到软件交付的自动化流程中,最典型的就是嵌入到 CI/CD 流程中,实现安全测试的持续自动化。自动化的优点比较明显:通过自动化降低了人为的干预,避免重复性的机械工作。

同时,嵌入到 CI/CD 中的安全测试,能够针对每次代码变更都进行对应的安全扫描,能够更加频繁的小步快跑的过程中及时发现安全问题。

但是缺点也是存在的:需要去学习运维负责的安全工具链,要熟悉各个工具的 API 或报告的数据结构才能够将多种安全防护手段对应的安全工具链 “串” 在一起,集成到 CI/CD 中,因此在工具上耗费的时间和精力是比较大的。

手动化和自动化有一个共性:发力点在工具链上。比如工具链的安装、配置、运维、学习等。随着工具链复杂程度的提高,这种成本陡升。比如下面这个调研报告显示,受访者表示自身企业使用到了多种安全测试工具,有的甚至多达 50 种。

此外,这种聚焦在工具链的方法,还有一个弊端:数据孤岛问题。所有的安全报告都在对应的安全检测工具上,研发、测试、安全人员想要查看安全报告就需要跳转到第三方安全工具端去查看,或者安全工具将报告发送到邮箱或 Slack 等通讯工具端,人员在通讯工具查看。

数据没办法在 SCM(研发最熟悉的工具)和安全测试工具之间打通,甚至多种安全工具之间的数据也是割裂的(不同的工具,数据格式不同,集成难度大)。数据孤岛又成了安全问题修复的新屏障。

平台化

平台化有效的解决了数据孤岛的问题,不仅可以将多种安全工具的数据经过整合后展示在同一平台上,同时还能够将安全流程和项目管理(可以用项目管理的方式来进行安全漏洞的管理)、编码、CI/CD 等流程集成起来,提高安全问题修复的速度,缩短修复周期。

因此,平台化的好处就是:可以屏蔽所有工具链的细节,直接使用开箱即用的安全能力。这也是平台化比前两个阶段有一个质的跃迁的地方:从工具的使用转向数据的挖掘和使用。

比如极狐GitLab 一体化 DevSecOps 平台,提供了 7 大安全测试手段(9 种安全防护能力),为用户屏蔽了所有的底层工具链细节,并且将安全测试无缝集成到 CI/CD 中,对于每次代码变更都会自动进行安全扫描。最后所有的安全数据都会直接嵌入到 Merge Request 中,用数据左移实现安全左移:

平台化还有另外一个好处:让研发、测试、安全等人员在同一个平台上协作,沟通成本大大下降。

虽然平台化通过发挥数据的作用,让安全左移成为现实。但是平台还有另外一个问题没有解决:并没有降低安全问题修复的门槛。安全问题的细节还是回到了安全漏洞的官方网站:

这也就意味着安全的修复依旧需要一些专业的安全知识,这对于研发来讲依旧充满了挑战,而这种门槛成为了 DevSecOps 发挥最大作用的最后一公里。

智能化(ChatGPT)

智能化主要是指利用 AI/ML 来构建应用程序安全防护体系。这并不是什么新鲜的玩法,国内外企业都有对应的常识,甚至成型的产品。

比如使用 AI/ML 来防止 DDos 攻击、自动修复安全漏洞等。但是 ChatGPT 的出现大大降低了安全问题修复的门槛:它能够以研发人员易懂的话术进行安全问题的解析,甚至直接给出可行的修复代码。

因此,ChatGPT 是否会成为 DevSecOps 的下一个发展阶段,成为 DevSecOps 落地实践的最后一公里?

ChatGPT:DevSecOps 落地实践的最后一公里


Medium 上有一篇文章Complete ChatGPT Guide for DevSecOps: Top 20 Most Essential Prompts 写了一些 ChatGPT 可以做的一些工作,来助力 DevSecOps 的落地实践,比如自动地代码审核、威胁建模的生成、安全测试的生成、安全漏洞的识别等。

下面几个小 Demo 展示了 ChatGPT 在 DevSecOps 实践中的可用 “玩法”。

Code Review

Code Review 是提升代码安全、构建质量内建、保障软件供应链安全的重要手段之一。比如保障软件供应链安全的框架 SLSA 就是由 Google 内部的 Binary Authorization for Borg (以下简称 BAB)实践演进而来,而 BAB 中非常重要的一个实践就是:Code Review。

通常 Code Review 的流程大体就是代码提交人员和审核人员之间关于变更代码进行代码风格、业务逻辑、安全问题等方面的沟通

这种模式下 Reviewer 的选择对于提升代码安全是非常重要的,诸如Reviewer 的能力(业务能力、技能储备、沟通能力)都会影响代码的合入。

另外,这种模式,人员之间的沟通往往是异步的(Reviewer 可能是跨时区的,也有可能手头有更高优先级的事情在处理等),这容易导致一个 MR 从创建到被审核之后的合入花费了较长的时间。当业务情况紧急的时候,往往可能发生,Code Review 让位于业务上线,让 Code Review 流于形式。

借助于 ChatGPT,一方面可以将异步 Review 变成同步,节省 Review 周期的时间,另一方面 ChatGPT 的知识库更加全面(尤其代码风格、安全漏洞库方面),能够针对代码提出更多潜在问题。

当然,对于业务逻辑本身的 Review,还需要经验丰富的人员进行。

关于使用 ChatGPT 进行 Code Review 的例子,可以参考本公众号过往的一篇文章👉玩转 ChatGPT + 极狐GitLab |自动化的 MR 变更评审来了

安全漏洞的识别与修复

用一段 Node.js 代码片段来测试 ChatGPT 对于安全漏洞的识别能力。

const express = require('express');
const app = express();
const port = 3000;// 不安全: 直接调用 eval 解析 json, 有安全漏洞,触发静态代码扫描告警
const sUserInput = getURLParam("json_val");
const jsonstr1 = `{"name":"a","company":"b","value":"${sUserInput}"}`;
const json1 = eval(`(${jsonstr1})`);// Static Files
app.use(express.static('public'));
app.use('/css', express.static(__dirname + 'public/css'));
app.use('/js', express.static(__dirname + 'public/js'));
app.use('/img', express.static(__dirname + 'public/img'));//  Listen on port 3000
app.listen(port, () => console.info(`Listening on port ${port}`));const email_validator = require('./email_validator.js');
email_validator('workshop@jihulab.com')

上述代码中的 eval 函数存在安全风险,通过和 ChatGPT 交流来获得详情:

ChatGPT 明确告知 eval  函数的使用具有安全隐患。为了验证 ChatGPT 的答案是否可信,可以利用极狐GitLab 一体化 DevSecOps 平台来对上述代码进行安全扫描。以下是利用极狐GitLab DevSecOps SAST 功能的 CI/CD 代码:

stages:- testinclude:- template: Security/SAST.gitlab-ci.yml

极狐GitLab 一体化 DevSecOps 平台,为用户屏蔽掉了安全工具的细节,提供开箱即用的安全能力,而且安全扫描和 CI/CD 无缝集成,可以针对每次代码变更都进行安全自动化扫描。扫描结果会自动嵌入到 Merge Request 中,方便研发人员查看安全报告。真正实现 “安全左移”。

扫描结果显示,有一个中危漏洞,也是关于 Eval 注入(Eval Injection)的。和 ChatGPT 所说一致。

如果对于上面提到的攻击者可以利用这个函数注入恶意代码,从而造成安全漏洞不甚明白,想要更细节的举例演示,则可以跟 ChatGPT 继续聊,ChatGPT 会根据上下文给出答案:

可以看出,ChatGPT 可以用研发人员易懂的话术对安全问题进行讲解,如果有疑惑的地方,可以和 ChatGPT 进行 “深入交流”。换句话说,ChatGPT 降低了安全修复的门槛(毕竟,研发能快速读懂的话,修复就省事、省时了)。

当然,ChatGPT 还会给出修复代码:

再次使用极狐GitLab 一体化 DevSecOps 平台对于上述 ChatGPT 给出的代码进行安全扫描:

从结果看,显示使用 SAST 检测未发现安全漏洞。

注意:上述示例仅为演示所用,实际使用需要将 ChatGPT 的输出与项目实际相结合,对于 ChatGPT 的建议代码进行人工审核。

上面演示了使用 ChatGPT 对于代码安全漏洞就行扫码并辅助修复的过程。可以看出,ChatGPT 有 “自己的” 安全知识库,但是在研发人员的引导下能够用研发人员易懂的话术(人话)对于安全问题进行解读,然后给出建议的修复方案(很直白,直接给代码)。

这在很大程度上降低了修复安全问题的门槛,研发人员体验会有提升,安全问题修复的周期会缩短。而且可以将这一步前置到 Code Review 阶段,使用 ChatGPT 在进行 Code Review 的时候就进行安全问题发现。

当然,ChatGPT 还可以用来进行威胁建模的生成、安全文档的输出等。限于文章篇幅,不再进行一一展示。

总结


DevSecOps 期望通过 “安全左移” 的方法在安全问题引入的源头及时修复问题,尽量减轻安全风险带来的攻击影响力,利用一体化 DevSecOps 平台来助力实现 “人人为安全” 理念的实践。

但是,对于安全问题的理解、报告的解读始终是横亘在研发和安全之间的一个壁垒,ChatGPT 的出现极有可能会是打破这道壁垒的希望,ChatGPT 可以将研发和安全纳入到同一个话术体系,用研发人员熟悉、感兴趣的语言解决安全问题,给研发愉悦的安全修复体验,打通 DevSecOps 真正落地的最后一公里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35113.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT背后的打工人:你不干,有的是AI干

AI“出圈” 如今,数字技术发展速度惊人,AI提高了社会生产效率,更真切地冲击到原有的生产秩序。 年初AI技术的爆发,让国内看到了进一步降本增效的希望。 国内多家互联网企业相继推出类ChatGPT产品,复旦大学邱锡鹏教授…

杀入GPT战场,「两翼齐飞」的360胜算有几分?|内测体验

衡宇 发自 凹非寺量子位 | 公众号 QbitAI 360,正站在GPT风口浪尖迎来新一春。 在透露相关计划后2个月内,360快速给出了类ChatGPT产品。公开展示后半个月,就在昨天,360大模型进入落地加速期: 基于360GPT开发的“360智脑…

GPT-4再次引爆科技圈?

北京时间3月15日凌晨, Open AI如期发布最新的大模型GPT-4,众多亮点功能直接引爆了科技圈。科技板块头条被GPT-4的发布会占据,朋友圈里面也被发布霸屏,满满的全员围观即视感。 Open ai在官网上放出了发布会的全部内容,…

Java音视频处理——JavaCV

目录 简介 Maven 软件环境 JavaCV-Examples OpenCV Cookbook Examples 概述 示例 OpenCV文档 如何使用JavaCV示例 示例代码的组织结构 示例列表 Why Scala? 学习地址 图像简单处理代码示例 1.打开保存一张图 2.画直线 3.画圆圈 4.画折现 5.添加文字水印 6.裁…

大模型与AIGC峰会!知名专家学者现场论道!

6月30日-7月1日,在由稀土掘金开发者社区主办的稀土开发者大会上,邀你与专业前沿的嘉宾面对面交流!6月30日上午的主会场,北京大学王选计算机研究所教授、CCF 自然语言处理专委会秘书长万小军,会带来关于AIGC的重磅分享。…

第三周C++与PCL的学习(3.13-3.19)

目录 第一天3.13 星期一 Qt安装于简单应用 第二天3.14 星期二 ui闪退的解决、PCL的pri文件配置 第三天3.15 星期三 百度地图api的调用以及在Qt中的配置 第四天3.16 星期四 PCM软件的学习 第五天3.17 星期五 数据库的建立和使用 第六天3.18 星期六 Kinect融合、时…

利用微软Bing进行AI绘画

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 Link: http://bing.com/create

为什么说买彩票是交智商税?

很多人都有一夜暴富的幻想,梦想着好运来临,从此咸鱼翻身,这种心态可以理解,现在经济不景气,工作又辛苦,钱越来越难赚,想来想去能够实现财富自由最轻松的方式就是买彩票了。 我以前也经常买彩票…

腾讯领投英国金融科技创企True Layer 4000万美元融资

【TechWeb】6月4日消息,据国外媒体报道,腾讯将向一家成立5年的英国金融科技初创企业注资数千万美元,这笔投资将进一步提振伦敦的金融科技行业。 据业内人士透露,腾讯领投True Layer 4000万美元融资。新加坡主权财富基金淡马锡也可…

比起商汤IPO,我们更关心那1亿美金和C轮融资的背后大料

昨日(11月23日),营长的朋友圈被《商汤科技计划IPO 并将在美设立研发中心》刷屏了。甚至有媒体曝“商汤科技最早明年进行IPO”。 这条新闻最早由路透社爆出来。对此,AI科技大本营向商汤科技官方求证是否已经开始为IPO做相关准备&a…

信音电子在创业板IPO:募资约9亿元,预计上半年收入约4.3亿元

7月17日,信音电子(中国)股份有限公司(下称“信音电子”,SZ:301329)在深圳证券交易所创业板上市。本次上市,信音电子的发行价为21.00元/股,发行数量为为4300万股,募资总额…

【金猿投融展】GrowingIO——一站式数据增长引擎整体方案服务商

投融资项目GrowingIO 本项目由GrowingIO投递并参与“数据猿年度金猿策划活动——2021大数据产业最具投资价值榜单及奖项”评选。 数据智能产业创新服务媒体 ——聚焦数智 改变商业 GrowingIO 创立于2015年5月,是国内领先的一站式数据增长引擎方案服务商&#xff0c…

弘玑Cyclone完成1.5亿美元C轮融资,创行业单笔融资额最大记录

近日,全球领先的RPA公司,超自动化(Hyperautomation)行业的领导者弘玑Cyclone完成1.5亿美元C轮融资,成单笔融资额最大的中国RPA厂商。本轮融资由CMC资本、高盛资产管理领投,Lavender Hill Capital Partners&…

普源精电通过注册:拟募资7.5亿 高瓴与招银是股东

雷递网 雷建平 3月7日报道 普源精电科技股份有限公司(简称:“普源精电”)日前通过注册,预计近期在科创板上市,计划募资7.5亿元。 其中1.5亿元用于以自研芯片组为基础的高端数字示波器产业化项目,1.61亿元用…

康力源在创业板提交注册:预计全年收入同比下滑,衡墩建持股98%

12月4日,江苏康力源体育科技股份有限公司(下称“康力源”)在深圳证券交易所创业板提交招股书(注册稿)。据贝多财经了解,康力源于2021年11月12日在创业板递交招股书,2022年8月11日获得上市委会议…

思林杰科技通过注册:应收账款余额1.87亿 占营收比例160%

雷递网 雷建平 2月18日报道 广州思林杰科技股份有限公司(简称:“思林杰科技”)日前通过注册,准备在科创板上市,计划募资5.57亿元。 其中,2.67亿元用于嵌入式智能仪器模块扩产建设项目,1.6亿元用…

观远数据完成2.8亿元C轮融资

近日,一站式数据分析与商业智能平台提供商——杭州观远数据有限公司(以下简称“观远数据”)宣布完成新一轮2.8亿元C轮融资。本轮融资由全球知名的老虎环球基金(Tiger Global)领投,红杉中国、线性资本、襄禾资本、独秀资本(Unicorn Capital Partners)等老股东全线跟投。据观远数…

惠通科技冲刺深交所:年营收5亿 严旭明与张建纲为实控人

雷递网 雷建平 6月18日报道 扬州惠通科技股份有限公司(简称:“惠通科技”)日前递交招股书,准备在深交所创业板上市。 惠通科技计划募资4亿元,其中,1.5亿元用于高端化工装备生产线智能化升级改造项目&#x…

巨潮资讯网上市公司股票讯息批量下载

分析网页 可以看见网站搜索框这里运用了异步JavaScript渲染来报证不刷新整个页面的情况下来刷新数据,这样我们就可直接打开浏览器开发工具找到Ajax请求,也就是图中我点击的位置,然后可以看到请求体里面有params数,这个参数一般是用…

智融科技冲刺科创板上市:拟募资4.5亿元,产品单价和毛利率高

4月15日,珠海智融科技股份有限公司(下称“智融科技”)披露招股说明书(申报稿),并获得科创板受理。本次上市,智融科技拟发行股份不超过1500万股,占发行后总股本的比例不低于25%&#…