软件产品对内存安全的迫切需求

2023-09-27 15:25:03

半个多世纪以来,软件工程师已经知道恶意行为者可以利用一类称为“内存安全漏洞”的软件缺陷来危害应用程序和系统。在此期间,专家们多次警告与内存安全漏洞相关的问题。内存不安全代码甚至导致了 1988 年的一次重大互联网中断。内存不安全问题到底有多大?微在一篇博客文章中报告称,“微软每年指定 CVE(常见漏洞和暴露)的漏洞中,约有 70% 仍然是内存安全问题。” 谷歌同样报称,“Chromium 项目发现...

半个多世纪以来,软件工程师已经知道恶意行为者可以利用一类称为“内存安全漏洞”的软件缺陷来危害应用程序和系统。在此期间,专家们多次警告与内存安全漏洞相关的问题。内存不安全代码甚至导致了 1988 年的一次重大互联网中断。内存不安全问题到底有多大?微在一篇博客文章中报告称,“微软每年指定 CVE(常见漏洞和暴露)的漏洞中,约有 70% 仍然是内存安全问题。” 谷歌同样报称,“Chromium 项目发现,我们大约 70% 的严重安全漏洞都是内存安全问题。” Mozilla 报在对安全漏洞的分析中,“在 34 个严重/严重错误中,有 32 个与内存相关。”

这些漏洞并不是理论上的。攻击者利用它们对真人进行攻击。例如,谷歌的零日计划团队在将攻击者报告给软件提供商之前分析了攻击者在野外使用的漏洞(也称为“零日漏洞”)。他们报称,“在今年的 58 个 [此类漏洞] 中,有 39 个(即 67%)是内存损坏漏洞。” 公民实验室发现针对利用内存安全漏洞的民间社会组织的间谍软件。

在其他哪个行业,市场会容忍产品用户几十年来所面临的这种众所周知的严重危险?

多年来,软件工程师发明了许多巧妙但最终不足以缓解此类漏洞的方法,包括内存随机化和沙箱技术等可减少影响的工具,以及可减少发生的静态和动态代码分析工具。除了这些工具之外,组织还花费了大量时间和金钱来培训开发人员以避免不安全的内存操作。还有一些并行的工作来提高现有 C/C++ 代码的内存安全性。尽管做出了这些努力(以及相关的复杂性、时间和金钱成本),但几十年来,内存不安全一直是最常见的软件安全缺陷类型。

然而,每个软件公司都应该调查一些领域。首先,硬件方面有一些有前途的内存安全缓解措施。能力硬件增强型 RISC 指令 ( CHER ) 研究项目使用修改后的处理器为 C 和 C++ 等内存不安全语言提供保护,以防止许多广泛利用的漏洞。另一种硬件辅助技术以内存标记扩展 (MTE) 的形式出现,在某些系统中可用。虽然其中一些基于硬件的缓解措施仍在从研究到交付产品的过程中,但许多观察家认为它们将成为消除内存安全漏洞总体战略的重要组成部分。

其次,公司应该研究内存安全的编程语言。除 C/C++ 之外的大多数现代编程语言都已经是内存安全的。内存安全编程语言管理计算机的内存,因此程序员不能引入内存安全漏洞。与其他需要持续维护的可用缓解措施(无论是开发新的防御措施、筛选漏洞扫描还是人工)相比,一旦使用内存安全编程语言编写代码即可保持内存安全,则无需执行任何工作。

直到几年前,我们还缺乏一种具有 C/C++ 速度且具有内置内存安全保证的语言。2006 年,Mozilla的一名软件工程师开始研究一种名为 Rust 的新编程语言。Rust 1.0 版本于 2015 年正式发布。从那时起,几个著名的软件组织开始在他们的系统中使用它,包括亚马逊、Facebook、谷歌、微软、Mozilla 等。Linux 内核的开发也支持它。

不同的产品需要不同的投资策略来减少内存不安全代码。C/C++ 缓解措施、硬件缓解措施和内存安全编程语言之间的平衡甚至可能在同一公司的产品之间有所不同。没有一种方法可以解决所有产品的所有问题。然而,软件制造商不能做的一件事就是忽视这个问题。软件行业决不能因为无所作为而将时间再拖到十年。

CISA 的安全设计白皮书为软件制造商概述了三个核心原则:掌握客户安全成果、拥抱彻底的透明度以及从组织高层领导安全转型。内存不安全问题的解决方案将包含所有三个原则。

CISA 敦促软件制造商将减少并最终消除其产品线中的内存安全漏洞作为公司的最高目标。为了证明这样的承诺,公司可以发布“内存安全路线图”,其中包括有关他们如何修改软件开发生命周期(SDLC)以实现这一目标的信息。路线图可能包括详细信息,例如它将使用内存安全编程语言构建新产品或组件的日期,以及计划支持属于其供应链一部分的开源库的内存安全计划。

内存不安全问题几十年来一直困扰着软件行业,并且将继续成为漏洞和现实世界危害的主要来源,直到软件制造商的顶级业务领导者做出适当的投资并掌控客户的安全结果。在我们庆祝国家编码周之际,我们期待整个软件行业的参与者共同努力,使软件在设计上更加安全,而内存安全是实现这一目标的关键。


大家还爱看

相关内容

远程控制是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,连通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作。 远程控制并不仅仅局限于距离上的“远”,主控端和被控端可以是位于同一局域网的同一房间中,也可以是连入Inte...
很多企业都会对员工进行监控,不论是摄像头监控,还是现如今的电脑监控。 由此很多员工就会有这个疑问: 监控员工电脑是否违法? 这个问题的答案并非简单的是或否,而是需要在法律框架下,结合具体情况予以审视。 以下将对该问题进行深入探讨。 一、法律环境与基本原则 在讨论监控员工电脑的合法性时,首先需关注各国和地区关于个人信息保...
随着信息技术的飞速发展,U盘等移动存储设备已成为企业数据传输和存储的重要工具。然而,U盘的滥用和误操作也带来了巨大的安全隐患,如数据泄露、病毒传播等。 因此,对企业而言,如何有效管控U盘的使用,确保数据安全,已成为一项重要的任务。   U盘泄密案例 有关部门在工作中发现,某地方民族事务委员会政策法规处主任科员韦某使用的...
随着数字化时代的到来,U盘已成为我们生活中不可或缺的数据存储工具。然而,U盘在使用过程中常常会遇到文件管理混乱、传输速度慢、存储空间浪费等问题。 为了解决这些问题,一款U盘文件管理神器应运而生,为我们的数据存储带来了极大的便利。 一、对U盘进行管理的原因 主要有以下几点: 1,保护数据安全:U盘是一种常用的移动存储设备...
随着科技的不断发展,企业对于员工电脑的监管需求也日益增长。然而,这种监管必须在法律的框架内进行,以确保员工的隐私权得到尊重。 公司监控员工电脑是否合法? 首先声明,合法!! 一、公司监控员工电脑的合法性 首先,企业监控员工电脑必须符合相关法律法规的要求。 在大多数国家,雇主可以合法地对员工的办公电脑进行监控,但必须遵循...
随着电脑的普及,越来越多的人开始需要监控电脑屏幕,无论是出于工作需要还是家庭安全考虑。 然而,如何实现电脑屏幕监控却是一个需要探讨的问题。 一、监控电脑屏幕的方法 使用电脑监控软件,这是一种很常用的监控方式,尤其适用于企业管理。 由于企业的客户端数量问题,因此使用软件是最有效的方式方法。 二、如何实现电脑屏幕监控 需要...