Skip to content

New Kinds Of Tools For Maintaining And Sustaining Software

Sergey Bratus

CommunityHardwear.io USA 202548 minOpen on YouTube ↗

Sergey Bratus explores New Kinds Of Tools For Maintaining And Sustaining Software.

Summary

### Overview Sergey Bratus, reflecting on his six years as a DARPA program manager, addresses the fragility and opacity of software maintenance. Today, updating software often mirrors tearing down an entire house just to remodel a single room: fixing a small bug typically requires recompiling, rebuilding, and redistributing massive binaries. In critical settings—ranging from satellites with limited orbital transmission windows to heavy automotive vehicles and embedded engine controllers—this model is unsustainable. Bratus advocates for new classes of tools that enable rapid, assured binary micropatching, semantic intermediate representations (IRs), and richer post-compilation metadata to sustain and transform software.

### Key Topics - **DARPA's Role in High-Risk Software Research**: Funding ambitious, high-risk paradigms that peer review often dismisses, from early DARPA initiatives like the internet and symbolic reasoning to modern automated cyber reasoning challenges. - **The Opacity of Compiled Binaries**: The structural challenge where compiled software becomes opaque and disconnected from its toolchain, making rebuilding brittle and decompilation insufficient on its own for recompilation. - **Assured Binary Micropatching**: Developing decompilers that act as lifters and aligners, alongside recompilers that provide formal certificates and guarantees of semantic equivalence and non-interference. - **Multi-Level Intermediate Representations**: Bridging semantic gaps using interoperable, layered IRs (such as dialects of MLIR like Trail of Bits' VAST) rather than relying on isolated, ad-hoc representations. - **Enhanced Metadata ('Super DWARF' / Enhanced SBOM)**: Generating compilation artifacts that track not only symbols, but also data flows, control flows, and module interfaces to enable local reasoning.

### Technical Details Bratus highlights real-world evaluations where DARPA performers were tasked with patching complex systems, such as 15-liter vehicle engine controllers connected via J1939 buses and telematics units, as well as flight control software like ArduPilot: - **Frameworks and Alignment**: Red Balloon created an assured micropatching framework evaluated against engine systems, achieving a 16x speedup in patch creation and assurance. JHU APL updated CodeCMR/CodeCut using neural techniques to segment compilation units and recover architecture from jump graphs. Binary Ninja applied graph matching and analysis to align source artifacts with target binaries, matching standard components like OpenSSL. - **Verification and Solvers**: Systems developed by MIT and Draper Labs (such as multi-focal relational analysis) isolate divergent basic blocks and produce verifiable certificates using SMT/formal solvers. Purdue and EPFL developed tools like PeterX, incorporating hardware abstraction and emulation (e.g., Hallucinator) to patch firmware. - **Compiler Emulation via Constraints**: Academic concepts like the Unison compiler demonstrated that compilation can be modeled as constraint solving over instruction set architecture descriptions, paired with counterexample-guided abstraction refinement (CEGAR) loops.

### Takeaways To sustain legacy software across critical infrastructure, engineering must transition from wholesale rebuilds to precise, verified micropatches. This evolution requires moving away from ad-hoc representations toward standardized, multi-level IR stacks and compilers that emit semantic metadata capable of tracking control and data flow. Ultimately, software maintenance needs automated, mechanized reasoning to understand the precise impact of small code changes.

Related talks