Description
Software correctness is vital for creating robust and trustworthy systems, especially in safety-critical and security-sensitive domains. Precisely understanding and proving properties about a program ensures that it behaves as intended under all circumstances, minimizing errors and vulnerabilities. Techniques like program verification rigorously prove that a program meets its specifications, while relational analysis identifies how changes or differences between versions impact behavior. Translation validation ensures that transformations, such as compiling or lifting code, preserve correctness, providing confidence in the integrity of generated outputs. Formal methods, grounded in mathematical rigor, enable comprehensive reasoning about program logic, ensuring correctness even in complex systems. Together, these approaches establish a foundation of trust, reduce debugging and testing costs, and provide the assurance necessary for high-stakes software applications, where errors can have far-reaching consequences.
Solutions
- CodeHawk: Analysis and Patching Platform
Projects
Papers
- Concord - Verifying Memory Safety. Aarno Labs Technical Report, 2019
- DroidSafe: Final Report. Aarno Labs Technical Report, 2019
- Arya Chain Backbone Proofs: Formalizing the Proof of Burn Consensus Mechanism. Aarno Labs Technical Report, 2019
- Multifocal Relational Analysis for Assured Micropatching: Final Report. Aarno Labs Technical Report, 2024
- Assured Micropatching of Race Conditions in Legacy Real-time Embedded Systems. Real-Time Autonomous Systems Security, 2024
- IDA Pro Plugins for CodeHawk-Binary. Aarno Labs Technical Report, 2023