Aarno Labs Logo

DIODE: Input Synthesis Engine

Rapidly generate program inputs that drive a program to a desired location and state. Employed to automatically produce exploiting inputs of a vulnerability to aid vulnerability research, understanding, mitigation, and testing.

Overview

DIODE is an advanced dynamic analysis tool designed to synthesize inputs that trigger specific vulnerabilities in software binaries. By employing targeted runtime instrumentation and constraint-driven input mutation, DIODE explores program execution paths with precision, efficiently identifying and exercising vulnerabilities.

Implementation

DIODE operates by embedding lightweight instrumentation into binaries at compile time, which collects essential data during execution. This data generates symbolic expressions describing the transformations applied to inputs as they propagate through the program. DIODE then uses these expressions to enforce constraints and produce inputs that drive execution toward vulnerable code paths. Unlike traditional concolic execution or fuzzing techniques, DIODE’s guided approach minimizes the computational overhead associated with path explosion, enabling it to handle complex control and data flow scenarios.

Outcomes and Capabilities

Identify and Validate Vulnerabilities

Generate proof-of-vulnerability (PoV) inputs to exercise specific vulnerabilities in software binaries, enabling precise and actionable validation of potential security flaws.

Guide Patch Creation and Testing

Produce inputs that trigger vulnerable execution paths, supporting researchers and developers in creating and testing patches to ensure comprehensive vulnerability mitigation.

Analyze Integer Overflows

Used in research presented at ASPLOS, DIODE synthesizes inputs to uncover integer overflow vulnerabilities, driving advancements in software safety.

Transplant Software Patches

Demonstrated at PLDI, DIODE facilitates patch transplantation by identifying critical execution paths and generating inputs for testing and validation.

Automate Exploit Creation

Successfully applied in the DARPA HACCS program to automatically generate memory-corruption exploits, showcasing its capability to address high-assurance cybersecurity challenges.

Inject Vulnerabilities for Testing

Employed in the Aikido SBIR program to automatically inject vulnerabilities into software binaries, enabling controlled testing and validation scenarios.

Services and Source Code

DIODE provides Aarno Labs with a unique capability for rapidly producing inputs that drive a program to a desired location and state. Aarno Labs employs DIODE for client deliverables related to vulnerability understanding and reachability analysis. DIODE has an open-source license, and is available upon request.

Research Funding

  • DRIFT (DARPA E-BOSS): Enhancing SBOMs to solve vulnerability discovery, reachability and remediation.
  • Aikido (DARPA SBIR 15.3): Automating Realistic Vulnerability Generation for Cyber Defense Evaluation
  • Arya (TA3) (DARPA HACCS): High-Assurance, Decentralized, Autonomous Agents for Neutralizing Botnets