- What Happened?
- So, Are You Going to Show Us How to Break into Systems?
- A Survey of Vulnerabilities and Attacks
A Survey of Vulnerabilities and Attacks
We consider vulnerabilities in three separate categories: technical, social, and physical. Attackers may attempt to exploit vulnerabilities in one or more of these categories.
There are many types of attacks against the technology we use in computing. Some of these attacks are perpetrated through a modification of a program, script, or data, while others take advantage of the way a particular technology works. The following is a summary of common terms describing attacks that exploit various aspects of computing.
Trojan Horses. Hidden program or script, usually embedded in an authorized program or script, that causes undesirable or unauthorized behavior when the authorized program or script is executed. A particularly nasty example of embedding a Trojan horse or back door in a C compiler is noted in " Trusting Trust," pp. 801802, in the book Practical UNIX and Internet Security. This type of exploit is rather difficult to prevent. Various sections of Chapter 3 describe ways to reduce the likelihood of this type of attack. In particular, verifying checksums and Pretty Good Privacy (PGP) signatures on files that contain them is described in Chapter 3 and revisited throughout this book.
Back Doors. Hidden program, script, or funtionality embedded in a normal program or script, which ultimately allows unauthorized access to a system. Similar to Trojan horses.
Password Cracking. Guessing passwords or utilizing a tool such as Crack to guess passwords. Mitigating password-related problems is discussed throughout this book, and particularly in Chapters 4, 5, 6, and 11.
File Permissions and PATH Settings. Improper settings of either of these can cause systems to be compromised. Further discussion of this topic is found in Chapter 4.
SUID Scripts and Programs. Scripts or programs that run with the real or effective user identifier (UID) set to someone other than the user who invoked the script or program. Normally, the concern is with programs that set UID (SUID) to root. A large number of exploits that allow an unprivileged user to become root take advantage of this mechanism. Similar, though fewer exploits take advantage of the set group identifier (SGID). We take a look at these issues in Chapter 4.
Trusted Hosts. The use of trusted host files often permits an exploit of one system to spread throughout an entire network. (These files are discussed in Chapter 3.) We talk about replacement functionality for these files in Chapter 11.
Buffer Overflows. Failure to bound a read buffer in a program may allow exploitation of the system by writing into the system memory allocated by the read buffer. While writing a program to take advantage of unbounded buffers is difficult and requires special skills, many programs written by such skilled folks are readily available on the Internet. We take a further look at mitigating these types of problems in the section "Software Testing" in Chapter 3.
Scanning and Sniffing. Network scanning may allow an attacker to identify the operating system (OS) running on a particular system as well as the network daemons available. Network sniffing may allow an attacker to obtain confidential information. Network scanning and sniffing is also very useful for security testing and debugging. We discuss some of the tools available for these purposes in Chapters 3 and 17. Ways of reducing the effects of attacks perpetrated with network scanners are discussed in Chapters 10 and 17. Methods to mitigate the effects of attacks using network sniffers are described in Chapters 11 and 15.
Spoofing. A user pretending to be another user, a host another host, an Internet Protocol (IP) address another IP address,2 a domain another domain or addressall are examples of spoofing. These types of attacks and reducing their likelihood are detailed in the books Hacker Proof and Maximum Security, as cited in "For Further Reading." We discuss ways of alleviating these types of attacks in Chapter 15.
TCP/IP Attacks. Taking advantage of the way that Transmission Control Protocol (TCP) network connections work may lead to a variety of attacks. These types of attacks are quite difficult to prevent and detect. Many of the techniques we discuss in Chapters 10, 11, and 15 temper these attacks. However, you may also wish to consult Hacker Proof, as cited in "For Further Reading" for more details on TCP/IP attacks and what you can do to prevent them.
Session Hijacking. Whenever a user assumes control of a network session or connection. A special case of TCP/IP desynchronization attacks. See "TCP/IP Attacks," above.
Denial of Service. Any activity that prevents the normal use of system and network resources is considered a denial of service (DoS). Generally speaking, you can make DoS attacks much more difficult for the perpetrator, but you cannot prevent them. In Chapter 10, we discuss the xinetd replacement to inetd, which has the capability of preventing certain network-related DoS attacks.
Other Vulnerabilities. There are a variety of vulnerabilities in various network and system applications. Some of them are discussed throughout this book. Your best resource for continuing information about vulnerabilities in many applications is by keeping up to date (see Appendix A). We also note some resources in the section, "For Further Reading."
The weakest link in any Security Policy (see Chapter 2) is the people who are authorized to use the computing environment. Those who deliberately attempt to compromise a computer environment by attacking this weakest link are engaged in what is called social engineering. Of all of the aspects of security, this one is the hardest to control. While this aspect of security is outside the scope of this book, we note a few of the common types of social engineering attacks and cite additional general security references in the section "Web Sites."
Shoulder Surfing. As its name implies, this is the process of capturing sensitive information, such as a user's password, by looking over someone's shoulder.
Manipulation. This category of social engineering attacks is often employed to obtain sensitive information. Examples include pretending to be a system administrator or professing to be a high-level official of the organization in order to obtain sensitive information from unwary individuals within the organization.
It is often said that once physical security is compromised then the game is over. This statement reflects the fact that, if an unauthorized person gains physical access to some part of your computing environment, all the technical security solutions in the world cannot prevent such a person from perpetrating some form of attack. This topic is also not investigated in this book; however, we list a few potential vulnerabilities. A good reference site for this and social engineering security issues may be found at the home page of the International Information Systems Security Certification Consortium, Inc. [(ISC)2], as noted in the section "Web Sites."
System Access. Once physical access to a computer has been gained, everything from booting the system in single-user mode (see "A Note about LILO" for a discussion of restricting single-user mode access) to simply taking the system becomes possible. Physically restricting access to your most critical systems is highly encouraged.
Networking Issues. Networks are commonly implemented over electrically based media, such as 10/100 base T, radio frequency (RF) communications, microwave technology, and satellite communications. All of these forms of communication may be intercepted through various tapping techniques.3 The use of fiber-optic media substantially tempers this issue. See the (ISC)2 home page, as referenced in the section "Web Sites," for further information about this topic.
Other Physical Access Issues. There are a great many vulnerabilities associated with unauthorized physical access, ranging from pulling a fire alarm to looting as a result of a natural disaster. Check out the (ISC)2 home page, as referenced in "Web Sites," for further information about this topic.