Session Initiation Protocol (SIP) is an application-layer control (i.e., signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions may include Internet-based telephone calls, multimedia distribution, multimedia conferences, instant messaging conferences, interactive voice response (IVR), automated and manual operator services, automatic call distribution, call routing, etc. SIP invitations or INVITES may be used to create sessions and may carry session descriptions that allow participants to agree on a set of compatible media types. SIP may use proxy servers to help route requests to a user's current location, authenticate and authorize users for services, implement provider call-routing policies, and/or provide other features to users. SIP may also provide a registration function that allows users to upload their current locations for use by proxy servers.
Denial of Service (DoS) attacks may be characterized by explicit attempts of attackers to prevent legitimate users from using a service. DoS attacks continue to be the main threat facing network operators. As telephony services move to IP (Internet Protocol) networks, Voice over IP (VoIP) infrastructure components and end devices, may become attractive DoS attack targets. For example, carriers have begun a program for the delivery of advanced voice and data services over IP that implements security measures in order to protect both the service providing the network assets, as well as the customer networks from service disruption. As service providers develop value added revenue sources based on IP application services, the open nature of the IP infrastructure may put those revenue sources at risk. VoIP is the first, and most prominent of these IP application services. Availability means that the service is there when desired. With voice traveling over an Internet-based network (VoIP), issues such as DoS and distributed DoS attacks represent a significant threat to the availability of the services. DoS may be attempts to disable the functionality of a target, as opposed to gaining operational control of the target. As such, DoS attacks may be more difficult to defend against than traditional invasive exploits. There are already known SIP-based signaling attacks against VoIP, and the protocol itself may be vulnerable to software exploits and persistent protocol transactions that degrade its performance.
There may be three basic types of DoS attacks that might occur over a VoIP network: (1) exploiting implementation flaws (e.g., ping-of-death attack, invalid call setup messages, invalid media, malformed signaling, etc.); (2) exploiting application level vulnerability (e.g., registration hijacking, call hijacking, modify media sessions, session teardown, amplification attacks, media stream attacks, etc.); and (3) flooding (e.g., SIP channel flooding, RTP channel flooding, etc.). These attacks may target a VoIP component, such as a SIP proxy, or a supporting server, such as a Domain Name System (DNS) server, a Directory server, or a Dynamic Host Configuration Protocol (DHCP) server. A DoS attack against a supporting server could affect the VoIP service in different ways. For example, an attack against a certain domain's DNS server could deny VoIP calls destined to users in that domain. Another example could be an attack against a Directory Service, which is used by a SIP proxy server to store address-of-record to UA mappings, and could result in Denial-of-Service to the UAs that registers to this proxy.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the invention.
Systems and methods described herein may detect and prevent DoS attacks on SIP-based systems. For example, the systems and methods may be capable of distinguishing between valid traffic and DoS attack traffic, may differentiate between attacking packets and legitimate ones by comparing current traffic with a nominal traffic profile, may recognize when a DoS attack has been initiated, and may determine the form of the DoS attack. The systems and methods may also prevent a DoS attack from impacting the performance of a targeted VoIP infrastructure component (e.g., a SIP proxy). The systems and methods may use statistical analysis and application layer (i.e., layer 7 of the Open System Interconnection (OSI) model) inspection and analysis for detection of attacks.
Network 140 may include a local area network (LAN), a wide area network (WAN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, a SIP-based network, a VoIP-based network, an IVR-based network, or a combination of networks. Clients 110 and server 120 may connect to network 140 via wired, wireless, and/or optical connections.
Clients 110 may include client entities. An entity may be defined as a device, such as a personal computer, a SIP telephone, a wireless telephone, a personal digital assistant (PDA), a lap top, or another type of computation or communication device, a thread or process running on one of these devices, and/or an object executable by one of these devices.
Server 120, also commonly referred to as a network server, may include a device that facilitates the establishment of SIP calls, or a device that is capable of facilitating SIP-based communications, e.g., Internet-based telephone calls, multimedia distribution, multimedia conferences, instant messaging conferences, interactive voice response (IVR), automated and manual operator services, automatic call distribution, call routing, etc.
Server 120 may include a server entity that gathers, processes, searches, and/or maintains applications (e.g., a high-speed, high-capacity packet processing applications server). As further shown in
Firewall 135 may include a device which may be configured to permit, deny, and/or proxy data connections set and configured to prevent, e.g., DoS attacks. Firewall 135 may be hardware and/or software based. A basic task of firewall 135 may be to control traffic between devices (e.g., clients 110) of network 140 with different zones of trust. For example, as shown in
The systems and methods described herein may utilize a deep-packet inspection filtering device (e.g., firewall 135), which may be deployed at the network perimeter, and may be capable of both detecting and filtering DoS attack attempts at carrier-class. Firewall 135 may include a high speed database using content addressable memory (CAM) technology for state table(s) storage. Firewall 135 may also utilize a Firewall Control Protocol (FCP) to update the state table(s) in firewall 135. Firewall 135 may further utilize packet logic manipulation that may be used to update the CAM state table(s).
Although
Although implementations are described below in the context of SIP and an Internet Protocol (IP)-based network, in other implementations equivalent or analogous communication protocols (e.g., International Telecommunication Union (ITU) H.323) and/or types of transport networks (e.g., asynchronous transfer mode (ATM), frame relay, etc.) may be used. Both the ITU H.323 standard and the IETF's SIP are examples of protocols that may be used for establishing a communications session among terminals, such as clients 110, connected to a network. Although SIP-type messages are shown for convenience, any type of protocol or a mixture of such protocols may be applied in various parts of the overall system.
Furthermore, in one implementation, firewall 135 may include the features set forth in co-pending application No. 11/557,703 , entitled “SYSTEMS AND METHODS FOR IMPLEMENTING A PROTOCOL-AWARE NETWORK FIREWALL,” filed on Nov. 8, 2006, the disclosure of which is incorporated by reference herein in its entirety. In another implementation, firewall 135 may include the features set forth in co-pending application No. 11/557,739, entitled “PREVENTION OF DENIAL OF SERVICE (DoS) ATTACKS ON SESSION INITIATION PROTOCOL (SIP)-BASED SYSTEMS USING METHOD VULNERABILITY FILTERING,” filed on Nov. 8, 2006, the disclosure of which is incorporated by reference herein in its entirety.
Processor 220 may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Main memory 230 may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processor 220. ROM 240 may include a ROM device or another type of static storage device that may store static information and instructions for use by processor 220. Storage device 250 may include a magnetic and/or optical recording medium and its corresponding drive.
Input device 260 may include a mechanism that permits an operator to input information into the client/server entity, such as a keyboard, a mouse, a pen, voice recognition and/or biometric mechanisms, etc. Output device 270 may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface 280 may include any transceiver-like mechanism that enables the client/server entity to communicate with other devices and/or systems. For example, communication interface 280 may include mechanisms for communicating with another device or system via a network, such as network 140.
As will be described in detail below, the client/server entity may perform certain DoS detection and prevention operations. The client/server entity may perform these operations in response to processor 220 executing software instructions contained in a computer-readable medium, such as memory 230. A computer-readable medium may be defined as a physical or logical memory device and/or carrier wave.
The software instructions may be read into memory 230 from another computer-readable medium, such as data storage device 250, or from another device via communication interface 280. The software instructions contained in memory 230 may cause processor 220 to perform processes that will be described later. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
It may typically require many more resources to generate a flooding DoS attack than other DoS attacks. Flooding an access link may include hundreds or thousands of simultaneous individual streams coming from multiple machines geographically dispersed. As a preliminary step, the DoS attacker may need to take control over remote machines that can later be used to generate the attack. This preliminary attack may be accomplished using a worm or a Trojan horse. The machines comprised by a flooding DoS attack may be referred to as “zombies” or “bots,” and their collection may form a “botnet.” On the contrary, an implementation flaw DoS attack may utilize a single specially crafted packet, as in the case of the ping-of-death DoS attack.
Thus, it may be easier to defend against implementation flaw attacks since these attacks may use common attributes to exploit a software weakness. Application level and flooding attacks, on the other hand, may be more difficult to defend against when protecting SIP devices. Flooding attacks may be especially difficult because even the best-maintained system may become congested, thus denying service to legitimate users. The challenge is to distinguish between legitimate and malicious traffic and then prevent the malicious traffic from flooding the victim.
Given the diversity and broad range of attack methodologies, the systems and methods described herein focus on specific vulnerabilities that may be used by attackers for launching DoS attacks. Specifically, the systems and methods may detect and prevent lack of identity assurance-related vulnerabilities. An “identity,” as the term is used herein, is to be broadly interpreted to include any end-point's source IP address. Many of the attacks described above may spoof the identity of the end users that originate SIP requests. A common vulnerability to SIP over User Datagram Protocol (UDP) may be the ability to spoof SIP requests resulting in several vulnerabilities (e.g., SIP spoof attacks, registration/call hijacking, session teardown, request flooding, error message flooding, SIP method vulnerabilities, etc.).
To defend against the above vulnerabilities, firewall 135 may provide, as shown in
Although
Return routability check filter 300 may filter spoofed SIP requests as they enter the protected perimeter at carrier class rates. By ensuring that the identity of the SIP request is not spoofed, return routability check filter 300 may protect SIP entities against attacks such as registration hijacking and spoofed SIP INVITE request floods. Return routability check filter 300 may use three mechanisms to detect spoofed SIP identities.
A first mechanism used by return routability check filter 300 may include a SIP digest authentication mechanism for UDP. By using the SIP digest authentication mechanism, return routability check filter 300 may test return routability to an end point (e.g., untrusted client 110) that sent a SIP request. This may reduce the chances of the end-point source address being spoofed. SIP may provide a stateless, challenge-based mechanism for authentication that may be based on hypertext transfer protocol (HTTP) authentication. If SIP proxy 130 receives a SIP request, return routability check filter 300 may challenge the initiator of the request to provide assurance of its identity. The challenge may be sent in a “Proxy-Authorization” header field of a “407” “Proxy Authentication Required” response. The initiator may retry the SIP request with the proper credentials, e.g., a pre-shared secret (i.e., a password), in a “Proxy-Authorization” header field. The digest authentication mechanism may provide message authentication and may replay protection without message integrity or confidentiality.
A second mechanism used by return routability check filter 300 may include a “null authentication” mechanism that may authenticate an “anonymous” username with no password pre-shared secret (e.g., a password of “ ”). Return routability check filter 300 may therefore support “null authentication” in order to perform the routability check. To prevent state exhaustion in SIP proxy 130, return routability check filter 300 may keep no state until return routability is established.
A third mechanism used by return routability check filter 300 may reduce the risk of internally-fueled spoofed IP attacks by restricting the flow of data coming from the Internet (e.g., untrusted clients 110) if the data has source addresses from within an internal network(s) (e.g., trusted portion of network 100). Thus, return routability check filter 300 may be configured with the network addresses of the internal network(s).
Furthermore, return routability check filter 300 may apply several defense heuristics. For example, return routability check filter 300 may block incoming emergency calls that specify the same location information at the same (e.g., short) time interval. In another example, return routability check filter 300 may block incoming emergency calls that originate at the same source IP address at a given (e.g., short) time interval. In still another example, return routability check filter 300 may block emergency calls coming from unauthorized subnets that do not match a pre-configured location of a protected network (e.g., the trusted portion of network 100). For instance, if return routability check filter 300 is protecting a network that resides in the Washington D.C. area, return routability check filter 300 may block an emergency call with a source IP address that maps to a network that is located in Australia.
If digest authentication is used, the rate at which firewall 135 can handle incoming SIP requests may decrease for every incoming SIP request for which firewall 135 computes a new challenge or validates the provided authorization data. An attack flood of spoofed INVITE messages may overload firewall 135 since firewall 135 may be trying to authenticate each one of the SIP requests. Thus, return routability check filter 300 may detect the SIP request floods, and may apply a rate-limiting policy in order to reduce the load from SIP proxy 130. The type of rate-limiting policy applied by return routability check filter 300 may have a direct impact on the number of false-positives (e.g., “bad” requests that were not blocked) and/or true-positives (e.g., “good” requests that were filtered). In the rate-limiting policy applied by return routability check filter 300, a temporary filter may be established whenever a new SIP request needs to be authenticated. The temporary filter may be used to block further unauthenticated request attempts, coming from the same source, from reaching SIP proxy 130. If firewall 135 receives the request, return routability check filter 300 may respond with the digest authentication mechanism, and an FCP message to create the temporary filter. If the request originator successfully responds with the correct challenge response, return routability check filter 300 may remove the temporary filter from firewall 135. The temporary filter may have a short expiration date (e.g., on the order of seconds), and may based on the “From URI” or the source IP address.
As further shown in
Process 500 may apply a return routability check filter to the determined attack(s) (block 530). For example, in one implementation described above in connection with
If the attack is not a UDP attack (block 600—NO) or the SIP digest authentication mechanism was used (block 610), process block 530 may determine whether the attack lacks a shared secret (block 620). If the attack lacks a shared secret (block 620—YES), process block 530 may use a null authentication mechanism (block 630). For example, in one implementation described above in connection with
As further shown in
Process block 530 may apply defense heuristics to the attack(s) (block 650). For example, in one implementation described above in connection with
Systems and methods described herein may detect and prevent DoS attacks on SIP-based systems. For example, the systems and methods may be capable of distinguishing between valid traffic and DoS attack traffic, may differentiate between attacking packets and legitimate ones by comparing current traffic with a nominal traffic profile, may recognize when a DoS attack has been initiated, and may determine the form of the DoS attack. The systems and methods may also prevent a DoS attack from impacting the performance of a targeted VoIP infrastructure component (e.g., a SIP proxy). The systems and methods may use statistical analysis and application layer (i.e., layer 7 of the OSI model) inspection and analysis for detection of attacks.
The foregoing description provides illustration and description, but is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention.
For example, while series of acts have been described with regard to the flowcharts of
Embodiments, as described above, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement embodiments consistent with principles of the invention is not limiting of the invention. Thus, the operation and behavior of the embodiments were described without reference to the specific software code—it being understood that one would be able to design software and control hardware to implement the embodiments based on the description herein.
No element, act, or instruction used in the present application should be construed as critical or essential to the invention unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items. Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Number | Name | Date | Kind |
---|---|---|---|
5414704 | Spinney | May 1995 | A |
5465286 | Clare et al. | Nov 1995 | A |
5473607 | Hausman et al. | Dec 1995 | A |
5828653 | Goss | Oct 1998 | A |
5859980 | Kalkunte | Jan 1999 | A |
5909686 | Muller et al. | Jun 1999 | A |
5936962 | Haddock et al. | Aug 1999 | A |
5991270 | Zwan et al. | Nov 1999 | A |
6154775 | Coss et al. | Nov 2000 | A |
6175902 | Runaldue et al. | Jan 2001 | B1 |
6680089 | Miyake et al. | Jan 2004 | B2 |
6701346 | Klein | Mar 2004 | B1 |
6707817 | Kadambi et al. | Mar 2004 | B1 |
6816910 | Ricciulli | Nov 2004 | B1 |
6826616 | Larson et al. | Nov 2004 | B2 |
6880089 | Bommareddy et al. | Apr 2005 | B1 |
6920107 | Qureshi et al. | Jul 2005 | B1 |
6930598 | Weiss | Aug 2005 | B2 |
6934756 | Maes | Aug 2005 | B2 |
7007299 | Ioele et al. | Feb 2006 | B2 |
7072291 | Jagadeesan et al. | Jul 2006 | B1 |
7076393 | Ormazabal et al. | Jul 2006 | B2 |
7254832 | Christie | Aug 2007 | B1 |
7340166 | Sylvester et al. | Mar 2008 | B1 |
7385927 | Gygi et al. | Jun 2008 | B2 |
7385931 | Magnaghi et al. | Jun 2008 | B2 |
7421734 | Ormazabal et al. | Sep 2008 | B2 |
7440573 | Lor et al. | Oct 2008 | B2 |
7499405 | Gilfix et al. | Mar 2009 | B2 |
7634249 | Hahn et al. | Dec 2009 | B2 |
7653938 | Touitou et al. | Jan 2010 | B1 |
7672336 | Bharrat et al. | Mar 2010 | B2 |
7716725 | Xie | May 2010 | B2 |
7721091 | Iyengar et al. | May 2010 | B2 |
8027251 | Ormazabal et al. | Sep 2011 | B2 |
20020083187 | Sim et al. | Jun 2002 | A1 |
20020112073 | MeLampy et al. | Aug 2002 | A1 |
20020156903 | Bach Corneliussen | Oct 2002 | A1 |
20030009561 | Sollee | Jan 2003 | A1 |
20030055931 | Cravo De Almeida et al. | Mar 2003 | A1 |
20030076780 | Loge et al. | Apr 2003 | A1 |
20030086425 | Bearden et al. | May 2003 | A1 |
20030093562 | Padala | May 2003 | A1 |
20030093563 | Young et al. | May 2003 | A1 |
20030115321 | Edmison et al. | Jun 2003 | A1 |
20030117961 | Chuah et al. | Jun 2003 | A1 |
20030120816 | Berthaud et al. | Jun 2003 | A1 |
20030126464 | McDaniel et al. | Jul 2003 | A1 |
20030135639 | Marejka et al. | Jul 2003 | A1 |
20030165136 | Cornelius et al. | Sep 2003 | A1 |
20030195861 | McClure et al. | Oct 2003 | A1 |
20040001443 | Soon et al. | Jan 2004 | A1 |
20040013086 | Simon et al. | Jan 2004 | A1 |
20040015579 | Cooper et al. | Jan 2004 | A1 |
20040028035 | Read | Feb 2004 | A1 |
20040034793 | Yuan | Feb 2004 | A1 |
20040039938 | Katz et al. | Feb 2004 | A1 |
20040068668 | Lor et al. | Apr 2004 | A1 |
20040128554 | Maher et al. | Jul 2004 | A1 |
20040133772 | Render | Jul 2004 | A1 |
20040136379 | Liao et al. | Jul 2004 | A1 |
20040208186 | Eichen et al. | Oct 2004 | A1 |
20040236966 | D'Souza et al. | Nov 2004 | A1 |
20040244058 | Carlucci et al. | Dec 2004 | A1 |
20040255156 | Chan et al. | Dec 2004 | A1 |
20050018618 | Mualem et al. | Jan 2005 | A1 |
20050050377 | Chan et al. | Mar 2005 | A1 |
20050076235 | Ormazabal et al. | Apr 2005 | A1 |
20050165917 | Le et al. | Jul 2005 | A1 |
20050201320 | Kiss et al. | Sep 2005 | A1 |
20050201357 | Poyhonen | Sep 2005 | A1 |
20050232229 | Miyamoto et al. | Oct 2005 | A1 |
20060007868 | Shinomiya | Jan 2006 | A1 |
20060013192 | Le et al. | Jan 2006 | A1 |
20060075084 | Lyon | Apr 2006 | A1 |
20060075132 | Liu | Apr 2006 | A1 |
20060077981 | Rogers | Apr 2006 | A1 |
20060146792 | Ramachandran et al. | Jul 2006 | A1 |
20060165060 | Dua | Jul 2006 | A1 |
20060227766 | Mickle et al. | Oct 2006 | A1 |
20070022479 | Sikdar et al. | Jan 2007 | A1 |
20070110053 | Soni et al. | May 2007 | A1 |
20070118894 | Bhatia | May 2007 | A1 |
20070121596 | Kurapati et al. | May 2007 | A1 |
20070192863 | Kapoor et al. | Aug 2007 | A1 |
20080037447 | Garg et al. | Feb 2008 | A1 |
20080040801 | Buriano et al. | Feb 2008 | A1 |
Entry |
---|
Sisalem, Dorgham, Jiri Kuthan, and Sven Ehlert. “Denial of Service Attacks Targeting a SIP VoIP Infrastructure: Attack Scenarios and Prevention Mechanisms.” IEEE Network, vol. 20, Issue: 5, Publication Year: 2006, pp. 26-31. |
Rosenberg, et al., “SIP: Session Initiation Protocol”, Internet Engineering Task Force, Request for Comments 3261, Jun. 2002. |
Kuthan, et al., “Middlebox Communication: Framework and Requirements-Internet Draft,” Internet Engineering Task Force (IETF), http://tools.ietf.org/html/draft-kuthan-midcom-framework-00, 26 pages, Nov. 2000. |
Number | Date | Country | |
---|---|---|---|
20080222724 A1 | Sep 2008 | US |