Spoofing
can occur at all layers of the IP system. The hardware layer, the data link
layer, the IP layer, the transport layer, and the application layer are
susceptible. All application layer protocols are at risk if the lower layers
have been compromised.
Hardware Address Spoofing
At the
hardware layer, any network interface for a shared-media network will have a
hardware interface address. As we already know sniffing, most network
interfaces can be put into promiscuous mode and receive frames with any
destination address.
A much
more serious problem occurs if the network interface can alter the source
address and send data that appears to come from various source addresses. In
the IEEE 802 standards for networking (of which Ethernet is a variant), each network
interface has a 48-bit hardware address. It uses this hardware address to match
the variety of destination addresses of the frames it sees. The interface
copies frames with matching destination addresses into its internal buffer and
notifies the operating system that they are available for further processing.
Packets coming from the operating system to the interface do not typically
specify a source address; the interface always puts its hardware address in the
source field.
Most
software does not typically control the source field of frames leaving an
Ethernet interface. When another host examines a packet containing a hardware
source address associated with an interface of a particular machine, it assumes
that the packet originated on that machine and accepts it as authentic. An IEEE
standards committee assigns each network interface manufacturer a unique 24-bit
prefix for the 48-bit hardware address; the manufacturer assigns a unique
24-bit suffix to each interface it makes. Regardless, many interface cards are
configurable and allow host software to specify a source address other than the
one assigned by the manufacturer. This configurability makes it possible to use
them to spoof the source address.
To see
how common it is for a network interface to be able to spoof the source
address, however, recall how a bridge works. A bridge not only puts its
interfaces into promiscuous mode, but it also sets the hardware source address
of packets sent out on its interfaces to match the hardware source address of
the originating interface. A PC with two software configurable interfaces can
be configured to be used as a bridge. Clearly, such software configurability
has a variety of malicious uses. The drawbridge software mentioned in the
previous section on hardware barriers to prevent sniffing is compatible with
most Ethernet boards which means most Ethernet boards will permit source
address spoofing.
As you
can see, it is not entirely safe to base the authenticity of a packet on the
hardware source address. Unfortunately, there is very little you can do to
protect yourself against such deviousness. One solution is to use digital
signatures at the application layer. Unfortunately, currently there are no protections
in the IP network layer that will prevent a hardware address spoofer from
disguising one machine as another.
If the
victim machine is trusted (for example, is allowed to NFS mount filesystems
from another machine), the spoofer will be able to take advantage of that trust
and violate security without being detected.
Fortunately, hardware address spoofing is
difficult (relative to many other spoofing methods) and requires penetration of
physical security.
Countering
hardware level spoofing is difficult because it is virtually undetectable
without tracing the physical wiring. You need to trace the wiring to be certain
no one has connected an unauthorized machine and you also need to check to see
if the authorized machines are using the hardware address they should. The
latter can be checked using sufficiently “intelligent” hubs in secure locations.
ARP Spoofing
A more
common form of spoofing that is accidental is ARP spoofing. ARP (Address
Resolution
Protocol)
is part of Ethernet and some other similar protocols (such as token-ring) that associate
hardware addresses with IP addresses. ARP is not part of IP but part of these Ethernet-like
protocols; ARP supports IP and arbitrary network-layer protocols. When an IP datagram
is ready to go out on such a network, the host needs to know the hardware
destination address to associate with the given IP destination address. For
local IP destinations, the hardware address to use will be the hardware address
of the destination interface. For non-local destinations, the hardware address
to use will be the hardware address of one of the routers on the local network.
How ARP and ARP Spoofing Work
To
find the hardware address, the host sends out an ARP request using the hardware
broadcast address. A frame with the hardware broadcast address reaches every
network interface on the local network, and each host on the local network has
its operating system interrupted by the network interface. The ARP request is
essentially asking the question, “What is the hardware address corresponding to
the IP address I have here?” Typically, only the host with the matching IP
address sends an ARP reply and the remaining hosts ignore the ARP request. The ARP
request contains the IP address of the sender of the request and reaches all
hosts via a broadcast.
Other
hosts could potentially store the association between hardware address and IP
address of the sender of the request for future reference. The target of the
request certainly would store the association. It will almost certainly send an
IP datagram in reply to the IP datagram it is about to receive. The reply will
require knowing the association between the IP address and the hardware address
of the sender of the ARP broadcast.
The
association between the hardware address and the IP address of other machines
on a network is stored in an ARP cache on each host. When an IP datagram is
about to leave a host, the host consults the ARP cache to find the destination
hardware address. If the host finds an entry for the IP destination address, it
need not make an ARP request. The entries in an ARP cache expire after a few
minutes.
Thus,
when the ARP cache entry for a machine expires, an ARP request goes out to
refresh the entry. No reply comes back if the target machine goes down. The
entries for its interface’s hardware will disappear from the ARP caches in the
other machines on the network. The other machines will be unable to send out IP
datagrams to the downed system after the ARP cache entries expire. Before that
point in time, IP datagrams are sent out but are not received. When the machine
comes back up, it will again be able to reply to ARP requests. If someone
replaces its interface, the now up and running machine will have a new hardware
address and will use that new hardware address in ARP replies. ARP caches
throughout the network will reflect the change, and IP datagrams go out using
the new hardware address.
Because
you expect the IP address to hardware address association will change over
time, the potential exists that the change may be legitimate. Sometimes it is
purely accidental. Someone may inadvertently assign a machine the same IP
address held by another machine. On personal computers or special purpose
devices such as network printers or X Window System terminals,
the
end user typically has access to a dialog box, command, or text file that sets
the IP address.
On
multiuser systems, the system administrator is typically the only one who can
set the IP addresses of the network interface(s). This arrangement is changing,
however, as more inexperienced IP-based end users with PCs set addresses. In
addition, bureaucracies often separate system administrators and network
administrators that use the same network. Under such circumstances it is common
for two machines to end up with the same IP address. Duplication can occur
either by copying the network configuration from one personal computer to
another without the end user knowing the need for IP addresses to be unique.
Duplication can also occur if system administrators on a network do not work
together when configuring system addressing.
When
two machines end up with the same IP address, both of them will naturally reply
to an ARP request for that address. Two replies to the request come back to the
host that originated the request. These replies will arrive in rapid
succession, typically separated by at most a few milliseconds. Some operating
systems will not realize anything is wrong and simply file each reply in the
ARP cache with the slowest response remaining in the ARP cache until the entry for
that IP address expires. Other operating
systems will discard ARP replies that correspond to IP addresses already in the cache. These may or
may not bother to check if the second reply was a harmless duplicate or an
indication an ARP spoof may be underway.
Thus,
depending on the mechanism used to process duplicate ARP replies, if a spoofer
wants to be the target of the IP datagrams being sent to a particular IP
address from a particular host, it needs to make sure it is either the first or
the last to reply to ARP requests made by that particular host. An easy way to
be first or last is to have the only machine that replies to the ARP requests. An attacker can
simply use a machine assigned, via the normal operating system configuration
mechanisms, the same IP address as a machine that is currently not working. An attacker
attempting to masquerade his or her machine can simply turn the legitimate
machine off. The attacker does not need to have direct access to the power
switch on the machine. The machine can be turned off either by unplugging it or
flipping the appropriate circuit breaker. An alternative to disconnecting its
power is to disconnect it from the network at some point in the network wiring
scheme. Third, the attacker can change the legitimate machine’s IP address and
leave it turned on if he or she can reconfigure the machine. Doing so is less
likely to draw attention or result in confusion from the machine’s user or
administrator.
No comments:
Post a Comment