Java Security: From HotJava to Netscape and Beyond. Drew Dean Edward W. Felten Dan S. Wallach Department of Computer Science Princeton University Presented.

Slides:



Advertisements
Similar presentations
Mobile Code Security Yurii Kuzmin. What is Mobile Code? Term used to describe general-purpose executables that run in remote locations. Web browsers come.
Advertisements

Introducing JavaScript
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java Applet Security Diana Dong CS 265 Spring 2004.
Java security (in a nutshell)
Applet Security Gunjan Vohra. What is Applet Security? One of the most important features of Java is its security model. It allows untrusted code, such.
Introduction to JAVA Vijayan Sugumaran School of Business Administration Oakland University Rochester, MI
MC697 Object-Oriented Programming Using Java. In this class, we will cover: How the class will be structured Difference between object-oriented programming.
Lab#1 (14/3/1431h) Introduction To java programming cs425
Java Security: From HotJava to Netscape & Beyond Drew Dean, Edward W. Felten, Dan S. Wallach Department of Computer Science, Princeton University May,
The Java Language. Topics of this Course  Introduction to Java  The Java Language  Object Oriented Programming in Java  Exceptions Handling  Threads.
got ? Research Project – April 1998 Hang Xia, Mark Wang, Richard S. Chang Updated: R Norman, August 1999.
Introduction to Java Kiyeol Ryu Java Programming Language.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Applets, Graphical User Interfaces, and Threads / Chapter 9 1 Applets, Graphical User Interfaces, and Threads.
The Safe-Tcl Security Model John K. Ousterhout Jacob Y. Levy Brent B. Welch Sun Microsystems Laboratories 2550 Garcia Avenue, MS UMTV Mountain View,
Java Security Updated May Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Chapter 1 Coding Introduction.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Applets & Servlets.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
20-753: Fundamentals of Web Programming Copyright © 1999, Carnegie Mellon. All Rights Reserved. 1 Lecture 16: Java Applets & AWT Fundamentals of Web Programming.
Security Exploiting Overflows. Introduction r See the following link for more info: operating-systems-and-applications-in-
Chapter 16 The World Wide Web Chapter Goals Compare and contrast the Internet and the World Wide Web Describe general Web processing Describe several.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Modern Software Technologies Java™, J2EE™, JSP™, JDBC™ by Radoslav Tr. Ivanov
Web Site Security Andrew Cormack JANET-CERT ©The JNT Association, 1999.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
3-Protecting Systems Dr. John P. Abraham Professor UTPA.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Java Security Nathan Moore CS 665. Overview Survey of Java Inherent Security Properties Java Runtime Environment Java Virtual Machine Java Security Model.
Lecture :2 1.  DEFENTION : Java is a programming language expressly designed for use in the distributed environment of the Internet. It was designed.
Version 02U-1 Computer Security: Art and Science1 Java Security by Drew Dean Edward W. Felten and Dan S. Wallach.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
Module 2 – User Safety Privacy Attacks on end users Browser vulnerabilities.
J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition Second Edition D.S. Malik D.S. Malik.
School of Computer Science & Information Technology G6DICP - Lecture 6 Errors, bugs and debugging.
Concurrency Properties. Correctness In sequential programs, rerunning a program with the same input will always give the same result, so it makes sense.
1 My Dream of Jini Fabio Kon Jalal Al-Muhtadi Roy Campbell M. Dennis Mickunas Department of Computer Science University of Illinois at.
Threads. Readings r Silberschatz et al : Chapter 4.
CHAPTER Agenda Applets Servelets Browsers HelloWorld.
Group 9. Exploiting Software The exploitation of software is one of the main ways that a users computer can be broken into. It involves exploiting the.
1 CSC160 Chapter 1: Introduction to JavaScript Chapter 2: Placing JavaScript in an HTML File.
Introduction to Programming 1 1 2Introduction to Java.
The Internet Salihu Ibrahim Dasuki (PhD) CSC102 INTRODUCTION TO COMPUTER SCIENCE.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing.
Chapter 1 Coding Introduction.
JavaScripts.
Introduction to Operating Systems
A Programming Language for Web-based Computing with Graphics
Chapter 1 Introduction to Computers, Programs, and Java
Java security (in a nutshell)
Topic: Java Security Models
Introduction to Operating Systems
Security in Java Real or Decaf? cs205: engineering software
A Programming Language for
Chapters 5 & 6 of Web security. pp
Java History, Editions, Version Features
COSC Assignment 3 - Part 1 Java Security Susan Kovacs 19 April 2019 COSC Assignment 3 - Part 1.
Introducing Java.
Chap 1. Getting Started Objectives
A Programming Language for
APPLET PROGRAMMING.
Presentation transcript:

