myNetWatchman   KnowledgeBase

Pooling knowledge to
secure the internet.


mNW Reports  FAQ: mNW Reports





(Registered Users Only)


Look Up Incidents by IP Address

 

 

Created: 07-Mar-2002 - Lawrence Baldwin

This document attempts to graphically illustrate the technique of tracing the actual source of a spoofed DoS attack which is documented here:

DoS Ingress tracking using ICMP backscatter

Step 1: Denial of service (DoS) attack is initiated by an unknown attacker. Attacker is randomly spoofing the source IP address of each packet, making it impossible to determine the actual source. Victim's Internet connection is saturated can no longer service requests. Victim contacts their ISP for assistance.

Step 2: ISP Pushes out a filter (null route) to ALL routers in their network blocking packets to victim's IP address.

Step 3: All routers will now block victim's traffic AND generate ICMP unreachable packets back to the source IPs (this is the "backscatter"). Some of the ICMPs will be sent to valid users attempting to connect to victim's host. However, most of the ICMP traffic will be sent from the ingress router that is receiving the DoS flood. The ISP also puts a special configuration in place so ICMP Unreachables regarding blocked packets from a range of IP addresses which are known to be unused are sent to a central location. As soon as they begin receiving these ICMP unreachables they know that the router sending them is the ingress of the DoS attack--Router 3 in this case.

Step 4: The filter blocking the victim's IP is removed from all routers EXCEPT the ingress. This stops the DoS flood and restores most service to the victim. The ISP then escalates this issue to the provider downstream from Router 3. Hopefully they have as good a backtracing mechanisms in place. As this process is repeated, the ultimate source of the attack can be identified.

I began researching this issue in order to better understand why firewalls often log ICMP Unreachable packets such as:

mNW Incident 2925313

