在金融服务中正确地进行开发
世界上一些最大的金融服务组织——包括美国的五大银行——都使用JFrog来更快、更安全地交付应用程序。与这些顶级银行、贸易和保险公司的密切合作,教会了我们如何在这些高度监管、复杂的环境中正确使用DevSecOps。
在本次网络研讨会中,您将了解到最佳实践和模式被一些世界上最大的FinServ企业用于加速软件分发同时降低风险。发现如何大规模地将安全性、遵从性和可审计性作为DevOps流程的组成部分.
议程:
- 在高度规范的环境中,DevOps和软件交付的独特挑战是什么?
- 是什么DevSecOps以及它如何在整个SDLC中实现持续的安全性和合规性
- 大规模DevSecOps的最佳实践——适用于遗留应用程序和云原生应用程序
- 通用工件管理以及安全性和遵从性分析如何加速安全的软件交付
- 演示JFrog平台和如何JFrog Artifactory &JFrog x光使DevSecOps
更多资源:2022世界杯阿根廷预选赛赛程
会议记录
好吧。
好吧。大家好。我是Vincent Mayers,欢迎来到我们的网络研讨会,为金融科技制定正确的DevSecOps。谢谢你今天来参加我们的节目。在我们开始之前,有几件家务事要告诉你。首先,如果你不熟悉面前的这个,请浏览一下网络研讨会控制台。
所有的小部件都是可点击的,所有的窗口都可用来最大化和最小化。把它们在屏幕上拖到你觉得舒服的位置。如果你在这个平台上遇到任何问题,请在问答框中告诉我们。通常它只会旋转刷新。
所以如果你在网络研讨会上有任何问题或关于网络研讨会内容的问题,也请在问答框中提问。在演讲的最后我们会有一个问答环节来回答这些问题。本次网络研讨会正在录制中,您将在24小时内收到录音。这就是我要讲的。废话不多说,让我向你们介绍威尔·曼宁,今天的网络研讨会主持人。
大家好,最近怎么样?我是Will Manning,解决方案架构师之一。文森特,非常感谢你的介绍。正如文森特所说,我是威尔·曼宁。我是JFrog的解决方案架构师之一。今天我们要讲的是金融科技领域的开发ops这个有趣的话题。
只是供大家参考一下,有一些幻灯片上有很多单词。我就不读了。我就笼统地讲一下。我们要做一点产品演示。我们将重点关注从左移到开发人员责任,到CICD集成,到你生产的东西和你应该拥有的软件材料清单,因为有规定有这些。
当然,还会有更多的法规出台,特别是在美国,拜登政府将重点放在“信息安全”和改善国家网络安全上。所以他们已经开始实施了,而且会被越来越多的公司采用。我们会详细讲的。
但话不多说,让我从今天的一些目标开始,我将笼统地讨论DevSecOps。我们将讨论法规规划、最佳实践、端到端安全性以及许多其他优点。如上所述,这就是我。如果你想在推特上关注我,我是威廉·曼宁。
话不多说,让我们开始吧。首先,我要简单介绍一下我们。所以如果你不熟悉JFrog,或者你只是在调查,或者你是一个老客户,我们实际上从2008年就开始了。我们去年9月上市。
但作为一家公司,我们的重点一直是与大量公司和不同行业合作的长期富有成效的过程,并巩固了我们在二进制文件和二进制安全领域的地位。我们喜欢关注从头到尾。
我们平台的一个主要特点是,我们是一个完整的开发人员,从部署到编码,到云计算,无论你说什么端到端DevSecOps的真正含义。我们是为规模而生的。我们有公司在使用我们,从创业公司到个人学生,一直到世界上最大的一些公司,都在使用我们的平台进行二元管理。
为什么需要二进制管理?我们也会讲到这个。但是,同样,我们也有能力集成到您的DevSecOps解决方案的各个方面,从您的开发人员到您的CI,再到您的CD。我们可以集成市场上所有不同的工具集。我们基本上是工具不可知论者。我们不在乎你用什么。
我们是那种你可以用我们做所有事情的公司之一。我们就像DevSecOps的瑞士军刀,你可以把它放在你需要的地方。然而,我们平台的一个关键特征是,我们是持续安全的。
上周我们宣布我们已经收购了Vdoo公司,他们的重点是安全。因此,我们的安全基础将在未来几个月和几年里增加100倍。我们本质上是真正的混血,这意味着我们不在乎你把我们安置在哪里。因此,您可以在自己的环境中、自己的数据中心中、在任何您希望提供的云服务中使用它。
如果你想使用我们,我们也有自己的云服务。你可以把它们都积分起来。所以我们设计得尽可能灵活,让我们所有的客户都能在他们习惯的系统中工作,就像我说的,这样我们就有能力拥有一个整合一切的生态系统。
今天我们要讨论的一件事,就像我说的,是开发者的责任。我们会讲到我们的ID插件在最重要的地方提供安全保障。当我谈到平台的时候,让我们对今天要涉及的一些事情做一个快速的概述。这样你就能理解我们提供的所有解决方案。
第一,Artifactory,我们公司的基石。它是通用二进制存储库管理器。如果你问我它的真正含义是什么,在我看来,它实际上是一个一致性引擎。因为它管理您使用的所有依赖关系的第三方传输,所以它可以管理您使用的所有构建。您可以将此作为您为SDLC(软件开发生命周期)所做事情的一部分。
你也可以继续使用它作为你生成的东西的元存储库,因为事实上……我们今天要谈论的一件事是由于Artifactory中二进制文件的存储方式,我不打算详细讲,但它都是元驱动的。如果您已经在使用Artifactory,或者正在计划使用Artifactory,那么理解这些元数据特征确实可以增强体验。
因为就像我说的,这不仅仅是一个存放东西的地方。它实际上是你建造的东西,你使用的东西和你储存的东西的环境。接下来我们有x射线,这是我们的安全合规和漏洞扫描工具,这意味着它会寻找任何邪恶的东西。我们今天将广泛地讨论这些第三方传输依赖关系。我有一些有趣的,可怕的,令人兴奋的数据。
但它也可以用于遵从性和治理等方面。我们也会讨论,如何积极地利用它作为解决方案的一部分。右边是我们的分销平台。我们的分销平台基本上就是我们的分销中心,然后你有带有Artifactory边缘音符的辐条。
它们是用于部署的轻量级、不可变的Artifactory版本。他们也会考虑到安全方面的问题。我们有发布包的概念。假设您正在部署一个web服务。您可能有一个舵图和一系列Docker图像。这可以让你把它们打包,数字签名,这样它们就安全了,然后把它们送到边缘。
我们今天要讨论的一件事是,有很多金融机构的环境是气隙式的,这意味着你无法连接到互联网。我们将讨论如何将Artifactory用于第三方组件的摄取。最重要的是,如何使用我们的分配平台进行气隙分配。我们会在最后讲到这个。
我们有我们的管道产品,这是我们的CICD和CI编排工具。这意味着您可以将其用作直接的CI持续集成工具,也可以将其用作持续部署工具,或者如果您已经有了自己的CI工具集,则可以将其用作编排这些作业的一种方式。在底部我们有访问权限,因为如果我们谈论安全性,当然,我们谈论的是acl。我们谈论的是访问级别控制,您可以实际用于您的产品。hth华体会最新官方网站
所以你可以把你使用的任何SSO集成到你的IDP中,无论是LDAP, OAuth还是SAML,或者任何类似的东西,利用它们来拥有它,所以你可以拥有这些权限模型。除此之外,我们还有更多服务风格产品的访问令牌。在最顶端,我们有任务控制和洞察。
这实际上是我们对生态系统中一切事物如何运作的主要共同的,基本上是单一的看法。同时,我们的洞察产品,为您提供特色。正如你们所知,我们在最近几个月里实施的一件事是我们开放了像开放指标这样的东西。Open Metrics允许你将Artifactory连接到Splunk、Datadog或Dynatrace等工具,或者使用Prometheus和Grafana等工具来确保Grafana,我不知道它是从哪里来的。
但是利用它们来监控你的系统。实际上,今天我要展示的一件事是,如果你使用Splunk作为这个集成的一部分,我们现在将Splunk和我们的x射线产品集成在一起,所以你实际上可以有一个可见的仪表盘,了解你的东西是如何运行的,以及随着时间的推移你的安全性和合规性。hth华体会最新官方网站
让我们直接进入重点。什么是高度监管的环境?既然我们在谈论金融科技。我们谈论的事实是,在金融科技领域,要成为一家在运营上与众不同的公司,你需要遵守某些协议和程序。但这也意味着这实际上是全面的,像医疗技术和航空航天等。
但这背后的想法是加强安全。比如物理上的气隙环境。不是直接从互联网上获取东西,而是通过某种形式的第三方托管,在那里你可以识别、评估和查看可能用于软件的东西。为不同的组及其背后的各个方面提供单独的访问级别控制的能力。
今天我要讲一些我们最近引入的新特性。我们在这背后有一个可以帮助解决问题的东西,就是我们Artifactory产品中的一个产品,叫做Projects,它实际上允许将组划分为更孤立的孤岛,并给予他们更多的自主权,尽管,做他们需要做的事情,同时仍然确保控制背后的安全方面。
要明白所有这些规定都是到位的,特别是在金融科技领域,因为你是在和钱打交道。你在处理个人数据,你在处理财务数据。当你们作为一个组织构建你们正在构建的东西时,了解如何更好地完成事情的最佳实践,并确保从开发人员级别提供关于安全的最佳控制级别,即左移。我们将讨论一些左移心态。
但在整个SDLC过程中,不仅要做这些方面的观察,还要记录它,了解如果有什么东西被引入,你如何补救它,同时,它对你所做的事情有多远的影响?当然,当你看到这些的时候,能够进行审计和数字签名。
因为另一件事是我们最近在我们的管道产品中引入了签名管道的想法。看看实际拥有一些东西的各个方面,比如一堆不同的CI工具。在这种情况下,我们的CI工具管道,能够通过这些不同的步骤,并实际对这些步骤进行数字签名,以确保您可以返回并审核它们,并查看它们,并说,“是的,我们在这个时候做了这个。”
有了所有元数据,就可以完成这个任务。我会花更少的时间在幻灯片上,更多的时间在演示上,因为我认为这实际上是我们最大的优势。很多金融科技公司遇到的大多数问题都是这些,我们在这里展示的东西。
我的意思是,我们知道有门控的SDLC或者不管你怎么理解。在某些情况下,很多银行已经存在很长时间了。他们有陈旧的工艺。有很多事情仍然是手工完成的。有些事情对开发者来说也是一个主要的,可能是我遇到的大多数公司最大的问题,尤其是在金融科技领域,就是你如何保持开发的速度,这样你就可以把这些功能推出去?
每个人都想快速和第一时间进行修复和补救,吸引他们的用户来使用平台或增强安全性。但你如何保持这种级别的安全性呢?你如何确保你所做的事情不会变得很糟糕呢?因为在公司工作的人都不希望自己的公司成为头条新闻是成百上千甚至上百万的记录被黑客窃取。没有人想在安全方面成为头条新闻。
我们要讨论的另一件事是,你如何确保你总是有那种程度的责任,当你看着你正在开发的软件时,你有那种沿袭,这样你就可以通过并跟踪进度,你可以看到东西部署在哪里?如果遇到问题,您可以快速识别它们。就像我说的,与此同时,安全性和合规性是你所做的一切的首要特征。
我的意思是,如果你们在金融科技领域工作,为更大的公司工作,想想你每个季度都必须进行季度评估或安全评估或类似的事情。我以前也不得不这么做。太好了。但与此同时,如何实现自动化呢?我们今天会讲到这个。
现在,我想讨论的下一件事是我们想要看看理想的目标,也就是,当我们与公司合作时,我们会寻找过程中的障碍。你应该把事情看得更像自动化,让你能够进入其中,并从中提取大量的人类情感,并在更精确的环境中评估它。
看着它,说:“我们将采用DevSecOps,这不仅是我们谈论的东西,而且还必须是一种文化变革。”我们会讲到这个。这包括培养责任感。能够识别过程中的所有差距。能够查看并确保它符合规定。
设计SDLC不仅要满足这些期望,还要超越这些期望。然后,就像我说的,自动化,自动化,自动化。我再怎么强调自动化也不为过,因为它更像是一个洁净室风格的评估。这样,它就固定在这种性质上并为这些事情提供直接反馈。
我看到有些人实际上已经放了一些东西进去。我很高兴你们都在这里。我们肯定会解决其中一些问题。我看到我们已经有一些了。让我们继续。就像我说的,我在这里要做的很多事情就是想办法帮你。当然,围绕这个平台也会有一些内容。我是说,我为JFrog工作。当然可以。这是我们的网络研讨会。
但与此同时,你可以从中学到一些东西,就像我说的,有些超出了这个范围。因为在很多方面,问题是,采用DevSecOps有点困难。这是经常发生的事情,但有趣的是,它需要具有侵入性,但与此同时,这是你需要一直做的事情。
我们接触过的大多数公司都已经开始实施了,或者他们已经以某种方式实施了,但他们知道需要采取行动。它并不完美。它不符合他们试图做的每件事。或者事实是,它在本质上是非常有限的,会造成延迟,就像我说的,耗尽了很多组织正在经历的速度。
所以我想说的第一件事,实际上可以归结为,就是培养责任感。你要记住,大多数软件公司在为金融科技开发时遇到的很多问题都是让开发人员更容易与第三方解决方案合作,即第三方依赖关系的转移。我们会讲到的。
但是这样做,他们就能对他们正在做的事情有直接的反馈。所以他们明白,如果他们带来了这些漏洞或潜在的威胁,那么他们有一些方法可以立即归咎于它。我们知道这一点,因为有很多规章制度你必须遵守所有这些都围绕着同一件事,那就是对不引入潜在威胁的东西负责,安全加固之类的。
审计和评估软件的能力,以确保没有引入不好的东西。问责制、可审计性、可追溯性和合规性都有不同的方面。如果你在这个行业工作,我们都知道这一点。这正是我想要的。但同时,当你有了这个,你也可以做一些事情。我最近才加了这个。
几周前,我做了一个关于软件材料清单的演讲,就像我说的,围绕政府部门的合规性。这是非常相关的,因为有了软件材料清单,你就可以得到你需要的所有信息。如果你看一下我在甲板上画的这些东西,你们就知道了。我没有说什么新东西。
但如果你是金融科技的新手,或者你刚从另一家公司跳槽过来,不得不处理某种融资或其他问题,这些事情是你需要时刻记住的。这些是我们想要确保的事情,当你有合适的工具集时,它允许你以更连贯的方式做你需要做的事情。
那么我们有什么选择呢?我们将讨论这个问题。但在我们讨论这个之前,让我们先谈谈为什么我们要讨论我们将要讨论的内容。就像我说的,我们怎么做这些事?怎样才能不牺牲速度呢?我们如何能确保我们有一个单一的工具框架,它将允许我们实际上遵守法规遵循规则和标准,同时仍然为我们提供操作运行的能力。
有很多很多的问题一直围绕着这个问题出现。我一直在处理这些问题。首先,我们来谈谈统计学。我们都知道当今世界上可怕的数据泄露和其他事情。有多少唱片被偷了?我的意思是,这些数字已经大幅增长。这是我以前的一张照片。但有一个违约指数,我认为它实际上大幅上升,特别是去年。我们很快就会讲到。
但是,如果你看这里,这些数字也很可怕。如果您不部署安全自动化,那么与之相关的成本将增加95%。在某些方面,一件简单的事情从长远来看会花费如此之多,这是令人惊讶的。但你也希望它简单而精确。这是我见过的最可怕的数据。我喜欢展示这张幻灯片,我也给其他人看过。
所以每100个开发人员中,通常有10个运维人员和1个安全人员。这太糟糕了。这就是为什么我总是提出自动化的想法。尽可能地实现自动化,因为每100个人中就有一个人不可能一直在所有地方。我们今天要讲的是二元管理。我给了你们一些背后的数据。
我们将讨论软件材料清单。我们将讨论自由/开源软件管理,发布存储。当你生产一些东西时,你如何承担所有的责任?我们说的是自动化,气隙,访问级别控制。然后我们还要讲一下复制。因为我提到了一致性。
但是让我们谈谈自由/开源软件。因为我在这里展示的所有东西实际上都会变成软件材料清单因为这实际上会成为你账单的黄金标准。你可以用它作为一种问责的方式,这样你就可以以非常精确、简单的方式遵守所有的规定。材料清单不能以任何方式贴现。
让我们开始吧。让我们从我说过的有趣而可怕的数据开始。记住,85%到90%的软件都是…我说的对。我一直都说对。85%到90%你生产的软件是别人的软件。这些是api,库,基本操作系统,诸如此类。其中99%包含至少一个开源漏洞,75%是开源组件。
这些数字是我们作为一家公司存在的原因,也是为什么这种责任是你所做事情的重要组成部分。因为所分析的49%的代码库总是包含至少一个高风险项。90%的应用程序使用一个或多个过时或被抛弃的组件。这是一个可怕的数据。
想想这个。记住,当我谈论依赖关系时,当我谈论自由/开源软件时,我不仅仅是在谈论标准的直接依赖关系,而且我还在谈论直接和间接依赖关系。因为记住,当我们有依赖关系时,依赖关系依赖于其他依赖关系。
当你想到这个的时候,最可怕的事情之一是当我第一次读到这个的时候我几年前就开始做评估了,事实是你看着这些二进制文件,你会说,是的,有人四年前就停止研究这个了。我的上帝。这意味着不会有任何更新。假设我找到了窃听器。也许我有责任去做这件事,或者我应该寻找另一种选择?
关于这个的另一部分是,这些大部分都可以通过更新库来完成。你遇到的一些漏洞实际上可以通过简单的更新来修复。今天我要向你们展示的一件事是我们平台的一部分,Xray的一部分是这样一个事实,你可以进入并看到这些补救措施是它的一部分,并采取行动。不仅如此,在开发者层面也是如此。
编写代码的人…我是标准的程序员,显然我的小白和其他东西。我干这行很久了。它背后的想法是,他们所产生的代码和这些依赖关系,能够在这个级别上防止一些补救措施,让你达到速度,实际上继续解决你遇到的问题。
太阳风公司是这方面最大的公司。我的意思是,想想这个,那些库,那些你正在使用的依赖,太阳风,它影响了18000个客户。它还影响了美国政府的许多部门。顺便说一下,这实际上是拜登政府提高国家网络安全目标的催化剂。
这是非常重要的,因为当你看到这个,我不知道你们是否熟悉黑客发生的方式,但这是一个第三方库,实际上被引入到他们的Orion软件中。它实际上是在两次更新中部署给客户的。它睡了14天才打开后门。
所以它一直等到软件部署完毕,设置好定时器,打开后门,让黑客能够进入系统,做大量疯狂的事情。当你想到这个的时候,它背后的想法是如果我是一个开发我的代码的开发人员,我有所有这些依赖的传输,我带来了。我可以把我的代码堆起来。我向前走,突然我有了弱点。
好吧,如果我有这个漏洞,这个漏洞最终会携带到我部署它的任何地方。当我有了那个,哦,看起来它没有把我的小头骨放在最后。有时候屏幕不太对劲。但是要了解这些软件组件的位置,它们被埋得有多深,以及这么小的东西是如何暴露这么多信息的。
所以当我看到这个的时候,这就是软件材料清单出现的地方。我需要知道这些潜在的威胁是在哪里进入我的系统的。有了这些,它也让我知道我用了什么,它是如何建造的。是否设置了任何环境变量?有什么样的信息?
如果我经历了SDLC、开发、QA、登台和生产,我就可以收集尽可能多的额外元数据来遵守标准。但是当我进去的时候,如果我确实发现了一些邪恶的东西,或者它不符合我的要求,或者一些东西被暴露了,我可以追踪这些信息,从一开始就知道发生了什么。它使我的根本原因分析更快,然后我的补救更方便。
所以当我再看这个的时候,它背后的全部是,我有这个软件材料清单,上面写着我生产的所有东西。假设实际上引入了一些潜在的变化。这是零钱。我修改了代码中的一些内容。它并没有按照我想要的方式运行。我可以在软件材料清单里看到它的变化。
然后我可以进去,哦,看起来它并没有做第二个小的。但问题是,如果我真的引入了一些威胁,我知道在材料清单中。这就是那条小红线所表示的。我可以继续说,好吧,我引入了这个。我在哪里介绍的?我不知道它是否显示了最后一点。哦,太奇怪了。
看起来这个演示工具现在表现得很奇怪。好吧。我不知道你们有没有看到我的小物件。但这也可以应用到复杂的项目中,如Docker。哦,有那么一会儿我的脸变黑了。哦。我希望你们还能看到我展示的东西。我不知道。但是像Docker这样的东西,是复杂的实体。
当你有责任并向虚拟化转变时,你不仅需要知道你正在运行的应用程序,还需要知道其中的操作系统,以及其中的所有部分和组件。这甚至涉及到像web服务这样的东西,在那里你可能有多个Docker的图像和一个舵图。能够获取所有的信息并将其转化为材料清单的材料清单的材料清单并理解你正在创建的所有软件。
通过介绍我们的x光产品,你就能找到里面的所有部件,了解它们在哪里被利用,如何被利用。在此基础上,提供端到端的持续安全以及元数据管理等等。x射线,它的工作原理是对应的。
我要演示一下。但我只是想快速地概述一下只是想向你们展示这些部件是如何工作的。Artifactory的工作原理是支票和。所有这些二进制文件后面都有一个计算出来的校验和。我们的x射线产品使用的是那些二进制值的计算校验和,这些二进制值要么是你使用的第三方依赖传输,要么是你构建的东西。
它把这个索引和潜在的威胁进行匹配。然后您可以编写规则和策略来计算这些二进制文件并执行特定的操作。这些操作可以是阻止二进制文件的使用,标记它,能够添加额外的元数据,排掉辅助进程,通知内部适当的人员他们需要去解决这个问题。
但实际上,这是一种让你对自己所做的一切完全负责的方式。问题是,我要继续,过一会儿我会给大家一个完整的演示,我们正在讨论的所有东西。然后我将向你们展示你需要从这些遵从性中得到的一些方面的东西,比如提供所有这些信息的能力,这样你就可以在理念上拥有一个具有安全性的开发组织,并从,像我说的,从开发人员级别向左转移。
你如何拥有CI过程的一部分,你如何拥有发布过程的一部分,并拥有问责制、可审计性和可追溯性,这样如果出现问题,你就可以很容易地进行根本原因分析。你有能力进入,如果你被审计,你可以立即提供数据功能。最重要的是,这是为了加快进程。
然后我们要讲一下气隙。对于很多金融机构来说,气隙是一件大事,我们有很多关于如何从外部获取Artifactory实例的信息,使用Artifactory和Xray,引入那些二进制文件,有一个传输介质。他们会立即在Artifactory内部为内部化的开发人员提供这些工具。
如果你不能直接从互联网上获取信息,这是一种方法。但是,我们也有气隙分布。我们也会讲到这个。如果你有远程站点,你如何打包你需要交付的二进制文件,以数字签名和可用的方式打包,把它带到一个位置,上传它,在另一个环境中仍然有你在一个环境中得到的相同结果。
我要确保我有足够的时间来做这个演示。我讲得快一点。我希望你们能看到这些视觉效果因为我不能百分之百地看到我现在展示的东西因为我的屏幕很奇怪。没关系。我们在签了字的管道那里。我将提到一个事实,即我们拥有一个名为管线的CICD工具。
你可以做的一件事是,在不同的步骤中,那些非常严格的过程中,你的SDLC的各个部分,你可以使用我们的产品来扩展。假设您正在使用现有的CI服务器。当CI工作完成时,你可以将它连接到我们的管道服务器,并添加能够实际签署这些步骤的功能,你有责任在这一天说,在这个时候,它被数字批准了这个功能。
换句话说,我可以从开发到QA,在这个时间和地点,我把它交给它,这是一个代表它自己的数字签名。我们有这种能力。如果你想知道,请联系你的代表,我们可以进去。让我知道,我们可以给出详细的分析。我有足够的时间做幻灯片了。幻灯片,它们很棒。它们是很好的开始信息。
但真正投入并展示一些东西总是好的。我们来做个演示。我来演示一下如何实现shift-left。如何将其实际实现到流程中?我会给你们展示几个如何把它整合进去的工作。然后我们还将讨论发布包的一些方面。但我想向你们展示这背后的责任。
让我继续分享我的屏幕。我要试着分享我的屏幕。它好像出了问题。哦,又来了。我要…这是怎么回事?让我们继续,让我向你们展示这是我们JFrog平台的最新版本。我说的不仅仅是Artifactory,还有我们的JFrog平台。如果您已经使用了足够多的Artifactory,让我们继续,让我们看看这里的一个新特性和函数,关于您实际上可以继续甚至分割您正在做的事情的方式。
所以,正如我之前所说的,实际上在我们产品的最新版本中,我们实际上实现了项目的想法。在我们有这个之前,你要么是超级用户,要么是受控用户,你必须有某些启用功能。太棒了。但我现在要告诉你们,在大型组织中,这是很难的,因为问题是,无论超级管理员是谁,他们都非常依赖于做一些事情,比如创建存储库,分配权限,将人添加到这些权限等等。
当我们介绍项目方面时,引入项目方面的一个关键因素是自治。现在您可以在Artifactory中创建一个项目,在那里您可以拥有特定的角色和特定的组。但最棒的是你可以有一个项目管理员。项目管理员可以控制这个项目的各个方面,比如你可以设置存储配额和限制。所有内容都将关联到Project键,以便您可以查询它以查找数据。
如果存在漏洞,您可以通过特定的项目快速返回。您可以让他们管理自己的资源,比如自己的存储库和账单。2022世界杯阿根廷预选赛赛程他们可以邀请自己的成员。所以他们可以增加人手。您还可以在特定级别的项目之间共享二进制文件。因此,也许您有一个团队为您生产的每个产品创建安全模块。您可以在项目和团队之间共享它们,并分配它们是否是只读访问。
实际上,你可以使用它们实现全局安全性或更本地化的安全性。所以他们可以有全局方面,可能是更高的安全性,他们可能有自己的一套更强大的安全基础,比如开发人员。最好的部分,就像我说的,是他们可以有自己的自主权。
但归根结底,当我们使用它时,记住,我们将再次讨论存储库和存储库安全,即依赖关系的第三方传输。因此,您有本地存储库,可以在其中进行构建。这是你进行开发,QA,准备和制作的地方。这些是你生成的二进制文件,你构建的东西,你拥有的Docker映像,这是所有这些的地方。
当你定义一个存储库,甚至你自己的类型,你有能力在底部说JFrog Xray集成。这是之前我讲过的x射线产品基于元数据列表,基于校验和进行计算。我不打算过多地讨论支票和的基础。但是你要知道,如果你不知道我们存储二进制文件的方式是每次你把二进制文件上传到Artifactory,我们都会计算这个唯一的SHA-256校验和。
一旦你升级了SHA-256校验和,真正酷的是我们喜欢无复制。我们有元数据来表示数据库中的二进制。数据库中二进制文件的每一个表示都有自己的上下文。但这也意味着,如果您确实从中发现了问题,那么您可以实际地继续,并实际地查看该二进制文件是否触及了其他构建和其他工作。
了解爆炸速率,这有多大影响?现在,这意味着我们的x射线产品使用同样有价值的元数据来进行x射线评估。这意味着它非常有效,因为它实际上不是检查物理二进制,而是检查它背后的元数据表示。当然,这将延续到我们的远程存储库,它是代理的第三方传输。
问题是它是一个基于请求的代理程序。当你请求第三方实体时,我的意思是,我们有各种各样的存储库类型。当你请求第三方传输依赖时,它就会被请求。它进入了Artifactory。它被存储在那里。可以用x光检查。如果它确实符合您的标准,就可以将它发布给开发人员。如果它不是你的标准,你可以阻止它。
你也有能力去评估它,然后释放它,如果它看起来并没有潜在的威胁,因为可能一个二进制文件被报告了一个特定的函数和你没有使用的特定函数。所以它不会真正影响你,所以你可以覆盖它。但它背后的想法是,我想在我使用它们之前,评估这些第三方依赖关系的趋势。
现在,说到这里,我们也有能力封装在两个叫做虚拟存储库的东西中,在那里你实际上可以基于与项目相关的存储库来做你的整个项目,因此开发模式本身。然后我们引入了联邦存储库。这不是讨论这个问题的地方。但我们的想法是,你有能力出去,拥有多个地点,并在这些地点之间换乘。
实际上,我们不只是做标准的复制,比如基于推,基于拉,基于事件,基于CRON,星形和网格。使用联邦存储库,可以以更简洁的方式将这些二进制文件完整地复制到其他位置或其他Artifactory实例。
现在我向你们解释了二进制文件是如何组织的,但问题是,理解这些远程存储库是如何工作的,或者你产生的二进制文件,让我们看看我们是如何计算它们的。因为这是很重要的一点。
因此,当你与Artifactory合作时,你在使用我们的x射线产品和平台,并拥有完整的端到端解决方案,我们的大部分工作是两种方式。我们要培养一种责任感,左转。所以有一种方法可以做到,那就是进入并定义政策和观察。
策略是关于如何计算二进制文件的规则,而手表是如何实际实现这些规则的。对于我们的x射线产品,我们有两种风格:我们有安全性,我们有许可。当你定义这背后的规则时,你给规则一个名字,然后你就有了一个标准,你要根据这个标准来评估它。
然后你可以根据这个标准采取一系列的行动。记住,如果这是标准,那就不好了。首先,你可以使用CVE。所以CVE通常是大多数公司评估某些二进制的邪恶性质的标准。它有CVE值吗?这意味着存在威胁。
你可以把严重级别设置为低到严重。我们也有各种严重程度。当这个值出现时的能力,CVE要么是信息,要么是警告,然后从低到高是它的特征,或者你可以用CVSS分数这样的东西,如果你更喜欢这个。如果你从未使用过CVSS评分,那里有大量的信息。
有两个版本,V2和V3。但它更像是一个分数。这个分数有很多不同的因素,比如,这是网络的问题吗?是数据问题吗?它是恶意的,就像生长一样,它进入并接管过程?
但它有这个0到10的分数,然后你可以设置分数,嘿,如果它在CVSS分数的这两个值之间,做点什么。如果你从编程的角度考虑,criteria是if语句而action是then语句。现在,动作是很酷的部分。这些行动是你可以做的事情,这样你就可以更好地控制你所拥有的潜在威胁。
首先,你可以使用Webhooks。所以你可以设计一个Webhook,有一个JSON post,把这些信息发布到某个地方。所以它可以是一些可操作的东西,比如JIRA之类的。顺便说一下,如果你是微软团队的用户,我们还将推出一个新的微软团队集成,以及未来的一些其他集成,使其成为更积极的参与者。
在定义手表时,也就是实际应用规则的方式,其中一个参数是电子邮件地址。这样你就可以给收件人发送邮件了。在这种情况下,我们还可以处理另一封邮件。假设你有一个严重的问题,你有一个红色的团队,说一个红色的团队处理所有高优先级的项目。你可以直接寄给他们。
现在,我要给你们一些我给大多数客户的最佳实践,他们刚开始实施Xray和Artifactory。好吧?第一件事是接下来的特征是非常激进的。如果你是新手,我现在要告诉你,如果你实现了这些特性,而你从来没有计算过你所使用的二进制文件,你会把一切都搞砸。
所有东西都会关闭取决于你设置的值。因为我们将屏蔽大量你可能都没有意识到你正在做的事情。我们现在要讲的是,我要先讲侵略性的特征。然后我会告诉你们如何开始评估并开始思考基于评估的行动计划。然后,当你达到了一个舒适的水平,你知道你不会破坏所有的构建,而实际上它应该破坏你正在构建的东西时,你如何实现这些功能。
首先,块下载。块下载功能将继续,说你有一个二进制在系统和一个新的零日出来。这个二进制文件又出现了一个新问题。这是一个关键的本质或者你在评估中设定的阈值。它会阻止消费,从那一刻开始添加二进制文件,直到你允许它,或者不允许它。
它也会阻止它的任何版本,但这会让你知道在它后面的任何永久的东西都是不可用的,直到你评估并查看它。现在,未来的或新的二进制文件呢?好吧,这就是为什么我们有了扫描工件的想法。如果你有一个气隙环境,你也可以这样做。
但这是为了让你能够说,“我希望能够给我的开发人员灵活性和责任感,但我希望能够拥有它,以便他们使用这个新的库来构建他们正在构建的任何东西。我们希望在他们拿到之前,在他们真正拿到之前,对它进行评估。”这意味着开发人员可以请求它,或者CI工具可以请求该二进制文件。它被代理到Artifactory。通过x射线来评估。
如果它满足您组织的标准,无论是在遵从性方面还是在安全性方面,它将被发布给开发人员。如果没有,他们将收到一条错误消息,表示当前不可用。我之前提到过发行包。我们平台的分销端。我们现在拥有的是block release bundle。
所以你甚至可以和开发人员一起进行左移,或者你甚至可以在它进入生产环境之前,给它最后一次扫描,最后一次祝福,然后再把它送出去,不管它的目的地是哪里。当然,我们还有强制性的失败构建。
现在,这里的这些功能,就像我说的,有点激进,它们是故意这样构建的。它们是用来保护的。但与此同时,是的,他们可能会很突兀。我现在就告诉你,我听很多公司说,“我们打开这个,突然我们所有的构建都崩溃了。”这很好,因为它也让你知道潜在的财务风险,声誉损失。
记住,这不仅仅是金融之类的。还有声誉。就像我说的,你不会想成为那种因为潜在威胁而被头条提到的公司,而这种潜在威胁本可以通过简单的修复来解决。现在,让我谈谈我们拥有的第二种政策,然后我将向你们展示在最好的情况下培养一种责任。好的。
如果你看这里,我们有许可证。对于许可,正如你所知,在我们的规则集中,你实际上有相同的动作。我们对待授权就像对待标准的安全事务一样严格。区别在于标准。我们有允许使用的许可证和禁止使用的许可证。那是不用说的。如果你有自己的许可证,你可以把它上传到x射线,你可以让它成为评估列表的一部分。
我们也有能力禁止未知许可。你会惊讶于有多少二进制类型有未知的许可,其中有人放置了间接依赖。也许不是你使用的依赖关系,但它是间接依赖关系。这将允许您停止这种情况,因为未知许可证可能与安全威胁一样糟糕。
然后你有像阴影和欺骗。其中一个明确的指标就是多重许可。也许有人使用标准的GPL,但在GPL后面有一个附录,说你所做的一切都属于我们,你需要把它归给我们,让我们知道。阻止那些附加到主设备的辅助许可的方法,这通常意味着一些不好的事情。
但就像我之前说的,这些都是非常激进的功能。当我考虑如何部署这些时,当我想部署这些规则和策略时,我应该回去给你们看因为我没有定义任何策略。
但在我的策略中,我可以将它们附加到我正在使用的所有存储库。我可以将它附加到我正在使用的特定存储库。我可以进去说我想做某些方面的工作。对于如何在存储库级别计算二进制文件,您有很大的灵活性。
您还可以将这些策略附加到特定的构建中,甚至不是存储库。每次有新的构建时,您都可以说我想要的所有构建,或者我想对特定的构建有某种限制,或者我想对如何评估这些构建有某种模式。
即使现在,就像我说的,我的发布,我可以在这里通过附加我的策略来评估它们。但即使我做了这样的事情,我说过如果你把那些激进的版本放在前面,你仍然可以得到大量的信息,只要简单地进去看看这些政策是如何设计和建立的。
我们在产品中有能力看到结果,让你说,“哦,我的天,我们没有意识到它是如此糟糕。”下面是我观察Docker存储库的一个例子。如果你看一下,我有大量潜在的实际漏洞。
但我本可以这么早就停止。我本可以通过颁布一些类似于我们拥有的ID插件来尽早停止这些东西。我现在就给你们看。我们讲过如何实现这些功能的自动化。但同时,假设我使用的是VS code。
如果你看这里,我正在做一个GO项目。我正在做的GO项目,我有一大堆依赖关系和间接依赖关系的转换。我怎么知道这些是安全的?但如果我是一名开发人员,我希望能够在他们开始之前就解决这些问题。
如果你看一下我的依赖列表,你可以看到我已经有了JFrog Xray插件。我也有IntelliJ,一个悬崖,Visual Studio。但作为开发者,我可以在这里查看我正在使用的东西,对吧?所以这里,如果你看,我实际上看到了我所依赖的这个库有三个漏洞。
我甚至可以在另一边找到它,然后说,看,这是依赖关系。这是间接依赖关系。它有一个问题。这里有一个问题。但我也提供补救措施。”这是很多人没有意识到我们提供的另一个方面,那就是我实际上可以承担开发人员的责任。我可以在他们使用二进制文件之前自动计算它们。
我还可以自动评估Artifactory内部的连续评估。这在最重要的地方(即开发人员级别)提供了简单的安全级别。这是你的第一道防线。这是最大的投资回报率[听不清00:48:49]。说到这里,我想谈谈构建。
让我再分享一下Artifactory。让我们来谈谈构建。这是在开发者层面。我知道我们的时间非常非常有限。就像我说的,我有点加快了因为我想让你们看到我在做的所有事情。让我们看一下我生成的一个构建。
我已经向你们展示了左移思维。我讲过如何求值。但是当我把它放到一个类似于构建的东西中时,它会是什么样子呢?我如何利用它作为下一步的一部分?顺便说一下,我将向你们展示如何提前并将其归因于软件材料清单,这样你们就知道这些东西实际上是如何以自动化的方式建造的。
我们去看看这里的码头。好吧?我来展示给你们看。在这个例子中,我用了詹金斯。实际上,我要和你们分享我的整个屏幕案例。我能。好吧。我们开始吧。所以我要分享这个。在这里。 So now let’s go in and let’s look at this again, because I want to be able to show you some of the features behind this.
首先,我们来看看我的工作。这是我的Jenkins服务器,它正在生成它。如果你看一下,当我向你展示这个的时候,这是我们产品与生产它的实际构建的直接链接。现在,你可能会问自己,“太好了。我不是已经有这些信息了吗?我不是已经有这么多细节了吗?”是的,你有。但是在不同的领域。但你不了解事情的全貌。
让我们来看看它产生了什么。首先,让我给大家展示一下我得到这个式子的步骤。我们现在就去看看。如果我看这些步骤,你可以看到我实际上是在从我的GitHub中克隆这个。这是我要拉的依赖项。我将构建并部署它。我来测试一下。我要用x光扫描它,我要宣传它。
现在,如果我向你们展示它是什么样子的。我现在就给你们看。让我登录一下。我将向你们展示我所做的工作产生了什么以及它是什么样的。好的。这实际上是登录的,然后它把我带出去了。让我回到我做的构建。让我们来看看我的GitHub,我把它放在那里。
我来看看这七个步骤。我将继续寻找我现在向您展示的构建。我要给你们看詹金斯的文件。我们来看看它的原始形式。所以如果你看这里,我们有一个插件为所有主要的CI系统。你可以使用它,也可以使用我们的JFrog CLI。没关系。有很多方法。
我们都有很好的记录。这不是我直接研究它的原因。但是为了演示,我使用了Artifactory插件。我要收集所有关于它是如何建造的信息。我可以动态地引入我需要的实际依赖项来支持这个容器,即应用程序级别。记住,这里有应用程序,也有应用程序运行时。还有LS。
我将继续,并基于我所拥有的依赖关系来构建它。我有一个单元测试来证明它的功能。如果你想用x射线积分来求值,很简单。这是x光的舞台。我要做的就是有一个插件,Artifactory,我要说x射线扫描。我将传递作业名称和用于此的构建号。
然后在这个例子中,我只是把结果打印出来,但我也捕获了结果。然后,正如你所知道的,基于此,我可以自动从我的SDLC的一个阶段到下一个阶段。我实际上可以说,我想把它从我的源存储库,我最初评估它的地方,转移到别的地方。在这种情况下,我要说它被释放了。
所以我实际上是在从头到尾构建它并使它自动化。我们有网络研讨会,都是直接致力于如何实际集成CI过程。但我想分享一下结果,让你们了解这里产生了什么,因为这是重要的部分。
所以看看这张钞票。它被推广了,尽管它包含了一个真实的问题。理解这其中的内容,因为通常当你产生一些东西时,你会得到一系列的输出。你为什么想知道这些信息?你会得到一系列的输出。但我不知道里面是什么。
如果你用我们的,你用我们的最佳实践,我可以说这是Docker图像。我还可以向你们展示,我有一个节点作为端点,我有一个Java后端。我可以向您展示我托管的应用程序的版本,而不需要我去查找。这也是软件材料清单中的责任。
但如果确实出了问题。我想做一个根本原因分析。发生了一个问题。我实际上可以在这里,在应用程序级,在依赖级,在两个Docker映像之间做一个差异,说,嘿,我们有一个问题。我得进去解决这个问题。
我可以向你展示它是如何建造的,所有的环境和系统信息。因为有时候你的组织在发布软件时遇到的一些最大的威胁实际上可以归结为有人在环境变量中留下了一些东西。
也许有一个端口,您可以监视它,告诉它我正在运行的应用程序是如何运行的。一定要把它关掉因为我们不想让它暴露出来当我们带着这个生活的时候。这将允许你进入并说,哦,我们没有设置那个金条说我们想让它是非机动= false。我们把它定为true。那可能是我们的安全漏洞。
但是现在我可以给你们展示每一个小的组件,每一个第三方的依赖转移实际上都被用于这个项目。基地如此之西,运行时,应用。如果你看这里,这个容器几乎有1100个违例。这里有超过300个安全威胁。这不仅仅是一层。这不仅仅是一个部分。
这些都是贯穿整个图像的片段。这是一个非常复杂的事情。但让我们看看其中一个。首先,我们有补救措施。哦,看看这个。你知道吗?这是一个问题,但是,嘿,我使用的二进制文件,如果我升级到版本,我实际上可以解决这个问题。记住我之前说过的,74%的潜在威胁修复可以通过简单的更新来完成。一个简单的更新。
这允许我说我需要升级到这个版本。我可以把它从我的列表中删除[听不清00:55:46]关于为什么会有这样的威胁的信息,包括任何与之相关的参考信息。但这部分是向右的。看看这个。这是一个有潜在威胁的罐子,这个罐子里的一层一层的构建图像。
我们深入到那里面,发现这个藏在另一个里面。这些都是真实存在的威胁。这和太阳风不一样。这是因为第三方将依赖关系转移到他们的核心软件实际使用的主要功能集上。还有归因。还有治理和遵从。
所以如果你看这里,你可以很容易地拿出你生产的所有东西的每一张许可证。都在这里。你也可以在标准中看到,如果你在Docker工作,只要时间够长,如果你看,这里有所有的Docker层。你怎么知道Docker映像层中有什么?
这是令我惊讶的事情之一。你有这个能力,你可以直接进入这个图层看看里面有什么。这里有什么第三方应用程序的东西,包括你进入甚至看一个罐子和它的子组件以及它背后的个体特征的能力。
你可以看看它在别的地方被使用过。你有能力像陪审团一样看待问题。你可以把这些信息联系起来。这是所有的物料清单信息。实际上,你甚至可以在工件级、依赖级和环境系统上区分两个Docker映像。你在这里发布的任何软件,你都可以做不同的原因分析。
这两个版本之间有什么变化?你可以有所有这些层。你可以有SDLC。这里的一切。现在,在这个区域,我可以发布尽可能多的元数据到每个SDLC组件中,说,嘿,这个法案通过了。太可怕了。我们收到报告说它有安全隐患。我怎么知道?
你可以问,它通过QA了吗?是的,的确如此。它被签署了。这是所有的QA结果。然后,如果您需要提取所有这些信息并将其放入一个报告中,它都是简单的JSON。我给你们看的所有信息都在这里。它在一个地方有你需要的一切。它已经为您的访问和构建这些报告做好了准备。
我们甚至有报告,你甚至可以围绕它构建,我可以说我要创建一个关于构建的报告。我可以进去。实际上,如果我需要把这个提供给某人,我可以说,好吧,我想要获取最新的版本或者我想要回溯到迷你版本我想要找到所有关于它的信息。
所以我可以继续写这些报告。它们需要时间。我只需要点击进入我做过的许可报告。它向你展示了我需要的一切。就像我说的,我有点超时了,对不起。我会尽量多留几个问题。
但我想要展示的事实是你有这种程度的问责制,你可以做分发平台,在那里我可以继续生成东西,比如我在这里说一个发布包,或者我之前说过的。但我实际上有能力继续下去,并导出一个发布包带到某个地方。
我可以继续演示给你们看。我想我有。哦,我没有打开x光。但我甚至可以扫描多个复杂的、多层的组件。然后我们甚至可以让你进去。即使你想知道我们之前说过,我怎么知道我发现了什么邪恶的东西?我怎么知道还有什么受到影响?
如果你看,我这里有多个版本的库。如果你有了所有的构建信息,材料清单,所有那些你拉进Artifactory的东西,你实际上天生就有能力去查看任何潜在的威胁,并说,“嘿,这是用多久以前的?”
哦,如果你看这里,实际上这个[听不清01:00:11]我可以在不同的建筑中参考它们。它有自己的x射线数据。但是在另一边,我也可以看一下,我可以看到这个二进制文件的所有细节。我可以看看这些信息。这是我使用的依赖项。
但我可以看看这些间接依赖关系,就在这里。这些是直接依赖关系,但对我来说是间接依赖关系。我可以看到我所使用的东西的范围和规模。拥有材料清单,即时补救数据,根本原因分析信息,跟踪和追踪的能力。这些都内置在我们的平台中。
我希望我还有一个小时来讨论这个问题。但接下来的事情是,我想展示一件事,因为我认为这是我们实现的最酷的新功能之一。我讲过监控。如何监控呢?你可以在Artifactory中进行监控。那是不用说的。
但是,同样,如果你使用第三方工具,比如Splunk之类的,我们可以随时为你提供这些数据。我可以进去看看我的平台部署,我会给你们看我这里的一些东西。但是我可以打开x射线信息,我们现在曝光它。
所以如果我想查看我可能拥有的任何信息,我不知道,从月份到日期,让我们快速搜索一下。这个实际上会消失。当然,我可能应该从年初到现在都这么做。但它背后的想法是,它将调出所有关于这个的信息。
我如何对我生产的东西负责,使我能够积极地去做?这实际上是连接到我刚才给你们看的这个系统上的,但它向我展示了漏洞的数量,我遇到的许可问题的数量。这也告诉我,什么是最高的潜在违规和手表?哪些政策造成的影响最大?哪条规则排队最多?
甚至我也可以更容易地看到最新的问题。所以我想向你们展示,开发给了你在你已经在做的一些过程的基础上进行分层的能力,但它也允许你进入并实现大量的方法,以确保你在整个董事会上提供相同级别的安全。
所以有了二元管理安全漏洞扫描,放行管理,向您展示物料清单。最重要的是对开发人员进行教育,让他们能够使用ID插件进行评估。然后自动化,自动化,尽你所能自动化。
现在我将回答一些问题。但我想说声谢谢。我很抱歉,有些内容确实有点古怪。我正在用的工具突然失效了。我希望你们能看到一些信息。我知道有人问,使用JFrog Artifactory而不是Nexus的主要好处是什么?
嗯,实际上有很多事情。首先,如果有人问Nexus而不是我们,首先,我们存储二进制文件的方式。这样可以保留更好的空间。根据这些依赖关系的映射来实际存储二进制文件的方式是另一种。能够有尽可能多的补充元数据来表示您生成和构建的所有内容。
问责是另一个问题。实际补救信息的行为。原因有很多。复制是另一个巨大的问题。您有多个位置提供这些位置之间的安全复制,以确保每个人都有一致的方法。没完没了。有很多特色。
我们看到很多公司从他们转移到我们这里,每年都有数百家。问题是他们都是好人。他们是很好的公司。我们只是把事情做得更好。我在这里工作。我当然会这么说。我是认真的,百分之百。我在公司待了很长时间了。
但我希望这些信息对你有所帮助。我希望你们能看到我,听到我。我不知道。谢谢你抽出时间。如果你有任何问题,现在就是提问的好时机。如果没有,再次感谢。这将是可用的。我在推特上也随时有空。
还有,如果你想和我们的代表交谈,你已经是我们的客户了,请告诉我们。我很愿意就此进行更深入的探讨和讨论。谢谢大家的宝贵时间。好吧。我想我要带我们出去。我不知道该怎么结束这一切。我不认为我能结束这一切。文森特。
