新闻中心
白宫发文,呼吁开发者放弃C、C++:Rust被「钦点」内存安全
最近,白宫国家网络主任办公室(ONCD)在一份长达19页的报告中提出了一个重要观点:开发者应该采用内存安全的编程语言,比如 Rust 语言。这份报告指出,选择内存安全的编程语言是确保软件以安全设计方式开发的关键方法。
ONCD还指出,报告中的建议是通过与科技公司、学术界和其他机构合作制定的,并获得了多家知名科技公司的支持,其中包括惠普、埃森哲和 Palantir。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜
报告地址:https://www.whitehouse.gov/wp-content/uploads/2025/02/final-oncd-technical-report.pdf
其实,这并不是美国官方机构第一次呼吁放弃使用 C 和 C++ 了。
去年12月,美国网络安全和基础设施局(CISA)与其他机构一起发布了一份《内存安全路线图指南》,指出了C和C++作为内存不安全的编程语言,强调软件开发商应采用Rust、J*a等其他内存安全的编程语言。这份指南的目的是提高软件开发中对内存安全问题的重视,并鼓励采取更可靠的编程语言来减少潜在的安全漏洞。CISA特别强调了采用内存安全编程语言的重要性,因为这有助于减少恶意攻击和数据泄露的风险。此举也是为了推动软件开发行业朝着更加安全和可靠的方向发展,

来源:https://www.cisa.gov/sites/default/files/2025-12/The-Case-for-Memory-Safe-Roadmaps-508c.pdf
放弃 C、C++,转向 Rust,只为内存安全
强调使用内存安全的编程语言很重要,因为内存安全能够防止出现诸如缓冲区溢出和悬空指针等问题,这些问题可能导致bug和漏洞的产生。因此,了解内存安全的概念是至关重要的。
内存不安全的危害有多大呢?2019 年,微软安全工程师报告的数据是:大约 70% 的安全问题是由内存安全问题引起的。2025 年,谷歌针对在 Chromium 浏览器发现的 bug 也报告了类似的数据。
对于编程语言而言,C 和 C++ 都允许使用直接内存地址来进行任意指针运算,并且没有边界检查。报告中指出,专家发现了一些编程语言既缺乏与内存安全相关的特征,又在一些关键系统中具有高度扩散性,以 C 和 C++ 为代表。因此,C 和 C++ 被认为是「不安全的」编程语言。
与 C 和 C++ 相对应,Rust 被认为是内存安全编程语言的典型示例。Rust 是一门系统编程语言,专注于安全,尤其是并发安全。它支持函数式和命令式以及泛型等编程范式的多范式语言,且 TensorFlow 等深度学习框架也把它作为一个优秀的前端语言。

在程序员问答网站 Stack Overflow 2025 年度开发者调查报告中,Rust 语言成为最受开发者喜爱的编程语言。Rust 在系统编程领域很受欢迎,原因之一就是它可以帮助消除与内存相关的安全漏洞。

Rust 内存安全的特性早已得到业内验证。2025 年 4 月,谷歌就宣布 Android 加入对 Rust 语言支持。原因是 C 和 C++ 中的内存安全 bug 是最难解决的错误源,谷歌已经投入了大量的精力和资源来检测、修复和缓解这类 bug,并有效地防止了大量 bug 进入 Android 版本。
然而,尽管做出了这些努力,内
存安全 bug 仍然是稳定性问题的主要原因,它在 Android 严重安全漏洞中长期占据大约 70% 的比例。因此,谷歌为操作系统开发者增加了第 3 个选择 Rust。
华盛顿大学计算机科学教授 Dan Grossman 表示,几十年来,大家都了解 C 和 C++ 的危险,现在终于迎来了推动内存安全编程语言的好时机,毕竟已经有了实用且成熟的替代方案。
他也认为,摆脱 C 和 C++ 并不是一朝一夕就能完成的,尤其是在嵌入系统中。不过,随着 Rust 等其他编程语言在系统软件中的更广泛应用, 这一进程预计会加快。
对于官方对 C 和 C++ 的态度,更多的人似乎并不买账。
有人认为现代 C++ 是内存安全的,所有操作系统都使用 C 或者 C++ 进行编程。也有人认为,即使 C++ 不能算是内存安全,但现代 C++ 拥有更多的「护栏」,并且成本低甚至不用花钱。


对于被「钦点」内存安全的 Rust,有人觉得它的支持程度没有那么高,也不值得集成到政府系统中。

除了 Rust,内存安全编程语言还有哪些
2025 年 11 月,美国国家安全局 (NSA) 发布了一份网络安全信息表,详细介绍了它认为内存安全的编程语言
- Rust
- Go
- C#
- J*a
- Swift
- J*aScript
- Ruby
- Python
- Delphi/Object Pascal
- Ada
以上这些编程语言的流行度如何呢?2025 年 2 月的编程语言流行度指标 TIOBE 显示,在编程方面,Python 排名第一,C# 排名第五,J*a 排名第四,J*aScript 排名第六,Go 排名第八,Delphi/Object Pascal 排名第 12,Swift 排名第 16,Rust 排名第 18,Ruby 勉强排名第 20。
可以看到,大多数 NSA 选择的语言都在前 20 名中,只有 Ada 不在,但前十名只有 5 种。

