“We lift this binary executable into a HAR, a highly abstract representation. It’s essentially a data file that a software engineer or researcher can look at, they can understand what the code does, and they can make changes,” Saltaformaggio said. “You get this HAR into a place that you’re happy with, you’ve added your features, and you’re ready to deploy it. Our pipeline reassembles it into another executable binary that can be redeployed in place of the original.”
Along the way, the team’s algorithms comb through the HAR and do things like remove old code that’s no longer necessary.
“A human probably would not even be looking for that, but because the technique itself is doing this distillation, you can leave behind a lot of code you’re not going to need going forward,” he said. “You don’t want Windows 95 coming along with your Windows 11 installation, right? We can do that process automatically with this distillation pipeline.”
The researchers also built a suite of verification tests to prove the new program functions properly and can safely replace old software in jets, drones, or desktop computers.
Georgia Tech is one of just two teams working on all three areas of DARPA’s Verified Security and Performance Enhancement of Large Legacy Software (V-SPELLS) program — lifting the software’s functions into a HAR, making updates, and then proving the new program works. They’re collaborating with other teams focused on just one of those areas, too, to improve the overall results.
With the prototype and about three years left on the project, the team is improving usability. Soon, they’ll work with the U.S. Navy on testing the various approaches. Saltaformaggio said it’s still a nascent area of research — “bleeding-edge,” as he put it — but the idea is to give DARPA a robust pool of techniques.
Sikder said their ideas could extend beyond defense software to almost any industry, especially with the rapid development of new kinds of powerful computing hardware.
“You wouldn’t need to actually develop full stack software. You could just use the distillation process, add your new features, and that’s it: It’s compatible with new hardware,” he said, noting the technique also can help improve security.
“We’re actually developing a platform that users can easily change the security properties and make more secure software for everyday use.”