告别C和C++:美国政府推荐使用内存安全编程语言

美国政府建议在编程工具中避免使用C或C++,以获得更好的结果以下是推荐的替代方法列表

“`html

NSA 更新了安全编程语言列表

NSA内存安全编程语言列表

在最近的一份报告中,白宫国家网络主任办公室(ONCD)向编程社区提出了一个大胆的建议:停止使用C和C ++,开始使用“内存安全编程语言”。🛡️💻 这一举措被视为向维护网络空间基础的至关重要一步,并与拜登总统的网络安全计划保持一致。

那么,“内存安全”究竟是什么意思呢?它指的是防范与内存访问相关的缺陷和漏洞。这类问题的示例包括悬空指针和缓冲区溢出。具有运行时故障检测功能的Java属于内存安全语言。另一方面,C和C ++都支持无约束的指针算术而无边界检查,这使它们容易受到内存安全问题的影响。

为了帮助开发人员采用内存安全实践,国家安全局(NSA)编制了一份推荐编程语言的列表。以下是他们的建议,没有特定顺序:

  • Go
  • Rust
  • C#
  • Swift
  • Java
  • Ruby
  • Python
  • Delphi/Object Pascal
  • Ada

这些语言具有促进内存安全的特点和特性,使它们不太容易受到由内存相关问题引起的安全漏洞的影响。在项目开始时选择其中一种语言可以显著提高所产生软件的安全性。

根据微软安全工程师在2019年的分析,近70%的安全漏洞是由内存安全问题引起的。谷歌在2020年关于Chromium浏览器问题的研究得出了类似的统计数据。考虑到这些数据,ONCD为何推动向内存安全编程语言转变变得明显。

🔒🏢 ONCD报告强调大型机构和政府实体在网络安全中发挥重要作用。它主张网络安全不应仅仅是小型组织和个人的责任。作为这一努力的一部分,报告认为使用C和C ++作为“不安全”编程语言是因为它们与内存安全漏洞有关。尽管报告没有建议特定的替换语言,但它强调有“数十种内存安全编程语言可以 – 也应该 – 使用”。

报告不仅提出了语言推荐,还呼吁改善软件安全度量标准。通过实施更好的测量实践,技术提供商可以主动预测和解决风险,减少漏洞被忽视的可能性。

最终,ONCD的报告号召整个编程社区将内存安全置于优先位置。无论您是在开发关键系统还是小型创业公司的开发人员,采取措施将内存安全编程语言融入到软件开发流程中是构建安全设计软件的重要部分。


常见问题

Q:为什么C和C ++被认为是“不安全”的编程语言? A:C和C ++允许无约束的指针算术,这可能导致内存安全漏洞。这些语言缺乏内置的保障和对常见内存相关问题(如悬空指针和缓冲区溢出)的检查。

Q:内存安全编程语言的优势是什么? A:内存安全编程语言,如Go、Rust和Java,具有能够防止或减轻与内存有关的漏洞的特性和机制。它们提供内置的检查和限制,以确保更安全的内存使用,减少安全漏洞的可能性。

Q:转换到内存安全编程语言会影响现有项目吗? A:更换现有项目的编程语言可能是一个复杂和耗时的过程。这在很大程度上取决于项目规模、代码库复杂性和团队专业知识等因素。然而,在新项目早期引入内存安全编程语言可以极大地改善软件安全性。

Q:有没有针对不同应用推荐的特定内存安全编程语言? A:选择编程语言取决于每个应用程序的具体要求和限制。虽然像Go和Rust这样的语言非常适合系统级编程,但像Python和Ruby这样的语言在Web开发方面表现出色。考虑您的项目需求并查阅特定语言资源,以做出明智的决定。

“““html


🔍对于与内存安全编程语言和网络安全相关的进一步见解和信息,请查看这些宝贵资源:

  1. Python继续在工作市场中占主导地位
  2. 来自 Meta、TikTok、Snap 和 Discord 的 CEO 前往国会讨论儿童在线安全问题
  3. 最终 ONCD 技术报告

📚请记得保持信息灵通,并及时了解编程和网络安全领域的最新趋势和最佳实践!


Deanna Ritchie
ENBLE 的主编

Deanna 是 ENBLE 的编辑,拥有超过 20 年的内容管理和开发经验。她曾担任 Startup Grind 和 Calendar 的首席编辑,以及 Entrepreneur 媒体的编辑。她对技术的热情和在该领域的专业知识使她成为了解计算机技术和编程最新进展的宝贵资源。


在编程之旅中是否遇到过与内存安全相关的任何挑战?在下方评论中分享您的经验和想法!让我们共同努力打造更安全和更可靠的网络空间!🚀

别忘记与您的同行开发人员分享本文,传播内存安全编程语言重要性的信息。共同努力,我们可以创建一个更安全的数字未来。🌐💪

“`