拜登:“一切非 Rust 项目均为非法”,开发界要大变天?

简介: 白宫国家网络总监办公室(ONCD,以下简称网总办)在本周一发布的报告中说道:“程序员编写代码并非没有后果,他们的⼯作⽅式于国家利益而言至关重要。”

白宫国家网络总监办公室(ONCD,以下简称网总办)在本周一发布的报告中说道:“程序员编写代码并非没有后果,他们的⼯作⽅式于国家利益而言至关重要。”

image.png

在该报告中,拜登政府希望软件开发人员尽量使用 Rust 这样的内存安全编程语言,并放弃 C 和 C++ 等安全性薄弱的语言。另外,参议院还强调会努力为内存安全立法。

科技巨头应为安全漏洞负起责任

美国网络安全与基础设施安全局(CISA)早在去年9月就已敦促开发人员采用内存安全编程语言。随后的《内存安全路线图案例》报告更是明确指出,C/C++等传统编程语言存在内存安全漏洞,建议软件开发商转向C#、Rust、Go、Java、Python和Swift等更为安全的编程语言。

白宫在最新的19页报告中,也将C和C++列为存在内存安全漏洞的编程语言代表,而Rust则被树为正面典型。微软和谷歌的研究也显示,高达70%的安全漏洞源于内存安全问题。面对这一严峻形势,国家网络总监Harry Coker强调,美国有责任缩小网络空间的攻击面,而解决内存安全问题是其中的关键。
科技企业被寄予厚望,被要求采用内存安全编程语言来防止漏洞侵入数字生态系统。内存安全编程语言能够抵御与内存访问相关的各类软件bug和漏洞,如缓冲区溢出、越界读取和内存泄漏等。
这份报告还强调了大型组织、科技巨头及美国政府在网络安全方面的责任。报告指出,这些机构更有能力应对不断变化的威胁形势,因此应将网络安全责任从个人和小型企业转移到他们身上。
在筹备报告过程中,各方意见纷呈。Rust基金会呼吁公共资助组织及其承包商默认使用内存安全编程语言,如Rust。微软则关注软件供应链和开源项目的投入不足问题。IBM认为重写软件可能成本高昂,主张保护现有软件免受内存安全漏洞影响。谷歌则与政府机构合作倡导向内存安全语言和框架的过渡。亚马逊云科技则提出,虽然支持用内存安全语言编写新项目,但这仅是提升开源软件安全性的一部分,并强调开发人员可能禁用Rust中的内存安全功能。

使用其他语言的开发者​该何去何从?

此外,一个自称拥有多位C++高级成员的组织也对C++的安全性进行了辩护,他们认为内存安全只是整体安全保护的一小部分,并强调C++的安全实践得益于其正式规范和内存模型。
专家如华盛顿大学计算机科学教授Dan Grossman认为,尽管C和C++的安全风险已为人所知,但现在正是推广内存安全编程的最佳时机。他强调,恶意攻击者利用内存安全违规实施威胁的手段非常复杂,因此变革刻不容缓。

​大家对于这件事情怎么看?

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

目录
相关文章
|
7月前
|
Rust API
使用Rust开发命令行工具
使用Rust开发命令行工具
60 1
|
7月前
|
存储 Rust 前端开发
给 Web 前端工程师看的用 Rust 开发 wasm 组件实战
wasm 全称 WebAssembly,是通过虚拟机的方式,可以在服务端、客户端如浏览器等环境执行的二进制程序。它有速度快、效率高、可移植的特点
130 0
|
3月前
|
存储 Rust 测试技术
【一起学Rust · 项目实战】命令行IO项目minigrep——测试驱动开发完善功能
【一起学Rust · 项目实战】命令行IO项目minigrep——测试驱动开发完善功能
95 0
|
3月前
|
Rust
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
54 0
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
|
3月前
|
缓存 Rust 前端开发
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
【一起学Rust | 框架篇 | Tauri2.0框架】Tauri2.0环境搭建与项目创建
212 0
|
4月前
|
Rust 前端开发 JavaScript
Rust 编译为 WebAssembly 在前端项目中使用(二)
Rust 编译为 WebAssembly 在前端项目中使用(二)
113 0
|
2月前
|
Rust 前端开发 JavaScript
Rust在前端与全栈开发中的实践探索
随着Rust语言的日渐成熟,其应用场景已经从后端扩展到前端和全栈开发领域。本文将深入探讨Rust语言在前端与全栈开发中的实际应用案例,分析Rust语言在这些领域的优势和面临的挑战,并展望Rust未来的发展趋势。
|
2月前
|
Rust 测试技术 开发工具
Rust中的Cargo:依赖管理与项目构建
本文将深入探讨Rust编程语言中的Cargo工具。Cargo不仅用于构建Rust项目,还是管理项目依赖的关键组件。我们将了解如何使用Cargo创建新项目、添加依赖项、以及如何通过Cargo进行构建和测试,从而确保项目的顺利开发与部署。
|
3月前
|
Rust
【一起学Rust · 项目实战】命令行IO项目minigrep——重构优化模块和错误处理
【一起学Rust · 项目实战】命令行IO项目minigrep——重构优化模块和错误处理
40 0
|
4月前
|
Rust 前端开发 JavaScript
Rust 编译为 WebAssembly 在前端项目中使用(一)
Rust 编译为 WebAssembly 在前端项目中使用(一)