One of the mNW agents that received these ICMP packets was able to capture the full packet using Ethereal: (Note: Agents actual IP has been replaced with "xx.xx.xx.xx":

Frame 1 (70 on wire, 70 captured)
    Arrival Time: Mar  6, 2002 08:53:19.592414000
    Time delta from previous packet: 0.000000000 seconds
    Time relative to first packet: 0.000000000 seconds
    Frame Number: 1
    Packet Length: 70 bytes
    Capture Length: 70 bytes
Ethernet II
    Destination: 00:b0:d0:XX:XX:XX
    Source: 00:d0:05:XX:XX:XX
    Type: IP (0x0800)
Internet Protocol, Src Addr: 500.POS1-2.GW5.SAC1.ALTER.NET (157.130.54.65), Dst Addr: (xx.xx.xx.xx)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 56
    Identification: 0x0000
    Flags: 0x00
        .0.. = Don't fragment: Not set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 243
    Protocol: ICMP (0x01)
    Header checksum: 0x5621 (correct)
    Source: 500.POS1-2.GW5.SAC1.ALTER.NET (157.130.54.65)
    Destination:  (xx.xx.xx.xx)
Internet Control Message Protocol
    Type: 3 (Destination unreachable)
    Code: 1 (Host unreachable)
    Checksum: 0xa10d (correct)
    Internet Protocol, Src Addr:  (xx.xx.xx.xx), Dst Addr: 168.169.198.44 (168.169.198.44)
        Version: 4
        Header length: 20 bytes
        Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
            0000 00.. = Differentiated Services Codepoint: Default (0x00)
            .... ..0. = ECN-Capable Transport (ECT): 0
            .... ...0 = ECN-CE: 0
        Total Length: 48
        Identification: 0xc93a
        Flags: 0x00
            .0.. = Don't fragment: Not set
            ..0. = More fragments: Not set
        Fragment offset: 0
        Time to live: 109
        Protocol: TCP (0x06)
        Header checksum: 0x77d7 (correct)
        Source:(xx.xx.xx.xx)
        Destination: 168.169.198.44 (168.169.198.44)
    Transmission Control Protocol, Src Port: 65403 (65403), Dst Port: 65339 (65339)
        Source port: 65403 (65403)
        Destination port: 65339 (65339)

A nice feature of ICMP error packets is that it includes the header of the packet that actually triggered the error. This is how we're able to tell that the DoS victim is (168.169.198.44) and they they are being flooded with TCP packets sourced from high numbered ports (e.g. 65403) and destined for high numbered ports (e.g. 65339). The TCP SYN flag is NOT set, so this appears to be a brute traffic flood vs. a SYN flood.

Here is a tracert to the victim host:

H:\W3SVC1>tracert 168.169.198.44

Tracing route to 168.169.198.44 over a maximum of 30 hops

  1   <10 ms   <10 ms   <10 ms  host121.mynetwatchman.com [64.238.113.121]
  2   <10 ms   <10 ms   <10 ms  172.16.41.165
  3   <10 ms    10 ms   <10 ms  car00-s6-0-1.atlagabu.cbeyond.net [192.168.14.17]
  4   <10 ms    10 ms    10 ms  bgr00-g1-0.atlagabu.cbeyond.net [192.168.20.49]
  5    10 ms    10 ms   <10 ms  64.211.166.201
  6   <10 ms    20 ms    10 ms  pos2-0-155M.cr1.ATL1.gblx.net [206.132.115.113]
  7   <10 ms    10 ms    10 ms  pos0-0-0-155M.br1.ATL1.gblx.net [206.132.115.118]
  8   <10 ms    10 ms    10 ms  57.ATM2-0.BR1.ATL5.ALTER.NET [204.255.168.137]
  9   <10 ms    10 ms    10 ms  179.at-5-2-0.XR1.ATL5.ALTER.NET [152.63.82.198]
 10    20 ms    20 ms    20 ms  0.so-1-0-0.TL1.ATL5.ALTER.NET [152.63.85.217]
 11    20 ms    40 ms    30 ms  0.so-7-0-0.TL1.NYC8.ALTER.NET [152.63.146.53]
 12    20 ms    30 ms    20 ms  0.so-2-0-0.XL1.NYC8.ALTER.NET [152.63.0.154]
 13    20 ms    30 ms    20 ms  0.so-3-0-0.XR1.NYC8.ALTER.NET [152.63.19.30]
 14    20 ms    30 ms    20 ms  183.at-1-0-0.XL1.NYC1.ALTER.NET [152.63.27.142]
 15    40 ms    40 ms    40 ms  507.ATM6-0.GW3.BUF1.ALTER.NET [152.63.25.49]
 16    40 ms    40 ms    40 ms  wnyric-gw.customer.alter.net [157.130.21.26]
 17    40 ms    40 ms    40 ms  168.169.1.65
 18    40 ms    50 ms    41 ms  168.169.8.1
 19    51 ms    60 ms    60 ms  168.169.108.42
 20     *        *        *     Request timed out.
 21   250 ms   201 ms   200 ms  168.169.198.44

Trace complete.

Notice how Hop # 15 (152.63.25.49) corresponds to the source IP address of the initial ICMP backscatter logged in the mNW incident I referenced above. I suspect that uuNet first put a null route on their edge router connecting to the victim. This would have alleviated the congestion problem on the victims Internet link (between hop #15 and #16).

The actual packet we captured was from later in the day when uuNet had null routes in place on all their routers. Therefore, we can probably conclude that the source IP (157.130.54.65) of that ICMP packet was the ingress source of the attack.

H:\W3SVC1>tracert 157.130.54.65

Tracing route to 500.POS1-2.GW5.SAC1.ALTER.NET [157.130.54.65]
over a maximum of 30 hops:

  1   <10 ms   <10 ms    10 ms  host121.mynetwatchman.com [64.238.113.121]
  2   <10 ms   <10 ms    10 ms  172.16.41.165
  3   <10 ms    10 ms   <10 ms  car00-s6-0-1.atlagabu.cbeyond.net [192.168.14.17]
  4   <10 ms    10 ms   <10 ms  bgr00-g1-0.atlagabu.cbeyond.net [192.168.20.49]
  5   <10 ms    11 ms    10 ms  64.211.166.201
  6   100 ms    40 ms    20 ms  pos2-0-155M.cr1.ATL1.gblx.net [206.132.115.113]
  7    10 ms   <10 ms    20 ms  pos0-0-0-155M.br1.ATL1.gblx.net [206.132.115.118]
  8    10 ms    10 ms   <10 ms  57.ATM2-0.BR1.ATL5.ALTER.NET [204.255.168.137]
  9   <10 ms   <10 ms    10 ms  179.at-6-2-0.XR2.ATL5.ALTER.NET [152.63.82.194]
 10    20 ms    20 ms    30 ms  0.so-1-2-0.TL2.ATL5.ALTER.NET [152.63.146.2]
 11    61 ms    80 ms    70 ms  0.so-1-2-0.TL2.SAC1.ALTER.NET [152.63.10.114]
 12    80 ms    80 ms    70 ms  0.so-7-0-0.XL2.SAC1.ALTER.NET [152.63.54.9]
 13    60 ms    80 ms    70 ms  500.POS1-2.GW5.SAC1.ALTER.NET [157.130.54.65]

Trace complete.

SAC = Sacramento, CA, I believe.

secKB Index