Java Security: From HotJava to Netscape and Beyond. Drew Dean Edward W. Felten Dan S. Wallach Department of Computer Science Princeton University Presented by Yuhong Cai

Introduction This article introduces many significant flaws found in HotJava, Netscape and JDK. Issues about java type-safe, independent name space and byte-code verifier are worth pages of explanation. The scenarios mentioned in the part of taxonomy of Java Bugs are not straightforward( it can’t be, otherwise the attackers will be too happy, but it’s also hard for us to understand them). I recommend one excellent on-line book which gives more details about java security. I also recommend and applets/ where we can have unforgettable experience. applets/

Presentation Contents Java Semantics(The important concepts in java security) Three examples out of taxonomy of Java Bugs  Denial of Service (malicious applet which consumes all your resources )  Killing competent applets (malicious applet which kills other applets but themselves)  You're Not My Type (Attack applet which can bypass the Java SecurityManager and attack your system ) Java Language and Bytecode Weaknesses Conclusions

Java Semantics (Some corner stones of java security architecture) Java should always be type-safe language. Any code is trusted if it is loaded from the local filesystem Applets cannot directly make system calls SecurityManager module approves dangerous operations Applets are forbidden to access the file system open sockets, except back to their home interfere with other applets learn about the local environment

Example(1) (Denial of Service) Denial of Service (the next-best goal of crackers) Attacks that prevent someone from using his or her machine are called denial-of-service attacks in the security community. Various guises of denial of service: Consuming all available CPU cycles. Allocating every last bit of memory. Hogging all possible screen space. Netscape 3.0 is a denial-of-service victim of the applet on the next slide.

Example (1)(cont’d) Public class MaliciousApplet extends Applet implements Runnable { public void init() { // Determine how many seconds the thread should sleep before kicking in; } public void start(){ // Create and start the offending thread in the standard way; } public void stop(){ // Redefine the stop() method to null for the thread.; } public void run(){ // Start calculating in an infinite loop or any other naughty things; } Reference:

Example(2) (killing off the Competition) Killing Off the Competition An Assassin applet first spawns a monitoring thread to watch for applets from another site then kills the threads of any incoming applets. Main idea of this malicious applet  Starting with the current thread group, ascend to the root thread group.  From the root, recursively descend through all threads and thread groups below.  Kill each thread encountered (but not self)  Navigator 3.0 can be the victim of this applet. Reference:

Example(3) (You’re not my type) You are Not My Type (A type-confusion attack, very dangerous)  An applet creates two pointers to the same object-with incompatible type tags.  The Java system is in trouble.  The applet can write into that memory address through one pointer, and read it through another pointer.  Finally the applet can bypass the typing rules of Java, completely undermining its security.  Navigator 3.0 beta 5.0 has this bug, but it’s fixed in Navigator 3.0 beta 6.0. To be continued

Example(3)(cont’d) If the following situation occurs in a java system, this type-confusion will results heavy system attack.( There is a good case to describe this problem in )

Java Language and Bytecode Weakness Public variables are dangerous  Why are they writable across name spaces? Java’s package mechanism  Not as useful as parameterized module system(e.g. Standard ML’s functors)  Hierarchical module system allows hierarchical protection. Abstract Syntax Trees vs. Bytecode ASTs easier to type check  No need for global dataflow analysis Asts have same semantics as language  Bytecode has its own semantics Comparable compilation speed

Conclusion Remote code is inevitable for the Web. Java is promising, but has important bugs and design issues. Like java applets which can be naughty on client side, the misbehavior of java servlets can results more serious problems on server side. Strong security measures can allow more functionality for untrusted applets without compromising privacy and integrity (Java 2 security package). Acknowledgement: I would like to thank professor Clark Thomborson, he’s given me many helpful suggestions to make this presentation clear and concise.

Questions Interesting questions: Have you ever suffered from malicious attack from java applets? Would you like to disable java or javascript in your browser for security aim? Tough question: **** Could you tell any difference between iexplorer security mechanism and netscape security mechanism?