IP Library Granted Patent US 7,360,245
Granted Patent B1
US 7,360,245 · App. 09/907,861 · Granted Apr 15, 2008

Method and system for filtering spoofed packets in a network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,360,245
App. No.
09/907,861
Granted
Apr 15, 2008
Kind
B1
Abstract

A method and system is disclosed for preventing an address spoofing based attack from a private network. The private network has at least one host and at least one router connected therein for transporting at least one packet. An anti-spoofing filter is implemented in each interface of every router. When a packet is received on the interface, the filter determines whether the packet is address spoofed by comparing its source physical address derived from the received packet with expected physical address derived from interface IP address, a subnet mask of the interface, an ARP cache of the interface and a list of physical addresses of neighboring routers formed a priori If the packet is determined to be address spoofed, the received packet is discarded by the filter on the interface.

Claims (70)

1. A method for preventing an address spoofing based attack from a network, the network having one or more hosts and one or more routers for transporting at least one packet, each router having one or more interfaces, and each interface having a directly connected sub-network, the method comprising:

receiving a packet into a first interface of a router;

deriving a first source physical address for the packet based on a source IP address of the packet, a sub-network mask of the first interface, and a memory space of the first interface containing information about the respective IP address of the hosts and one or more other routers and their corresponding physical addresses;

obtaining a second source physical address directly from an encapsulating frame of the packet;

determining whether the packet is address spoofed by comparing the first and second source physical addresses, wherein the step of determining further comprises:

examining whether the source IP address is within a subnet IP address space of a directly connected sub-network of the interface;

if the source IP address is within the subnet IP address space, determining whether the first source physical address matches the second source physical address;

if the source IP address is not within the subnet IP address space, checking whether the packet is routed from a neighboring router on the same directly connected sub-network of the interface by checking whether the second source physical address matches with a source physical address present in a neighboring router physical address list of the interface,

wherein the packet can be determined to be address spoofed when either the second source physical address fails to match the first physical address or the packet is not routed from a neighboring router on the same directly connected sub-network of the interface; and

discarding the packet if the packet is determined to be address spoofed.

2. The method of claim 1 wherein the step of determining is performed by an anti-spoofing filter implemented on each interface of the router, and wherein the filter is implemented with a first hook to an IP forwarding subsystem in an IP layer of the router, and a second hook to a local delivery subsystem in the IP layer of the router.

3. The method of claim 1 further comprising updating the information about the source IP address and corresponding physical address in the memory space by broadcasting an ARP request on an as-needed basis to the directly connected sub-network of the interface to obtain the physical address corresponding to the source IP address of the received packet.

4. The method of claim 1 further comprising maintaining on the interface an updated list of physical addresses of neighboring routers on the same directly connected sub-network by merging a first list of physical addresses of neighboring routers established by broadcasting one or more ARP requests to obtain the physical addresses of neighbor routers, whose IP addresses are obtained from a routing table, and a second list of neighboring routers established by extracting the source physical addresses from one or more routing advertisement messages.

5. A method for preventing an address spoofing based attack from a network, the network having one or more routers for transporting at least one packet, each router having one or more interfaces, and each interface having a directly connected sub-network, the method comprising:

implementing a filter in an interface of a router;

receiving a packet on the interface;

determining, by the filter, whether the packet is address spoofed by comparing its source physical address derived directly from the packet with an expected physical address derived from a source IP address of the interface, a sub-network mask of the interface, an ARP cache of the interface and a list of physical addresses of neighboring routers, wherein the step of determining further comprises:

examining whether the source IP address is within a subnet IP address space of a directly connected sub-network of the interface;

if the source IP address is within the subnet IP address space, deriving the source physical address from an encapsulating frame of the packet, and matching the derived source physical address with a predetermined physical address corresponding to the source IP address in the ARP cache; and

if the source IP address is not within the subnet IP address space, checking whether the packet is routed from a neighboring router on the same directly connected sub-network of the interface by checking whether the source physical address derived from the packet matches with a physical address present in the neighbor router physical address list of the interface,

wherein the packet is determined to be address spoofed when either the packet's source physical address fails to match the predetermined physical address corresponding to the source IP address in the ARP cache or the packet is not routed from a neighboring router on the same directly connected sub-network of the interface; and

