美国国防部建议使用 AI 自动将 C 代码转换为 Rust


为了加快向内存安全编程语言的过渡,美国国防部高级研究计划局(DARPA)正在推动程序代码转换工具 TRACTOR 的开发。TRACTOR 是 TRanslating All C TO Rust 的缩写,该项目旨在开发机器学习工具,自动将旧 C 代码转换为 Rust 代码。

DARPA 表示希望能够通过 AI 模型推动编程语言的转换,从而使软件更加安全。TRACTOR 的 DARPA 项目经理 Dan Wallach 在一份声明中表示:

“你可以访问任何一个 LLM 网站,开始与其中一个 AI 聊天机器人聊天,你只需要说'这里有一些 C 代码,请把它翻译成安全的惯用 Rust 代码',然后剪切、粘贴,就会有结果,而且通常效果很好......研究的挑战在于大幅提高从 C 到 Rust 的自动转换能力,特别是对于最相关的程序构造。”

过去几年来,包括谷歌和微软在内的科技巨头一直在宣传内存安全漏洞带来的问题,并推广使用 C 和 C++ 以外不需要手动内存管理的语言。这些消息也引起了拥有大量遗留代码的美国政府公共部门的注意,并促使白宫和美国网络安全和基础设施安全局(CISA)鼓励使用内存安全编程语言--主要是 Rust,还有 C#、Go、Java、Python 和 Swift。

尽管有 C/C++ 开发人员反驳说,只要正确遵守 ISO 标准并认真应用测试工具,就可以取得类似的结果。但 DARPA 最新的表态指出,经过二十多年的努力,解决 C 和 C++ 的内存安全问题后,软件工程界已经达成共识;国家网络总监办公室呼吁采取更多措施,使软件更加安全,"仅仅依靠错误查找工具是不够的"。

Wallach 向 The Register 表示,TRACTOR 项目的目标是实现高度自动化,因此需要克服一些棘手的技术挑战。

“例如,当你要求 LLM 翻译代码时,LLM 可以给出出人意料的好答案,但它们也会幻化出错误的答案。另一个挑战是,C 语言允许代码使用指针(包括算术),而 Rust 禁止使用指针。要弥合这一差距,需要的不仅仅是从 C 到 Rust 的转换。”

当被问及 DARPA 是否考虑过转换任何特定的代码库时。Wallach 则表示没有任何具体的计划,但 Linux 内核是明确不在范围内的,“因为它们有 Rust 无法解决的技术问题”。


相關推薦

2022-11-13

保护代码免受远程代码执行或其他黑客攻击。 “NSA 建议企业尽可能使用内存安全语言,并通过编译器选项、工具选项和操作系统配置等代码强化防御措施加强保护。” NSA 方面表示,内存安全问题在可利用的漏洞中占比

2023-02-03

在美国国家安全局 (NSA) 建议组织从 C/C++ 切换到内存安全语言 (如 C#、Rust、Go、Java、Ruby 或 Swift) 之后。C++ 之父 Bjarne Stroustrup 回应称,在他看来,NSA 报告中提到的“安全”编程语言在重要应用程序中实际上并不优于 C++。

2024-03-21

白宫敦促开发者改用内存安全的编程语言 美国 CISA 建议放弃 C/C++,消除内存安全漏洞 C++ 之父:Rust 等内存安全语言的安全性并不优于 C++ 美国国家安全局建议从 C/C++ 切换到内存安全语言

2023-11-07

,可以回答几乎任何问题,更难能可贵的是,它甚至可以建议你要问什么问题! Grok 在回答问题时略带诙谐和反叛,因此如果你讨厌幽默,请不要使用它! Grok 的一个独特且根本的优势是它可以通过 𝕏 平台实时了解世界。

2023-11-17

的影响。 报告发现了三大趋势: 开发人员正在大量使用生成式 AI 进行构建。越来越多的开发人员尝试使用 OpenAI 和其他 AI 公司的基础模型,开源生成式 AI 项目甚至在 2023 年进入了按贡献者数量排名的十大最受欢迎的开源项

2024-07-31

布了一份报告,表达了对 AI 开放性的政策支持,同时也建议政府对强大的 AI 模型中的潜在风险进行积极监控。 这份由美国商务部国家电信和信息管理局(NTIA)撰写的报告认为,“open-weight(开放权重)”模型通过允许开发人

2024-01-03

专有公司都可以随时打我个猝不及防?” Columbro 指出,使用 Terraform 等产品的大公司可能会面临数十万美元的账单,仅仅是为了弄清许可证变更对公司的影响。"我可以想象,摩根大通或谷歌必须花多少钱才能弄清楚他们在 Terraf

2024-07-10

了上升的趋势。 美国政府日前曾表示,出于安全考虑,建议开发者从 C/C++ 转向 Rust。现如今,Rust  社区正在不断壮大,第三方库和工具的数量持续增长。“简而言之,Rust 正在为进入 TIOBE 指数前十名做准备。” TIOBE 7 月 TOP

2022-10-13

继呼吁停用 C/C++ 开发新项目并使用 Rust 之后,Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 的一条吐槽 Git 的新社交动态又引起了广泛讨论。他表示: Git 又一次让我想拔掉我的头发。这是我使用过的

2022-09-21

态称,开发人员是时候停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。 “说到语言,现在是时候停止用 C/C++ 启动任何新项目了,并在那些需要使用 non-GC 语言的场景中使用 Rust。为了安全

2024-06-04

程还提供了ARM开发板和华为的ARM云服务器供学生使用,并建议学生在ARM平台上完成课程项目。通过接触ARM系统,学生可以消除对ARM的陌生感,感受到使用ARM进行开发与在其他CPU架构上开发并无明显区别,消除学生畏难情绪。随着

2022-07-29

为内部和外部开发人员提供良好的体验。该公司保证称,使用受支持语言编写代码的人,将不会被要求将代码转换为不同的语言。 Hack 是 Meta 自己开发推出的一款新的编程语言,一种类型安全的 PHP 变体,依赖于 HipHop Virtua

2022-09-22

nals 的主要开发者 Mark Russinovich 近日发表言论称,建议开发人员停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。针对此言论,外媒 The Register 向微软进行了询问,即 Russinovich 的建议

2022-09-23

兼容的 FFI 类型 当调用或被 C ABI 调用时,Rust 代码可以使用 c_uint 或 c_ulong 等类型别名以在任何目标上匹配来自 C 的相应类型,而不需要特定于目标的代码或条件。 以前,这些类型别名只在 std 中可用,所以为嵌入式目标和其