Computing devices, such as laptops, desktops, mobile phones, tablets, and the like often utilize resources including services, data, and applications within an electronic communication network. Consequently, networks of these computing devices have grown in size and complexity. These networks may include various infrastructure devices, such as switches, routers, hubs, and the like, which connect to and provide the network for the computing devices.
The following detailed description references the drawings, in which:
A host internet protocol or IPv6 (IP) address may move between ports on a network (such as moving among wireless access points). A host address may also change its media access control (MAC) address (such as a server being replaced or a dynamic host configuration protocol (DHCP) address being re-used). Each of these changes is part of normal network activity on a flexible network. These activities are also difficult to distinguish from attacker behavior, such as where an attacker spoofs a host IP and/or host MAC address.
Previously, networks may have enforced static (or sticky) bindings on a single network device. However, this approach places extensive maintenance and management responsibilities on network administrators. For instance, when a host is decommissioned, the network administrator must reflect the change in each of the network appliances that enforce security. For environments where host addresses change frequently, the network administrator may simply choose not to enforce security, thus causing security problems and leaving the network more susceptible to attack.
Alternatively, networks may have implemented protocol-specific (such as DHCP) packet listening to monitor the specific protocol's perception of the address usage. This approach utilizes protocol-specific knowledge that is embedded within the network appliances so that when new protocols are implemented, the network appliances' firmware needs to be upgraded. This approach is also limited in scope to a single network appliance, so one network appliance could not properly detect whether a host has moved to another network appliance within the network or whether an attack is occurring on another network appliance.
Various implementations are described below by referring to several examples of injecting a probe transmission to determine a network address conflict. For example, a computer implemented method may include identifying a conflict in network address information transmitted by an end host within a network by monitoring network address requests within the network. The computer implemented method may then inject a probe transmission to the end host via a controlled network device responsive to identifying the conflict in the network address information transmitted by the end host. Once the probe transmission is injected, the computer implemented method may determine the nature of the conflict in the network address information based on a result of the probe transmission.
In some implementations, the techniques described can reliably distinguish a host move from a host being spoofed, when that move or spoofing behavior occurs across multiple network devices. Moreover, a software defined network controller is able to detect and mitigate address spoofing more effectively than other single networking devices because it has a view of the network topology that other network devices do not have. These and other advantages will be apparent from the description that follows.
The network controller 100 is communicatively coupled to a plurality of network switches, such as controlled switches 120 and 122. Consequently, the network controller 100 is said to control the controlled switches 120 and 122. The plurality of network switches may each include one or more network ports such as ports A1 and A2 on controlled switch 120 and ports B1 and B2 on controlled switch 122. The end hosts, controlled switches, and network controller are said to form a network. For example, port A1 of controlled switch 120 is connected to end host 130a while port A2 is communicatively coupled to port B1 of controlled switch 122. Port B2 of controlled switch 122 is communicatively coupled to end host 130b. In examples, the network may be homogenous (i.e., made up of the same types and/or configurations of network devices) or heterogeneous (i.e., made up of different types and/or configurations of network devices). These network ports are utilized in communicatively coupling a switch to another networkable device, such as an end host device, another switch, a router, or another network device. These communicative couplings are referred to as links within the network.
The network represents generally hardware components and computers interconnected by communications channels that allow sharing of resources and information. The network may include one or more of a cable, wireless, fiber optic, or remote connection via a telecommunication link, an infrared link, a radio frequency link, or any other connectors or systems that provide electronic communication. The network may include, at least in part, an Intranet, the internet, or a combination of both. In another example, the network may be a software defined network and/or a virtualized network. The network may also include intermediate proxies, routers, switches, load balancers, and the like. The paths followed by network between the various components such as network controller 100, controlled switches 120 and 122 and end host 130a,b as depicted in
Additionally, each (or some) of the plurality of controlled switches 120 and 122 may include additional ports (not shown) for connecting the controlled switches to the network controller 100. These links are illustrated by the dashed lines 140 and 142, across which network traffic may be copied or transmitted from the controlled switches to the network controller 100 through a control layer 150 (or similar transmission layer) of the network. When a controlled switch, such as the controlled switches 120 and 122 receives network traffic (e.g., data packets), each of the controlled switches 120 and 122 transmit a copy of that packet to the network controller 100. However, in other examples, packets from a certain protocol (e.g., ARP or DHCP) or the first packet of unique transmission flows from a specific host may be copied or sent to the network controller 100. This enables the network controller 100 to listen for packets transmitted within the network.
In an example, the network controller 100 includes an address request monitoring module 110, an end host mapping generator module 112, and a conflict resolution module 114. The network controller 100 may also include various additional hardware components (not shown), including processing resources, memory resources, networking resources, storage resources, databases, and the like.
The address request monitoring module 110 of the network controller 100 monitors network address requests within the network to identify any conflicts in address information transmitted by end hosts within the network. A conflict occurs when the network address information (also known as link layer or control plane information) for a specific address changes compared to known link information for that end host. For example, a conflict may occur when a MAC address of a specific IP changes and/or when the port associated with a MAC address changes. Both the port and MAC address should be considered part of the “network address” which may have a conflict. The link information may be stored in a database or generated, for example, by the end host mapping generator module 112. The link information indicates across which links network traffic travels from a particular end host. By knowing this link information, the address request monitoring module 110 can compare the known link information to network address request information received from end hosts to determine whether a conflict in address information exists.
In examples, the conflict in the network address information may be identified by referencing an end host mapping dataset, which is generated by the end host mapping generator module 112. However, in other examples, the end host mapping dataset may be previously known. The address request monitoring module 110 accesses the end host mapping dataset (once generated), to determine whether a conflict has occurred based on the network address information received from the end hosts as compared to the information contained in the end host mapping dataset.
In particular, the end host mapping generator module 112 generates an end host mapping dataset based on the monitored network address requests. For example, when the end host 130a transmits network address requests, the requests (or information relating to the requests) are copied or otherwise transmitted to the network controller 100 through the control layer 150 of the network via the links 140 and/or 142 from the controlled switches 120 and 122 respectively. The information concerning the network address requests is used by the end host mapping generator 112 to generate an end host mapping dataset representative of the various end hosts and to which controlled switches each end host is connected. In the example shown in
A conflict is then identified, in the example shown, as a result of end host 130a moving to end host 130b. In this example, the address request monitoring module 110 receives network address information originating at end host 130b indicating that end host 130b is connected to controlled switch 122 at port B2. However, because the end host mapping dataset reflects that end host 130a was previously connected to controlled switch 120 at port A1, the address request monitoring module 110 identifies a conflict in the network address information.
Once a conflict in the network address information is identified by the address request monitoring module 110 (i.e., once the end host 130a moves to end host 130b), the conflict resolution module 114 determines, using the end host mapping dataset generated by the end host mapping generator module 112, the nature of the conflict in the address information based on a result of a probe transmission injected to the end host via a controlled switch. For example, when the address request monitoring module 110 identifies a conflict in the network address information, the conflict resolution module 114 determines whether the end host moved within the network or whether another network device is attempting to spoof the end host by pretending to be that end host and using the end host's network address information.
In the example shown in
Similarly, in
To resolve the conflict in network address information, the conflict resolution module 114 injects a probe transmission through the control layer 150 to the end host 130a via a controlled network device, such as controlled switch 120. Specifically, the probe transmission is directed to the network address for the end host stored in the end host mapping dataset. In examples, the network controller 100 may not be a network device that is visible to the end host; therefore, the network controller 100 injects the probe transmission via a network device that the network controller 100 controls, such as controlled switch 120. This may be the case, for example, in software defined networks. However, in other examples, if the network controller 100 may communicate directly with the end hosts, it may directly inject the communication.
In
In
The conflict resolution module 114 may then alert a network administrator of the detected spoofing, which may be indicative of a network security problem, or the conflict resolution module 114 may take an appropriate security action such as logging the spoofing event, blocking the detected spoofing end host, monitoring communications to and/or from the spoofed end host, and combinations thereof.
The network controller 200 may be a computing system to monitor and manage network attached switches. It should be understood that the network controller 200 may include any appropriate type of computing device or computing system, including for example smartphones, tablets, desktops, laptops, workstations, servers, smart monitors, smart televisions, digital signage, scientific instruments, retail point of sale devices, video walls, imaging devices, peripherals, network switches, network routers, network hubs, or the like. Additionally, the network controller 200 may be communicatively coupled to other networking devices, such as switches, hubs, routers, and combinations thereof.
The network controller 200 may include a processing resource 202 that represents generally any suitable type or form of processing unit or units capable of processing data or interpreting and executing instructions. The instructions may be stored on a non-transitory tangible computer-readable storage medium, such as memory resource 204, or on a separate device (not shown), or on any other type of volatile or non-volatile memory that stores instructions to cause a programmable processor to perform the techniques described herein. Alternatively or additionally, the network controller 200 may include dedicated hardware, such as one or more integrated circuits, Application Specific Integrated Circuits (ASICs), Application Specific Special Processors (ASSPs), Field Programmable Gate Arrays (FPGAs), or any combination of the foregoing examples of dedicated hardware, for performing the techniques described herein. In some implementations, multiple processors may be used, as appropriate, along with multiple memories and/or types of memory.
In an example, the network controller 200 also includes an address request monitoring module 210, an end host mapping generator module 212, and a conflict resolution module 214. The network controller 200 may also include various additional hardware components, including processing resources, memory resources (such as memory resource 204), networking resources, storage resources, data stores (such as database 206), and the like.
The address request monitoring module 210 of the network controller 200 monitors network address requests within the network to identify any conflicts in address information transmitted by end hosts within the network. A conflict occurs when the network address information (also known as link layer or control plane information) for a specific address changes compared to known link information for that end host. The link information may be stored in a database or generated, for example, by the end host mapping generator module 212. The link information indicates across which links network traffic travels from a particular end host. By knowing this link information, the address request monitoring module 210 can compare the known link information to network address request information received from end hosts to determine whether a conflict in address information exists.
In examples, the conflict in the network address information may be identified by referencing an end host mapping dataset, which is generated by the end host mapping generator module 212. However, in other examples, the end host mapping dataset may be previously known and stored, for example, in database 206. The address request monitoring module 210 accesses the end host mapping dataset (once generated), to determine whether a conflict has occurred based on the network address information received from the end hosts as compared to the information contained in the end host mapping dataset. In particular, the end host mapping generator module 212 generates an end host mapping dataset based on the monitored network address requests. The information concerning the network address requests is used by the end host mapping generator 212 to generate an end host mapping dataset representative of the various end hosts and to which controlled switches each end host is connected.
Once a conflict in the network address information is identified by the address request monitoring module 210, the conflict resolution module 214 determines, using the end host mapping dataset generated by the end host mapping generator module 212, the nature of the conflict in the address information based on a result of a probe transmission injected to the end host via a controlled switch. For example, when the address request monitoring module 210 identifies a conflict in the network address information, the conflict resolution module 214 determines whether the end host moved within the network or whether another network device is attempting to spoof the end host by pretending to be that end host and using the end host's network address information.
To resolve the conflict in network address information, the conflict resolution module 214 injects a probe transmission through the control layer to the end host via a controlled network device. Specifically, the probe transmission is directed to the network address for the end host stored in the end host mapping dataset. In examples, the network controller may not be a network device that is visible to the end host; therefore, the network controller 200 injects the probe transmission via a network device that the network controller 200 controls. This may be the case, for example, in software defined networks. However, in other examples, if the network controller 200 may communicate directly with the end hosts, it may directly inject the communication.
The conflict resolution module 214 of the network controller 200 waits for a result to the injected probe transmission, which may be a response transmission received via the controlled network device. In examples, waiting for a result to the injected probe transmission may occur for a predetermined period of time, which may be set by an administrator and may be customized. Upon not receiving a response transmission within the predetermined period of time, the conflict resolution module 214 may cause the end host mapping dataset to be updated to reflect that the end host moved within the network.
However, if the response transmission is received, it is determined that a spoofing end host is attempting to communicate within the network. The conflict resolution module 214 may then alert a network administrator of the detected spoofing, which may be indicative of a network security problem, or the conflict resolution module 214 may take an appropriate security action such as logging the spoofing event, blocking the detected spoofing end host, monitoring communications to and/or from the spoofed end host, and combinations thereof.
At block 302, the method 300 includes identifying a conflict in network address information transmitted by an end host. For example, a computing system (e.g., network controller 100 of
At block 304, the method 300 includes injecting a probe transmission to the end host. For example, a computing system (e.g., network controller 100 of
At block 306, the method 300 includes determining the nature of the conflict in the network address information. For example, a computing system (e.g., network controller 100 of
If no result or response is received within the predetermined period of time in response to the injected probe transmission, it is determined that the end host moved within the network. Moving within the network may indicate that the end host physically moved within the network or is connected to a different controlled network device within the network. If, however, a result or response is received by the computing system within the predetermined time it is determined that the end host was spoofed by another end host.
Additional processes also may be included, and it should be understood that the processes depicted in
At block 402, the method 400 includes identifying a conflict in network address information transmitted by an end host. For example, a computing system (e.g., network controller 100 of
At block 404, the method 400 includes injecting a probe transmission to the end host. For example, a computing system (e.g., network controller 100 of
At block 406, the method 400 includes determining the nature of the conflict in the network address information. For example, a computing system (e.g., network controller 100 of
If no result or response is received within the predetermined period of time in response to the injected probe transmission, it is determined that the end host moved within the network. Moving within the network may indicate that the end host physically moved within the network or is connected to a different controlled network device within the network (block 408). If, however, a result or response is received by the computing system within the predetermined time it is determined that the end host was spoofed by another end host (block 410).
Additional processes also may be included, and it should be understood that the processes depicted in
It should be emphasized that the above-described examples are merely possible examples of implementations and set forth for a clear understanding of the present disclosure. Many variations and modifications may be made to the above-described examples without departing substantially from the spirit and principles of the present disclosure. Further, the scope of the present disclosure is intended to cover any and all appropriate combinations and sub-combinations of all elements, features, and aspects discussed above. All such appropriate modifications and variations are intended to be included within the scope of the present disclosure, and all possible claims to individual aspects or combinations of elements or steps are intended to be supported by the present disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/044784 | 6/30/2014 | WO | 00 |