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

Slides:



Advertisements
Similar presentations
InterScan AppletTrap Zhang Hong Trend Micro, AppletTrap Team (Nanjing)
Advertisements

What is a Computer Program? For a computer to be able to do anything (multiply, play a song, run a word processor), it must be given the instructions.
Towards Remote Policy Enforcement for Runtime Protection of Mobile Code Using Trusted Computing Xinwen Zhang Francesco Parisi-Presicce Ravi Sandhu
Security Issues of Peer-to-Peer Systems February 14, 2001 OReilly Peer-to-Peer Conference Nelson Minar, CTO POPULAR POWER.
© 2003 School of Computing, University of Leeds SY32 Secure Computing, Lecture 16 Secure Coding in Java and.NET Part 1: Fundamentals.
Access Control 1. Given Credit Where It Is Due Most of the lecture notes are based on slides by Dr. Daniel M. Zimmerman at CALTECH Some slides are from.
Chapter 17: WEB COMPONENTS
ITIS 1210 Introduction to Web-Based Information Systems Chapter 44 How Firewalls Work How Firewalls Work.
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.
Java Security. Overview Hermetically Sealed vs. Networked Executable Content (Web Pages & ) Java Security on the Browser Java Security in the Enterprise.
Mobile Code Security Aviel D. Rubin, Daniel E. Geer, Jr. MOBILE CODE SECURITY, IEEE Internet Computing, 1998 Minkyu Lee
Java Security: From HotJava to Netscape & Beyond Drew Dean, Edward W. Felten, Dan S. Wallach Department of Computer Science, Princeton University May,
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
Java Security Model Lab#1 I. Omaima Al-Matrafi. Safety features built into the JVM Type-safe reference casting Structured memory access (no pointer arithmetic)
LAB#2 JAVA SECURITY OVERVIEW Prepared by: I.Raniah Alghamdi.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture Ten –
1 Extensible Security Architectures for Java Authors: Dan S.Wallch, Dirk Balfanz Presented by Moonjoo Kim.
got ? Research Project – April 1998 Hang Xia, Mark Wang, Richard S. Chang Updated: R Norman, August 1999.
Security A system is secure if its resources are used and accessed as intended under all circumstances. It is not generally possible to achieve total security.
Introduction to Java Kiyeol Ryu Java Programming Language.
Web Security A how to guide on Keeping your Website Safe. By: Robert Black.
Silberschatz, Galvin and Gagne  Operating System Concepts Module 19: Security The Security Problem Authentication Program Threats System Threats.
Mobile Code and Worms By Mitun Sinha Pandurang Kamat 04/16/2003.
Computer Security and Penetration Testing
Buffer Overflow Attacks Figure (a) Situation when the main program is running. (b) After the procedure A has been called. (c) Buffer overflow shown.
Chapter 9 Security Malware Defenses. Malware Can be used for a form of blackmail. Example: Encrypts files on victim disk, then displays message.
Web Proxy Server Anagh Pathak Jesus Cervantes Henry Tjhen Luis Luna.
Page 1 Sandboxing & Signed Software Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation.
Java Security Updated May Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security.
D ATABASE S ECURITY Proposed by Abdulrahman Aldekhelallah University of Scranton – CS521 Spring2015.
INTRODUCTION TO WEB DATABASE PROGRAMMING
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.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Patterns for Secure Boot and Secure Storage in Computer Systems By: Hans L¨ohr, Ahmad-Reza Sadeghi, Marcel Winandy Horst G¨ortz Institute for IT Security,
Security in Java Sunesh Kumra S
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Java security model General: Java, introduced by Sun Microsystems 1995, is a very widely used programming language. We will not look at Java as a programming.
Java Security Nathan Moore CS 665. Overview Survey of Java Inherent Security Properties Java Runtime Environment Java Virtual Machine Java Security Model.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
CT1513 Introduction To java © A.AlOsaimi.
Module 2 – User Safety Privacy Attacks on end users Browser vulnerabilities.
1 Network Firewalls CSCI Web Security Spring 2003 Presented By Yasir Zahur.
1 Mobile Code l Java Review –Java code is platform independent and runs within a “sandbox”, or a set of restrictions that keep downloaded applets from.
Java Security Session 19. Java Security / 2 of 23 Objectives Discuss Java cryptography Explain the Java Security Model Discuss each of the components.
Java – in context Main Features From Sun Microsystems ‘White Paper’
Role Of Network IDS in Network Perimeter Defense.
Active X and Signed Applets Chad Bollard. Overview ActiveX  Security Features  Hidden Problems Signed Applets  Security Features  Security Problems.
Web Database Security Session 12 & 13 Matakuliah: Web Database Tahun: 2008.
Introduction to Programming 1 1 2Introduction to Java.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
Introduction to Operating Systems
Chapter 1 Introduction to Computers, Programs, and Java
POPULAR POWER Security Issues of Peer-to-Peer Systems
Java security (in a nutshell)
Topic: Java Security Models
Introduction to Operating Systems
Security in Java Real or Decaf? cs205: engineering software
Chapter 27 Security Engineering
Security.
AbbottLink™ - IP Address Overview
COSC Assignment 3 - Part 1 Java Security Susan Kovacs 19 April 2019 COSC Assignment 3 - Part 1.
Operating System Concepts
Presentation transcript:

