Proof Linking A Modular Verification Architecture for Mobile Code Systems
نویسنده
چکیده
This dissertation presents a critical rethinking of the Java bytecode verification architecture from the perspective of a software engineer. In existing commercial implementations of the Java Virtual Machine, there is a tight coupling between the dynamic linking process and the bytecode verifier. This leads to delocalized and interleaving program plans, making the verifier difficult to maintain and comprehend. A modular mobile code verification architecture, called Proof Linking, is proposed. By establishing explicit verification interfaces in the form of proof obligations and commitments, and by careful scheduling of linking events, Proof Linking supports the construction of bytecode verifier as a separate engineering component, fully decoupled from Java’s dynamic linking process. This turns out to have two additional benefits: (1) Modularization enables distributed verification protocols, in which part of the verification burden can be safely offloaded to remote sites; (2) Alternative static analyses can now be integrated into Java’s dynamic linking process with ease, thereby making it convenient to extend the protection mechanism of Java. These benefits make Proof Linking a competitive verification architecture for mobile code systems. A prototype of the Proof Linking Architecture has been implemented in an open source Java Virtual Machine, the Aegis VM (http://aegisvm.sourceforge.net). On the theoretical side, the soundness of Proof Linking was captured in three correctness conditions: Safety, Monotonicity and Completion. Java instantiations of Proof Linking with increasing complexity have been shown to satisfy all the three correctness conditions. The correctness proof had been formally verified by the PVS proof checker.
منابع مشابه
Proof Linking: Modular Veri cation of Mobile Programs in the Presence of Lazy, Dynamic Linking
Although mobile code systems typically employ link-time code veriiers to protect host computers from potentially malicious code, implementation aws in the veriiers may still leave the host system vulnerable to attack. Compounding the inherent complexity of the veriication algorithms themselves, the need to support lazy, dynamic linking in mobile code systems typically leads to architectures tha...
متن کاملProof Linking: An Architecture for Modular Veri cation of Dynamically-Linked Mobile Code
Security aws are routinely discovered in commercial implementations of mobile code systems such as the Java Virtual Machine (JVM). Typical architectures for such systems exhibit complex interdependencies between the loader, the ver-iier, and the linker, making them diicult to craft, validate, and maintain. This reveals a software engineering challenge that is common to all mobile code systems i...
متن کاملAggrandizing the beast's limbs: patulous code reuse attack on ARM architecture
Since smartphones are usually personal devices full of private information, they are a popular target for a vast variety of real-world attacks such as Code Reuse Attack (CRA). CRAs enable attackers to execute any arbitrary algorithm on a device without injecting an executable code. Since the standard platform for mobile devices is ARM architecture, we concentrate on available ARM-based CRAs. Cu...
متن کاملProof Linking: Distributed Veri cation of Java Class les in the Presence of Multiple Classloaders
The standard JVM invokes a complex, resource-consuming, bytecode veriier to ensure the type-safety of untrusted code. Such protection mechanism is unpractical for VM's deployed on small devices or built for high-performance applications. This motivates the need for distributed veriication systems, in which a mobile code runtime environment shares some or all of its veriication burden with certa...
متن کاملSound Symbolic Linking in the Presence of Preprocessing
Formal verification enables developers to provide safety and security guarantees about their code. A modular verification approach supports the verification of different pieces of an application in separation. We propose symbolic linking as such a modular approach, since it allows to decide whether or not earlier verified source files can be safely linked together (i.e. earlier proven propertie...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004