discarding the packet if the packet is determined to be address spoofed.

6. The method of claim 5 wherein the filter is implemented with a first hook to an IP forwarding subsystem in the IP layer of the router, and a second hook to a local delivery subsystem in the IP layer of the router.

7. The method of claim 5 further comprising updating the ARP cache by broadcasting when needed an ARP request to the directly connected sub-network of the interface to obtain the physical address corresponding to the source IP address of the received packet.

8. The method of claim 5 further comprising maintaining on the interface an updated list of physical addresses of neighboring routers on the same directly connected sub-network by merging a first list of physical addresses of neighboring routers established by broadcasting one or more ARP requests to obtain the physical addresses of neighbor routers, whose IP addresses are obtained from the routing table, and a second list of neighboring routers established by extracting the source physical addresses from one or more routing advertisement messages.

9. The method of claim 8 further comprising:

obtaining the IP addresses of the other routers from a routing table of the router;

broadcasting at least one ARP request for corresponding physical addresses of the obtained IP addresses; and

generating the first list of neighboring routers by extracting the physical addresses from a received ARP response to the broadcast request.

10. The method of claim 8 further comprising verifying an authenticity of the routers in the list of neighboring routers after the list is generated.

11. The method of claim 10 wherein the step of verifying includes having a testing router send a special IP packet through a first interface to a tested router and checking whether the special IP packet will be routed back to another interface of the testing router.

12. The method of claim 10 wherein the step of verifying includes forcing a tested router to generate an ICMP redirect message.

13. The method of claim 10 wherein the step of verifying includes making a tested router to generate an ICMP Time Exceed message based on a predetermined time parameter.

14. A system for preventing an address spoofing based attack from a network, the network having one or more routers for transporting at least one packet, each router having one or more interfaces, and each interface having a directly connected sub-network, the system comprising:

a filter in an interface of a router;

means for receiving a packet on the interface;

means for deriving a first source physical address for the packet based on a source IP address of the packet, a sub-network mask of the interface, and a memory space of the interface;

means for obtaining a second source physical address directly from an encapsulating frame of the packet;

means for determining whether the packet is address spoofed by comparing the first and second source physical addresses, wherein the means for determining further comprises:

means for examining whether the source IP address is within a subnet IP address space of a directly connected sub-network of the interface;

means for deriving the source physical address from an encapsulating frame of the packet,

means for matching the derived source physical address with a predetermined physical address corresponding to the source IP address in the ARP cache;

means for checking whether the packet is routed from a neighboring router on the same directly connected sub-network of the interface,

wherein the packet is determined to be address spoofed when either the packet's source physical address fails to match the predetermined physical address corresponding to the source IP address in the ARP cache or the packet is not routed from a neighboring router on the same directly connected sub-network of the interface; and

means for discarding the packet if it is determined to be address spoofed.

15. The system of claim 14 wherein the filter is implemented with a first hook to an IP forwarding subsystem in the IP layer of the router, and a second hook to a local delivery subsystem in the IP layer of the router.

16. The system of claim 14 further comprising means for updating the ARP cache by broadcasting when needed an ARP request to the directly connected sub-network of the interface to obtain the physical address corresponding to the source IP address of the packet.

17. The system of claim 14 further comprising means for updating a list of physical addresses of neighboring routers on the same directly connected sub-network by merging a first list of physical addresses of neighboring routers established by broadcasting one or more ARP requests to obtain the physical addresses of neighbor routers, whose IP addresses are obtained from the routing table, and a second list of neighboring routers established by extracting the source physical addresses from one or more routing advertisement messages.

18. The system of claim 17 further comprising means for verifying an authenticity of the routers in the updated list after the list is generated.

19. A computer-readable medium having instructions stored thereon that when executed on a computer prevent an address spoofing based attack from a network, the network having one or more routers for transporting at least one packet, each router having one or more interfaces, and each interface having a directly connected sub-network, the computer-readable medium comprising instructions for:

receiving a packet at an interface of a router;

deriving a first source physical address for the packet based on a source IP address of the packet, a sub-network mask of the interface, and a memory space of the interface containing information about the IP addresses of the hosts and one or more other routers and their corresponding physical addresses;

