软件安全设计的重要性
主要要点
- CISA 和国际合作伙伴于四月发布指引,呼吁制造商确保产品在设计上和默认情况下均具备安全性。
- 软件供应链面临的安全威胁愈发复杂,要求在整个软件生命周期内持续集成安全措施。
- 历史上,安全设计未能普及,新的指导方针旨在确保所有软件供应商提供安全的产品。
- 现在的市场需提供激励措施,推动供应商建设更加安全的软件。
随着网络安全和基础设施安全局(CISA)及国际合作伙伴于四月发布的指引,制造商被敦促采取必要措施,在产品的设计和默认情况下确保其安全性。这一举措旨在回应日益复杂的安全威胁,以确保包括国家防御、公共安全、医疗保健及金融交易等各领域的软件供应链安全。
软件供应链不仅涉及应用程序的建设,还包括构建新软件所需的代码。然而,攻击者无处不在,他们的攻击手法愈加精细。为了实现安全设计的目标,我们必须在整个软件生命周期中,持续并完全集成安全措施。如同汽车设计,如果不使用合适的零部件,实施不当,或在开发过程中未对组件进行测试,则无论外观设计如何精美,最终产品都是不安全的。安全设计意味着制造商在软件正式发布之前,就要努力确保其产品的安全性。
许多供应商通常在软件上线后,通过修补发现的漏洞来增强安全性。然而,那在软件发布之前又发生了什么呢?供应商必须建立相应的流程、技术和工具,确保能够在发布前找到代码中的漏洞,而非等待客户、安全研究人员或攻击者来发现它们。
应用程序缺陷比率 | 生产初期发现 | 五年后
—|—|—
缺陷比例 | 约32% | 近70%
根据 ,近 32% 的应用程序在首次进入生产时被发现存在缺陷,而在五年后,接近 70%
的应用程序至少存在一个安全缺陷。因此,在应用程序正式投入使用后,仍需定期进行扫描,以减少后续修补和调整的需求。
早期尝试未能普及
“安全设计”这一概念已经讨论多年。例如,早在 2004 年,微软就推出了“设计安全、默认安全、部署和通信安全(SD3+C)”策略,并逐渐演变为
。同时,在 2000年代初,国土安全部和卡内基梅隆软件工程研究所共同推出了“安全构建”的基于网络的软件保障门户,提供最佳实践、工具和其他资源,帮助软件开发者和安全从业者构建更安全、可靠的软件。
尽管这些早期努力得到了许多大型且资金充足组织的响应,但并未深入到数千个软件供应商的主流。CISA的安全设计原则旨在将责任转移给这些供应商,确保他们交付安全产品,这对于小型和中型公司及组织来说尤为重要,因为它们往往没有足够的资金、时间和专业知识来额外投入安全保护以及检测和响应解决方案。
这一推动希望确保所有组织——城市、城镇、警察局、学区、小型牙科诊所及企业——都能保持安全,而不仅仅是那些资金雄厚的大型机构。
明确提出了这一目标。
安全挑战与复杂性增加
如今,随着开源软件使用增加、API攻击面不断扩大及持续部署要求的增长,行业对安全设计的需求比以往任何时候都更为迫切。现代应用程序融合了许多商业组件,开发者需要了解应用程序安全、API及安全通信协议,并确保云基础设施的安全。简单来说,现代应用程序变得更加复杂,不同模块来自不同来源。尽管供应商为提供更快的优秀产品而加大复杂性,但这并不意味着他们可以免责于产品安全的责任,而这是一个巨