Until a few years ago Internet security wasn't even recognized as a need. The culture of the Internet encouraged the sharing of data and ideas; the common goals of Internet users made boundaries and restrictions unnecessary--or so it seemed to many at the time. Originally, the people on the Internet were the people who built the Internet, but as time passed and the Internet became more useful and more reliable, they were joined by other people at their companies and universities--and then by other companies and universities. With fewer common goals and more people, the Internet became a much more dangerous place. Although various sorts of mischief were quite common, these incidents got little publicity, and most people who thought of computer security problems at all assumed that such problems involved teenagers breaking into banks with modems. The Internet Worm changed all that. In November of 1988 the Internet linked about 60,000 computers, and a good many of them found themselves under attack. Even those not affected by the Worm still had to be checked and rechecked to be sure they were safe from infection. Estimates of the total price tag for the incident are in the hundreds of millions of dollars. The Worm was the first Internet security incident to hit the nightly news. People who had been working in obscurity suddenly found TV camera crews in their machine rooms. The issue was no longer whether you needed to secure your computer systems--it was how you were going to secure them. In the years since the Worm, there has been an explosion in Internet usage--and a corresponding explosion in new types of Internet attacks. Consider a few recent reports from the front: * Over the years, computational physicist and computer security researcher Tsutomu Shimomura of the San Diego Supercomputer Center has accumulated an invaluable archive of security tools and documentation of system security holes. On Christmas Day 1994 an intruder copied the files from his archive. Two days later Shimomura received a voice mail message, bragging about the intrusion and threatening his life. Shimomura reacted aggressively by setting up stealth monitoring posts and tracking the intruder's further break-ins at telephone company switching centers, companies like Apple and Motorola, the Well, and Netcom (from which the intruder copied 20,000 credit card account numbers). Shimomura concluded that the intruder was computer criminal Kevin Mitnick, who had been sought for years by law enforcement. After an intensive hunt conducted with the cooperation of the FBI and local telephone companies, Mitnick was tracked down in Raleigh, North Carolina. * In the fall of 1994 two writers, Josh Quittner and Michelle Slatalla, were the target of an "electronic mail bomb", apparently in retaliation for an article on the cracker community they'd published in Wired magazine. Someone broke into IBM, Sprint, and the writers' network provider and modified programs so their email and telephone service was disrupted. A flood of email messages so overwhelmed their network service that other messages couldn't get through; eventually their Internet connection was shut down entirely. Their phone service also fell victim to the intruders, who reprogrammed things so that callers were routed to an out-of-state number where they heard an obscene recording. * More and more sites are falling victim to password sniffers. The CERT (Computer Emergency Response Team) reports that as many as 100,000 sites were targeted by password sniffers in 1994. (We'll explain what sniffers do later in this article.) Insidious attacks like these have made computer security one of the most pressing problems facing Internet users in this decade. O'Reilly & Associates' line of computer security books looks closely at the risks of using the Internet and the measures you can take to reduce these risks. Internet Risks What kinds of security risks do you take on the Internet? Here's a sampling: Password Attacks Some years ago, before the Worm raised our consciousness about security risks, it was almost laughably easy for intruders to break into almost any system. Many sites didn't use passwords at all, or offered guest or admin passwords that users could share. Users who did have their own passwords routinely chose passwords that could be easily guessed (the names of their children or pets, their birth dates, their license plates). Because nobody bothered to encrypt files, an intruder who broke into the system could then invade almost anybody's files, take a copy of the /etc/passwd file, and later run it through a password cracking program that quickly revealed the passwords of other users in the system. Once deciphered, these purloined passwords became bartering chips among underground groups that shared technical information about product vulnerabilities and site-specific security holes. Most systems and users have tightened up their security in the wake of the Internet Worm. Guest and admin passwords have become rarer, but password security as a whole is still laughable in most places. Group accounts abound, and invariably at least 10 percent of the passwords users select are poor (the only way to make them better is to install a password program that forces good passwords). Readily available password dictionaries, cracking programs, and password sniffing combine to make passwords very vulnerable. How can you avoid password attacks? Educate the users on your system so they pick better passwords. Consider using system-generated passwords or, better still, stronger types of authentication, such as one-time (nonreusable) passwords. Password Sniffing Attacks The recent wave of password sniffing attacks on the Internet makes the strength of your passwords almost irrelevant. How does password sniffing work? In many network setups, it is possible for any machine on a given network to hear the traffic for every machine on that network. This is true for most Ethernet-based networks, and Ethernet is by far the most common local area networking technology in use today. This characteristic of Ethernet is especially dangerous because most of the protocols in use today are unencrypted. As a result, the data sent and received is there for anybody to snoop on. This data includes files accessed via network file systems, passwords sent to remote systems during Telnet, FTP, and rlogin sessions, electronic mail sent and received, and so on. A password sniffer is a program that takes advantage of this characteristic to monitor all of the IP (Internet Protocol) traffic on its part of the network. By capturing the first 128 bytes of every FTP or Telnet session, for example, password sniffers can easily pick up your user name and password as you type them. Password sniffers may use programs provided for network debugging as building blocks, or may be written to use the services directly. Special-purpose password sniffing toolkits are widely available to attackers. The danger of password sniffing attacks is in their rapid spread. Favorite targets for sniffers are network providers and public access systems where the volume of Telnet and FTP connections is huge. One sniffer on large public access systems can collect thousands of sniffed account names and passwords, and then compromise every system accessed. Even if your systems are as secure as possible and your user passwords are not guessable, you can be infected by a packet sniffer running at any site that your users can log in from, or at any site their packets will cross to get to you. Password sniffing can happen anywhere. Many people make the mistake of assuming that because they're using a well-known, commercial service, there is no danger in remotely accessing their own machines across the network. In fact, the commercial services are prime targets, and most of them are periodically compromised. In any case, a connection may cross a large number of intermediate networks, which each represent unknown risks. How can you avoid being sniffed? In general, you can't and still provide remote network access. If your password ever passes across a network which might be insecure--electronically or physically--it is likely to be captured. What you can do is ensure that an intruder who gets your password can't use it. One-time (nonreusable) passwords are probably the most effective way. Using a freely available program like Bellcore's S/Key may not keep your passwords from being viewed, but because these passwords are used only once, it doesn't really matter if they are seen. NFS and Other Data Service Attacks A number of services exist to allow computers to share information with each other and to allow users to move easily from computer to computer. These services are an important part of the power of UNIX networks. Unfortunately, they are often exploited by attackers, who convince these services to share more information than intended or to share it with unintended recipients. Often this occurs because designers were concerned with local area network access and did not realize that services might also be available across wide area networks to other organizations. The Network File System (NFS) and Network Information Service (NIS) are notoriously easy ways to attack a system. NFS allows systems to share files over a network by letting a client mount a disk on a remote server machine. NIS maintains a distributed database of password tables, group files, host tables, and other information that systems on a network can share. Many sites choose not to support NIS at all, and some avoid even NFS. However, these services are not a problem if they are run in a protected environment (for example, behind a fire wall). If you haven't properly protected your site, an attacker may be able to simply NFS-mount your filesystems. The way NFS works, client machines are allowed to read and change files stored on the server without having to log into the server or enter a password. Because NFS doesn't log transactions, you might not even know that someone has full access to your files. NIS is most often used to distribute password information, and most implementations of NIS provide absolutely no control over which machines can request information. As long as an attacker can guess the name of your NIS domain and can send an NIS request to your NIS server, that attacker can get a full copy of your password information (including encrypted passwords), even if you are running shadow passwords and the passwords are not in the /etc/passwd file. The attacker is then free to crack your passwords at leisure. NFS, NIS, and other services have additional security vulnerabilities, both obvious and not so obvious. For example, NFS has very weak client authentication, and an attacker may be able to convince the NFS server that a request is coming from a client that is permitted in the exports file (the file that lets you specify which file systems can be mounted via NFS, and which other machines can mount them). There are also situations in which an attacker can hijack an existing NFS mount. (See the discussion of hijacking attacks later in this article.) Denial of Service Attacks There are two classic types of denial of service attacks, both particularly devastating when used on a network. Earlier in this article, we described an "electronic mail bomb" that shut down service by flooding an email mailbox. That's one type of denial of service--the same type performed by the Internet Worm. What happens here is that an intruder so floods a system or network--with messages, processes, or network requests--that no work can be done. The system or network spends all its time responding to messages and requests, and canUt actually satisfy any of them. In the other category of attack, equipment or services are completely shut down or disabled. With ICMP attacks, which are becoming more common on the Internet, an attacker sends an ICMP message to a host or router, telling it to stop sending packets to all or part of the network. How can you prevent denial of service attacks? The best defense against an ICMP attack is to install a firewall that ignores or filters ICMP messages. In general, though, denial of service attackers are tough to prevent--electronically, as well as in real life. If you accept things from the external world--electronic mail, telephone calls, or packages--it's possible to get flooded. The famous college prank of ordering a pizza or two from every pizzeria in town to be delivered to your least favorite person is a form of denial of service. (It's hard to do much while arguing with 42 pizza deliverers.) In the electronic world, denial of service is as likely to happen by accident as on purpose. (Have you ever had a persistent fax machine try to fax something to your voice line?) The most important thing is to set up services so that if one of them is flooded, the rest of your site keeps functioning while you fix the problem. Fortunately, denial of service attacks are not terribly popular. They're easy enough to be unsporting; they tend to be simple to trace back--and therefore risky to the attacker; and they don--t provide the attacker with the information or the ability to use your computers that is the payoff for most other attacks. Intentional denial of service attacks are the work of people who are angry at your site in particular--and at most sites, there are very few such people. IP Attacks Attackers sometimes take advantage of a little-used option--the source routing option--in the IP header of packets being sent across the Internet. Even systems protected by firewalls have fallen victim to these types of attacks. Certain kinds of firewalls work by keeping packets from being routed from an outside system into your internal network. In normal packet routing, packets are routed in the most efficient way from source to destination. However, if the source routing option is specified for a packet, it shows the particular route that the packet is to follow. Unfortunately, turning off the regular routing of packets from the Internet to an inside network doesn't turn off the routing of source-routed packets on BSD systems. At tackers have exploited this peculiarity and used it to penetrate systems that are expecting their firewalls to keep all such outside packets out. Another attack, which surfaced for the first time in early 1995, involves attackers creating packets with false IP addresses. By exploiting applications that use authentication based on IP addresses (such as the so-called Berkeley RrS commands, which include rlogin, rsh, and rcp), intruders have been able to gain access. Most of the attacks take advantage of the ability of intruders to guess sequence numbers associated with network connections and the acknowledgments passed between machines. These attacks are technically tricky, because the intruder doesn't receive the responses to the packets it sends; when they succeed, however, the payoff for these attacks can be high. (The attack on Shimomura described earlier was this type.) How can you prevent these attacks? Firewalls are the only sufficient defense. You want to look for packets on your external interface (that is, packets coming from outside your internal network) that claim to have internal source IP addresses and for packets that have source routes specified. You can do this by installing an appropriately configured packet filtering router. It's also best to avoid address-based authentication completely, if you can. Hijacking Attacks Another emerging Internet threat involves the hijacking of any open terminal or login session from users on the system. Once intruders have root access on a system, they use a tool that lets them dynamically modify the UNIX kernel. This allows them to take over terminal connections after any authentication procedures have been completed. Even the strongest authentication (e.g., one-time passwords) are irrelevant because the attack occurs after the user successfully logs in. (This is another way that your systems can be compromised from any system that your users can log in from.) This sort of attack has always been possible, but is easier to do and harder to detect with the new tools. Various forms of hijacking--from the completely unsubtle method of waiting for someone to get up for a cup of coffee without locking their screen, to the devious exploitation of window systems--have long been the most popular attacks at universities and other places where people may legitimately have access and yet simultaneously be hackers. In the past, these attacks have mostly been aimed at users at the site where the attacks were taking place. The new attacks are aimed at getting from a compromised system to an otherwise uncompromisable system across the Internet. How can you prevent this attack? Once intruders have root access, you can't. So keep them out to begin with. Security Solutions Getting discouraged about connecting to the Internet or doing any real work on it? Don't be. There are ways to protect your system against the threats we've described. There isn't a magic Internet security bullet. The best security solution isn't a simple solution, but a collection of strategies and techniques. Your own site's security philosophy, the characteristics of your users, the type of data you're protecting, and your budget all help determine the right approach for you. Here are some suggestions. Enforce Good Host Security With host security, you enforce the security of every machine at your site separately, and you make every effort to learn about, and plug, any security holes that your particular operating system presents. Although host security isn't a complete solution to Internet risks--there are simply too many machines, vendors, and operating systems to be sure that you've successfully been able to secure them all--you need to make sure that every system on your local network is as secure as you can make it. Systems exposed directly to Internet traffic need especially strong host security. In Practical UNIX Security, Simson Garfinkel and Gene Spafford offer hundreds of specific suggestions for host security and also discuss a wide range of network security problems and solutions. This book has become the classic security reference for UNIX users and system administrators. Encryption of Files and Email If you use good encryption, then even if an intruder gets access to your files and messages, he won't be able to make sense of them. There are many types of encryption programs. Make sure to use one that uses a strong cryptographic algorithm. Although it's been around a long time, the Data Encryption Standard (DES) is still a pretty sound private key encryption algorithm, particularly if you use a variant, like Triple-DES. IDEA, RC2, and RC4 are other good private key algorithms. The RSA algorithm is the premier public key algorithm. It's a part of Lotus Notes, Novell NetWare, and hundreds of other products. Diffie-Hellman and Merkle-Hellman are other good public key algorithms. PGP is a program that implements the RSA algorithm and is freely available on the Net (for noncommercial use within the United States). In PGP: Pretty Good Privacy, Simson Garfinkel describes how to use PGP to encrypt files and email and how to "sign" your email with an unforgettable digital signature, proving to recipients that your messages were sent by you and weren't modified during transmission. The book also contains a fascinating, behind-the-scenes look at the development of Phil Zimmermann's controversial program and the issues surrounding privacy, the export of encryption programs, and cryptography patents. Use Firewalls A firewall restricts access from your internal network to the Internet--and vice versa. A firewall may also be used to separate two or more parts of your local network (for example, protecting finance from R&D). The dictionary definition of "firewall" is: "A fireproof wall used as a barrier to prevent the spread of a fire." A fire may damage, or even destroy, one section of a building, but a firewall may keep that fire from spreading to other sections of the building; at the very least, it may slow down the spread until the fire can be brought under control. On computer networks, firewalls serve an analogous purpose. A security problem somewhere on a network--for example, eavesdropping, a major break-in, or a worm program--may do a great deal of damage to one portion of the network. But if a fire wall is in place, it can isolate what's behind it from the security problem. Without firewalls network security problems can rage out of control, dragging more and more systems down. Once one system on a network has been compromised, it's often trivial to compromise the others. Shared system resources, homogeneous services, and trust policies may all contribute to the spread of a security problem from one system to another. Think of a firewall as a checkpoint; all traffic is stopped and checked at this point--usually, at the perimeter of your internal network, where you connect to the Internet (see the figure above). Your own site's security policy determines what happens at the checkpoint. Some requests (e.g., requests for email service) might pass right through. Others (e.g., requests for potentially dangerous service like NFS or NIS) might be turned away. Still others (e.g., requests for FTP file transfers) might be routed to proxy services, which satisfy the requests without directly exposing internal systems. If your site is connected to the Internet, you may want to check out our forthcoming book, Internet Security Firewalls, by D. Brent Chapman and Elizabeth D. Zwicky. It contains the details of various firewall approaches and architectures, how you can build packet filtering and proxying solutions at your site, and how to configure Internet services to work with a firewall. Use Secure Procedures Purely technical solutions go only so far. Just as there is a human element to committing computer crimes, there is a human element to preventing them. Be smart about prevention, and make sure your organization enforces good security procedures in everything they do. Physical security (e.g., using access cards for entry, protecting network cabling, etc.), personnel security (e.g., removing the accounts of people who leave your organization), and operational security (e.g., varying the schedules for changing passwords, checking log files, etc.) are less technical, but nevertheless important, parts of Internet security. Two books provide valuable information on understanding and establishing security at your site. Computer Security Basics, by Deborah Russell and G. T. Gangemi, is the first book to read if you want to learn what computer security is all about. It contains the basics of access control, encryption, trusted systems, and physical security, as well as a history of computer security developments, U.S. Government security programs (such as the "Orange Book"), and a complete glossary and resource summary. Computer Crime: A Crimefighter s Handbook, by David Icove, Karl Seger, and William VonStorch, is aimed particularly at those who need to investigate computer crimes--law enforcement, managers, and others. It describes targets, criminals, methods, and security measures you can take to prevent them. It also details the way to detect, investigate, and prosecute computer crimes, and it includes the complete text of all computer crime laws, both federal and state. president of SAGE (the System Administrator's Guild). She has been involuntarily involved in Internet security since before the Worm. ---------------------------------------------------------------------------- Comments are appreciated to: Markus HŸbner. Back to the Security-Page