The objective of network threats, such as botnets, malware, and spyware, is to take ownership of a victim's machine, for instance, to gain access to sensitive information or to mount secondary attacks. In either case, the infected machine oftentimes connects to its “owner”, for instance, over the Internet, to transfer stolen information and/or receive new commands. It is typically when an infected machine attempts this connection that the owner of the threat is vulnerable to detection.
Features of the present disclosure are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
For simplicity and illustrative purposes, the present disclosure is described by referring mainly to an example thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be readily apparent however, that the present disclosure may be practiced without limitation to these specific details. In other instances, some methods and structures have not been described in detail so as not to unnecessarily obscure the present disclosure. As used herein, the term “includes” means includes but not limited to, the term “including” means including but not limited to. The term “based on” means based at least in part on. In addition, the terms “a” and “an” are intended to denote at least one of a particular element.
Disclosed herein are a network access apparatus and a method for processing packets. The network access apparatus includes a network access module that is to perform network access functions, such as forward functions, switching functions, etc., and a control module that is to perform inspection and control functions. Particularly, the network access module is to route Ethernet packets, which may include at least one of Spanning Tree (STP), Link Aggregation Control Protocol (LACP), Internet Protocol (IP), etc., types of packets; which are also referred to as “packets” throughout the present disclosure, through a network. By way of example, the network access module is to receive packets containing a request for access to a destination address from a client device and to transmit the packets to the destination address. An additional functionality of the network access module is to determine whether the received packets comprise a predetermined type of communication. In the event that the received packets are determined to comprise the predetermined type of communication or request, the network access module is to instruct the control module to further inspect and act on the packets.
The control module is to determine a feature of the plurality of packets received from the network access module, to determine whether the feature matches a configuration of a plurality of predetermined configurations, and to perform a predefined action on the plurality of packets in response to the feature matching the configuration. According to an example, the feature and the predetermined configurations comprise signatures of applications, signatures of devices, web addresses, IP addresses, etc. By way of particular example, therefore, the network access apparatus may perform, directly within the network, reputation filtering of the IP addresses that client devices are attempting to access through the network.
The configurations may be contained on a configuration structure that is to be updated, for instance, on a regular basis, such that the configurations are kept relevant with current data landscapes. By way of example, the configurations comprise security threats and the control module may determine whether the packets received from client devices are likely security threats. In other examples, the configurations comprise other types of signatures and the control module may determine whether a feature of the packets received from client devices matches any of these types of signatures.
In addition, in response to a determination that a feature of the packets matches a configuration, the control module is to perform a predefined action on the plurality of packets. The predefined action may include, for instance, at least one of modifying, rerouting, dropping, enforcing a specific action on the packets based upon a set policy, etc.
Generally speaking, the network access apparatus may implement application detection, device detection, and/or security threat detection. Particularly, the network access apparatus may implement application fingerprinting and device fingerprinting in combination with security threat detection. In one regard, therefore, the network access apparatus disclosed herein may detect an infected computing device and may determine additional information pertaining to the infected computing device. For instance, the network access apparatus may determine information pertaining to, for instance, the type of application the computing device was running at the time the computing device became infected, as well as the profile of the computing device. This information may be useful in identifying a solution to the infected computing device.
According to an example, a plurality of network access apparatuses may be implemented at the edge of a network to intercept and act upon packets prior to introduction of the packets into the network. In addition, the network access apparatuses are made to be aware of the packets that the network access apparatuses received and to perform more than just switching operations on the packets. In this regard, the network access apparatuses disclosed herein may be considered as being content-aware, in which content-aware may be defined as application-aware, device-aware, botnet-aware, etc.
With reference to
The network environment 100 is depicted as including a number of network access apparatuses 102a-102c that are networked to each other in one of a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), etc. Although not shown, the network environment 100 includes a connection to the Internet, either through the network access apparatuses 102a-102b or through another device (not shown) in the network environment 100, in which the various devices form a network. Generally speaking, the network access apparatuses 102a-102c comprise apparatuses that function to allow or deny access by the client devices 110a-110c to a network, such as, the Internet, an intranet, etc. In this regard, the network access apparatuses 102a-102c may comprise switches, routers, wireless access points, wireless controllers, hubs, bridges, servers, etc.
According to an example, the network access apparatuses 102a-102c are positioned at an edge of the network, i.e., where the client devices 110a-110c connect to the network. In this example, the network access apparatuses 102a-102c are to process packets at the entry points through which the packets are received into the network. As such, the network access apparatuses 102a-102c may Intercept certain types of packets prior to the packets being introduced further into the network, which may reduce the amount of bandwidth required to propagate the certain types of packets through the network. In other examples, the network access apparatuses 102a-102c may be positioned at various other locations in the network environment 100.
The client devices 110a-110c comprise personal computers, servers, laptop computers, tablet computers, cellular telephones, or any other electronic device that may be used to access the network environment 100. In addition, the client devices 110a-110c may communicate with the network access apparatuses 102a-102c through any suitable wired or wireless communication link. An example of a suitable wired communications link includes a connection established through an Ethernet link or other physical connection. Examples of suitable wireless communications links include connections established through an 802.11 link, a Bluetooth™ link, infrared communication, etc. in this regard, the network access apparatuses 102a-102c comprise equipment to enable either or both of wired and wireless communications with the client devices 110a-110c.
The network access apparatuses 102a and 102b are also depicted as each including a network access module 104 and a control module 106. The network access modules 104 are to receive packets from the client devices 110a-110c and may perform a forwarding function on the received packets. The forwarding function may comprise, for instance, identifying a destination address of the packets and forwarding the packets to the identified destination address. In addition, the network access modules 104 are to process the packets to determine whether the packets comprise a predetermined type of communication. The predetermined type of communication may include any detectable protocol and/or pattern. By way of example, the predetermined type of communication may comprise at least one of a Domain Name Service (DNS) request, a new IP flow, a predetermined type of application, a packet received from a predetermined type of device, etc. Thus, for instance, the network access module 104 may process the packets to identify application patterns, device behavior patterns, etc.
In response to the packets comprising a type of communication other than the predetermined type of communication, the network access modules 104 perform the forwarding function on the packets by forwarding the packets to their respective destinations or to other network access apparatuses in the network environment 100. However, in response to the packets comprising a predetermined type of communication, the control modules 106 are to inspect the packets to determine whether a feature of the packets matches a configuration of a plurality of predetermined configurations.
The features and configurations may comprise, for instance, client device 110a-110c identifiers (such as MAC addresses, IP addresses, etc.), identifiers of applications running on the client devices 110a-110c (such as, TCP port numbers, etc.), IP addresses of websites known and/or suspected as being associated with a threat, etc. The threats may comprise, for instance, botnets, malware, spyware, Trojans, worms, denial of service attacks, spam generation, etc. In any regard, and according to an example, each of the control modules 106 includes a configuration structure that contains the plurality of predetermined configurations. In addition, the control modules 106 communicate with an intelligence feed service 120, for instance, over the Internet, to receive updates on the predetermined configurations, such that the predetermined configurations are kept up-to-date and therefore relevant. More particularly, the intelligence feed service 120 collects configurations, such as, domain names, IP addresses, etc., of security threats and communicates the collected configurations to the control modules 106. In one example, the intelligence feed service 120 communicates updates of newly identified predetermined configurations at set intervals of time, such as, every couple of hours. An example of a suitable intelligence feed service 120 is DVLabs™ of the Hewlett Packard Company™.
If a control module 106 determines that the determined feature of the packets match a configuration of the plurality of configurations, the control modules 106 are to perform a predefined action on the plurality of packets. The predefined action comprises at least one of modifying the packets to change content of the packets, re-routing the packets, dropping the packets, reconfiguring the network access module 104, etc. Modifying the packets may comprise, for instance, changing the order in which the packets are sent out of the network access apparatus 102a, attaching additional data to the packets, etc. In addition or alternatively, modifying the packets may comprise modifying the actual content of the packets in line with a predetermined policy. For instance, the packets may be compressed, for instance, converted to a symbol, and may be decompressed further down the line in the network.
According to a particular example, the control module 106 may determine that a client device 110a from which a set of IP packets originated is likely infected by a virus. In this example, the control module 106 is to take actions to substantially mitigate damage caused by the virus, such as, the communication of information contained in the client device 110a, the spread of the virus to other devices in the network environment 100, etc. For instance, the control module 106 is to at least one of reconfigure the network access module 104 to block network access by the infected client device 110a, to quarantine the infected client device 110a to block the infected client device's access to a particular server, to block the infected client device's access to the Internet, etc. In addition, the control module 106 is to send an alert to a network management station 130 to report that the client device 110a is infected with a virus. The network management station 130 may comprise a server or a set of machine readable instructions on a server or other network apparatus that is to track the security statuses of the client devices 110a-110c. According to an example, the network management station 130 informs the network access apparatuses 102a-102c that packets from infected client devices are to be blocked.
As shown in
According to an example, instead of processing all of the received packets to determine whether the packets comprise a predetermined type of communication, the network access modules 104 are to process only a sampled subset of the plurality of packets. By processing only a sampled subset of the received plurality of packets, the network access apparatuses 102a-102c may perform the packet processing operations without experiencing significant performance loss or expense.
Turning now to
The network access apparatus 102a is depicted as including a network access module 104, a processor 202, an input/output interface(s) 204, and a data store 206. The network access module 104 is also depicted as including a packet processing module 208 and a control module instructing module 210. The processor 202, which may comprise a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), and the like, is to perform various processing functions in the network access network access apparatus 102a. One of the processing functions includes invoking or implementing the modules 208-210 of the network access module 104 as discussed in greater detail herein below.
The control module 106 is depicted as including a configuration structure 220 and an inspection agent 222. According to an example, the processor 202 is to control operations of the inspection agent 222. In another example, however, the inspection agent 222 includes a separate processor (not shown), which may comprise any of the types of processors discussed above with respect to the processor 202.
According to an example, the network access module 104 comprises a hardware device, such as, a circuit or multiple circuits arranged on a board. In this example, the modules 208-210 comprise circuit components or individual circuits. According to another example, the network access module 104 comprises a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM), magnetoresistive random access memory (MRAM), Memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like. In this example, the modules 208-210 comprise software modules stored in the network access module 104. According to a further example, the modules 208-210 comprise a combination of hardware and software modules.
According to an example, the control module 106 comprises a hardware device, such as, a circuit or multiple circuits arranged on a board. In this example, the inspection agent 222 comprises a circuit component. In this example, the inspection agent 222 may be integrated on a common circuit board with the modules 208-210 or on a separate circuit board from the modules 208-210. According to another example, the inspection agent 222 comprises a volatile or non-volatile memory, such as dynamic random access memory (DRAM), electrically erasable programmable read-only memory (EEPROM), magnetoresistive random access memory (MRAM), Memristor, flash memory, floppy disk, a compact disc read only memory (CD-ROM), a digital video disc read only memory (DVD-ROM), or other optical or magnetic media, and the like. In this example, the inspection agent 222 comprises a software module that may be stored in a common memory with the modules 208-210. According to a further example, the modules inspection agent 222 comprises a combination of hardware and software modules.
The input/output interface(s) 204 may comprise a hardware and/or a software interface. In this regard, the input/output interface(s) 204 may comprise either or both of hardware and software components that enable receipt and transmission of IP packets. Thus, for instance, the input/output interface(s) 204 comprise physical ports, such as, Ethernet ports, optical fiber ports, etc., into which cables are to be physically inserted. In another example, the input/output interface(s) 204 comprise equipment to enable wireless communication of IP packets, such as, equipment to enable WiFI™, Bluetooth™, etc.
In any regard, the network access module 104 is to receive packets from the client devices 110a-110c through the input/output interface(s) 204. The processor 120 may also store the received packets in the data store 206 and may use the data in implementing the modules 208-210, and in certain examples, the inspection agent 222. The data store 206 comprises volatile and/or non-volatile memory, such as DRAM, EEPROM, MRAM, phase change RAM (PCRAM), Memristor, flash memory, and the like. In addition, or alternatively, the data store 206 comprises a device that is to read from and write to a removable media, such as, a floppy disk, a CD-ROM, a DVD-ROM, or other optical or magnetic media.
The configuration structure 220 has stored thereon or otherwise contains a plurality of predetermined configurations against which features of packets are compared, as further discussed herein. The configuration structure 220 comprises at least one of a database, a set of filters, a set of signatures, feeds, etc. In this regard, the configuration structure 220 may be loaded directly onto a memory array, into a database, etc. In addition, the configuration structure 220 is to receive an intelligence feed 230, for instance, from the intelligence feed service 120 (
Various manners in which the network access module 104 and the control module 106 may be implemented are discussed in greater detail with respect to the methods 300 and 400 respectively depicted in
Generally speaking, the methods 300 and 400 may be implemented to process packets in a network environment 100 to perform application and device fingerprinting, in combination with threat detection. In addition, the methods 300 and 400 may be implemented in a plurality of network access apparatuses 102a-102c positioned at the edge of a network to therefore intercept packets as the packets are introduced into the network by the client devices 110a-110c and substantially prevent propagation of certain types of packets through the network.
With reference first to method 300 in
At block 304, a determination is made as to whether the packets comprise a predetermined type of communication, for instance, by the packet processing module 208. The predetermined type of communication may include any detectable protocol and/or pattern, as discussed in greater detail herein above. According to an example, the packet processing module 208 may make the determination at block 304 through an analysis of information contained in the packets. For instance, the packet processing module 208 many analyze the information contained in the headers of the packets to determine the detectable protocol and/or pattern of the packets.
At block 306, in response to the packets comprising the predetermined type of communication, the control module 106 is instructed to analyze the packets, for instance, by the control module instructing module 210. More particularly, the control module instructing module 210 instructs the inspection agent 222 of the control module 106 to analyze the packets. In instances where the control module 106 is integrated with the network access module 104, the control module instructing module 210 may simply instruct the inspection agent 222 to analyze the packets stored in the data store 206. Alternatively, and in instances where the control module 106 comprises a component separate from the network access module 104, the control module instructing module 210 may encapsulate the packets and forward the encapsulated packets to the control module 106. In this example, the inspection agent 222 may store the packets in a memory (not shown) of the control module 106.
At block 308, in the control module 106, a determination is made as to whether a feature of the packets matches a configuration of a plurality of predetermined configurations, for instance, by the inspection agent 222. More particularly, the inspection agent 222 makes this determination by determining whether a feature of the packets matches a configuration of the plurality of predetermined configurations contained in the configuration structure 220. In instances where the predetermined configurations are stored in the configuration structure 220, the inspection agent 222 may make this determination by comparing the feature of the packets with the stored predetermined configurations. In instances where the configuration structure 220 comprises a set of filters corresponding to the predetermined configurations, the inspection agent 222 may make this determination by performing a filtering operation on the feature of the packets with respect to the filters contained in the configuration structure 220.
At block 310, in the control module 106, a predefined action is performed on the packets, for instance, by the inspection agent 222. Particularly, the predefined action comprises at least one of instructing the network access module 104 to output the packets, modifying the plurality of packets to change content of the plurality of packets, re-routing the plurality of packets, dropping the plurality of packets, reconfiguring the network access module 104, etc. The determination as to which of the predefined actions is performed may be based upon the determination made at block 308 as to whether a feature of the packets matches a configuration of the plurality of predetermined configurations.
Turning now to the method 400 in
At block 402, a plurality of packets are received in a network access module 102a from a client device 110a as discussed above with respect to block 302 in
According to an example, at block 404, instead of processing all of the received packets to determine whether the packets comprise a predetermined type of communication, the packet processing module 208 processes only a sampled subset of the plurality of packets. The sampled subset may comprise any reasonably suitable subset of all of the packets that the network access module 104 receives, such as, a predetermined percentage of all of the packets, the packets that have been received at predefined intervals of time, etc.
In response to a determination that the packets comprise the predetermined type of communication, at block 408, the control module 106 is instructed to analyze the packets, for instance, as discussed above with respect to block 306. In addition, at block 410, the inspection agent 222 determines a feature of the packets, which may comprise, for instance, a signature of an application, a signature of a device, an IP address of a website identified in the packets, etc.
At block 412, a determination as to whether the feature matches the configuration of a plurality of predetermined configurations is made, for instance, as discussed above with respect to block 308. According to an example, the inspection agent 222 makes this determination by comparing the feature determined at block 410 with a plurality of predetermined configurations contained in a configuration structure 220. As discussed above, the configuration structure 220 is to be updated substantially periodically and thus, the analysis of the feature of the packets may be performed on a relatively up-to-date set of predetermined configurations. If the feature of the packets does not match any of the configurations of the plurality of predetermined configurations contained in the configuration structure 220, at block 414, the inspection engine 222 instructs the network access module 104 to output the packets. In addition, at block 406, the network access module 104 outputs the packets to, for instance, establish a connection between the client device 110a and the requested website.
If the feature of the packets matches a configuration of the plurality of predetermined configurations contained in the configuration structure 220, at block 416, a predefined action is performed on the packets, for instance, by the inspection agent 222, as discussed above with respect to block 310. According to an example, the inspection agent 222 sends an alert to the network management system 130 to inform the network management system 130 of the action performed on the packets. By way of particular example, the network management station 130 may communicate an indication that the client device 110a has been infected to the network access apparatuses 102b-102c to enable those network access apparatuses 102b-102c to also block network access by the infected client device 110a.
Some or all of the operations set forth in the methods 300 and 400 may be contained as a utility, program, or subprogram, in any desired computer accessible medium. In addition, the methods 300 and 400 may be embodied by machine readable instructions, which may exist in a variety of forms both active and inactive. For example, they may exist as source code, object code, executable code or other formats. Any of the above may be embodied on a non-transitory computer readable storage medium. Examples of non-transitory computer readable storage media include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.
Turning now to
The computer readable medium 510 comprises any suitable medium that participates in providing instructions to the processor 502 for execution. For example, the computer readable medium 510 may be non-volatile media. The operating system 514 may also perform basic tasks such as but not limited to recognizing receipt of packets, transmitting the packets to their destination addresses, and managing traffic on the bus 512. The network applications 516 include various components for establishing and maintaining network connections, such as but not limited to machine readable instructions for implementing communication protocols including TCP/IP, HTTP, Ethernet, USB, and FireWire.
The packet processing application 518 provides various components for processing packets as discussed above with respect to the methods 300 and 400 in
In certain examples, some or all of the processes performed by the application 518 may be integrated into the operating system 514. In certain examples, the processes may be at least partially implemented in digital electronic circuitry, or in computer hardware, machine readable instructions (including firmware and software), or in any combination thereof, as also discussed above.
What has been described and illustrated herein are examples of the disclosure along with some variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Many variations are possible within the scope of the disclosure, which is intended to be defined by the following claims—and their equivalents—in which all to are meant in their broadest reasonable sense unless otherwise indicated.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2012/035883 | 4/30/2012 | WO | 00 | 7/16/2014 |