obtaining a second source physical address directly from an encapsulating frame of the packet;

determining whether the packet is address spoofed by comparing the first and second source physical addresses, wherein the instructions for determining further comprise instructions for:

examining whether the source IP address is within a subnet IP address space of a directly connected sub-network of the interface;

if the source IP address is within the subnet IP address space, determining whether the first source physical address matches the second source physical address; and

if the source IP address is not within the subnet IP address space, checking whether the packet is routed from a neighboring router on the same directly connected sub-network of the interface by checking whether the second source physical address matches with a source physical address present in a neighboring router physical address list of the interface,

wherein the packet can be determined to be address spoofed when either the second source physical address fails to match the first physical address or the packet is not routed from a neighboring router on the same directly connected sub-network of the interface; and

discarding the packet if it is determined to be address spoofed.

20. The computer-readable medium of claim 19 wherein the instructions for determining is performed by an anti-spoofing filter implemented on each interface of the router, and wherein the filter is implemented with a first hook to an IP forwarding subsystem in an IP layer of the router, and a second hook to a local delivery subsystem in the IP layer of the router.

21. The computer-readable medium of claim 19 further comprising instructions for updating the information about the source IP address and corresponding physical address in the memory space by broadcasting an ARP request on an as-needed basis to the directly connected sub-network of the interface to obtain the physical address corresponding to the source IP address of the received packet.

22. The computer-readable medium of claim 19 further comprising instructions for maintaining on the interface an updated list of physical addresses of neighboring routers on the same directly connected sub-network by merging a first list of physical addresses of neighboring routers established by broadcasting one or more ARP requests to obtain the physical addresses of neighbor routers, whose IP addresses are obtained from a routing table, and a second list of neighboring routers established by extracting the source physical addresses from one or more routing advertisement messages.

23. A method of operating a network having a router, the method comprising:

receiving a packet at an interface of the router;

comparing source IP and physical addresses of the received packet with expected source IP and physical addresses of the packet, wherein the expected source physical address is based on a source IP address of the packet and a sub-network mask of the interface, wherein the expected source IP and physical addresses are obtainable from the interface, wherein the step of comparing further comprises

examining whether the source IP address of the received packet is within a subnet IP address space of a directly connected sub-network of the interface;

if the source IP address of the received packet is within the subnet IP address space, determining whether the source physical address of the received packet matches the expected source physical address; and

if the source IP address of the received packet is not within the subnet IP address space, checking whether the packet is routed from a neighboring router on the same directly connected sub-network of the interface by checking whether the expected source physical address matches with a source physical address present in a neighboring router physical address list of the interface,

wherein the packet can be determined to be address spoofed when either the expected source physical address fails to match the physical address of the received packet or the packet is not routed from a neighboring router on the same directly connected sub-network of the interface; and

discarding the packet if the packet is determined to be address spoofed.

Assignments (13)
RELEASE OF SECURITY INTEREST REEL/FRAME 035656/0251 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.)
Reel/Frame 062623/0009 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT TYPO IN APPLICATION NUMBER 10708121 WHICH SHOULD BE 10708021 PREVIOUSLY RECORDED ON REEL 042388 FRAME 0386. ASSIGNOR(S) HEREBY CONFIRMS THE NOTICE OF SUCCESSION OF AGENCY. Recorded Jul 26, 2018
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 048793/0832 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042388/0386 →
CHANGE OF NAME Recorded Sep 13, 2016
From: NOVELL, INC.
To: MICRO FOCUS SOFTWARE INC.
Reel/Frame 040020/0703 →
SECURITY INTEREST Recorded May 13, 2015
From: MICRO FOCUS (US), INC.; BORLAND SOFTWARE CORPORATION; ATTACHMATE CORPORATION; NETIQ CORPORATION; NOVELL, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 035656/0251 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
RELEASE OF SECURITY INTEREST IN PATENTS FIRST LIEN (RELEASES RF 026270/0001 AND 027289/0727) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0077 →
RELEASE OF SECURITY IN PATENTS SECOND LIEN (RELEASES RF 026275/0018 AND 027290/0983) Recorded May 22, 2012
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: NOVELL, INC.
Reel/Frame 028252/0154 →