The advent of executable contents such as Java applets exposes WWW users to a new class of attacks that were not possible before. Serious security breach incidents due to implementation bugs arose repeatedly in the past several years. Without a provably correct implementation of Java's security architecture specification, it is difficult to make any conclusive statements about the security characteristic of current Java virtual machines. The Spout project takes an alternative approach to address Java's security problems. Rather than attempt a provably secure implementation, we aim to confine the damages of malicious Java applets to selective machines, thus protecting resources behind an organization's firewall from attacks by malicious or buggy applets. Spout is essentially a distributed Java execution engine that transparently decouples the processing of an incoming applet's application logic from that of the graphical user interface (GUI), such that the only part of an applet that is actually running on the requesting user's host is the harmless GUI code. A unique feature of the Spout architecture that does not exist in other similar systems, is that it is completely transparent to and does not require any modifications to WWW browsers or class libraries on the end hosts. This paper describes the design, implementation, and performance measurements of the first Spout prototype, which also incorporates run-time resource monitoring mechanisms to counter denial-of-service attacks.
[1]
Aviel D. Rubin,et al.
Blocking Java applets at the firewall
,
1997,
Proceedings of SNDSS '97: Internet Society 1997 Symposium on Network and Distributed System Security.
[2]
Thorsten von Eicken,et al.
JRes: a resource accounting interface for Java
,
1998,
OOPSLA '98.
[3]
Michael K. Reiter,et al.
Secure execution of Java applets using a remote playground
,
1998,
Proceedings. 1998 IEEE Symposium on Security and Privacy (Cat. No.98CB36186).
[4]
Glenn Vanderburg.
Tricks of the Java Programming Gurus
,
1996
.
[5]
David A. Wagner,et al.
A Secure Environment for Untrusted Helper Applications
,
1996,
USENIX Security Symposium.