Mobile Agent Security Dan Gaudette Graduate Seminar Class November 25, 2003 Overview Review of what I did last time What is an agent again? Security Issues Different types of attacks Benefits Drawbacks Server to server, server to agent, agent to server, agent to agent How they do the attack – masquerading, etc. Aglets Malicious Hosts Classification of threats Security Goals Malicious Host Detection Countermeasures Mobile Agent [5] Agents typically possess several (or all) of the following characteristics: Small in size Goal oriented Communicative Cooperative Flexible Mobile Agent [5] Mobile Agents can travel across the heterogeneous network in order to perform an assigned task. Mobile Agents are one of the popular and simpler ways of retrieving information from the Internet. Aglets are fundamentally Java-based autonomous software mobile agents. An aglet carries its state and as well as data along with it while traveling across the network. Basic idea: Create once, go anywhere. Mobile Agent They are often used in information searching, filtering and retrieving applications, low-level network maintenance, testing, fault-diagnosis and for dynamically upgrading existing services [13]. Mobile Agent Benefits [5] Reduce human work Handle information overload Provide automated help Reduction of network traffic Adaptive Negotiation capabilities Learning capabilities Mobile Agent Drawbacks [5] Security is a huge issue Main reason why agents aren’t as popular as they could be Lack of mobile agent standards Each implementation has it’s own specific benefits and drawbacks No coordination, cooperation, or communication between agents especially between different kinds of agents Aglets Aglet – Implementation of an Agent Why study Aglets? clear and simple structure good GUI (Tahiti server) very accessible use good documentation high user acceptance open source / freeware works on Java2 A Little More on Aglets [8] Implemented standards: Communication: MASIF - Mobile Agent System Interoperability Facility works with CORBA Sockets message-passing between agents ATP (support HTTP tunneling) problems with firewalls Mobility: weak mobility Java serialization (byte code) A Little More on Aglets [8] Security policy: built-in security mechanism through Tahiti server three roles (aglet, manufacturer, owner) context and server security network domain agents are shielded using proxy object standard Java security (JDK keytool) Practical uses: – electronic marketplace for air tickets in Japan (thousand machines) TabiCan Developing Aglets [8] Aglets Software Development Kit (ASDK) developed by IBM is a Java-based framework for implementing mobile agents called aglets. It provides a network agent class loader that enables mobility of agent code, data and state information. Aglets package can be downloaded from the Sourceforge.net or the IBM website. Aglets [8] Aglets are Java objects that can move from one host on the Internet to another. An aglet that executes on one host can suddenly halt execution, dispatch itself to a remote host, and resume execution there. When the aglet moves, it takes along its program code as well as its data. Aglet Architecture [7] Aglets architecture consists of two APIs and two implementation layers. Java Aglet API Aglets Runtime Layer – The implementation of Aglet API Agent Transport and Communication Interface (ATCI with ATP as an application-level protocol) Transport Layer Aglet API [7] Internet agent developers can develop platform independent aglets written in Java programming language and expect them to run on any host that supports Aglet API. Aglet: Provides methods that control the mobility and lifecycle of an aglet. Aglet Context: Provides the execution environment at the remote site. Aglet Proxy: Provides a handle that is used to access the aglet. Message: An object exchanged between aglets. Aglet Life Cycle [7] Different stages in an aglet execution are shown in the figure. Aglets can be: created, cloned, dispatched, retracted, deactivated, activated, disposed Aglets Security and Communication [7] Security in Aglets Security is a prime concern for mobile agent technology, and aglets provide an extensible security model in the form of an AgletSecurityManager, as a subclass of the Java Security Manager. Aglets Communication Messaging between aglets involves sending, receiving, and handling messages synchronously as well as asynchronously. Aglets communicate with each other by exchanging Message objects. Malicious Hosts Malicious Hosts [2] Goals: to analyze the different security threats that can possibly be imposed on agents by malicious hosts to provide a classification of these threats to describe the current solution approaches that are implemented to address the identified problems Malicious Hosts A malicious hosting node can launch several types of security attacks on the mobile agent and divert its intended execution towards a malicious goal or alter it’s data or other information in order to benefit from the agent’s mission [10]. Malicious Hosts Example For example: A Mobile Travel Agent is sent out by a user to visit several airlines, find the best offer and book and pay the best flight [11]. A malicious host might spy out the price limits set by the user and the offers by competitors. [9] It might tamper the agent to change the competitors prices. Malicious Hosts Example It could advance the agents program counter to the preferred branch of conditional code. [3] It might steal the mobile agent’s electronic money, credit card number or cryptographic keys. It might hoodwink the competition by modifying the agent to want to reserve 100 tickets from the competitor so the flight appears full. [3] Classification of Malicious Host Security Threats [2] Base the classification of threats on the five fundamental concerns of users gaining access of computer network services [12]: Integrity Availability Confidentiality Authentication Non-Repudiation Using these fundamental security requirements we identify the following security classes that mobile agents can possibly encounter from their executing hosts. Class 1: Integrity attacks [2] Tampering with the agent’s code, state or data implies that the integrity of the mobile agent has been violated. The motive may be malicious or accidental. There are two subclasses of integrity attacks: integrity interference information modification 1.1: Integrity interference [2] Occurs when the executing host interferes with the mobile agent’s execution mission, but does not alter any information related to the agent. Examples include the cases where the executing host transmits the mobile agent incorrectly does not execute the mobile agent completely transmits the agent to a host that is not specified in the itinerary executes the agent arbitrarily 1.2: Information modification [2] Occurs when the executing host takes actions against a mobile agent in an unauthorized way. Examples include altering, corrupting, manipulating, deleting, misinterpreting agents incorrect execution of the agent’s Code, data, control flow, status interfering with the interaction between different agents, and alters the communication between them for its own benefit. Class 2: Availability refusal [2] When a mobile agent arrives at a host it must be given privileges and access to resources that are necessary to carry out the task. Availability refusal occurs if an authorized mobile agent is prevented from accessing objects or resources to which it should have legitimate access. Mostly deliberate actions performed by the executing nodes in order to obstruct the agent. There are three subclasses: denial-of-service delay-of-service transmission-refusal 2.1: Denial of service [2] Occurs when the requested resources that the agent needs to accomplish its mission are denied. Examples include A malicious host bombards the agent with so much irrelevant information that the agent finds it impossible to complete its goals A malicious host refuses an agent a specific service 2.2: Delay of service [2] Occurs when the host lets the mobile agent wait for the service and only provide the service or provide access to the required resources after a certain amount of time. Examples include: A host keeps an agent deactivated until after it is too late to buy air tickets from a competitor 2.3: Transmission refusal [2] Occurs when a malicious host disregards the itinerary of the mobile agent and refuses to transmit the agent to the next host that is specified by the agent. Class 3: Confidentiality attacks [2] When the assets of the mobile agent are illegally accessed or disposed by its host, the privacy of the mobile agent is not respected and comes under attack. There are three subclasses of confidentiality attacks: Eavesdropping Theft Reverse Engineering 3.1: Eavesdropping [2] Occurs when the host spies on the agent and gathers information about the mobile agent’s information or about the intercommunication between agents. Although the host may not attempt to alter the agent, it can use this information for it’s own benefits. 3.2: Theft [2] Occurs when the malicious host not only spies on the agent, but also removes information from the agent. Theft and eavesdropping are closely related. The malicious host may also “steal” the agent itself, use it for its own purposes, or simply kill it. 3.3: Reverse Engineering [2] Occurs when the malicious host captures the mobile agent, analyzes its data and state in order to manipulate future or existing agents. Different to a theft attack, a reverse engineering attack enables the host to construct its own similar agents, or update the profile of information to which the agent gets access. Class 4: Authentication risks [2] In the case of the malicious host problem, the agent must be able to correctly identify and authenticate its executing host. The host may hide it’s own identity or refuse to present it’s own credentials which may jeopardize the intended goal of the agent. There are two subclasses of authentication attacks: Masquerading Cloning 4.1: Masquerading [2] Occurs when an executing host masks itself as one of the hosts on the agent’s itinerary when it is actually not on it. 4.2: Cloning [2] Occurs when a host creates an exact copy of the mobile agent. Each agent carries its own credentials in order to gain authorized access to the services of its executing hosts. Examples include: When a host creates a clone of the mobile agent this causes unique agent authentication problems. Malicious Host Detection Malicious Host Detection [9] Threat diagnostic, using AND/OR tree and risk analysis, is a mechanism to protect mobile agents against malicious host attacks. The method is based on analyzing the probable causes of mobile agent failure to perform its intended function. It uses the symptoms of different types of malicious host attacks and arranges them in a logical order depending on the expected outcomes. Malicious Host Detection [9] Mobile agents consist of three parts: code, a data state and an execution state that allows them to continue their program on the next platform [6]. Mobile agents transport sensitive information such as secret keys, electronic money, and other private data. We need to have a program that actively protects itself against an execution environment that possibly may divert the intended execution towards a malicious goal [11]. Threat Diagnostic AND/OR Tree [9] One analytical threat derivation technique is the threat tree approach [1] who’s goal is to prevent mobile agent failures due to malicious host attacks. Need to determine some symptoms for every attack class. Need to develop a threat tree using a relationship between the attacks and symptoms of these attacks based on the logical AND/OR relation in which attack can occur only if one the symptoms could occur. Then one can identify the attack type based on the symptoms it produces Protecting mobile agents from malicious hosts [9] Attacks against mobile agents are classified as active and passive attacks [4]. In a passive attack, the attacker does not interfere with the mobile agent, but only attempts to extract useful information from it. In active attacks, the attacker can arbitrarily intercept and modify code and data of the mobile agent. In the next table, we see the malicious host known attacks and the attack symptoms. Malicious host attacks Symptoms Spying out code Long execution time Temporary storage Open source code Open source code Long time before visit next host Deterioration in performance Alter agent Determine next execution step Watching the control flow Temporary storage Break code Update or change code, state Change behavior of agent Temporary storage Damaged or modification of data Open source code Break code Update or change code, state Long execution time Open source code Determine next execution step Temporary storage Open source code Watching the control flow Non-executable or delay execution Change behavior of agent Wrong results Open source code Break code Watching the control flow Wrong results Spying out data Spying out control flow Manipulation of code Manipulation of data Manipulation of control flow Incorrect execution of code Masquerading of the host Denial of execution Spying out interaction with other agents Manipulation of interaction with other agents Returning wrong results of system calls issued by the agent Malicious Host Detection [9] The objective is to allow an agent to execute security-sensitive computations even in an un-trusted execution environment. If this objective is not met due to the nature of an attack, then the agent will self-destruct. Figure 1: symptoms for every malicious hosts attack classes Ranking of Critical Malicious Host Attacks [9] Experiments were carried out with Java code to create a 1000 random malicious host generator (RMH). The RMH provided six malicious host attack classes with fourteen attack symptoms. Probability of Malicious Host Attack Cases Probable Attack 4 5 Malicious Host Attack Case Spying Manipulation Incorrect Execution of Code Denial of Execution Wrong Results 6 Masquerading 0.121 Rank 1 2 3 0.538 0.451 0.270 0.264 0.263 Countermeasures Countermeasures To Mobile Agent Security Threats [2] Countermeasures reduce the vulnerability of the mobile agent against malicious hosts. Mobile agent computing allows for both prevention and detection mechanisms. Prevention mechanisms aim to protect the mobile agent to such an extent that it becomes difficult, or at least very expensive to attack the agent detection mechanisms perform checks to discover possible security breaches We discuss four types of countermeasures based on trust, recording and tracking, cryptography and time techniques. Type 1: Trust-based computing [2] Prevention Tamper Resistant Hardware Trusted execution environment Detection Detection objects Type 2: Countermeasures based on Recording and Tracking [2] Prevention Anonymous itinerary Phone home Using a mobile agent system Detection Path histories Itinerary recording with replication and voting Mutual itinerary recording Server replication Reference states Type 3: Countermeasures based on cryptographic techniques [2] Prevention Sliding encryption Computing with encrypted functions Environmental key generation Digital signatures Detection Cryptographic Tracing Partial result encapsulation Partial result authentication codes Type 4: Countermeasures based on time techniques [2] Prevention Time sensitive agents Detection Time sensitive agents Threat Classes and Corresponding Suitable Countermeasures Table Threat Class Threat Subclass Suitable Countermeasures Integrity Attack Integrity interference Trusted execution environment Encryption Reference states Information modification Tamper resistant hardware Trusted execution environment Detection objects Itinerary recording8 Anonymous itinerary Reference states Phone home Encryption Environmental key generation Partial result encapsulation & authentication Cryptographic tracing Threat Class Threat Subclass Suitable Countermeasures Availability Refusal Denial of service Trusted execution environment Server replication Path histories Cryptographic tracing Delay of service Trusted execution environment Path histories Server replication Transmission refusal Trusted execution environment Server Replication Threat Class Threat Subclass Suitable Countermeasures Confidentiality Attack Eavesdropping Trusted execution environment Using a mobile agent system Encryption Environmental key generation Theft Tamper resistant hardware Trusted execution environment Itinerary recording Using a mobile agent system Sliding encryption Reverse Engineering Trusted execution environment Encryption Using a mobile agent system Time sensitive agent Threat Class Threat Subclass Suitable Countermeasures Authentication Risk Masquerading Trusted execution environment Digital signatures with recording & tracking methods Cloning Trusted execution environment Using a mobile agent system Encryption Time sensitive agents Conclusions We have described classes of security threats being imposed on mobile agents by malicious hosts integrity attacks, availability refusals, confidentiality attacks and authentication risks It appears that most of the available countermeasures focus on integrity attacks, while very few exist to counter the others. The creation of a trusted execution environment is the one measure that covers all the threats. Whether it is feasible to construct a trusted execution environment under Internet conditions remains to be seen. The malicious host problem is intriguing and offers many opportunities for further research. Conclusions One alternative to a trusted execution environment is to have protective measures added to the mobile agent code itself. In this case, the agent will self-destruct when an attack has taken place. The overhead encountered with this alternative approach is the main problem of applying it in all types of mobile agents. [9] Future Work Multi-Layer Protection of Mobile Code Complete Obfuscation Encrypted Execution Code Watermarking Encrypting Java Archives and its Application to Mobile Agent Security References: [1]: Edward G. Amoroso. Fundamentals of Computer Security Technology. Prentice-Hall International, Inc. 1994. [2]: Elmarie Bierman and Elsabe Cloete. Classification of Malicious Host Threats in Mobile Agent Computing. Technikon Pretoria and University of South Africa. 2002. [3]: William M. Farmer, Joshua D. Guttman and Vipin Swarup. Security for Mobile Agents: Issues and Requirements. MITRE. 1997. [4]: Warwick Ford. Computer Communications Security – Principles, Standard Protocols and Techniques. Prentice Hall,1994. [5]: Dan Gaudette. Mobile Agents: An Introduction. Lakehead University. October 28, 2003. References: [6]: Fritz Hohl. A framework to protect mobile agent by using reference states. University of Stuttgart, Germany. March 2000. [7]: Geetha .N. Kapse. Airline Ticket Information Retrieval Using Mobile Agents. California State University, Sacramento. April 29, 2003. [8]: Giang Nguyen, Tung Dang. Agent Platform Evaluation And Comparison. June 2002. [9]: Magdy Saeb, Meer Hamza, and Ashraf Soliman. Protecting Mobile Agents against Malicious Host Attacks Using Threat Diagnostic AND/OR Tree. Arab Academy for Science, Technology & Maritime Transport Computer Engineering Department, Alexandria, Egypt. References: [10]: T. Sander and C. Tschudin. Protecting Mobile Agents against Malicious Hosts. Mobile Agents and Security, Springer-Verlag, Lecture Notes in Computer Science. No. 1419, pp.44-60. 1998. [11]:Toms Sander and Christian F. Tschudin. Protecting Mobile Agent Against Malicious Hosts. International Computer Science Institute pp. 92-97, 1998. [12]: B. Schneier. 2000 Secrets and Lies. Digital Security in a Networked World. John Wiley & Sons, Inc. [13]: A.R. Tripathi, N.M. Karnik, T. Ahmed, R.D. Singh, A. Prakash, V. Kakani, and M.K. Vora. Design of the Ajanta System for Mobile Agent Programming. The Journal of Systems and Software. 2001.