在网络安全领域,“安全设计”已成为一项重要理念,旨在确保强大的安全性成为软件开发每个阶段的核心关注点。产品将安全作为基础要素来实施,而不是事后补救;安全策略和最佳实践会在每一步中得到集成和测试,以确保系统尽可能减少漏洞并抵御攻击。
IT 术语解析
在网络安全领域,“安全设计”已成为一项重要理念,旨在确保强大的安全性成为软件开发每个阶段的核心关注点。产品将安全作为基础要素来实施,而不是事后补救;安全策略和最佳实践会在每一步中得到集成和测试,以确保系统尽可能减少漏洞并抵御攻击。
安全设计远远超越此前提出的行业标准,其明确目标是:在产品进入市场之前尽可能减少可被利用的缺陷,从而保护客户和公众。采用这些原则的公司注重测试、身份验证防护措施以及遵循最佳编程实践,以打造稳健且具备韧性的软件和硬件解决方案。
在已签署美国网络安全和基础设施安全局(CISA)安全设计承诺的组织带动下,行业领导者正在优先采用安全设计原则,使网络安全更加主动、更有效,从而实现更安全的基础设施和应用程序。这不仅满足监管要求,还能建立用户信任,为所有人营造更安全的数字环境。
相关内容:安全设计承诺:致力于创造更安全的数字未来
多个行业机构和政府部门已经发布了促进安全软件开发方法的指南和最佳实践。这些指南和实践通常强调与安全设计理念一致的原则。
最近最相关的例子是,2023 年 4 月,美国国家标准与技术研究院(NIST)及其他美国机构发布了一份联合指导文件,题为“转变网络安全风险的平衡:安全设计软件的原则与方法”,重点阐述了安全设计原则在软件开发中日益增长的重要性。
虽然对于大多数美国企业而言,安全设计属于自愿实践,但联邦承包商或其他国家/地区的公司通常必须遵守网络安全指南,以确保产品支持关键基础设施安全。此类法规和指南也有助于国际合作伙伴之间开展协调行动,共同创建更安全的全球网络环境。
该承诺是由 CISA 发起的一项自愿承诺,旨在鼓励软件制造商在其软件产品和服务的整个开发生命周期中强调安全性。其关键方面包括:
该承诺面向创建企业软件的公司,包括本地部署、云服务和 SaaS 产品。虽然未直接提及,但制造物理产品(如 IoT 设备)的公司也被鼓励展示其对安全设计原则的承诺。
该承诺鼓励签署方承诺采取与安全设计原则一致的具体、可衡量行动,并在签署后一年内实施。
该承诺概述了软件制造商可展示其对安全设计承诺的七个核心领域:
签署方应公开分享其目标进展,从而提升行业透明度和责任担当。
这些安全设计原则旨在为希望增强安全性的软件提供商提供清晰指导。
该原则确保用户和系统仅拥有其角色所需的访问权限,通过减少攻击面并最大限度降低未经授权的数据访问风险,限制威胁或错误造成的损害。实施该原则需要严格的访问控制,并根据角色定期更新权限,从而增强抵御网络威胁的安全性。
将职责分配给多个参与方或系统,防止单一实体控制关键流程,从而降低欺诈、错误和权限滥用的可能性。
在安全开发生命周期中,开发、测试和部署等角色由不同团队分担,确保任何单个个人都无法在不被发现的情况下更改系统。此外,还会加入自动化防护措施以维持这一原则。
这种方法使用多层安全防护来保护资产,并承认任何单一防御都无法做到完全万无一失。它在硬件、软件和流程层面纳入防火墙、入侵检测系统和定期安全审计等多种防护措施。
通过应对不同类型的威胁并为入侵者设置多重障碍,这种方法可显著降低漏洞风险,并强化组织的安全框架。
决定参与安全设计承诺的软件提供商可获得以下优势:
客户和用户同样受益。当软件提供商交付遵循安全设计原则的解决方案和平台时,最重要的优势体现在客户实际体验中:
从一开始就将安全融入软件开发,代表着软件创建方式的根本性转变。过去,软件通常采用“附加式安全”设计,即在产品开发完成后再添加安全功能。
但这意味着安全并不是解决方案的内在组成部分。核心产品与附加组件之间的任何连接点,都可能成为攻击者可利用的漏洞点。
安全设计强调,在整个软件开发生命周期(SDLC)中,安全措施都应始终处于优先考虑位置。
将安全设计原则贯穿整个流程,而不是等到代码编写完成后才处理,可确保安全从规划和设计阶段起就成为优先事项。这种方法需要及早识别潜在威胁,并将防御措施直接融入软件架构。
安全编码实践对于开发能够预先应对安全漏洞的软件至关重要。遵循来自开放全球应用安全项目等组织的指南,并执行代码审查和静态分析,有助于及早发现安全问题。关键实践包括输入验证、避免硬编码密钥以及选择安全库。利用持续漏洞扫描和威胁建模工具,可进一步确保软件抵御网络威胁的安全性。
在开发的每个阶段进行全面的安全测试,可确保及早发现并解决漏洞,避免其演变为终端用户面临的问题。这可以防止在 SDLC 后期处理这些问题所带来的费用和复杂性,更能避免在产品发布后再处理所带来的更大问题。
提供商应在其代码集中执行 SAS(静态应用程序安全测试)和 DAS(动态应用程序安全测试),并在整个 SDLC 中开展单元测试和集成测试,而不是将威胁建模或测试推迟到流程末尾。
为遵循安全设计原则,软件中应内置的关键功能包括:
组织在落实安全设计时会面临一些挑战,应制定计划予以应对:
以下说明安全设计原则与已熟悉的网络安全术语之间的关系: