EEL 5937 Mutable agents EEL 5937 Multi Agent Systems Lecture 21, March 23, 2003 Lotzi Bölöni.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
Protecting Software Code By Guards - by Hoi Chang and Mikhail J. Atallah “Many software-based mechanisms for protecting program code are too weak[…] or.
What are computer viruses and its types? Computer Viruses are malicious software programs that damage computer program entering into the computer without.
Software Engineering Techniques for the Development of System of Systems Seminar of “Component Base Software Engineering” course By : Marzieh Khalouzadeh.
Andrea Camesi, Jarle Hulaas Software Engineering Laboratory Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland.
Bending Binary Programs to your Will Rajeev Barua.
Mobile Code and Worms By Mitun Sinha Pandurang Kamat 04/16/2003.
Computer Security and Penetration Testing
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
Guide to Operating System Security Chapter 2 Viruses, Worms, and Malicious Software.
Chapter Nine Maintaining a Computer Part III: Malware.
Client/Server Architectures
Your Interactive Guide to the Digital World Discovering Computers 2012.
R. FRANK NIMS MIDDLE SCHOOL A BRIEF INTRODUCTION TO VIRUSES.
Henric Johnson1 Chapter 10 Malicious Software Henric Johnson Blekinge Institute of Technology, Sweden
Securing Windows 7 Lesson 10. Objectives Understand authentication and authorization Configure password policies Secure Windows 7 using the Action Center.
1 Chap 10 Malicious Software. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Basic Security Networking for Home and Small Businesses – Chapter 8.
Computer System Architectures Computer System Software
1 Autonomic Computing An Introduction Guenter Kickinger.
Life in a Dangerous World: Developing effective strategies against Virus, Worms and Other Threats Marshall Breeding Vanderbilt University
Malware  Viruses  Virus  Worms  Trojan Horses  Spyware –Keystroke Loggers  Adware.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Spyware and Viruses Group 6 Magen Price, Candice Fitzgerald, & Brittnee Breze.
Behavior-based Spyware Detection By Engin Kirda and Christopher Kruegel Secure Systems Lab Technical University Vienna Greg Banks, Giovanni Vigna, and.
Fundamentals of Database Chapter 7 Database Technologies.
3-Protecting Systems Dr. John P. Abraham Professor UTPA.
1 Vulnerability Analysis and Patches Management Using Secure Mobile Agents Presented by: Muhammad Awais Shibli.
Lecture 2 Title: Computer Software By: Mr Hashem Alaidaros MIS 101.
CHAPTER 14 Viruses, Trojan Horses and Worms. INTRODUCTION Viruses, Trojan Horses and worm are malicious programs that can cause damage to information.
1 Chap 10 Virus. 2 Viruses and ”Malicious Programs ” Computer “Viruses” and related programs have the ability to replicate themselves on an ever increasing.
Your Interactive Guide to the Digital World Discovering Computers 2012.
Chapter 10 Malicious software. Viruses and ” Malicious Programs Computer “ Viruses ” and related programs have the ability to replicate themselves on.
Here is a list of viruses Adware- or advertising-supported software-, is any software package which automatically plays, displays, or downloads advertisements.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
1 3. Computing System Fundamentals 3.1 Language Translators.
Chapter 5.4 DISTRIBUTED PROCESS IMPLEMENTAION Prepared by: Karthik V Puttaparthi
Made by : Mohamed kullab DR. Sanaa el sayegh.  Most personal computers are now connected to the Internet and to local area networks, facilitating the.
Interception and Analysis Framework for Win32 Scripts (not for public release) Tim Hollebeek, Ph.D.
EEL 6938 Mutable agents EEL 6938 Engineering Applications of Autonomous Agents Lotzi Bölöni.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
DISTRIBUTED COMPUTING. Computing? Computing is usually defined as the activity of using and improving computer technology, computer hardware and software.
App. TypeApp. Name Distributed or Parallel A parallel version of the Gaussian elimination application SAGE (SAIC's Adaptive Grid Eulerian hydrocode) Adaptive.
November 19, 2008 CSC 682 Use of Virtualization to Thwart Malware Written by: Ryan Lehan Presented by: Ryan Lehan Directed By: Ryan Lehan Produced By:
n Just as a human virus is passed from person from person, a computer virus is passed from computer to computer. n A virus can be attached to any file.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Dispatching Java agents to user for data extraction from third party web sites Alex Roque F.I.U. HPDRC.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Protection.
Understand Malware LESSON Security Fundamentals.
Role Of Network IDS in Network Perimeter Defense.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
EEL 5937 Mobile agents EEL 5937 Multi Agent Systems Lotzi Bölöni.
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Securing a Host Computer BY STEPHEN GOSNER. Definition of a Host  Host  In networking, a host is any device that has an IP address.  Hosts include.
Week-14 (Lecture-1) Malicious software and antivirus: 1. Malware A user can be tricked or forced into downloading malware comes in many forms, Ex. viruses,
Information Systems Design and Development Security Precautions Computing Science.
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
Cosc 4765 Antivirus Approaches. In a Perfect world The best solution to viruses and worms to prevent infected the system –Generally considered impossible.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
Security on the Internet Norman White ©2001. Security What is it? Confidentiality – Can my information be stolen? Integrity – Can it be changed? Availability.
The Holmes Platform and Applications
Outline What does the OS protect? Authentication for operating systems
Introduction to J2EE Architecture
Outline What does the OS protect? Authentication for operating systems
Chap 10 Malicious Software.
Chap 10 Malicious Software.
PLANNING A SECURE BASELINE INSTALLATION
Presentation transcript:

EEL 5937 Mutable agents EEL 5937 Multi Agent Systems Lecture 21, March 23, 2003 Lotzi Bölöni

EEL 5937 Self-modifying programs Every programmer learns at his first assembly language class that program code can be changed by simply writing to it. But then he also learns that self-modifying programs are a big no-no. Still… As early as 1975, the Microsoft Basic interpreter for Altair contained self-modifying code, introduced to overcome resource limitations (only 4K of space available for the interpreter). And many other unknown instances from early systems.

EEL 5937 Self-modifying programs today Current programming techniques frequently rely on self modifying applications, without making too much fuss about it. Just-in-time compilers (Java, SQL etc.) compile and optimize system independent code to the particularities of the system. Persistency systems: some of them rely on modifying source code or object code. Aspect oriented programming. Code weavers –AspectJ Debuggers and profilers. Code instrumentation for obtaining better quality traces, find memory leaks. Code obfuscators: rewrite the code without changing its execution characteristics such that they prevent reverse engineering of the code.

EEL 5937 More self modifying programs Automatic downloads, updates Skins, themes Plug-ins: –Audio and video decoders and encoders –Processing plug-ins (e.g. Photoshop) Self editing documents –E.g. Word documents with macros which generate the document through user interaction.

EEL 5937 The dark side of the self- modifying programs Viruses –Modify applications by attaching themselves to the source code. –They are capable of self-replication –The application will execute the virus code – in addition to the regular code. –Frequently viruses compress the application code such that they maintain the same size. –Recent years, eclipsed by macro viruses (typically relying on security problems in the Visual Basic implementations in Microsoft Outlook and Word. –Some viruses are capable of mutation, to thwart anti-virus programs based on virus signatures. Computer worms –Similar to viruses, they self-replicate, but they are also self- contained (they don’t need to be attached to programs to run).

EEL 5937 More on the dark side Trojan horses –Malicious programs, installing themselves into operating systems. –Sometimes they are used by remote users to get control of the computers. Buffer overflow security attacks –Are relying on the fact that unchecked C buffers can overflow into the executable code of the programs (or into adjacent data areas). Spy-ware –Spyware is computer software that aids in gathering information about a person or organization without their knowledge. –The most common use is to relay it to advertisers –It has been used by law enforcement to collect evidence against criminal suspects. –Frequently installed by viruses, trojans, or as a side-effect of the installation of programs (e.g. Comet Cursor, was installed as a side effect of installation of RealPlayer 8.0)

EEL 5937 Preliminary conclusion Our computing environment is, for good or bad, full with self-modifying programs. We need to study, understand and use them. Security implications are very complex. Software engineering techniques needs to be adapted. The identity of the programs / agents become questionable – especially when the mutation is coupled with mobility.

EEL 5937 Classifying mutable programs

EEL 5937 Weak mutability Weak mutability is the technique to extend the functionality of the application using coarse grain external components. The application still keeps its essential characteristics and functionality. This is the currently most accepted form of mutability in applications. –Examples include: Java applets, ActiveX controls, data format plugins, active plugins, skins and themes, applets and embedded applications, automatic upgrades etc. In many cases, weak mutability also implies the existence of well defined extension API’s (e.g. plugin API’s). Still, weak mutability can sometimes radically change the behaviour of the program: e.g. transform a web browser into a calculator.

EEL 5937 Strong mutability In case of strong mutability, applications are able to change their behavior in a radical manner. Strong mutability can be implemented at any level of granularity. At the machine-code level, typical examples are viruses and anti-virus programs. Source code level: example: aspect oriented programming –An example of this approach is the current approach taken by the JBoss Enterprise JavaBean team. Component level: runtime assembly and modification of programs (e.g. Bond) Of course, in the current world of just in time compilers and runtime recompilations, the distinctions tend to be blurry.

EEL 5937 Applications of mutability (scenarios)

EEL 5937 Reconfiguration for migration Mobile agents need to maintain their identity through the migration process. –Perform (preferably) the same task. –At the possible maximum performance. So what happens when we have agents migrating between hosts with high heterogeneity: –For example, from a Unix server to a cellphone? Performance is a multidimensional issue, with many complex relationships: –Memory vs. processing speed –Bandwidth vs. latency We can shoot for the lowest common denominator, but this limits the performance of the agent. Solution: reconfigure at the time of migration.

EEL 5937 Reconfiguration for optimal performance Similar to the case of migration: programs need to be configured, changed to achieve optimal performance on the system. Example: SmartApps system (L.Rauchwerger, Texas A&M University)

EEL 5937 SmartApps Run-time systems are too general. Little or no information flows from the application to the run-time system to allow the latter to fully tailor its services to the application. The overriding philosophy of SMARTAPPS is “measure, compare, and adapt if beneficial." That is, the application will continually monitor its performance and the available resources to determine if, and by how much, the application could improve its performance by restructuring. Then, if the potential performance benefit outweighs the projected overhead costs, the application will restructure itself and the underlying system accordingly. The adaptation can occur at various levels including selection of an algorithmic approach suitable for the current problem, run-time parallelization and other related compiler optimizations, tuning reconfigurable OS services (e.g. scheduling policy), and system configuration (e.g., selecting which computational resources to use). The SMARTAPPS framework provides performance monitoring and modeling components, as well as mechanisms for performing the actual restructuring, to integrate these levels of adaptation.

EEL 5937 Discovery agents Used in network discovery, software installation, grid environments etc. –Yes, in spying, too. At the moment when a discovery agent migrates to the remote host, it does not know its resources, characteristics, etc. One solution: –Send the most lightweight agent possible. –As the resources are discovered, step by step “build up” the agent on the remote system.