Friday, September 20, 2019
A Cloud Based Immune System For Computers Information Technology Essay
A Cloud Based Immune System For Computers Information Technology Essay Cloud Computing is a Web-based processing, where services are hosted on the Internet. Resources like infrastructure, software, and information are provided to computers and other devices on demand over the Internet. It is in the 1960s that the concept of Cloud Computing first emerged as described by John McCarthy, computation may someday be organized as a public utility. From the 1960s to the 1990s, Cloud Computing has barely improved. In the 1990s, there was a major advancement of bandwidth that triggered the development of Cloud Computing. Salesforce.com, which came along in 1999, introduced the idea of distributing business software through websites. Four years later, Amazon Web Services expended the could-based services to storage, computation as well as human intelligence. Amazon Web Services then built the first Cloud Computing infrastructure that now offers worldwide access. C:UsersKanika AgarwalDesktopTECH COMMUNICATIONS300px-Cloud_computing.svg.png Cloud computing has already become an integral part of peoples lives today. A search engine that we are use every day is the simplest example. As a recent technology, only few researches have been done in this area. Cloud Computing is still an involving paradigm. Therefore, an accurate and comprehensive definition of Cloud Computing is currently unavailable. Cloud security involves the same fundamental issues as any computer security program. These include: restricting access to authorized users, maintaining the integrity of data, and ensuring the availability of data and services. When data and services reside on servers external to the campus, safeguarding those assets involves additional concern. Encrypting data transit is important, as are the service providers security procedures. Cloud computing typically uses server virtualization, and if the virtualization isnt secure, data from one segment of a server could escape into another area. Cloud based immune systems are very efficient in solving problems related to computer software which use the idea of cloud computing. Such softwares gather the data and information from the cloud to process its application. A new approach for managing bugs in computer software, Dimmunix, has been developed by a team led by Prof. George Candea at EPFL. Deadlock immunity is a property by which programs, once afflicted by a deadlock pattern, develop the ability to avoid future occurrences of that deadlock pattern. Overtime, programs with such an immune system progressively increase their resistance to deadlocks.Ã Dimmunix is a tool for giving software systems an immune system against deadlocks, without any assistance from programmers or users. It is well suited for general purpose software (desktop and enterprise applications, server software, etc.) and a recent extension allows application communities to collaborate in achieving enhanced immunity. It also enables entire networks of c omputers to cooperate in order to collectively avoid the manifestation of bugs in software. Literature Review The Dependable SystemsÃ LabÃ atÃ EPFLÃ inÃ SwitzerlandÃ hasÃ developed a new ITÃ tool,Ã calledÃ Dimmunix,Ã whichÃ allowsÃ programsÃ toÃ prevent futureÃ recurrenceÃ of bugsÃ withoutÃ anyÃ assistanceÃ fromÃ the usersÃ or programmers. The approach, called failureÃ immunity, starts workingÃ for theÃ firstÃ time a bug occurs. It savesÃ the signature of theÃ bugs,Ã and thenÃ observes how theÃ computer reactsÃ andÃ records a trace.Ã When theÃ bugÃ is about to attack again,Ã DimmunixÃ uses these trace to recognize the error and automatically changesÃ the executionÃ soÃ thatÃ the programÃ continuesÃ toÃ run smoothly. The use of cloud computing technology means the tool that can protect the entire network of computer bugs, even in an environment like the Internet. (Sparky3887, 2010) Ã WithÃ Dimmunix, theÃ web browserÃ learns how to avoid freezing when the bugs related to plug-ins happen.Ã MovingÃ a stepÃ further,Ã usingÃ theÃ latestÃ versionÃ ofÃ cloud computing technology,Ã they take an advantage of network and therefore immunize the entire communities of computer. DimmunixÃ couldÃ beÃ comparedÃ with theÃ humanÃ immuneÃ system. WhenÃ theÃ body is infected, the immune systemÃ developsÃ antibodies. Then,Ã whenÃ theÃ immune system encounters the sameÃ pathogen again,Ã theÃ bodyÃ recognizesÃ andÃ knowsÃ howÃ to effectivelyÃ combat theÃ disease. BasedÃ onÃ the principle ofÃ cloud computing,Ã the computersÃ participatingÃ inÃ the Dimmunix application community benefit from vaccines automatically produced whenever the first manifestation of a given bug occurs within that community. The new version of Dimmunix programs is safely protected from the bugs, even in environments as unreliable as the internet. At present, for the computer programmers, Dimmunix works for all programs used widely by private individuals and companies.Ã It is useful for programs written in Java and C / C + +, obtained on real systems software (JBoss, MySQL, ActiveMQ, Apache httpd, MySQL, JDBC, Java JDK, and Limewire).Ã (Carron-Gasco, 2010) If the browser crashes or the application gives up the ghost, it might be required to send an error report to the creator of the program.Ã Following the crashes, one would probably start to wonder if the error reports were even read. This is not the case for Dimmunix. It learns from crashes, bugs and errors without assistance from the user or for a programmer, to automatically prevent replication of the same deadlock in the future.Ã This approach starts to work for the first time a crash occurs.Ã Dimmunix saves a signature of the error, see how the computer reacts and tracks a record.Ã The next time the bug appears, Dimmunix will be able to recognize the error, step in and influence the application so as to not hit the same deadlock again. Dimmunix does not actually change the code or try to fix the bug.Ã It does not touch the program at all.Ã Dimmunix amends interleaving of program threads from below the program in question, so as to run the program without any deadlocks. With subtle manipulations of the program schedules, the deadlocks can be avoided without compromising the program code or influence the behaviour of typical applications. The Dependable Systems Lab boasts that Dimmunix has been proven to work on many real systems, using all kinds of programming languages such as MySQL, ActiveMQ, Apache and JDK forJava, while only introducing modest performance overhead. It has also proven itself to be effective in a test case of 100 errors, Dimmunix has managed to avoid all the deadlocks and run each test to completion. The latest version of Dimmunix goes one step further. Inspired by the cloud computing, the software uses the experiences and information from an entire connected community to share bug reports and fixes. This obviously opens the system up to a host of potential problems such as privacy worries and malicious denial-of-service attacks.Ã There is actually no concern for privacy, because the deadlock signatures solely contain a fingerprint of a segment of execution and absolutely no data, neither of the user nor of the program itself. As for malicious attacks, the new Dimmunix employs a quick verification technique that allows each Dimmunix runtime to receive a deadlock signature and check it before actually employing it to avoid hangs. (Brown, 2010) Results and Discussion Case Study The concept of cloud computing evokes different perceptions in different people. The word Cloud itself reflects the idea of how it works. In cloud computing, processing is not in a specified, known or in a static place. Cloud computing is still in the phase of a developing technology. Currently there have been some attempts to use this technology in solving the immunity problems in modern computers. Cloud based immune systems are very efficient in solving problems related to computer software which use the idea of cloud computing. Such software gathers the data and information from the cloud to process its application. These include: Cloud software development platform: software platform to host cloud-based enterprise applications such as Windows Azure, Google Software used to maintain cloud based infrastructure (Servers, storage, security and databases) like Amazon Web services and Sun Microsystems etc. These software integrate the technique of cloud computing in the background to process their applications. The method of how this software uses this particular technique will be discussed below by randomly choosing a simple software more commonly known as Windows Azure. Azure platform lessens its emphasis on the desktop by shifting more resources to web-based products. It just uses the end user computer to run the software. All the data and information are stored in the cloud. By doing so it has an access to vast amount of data stored in the cloud. Since it is open to a vast arena of cloud, the software has the ability to counter itself from errors that occur as it runs. (Tim Mther, 2009) 3.1 Problems in Cloud Computing There are a large number of problems/errors that the cloud based software faces in the current era of computing. These errors can be divided into two main categories. They are viruses and issues due to immature technology. Some of them are listed below: Kernal mode rootkits: This uses the hypervisor technology to run. It affects the system by installing itself as a hypervisor below the OS. By doing so, it becomes more difficult to detect. Viruses: There are two kinds of viruses. They are non-resident and resident viruses. Non-resident resident viruses consist of finding and replicating modules. Finder modules find new files and call the replicating module to infect that particular file. Resident viruses, when executed, load into the memory and execute when a particular file of its interest start to run. (wikipedia, Computer Viruses) Lock overhead: the extra resources using for locks like memory space allocated for locks, CPU time to initialise the lock and destroy a lock etc Lock contention: This occurs whenever one process attempts to acquire a lock held by another process. Deadlock: The situation when each of the two tasks is waiting for a lock that another task holds. Unless something is done, the two tasks will wait forever. (Wikipedia) The above mentioned errors are some of the vulnerabilities that can be treated using cloud based immune systems. Here, the deadlock will be studied in detail in order to describe how it can be resolved using cloud based systems. The pros and cons of the particular system will also be discussed below. Deadlock A deadlock refers to a specific condition where two or more demanding performance are waiting for each other to free a resource, or many actions are waiting in a circular chain for resource. This results in both the programs ceasing their function. When we consider multiprocessing,Ã in which many processes share a particular type of mutually exclusive resource, deadlock is commonly known as a software lockÃ orÃ soft lock. It is tremendously vulnerable in the case where multiple threads coexist in the same address space of a system. Dead lock remains the ultimate bug when there is a trade-off among two problems. The deadlocks are troubling mainly because there is noÃ Ã solution to avoid them and only possible way to attack such a situation is by having a deadlock detector and a breaking mechanism or system. (Deadlocks, 2011) There are four essential and adequate conditions known as Coffman ConditionsÃ for a deadlock to take place. These include: Mutual exclusionÃ condition-A particular resource that cannot be used by more than one program at a time Hold and waitÃ condition-Process which holds some resources but at the same time requests for new ones NoÃ pre-emptionÃ condition-Resources cannot be forcibly removed from a process holding them but can only be released by the explicit action of the process. Circular waitÃ condition: More than one processes form a circular chain where each process waits for a resource while the subsequent process in that chain holds. 3.2.1 Avoidance or Prevention Removing theÃ mutual exclusionÃ condition is one way to avoid the dead lock. Another way is by requiring a process, to request for all the resources they will need before starting up. As it will not be an efficient use of resources, it is better to use algorithms such asÃ lock-free and wait-free algorithmsÃ ,Ã optimistic concurrency control and solution, that permit pre-emption and avoid circular waits. Dead locks can be avoided if certain information about processes is accessible in advance, but for many systems, it is impossible to know the required resource information well in advance. (Detecting and Ending Deadlocks) 3.2.2 Technology against deadlock occurrence Algorithms which are used mainly to avoid the dead lock are: Bankers algorithm-This is used for the dead lock avoidance but requires the advance knowledge of resource limit, which is impossible most of the time. Wait/Die and Wound/Wait algorithms-This uses a symmetry-braking technique. It can avoid the dead lock occurrence but it is only by allowing one of the processes to become an unsafe condition. In most deadlock detections, process restarts are used by employing an algorithm to remove the deadlock by tracking resource allocation and process states. It is because detecting the possibility of a deadlockÃ beforeÃ it happen is very difficult. The deadlock detection techniques such as Deadlock Checker Tool and Model checking and detecting and Ending Deadlocks are examples. (Deadlocks, 2011) Model checking-It constructs a finite state -model on which it performs analysis to find out all possible terminal sets in the model, in which each of them represents a dead lock. Deadlock Checker Tool-It performs a variety of checks on parallel programs written in CSP in order to establish freedom from deadlock. Detecting and Ending Deadlocks-The SQL Server Database Engine detects deadlock cycles within the Server and chooses one of the sessions as a deadlock victim to be terminated. 3.3 Dimmunix : A Tool for DEADLOCK Operating reliably without any effect by bugs is one of the biggest challenges in Cloud Computing. Prof. George Candea and Cristian Zamfir worked on a project to solve this problem and came up with a solution, which was developed by DSL (Dependable Systems Lab) at Ecole Polytechnique FÃ ©dÃ ©rale de Lausanne (EPFL) in Switzerland. More commonly known as Dimmunix, it has a self-healing mechanism and is called failure immunity. It studies the failure which occurs due to bugs for the first time and saves bugs digital signature. It also observes how a computer reacts subsequently in order to overcome the failure and trace the track of the reaction. Dimmunix functions on an on-going basis. When the program threads make the method calls, Dimmunix observes its order in which they occur. It then identifies the specific method-call sequences that results in dead-lock. Using the identified method calls and program-execution processes, Dimmunix traces and stores it as a digital signature. (A Cloud-Based Immune System For Computers).When the bug tries to enter the system again, Dimmunix uses this signature to identify the bug and traces the track to prevent the system from deadlock which occurred in the past by the same bug. It does so by making changes in the sequence in which threads run, to prevent the conflicts that can cause deadlock in the host system. So the system continues to work smoothly without any interruption as it worked before the bug entered the system. (Failure Immunity Mechanisms for Embedded Software in Consumer Devices). Dimmunix is comparable with our immune system, where both have similar functions. When we are infected, the human immune system develops antibodies to protect us from infectious agents. If our body encounters the same agent again, the immune system will recognize the pathogen and fight effectively to overcome the illness. Dimmunix also reacts for bugs in the same manner as how the immune system reacts for pathogen, and prevents system from deadlocks which has been described in the above section. (Deadlock). Dimmunix need no assistance from programmers or users and can act as an immune system in software systems to act against deadlock. For general purpose, softwares such as desktop OS, server software, and enterprise applications, Dimmunix is well suited. A recent extension of Dimmunix can even allow the application communities to collaborate in achieving superior immunity. (Garber) Quoting the lines of Professor George Candea, director of Dependable Systems Lab We do not touch the p rogram at all. Dimmunix modifies the interleaving of program threads from underneath the program in question, so as to essentially trick the program into running without deadlocking.Its almost as if the program is rolling down the hill, heading for a collision with a tree, and with a slight impulse from the side you alter the programs trajectory just enough for it to avoid hitting the tree and continue running as if it was never in danger. (wired.co.uk, 2010) Dimmunix is a prototype tool which does not need a central sever, platform-independent, and even runs on mobile devices. It has been built to work with application written in programming languages like Java, C and C++. It is,also, effective on various systems that consist of MySQL ,SQLite databases, Limewire peer to-peer file-sharing client JBoss application server, Apache ActiveMQ message broker, and Java Development Kit(JDK). 3.3.1 Dimmunix and Cloud computing technology After the Dependable Systems Lab of Switzerland developed the technology called Dimmunix, it has undergone various kinds of experiments in enhancing that particular technology. One such experiment is the incorporation of cloud computing into the Dimmunix. What is cloud computing and how is it being integrated into Dimmunix? These are the two important questions in this scenario. Cloud computing is computation, software, data access and storage services that do not require end-user knowledge of the physical location and configuration of the system that http://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Cloud_computing.svg/300px-Cloud_computing.svg.png delivers that services (wikipedia, cloud computing). Figure X shows the cloud computing conceptual diagram. Cloud computing is actually a byproduct of the ease of access to remote computing sites provided by the internet. It always works in the form of web based application or tools. End users can use these tools through internet web browsers in such a way that they were installed locally on their own computers. The key characteristics of cloud computing is that the cloud is in the cloud itself. That is the processing of the data is not taking place in a specified static places. When Dimmunix integrates this technology, it can do wonders. In cloud computing, once Dimmunix is installed in the computers, it acts like a vaccine for the entire system in cloud. Once the signature of a bug is saved, it will be exchanged among other Dimmunix servers in the cloud and the entire cloud will be protected from a deadlock. The deadlocks need not occur in each and every computer in the network for the first time. If it has occurred in any workplace in a cloud, it is enough to protect the cloud from the same deadlock again. (Dimmunix: A crowdsourced immune system for computers) This integration of cloud computing in Dimmunix opens the system up to a host of potential problems such as privacy worries and malicious denial of service attacks. Professor Candea assures that there is actually no concern for privacy, because the deadlock signatures contain solely a fingerprint of a segment of execution [and] absolutely no data, neither of the user nor of the program itself. As for malicious attacks, the new Dimmunix employs a quick verification technique that allows each Dimmunix runtime to receive a deadlock signature and check it before actually employing it to avoid hangs. (wired.co.uk, 2010) Advantages Users can install the Dimmunix on individual computers as an efficient immune system against deadlock as it does not need a central server for its function. According to Researcher George Candea, assistant professor and director of EPFLs Dependable Systems Lab, Dimmunix technology is platform-independent and could even run on mobile devices. (Garber) Disadvantages Dimmunix is not user friendly as it cannot be used by everybody who is a computer literate. Dimmunix cant prevent the deadlock occurrence. It needs a particular dead lock to occur at least once in order to develop the immunity. That is, the system must experience a bug-related deadlock before the tool can create defences. It can be considered as Dimmunix key weakness. Another incapability of the Dimmunix is that, its particular approach to handle dead lock situations does not work with deterministic bugs. It is because deterministic bugs can cause crashes under specific circumstances regardless of thread schedules. (Garber) Suggestions Currently Dimmunix is only being used to solve deadlock problems. But as seen in section x, there are a lot other bugs out in this computer world. It would be better if the technology can be developed in such a way that it can used to apply as an immune system to such a vast variety of problems.