分析师欢迎 NSA 针对开发人员采用内存安全语言 PlatoBlockchain 数据智能的建议。 垂直搜索。 人工智能。

分析师欢迎 NSA 建议开发人员采用内存安全语言

安全分析师欢迎美国国家安全局 (NSA) 上周建议软件开发人员考虑采用 C#、Go、Java、Ruby、Rust 和 Swift 等语言来减少代码中与内存相关的漏洞。

美国国家安全局将这些描述为“内存安全”语言,作为计算机语言的一部分自动管理内存。 NSA 表示,他们不依赖程序员来实现内存安全,而是结合使用编译时和运行时检查来防止内存错误。

内存安全语言的案例

美国国家安全局 10 月 XNUMX 日发布的有点不寻常的公告指出,C 和 C++ 等广泛使用的语言是 过于依赖程序员 它指出,不要犯与内存相关的错误仍然是软件安全漏洞的首要原因。 以前的研究——一个 2019年的微软 另一个来自 2020年的Google 与其 Chrome 浏览器相关——例如,美国国家安全局表示,两者都发现 70% 的漏洞是内存安全问题。

NSA 表示:“C 和 C++ 等常用语言在内存管理方面提供了很大的自由度和灵活性,同时严重依赖程序员对内存引用执行所需的检查。” 这通常会导致与缓冲区溢出错误、内存分配问题和竞争条件等简单错误相关的可利用漏洞。

美国国家安全局在其公告中表示,C#、Go、Java、Ruby、Rust、Swift 和其他内存安全语言并不能完全消除这些问题的风险。 例如,它们中的大多数至少包括一些非内存安全的类或函数,并允许程序员执行可能不安全的内存管理功能。 内存安全语言有时还包括用包含潜在不安全内存函数的语言编写的库。

但即使有这些警告,内存安全语言 可以帮助减少软件中的漏洞 美国国家安全局表示,这是由于内存管理不善和粗心造成的。

Synopsys 网络安全研究中心首席安全策略师 Tim Mackey 对 NSA 的建议表示欢迎。 他说,事实上,大多数应用程序都应该默认使用内存安全语言。 “出于实际目的,依赖开发人员专注于内存管理问题而不是编程很酷的新功能代表了对创新的负担,”他说。 Mackey 说,对于内存安全的编程语言和相关框架,确保正确内存管理的是语言的作者,而不是应用程序开发人员。

转变可能具有挑战性

NSA 承认,将成熟的软件开发环境从一种语言转移到另一种语言可能很困难。 程序员将需要学习新语言,并且在此过程中可能会出现新手错误和效率问题。 可用的内存安全范围也可能因语言而异。 有些可能只提供最低限度的内存安全性,而另一些则在内存访问、分配和管理方面提供相当大的保护。

此外,组织将需要考虑他们愿意在安全性和性能之间做出多少权衡。 “内存安全在性能和灵活性方面可能代价高昂,”美国国家安全局警告说。 “对于具有极端固有保护水平的语言,由于检查和保护,可能需要大量工作才能简单地让程序编译。”

Vulcan Cyber​​ 的高级技术工程师 Mike Parkin 说,在尝试将应用程序从一种语言移植到另一种语言时,有无数变数在起作用。 “在最好的情况下,转变很简单,组织可以相对轻松地完成它,”Parkin 说。 “在其他情况下,应用程序依赖于原始语言中微不足道的功能,但需要大量且昂贵的开发才能在新语言中重新创建。”

Mackey 警告说,使用内存安全语言也不能取代对适当软件测试的需要。 仅仅因为一种编程语言是内存安全的并不意味着该语言或基于它开发的应用程序没有错误。

Mackey 说,从一种编程语言转移到另一种编程语言是一个冒险的提议,除非你的员工已经了解旧语言和新语言。 “这种迁移最好在应用程序进行主要版本更新时完成; 否则,可能会在迁移过程中引入无意的错误,”他指出。

Mackey 建议组织在转换语言时考虑使用微服务。 “通过微服务架构,应用程序被分解为一组容器化的服务,”Mackey 说。 “从编程语言的角度来看,没有什么本质上要求每个微服务都使用与同一应用程序中的其他服务相同的编程语言进行编程。”

采取行动

Statista 的最新数据显示, 许多开发人员已经在使用 被认为是内存安全的语言。 例如,近三分之二 (65.6%) 使用 JavaScript,近一半 (48.06%) 使用 Python,三分之一使用 Java,近 28% 使用 C#。 与此同时,很大一部分人仍在使用不安全的语言,例如 C++ (22.5%) 和 C (19.25%)。

“我认为许多组织已经放弃使用 C/C++,这不仅是为了内存安全问题,也是为了整体上易于开发和维护,”SANS 技术学院研究部主任 Johannes Ullrich 说。 “但仍然会有遗留代码库需要维护很多年。”

美国国家安全局的咨询对于是什么促使其在此时此刻提出建议,几乎没有提供任何见解。 但 Netenrich 的首席威胁猎手 John Bambenek 建议组织不要忽视它。 “自 1990 年代以来,内存漏洞和攻击一直很普遍,所以总的来说,这是一个很好的建议,”他说。 “话虽这么说,因为这是来自美国国家安全局,我认为这个建议应该更加紧迫,并且是由他们拥有的知识驱动的,而我们没有。”

时间戳记:

更多来自 暗读