In modern technological society, the rapid dissemination of timely data has become a paramount concern. Higher demand of quality data streams has fueled ever-evolving technology in both software and hardware. The resulting increase in connectivity has further resulted in a commensurate increased need for higher levels of security to protect data not intended for general consumption. Competing interests of high connectivity over secure data continues to influence progress made in information technologies.
Robust, hardened security generally restricts freedom of movement, which is contrary to at least one aim of technological growth that is to enhance freedom of movement. Movement, in the information world, is a metaphor for connectivity; that is the ability to define data sharing relationships and then exploit those relationships. In balancing the competing interests of security over freedom with respect to information movement, a security designer must, at some levels, accept less security in the interest of efficient data transfer. In the same way, an access designer must accept more security to protect data stores from outside attack at the expense of more efficient data sharing methodologies.
At the interface of these competing imperatives lay the targets of network attackers. One such target is the address resolution protocol (ARP). ARP is a network layer protocol used to convert an IP address into a physical address, such as a media access control (MAC) address. For example, a host wishing to obtain a physical address broadcasts an ARP request onto a TCP/IP network. A host on the network that has the MAC address in the request then replies with its physical hardware address. Thus, ARP allows for access to a particular client in a network resulting in data sharing efficiencies. However, this efficiency is not without risk.
One example security risk in switched networks today is known as ARP Spoofing. ARP spoofing allows an unauthorized user to access data in a switched network by poisoning the ARP cache of a network member. For example, when an Ethernet frame (i.e. data packet) is broadcast from one machine on a LAN to another machine on the same LAN, a 48-bit MAC address contained in the frame may be used to determine the interface or port to which the frame is directed. MAC addresses and their associated destinations are typically held in an ARP table. Unfortunately, in current methods, device drivers that make those determinations based on MAC addresses do not distinguish between a legitimate MAC address all ready existing on the network and a counterfeit MAC address. Thus, a rogue machine broadcasting a counterfeit MAC address may, in effect, assume the identity of a legitimate machine having a legitimate MAC address and therefore, receive data intended for the legitimate machine.
Further compounding the problem is that the most recent ARP response from any source is generally accepted as the “correct” entry in an ARP table. Thus, a rogue machine may misdirect data intended for a legitimate machine by simply sending a counterfeit ARP response later in time than a legitimate ARP response, or may simply flood the network with gratuitous counterfeit ARP responses in order to overcome any possible legitimate ARP responses. Thus, a network attacker may trick a device driver into sending data packets to an attacking rogue machine by poisoning the ARP with counterfeit entries generated by the attacker. In light of the foregoing, methods and devices for preventing ARP cache poisoning are presented herein.
Methods of processing an address resolution protocol (ARP) response in connection with a data control switch are presented including: receiving an ARP response, the ARP response having an ARP response MAC address and a corresponding ARP response IP address; and dropping the ARP response when: the ARP response MAC address matches any of a plurality of ARP entry MAC addresses residing in an ARP table, and the corresponding ARP response IP address does not match a corresponding ARP entry IP address. In some embodiments, methods further include: creating an ARP entry corresponding to the ARP response in the ARP table when: the ARP response MAC address does not match any of the plurality of ARP entry MAC addresses. In some embodiments, methods further include: processing the ARP response when: the ARP response MAC address matches any of the plurality of ARP entry MAC address, and the corresponding ARP response IP address matches the corresponding ARP entry IP address.
In other embodiments, methods of controlling a network switch are presented including: receiving an ARP response, the ARP response having an ARP response MAC address and a corresponding ARP response IP address; and dropping the ARP response when: the ARP response MAC address matches any of a plurality of ARP entry MAC addresses residing in an ARP table, and the corresponding ARP response IP address does not match a corresponding ARP entry IP address. In some embodiments, methods further include: creating an ARP entry corresponding to the ARP response in the ARP table when: the ARP response MAC address does not match any of the plurality of ARP entry MAC addresses. In some embodiments, methods further include: processing the ARP response when: the ARP response MAC address matches any of the plurality of ARP entry MAC address, and the corresponding ARP response IP address matches the corresponding ARP entry IP address.
In other embodiments, a security enhanced network switch device is presented including: a memory component comprising at least an ARP table for storing a plurality of ARP entries each ARP entry having an ARP entry media access control (MAC) address and a corresponding ARP entry internet protocol (IP) address; and an address resolution protocol (ARP) component for examining an ARP response frame, the ARP response frame having an ARP response address and a corresponding ARP response IP address. In some embodiments, the ARP component may be configured to reject the ARP response frame when: the ARP response MAC address matches the ARP entry MAC address; and the corresponding ARP response IP address does not match the corresponding ARP entry IP address. In some embodiments, the ARP component may be further configured to process the ARP response frame when: the ARP response MAC address matches the ARP entry MAC address; and the corresponding ARP response IP address matches the corresponding ARP entry IP address. In some embodiments, the ARP component may be further configured to create a new ARP entry corresponding to the ARP response frame in the ARP table when: the ARP response MAC address does not match the ARP entry MAC address.
In other embodiments, a computer program product for use in conjunction with a computer system for processing an address resolution protocol (ARP) response in connection with a data control switch is presented, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism including: instructions for receiving an ARP response, the ARP response having an ARP response MAC address and a corresponding ARP response IP address; and instructions for dropping the ARP response when: the ARP response MAC address matches any of a plurality of ARP entry MAC addresses residing in an ARP table, and the corresponding ARP response IP address does not match a corresponding ARP entry IP address. In some embodiments, the computer program product further includes: instructions for creating an ARP entry corresponding to the ARP response in the ARP table when: the ARP response MAC address does not match any of the plurality of ARP entry MAC addresses. In some embodiments, the computer program product further includes: instructions for processing the ARP response when: the ARP response MAC address matches any of the plurality of ARP entry MAC address, and the corresponding ARP response IP address matches the corresponding ARP entry IP address.
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
The present invention will now be described in detail with reference to a few embodiments thereof as illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps and/or structures have not been described in detail in order to not unnecessarily obscure the present invention.
Various embodiments are described hereinbelow, including methods and techniques. It should be kept in mind that the invention might also cover articles of manufacture that includes a computer readable medium on which computer-readable instructions for carrying out embodiments of the inventive technique are stored. The computer readable medium may include, for example, semiconductor, magnetic, opto-magnetic, optical, or other forms of computer readable medium for storing computer readable code. Further, the invention may also cover apparatuses for practicing embodiments of the invention. Such apparatus may include circuits, dedicated and/or programmable, to carry out tasks pertaining to embodiments of the invention. Examples of such apparatus include a general-purpose computer and/or a dedicated computing device when appropriately programmed and may include a combination of a computer/computing device and dedicated/programmable circuits adapted for the various tasks pertaining to embodiments of the invention.
Turning to
Switch 108 may also be configured with an ARP table 112. An ARP table may be populated with any number of ARP entries. ARP entries contain information related to port configuration on a switch. For example, inbound data intended for CPU 136 may be received by switch 108. Switch 108 may then consult ARP table 112. In some embodiments, ARP table 112 contains an ARP entry that designates port 120 as a port corresponding to CPU 136. In that example, switch 108 would then route inbound data intended for CPU 136 to port 120. In other embodiments, ARP table 112 may not contain an ARP entry designating a port for a corresponding DEVICE. Further, in that example, an ARP request may be issued by switch 108. An ARP request queries devices connected with a switch to find an appropriate receiving device. If an appropriate device is found, the found device may then issue an ARP response to switch 108. Switch 108 may then route inbound data to an appropriate port corresponding to the responding DEVICE. In some examples, switch 108 may subsequently modify ARP table 112 to contain an ARP entry for the responding device based on the device's ARP response.
In still other embodiments, ARP table 112 may be periodically updated such that “old” ARP responses are timed out and “new” ARP responses are entered into a table. Typically, an ARP response includes a media access control (MAC) addresses. MAC addresses are well known in the art. An ARP response may also include an IP address of a responding device. In some embodiments, an ARP response having a MAC address and an IP address may be compared with an ARP entry having a MAC address and an IP address in an ARP table to determine whether a match exists between the two. Methods of comparing an ARP response to an ARP entry are discussed in further detail below for
Turning to
Referring to
If an ARP response does not have a corresponding ARP entry in an ARP table as determined by a step 312 (i.e. the ARP response is new), the method then resets switch timer and updates ARP table to include a new ARP entry corresponding to the ARP response at a step 316. Switch timers may be set for any interval. Typically, timers are set for less than 300 seconds. The frame may then be processed at a step 320 whereupon the method ends.
If the ARP response has a corresponding ARP entry in an ARP table as determined by a step 312 (i.e. the ARP response is not new), the method then compares both the MAC address and the associated IP address of the ARP response with the MAC address and the associated IP address of a corresponding ARP entry in an ARP table at a step 324. If a match is found at a step 328, the method then processes the frame a step 320 whereupon the method ends. A match indicates that the ARP response was a legitimate ARP response. If a match is not found at a step 328, an incident is logged at a step 332. A non-match indicates that the ARP response was not a legitimate ARP response.
Turning briefly to
However, using methods described herein, a counterfeit ARP response from rogue device may be discovered. Thus, if a rogue device attempts to overcome a legitimate device with a counterfeit ARP response, then the method, in detecting duplicate MAC addresses will then examine the IP address of counterfeit ARP response to determine whether or not a legitimate device is simply changing ports or if a new, different device is attempting to enter the network as a rogue device. By challenging an ARP response in this manner, rogue device attacks may be deterred.
Returning to
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents, which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and apparatuses of the present invention. For example, although steps 332 and 336 are illustrated in a particular order, no such limitation in order is intended. That is, those steps may be accomplished in any order. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations, and equivalents as fall within the true spirit and scope of the present invention.