今天大多数组织都认识到安全的重要性。但与此同时,开发团队被要求行动得更快、交付得更迅速、更频繁,并且自主行事。要满足这些双重需求可能会很困难。
播客成绩单
丽贝卡·帕森斯:
大家好。欢迎来到思科播客。188bet宝金博app下载我的名字是丽贝卡帕森逊。我是思想家的首席技术官。188bet宝金博app下载
迈克·梅森:
我的名字是迈克梅森。我是有思想撰写的技术领导,我与CTO办公室的丽贝卡密切合作188bet宝金博app下载,我们共同主持了巡逻播客。今天我们加入了我们两个安全专家,CADE和KEN谈论Devsecops。所以Cade,你想介绍自己吗?
凯德凯恩斯:
当然,我是凯德凯恩斯。我是一个主要技术学家在思考术语。188bet宝金博app下载我有一个非常长的职业生涯,跨越了很多发展角色,也是安全的融合。这几天我更专注于两者的交叉点。
迈克·梅森:
肯,你能打个招呼并自我介绍一下吗?
Ken Mugrage:
确定。我是Ken Mugrage。我是Thoughtworks产品的技术倡导者。188bet宝金博app下载我从事连续交付已经有好几年了,到现在已经有9到10年了。我也是一个名为DevOpsDays的系列会议的全球组织者,DevOps这个词就是从这里来的。
丽贝卡·帕森斯:
谢谢你,凯德。谢谢你,肯。我想先讲一下DevOps和一些正在流行的概念,DevSecOps,还有其他一些。看来戴夫跟在厨房水槽后面,再跟在行动组后面是流行的表情包之一。Ken,你能告诉我们一些关于DevOps的事情吗?你是如何看待安全和DevOps的?
Ken Mugrage:
当然,很乐意。首先,我想我喜欢把DevOps看作是两个动词的组合,而不是名词。所以它不是开发者和运营商,而是开发和操作软件。这是我的印象或我的观点,当你这样想的时候,它更包容。您需要考虑与开发和操作软件有关的所有事情。我不喜欢在这件事上添加更多的词语,只是因为我认为让它更具包容性的意图实际上会产生相反的效果。
Ken Mugrage:
因此,例如,如果我们这样说,“好的,安全不是Devops的一部分,所以我们需要Devsecops,”那么我们暗示用户体验或合规或其他部门也不是Devops的一部分。所以有一个人,Nathan Harvey,谁说如果你服用糖,小苏打,巧克力,鸡蛋,你没有Sugbakechocegg,你有蛋糕。所以我的意思是我的事情,我认为devops已经包容了。当我们说这支球队正在练习Devops时,但这支球队正在练习Devsecops,它有点让第一个队伍从钩子做安全。
凯德凯恩斯:
我认为这是一个很好的观点,肯。但同时,我觉得在我工作过的许多不同的组织中,安全性似乎已经从桌面上消失了。因此,现在我们似乎听到了更多关于DevSecOps和在交付中构建安全性的信息,甚至更多地涉及到安全性。因为对于很多组织来说,有很多人,这感觉像是一项重大成就。我认为,我们所在的行业正开始真正认识到,我们需要做更多的工作来保护客户的信息安全,保护我们的IT财产安全,并寻找实现这一点的方法。
迈克·梅森:
这对我来说,令人惊讶的是,在CADE上,听到这一进展是如此缓慢的高调违规,并且至少谈到了安全性和保持人民数据的重要性。这是难以做到的是不是取得进展吗?或者还有其他原因,尽管[听不清00:04:15]
凯德凯恩斯:
我认为有很多组织在这方面做得很好,或者至少在安全方面做得更积极。但与此同时,公司的开发部门或DevOps人员的发展速度越来越快,他们想要更大的自主权,他们正在向平台转移,他们做事情的速度越来越快。实际上,对于大多数组织来说,安全人员的数量是有限的他们可以帮助或尝试跟上所有正在进行的不同努力。因此,可能只是由于安全长期以来一直是一个相当孤立的功能,它通常没有像可能的那样接近开发。
丽贝卡·帕森斯:
接下来,你们讨论了有限数量的安全人员,有限数量的安全人员。你认为我们在这里讨论的内容中有多少仅仅与技术的规模、技术被越来越多地使用的程度以及对不同类型组织越来越重要的程度有关?不仅仅是技术公司或纯技术产品公司需要担心这些事情,而是所有组织都有这个问题。你认为这与规模有多大关系,而不仅仅是技术进步的速度?
凯德凯恩斯:
我认为部分挑战肯定是规模,但可能不仅仅是规模,还有过去很多安全任务的完成方式。相当多的安全性测试历来相当手册,虽然人们依靠很多伟大的自动化工具,我不认为很多人一直优化以同样的方式重复使用在蔡先生类型设置为我们的发展。
凯德凯恩斯:
在这和有限的人员数量之间,它是一个相当大的挑战,要有同样的影响,就像我们做的测试,我们做的一部分,我们的软件交付实践。
迈克·梅森:
我在几年内看到了这一档次的几年的事情也是如此,这是早期的,高表演的IT组织是经常部署的人。我们知道,经常部署软件的能力有助于提高响应性,通常提高质量。但是,一些落后的组织有点如上所述,就像一个货物欺骗的东西,他们将开始更频繁地部署,并且实际上并没有拥有所有的过程和良好的自动化和测试水平。因此,即使他们更频繁地部署,他们也看到了种类的实际,更高的失败率,更长的时间来恢复和所有这些东西。
迈克·梅森:
我认为有趣的是很多组织看到了这个持续交付和部署的过程并试图模仿它。而且,您尝试投入生产的构建越多,您对传统安全流程之类的东西施加的压力就越大。
Ken Mugrage:
是的。诚实地对你来说,这是我不是个人是一个非常大的粉丝的原因之一,每天部署或每次期间都是公制。我的意思是,如果这对你的企业来说是一个重要的事情,你需要能够启用它,如果你是一个贸易公司,那就是快速移动,那么这是一个非常重要的事情。但是你提到的模式是正确的,它是对的,人们是人们开始越来越快,但更糟糕的是。所以这不仅仅是安全是其他类型的测试,在那里成为公制。我认为我们都知道度量标准的行为行为。所以他们是,“哦,我不想在我的管道中做安全测试,因为这将需要几分钟或几个小时。我不想吃那个,不得不等待等等。”其中一些与管道设计有关,我们可以稍后去。但不,我认为这是指标的危险。我们需要了解我们业务的正确释放频率。
凯德凯恩斯:
这肯定很重要。但是,在我与许多组织合作的经验中,我们大部分时间都没有看到积压中的安全要求,这将要求我们为此的东西编写测试。当然,你所说的是关于我与之合作的任何团队的关注,因为它涉及一些较大的Clunkier安全测试工具,可以花费很长时间运行。如果我们有很多机会,如果我们有适当的安全要求来编写辐条测试,或查找其他方法以确保我们没有引入安全缺陷或具有正确应用的安全控件,则应有很多机会。我认为很多人都错过了机会,因为我们没有那些对话。这可能会恢复到这一事实,这是安全的那么多。
Ken Mugrage:
我认为这很大程度上是信息共享,凯德实际上暗示过这一点。完成这些任务对我来说非常重要,但说实话,我不能确切地告诉您应该使用哪些工具或运行哪些测试。所以我就在这里。这是我见过的最有效的模式之一。它很有效,尤其是在我们,如果我们的团队是长期运行的团队,所以整个产品不是项目的事情是在团队中嵌入人员,至少在开始的时候。
Ken Mugrage:
我知道我们在一些项目中与审计师和其他类型的事情上做过这样的事,“好的,这些是我们要从技术角度做的事情。这是我们选择的技术堆栈。这是我们要向用户询问的信息类型。这些是我们要连接的系统,等等。”
Ken Mugrage:
安全人员会说,好吧,在这种情况下,这些就是我们需要测试的东西。这是你的攻击面所在,这是你可能想要使用的平台。这就是所谓的。”然后他们一起制定计划,如果你愿意的话。那些需要在流水线上完成的东西,以及那些需要手工完成的东西。因为,让我们不要忽视,这不是所有的自动化。我有个好朋友杰森,他坐在暗室里做笔测试,我想要杰森。
Ken Mugrage:
所以,它不是那种东西的替代品。但是如果我们能把这些知识到那些团队,即使是古老的矩阵组织或协会或称它为你想要的,你帮助建立项目,帮助建立测试需要什么然后离开,变成了一个顾问的角色。
凯德凯恩斯:
我完全同意。我的意思是,再次存在一些挑战,只有这么多人能够真实地投入到与团队合作的大部分时间。但我还指出,安全性是在项目的整个生命周期中需要存在的东西。所以,我们应该做的很多这些真正有价值的前期活动。而且我几乎认为那些是清单的活动。我的意思是,根据您的情况和您的技术堆栈以及那种东西,它们会从项目到项目中的一点点变化。
凯德凯恩斯:
但是,在我认为安全专家或安全主题专家提供最大价值的情况下,他们是如何赋予工程团队的方式,开发团队更多地完成这些东西。还有很多事情,我可能永远不会考虑成为发展团队的责任,除非你碰巧很幸运能够有一些人对安全性充满热情。但是,我认为我们逼真地应该期待他们做很多事情。问题是,我们从来没有真正要求他们在很多情况下做到这一点,并回到一个你在第二个前面做出的点,我想到了很多时间,我们只是不知道在哪里得到开始或正确的事情是什么。并只有一些来自这个地区经验的人的洞察力,他们了解哪些良好的安全性以及如何在整个开发过程中融入它,是一个很好的起点。然而-
迈克·梅森:
你能给我们 -
凯德凯恩斯:
确定。
迈克·梅森:
你能给一个…我的意思是,Ken刚刚提到了他的朋友Jason,他坐在一个暗室里做笔测试,显然这是一个相当专业的角色。我认为很明显,跟上最新的笔测试是一件非常非常专业的事情。
凯德凯恩斯:
正确的。
迈克·梅森:
但是球队应该在做什么?是否有一些低悬挂的水果类型,所有开发团队应该融入他们的东西......只给我们一个想法。也许,我的意思是这不会是一个详尽的清单,但只是为了给听众介绍我们认为大多数球队应该自己的东西的想法。
凯德凯恩斯:
嗯,从自动化的角度来看,有一种丰富的不同自动化工具,让我们说,试图识别我们构建的软件中的常见应用安全缺陷。或者假设我们部署到云基础架构或容器编排系统或本性的东西。有些清单告诉我们如何安全地和安全地完成这些事情以及如何妥善设置它们。有自动化的工具,我们可以跑过它们,如果我们在我们的配置中留下了耀眼的孔或犯了错误,那就告诉我们。
凯德凯恩斯:
例如,每个组织都应该有一个工具,可以告诉他们是否打开了Amazon AWS S3存储桶,因为我应该说,仅这一点就造成了许多数据泄露。有很多像这样的基本事情,都是快速的胜利,我认为这在交付团队的能力和责任范围内,可以承担责任,从第一天开始就到位。即使他们不一定是所有信息的下游的人这些信息可能会被安全团队或者其他人获取。这是很有用的东西。
凯德凯恩斯:
我们在一天的安全上谈论了Xconf事188bet宝金博app下载件的思考,并涵盖了一堆这些问题,这只是球队可以做的真正基本的,快速的胜利类型。我们可以开始并不总是清楚的,但是有一个非常简短的东西列表实际上可以很有影响,至少可以让事情处于积极方向。
Ken Mugrage:
如果我能。我认为另一个快速的胜利是停止使用公共存储库。我看到很多事件是建立在,我们总是选择容器图像,但这是一个。或者它可以是[听不清00:15:48],它可以是RPM,可以是什么。你信任谁?如果你是建立在公共的东西上而你不知道里面有什么,那么你也不知道里面有什么。
凯德凯恩斯:
是的,这确实很可怕。我认为在黑暗房间里的那个人的观点很有趣。回到了我们面临的一个挑战。首先,有这么多不同类型的安全专家。因此,我不一定期望在渗透测试方面非常强大的人来帮助开发团队规划安全交付。但是我认为暗室的事情是非常有趣的,因为很多时候我们看到安全团队传统上是相当孤立的组织。几乎每一个与我共事过的客户,每一个与我共事过的组织,都有相对较少的人员。这些人有大量的任务试图保证组织的安全,试图处理所有的工作站,试图处理他们购买的所有软件,试图处理他们的云操作。
凯德凯恩斯:
然后我们有高性能的团队,练习DevOps,并试图走得越来越快,我们说,“是的,也要跟上。”还有很多东西要跟上。不幸的是,如果你在那个房间,你不习惯在地面上与人合作定制软件,或要求相对自治的基础设施,他们控制,他们不会受益于你的专业知识和组织风险的观点。当然,你甚至不知道他们在做什么。
凯德凯恩斯:
我真的不把任何责任归咎于任何特定角色的任何群体,因为这种情况已经持续了很长时间,而且双方的利益几乎是不同的。安全非常关注确保…或者他们专注于组织内部确保我们的安全。交付价值的团队关注的是外部,并试图尽可能多、尽可能快地推出产品。
丽贝卡·帕森斯:
等等,这又让我们回到了自动化的角色。因为我们越能自动化这些安全检查,您就越能利用您的安全专业知识来决定应该在其中包含哪些内容,并在一定程度上实现自动化。这样就可以跨多个团队、多个部署进行扩展,从而消除瓶颈。那么,在推进越来越多的自动化任务方面,您对我们的工作有何看法?我的意思是,这是连续交付、连续部署的一部分,它使所有事情自动化。我们听了很长一段时间,“哦,不,你不能自动化。你不能自动化。”我们一直在进步。你对安全社区的立场感觉如何?如果我们换个角度看,这些东西是否更容易自动化?
凯德凯恩斯:
我认为有许多机会自动化被确定为我们被要求建立在我们的软件或系统中的潜在安全风险或安全控制的事情。但部分挑战是他们并不总是作为正式要求存在。因为我们并不总是拥有安全专家或某人拥有这种专业知识的人,他们能够让我们深入了解我们需要建立的东西。这是预期的。
凯德凯恩斯:
例如,几个月前,我们与一个组织合作,该组织有大约8000名开发人员随时在工作。Thoughtworks内部的另一位顾问对我说,“我们不可能期望安全团队为每个人提供高度接触。要想达到这一目标,人数实在太多了。”188bet宝金博app下载
凯德凯恩斯:
所以回到我们早些时候谈论的清单,每个人都应该至少有一些我们在我们所有项目中申请的自动化基准。对于那些风险较高,重要性提高的人,根据他们对业务或相对风险的相对价值,我认为我们真的需要考虑途中将这些专家带来更多,以便我们的要求可以反映需要内置的内容。脱离了,我们会得到更好的测试。但是,在......之前发生这种情况是非常具有挑战性的......它返回到我早些时候的说法。如果我们在团队中没有人有专门的安全知识,我认为很多我们没有,人们不知道他们不知道是什么,而且很难建立在。
Ken Mugrage:
我认为这是自动化实际上可以帮助的领域之一,具体取决于它的应用方式。所以,最大的一个,我猜反形,但我看到了很多在连续送货管道中,是人们试图以超级线性方式做所有事情。所以首先我运行单位测试,然后我运行功能测试,然后我这样做和另一件事。在那里的某个地方存在安全性,并且在某处有合规,这有几个副作用。
Ken Mugrage:
首先,如果管道没有到达那么远,那么这些测试就不会运行。所以如果他们的东西在早些时候失败了,那只是那一圈,他们跑得不够频繁。当他们被发现的时候,就像是,“哦,现在这是技术债务,现在我们必须和产品所有者谈判,”或者诸如此类的事情。
Ken Mugrage:
这是我认为平台可以带来的一件事。我知道这是人事问题。我认为这是一个巨大的人员配备和学习问题;我们知道我们需要更多有这方面知识的人。但是对于现代的持续交付而不是持续集成,我们不能说:“如果你在做一个Java技术堆栈,你要建立一个jar,那么我就要建立我自己的管道。”每次你的罐子用完,我就把它吸进管道里。我是安全团队的一员我会在上面运行一些东西,我会告诉你们其中的很多我不会告诉你们其他的,因为我想要消除无意识的偏见。
Ken Mugrage:
同时,您的单元测试和功能测试仍在运行。但是我每次都会把那个罐子吸入我的罐子里。给你一个仪表板,为您提供可见性,et eeta,并在出现问题时帮助您,而不是如果。但我不会让你的管道更长,或者我不会让它变得更长,或者我不打算这样做,因为我的测试仍在运行,因为他们可能会为更长的时间而运行,但是。“
Ken Mugrage:
打扰一下。我们看到人们一直使用并行使用Chrome和Firefox。但是您可以并行,以便超过相同类型的测试。你可以做,所以它是不同的代码基础。因此,那些专门知识的人可以说,“好的,如果你要创造一个码头图像,那么我需要把你设置为”我最常使用的工具,我们称之为材料。“但如果我打算有一个码头图像,那么每次创建一个新图像时,我都会把它拉到它上面并在它上运行这个东西。”我认为这可能有助于某个地方。这是我不经常看到的东西。
迈克·梅森:
我想这又回到了你之前提到的一些东西关于不一定要信任互联网上的存储库。因为很长一段时间以来,人们只是用图书馆的文件来做这件事。现在我们用的是完整的Docker图像,从互联网上下载别人的东西并有效运行。我的意思是,一个软件的安全立场是否真的比单独的代码行移动得慢一些?比如,扫描一个图像需要一段时间,这可能没有关系,因为你不是每次签入都创建图像,也不是每次签入都完全重做。因为这是一个均匀的依赖分析,对吧?我的意思是,这是一个较慢的移动目标,所以如果你有一点处理时间是可以的?
Ken Mugrage:
而且我认为这就是我所说的,如果你这样做,认为它像钻石依赖一样。因此,如果我们构建jar并启动安全扫描并且它也开始单元测试,我的管道的单位测试阶段可能会为安全性的每一个运行10次。但是我可以使用钻石依赖粉丝将它们作为一个阻挡者,我们称之为,那种东西。并说,这些类型的测试可能每一个我的每一次运行每10次。所以只有第10件事就可以生产,因为它是生产的阻挡者。但我们仍然会给发展团队快速反馈。
Ken Mugrage:
然后,我的意思是,可能有一点点摆脱范围。但我可以投入短路的东西。因此,如果我完成jar完成后的紧急情况,我可以跳过东西并部署它。让这件事仍然在事实之后,拖尾而不是前进,是你能做的各种各样的东西,但这就是整体,我想,并行地运行整个管道的优势,是他们没有完成同时。在我移动到下一步之前,我不必等待要完成的安全测试。
凯德凯恩斯:
我想说这些都是很好的点肯,我希望看到更多的人讨论如何获得所有这些并行运行在一个成功的方式,并使其无摩擦和尽可能简单的团队把这些东西。你提到的这些工具和我之前说的很像。事情每一个团队应该只是作为他们所做的事情的一部分,因为它将使我们能够找到相当常见的缺陷或告诉我们当我们的依赖性是过时的,或者当我们的软件是过时的,和真的减少周期时间的团队能够做到这一点,最终我们想去的地方。
凯德凯恩斯:
但是,我们希望超越这一点,我们也希望考虑很多安全问题,就像我们写入我们的软件的缺陷一样。或者当我们在修改我们的基础架构或培养新的容器或类似的东西时,我们可能无意中做出的事情。在哪里,理想情况下,我们有一些安全目标,即某人帮助我们弄清楚或者我们已经自己完成了自己,我们需要编写自动化测试,以确保我们所做的遗骸高质量,并没有引入组织的新风险。这就是我认为我们希望在专家中有一点帮助,这是有道理的。
凯德凯恩斯:
还有一件事我们没有说过,Ken刚才也提到过,就是可见性和反馈循环之类的东西,如果我们能快速地把它融入进来,我不介意讲一下。因为我认为这可能是今天很多球队缺席的最重要的事情。很难得到关于你做的是正确的还是错误的安全措施的反馈。除非我们通过来自工具的报告,从经常做测试的人那里得到反馈,或者从我们的生产环境中实际发生的事情中得到改进,否则很难期望团队在这方面做得更好。
丽贝卡·帕森斯:
我们已经接近尾声了。我想问你们每个人,你们认为对于一个团队来说,要开始做这件事,最重要的是什么?
凯德凯恩斯:
我说过,很多时候安全团队都是孤立的,或者可能有点难以掌握,而且可能没有传统意义上参与或参与我们正在做的定制交付。我认为建立更好的关系是非常重要的。事实上,我认为对双方来说,建立更好的关系,努力更好地了解对方在做什么,什么能让对方成功地完成工作是非常重要的。和理想,不仅获得共鸣,分享我们的知识,但我认为,通过与开发团队合作,安全团队将学到很多关于如何更好的自动化工具,如何提高许多任务的一般状态,他们需要做的,并希望找到方法来自动化这些东西。开发团队将会从与那些拥有更多专业知识的人的更多接触中获益良多。
Ken Mugrage:
我要作弊了,因为我知道你说了一件事。我要说的是可见性,但其中一部分是信息的可见性。这就是作弊的地方,我们如何分享这些信息,无论是播客还是其他内容,甚至是内部内容,这些都是我们要做的事情。还有,从技术角度来看,仪表盘之类的。“这是我们正在进行的测试,这是我们没有进行的测试,这是我们如何得分,等等。”即使是简单的事情,也有工具可以告诉你的应用程序使用外部工件的百分比,以及那些过去的测试,等等。有一些相当可怕的统计数据,比如Maven存储库等。
Ken Mugrage:
所以,也许如果我们有仪表板的仪表板,漂亮的灯光就不会陷入困境。但是,如果我们实际上可以展示人们,“这是你可以测试的东西,这里是什么是测试,”即使它是从该角度来看,那种审计的管道,如果有任何意义。“这是你正在运行的测试工具。你没有运行给我们可用的这七个。让我们谈谈这一点。”
丽贝卡·帕森斯:
好吧,谢谢肯。谢谢Cade,让那种迷人的安全讨论。而且我没有太害怕,所以这可能是一件好事。