Denial of Service (DoS) attacks are commonly used to disturb the normal operation of applications. DoS attacks take advantage of a weakness in the system or application and cause it to crash or stop responding. Although this attack does not provide the attacker with any escalated system access, it disturbs the operation of the site.
DoS attacks are explicit attacks that prevent legitimate users from accessing a service. In most cases, a DoS attack floods the victim server with network traffic. This can be achieved by either overloading the ability of the victim server to handle incoming traffic or by sending requests that cause the victim server to behave unpredictably, possibly hanging or crashing the server.
To illustrate a simple denial of service attack, imagine an attacker who creates a program that calls a pizza store. If the program repeats this task continuously, it prevents legitimate customers from ordering pizza because the telephone line is busy. This example illustrates a classic resource consumption technique. Resource consumption is a familiar technique of performing DoS attacks on Web applications. With this technique, the attacker tries to identify operations that are implemented in a poor manner and consume relatively vast resources. The attacker repeats these operations until the server is no longer capable of serving other users. The affected resources can be the server's bandwidth, memory, disk space or CPU time.
For example, consider a Web application that contains forums with millions of messages. The application contains a search engine that enables sophisticated regular expression searches. An attacker can easily create complicated regular expressions that consume a lot of CPU each time a search is initiated. The attacker then writes a script to launch this request over and over again until the application consumes 100% of the Web server CPU. As a result, legitimate users will not be able to access services in the server or will receive very poor performance.
Another common type of DoS attacks is using Buffer Overflow, i.e. simply sending more data than an application can handle (see Buffer Overflow). For example, sending email messages that have attachments with 256-character file names to Netscape and Microsoft mail application will cause the servers to crash.