Skip to main content
Cybersecurity

DARPA wants automation to cut costs of rewriting legacy C code

Why DARPA program manager Dan Wallach wants to help IT pros get out from under their legacy code.
article cover

Young777/Getty Images

3 min read

Top insights for IT pros

From cybersecurity and big data to cloud computing, IT Brew covers the latest trends shaping business tech in our 4x weekly newsletter, virtual events with industry experts, and digital guides.

The “Translating All C TO Rust” program, or TRACTOR, aims to yeet legacy C code to the woods, in favor of a language that Dan Wallach, Defense Advanced Research Projects Agency (DARPA) Information Innovation Office program manager, and his group consider popular, more secure, and potentially cost-saving.

TRACTOR addresses an economic concern, Wallach said, for companies that are done maintaining C code, but can’t afford to pay teams to rewrite it from scratch.

“There is so much legacy code out there that organizations—civilian, military, whatever—simply can’t afford to pay enough people to rewrite all their code manually, and if we can achieve a hypothetical 99% automatic conversion, then [we’ve] hypothetically reduced your cost by a factor of 100.” Wallach told IT Brew.

Why not C? The Cybersecurity Infrastructure Security Agency (CISA) has urged organizations to defend against memory-safe vulnerabilities, or “how memory can be accessed, written, allocated, or deallocated in unintended ways in programming languages.”

In a recent report, CISA considered C (emerged in the early ’70s) and C++ (invented just a little bit later) examples of memory-unsafe programming languages.

One classic memory-related coding error: The buffer overflow, where a program exceeds the parameters of the temporary memory location known as the buffer, overwriting other memory and leading to crashes or compromising behavior. (See January’s Pwn2Own Automotive hack event)

A June 2024 report from international agencies found that 52% of 172 critical projects defined by the Open Source Security Foundation, known as OpenSSF, contained memory-unsafe code.

Why Rust? Rust, which CISA considers a “memory-safe language,” has rules for how data can be used or copied in a program. It even includes what Wallach calls an “escape hatch,” allowing programmers to contain riskier code snippets—like operating-system interactions—in searchable blocks labeled “unsafe.”

Google and AWS recently shared their recent experiences implementing the Rust code that a Mozilla researcher invented in 2006.

Start your tractors. According to DARPA documentation, the TRACTOR program seeks proposals that provide automated translation from legacy C code to Rust “with the same quality and style that a skilled Rust developer would employ.” A Proposers Day is scheduled for August 26.

One technology likely to support the effort: Large language models (LLMs), which can already provide C-to-Rust translations, according to Wallach.

“Sometimes they will hallucinate incorrect answers, but the capability to ask an LLM to do these kinds of tasks is something that we simply didn’t have four years ago, and the existence of that capability today creates a world of new possibilities,” Wallach said.

TRACTOR’s goals align with recent government efforts to promote memory-safe languages, including a White House advisory in February 2024.

“How can we improve software resilience? How can we modernize software? How can we remove security bugs? How can we convince ourselves of software correctness? These are issues that are very, very relevant for both the military and civilian sectors,” Wallach told us.

Top insights for IT pros

From cybersecurity and big data to cloud computing, IT Brew covers the latest trends shaping business tech in our 4x weekly newsletter, virtual events with industry experts, and digital guides.