8.1 系统和组织的网络安全供应链风险管理实践
2020年初,美国国家标准与技术研究院(NIST)首次发布了特别出版物(SP) 800-161,“系统和组织的网络安全供应链风险管理(C-SCRM)实践”。然而,与本书中讨论的许多其他资源一样,网络安全行政命令(EO) 14028保证对原始NIST C-SCRM出版物进行更新。
《网络安全行政令》第4(b)、4(c)和4(d)条特别关注软件供应链问题,因此,NIST在800-161修订版1附录F中发布了他们的回应和指南,即“对14028号行政命令关于发布增强软件供应链安全指南的呼吁的回应”。而不是将指导嵌入到更广泛的800-161文件,NIST将其作为独立资源发布在网上(www..nist.gov/itl/executive-order-14028-improving-nations-cybersecurity/ software-security-supply-chains)。
在深入研究NIST提供的具体指导之前,我们应该回顾一下《行政令》第4节的详细内容。第4部分要求商务部长通过NIST与政府、行业和学术界合作,确定现有的或开发新的标准、工具和最佳实践,以与《行政命令》第4部分保持一致。本节包括评估开发人员和供应商的软件和安全实践的标准。
此外,这项评估的任务是在《行政令》公布后30天内进行。除此之外,在发布后的180天内,NIST主任被要求发布主要指导方针,以增强与第4节要求一致的软件供应链安全性。
在行政令发布后的一年内,NIST的主任被要求发布额外的指导方针和程序,以定期审查和维护NIST就该主题发布的指导方针。为了制作在线发布的初步指南,NIST从SP 800-161r1中提取了见解,以及在2021年6月“增强软件供应链安全研讨会”(https://csrc.nist.gov/Events/2021/enhancement-Software-Supply-Chain-Security-Workshop)工作组,当然还有NIST EO页面本身提交给NIST的各种立场文件。
NIST的800-161r1指南致力于告知各机构作为其IT计划的一部分使用的第三方软件和服务的获取、使用和维护。该指南可以集成到他们的C-SCRM计划中,并用于帮助通知采买和采购活动。它不仅可以被联邦机构实施和使用,也可以被相关的供应商用来支持他们的软件供应链实践和过程。随着这些最佳实践和需求进入联邦合同语言,并成为向美国联邦政府出售产品的软件供应商所必需的,该指南将变得相关。
NIST还提供了一个关系图来说明他们的各种出版物(如800-37r2、800-53r5)和安全软件开发框架(SSDF)之间的关系,这将在后面的“NIST的安全软件开发框架”一节中讨论。这些文档既可以用于政府购买安全软件,也可以用于行业对这些最佳实践和需求的认证。图8.1展示了各种出版物之间的关系。
关键软件
NIST对EO的关键要求之一是定义关键软件。NIST对关键软件的定义是“具有或直接依赖于具有这些属性的一个或多个组件的任何软件”。
关键软件:
- 具有对网络或计算资源的直接或特权访问
- 用于控制对数据或操作技术的访问
- 执行对信任至关重要的功能
- 在正常信任边界之外以特权访问操作
任何阅读此列表的人都会很快同意,这是一套复杂的标准,会使大多数软件潜在地变得关键。出于这个原因,让我们打开前面列出的一些标准。首先,必须定义直接的软件依赖关系。NIST将直接软件依赖定义为其他软件组件,如库和包,这些组件直接集成到正在讨论的特定软件中或对其操作是必要的(www.nist .gov/itl/executive-order- improvement -nations-cybersecurity/ criticalsoftwaredefines-faqs #Ref_FAQ2)。
它们还指定不包括其他独立产品的接口或服务。关键的信任可能是另一个令人困惑的短语。NIST解释说,这是指用于网络控制端点安全和网络保护等安全功能的软件类别(www.nist.gov/itl/executive-order-improvingnations-cybersecurity/critical-software-definition-faqs#Ref_FAQ3)。
NIST强调,他们的定义适用于为生产环境购买和部署的任何形式的软件。这意味着,它不适用于用于研究和开发(R&D)用例的软件。NIST还建议,关键软件需求的实现阶段首先关注用于关键安全功能的独立本地软件,或者如果受到损害可能会造成重大潜在危害的软件,然后关注其他软件,如云、混合和源代码管理等。
NIST继续提供了他们认为关键的软件类别的初步列表,以及它们包含的基本原理。该列表包括身份、凭证和访问管理(ICAM)、操作系统、Web浏览器、端点安全、网络控制等类别。其基本原理是,如果易受攻击并被利用,它们的关键访问权限和功能可能会危及系统的安全性和完整性。
对于那些希望深入了解NIST定义的关键软件的人,请查看关键软件定义FAQ页面,该页面回答了www.nist.gov/itl/executive-order-improving-nations-cybersecurity/critical-software-Definition-faqs上的一些常见问题和关注点。
关键软件安全措施
除了定义关键软件之外,NIST还为他们称为eo关键软件的安全措施提供了指导。NIST使用了来自社区、虚拟研讨会的意见书,以及来自网络安全和基础设施安全局(CISA)和管理和预算办公室(OMB)的意见,以及其他来源,以确定适用于关键软件的安全措施。
NIST为安全措施定义的主要范围是关键软件的使用,而不是它的开发和获取。也就是说,还有其他的指导来源,比如处理软件开发的SSDF,以及800-161r1本身,它更广泛地涵盖了C-SCRM和软件的获取。NIST的关键软件安全措施的目标包括保护软件和相关平台免受未经授权的访问和使用。它还努力防止被利用,并保护软件和平台使用的数据的机密性、完整性和可用性。
NIST承认事故会发生,因此组织必须能够快速检测、响应并从事故中恢复。此外,组织必须努力改进可能影响关键软件和平台的人类行为和行为。考虑到Verizon的2022年数据泄露调查报告(DBIR)等来源,这种承认是至关重要的,该报告指出,超过60%的数据泄露涉及人为因素,但组织仅将3%的安全预算用于人为方面。
NIST的指南进一步定义了一组可用于保护关键软件的健壮的安全实践和过程。它也承认,这份清单并非详尽无遗或无所不包,随着风险形势的变化,它将随着时间的推移而增长和演变。
现在,让我们深入了解NIST的一些安全措施,看看NIST为关键软件定义了哪些基本安全措施。值得注意的是,NIST关于关键软件安全措施的讨论来自许多来源,例如其他NIST出版物,以及来自CISA、OMB、NSA等的资源。
多因素身份验证(MFA)是最早列出的建议之一。认证因素通常包括以下内容:
- 你知道的东西
- 你拥有的东西
- 你是什么,比如用户名和密码
- 物理标记
- 生物识别来源
MFA是公共和私营部门组织经常引用的安全最佳实践。这种身份验证类型超越了用户名和密码等基本身份验证措施,它添加了身份验证因素,包括SMS文本代码、电话呼叫、通过移动设备上的身份验证应用程序进行批准,甚至还有个人身份验证(PIV)或通用访问卡(cac)等形式因素,以及YubiKeys等流行示例。(有关YubiKeys的更多信息,请访问 www.yubico.com。)根据辅助身份验证源的不同,添加这些因素会大大增加恶意行为者破坏凭据的难度。
然而,值得注意的是,即使是MFA也不是绝对可靠的,并且可能被SMS网络钓鱼等方法所破坏(https://thehackernews.com/2022/08/twilio-suffers-data-breach-after.html)。因此,NIST的指南要求MFA的使用不仅对所有管理员,而且对所有用户都是防模拟的。这有时也被称为防网络钓鱼MFA,通常身份验证方法(如密码、SMS和安全问题)不被认为是防网络钓鱼的。抵制网络钓鱼的一些核心原则是MFA包括身份验证者和用户身份之间的强绑定,消除共享秘密,并确保响应仅发送给受信任的方。
抗网络钓鱼的MFA示例包括FIDO2和PIV智能选项(www.yubico.com/resources/glossary/phishing-resistant-mfa)。 基于MFA对所有用户的建议,NIST还建议对每个服务进行唯一标识和身份验证,并遵循最小特权访问管理原则。这些控制确保了适当的访问控制,并可以限制恶意网络活动的爆炸半径。正如NIST在其800-207出版物《零信任架构》(https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800207.pdf)中所定义的那样,最少特权访问控制也是更广泛地推动零信任的基本原则。
虽然最低权限访问控制可以限制恶意活动的影响,但NIST的下一个建议也是如此,即采用边界保护,例如网络分段,并使用软件定义的边界。周界描述的工作原理是确保系统和环境的一个区域中的事件不会对整个系统甚至它所连接的外部系统产生级联影响。
为了实现第二个目标,即保护关键软件和软件平台使用的数据的机密性、完整性和可用性,NIST提供了一系列组织可以遵守的关键控制和实践,包括建立和维护数据清单。如果没有适当的数据清单,组织是不可能保护其数据的。网络安全领域有句流行的说法:“你无法捍卫你不知道存在的东西。”与前面讨论的网络级访问控制非常相似,也应该通过使用细粒度访问控制来保护组织的数据和资源。
NIST建议通过使用符合NIST加密标准的加密来保护静态数据(https://nvlpubs.nist.gov/ nistpubs/SpecialPublications/NIST. sp .800- 175br1 .pdf)。传输中的数据也是如此;NIST的建议是,在可能的情况下,不仅要使用加密,还要使用相互身份验证。
相互认证是指双方同时对彼此进行认证,并使用支持的认证协议(如IKE (Internet Key Exchange)、SSH (Secure Shell)和TLS (Transport Layer Security))进行认证。这样做可以确保数据在传输过程中被加密,以便数据不会暴露给可能访问它的未经授权的各方,以及他们可以减轻某些类型的攻击,例如路径攻击、重播和欺骗。
这些类型的攻击包括恶意行为者试图捕获传输中的数据、复制数据或模仿交换中的有效实体。为此,NIST的最后一条建议是,不仅要备份数据,还要执行备份恢复以准备好恢复数据。它承认,尽管存在诸如加密和相互身份验证之类的控制,事件仍然可能而且确实会发生,从而损害组织数据,并且当这些事件发生时,组织必须能够从有效的备份中恢复数据。
根据 NIST 的定义,关键软件安全的第三个目标是需要识别和维护关键软件平台和软件驻留在这些平台上的软件,以防止其被利用。这方面的控制措施包括建立和维护软件资产清单。软件资产软件资产清单也是互联网安全中心(Center for Internet Security (CIS) 在其 CIS 关键安全控制指南 (www.cisecurity.org/control) 中也推荐了软件资产清单)。
对软件进行清查和管理可以更好地进行软件治理和控制确保只有经过授权的软件才能被执行。控制,确保只有经过授权的软件才能在系统上安装和执行。当然,软件库存不仅仅是广义上的软件产品库存,还包括组件级库存。当然,软件库存不仅包括广义的软件产品库存,还包括组件级库存,即软件物料清单(SBOM本书中广泛讨论的软件物料清单 (SBOM)。除了软件库存之外,企业还应确保使用补丁管理最佳实践,确保识别、记录和缓解已知的漏洞,并采取以下措施在文档化的变更控制流程中进行。流程。软件平台以及更广泛的一般软件也需要配置管理最佳实践。这些最佳实践包括实施加固的安全配置和监控这些最佳实践包括实施加固的安全配置以及监控平台和软件是否存在未经授权的更改等活动。
如前所述,NIST 认识到,尽管实施了这些最佳实践和安全控制的最佳实践和安全控制措施,事件仍有可能发生。因此因此,第四个目标包括能够快速检测、响应和恢复影响关键软件的威胁和事故。因此,第四个目标包括能够快速检测、响应和恢复影响关键软件和平台的威胁和事件。
为实现所需的响应和恢复能力,组织必须正确记录任何安全事件的所有必要信息。要实施日志记录最佳实践,企业应利用 NIST 的《计算机安全日志管理指南》等指南以及针对其产品和平台的特定供应商指南 (https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-92.pdf)。必须持续监控关键软件,这可以结合使用端点安全保护产品或服务(通常称为端点检测和响应 (EDR) 工具)来实现。EDR 工具有助于识别、审查和最小化攻击面以及已知威胁的暴露程度,控制软件的执行内容,并在发生事故时协助恢复。
企业必须对关键软件和平台实施网络安全保护,以检测堆栈各层的威胁,帮助预防威胁,并向安全操作人员和其他应对事件的人员提供必要的遥测数据。为了有效地进行事件响应,NIST 建议根据所有安全操作和事件响应团队成员的具体角色和职责对他们进行培训最后一个目标侧重于加强对有助于关键软件和平台安全的人类行动的理解和执行,是一个以人为本的目标。该目标包括根据关键软件和平台用户的角色和职责对其进行培训等活动,其中包括那些通常拥有较高权限的管理员。最后,它建议对关键软件和平台的所有用户和管理员进行广泛的安全意识培训,并衡量培训的效果,以推动改进和取得更好的成果。
最后一个目标的重点是加强对有助于关键软件和平台安全的人类行动的理解和执行,这是一个以人为本的目标。这一目标包括根据关键软件和平台用户的角色和职责对其进行培训等活动,其中包括那些通常拥有较高权限的管理员。最后,它建议对关键软件和平台的所有用户和管理员进行广泛的安全意识培训,并衡量培训的效果,以推动改进和取得更好的成果。
No Comments