260 likes | 414 Views
Introducing Mango: A Formal Eclipse plugin for Java Vulnerability Detection. Frank Rimlinger Information Assurance Directorate National Security Agency http:// babelfish.arc.nasa.gov / trac / jpf /wiki/projects/ jpf -mango. Summary. Tool purpose, features
E N D
Introducing Mango: A Formal Eclipse plugin for Java Vulnerability Detection Frank Rimlinger Information Assurance Directorate National Security Agency http://babelfish.arc.nasa.gov/trac/jpf/wiki/projects/jpf-mango
Summary • Tool purpose, features • What is Eclipse? What is a plugin? • Finalizer attack (from Oracle Java Security Guide) • Step 1: Build trap • Step2: Mock-up • Step3: Detect trap • Step4: Train • Mango class resolver, and math foundations.
Tool purpose • Create and understand formal specification of Java code. • Create and apply tests to screen for known issues. • Formulate and prove properties about the code using automated theorem proving.
Tool features • Available as open-source, Eclipse plugin. • Persistent automated modeling of formal specification. • Natural language translation. • Navigable view of specification. • Pattern capture-and-edit for test creation. • Layered Eclipse project design for code approximation.
Step 1: Build the trap • How to use Mango to build a trap for catching coding errors which enable the finalizer attack.
Step 2: Mock-up • How to set up a mock situation that will fire the trap.
Step 3: Detect • Create a “training rule” to detect and report allfirewallCheck expressions. • More refined rules later to weed out false positives.
Step 4 Train • Use Mango navigation of generated specification to reveal the salient features of the formal model. Develop rules for more general situations.