Termination in Language-based Systems

Authors
Algis Rudys
Dan S. Wallach
John Clements

Abstract
Language runtime systems are increasingly being enbedded in systems to support runtime extensibility via mobile code. Such systems raise a number of concerns when the code running in such systems is potentially buggy or untrusted. While sophisticated access controls have been designed for mobile code and are shipping as part of commercial systems such as Java, there is no support for terminating mobile code short of terminating the entire language runtime. This paper presents a concept called ``soft termination'' which can be applied to virtually any mobile code system. Soft termination allows mobile code threads to be safely terminated while preserving the stability of the language runtime. In addition, function bodies can be permanently disabled, thwarting attacks predicated on system threads eventually calling untrusted functions. We present a formal design for soft termination and an implementation of it for Java, built using Java bytecode rewriting, and demonstrating reasonable performance (5-40% slowdowns on benchmarks).

Published
2001 Network and Distributed Systems Security Symposium (San Diego, CA), February 2001.

Download
Postscript
Adobe PDF

BibTEX Entry
@inproceedings { rudys2001termination,
      author = "Algis Rudys and John Clements and Dan S. Wallach",
      title = "Termination in Language-Based Systems",
      year = "2001",
      month = feb,
      booktitle = "Proceedings of the 2001 Network and Distributed System Security Symposium",
      address = "San Diego, CA"
}


arudys@rice.edu, Department of Computer Science, Rice University
Last modified: Mon Aug 4 03:51:23 CDT 2003