来源:https://www.tiobe.com/tiobe-index/
刺鸟创客
一款专业高效稳定的AI内容创作平台
110
查看详情
该报告还呼吁更好地衡量软件安全性。ONCD 认为:更好的衡量标准使技术提供商能够在漏洞成为问题之前更好地规划、预测和缓解漏洞。
这份报告还回顾了阿波罗 13 号任务,NASA 将这次任务归类为「成功的失败」。该任务本身遭遇了灾难性的失败,三名宇航员临时进行维修并缓解了一些问题,以便安全返回家园。该报告指出:内存安全代码对于太空计划来说是非常重要的。人类探索太空应该使用一种内存安全语言,一种尽可能接近内核的语言,以免将来发生事故。
随着世界上越来越多的地方变得数字化,更好的编码变得越来越重要,不良代码可能会被恶意使用。
Rust 语言
Rust 语言是由 Mozilla 主导开发的通用、编译型编程语言。设计准则为「安全、并发、实用」,支持函数式、并发式、过程式以及面向对象的编程风格。
Rust 语言最突出的优势就是可以提供内存安全保证,而且没有额外的性能损失。在传统的系统级编程语言( C/C++) 的开发过程中,经常出现因各种内存错误引起的崩溃或 bug ,比如空指针、野指针、内存泄漏、内存越界、段错误、数据竞争、迭代器失效等等。
内存问题是影响程序稳定性和安全性的重大隐患,并且是影响开发效率的重大因素。谷歌和微软两大科技巨头曾表示:旗下重要产品程序安全问题 70% 由内存问题引发,并且这两个巨头都考虑利用 Rust 语言来解决内存安全问题。
此外,Rust 还具有优秀的跨平台性,支持交叉编译,对嵌入式环境同样友好。
然而,Rust 语言也有一些棘手的缺点。
首先,由于 Rust 存在一些特殊的语法,因此初学者入门稍显困难,例如「生命周期(lifetime)」。相比之下,Python、J*a 等语言更加简单、易学。但如果你已经掌握了 C++ 语言,学习 Rust 语言就容易得多,因为借鉴了大量 C++ 的语法。
其次,Rust 语言的编译器检查非常严格,开发过程的大多数时间都是在解决编译问题。不过,一旦编译通过,开发人员就不需要关心内存安全,内存泄漏等头疼问题,只需关注业务逻辑。
以上就是白宫发文,呼吁开发者放弃C、C++:Rust被「钦点」内存安全的详细内容,更多请关注其它相关文章!
# ai
# overflow
# 编程语言
# 钦点
# 白宫
# 模型
# 排名第
# 怎么检查关键词排名
# 怎样做企业网站建设
# seo黑客获利
# 绍兴商城网站建设地址
# 是由
# 面向对象
# 不安全
# 是在
# 美国
# 这份
# 平顶山网站推广怎么做的
# 咸阳多合一网站建设
# 金华网站建设设计图制作
# 附近关键词优化排名前十
# 药店病种推广营销方案
# 裙子关键词排名
相关栏目:
【
行业资讯67740 】
【
技术百科0 】
【
网络运营39195 】
相关推荐:
公司的tm市盈率为负是什么意思
学typescript需要什么基础么
华为如何面对苹果16
春运提前抢票攻略
j*a中怎么截取数组
typescript怎么加号
苹果16系统有哪些功能
光猫power灯一直闪是什么意思
哪些框架支持typescript
如何知道固态硬盘
春运抢票准备什么东西
怎么更新typescript
j*a数组怎么新增值
12306放票时间规律(2025)
春运抢票多久可以买到票
typescript如何遍历map
cmd如何定时执行命令
苹果16如何预购
如何在昇腾Ascend 910B上运行Qwen2.5教程
按键精灵datediff函数怎么用 如何使用按键精灵中的Datediff函数教程
ensp命令如何提示
三星相机里power是什么意思
软件命令行参数如何设置
买的5g手机但是没有5g网络怎么办
如何寻找和修复无法在 AI 中找到文件的问题
如何去除计算器的命令
春运抢票可以抢几次啊
夸克网盘是什么都有吗
硬盘和固态硬盘如何区分
awk命令如何对两列加分隔符
满射和单射定义
净水器上的power是什么意思
路亚竿上的power是什么意思
电动车power灯亮红灯是什么意思
单片机怎么进行排序操作
充电器上的power是什么意思
typescript怎么写多个构造方法
输入命令如何换行
typescript中怎么引用js文件
2025年哪个局域网聊天软件好用
光刻机的分类及特点
苹果16系统多了哪些
智能锁type-c接口是什么
如何为服务器配置静态路由?服务器配置静态路由详细教程
安装固态硬盘如何设置
为什么进行域名解析
导航power在汽车上是什么意思
单片机log怎么看
什么是unix时间戳
typescript怎么写call方法


2024-03-01
浏览次数:次
返回列表