我再次感谢各位今天的出席。在本节课中,我们将研究一些关键技术,使您的工件实现与NIST保持一致。但首先,让我自我介绍一下。
我叫Wayne Chatalain,我已经在Capital One工作了15年多,我领导着一个软件开发人员和SRE工程师团队,负责Capital One的整个Artifactory生态系统。我们在全球范围内集中二进制管理功能,并帮助Capital One的其他团队为我们的客户和同事交付出色的软件功能。
在今天的课程中,我们将讨论NIST的一些主题。
首先,我将谈谈NIST是什么,然后我们将深入挖掘NIST的历史,最后,我们将回顾NIST的一些最佳实践和建议,以及它们对Artifactory的影响。当我在考虑这个演示时,我想要触及的主要焦点是关于Artifactory本身的配置和实现。我们很多人可能都读过JFrog或其他公司关于安装、推出和配置Artifactory的最佳实践和建议。
我们有很多机会与其他公司互动,比如在像这样的会议上,讨论每个人是如何取得成功的。但说真的,我们怎么知道我们用Artifactory做的东西够不够好呢?这就是我今天想要深入探讨的内容。
你知道,实际上有几种不同的方式来解释这个问题。如果您的Artifactory实现足够好。通常你会从网络或安全的角度来考虑这个问题。但我们是否也应该考虑其他向量呢?
就像开发人员经验、审计经验、法规遵循经验一样,我们也将检查这些其他角色的影响。这就是NIST可以帮助我们的地方。
NIST实际上为我们提供了横跨所有不同技术部分的标准、建议和最佳实践。它涉及安全性、遵从性、软件开发、弹性以及许多其他思想和模式。通过这种指导,我们可以获得一个独立的、第三方的视角来看待Artifactory、产品hth华体会最新官方网站实现和配置。
其中一些建议大家都很熟悉,并且是Artifactory提供的。一些是我们从JFrog那里听到的最佳实践。但是有些建议依赖于Artifactory在您的组织中实现和配置的方式。
好吧,我可能知道你们在想什么,NIST的缩写。我已经说过几次了。这到底是什么意思?NIST实际上是美国国家标准与技术研究院的缩写。它是美国政府的一个机构,是商务部的一部分。这是一个非监管机构,试图通过测量、科学标准和技术来帮助影响创新和竞争力。
NIST实际上已经存在很长时间了。我不打算讲NIST的整个历史,但我确实想指出一些重点。
NIST成立于1901年,最初被称为国家标准局(NBS)。它最初的重点是为重量和测量提供指导。此外,它还被用作美国境内的物理实验室。
当我们谈论重量和度量衡时,我们会开始想到千克、磅、米、英尺等等。与国家统计局最初的职责相比,这是在正确的轨道上。他们最终建立了一个项目,为美国提供计量服务,或测量的科学研究。
多年来,随着政府为商业材料和产品制定标准的方向,这一标准不断发展。hth华体会最新官方网站服装、汽车前灯、电气安全等都引入了质量标准。
这最终导致了第一代计算机的发展。我们中的一些人可能听说过SEC或标准的东方自动计算机,这是由国家统计局开发的。随着世界的现代化,NBS的影响力和责任不断演变,最终导致该组织在1988年更名为国家标准与技术研究所。
今天,他们的测量可以支持最小的技术,从比头发丝还小的物体到最大的物体,比如抗震的摩天大楼。多年来,NIST对工业和创新的发展产生了一些重大影响和贡献。
我想强调一些来自NIST的成就和成就。我们正在看的这个时间表并不能代表NIST的所有成就,但有一些我认为很重要的成就,可能对我们中的一些人来说很熟悉。在这里,你可以看到第一个霓虹灯标志于1904年在世界博览会上首次亮相,国家电气安全法规于1915年在美国推出,1936年,日食的第一个自然颜色被拍摄,1949年,第一个原子钟问世。
1950年,sbhc计算机首次亮相,1953年,第一次全景牙科x光被拍摄。1957年,在NIST的帮助下,第一批数字图像被拍摄下来。在NIST的帮助和影响下,美国于1977年推出了首批数据加密标准。
1993年,在NIST的影响下,推出了互联网时间服务,2000年,引入了高级加密标准(AES)。一些令人难以置信的成就产生了显著的影响,以至于与NIST合作的几个人都获得了诺贝尔奖。1997年,比尔·菲利普斯因其在激光冷却方面的工作而被授予诺贝尔物理学奖。2001年,埃弗特·康奈尔(Evert Cornell)被授予诺贝尔物理学奖,因为他创造了一种从未见过的物质状态——玻色爱因斯坦凝聚态。2005年,Jan Hill被授予诺贝尔物理学奖,以表彰他对激光精密测量的光学频率梳技术的贡献。2001年,Dan Shchtman被授予诺贝尔化学奖,因为他发现了以前不为科学所知的晶体结构,即准晶体。2012年,戴夫·温兰德(Dave Wineland)被授予诺贝尔物理学奖,因为他的实验方法使测量和操纵单个量子系统成为可能。
现在,我不会声称自己是这方面的专家,但我想强调NIST在美国的多个领域都有很大的影响力。在过去的几分钟里,我们已经谈到了信息技术。就像在其他领域一样,NIST也涵盖了IT领域的各种主题。从人工智能、云计算、物联网、移动、生物识别和增强现实等等。
NIST进行研究,并与行业专家和专业人士合作,帮助生产促进和衡量现有和新兴技术的标准、建议和出版物。每个主题都有一大堆子主题。与网络安全一样,这涵盖了与密码学、身份和访问管理、风险管理、可信网络等相关的主题。NIST制定网络安全标准、指南、最佳实践和资源,以满足美国工业、联邦机构和更广泛公众的需求。2022世界杯阿根廷预选赛赛程
遵循这些建议和最佳实践,我们可以利用产品功能的人工和实现来帮助衡量和确保我们所做的事情与最高的行业标准保持一致。
我已经做了一些分析,并将重点介绍我从NIST推荐的二进制存储库中学到的一些东西。我们首先要考虑的建议之一是漏洞检测和管理。NIST建议您的应用程序使用可重复的阶段构建,并使用该管道自动化。
这可能是我们很多人正在做的事情,特别是随着DevOps和DevSecOps的发展,但这是一个很好的提醒,让我们后退一步,评估你的管道。纵观你发布策略的所有阶段,确定哪里有手动步骤,并努力实现自动化。此外,漏洞检测应该贯穿应用程序转换、打包、存储或运行的所有阶段。
二进制文件和应用程序跨不同平台推送的地方是向应用程序注入漏洞的潜在点。这里的一个关键点是确保使用artifactory启用了漏洞扫描。
接下来,NIST建议你对应用程序的所有层都有可见性,而不仅仅是基础层。需要在每个级别(包括最终产品)进行漏洞评估。此外,任何与应用程序一起使用的开源或自定义框架或软件都需要检查漏洞。这也表明报告和监控应该在整个组织中集中。
还记得之前我提到过我们将研究像网络安全和审计这样的角色吗?这种类型的集中式报告使涉众能够更好地理解组织的风险状况。该报告应包括检测到的漏洞,并突出显示不符合组织标准的漏洞。最后,NIST建议在构建和部署周期的每个阶段都插入质量检验关。现在,对于应该实施哪些具体的质量检验关并不是很规范由你的组织标准决定。但是最好记住在您自己的构建和发布中可能存在的差距,不仅应该有质量闸门,而且当质量标准没有达到时,构建过程应该停止,任何缺陷都应该在再次进行之前得到补救。接下来,让我们看看构型。
NIST建议应用程序配置使用预定义的设置进行验证,组织应该使用工具和流程执行配置遵从性。
在评估软件配置时,重要的是考虑来自开源社区或第三方供应商的最佳实践和建议。重要的是要考虑如何监控软件配置代码被构建并存储在Artifactory中。
对于软件配置,这也是一个建议不应该集中监控和报告。
同样,这将有利于安全和审计部门的人员,以便他们了解组织的总体合规状况,但除了进行监视之外,随着标准和流程的发展,持续保持阈值的更新也是很重要的。
NIST建议的一件要考虑的事情是,如果确定软件不符合配置标准,就阻止软件运行。
这可以来自于构件,构建中的质量闸门,管道,甚至在运行时。
此外,NIST建议应用程序来自可信的来源。
对于任何内部构建的软件包,这可能是您的人工实现,但重要的是要考虑在人工中配置的远程存储库。
在从开源网站或供应商提供的网站中获取包或依赖关系时,必须确保它们是可信的。
NIST建议在构建软件时采用简约的方法。这有助于减少任何潜在的攻击面。
还记得那些20g Docker文件和你的artifactory注册表吗?也许是时候考虑一下这些文件中真正包含的内容以及真正需要的是什么。这似乎很符合逻辑,但应用程序使用的所有机密和敏感数据都应该存储在它们的外部。
实际上,NIST建议注入机密,并在运行时提供。批准的金库和秘密管理过程应该在组织中利用,并且是本地的还应该利用协调器或提供者的功能。此外,机密应该只提供给需要它们的应用程序,并且应该在静止时进行加密。
在相同的标准下,但是您应该评估如何在您的构件中检测和管理秘密。
采取什么流程来确保组织中的开发人员使用正确的库,而不是通过意外地将秘密或一些敏感数据转换为二进制或Docker映像而使用人工操作?接下来,让我们再深入探讨一下信任。NIST建议组织将允许在网络中操作的所有包和注册中心集中起来。当然,Artifactory为我们提供了一些工具和功能来实现这一点。但是你应该建立一个基本规则,什么是……真正信任开源远程站点和外部供应商站点意味着什么。此外,应用程序应该能够使用加密签名进行标识。
在Docker和容器的用例中,你应该考虑在你的环境中使用类似Docker notary的工具。对于其他包类型,您将需要评估如何建立签名以及这些签名的验证。在实际执行软件包之前,应该验证签名。这有助于确保包没有被篡改或破坏,并且可以作为受信任的包运行。
应该添加执行策略和控制确保您的主机和协调器只运行来自您信任和批准的来源的应用程序。这是Artifactory可以帮助确保建立信任的另一个示例在存储库中。但是在您的环境中还需要进行其他操作,以确保只使用Artifactory来获取软件包。
有时这是不言而喻的,但是包、存储库和Artifactory应该随着情况的变化而定期监控和更新。例如,可能会检测到新的漏洞,从而降低一些存储库和包的安全性。此外,需要维护组织和应用程序包中的配置需求演进和更改,以确保遵从性目标仍然得到满足。
当事情发生变化,发现新的漏洞,或者配置标准更新时,应用程序的旧版本应该被修剪和删除从您的存储库和注册中心。现在这个过程应该是自动化的,并且可以基于时间跟踪器,或特定的标签或元数据,或应用程序的实际漏洞状态或配置状态。但无论哪种方法对您的组织最有效,都是推荐的把旧的二进制文件从你的回购中删除。此外,修剪并不一定意味着删除,我建议将那些旧的和未使用的二进制文件移到组织内的一般开发人员社区无法访问的离线存储库中。
如果发生了什么事情,恢复二进制文件进行取证分析,或者重放一个版本,或者深入挖掘一些缺陷测试应该是很容易的。接下来,组织的操作实践应该强调使用具有指定离散版本号的不可变名称的软件二进制文件。因此,与其配置一个管道来下载一个名为My App的文件,不如使用版本号,比如My App 2.3,以确保在管道和构建发布中使用了正确的、已知的好版本的应用程序。这也是使用最新的需要仔细评估。最新版本并不总是与您的软件的独立版本号一致,并且它并不总是保证是经过测试周期的最新版本。因此,只需确保您的构建和发布自动化正在使用它打算使用的正确版本的软件。现在让我们看一下处理身份验证和授权的安全性的另一个方面。
NIST建议的一个关键方面是了解您的敏感和专有信息的位置,并且所有对敏感数据的访问都应要求身份验证。这意味着如果您在artifactory中存储敏感数据,或者甚至有可能存储敏感数据,那么您应该确保您的匿名访问是禁用的,并且应该要求每个用户(无论是人类用户还是系统用户)输入凭据来访问artifactory中的数据和二进制文件。
另一个最佳实践是限制谁也可以向Artifactory推送包。不仅是下载,发布包时也需要身份验证。但是除了身份验证之外,还应该验证发布包的适当授权。
有了授权后,应该进一步使用细粒度的权限和最少特权的访问来限制它。这意味着应该只允许用户发布到Artifactory内的空间和存储库中。最好在Artifactory实例中使用权限和组来限制系统中的访问。NIST还建议将身份验证和授权功能与您组织的目录服务模型集成。这将类似于您公司的活动目录服务。例如,您可以配置LDAP和Artifactory来验证凭证,但也可以使用它们来确保用户在正确的LDAP组中发布到您的一些存储库。最后,NIST建议读写应该被记录和审计。
您需要确保发布包的用户继续需要该授权。例如,如果用户在您的组织中更改了角色,那么此人可能不会需要更长的访问权限来生产工件,并且应该撤销访问权限。此外,在您可能存储敏感数据的地方,任何访问和下载该信息的人也应该进行记录和审计。
这有助于确保访问数据的每个人都是授权的,并防止对数据和包的不必要访问。
接下来,另一个似乎是不言而喻的,但NIST在他们的最佳实践中包括,到注册中心和存储库的连接应该通过加密通道进行。这包括组织内的所有开发工具,以及协调器和运行时环境。
这还应该包括从您的Artifactory到外部和第三方远程站点的所有连接。每个工具和功能都有不同的配置方式,但关键目标是确保从Artifactory推送和提取的所有数据都发生在可信端点之间,并在传输过程中进行加密。所以回顾一下我们今天回顾的内容,我们想看看NIST的一些主题。首先,我们回顾了NIST是什么。记住,这个缩写是美国国家标准与技术研究院的缩写。然后我们稍微了解了一下NIST的历史。最后,我们回顾了NIST的一些最佳实践和建议,以及它们如何影响您的组织及其软件的不同方面交付实践,包括Artifactory。今天的演讲到此结束。
我再次感谢大家参加我的会议,也感谢JFrog今年给大家提供了参加swampp的虚拟机会。
祝你们今天过得愉快,并享受接下来的会议。