A-to-Z Index

Computing Homepage

Information Technology Help Desk

Mon -Thu: 8:00am -9:00 pm
Friday: 8:00am - 5:00pm
Saturday: Closed
Sunday: 3:00pm - 9:00pm

(when classes are in session)

Exceptions for the year


 

 

How They Break In

Let us assume that we don't purposely give our passwords to strangers, let them trick us into doing it, or let them have physical access to our computer. How then, do they get in? 

Motivation and Reconnaissance

Quite often, we're tempted to think that nobody would be interested in breaking into our personal computer. Today, however, that "personal" computer is part of a world-wide network. We use it to access sensitive resources like financial systems, email systems, and special purpose systems related to our personal or business lives. Control of our "personal" computer means control over those accounts.

Having control over our computer may allow an outside party increased access to others on our network. If our computer is behind a firewall, it may have direct access to other systems behind the same firewall. Software can be run on our computer that allows it to intercept and read network traffic between other, unrelated systems. Even with a modern switched network, this type of network sniffing is possible. So a compromised "personal" computer may allow the compromise of data, accounts, and computers of others on the network.

Even if the computer is only used for game playing, it is still a valuable commodity simply because it is connected to the network. Having control of it would allow a criminal to take actions on it that could lead to their apprehension if they did it from their own computer. Quite often, major compromises are performed through a string of compromised systems helping to protect the identity of the perpetrator(s). Compromised computers were responsible for the widespread distributed denial of service (DDOS) attacks that brought down several major web sites in February 2000. Therefore, even if our computer has no valuable information, it is an attractive base of operations to those who perform computer crime. 

Finding our computer, or vulnerabilities on our computer, is quite easy these days. In an academic environment or at home, there are quite often very few network access controls. Anyone around the world can touch our computers in an almost infinite variety of ways. While this provides maximum functionality and communications capabilities, it also means our computer is subject to remote scans and probes. Information gathered by these probes combined with organizational data gleaned from web sites and other public resources, makes it relatively easy to discover and exploit vulnerable computers. Often the scans and compromises are accomplished with easy to use, automated software allowing relatively non-technical people to find and compromise vulnerable computers without expending much effort.

Defense against this type of reconnaissance consists primarily of allowing only as much access as necessary to achieve the goals of the organization.

 

Non-technical Means - Social Engineering

Some of the same types of behavior used to commit fraud offline are used online to gain access to computer resources. For more information, read

The "Social Engineering" of Internet Fraud
Jonathan J. Rusch
United States Department of Justice

 

Hostile Software

The power, flexibility, and versatility of our computers comes from their ability to be programmed to do whatever we desire (given enough time and clear, unconflicting goals). Desktop systems, in particular, are designed to allow the operator to take whatever action they desire. While this provides immense power, this power is also available to hostile software that may be inadvertently run. If someone can convince us or force us to run their software on our computers, our computers become their computers. 

Hostile software may be customized to target an individual system or organization but usually what we hear about is packaged and widely distributed. Viruses, trojans, worms, rootkits, exploit scripts, and other names have been given to various types of hostile software depending upon its functionality and method of spreading. It doesn't really matter how its categorized though. We don't want it run on our computer by any name. 

If we run hostile software on most desktop systems, it can do anything we can do at the keyboard and much more. It can read and modify files, send email, or sit quietly collecting information. It can cover its tracks so we don't know its there. It can spread itself to other files or computers. It can allow others to access our computer and remotely control it. It can circumvent any security measures we place on our computer including anti-virus software, personal firewalls, and strong authentication systems.

The software doesn't necessarily consist of a traditional program such as a Windows .exe file. It can be any file which the system recognizes as carrying some type of code and for which an execution engine exists. The seriousness of the threat varies depending upon the access that a system allows to the type of code in question. Prevailing defects may override the default system access controls making what it supposed to be harmless code capable of complete control of our computer. Some examples of executable code include files containing:

  • Microsoft Office macro commands.
  • Microsoft scripting languages such as Visual Basic for Applications.
  • Web scripting languages such as JavaScript and Visual Basic Script.
  • Web application languages and components such as Java, JavaBeans, and ActiveX controls.
  • Other scripting languages such as perl or unix shell scripts.
  • More esoteric file types or code whose file extensions are often tied by the operating system or application to an execution engine allowing automatic code execution. This is generally done for ease of use but may result in inadvertent code execution. For example, take a look at some Windows extensions that may result in program execution.

