T 5.78 DNS spoofing

To communicate with another computer in the Internet, it is necessary to know its IP address. As such numbers are not very easy to memorise, almost all IP addresses are assigned names by the Domain Name System (DNS).

DNS spoofing refers to a successful attempt by an attacker to falsify the IP address assigned to a computer name, which means that the name will be converted to the wrong IP address and vice-versa. In classic DNS spoofing, the client PC is not manipulated by malware, but vulnerabilities existing in the DNS communication are exploited. As a result of this, it is possible to execute the following attacks, among others:

The ease with which it is possible to perform DNS spoofing depends on how the network being attacked is configured. Since no computer can possess all DNS information available globally, computers always need to depend on the information of other DNS servers. To reduce the frequency of DNS queries, most resolving DNS servers temporarily store the information they have received from other DNS servers for a certain length of time.

Another possibility to cause damage using DNS spoofing is direct intrusion into a DNS server. However, this case is not considered further here. Instead, the principal shortcomings of DNS are mentioned.

Examples:

These two examples are based on the assumption that a DNS server accepts additional data that it has not even requested. New versions of DNS software (e.g. BIND) no longer have this error and therefore prevent this type of attack. However, it is still always possible to create false DNS entries using IP spoofing, but this type of attack is much more complicated technically, see also T 5.48 IP-Spoofing.

Both forms of attack have one thing in common: The aim is that the attacked computer temporarily stores incorrect assignments of IP addresses and names. This is referred to as Cache Poisoning. Since DNS servers store domain information, as described in the second example, such forged data can be widely distributed. If a corresponding request is sent to the manipulated DNS server, this server will return the forged data. The receiver of the response in turn stores the forged data and its cache is therefore also "poisoned". The length of time for stored data to expire can be configured (Time to Live, TTL). If a manipulated address is requested form the resolving DNS server, then it will not send a request to a different DNS server until the set length of time has expired. Thus, it is possible for manipulated DNS information to persist for a long time, although they have already been corrected on the DNS server originally attacked.

Cache poisoning is one of the most dangerous forms of attack for DNS. If, for example, an attacker is able to take the name resolution for a domain by manipulating the entries in such a way that requests are sent to his DNS servers, then all sub-domains are automatically affected by this.