java applet security
DESCRIPTION
Java Applet Security. Diana Dong CS 265 Spring 2004. The Problem. Millions of users download Java applets everyday, sometimes without prior approval from the user How to ensure malicious applets will not wreak havoc on the local machine?. Sandbox Idea. - PowerPoint PPT PresentationTRANSCRIPT
Java Applet Security
Diana DongCS 265
Spring 2004
The Problem
Millions of users download Java applets everyday, sometimes without prior approval from the user
How to ensure malicious applets will not wreak havoc on the local machine?
Sandbox Idea
A place where Java applet code can be executed, but no areas outside of the sandbox can be accessed by the applet.
Removes the responsibility of checking applet source from the user
Ensures execution of malicious applet will not do damage to the local machine
Sandbox cont'd
Sandbox prohibits: File system access Network access Creation of process Process acess
4 Major Components of the Sandbox
Java Virtual Machine (JVM) built-in features
Class loader Class file verifier Security manager
JVM Built-in Features
Type-safe reference casting Structured memory access (no
pointers) Automatic garbage collection
(can't explicitly free allocated memory)
Array bounds checking
Class Loader
Responsible for importing binary data that defines the running program's classes and interfaces
Two types of class loaders: primordial class loader and class loader objects
Class Loader cont'd
Primordial class loader loads trusted classes, such as the Java API. Classes that are loaded this way becomes part of the JVM.
Class loader objects are untrusted objects loaded into the JVM and instantiated like any other object
Class Loader cont'd
Class Loader cont'd
How does it protect? Prevents malicious code from
interfering with benevolent code – namespace. Classes are loaded into its own namespace. No access to other classes outside of its own namespace.
It guards the borders of the trusted class libraries. Customizable.
Class Verifier
Checks the integrity of the class file to ensure no illegal bytecodes have been added
Uses built-in theorem prover to check integrity
Class Verifier
4 passes1. Class file is read into interpreter and
basic format of class file is checked2. Additional verification of the class file
without looking at the bytecodes3. Bytecode verification of each method4. Additional bytecode verification at
runtime
Security Manager
Defines which requests are allowed or disallowed through methods which can be overridden
Works hand-in-hand with the class loader to define the boundaries of the sandbox, i.e. what is allowed or disallowed.
Other Methods
ActiveX uses code signing and digital signature. Verified signatures from trusted source imply reliable ActiveX control.
Java too offer digital signature in addition to the sandbox.
Questions?