Skip to content

AOT code verification #107

@hrj

Description

@hrj

@mateli I am very interested in the note you added to the wiki, about AOT code verification. Please comment here if you know of a practical example / guide to get that done for a project like gngr.

However, I am removing the added section from the wiki, as that page is about App-sandboxing (isolating the application from the rest of the system).

For reference, the removed section is copied below:


AOT code verifiction (like NaCl)

This means that Java Bytecode is recompiled into Java Bytecode while verifying that it does nothing nasty. The quasar fiber library does this using the ADM library in order to enforce cooperative multitasking (fibers). It appears Stanford researched this ages ago (theory.stanford.edu/~jcm/software/bytecode.html).

There are two benefits with this method. First of all it checks/modifies the code before runtime therefore not significantly impacting runtime performance. Call to "unsafe" code outside the sandbox can be redirected to code that is designed to be safe, or flat out replaced with code that throws a security exception. This will likely be faster than the standard Java Sandbox where it is the responsibility of a called method to check the callers security context, also it's probably safer as new Java functions that haven't been white-listed will be unavailable. Secondly it doesn't require any hardware features, which VirtualBOX or lxc-like containers do.

Additionally this could be implemented as an extension to the Quasar library which also brings in fast multitasking capabilities.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions