Ingress filtering
In computer networking, ingress filtering is a technique used to ensure that incoming packets are actually from the networks from which they claim to originate.
Contents
Problem
Networks receive packets from other networks. Normally a packet will contain the IP address of the computer that originally sent it. This allows devices in the receiving network to know where it came from, allowing a reply to be routed back (amongst other things), except when IP addresses are used through a proxy or a spoofed IP address, which does not pinpoint a specific user within that pool of users.
A sender IP address can be faked ('spoofed'), characterising a spoofing attack. This disguises the origin of packets sent, for example in a denial-of-service attack. The same holds true for proxies, although in a different manner than "IP Spoofing."
Potential solutions
One potential solution involves implementing the use of intermediate internet gateways (i.e., those servers connecting disparate networks along the path followed by any given packet) filtering or denying any packet deemed to be illegitimate. The gateway processing the packet might simply ignore the packet completely, or where possible, it might send a packet back to the sender relaying a message that the illegitimate packet has been denied. HIPS products are one example of technical engineering applications that help to identify, prevent and/or deter unwanted, unsuspected and/or suspicious events and intrusions.
Any router that implements ingress filtering checks the source IP field of IP packets it receives, and drops packets if the packets don't have an IP address in the IP address block, to which the interface is connected. This may not be possible if the end host is multi-homed (terminology clarification needed) and also sends transit network traffic.
In ingress filtering, packets coming into the network are filtered if the network sending it should not send packets from the originating IP address(es). If the end host is a stub network or host, the router needs to filter all IP packets that have, as the source IP, private addresses (RFC 1918), bogon addresses or addresses that do not have the same network address as the interface.[1]
Networks
Network ingress filtering is a packet filtering technique used by many Internet service providers to try to prevent source address spoofing of Internet traffic, and thus indirectly combat various types of net abuse by making Internet traffic traceable to its source.
Network ingress filtering is a "good neighbor" policy which relies on cooperation between ISPs for their mutual benefit.
The best current practices for network ingress filtering are documented by the Internet Engineering Task Force in BCP 38 and BCP 84, which are defined by RFCs 2827 and 3704, respectively.[2][3]
BCP 84 recommends that upstream providers of IP connectivity filter packets entering their networks from downstream customers, and discard any packets which have a source address which is not allocated to that customer.
There are many possible ways of implementing this policy; one common mechanism is to enable reverse path forwarding on links to customers, which will indirectly apply this policy based on the provider's route filtering of their customers' route announcements.
Deployment
As of 2012, one report suggests that, contrary to general opinion about the lack of BCP38 deployment, some 80% of the Internet (by various measures) were already applying anti-spoofing packet filtering in their networks.[4]
See also
References
- ↑ Robert Gezelter (1995) Security on the Internet Chapter 23 in Hutt, Bosworth, and Hoytt (1995) "Computer Security Handbook, Third Edition", Wiley, section 23.6(b), pp 23-12, et seq.
- ↑ Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing. IETF. May 2000. BCP 38. RFC 2827. https://tools.ietf.org/html/rfc2827. Retrieved 18 Feb 2014.
- ↑ Ingress Filtering for Multihomed Networks. IETF. March 2004. BCP 84. RFC 3704. https://tools.ietf.org/html/rfc3704. Retrieved 18 Feb 2014.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
External links
- RFC 2827 - Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing (BCP 38)
- RFC 3704 Ingress Filtering for Multihomed Networks (BCP 84)
- Lua error in package.lua at line 80: module 'strict' not found.
- IETF's BCP Index