Lawrie spent the latter half of 2002 on sabbatical, conducting research
on mobile code security using Erlang, and working at the
Software Engineering Research Centre,
Safer Code Execution in Erlang
The focus of my research project is on extending the design and implementation of a secure and safe mobile code execution environment in Erlang, the functional language developed by Ericsson for telecommunications applications. I will be building on my previous work on Safe Erlang. I identified a need for extensions to support a hierarchy of nodes within an Erlang system to provide a "custom context", restrictions on "side-effects", and resource limits for processes executing in each node; the use of capabilities for nodes, processes, ports, and user defined references, to provide a finer granularity of control on the use of these identifiers; and support for remote module loading mechanisms that preserve the context for such modules.
During my current sabbatical I aim to implement these extensions in the Erlang Compiler (and now also at ADFA) being developed by Maurice Castro at SERC.
Currently much of the language has been implemented, and the runtime has been greatly extended. Some documentation should hopefully be coming soon! See my paper on A New Runtime for the EC Erlang Compiler, which details some of the design decisions taken, and issues tackled during this work.
Some earlier presentations are available in the seminar on this presented to Computer Science, ADFA, Canberra on 12 Mar 2003, which updates an earlier presentation to RMIT in Nov 2002. Some very early Safe Erlang in EC Design Notes are also available.
My original proposals are summarised in an overview paper with Dan Sahlin called Extending Erlang for Safe Mobile Code Execution (presented at ICICS'99 in Sydney in Nov 99). The prototype I developed on sabbatical in 1997 is documented in SSErl - Prototype of a Safer Erlang (TR CS04/97 - Oct 97). My proposals for the best mechanisms to implement safety policies are detailed in Custom Safety Policies in SSErl (presented at ACISP2k in Brisbane in Jun 2000).