AI驱动的代码转换工具正在成为软件安全的新趋势。由美国国防高级研究计划局(DARPA)发起的项目TRACTOR(Translating All C TO Rust)旨在利用人工智能自动将旧的C语言代码转换为更安全的Rust语言。这一举措源于对C/C++存在内存安全漏洞的担忧,以及希望借助AI提高软件安全性的目标。
TRACTOR项目的核心是一个基于机器学习的代码转换工具,其目标不仅是实现自动化代码转换,还能达到专业开发者编写Rust代码的高质量和风格标准。然而,将C代码转换为Rust并非易事,主要挑战在于两种语言之间程序结构的巨大差异以及C语言对指针的灵活使用与Rust语言的严格限制。此外,AI可能给出看似合理的答案,但实际上可能存在错误。
尽管存在挑战,DARPA对此项目表现出了高度积极性。目前,该项目已公开发布,欢迎更多开发者提交支持大型语言模型(LLM)的解决方案。这一行动反映了业界对减少内存安全漏洞、提高软件安全性持续关注的趋势。
内存安全漏洞,特别是C语言中常见的缓冲区溢出等问题,一直是业界诟病的对象。据统计,微软、Google Chromium、Mozilla和Google Project Zero等机构和项目的大量漏洞均与内存安全有关。对此,业界采取了多种策略,包括培训开发者、优化代码、引入静态和动态安全测试工具,以及开发更安全的语言和框架(如Carbon)。
硬件层面,通过增加内存保护功能,如美国SRI International和剑桥大学的CHERI项目,以及英国政府的DSBD计划等,也在努力提升系统安全性。尽管如此,内存安全问题依然严峻,促使机构推荐使用如C#、Rust、Go、Java、Python和Swift等更安全的编程语言。
工程师们对于使用AI翻译C代码至Rust持有不同观点。一方面,他们认为AI翻译工具需要识别和适应常见代码模式,避免引入不安全因素。另一方面,AI翻译可能导致内存错误被保留,但在运行时引发崩溃,有助于快速定位问题。此外,AI翻译后可能需要人工调整以满足Rust的借用检查规则,这涉及到对数据结构的重新设计,确保内存所有权的清晰界定。
总体而言,AI在代码转换领域的应用展现出潜力,但同时也面临诸多挑战。通过结合AI技术和人工审查,有望实现更高水平的软件安全性和稳定性。
.png)

-
2025-07-19 15:54:36
-
2025-07-19 15:54:26
-
2025-07-19 14:57:21