Mobile Code Security Yurii Kuzmin

What is Mobile Code? Term used to describe general-purpose executables that run in remote locations. Web browsers come with the ability to run general-purpose executables. The executable can be written by anyone and executed on any machine that runs a browser. Same code can be executed on any platform regardless of the operating system and hardware architecture.

History Concept is not new Several object-based systems are well established (CORBA) HotJava – web browser itself written in Java, first browser to support applets. Version 2 of Netscape Navigator (spring of 1996) Version 3 of Internet Explorer (winter of 1995)

Security Concerns Global, homogeneous, general-purpose interpreter Interpreter is part of the browser Attacker can run native code on the executing machine Attacker can include malicious machine code in executables and cause it to be executed Code executed by a user runs with that users permissions

Security Techniques Sandbox Model Code Signing Hybrid: Sandbox and Signatures Firewalling Proof-Carrying Code

Sandbox Model Contain mobile code in such a way that it cannot cause any damage to the executing environment –Restrict access to a file –Limit the ability to open network connection Java interpreter inside Internet browsers –Each implementation of interpreter has a security policy –Policy explicitly describes the restrictions

Sandbox Model Components of Java Interpreter –Class loader –Verifier –Security manager

Class Loader Special Java object that converts remote bytecode into data structures representing Java classes The only way to add remote classes to machines local class is via the class loader Class loader creates a name space for downloaded code, local names are given priority, so remote classes cannot overwrite local names.

Verifier Performs static checking on the remote code before it is loaded Checks that the remote code –Is valid virtual machine code –Does not overflow or underflow the operand stack –Does not user registers improperly –Does not convert data types illegally

Security Manager Provides flexible access to potential dangerous system resources Security Manager classes represent a security policy for remote applets

Security Manager Public boolean AAA(Type arg1){ SecurityManager security = System.getSecurityManager(); if (security != null){ security.checkAAA(arg1); } Example is taken out of Mobile Code Security by Aviel D. Rubin

The Sandbox Model Error in any security component can lead to a violation of the security policy Risks are increased by the complexity of the interaction between components. –If the class loader has incorrectly identified a class as local, the security manager might not be able to apply the right verifications

Code Signing The client manages a list of entities that it can trust. When a mobile executable is received, the client verifies that it was signed by an entity on the list If so, then it is run, most often with all of the users privileges Used by ActiveX

Code Signing Trusted code runs with full users privileges, or it doesnt run at all If an intruder can change the policy on a users machine, the intruder can then enable the acceptance of all ActiveX content. Legitimate ActiveX program can open the door for future illegitimate traffic

Hybrid:Sandbox and Signatures Attempts to merge benefits of the sandbox model with code signing Digitally signed applet is treated as trusted local code if the signature key is recognized as trusted by the client system that receives it Client downloads an applet and then consults a policy table for every signed applet Trusted applets can access file system, establish network connection and do other applications that are restricted by sandbox

Firewalling Selectively choosing whether run or not to run a program at the very point where it enters the client domain Web proxy or firewall can try to identify Java applets, examine them, and decide whether or not to serve them to the client Firewall approach assumes that applets can somehow be identified

Firewalling Finjan Software and Security 7 have products that attempt to identify applets and then examine them for security properties. Only safe applets are allowed to run Techniques that they use are confidential Halting problem – there is no general- purpose algorithm that can determine the behavior of an arbitrary program.

Firewalling Digitivity Inc. uses another approach –Java applets are divided into graphical actions and all other actions –Graphical run on the client machine –Other run on a sacrificial playground machine

Browser Playground Proxy WEB 1. Request for Page2.Request for Page 3. Page Load Graphics Server Load applet Change tags Change I/O 4. Modified Page 5. Request for Applet 6. Applet 7. Modified Applet 8. I/O

Firewalling The playground architecture trusts small graphics packages because its easy to analyze More dangerous and untrustworthy mobile code has no access to meaningful resources This approach requires bytecode modification and cannot be used in combination with the usual approach to code signing

Proof-Carrying Code Is an active area of research today Technique for statically checking code to make sure that it does not violate some safety policy Some programs can construct a proof that they do not contain any buffer overflows Proves safety properties of code

Conclusion Best approach is combination of security mechanisms No techniques can protect users from social engineering attacks User education is the only way to combat mobile code attacks that are based on social engineering

References Mobile Code Security, Aviel D. Rubin Formal Aspects of Mobile Code Security, Richard Drews Dean Mobile Code and Security, Gary McGraw, Edward W. Felten Securing Systems Against External Programs, Brant Hashii, Manoj Lal, Raju Pandey and Steven Samorodin