Ribbons

 

Rationale

Multi-processing undoubtedly represents one of the major challenges for computer sciencists. Through the advent of multi-core computers, but also by the need for programs to execute subcomponents in isolation from each other or with lower privileges, we are all facing challenges due to multi-processing. Isolation between unrelated componenets is relevant in such settings to ensure both efficiency as well as security.

 

Approach

Ribbons is a shared memory programming model that allows for more implicit sharing of memory than processes but is more restrictive than threads. Ribbons structure the heap into protection domains. Privileges between these protection domains are carefully controlled in order to confine certain portions of computation.

The project currently includes two main thrusts:
  1. Secure memory views (SMVs) are an extension to the Linux kernel that supports Ribbon-based programming natively by leveraging existing memory protection mechanisms. So far SMVs have been validated by applying them to the Apache webserver, where we observe virtually no overhead (~5% latency increase). Expect to read more on this soon!
  2. The RibbonJava programming language is a backwards-compatible extension of Java which implements ribbons. This language allows us to capture and study the progress and isolation properties of applications through a formal subset of the language. RibbonJava is implemented via an extended Java compiler and a branch of the JikesRVM open source Java virtual machine which leverages our SMVs. This work is described in a report presented at SPLASH 2011. RibbonJava was most notably validated on Apache Tomcat, in addition to standard benchmarks such as SPECweb2009 and DaCapo.

 

Postdoc Position

We are inviting applications from qualified researchers for a postdoctoral researcher position on this project. Of particular interest is specific background in OS security or PL security, ideally both. Applicants should

  1. have demonstrated expertise in one or more of the focus areas through a Ph.D. on a correspondingly relevant topic and publications in respective top-tier venues.
  2. possess good knowledge of systems and programming languages.
  3. have excellent communication skills, be creative, and have leadership qualities.
  4. be proficient in spoken and written scientific English.
The Distributed Programming Group is part of the Secure Software Systems (S^3) laboratory at Purdue University's Department of Computer Science. The department offers a wealth of training opportunities for postdoctoral researchers. The position also includes ample opportunities for co-advising graduate students and co-authoring grant proposals. Positions last a year with possibility of extending to up to two more years in case of successful collaboration. Compensation is competitive. Prospective candidates are requested to send an email containing a 1-page research statement, a CV, and 3 references. Application screening will start immediately and continue until the positions are filled.

 

Support

This project has been financially supported by the National Science Foundations through grants 0834619 and 1117065.

 

Members

T. Hsu, K. Hoffman, P. Eugster.

 

Former Members

H. Metzger.