The invention relates generally to a computer network, and more particularly to computer network security.
Modern computer systems are under constant threat of security breaches. Viruses, worms, data miners, key loggers, trojans, “bots”, “botnets”, spy ware, and malware are common terms used to describe types of software that can infect a computer system within a network. For example, in a common scenario, a trojan software component can be received and activated through a user's email system. A trojan is a specialized piece of software that is distributed by stealth, misdirection, or mimicry to infect other computer systems with a malicious payload. Once a trojan is received by a computer system, it can deposit the payload on the system.
Forms of malware can also be attracted by a host who is visiting a website that is infected, using an Internet connection that is compromised, or using a piece of software that has malware already resident in it. In other words, the infection can be contracted regardless of traditional security defense systems like firewalls, anti-virus software, anti-spyware software, intrusion detection systems, web proxies, and the like.
This payload often embodies autonomous software, sometimes termed a “bot”, which operates as an agent for another entity, such as a hacker, an identity thief, etc. The bot can execute within the computer system (e.g., within a company's subnetwork) and establish a connection over a network with another computer outside the company's subnetwork. In many cases, the bot is programmed to circumvent conventional security features of the computer system or the subnetwork in which it resides. For example, a bot commonly attempts to connect with the entity by probing a set of network addresses, in the hope that it will find a response. If the bot receives a response it understands from a program at one of these network addresses, the bot can maintain the connection with the remote program at that address and gather its next set of instructions from the remote program, thereby providing the remote program with access to the computer's resources from within the computer's security framework. Because the communications are initiated within the computer system and/or subnetwork rather than from another device or from the external network, traditional defense system within a company's security framework generally fail to detect the intrusions.
Existing approaches for protecting a computer against these kinds of threats include firewalls, antivirus software, spyware protection software, Intrusion Detection Systems (IDSs), Intrusion Prevention Systems (IPSs), and other types of prophylactic software and systems. However, these solutions do not adequately provide real-time detection and diagnostic information to allow a system administrator to identify an infected computer that has attracted a form of malware within the subnetwork and take corrective action.
Implementations described and claimed herein address the foregoing problems by detecting and redirecting suspect traffic from within a subnetwork and evaluating the redirected suspect traffic to identify an infected device within the subnetwork. An adaptive system receives suspect traffic information pertaining to possible network threats. A router detects and redirects suspect traffic from within a subnetwork to an interrogation module. The interrogation module receives the redirected suspect traffic and identifies the source device from within the subnetwork. The interrogation module can also identify the type of suspect traffic, the original destination of the suspect traffic and the protocol type of a packet within the suspect traffic. Suspect traffic information can be updated and the router can be reconfigured to accommodate the updated information.
In some implementations, articles of manufacture are provided as computer program products. One implementation of a computer program product provides a tangible computer program storage medium readable by a computer system and encoding a computer program. Another implementation of a computer program product may be provided in a computer data signal embodied in a carrier wave or other communication media by a computing system and encoding the computer program.
Other implementations are also described and recited herein.
In addition to the router 108, the subnetwork 102 may also be protected by a firewall 110. All messages entering or leaving the intranet pass through the firewall, which examines each message and blocks those that do not meet the specified security criteria. There are several types of firewall techniques, including without limitation:
Various security threats exist within the external network 100 including so-called “command and control” nodes—computers executing control programs that communicate with and manipulate one or more remote malicious agents, called “bots”. Generally, bots represent noninteractive processes (i.e., not interactive with or intentionally initiated by the user) executing within a computing devices anywhere on the external network 100 and attached subnetworks. Typically, the bots are installed on these computing devices by a virus or some other malware program and are unknown to the user. For example, the virus can contain a payload containing malicious yet stealthy agent code and can be communicated by email. When the user executes the virus (e.g., by opening an infected email), the agent is installed and initiated on the user's systems. The agent can be programmed to perform a variety of operations (e.g., execute a denial-of-service attack on a given website). Alternatively, the agent can attempt to connect with a command and control node on the external network 100 and provide specific services. For example, the agent can provide sensitive information on the user's system to the command and control node. The noninteractive nature of these processes contributes to their dangerous nature because they remain unknown to the user.
In one scenario, the subnetwork 102 includes a variety of computing devices 112, including a server 114 and a client 116, which are examples of source devices that may execute noninteractive processes originating suspect traffic. The client 116 has been infected with a bot agent 118, which attempts to initiate communications 120 with an address on the external network 100 without any interaction by the user. For example, the agent 118 may scan a set of addresses on the external network 100 until it receives a response. Under typical security conditions, the router 108 and firewall 110 will not block communications from the external network 100 that are in response to a request from inside the subnetwork 102. Accordingly, by infecting the client 116 inside the subnetwork 102, a command and control node in the external network 100 may gain access to a device in the subnetwork 102.
However, a great number of the external network addresses that the agent 118 might try to contact fall into a category of suspect addresses. One category of suspect addresses may be termed “bogons”, which describes Internet Protocol (IP) blocks not allocated by the Internet Assigned Numbers Authority (IANA) and Regional Internet Registries (RIRs) to Internet Service Providers (ISPs) and other organizations. The term “bogon” can also include other IP address blocks that are reserved for private or special use by various organizations and standards. As these bogon addresses are not allocated or specially reserved, such addresses should not be routable and used on the internet. Nevertheless, some of these addresses do appear on the network, sometimes used by those individuals and organizations that are specifically trying to avoid being identified and/or involved in such activities as DoS attacks, email abuse, hacking and other security problems. Accordingly, bogons represent a type of suspect address. Other suspect address categories may also be identified. For example, IP addresses of known threats (e.g., a known hacker, a known phisher, a known pharmer, a known command and control node, etc.) can be added to the suspect address list.
Generally, the suspect addresses are available from one or more suspect address sources 122, which are shown in
It should be understood that
In one implementation, one or more of the suspect address sources 210 provide the suspect addresses as a Border Gateway Protocol (BGP) announcement, although other formats may be employed, including without limitation simple lists of IP addresses in Netrange format, CIDR prefix format, CIDR bit mask format, Dotted Decimal format, and/or announcements in other routing protocols, such as OSPG and RIP. BGP is an exterior gateway routing protocol that enables groups of routers (called autonomous systems or ASs) to share routing information so that efficient, loop-free routes can be established in the Internet. BGP is commonly used within and between Internet Service Providers (ISPs). The protocol is defined in RFC 1771. The suspect addresses may also include a “type” parameter indicating the type(s) of threat each address represents (e.g., bogon, badguy, etc.). The suspect addresses may also include the type of packet (e.g., UDP, TCP, etc.), although this information may also be determined from examination of a received packet.
In one implementation, the suspect addresses 206 are updated as any one of the suspect address sources 210 receives a change to its suspect address data (e.g., a new IP address block is legitimately allocated by IANA or a new hacker site is identified). By quickly updating the suspect addresses 206, the suspect address sources 210 can provide the most up-to-date notice of possible threats. Likewise, by accepting recurrent updates, an adaptive interrogator 204 can adapt the security configuration of the subnetwork 202 to account for the changes in the suspected address 206. As updates are received by the adaptive interrogation module 204, the adaptive interrogation module 204 updates a (typically local) database of suspect addresses and reconfigures the router 212 according to the new information.
With each suspect address update (or some frequency), the adaptive interrogation module 304 reconfigures the router 306 with a new set of suspect addresses, if any changes to the suspect address list have been made. In this manner, the adaptive interrogation module 304 adapts to the changes in threats from the external network 300 (e.g., as identified by suspect addresses received by the adaptive interrogation module 304).
It should be understood that threats could also be detected by evaluating other characteristics of a packet. For examples, another interface to the adaptive interrogation module 404 may be added to capture additional forensic/layer-4 data about a bot's behavior. Based on this behavior, an adaptive interrogation module 404 may be able to detected suspicious behavior and identify other suspect addresses not initially received from the suspect address sources.
The destination address, or some part thereof, of an outgoing packet is evaluated against addresses or address ranges in the routing table of the router 406. In one implementation, the routing table includes entries for the suspect addresses (as configured by the adaptive interrogation module 404). Such entries include an address for the adaptive interrogation module 404 as a forwarding address. In this manner, when the router 406 routes packets received from within the subnetwork 402, suspect packets are redirected to the adaptive interrogation module 404 (see communications path 408) while non-suspect packets are forwarded to an address in the appropriate routing sequence (see communications path 410).
Although
Another receiving operation 506 receives messages from within the subnetwork. If a received message is destined for a suspect address in the external network, the message (e.g., one or more IP packets) is redirected to the adaptive interrogation module in a redirection operation 508. An evaluation operation 510 examines the redirected packet to identify the source device that attempted to send the message out of the subnetwork. Such examination may be accomplished by examining message header data, payload data, or metadata to determine the source address or other source identifier. A display operation 512 displays the source address, the message type, the suspect address type, or other message-related information.
Identification of the source device may be accomplished in various circumstances. In one example, the source device uses an external IP address instead of a Network Address Translation (NAT) address. In this circumstance, the source address of the redirected packet may identify the source device that originated the suspect packet. Alternatively, if the subnetwork is using NAT, the adaptive interrogation module may be farther “inside” the subnetwork than the device providing the translation. Therefore, the IP address of the redirect packet may still identify the source device that originated the suspect packet. In yet another configuration, the NAT device may maintain static 1-to-1 NAT-to-public address mappings, where public addresses can be directly translated to the NAT addresses.
Other methods for identifying the source device of a suspect packet may be employed, including a brute force isolation of devices and branches within the subnetwork until the source device can be identified by changes in the redirected traffic. Alternatively, an additional port may be used to monitor traffic arrive at the NAT device from the local devices within the subnetwork, matching that traffic to corresponding external traffic, and building a table of connections for external mapping. In yet another configuration, if the subnetwork employs 1:1 NAT, but the internal addresses are assigned by the Dynamic Host Configuration Protocol (DHCP) (e.g., the mappings are not static), then the adaptive packet interrogation module may access the DHCP logs or a database of DHCP assignments. In subnetworks employing a NAT device, the NAT device itself may be queried to provide the IP or MAC address of the source device (e.g., using address, port, and timestamp logs).
As mentioned, suspect traffic is redirected via the link 614 to the traffic interface 612. The suspect traffic passes through a firewall module 616, which logs the traffic, including source and destination addresses and hostnames of individual packets, if appropriate, into a firewall log 618. A scanner module 620 reads the firewall log 618 and loads the read data into a scanner log 622, which also includes the source and destination addresses of individual packets. In one implementation, the scanner module 620 can determine whether packets have suspicious addresses (e.g., based on the addresses in the database 608), and if so, why they are considered suspicious (e.g., if they are addressed to unassigned address space, they are deemed “bogons”, and if they are addressed to known command and control sites, they are deemed “bad guys”). For example, the address may be associated within the database 608 with a specific suspicious packet type. The scanner log 622 has a format understood by an alerting module 623, which allows syslog, email, and text message alerting of events, as well as a database loader 624, which loads the scanner log data into a database 626. A reporting engine 625 reads data from the database 626 and formats reports for the web server 628 as well as allowing for additional future reporting export functionality. A web server module 628 is capable of accessing the reporting engine 625 and constructing web pages containing the reporting data. A browser module 630 receives the reporting data from the web server module 628 and displays the reporting data on a display 632.
As discussed, the scanner module 620 can determine the suspect traffic type of a packet. In one implementation, a brute force loop comparing packet addresses to addresses in the database 608 is used to determine the suspect traffic type of each packet. Alternative methods may be employed, including without limitation hash table lookups, sparse arrays, lookups based on binary trees, etc. In another implementation, the PATRICIA (Practical Algorithm to Retrieve Information Coded in Alphanumeric) Trie algorithm is used.
The I/O section 1004 is connected to one or more user-interface devices (e.g., a keyboard 1016 and a display unit 1018), a disk storage unit 1012, and a disk drive unit 1020. Generally, in contemporary systems, the disk drive unit 1020 is a DVD/CD-ROM drive unit capable of reading the DVD/CD-ROM medium 1010, which typically contains programs and data 1022. Computer program products containing mechanisms to effectuate the systems and methods in accordance with the described technology may reside in the memory section 1004, on a disk storage unit 1012, or on the DVD/CD-ROM medium 1010 of such a system 1000. Alternatively, a disk drive unit 1020 may be replaced or supplemented by a floppy drive unit, a tape drive unit, or other storage medium drive unit. The network adapter 1024 is capable of connecting the computer system to a network via the network link 1014, through which the computer system can receive instructions and data embodied in a carrier wave. Examples of such systems include SPARC systems offered by Sun Microsystems, Inc., personal computers offered by Dell Corporation and by other manufacturers of Intel-compatible personal computers, PowerPC-based computing systems, ARM-based computing systems and other systems running a UNIX-based or other operating system. It should be understood that computing systems may also embody devices such as Personal Digital Assistants (PDAs), mobile phones, gaming consoles, set top boxes, etc.
When used in a LAN-networking environment, the computer system 1000 is connected (by wired connection or wirelessly) to a local network through one or more network interfaces or adapters 1024, which is one type of communications device. When used in a WAN-networking environment, the computer system 1000 typically includes a modem, a network adapter, or any other type of communications device for establishing communications over the wide area network. In a networked environment, program modules depicted relative to the computer system 1000 or portions thereof, may be stored in a remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
In accordance with an implementation, software instructions and data directed toward receiving suspect addresses, causing redirection of suspect traffic, identifying a source device sending a suspect message, and other operations may reside on disk storage unit 1009, disk drive unit 1007 or other storage medium units coupled to the system. Said software instructions may also be executed by CPU 1006.
Here, suspect traffic is monitored via the link 1114 to the traffic interface 1112. The suspect traffic passes through a firewall module 1116, which logs the traffic, including source and destination addresses of individual packets, if appropriate, into a firewall log 1118. A scanner module 1120 reads the firewall log 1118 and loads the addresses that are determined to be suspicious (based on the suspect address information) into a scanner log 1122, which also includes the source and destination addresses and hostnames of individual packets. In one implementation, the scanner module 1120 can determine whether packets have suspicious addresses (e.g., based on the addresses in the database 1108), and if so, why they are considered suspicious (e.g., if they are addressed to unassigned address space, they are deemed “bogons”, and if they are addressed to known command and control sites, they are deemed “bad guys”). For example, the address may be associated within the database 1108 with a specific suspicious packet type. The scanner log 1122 has a format understood by an alerting engine 1123 which allows syslog, email and text message alerting of events, as well as a database loader 1124, which loads the scanner log data into a database 1126. A reporting engine 1125 reads data from the database 1126 and formats reports for the web server 1128 as well as allowing for addition future reporting export functionality. A web server module 1128 is capable of accessing the reporting engine 1125 and constructing web pages containing the reporting data. A browser module 1130 receives the reporting data from the web server module 1128 and displays the reporting data on a display 1132.
The scanner module 1120 can use a variety of mechanisms for passing data to the alerting engine 1123 and the suspicious activity databases. In one implementation, the scanner module 1120 can write directly to a log file, which is then read independently by the alerting engine 1123 or other modules. In an alternative implementation, the scanner module 1120 can use a syslog facility (e.g., a standard syslog facility or syslog-ng) to write to a log file and to directly trigger other alerting and/or logging action. In yet another implementation, the scanner module 1120 can send messages to the alerting engine 1123 using standard or proprietary interprocess communications (IPC) channels, either locally or across a communications network. Such IPC mechanisms may include UNIX or Internet Domain sockets, named pipes, and other system-based or proprietary mechanisms. Likewise, the firewall module 1116 may use similar methods to pass data to the scanning module 1120. Other communications methods are also contemplated.
As discussed, the scanner module 1120 can determine the suspect traffic type of a packet. In one implementation, a brute force loop comparing packet addresses to addresses in the database 1108 is used to determine the suspect traffic type of each packet. Alternative methods may be employed, including without limitation hash table lookups, sparse arrays, lookups based on binary trees, etc. In another implementation, the PATRICIA (Practical Algorithm to Retrieve Information Coded in Alphanumeric) Trie algorithm is used.
The embodiments of the invention described herein are implemented as logical steps in one or more computer systems. The logical operations of the present invention are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
It should be understood that logical operations described and claimed herein may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another embodiment without departing from the recited claims.
This application claims benefit of U.S. Provisional Patent Application No. 60/683,439, entitled “Suspect Traffic Redirection” and filed on May 20, 2005, specifically incorporated herein by reference for all that it discloses and teaches.
Number | Date | Country | |
---|---|---|---|
60683439 | May 2005 | US |