The present invention relates generally to computer networks, and specifically to methods and systems for protecting against malicious traffic in computer networks.
In a Denial-of-Service (DoS) attack, an attacker bombards a victim network or server with a large volume of message traffic. The traffic overload consumes the victim's available bandwidth, CPU capacity, or other critical system resources, and eventually brings the victim to a situation in which it is unable to serve its legitimate clients. Distributed DoS (DDoS) attacks can be even more damaging, as they involve creating artificial network traffic from multiple sources simultaneously. In a “conventional” massive-bandwidth attack, the source of the attack may be traced with the help of statistical analysis of the source Internet Protocol (IP) addresses of incoming packets. The victim can subsequently filter out any traffic originating from the suspect IP addresses, and can use the evidence to take legal action against the attacker. Many attacks, however, now use “spoofed” IP packets—packets containing a bogus IP source address—making it more difficult for the victim network to defend itself against attack.
In order to launch an effective DDoS attack, an attacker typically attempts to control a large number of servers on the Internet. One approach to gaining such control is to use “worms,” which are programs that self-replicate across the Internet by exploiting security flaws in widely-used services. After taking control of a server, a worm often uses the server to participate in a DDoS attack. Recent well-known worms include Code Red (I and II) and Nimba. For example, Code Red I spread during the summer of 2001 by exploiting a security flaw in Microsoft® IIS web servers. Once it infected a server, the worm spread by launching 99 threads, each of which generated random IP addresses and attempted to compromise servers at these addresses. In addition to this self-replication, Code Red I self-activated simultaneously on infected servers to launch a coordinated DDoS attack on the www.whitehouse.gov domain.
In addition to the disruption caused to domains that are victims of a DDoS attack launched by a worm, the servers and networks infected by the worm often experience performance degradations. Such degradations are caused in part by the packets generated and received by an infected server as it attempts to discover and infect servers at random IP addresses (called “scanning”), and by the packets generating by the infected server when it participates in a DDoS attack. For example, an infected server may send a large volume of SYN request packets to random IP addresses, each of which may respond with a SYN-ACK response packet. Such traffic may consume a large portion of the bandwidth of the connection of the infected network with the Internet. Additionally, SYN requests are typically buffered by the sending server for a period of time, tying up server resources.
In embodiments of the present invention, a network guard system detects and blocks incoming and/or outgoing packets generated by a worm. Typically, the guard system detects such infected packets by (a) checking whether the packets contain a known worm signature, and/or (b) monitoring the sources of the packets for anomalous traffic patterns that correspond to patterns associated with worm-generated traffic. Once the guard system detects a suspicious packet or traffic pattern, it may block all or a portion of the packets from the same source for a period of time or take other preventive action. Non-infected packets are forwarded to their intended destinations.
For some applications, the network guard system monitors incoming packets, in order to prevent a malicious source from establishing connections with servers within a protected area of a network. In some such embodiments of the present invention, a network protected with the network guard system designates a set of network addresses (such as IP addresses) assigned to the network as “trap” addresses. These trap addresses are assigned to one or more guard devices, but otherwise are not used by other elements of the network. When a packet addressed to such a trap address enters the protected network, the packet is forwarded to the assigned guard device, which analyzes the traffic. The guard device may determine that the traffic from a given source address is suspicious, based on the content or statistical properties of the traffic, for example. The guard device may then block or otherwise filter incoming traffic from the suspicious source address, to reduce the likelihood of servers within the protected area of a network becoming infected with a worm. Alternatively or additionally, the guard device may then begin monitoring all packets entering the protected area of the network. These techniques for protecting against incoming worm-generated traffic can reduce bandwidth consumption between the protected network and a wide-area network, such as the Internet. For example, these techniques may reduce outgoing traffic generated by elements in the protected area in response to the incoming traffic, such as SYN-ACK responses generated by internal servers when attempting to establish a handshake with infected external servers.
Alternatively or additionally, the network guard system monitors outgoing packets originating from servers in a protected area. Typically, the guard system detects an infected server by determining that the server is attempting to create a large number of connections to different addresses within a short time, or to create a connection with a non-existing address. By detecting and blocking infected outgoing packets, the guard system prevents servers infected with a worm from establishing specific types of connections with servers outside the protected area. This technique can also reduce bandwidth consumption between the protected network and a wide-area network, such as the Internet, (a) by reducing outbound traffic generated by servers infected with a worm, both when the servers attempt to propagate the worm and when they participate in a DDoS attack, and (b) by reducing inbound traffic generated in response to the malicious outbound traffic, such as SYN-ACK responses generated by external servers when attempting to establish a handshake with infected internal servers. Additionally, upon detecting an infected server, the guard system typically generates a network administrator alert, so that the administrator can take appropriate action, such as cleaning infected servers.
The techniques of worm-generated traffic detection and diversion described herein may be used on their own, or in combination with other, complementary techniques for preventing DDoS attacks. Such techniques are described, for example, in the above-referenced US Patent Application Publication 20020083175, and in U.S. patent application Ser. No. 10/232,993, filed Aug. 29, 2002, entitled, “Protecting Against Distributed Denial of Service Attacks,” which are assigned to the assignee of the present patent application and are incorporated herein by reference.
There is therefore provided, in accordance with an embodiment of the present invention, a method for screening packet-based communication traffic, including:
receiving at least a first data packet sent over a network from a source address to a destination address;
making a determination, by analyzing the first data packet, that the first data packet was generated by a worm; and
in response to the determination, blocking a second data packet sent over the network from the source address.
Making the determination may include comparing an attribute of the first data packet with a set of attributes of known worm-generated packets, and blocking the first data packet when the attribute of the first data packet is found to match one of the attributes in the set.
In an embodiment, blocking the second data packet includes blocking the second data packet during a period of time commencing with making the determination that the first data packet was generated by the worm, and not blocking the second data packet thereafter.
In an embodiment, the destination address is located within a protected area of the network, and receiving the first data packet includes receiving the first data packet from a source located outside the protected area. Alternatively, the source address belongs to a network element located within a protected area of the network, the destination address is located outside the protected area, and receiving the first data packet includes receiving the first data packet within the protected area.
Making the determination may include generating an administrator alert that the first data packet was generated by the worm.
In an embodiment, the first data packet has a port designation, and making the determination includes determining that the port designation does not correspond to an application running at the destination address. Alternatively or additionally, a server for an application resides at the destination address, and making the determination includes determining that the first data packet does not correspond to the application.
In an embodiment, receiving the first data packet includes receiving an Internet Protocol (IP) packet, and making the determination includes analyzing a pattern of a sequence number of the IP packet. Alternatively or additionally, receiving the first data packet includes receiving a Transport Control Protocol (TCP) SYN packet. Receiving the SYN packet may include receiving multiple SYN packets addressed to multiple, respective destination addresses, and making the determination includes detecting a pattern of address scanning characteristic of the worm.
In an embodiment, making the determination includes determining that the destination address is invalid. Making the determination may include designating one or more addresses as trap addresses, and determining that the destination address is one of the trap addresses. Making the determination may also include analyzing a rate of arrival of data packets sent from the source address to one or more of the trap addresses, so as to determine whether the packets were generated by the worm.
In an embodiment, making the determination includes storing on a blacklist the source address of the first data packet, and blocking the second data packet includes blocking the second data packet in response to the blacklist. Storing on the blacklist may include removing the source address of the first data packet from the blacklist when it is determined that a rate of packets received from the source address has decreased.
Receiving at least the first data packet may include receiving multiple data packets from the source address, which are addressed to a plurality of respective destination addresses, and making the determination includes analyzing the multiple data packets sent from the source address. Making the determination may include analyzing a rate of arrival of the data packets. Alternatively or additionally, making the determination includes comparing a pattern of the destination addresses with at least one pattern associated with known worm-generated traffic. Receiving the data packets from the source address may include receiving the data packets from a plurality of source addresses belonging to a subnetwork, and blocking the second data packet includes blocking further data packets sent over the network from the subnetwork.
In an embodiment, receiving the first data packet includes intercepting the first data packet before the first data packet reaches the destination address, and the method includes delivering the first data packet to the destination address when it is determined that the first data packet was not generated by the worm. Receiving the first data packet may include receiving an Internet Protocol (IP) packet addressed to a particular port, and intercepting the first data packet includes intercepting the first data packet responsively to the particular port to which the IP packet is addressed. Intercepting the first data packet may include intercepting the first data packet only if the first data packet includes a Transport Control Protocol (TCP) SYN packet and the first data packet is addressed to port 80.
There is also provided, in accordance with an embodiment of the present invention, a method for analyzing packet-based communication traffic, including:
receiving multiple data packets sent over a network from a source address and addressed to a plurality of respective destination addresses;
determining a rate of sending the data packets to the plurality of destination addresses from the source address; and
in response to the rate, designating the source address as a source of malicious traffic.
Receiving the data packets may include receiving Transport Control Protocol (TCP) SYN packets. Designating the source address may include designating the source address as a generator of worm-generated traffic.
In an embodiment, receiving the data packets includes receiving Internet Protocol (IP) packets having respective port designations, and determining the rate includes determining the rate of sending the data packets whose respective port designations do not correspond to applications running at the destination addresses. Determining the rate may include determining the rate of sending data packets addressed to the destination addresses at which reside servers for an application, which application is different from that specified in the packets.
There is further provided, in accordance with an embodiment of the present invention, a method for analyzing packet-based communication traffic, including:
designating one or more network addresses as trap addresses;
receiving a data packet sent over the network from a source address to one of the trap addresses; and
in response to receiving the packet, designating the source address as a source of malicious traffic.
In an embodiment, receiving the data packet includes receiving a plurality of data packets sent over the network from the source address to one or more of the trap addresses, and designating the source address includes analyzing a rate of arrival of the data packets sent from the source address to the one or more of the trap addresses. Designating the source address may include designating the source address as a generator of worm-generated traffic.
There is still further provided, in accordance with an embodiment of the present invention, a method for analyzing packet-based communication traffic, including:
designating one or more network addresses as trap addresses;
receiving a data packet sent over the network to one of the trap addresses; and
in response to receiving the packet, initiating diversion of further data packets sent over the network from sources outside a protected area of the network, so as to prevent malicious traffic from reaching the protected area of the network.
Initiating diversion may include initiating diversion so as to prevent worm-generated traffic from reaching the protected area of the network. In an embodiment, initiating diversion includes determining that one of the further data packets was generated by a worm, and, in response to the determination, blocking the delivery of the packet. Receiving the data packet may include receiving a plurality of data packets sent over the network from a source address to one or more of the trap addresses, and initiating diversion includes analyzing a rate of arrival of the data packets sent from the source address to the one or more of the trap addresses.
There is additionally provided, in accordance with an embodiment of the present invention, a method for analyzing packet-based communication traffic, including:
receiving a data packet sent over a network from a source address to a destination address;
comparing an attribute of the data packet with a set of attributes of known worm-generated packets; and
designating the source address as a source of worm-generated traffic when the attribute of the packet is found to match one of the attributes in the set.
The attribute may include a length of the data packet or a signature of the packet.
There is yet additionally provided, in accordance with an embodiment of the present invention, apparatus for screening packet-based communication traffic, including a guard device, which is adapted to receive at least a first data packet sent over a network from a source address to a destination address, to make a determination, by analyzing the first data packet, that the first data packet was generated by a worm, and, in response to the determination, to block a second data packet sent over the network from the source address.
There is also provided, in accordance with an embodiment of the present invention, apparatus for analyzing packet-based communication traffic, including a guard device, which is adapted to receive multiple data packets sent over a network from a source address and addressed to a plurality of respective destination addresses, to determine a rate of sending the data packets to the plurality of destination addresses from the source address, and, in response to the rate, to designate the source address as a source of malicious traffic.
There is further provided, in accordance with an embodiment of the present invention, apparatus for analyzing packet-based communication traffic, including a guard device, which is adapted to designate one or more network addresses as trap addresses, to receive a data packet sent over the network from -a source address to one of the trap addresses, and, in response to receiving the packet, to designate the source address as a source of malicious traffic.
There is still further provided, in accordance with an embodiment of the present invention, apparatus for analyzing packet-based communication traffic, including a guard device, which is adapted to designate one or more network addresses as trap addresses, to receive a data packet sent over the network to one of the trap addresses, and, in response to receiving the packet, to initiate diversion of further data packets sent over the network from sources outside a protected area of the network, so as to prevent malicious traffic from reaching the protected area of the network.
There is additionally provided, in accordance with an embodiment of the present invention, apparatus for analyzing packet-based communication traffic, including a guard device, which is adapted to receive a data packet sent over a network from a source address to a destination address, to compare an attribute of the data packet with a set of attributes of known worm-generated packets, and to designate the source address as a source of worm-generated traffic when the attribute of the packet is found to match one of the attributes in the set.
There is yet additionally provided, in accordance with an embodiment of the present invention, a computer software product for screening packet-based communication traffic, the product. including a computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive at least a first data packet sent over a network from a source address to a destination address, to make a determination, by analyzing the first data packet, that the first data packet was generated by a worm, and, in response to the determination, to block a second data packet sent over the network from the source address.
There is also provided, in accordance with an embodiment of the present invention, a computer software product for analyzing packet-based communication traffic, the product including a computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive multiple data packets sent over a network from a source address and addressed to a plurality of respective destination addresses, to determine a rate of sending the data packets to the plurality of destination addresses from the source address, and, in response to the rate, to designate the source address as a source of malicious traffic.
There is further provided, in accordance with an embodiment of the present invention, a computer software product for analyzing packet-based communication traffic, the product including a computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to designate one or more network addresses as trap addresses, to receive a data packet sent over the network from a source address to one of the trap addresses, and, in response to receiving the packet, to designate the source address as a source of malicious traffic.
There is still further provided, in accordance with an embodiment of the present invention, a computer software product for analyzing packet-based communication traffic, the product including a computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to designate one or more network addresses as trap addresses, to receive a data packet sent over the network to one of the trap addresses, and, in response to receiving the packet, to initiate diversion of further data packets sent over the network from sources outside a protected area of the network, so as to prevent malicious traffic from reaching the protected area of the network.
There is additionally provided, in accordance with an embodiment of the present invention, a computer software product for analyzing packet-based communication traffic, the product including a computer-readable medium in which program instructions are stored, which instructions, when read by a computer, cause the computer to receive a data packet sent over a network from a source address to a destination address, to compare an attribute of the data packet with a set of attributes of known worm-generated packets, and to designate the source address as a source of worm-generated traffic when the attribute of the packet is found to match one of the attributes in the set.
The present invention will be more fully understood from the following detailed description of embodiments thereof, taken together with the drawings in which:
To prevent the infection of servers 24 with a worm, a guard device 28 intercepts incoming packets from WAN 40 that are addressed to network elements 26. Guard device 28 analyzes these incoming packets in order to detect packets that are suspected of being infected with a worm, typically using techniques described hereinbelow with reference to
Alternatively or additionally, guard device 28 monitors outgoing packets sent from servers 24 via WAN 40 to network elements outside protected area 30. By detecting and blocking infected outgoing packets, guard device 28 prevents servers 24 infected with a worm from establishing connections with servers outside protected area 30. As a result, infected servers 24 are not able to compromise outside servers or to participate in a DDoS attack on network elements outside protected area 30. Blocking such infected traffic also relieves pressure on the links between routers 22 and WAN 40, so that legitimate traffic is not impeded by malicious activity.
Guard device 28 may perform these packet screening and diversion functions at all times, or it may alternatively become active only under stress conditions, in which a worm attack on or by servers 24 is expected or suspected. For example, guard device 28 may become active when an unusually large number of incoming SYN request packets is detected, when other traffic statistics indicate that an attack may be in progress, when worm-generated traffic has been detected using “trap” addresses, as described hereinbelow with reference to
Typically, guard device 28 comprises a general-purpose computer, which is programmed in software to carry out the functions described herein. The software may be downloaded to the computer in electronic form, over a network, for example, or it may alternatively be supplied to the computer on tangible media, such as CD-ROM. Further alternatively, guard device 28 may be implemented in dedicated hardware logic, or using a combination of hardware and software elements. The guard device may be a standalone unit, or it may alternatively be integrated with other communication or computing equipment, such as router 22, a firewall, or an intrusion detection system (not shown).
In practical applications, one or more guard devices 28 may be used to protect a cluster of servers 24, or they may be used to protect an entire LAN, intranet or a collection of servers whose traffic is diverted to the guard devices. The guard functionality may be distributed among multiple guard devices 28, at one or more access points to protected area 30. In applications using more than one guard device, the guard devices may share one or more common data repositories, or may otherwise communicate with each other, such as for performing aggregated statistical analysis and/or maintaining a common record of suspected sources of malicious packets. The guard devices may be deployed in configurations similar to firewalls known in the art. Preferably, the guard devices have sufficient processing capacity so that they do not themselves become a bottleneck in the case of a worm attack. While certain techniques are described herein with respect to screening incoming and/or outgoing traffic to/from servers 24, these techniques may also be used to screen incoming and/or outgoing traffic to/from other network elements 26, such as client computers, that are capable of being infected with a worm. Routers 28 may comprise routers of the type commercially available and commonly used on an IP network, or other network elements capable of redirecting traffic and otherwise providing the functions commonly performed by routers.
Although in
In some embodiments of the present invention, diversion is effected using one or more of the following techniques:
Returning now to
One or more of the following techniques are typically used for analyzing the packets, depending upon the particular warning in effect, or as determined by a network administrator:
Continuing with the method of
After adding the infected source to the blacklist, guard device 28 typically generates a network administrator alert and/or log entry, at an alert generation step 62. An administrator can use this information to take preventive or corrective steps. For example, when a worm has been detected in outgoing traffic (i.e., a worm infecting a server 24 within protected area 30), the administrator can clean the infected server and install an appropriate patch to correct the security fault that created the vulnerability to infection. In some instances, particularly when a worm has been detected in incoming traffic, an administrator may wish to configure one or more of routers 22 and/or firewalls to block the malicious source directly, without the use of guard devices 28.
Worm scanners (worms configured to scan for vulnerable servers by sending packets to multiple addresses) sometimes use spoofed IP packets, as described in the Background section hereinabove. As a result, a guard device may determine that a certain source address is worm-infected, when in fact the source address was only spoofed by a worm located elsewhere on the WAN. A guard device thus may under certain circumstance erroneously block the source addresses of innocent, non-infected clients or servers. In an embodiment of the present invention, the guard devices employ anti-spoofing mechanisms to prevent such erroneous blocking, such as anti-spoofing mechanisms described in the above-mentioned patent applications, or other techniques known in the art, such as SYN cookies or RST cookies.
After traffic has been diverted, guard device 28 intercepts all diverted packets, at packet interception step 52. Guard device 28 looks up the source address or subnetwork source address of each packet on the blacklist, at a blacklist look-up step 64. Guard device 28 determines whether the address of the packet is on the blacklist, at an address check step 66. If the address of the packet is not found on the blacklist, the guard device forwards the packet on its-normal path to its intended destination address, at a forward packet step 68.
On the other hand, if the address of the packet is found on the blacklist, guard device 28 blocks the further transmission of the packet, at a block step 70. Typically, the guard device simply discards the blocked packet, but alternatively, the guard device may analyze the packet contents (and may even take action to deliver the packet or remove it from the blacklist if the packet contents are found to be legitimate). Alternatively, at step 70 the guard device blocks transmission only of packets attempting to establish specific types of connections with servers outside the protected area. The guard device typically logs the receipt and blocking of the packet, at a log step 72. The logs generated at this step can be used by a system administrator for reporting or analysis. The guard device also adds information regarding the blocked packet to a blocked packet repository, such as a database, at a information recording step 74. Such information preferably includes a count of the number of packets blocked from each source address. When more than one guard device 28 is used, the multiple guard devices may share a common blocked packet repository, in order to enable broader statistical analysis of blockage patterns.
At a repository analysis step 76, at least one of the guard devices continuously or periodically analyzes the data in the blocked packet repository, in order to determine if the attack from a source or subnetwork source address has concluded. The guard device typically determines that an attack has concluded by detecting whether traffic from the source has subsided for a certain period of time, at a traffic subsidence check step 78. If malicious traffic has not subsided, the guard device leaves the source address on the blacklist, at a leave on blacklist step 80. On the other hand, if the traffic has subsided for a sufficient period of time, the guard device removes the source address from the blacklist, at a remove from blacklist step 82. Typically, the guard device generates an administrator alert or log entry when a source address is removed from the blacklist, at an administrator alert step 84.
In this method, a set of network addresses (such as IP addresses) assigned to protected area 30 (
When a packet addressed to a trap address enters protected area 30, the packet is received by one of routers 22, at a router receipt step 94. The router forwards the packet to a guard device, at a forwarding step 96. At an analysis step 98, the guard device analyzes the packet to determine whether it is indicative of worm activity. For example, the guard device may perform a statistical analysis on packets received from the same source or subnetwork source address, using information about the packet just received, combined with information about previously-received packets recorded in a statistical repository, as described hereinbelow with reference to step 102. According to one method for detecting traffic generated by a worm scanner, an unusually high number or rate of packets sent to the trap addresses from a single source or subnetwork source address is interpreted as an indication of worm activity. Alternatively or additionally, one or more of the worm detection methods described herein above with reference to packet analysis step 54 of
After performing the analysis, a determination is made regarding whether a worm-infected source has been identified, at a worm found checking step 100. If a worm has not been found, the guard device takes no action with respect to the trapped packet, at a no action step 102. On the other hand, if a worm has been identified, the source address or subnetwork source address, as the case may be, is added to a blacklist of suspected or known worm-infected sources, at a blacklist step 104, in a manner similar to that described above with reference to step 60, in
Alternatively, when a worm has been identified, the source address is not added to the blacklist, and, instead, the guard device initiates diversion of traffic from the source address to one or more guard devices for screening, but not necessarily blocking. Alternatively or additionally, when a worm has been identified, the guard device initiates diversion of all traffic entering the protected area of the network (including traffic from addresses other than the infected source address) to one or more guard devices for screening and possible blocking.
After adding the infected source to the blacklist or diverting traffic, guard device 28 typically generates a network administrator alert and/or log entry, at an alert generation step 106. An administrator can use this information to take preventive or corrective steps, such as those described hereinabove with reference to step 62 of
Although the embodiments described herein make reference to specific communication protocols and conventions, the principles of the present invention may similarly be applied in other data communication contexts. For example, techniques described herein may be applied to protecting against worm-generated traffic sent over SMTP.
It will thus be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.
This application claims the benefit of U.S. Provisional Patent Application No. 60/339,900, filed Dec. 10, 2001, entitled, “Methods and Apparatus for Protecting Against Malicious Traffic in the Internet.” This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 09/929,877, filed Aug. 14, 2001, published as U.S. Patent Application Publication 20020083175, entitled “Methods and Apparatus for Protecting Against Overload Conditions on Nodes of a Distributed Network.” Both of these related applications are assigned to the assignee of the present patent application, and their disclosures are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60240899 | Oct 2000 | US | |
60339900 | Dec 2001 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10498463 | US | |
Child | 11183091 | Jul 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09929877 | Aug 2001 | US |
Child | 10498463 | US |