How does hostile code get on our computer? 

  • How We Compromise Our Own Computers by Loading Hostile Software Ourselves

    If we download and run files or open email attachments we are giving control of our computers to the provider of those files. That trust is becoming increasingly risky. It seems that more and more hostile code is circulating these days and tools to produce such code are more common and easy to use. 

    It is difficult to judge the integrity of software code. The apparent sender of email is easily spoofed. Web sites, ftp servers, and email lists routinely circulate copies of code that may have been through several people's hands. The code's path and how its integrity was maintained in the route from the original author to your computer is difficult to ascertain. Easy to use tools exist that allow hostile software to be covertly attached to otherwise normally functioning programs.

    Traditional anti-virus tools can only protect us against hostile programs containing known patterns that the tools have been told to look for. Some folks will be unlucky enough to be the unfortunate discoverers of newly released hostile code. If the code replicates fast enough, a lot of people can be affected before anti-virus products can be updated. If the code stays quiet, it may not be discovered for some time and in the meantime may silently collect our passwords, passwords of neighboring computers seen on the network, or allow others to control our computer for their own purposes. As long as no noticeable action is taken, the person controlling our computer is free to use its resources and any connected to it as he or she sees fit.

    Effective defense primarily consists of refusing to run unknown programs and using a safer account for day to day use.

     

  • How Our Computers Allow Hostile Software to Be Run By Others

    Servers run software that constantly listens to the network for requests from web browsers, email clients, FTP clients, Napster clients, and the like. If the server software has defects in it, specially formatted network requests may cause the server to do undesirable things...like run code included with the specially formatted network requests. The most common method of breaking into server computers has probably been to force them to run hostile code by sending them these specially formatted network requests that exploit defects in the server's software. For decades, thousands of computers have been compromised through defective web servers, defective ftp servers, defective email servers, defective DNS servers, defective RPC servers, and others.

    As shown on the SANS Top Twenty list and CERT's list of current activity, quite often break-ins continue for months after the defective server code is fixed by the vendor simply because computer owners don't apply the updates to their systems. Obviously, a very effective defense against such attacks is to update our computers regularly.

    With desktop systems increasingly running servers (personal web server, Napster, MS file sharing, etc.) or complex network client programs, the opportunity to take advantage of similar defects on desktop systems is increasing. Specially formatted email messages or web pages may exploit defects to inject hostile code into web browsers and email clients just as specially formatted network traffic does so on servers. Therefore, the importance of timely system updates and patches applies to desktops as well as more traditional servers.

    Another way in which code can be run on our computers without our cooperation is by having our communications sessions with other computers intercepted. In this attack, someone inserts themselves into our computers' conversation and injects their own commands. Defense against this type of attack is similar to defense against network sniffing of passwords which is discussed later.

 

Misconfigurations

Common misconfigurations include:

  • Windows sharing that gives write access to system directories.
  • Windows sharing that gives too much read access.
  • Windows sharing of sensitive data with weak or no passwords.
  • FTP or Web servers running with elevated privileges or insufficient access controls.
  • Web servers that don't have example scripts removed.
  • NFS servers allowing too much access.
  • Running unneeded services that provide a possible entry point. This is particularly common on unix systems. This doesn't cause a compromise directly but a service that isn't being used is very easily forgotten, misconfigured, and/or unpatched.

Defense consists of Nullifying Unneeded Risk by minimizing access and following best configuration practices.

 

Compromised Identity Authentication

Most computer access controls are based on the identity of the person trying to use them. Authentication of that person's identity is most commonly done through simple passwords.

One method of assuming the identity of an authorized person is use programs that repeatedly try to login using a sequence of guessed passwords. While this can be time consuming, it is often successful if poor passwords are chosen. Most systems will prevent this type of password guessing by locking an account after a specified number of attempts. However, some applications including Windows 9x shares are not protected in this manner. A person can sit on the other side of the world and try different passwords forever without the owner of the computer knowing it is happening. Defense consists of hard to guess passwords, using a file sharing platform appropriate for the sensitivity of the data it holds, and limiting network access with firewalls.

Another way of assuming an identity is to get a list of encrypted passwords from the system. Then, a program can be run which encrypts every possible combination of characters and compares the result with the encrypted passwords. With today's powerful computers, even a good password can be cracked in a few days. Defense consists of:

  • Preventing the person from getting the list of encrypted passwords through good system configuration and administration.
  • Choosing strong passwords which will take longer to guess.
  • Strong encryption systems which take more computing resources and slow the guessing process down.

Another way to strengthen the authentication process is to use an authentication system which requires two or more factors to prove identity. These other factors may include something we have like a smart card or something innate such as a fingerprint. Adding one or more of these factors to the secret password that we know strengthens the authentication process.

Sometimes access is controlled not by the identity of the person but by the network address of the requesting computer. This type of access control is notoriously weak and often taken advantage of by assuming a spoofed network address. Defenses include:

  • Not using services that operate in this fashion (unix rsh, rcp, rexec in particular).
  • Using a network topology and physical access controls that limit unauthorized connections.
  • Anti-spoofing filters.

Safeguarding our passwords is important to retaining control over our data, accounts, and computers.

Computer operators are limited in what they can do to safeguard their password. For networks to work, computers must communicate over the wires. This communication may also expose passwords or entire sessions. See next section.

 

Vulnerabilities in Network Infrastructure

Assuming an attacker can gain access to a network, they can subvert core TCP/IP and Ethernet protocols in order to redirect or hijack traffic from neighboring computers. This allows them to analyze the traffic for authentication credentials or insert subversive commands into existing sessions. Such attacks will compromise even switched networks and SSL/SSH protected sessions.

Risk mitigation methods include:

  • Denying access to the physical network. This is easier said than done. Network access can be gained through several mechanisms including:
  • Training operators not to ignore warning messages about:
    • Changing SSH host keys
    • SSL certificates
  • Hard coding MAC addresses in switches
  • Hard coding ARP tables in computers
  • Monitoring for suspicious ARP traffic, ARP changes, and switch table changes.
  • Inserting a router between untrusted network access points (public, wireless, unsafely operated computers, etc.) and the portions of the network one wishes to protect. Note, however, that computers on the accessible side, including their sessions to the "protected" side, are vulnerable.
  • Applications that use encryption to protect their sessions, raise the fence higher.
  • One-time passwords raise the fence higher.
  • IPSEC

 

More Information

For defensive recommendations, see the StartSafe and RUNSAFE pages. For more detailed information about particular systems or vulnerabilities take a look at: