Skip to content
This repository has been archived by the owner on Jul 23, 2021. It is now read-only.

DDoS Attack Research

Sándor Héman edited this page Aug 10, 2015 · 1 revision

Introductory Background Reading

Classes of Attacks

  • Volume-based / Flood DDoS attacks
  • Amplification Attacks
  • Application DDoS attacks
  • Protocol vulnerability Exploitation
  • Low-rate DoS (LDoS) - doesn't require high numbers of packets
  • Zero-Day DDoS Attacks - take advantage of new vulnerabilities
  • Malformed packets

The Most Common Attacks

  • HTTP Flood (39% in 2012)
    • Slow Attacks
      • tool Slowloris - slowly write perpetually partial HTTP requests
      • slow Read attacks
    • Encrypted SSL DDoS Attacks (tool THC-SSL-DoS)
  • SYN Flood (19% in 2012) - spoofed SYN packets
  • UDP Flood (15% in 2012)
    • spoofed UDP messages to random ports, requiring ICMP replies
    • NTP reflection
    • Snork Attack Flows - from port 7, 19 or 135 to port 135, Windows NT RPC Service
    • Echo Request Broadcasts - UDP packet to port 7 (echo) on a Broadcast IP
    • UDP Echo-Chargen - UDP Flows between port 7/Echo and port 19/Chargen, either direction
    • fragmented UDP messages
  • ICMP Flood (13% in 2012) - spoofed echo request
    • ICMP Request Broadcasts - Echo Request, Timestamp, Info Request, or Address Mask Request to Broadcast IP
    • ICMP Protocol Unreachables - 770/Protocol Unreachable, causes active TCP connections to be dropped
    • ICMP Source Quench Flows - 1024/Source Quench. Out dated, could limit the bandwidth of a router or host
    • Smurf Attacks - spoof victim’s source IP and send ICMP echo request to third-parties
  • DNS (3% in 2012)
    • DNS Open Resolver Amplification - spoof target’s source IP
    • DNS Attacks - with large EDNS replies LDoS
  • SMTP (2% in 2012)
  • SIP INVITE Flood (0.5% in 2012)
  • BGP (detected by Cisco's TAD)
  • Teardrop Attacks - TCP packets with overlapping, over-sized payloads causing deficiencies in old TCP stacks to crash
  • Land Attack Flows - Flows with the same Src IP & Dst IP. Causes the target machine to reply to itself continuously

Popular Attack Tools

  • Metasploit Framework (MSF)
  • Low Orbit Ion Cannon
    • many connections in a short time on UDP port 80 from many IPs
    • TCP with ACK & packets of size 1448
    • specific malformed GET requests
    • un-spoofed source IPs
  • High Orbit Ion Canon
  • Net Flood: ICMP (reply/request/any), UDP, TCP

Detection Methods

  • manual ACLs
  • anomalous bandwidth usage
  • anomalous CPU utilization
  • anomalous traffic types
  • Intrusion Detection System (IDS) devices
  • Intrusion Prevention System (IPS) devices
  • Unicast Reverse Path Forwarding (uRPF) - invalid source addresses in traffic
  • Reputation-Based Blocking
  • WatchGuard Reputation Authority
  • WebSEO Analytics
  • Imperva ThreatRadar
  • unmatched ACKs (TCP reflection attacks)
  • Snort rules
  • Apache’s mod_evasive - request thresholds
  • http server 503 errors or slow responses
  • D-WARD (unfeasible source based detection)
  • statistical, for example maintaining latest rates and exponential moving averages (baselines) of bytes and packets
  • soft computing methods (neural networks, radial basis functions, genetic algorithms)

Mitigation Strategies

  • Remotely triggered black hole (RTBH)
  • resetting invalid TCP connections
  • Tightening Connection Limits and Timeouts
  • block CnC traffic to compromised internal hosts
  • redirect traffic (via upstream BGP) to scrubbing center

References

Related Commercial Products

FOSS Netflow Analysis Tools

nfsen Plugins

see http://nfsen.sourceforge.net/PluginGuide/plugin-guide.html

list of plugins:

Backend Perl API Summary

  • init
  • run: profile / profilegroup / timeslot
  • NfProfile API, ProfilePath / ReadProfile
  • NfConf API, Pluginconf
  • reads nfdump files itself
  • condition: alert / alert file (flows) / timeslot
  • alert: alert / timeslow
  • Nfcomm API

Frontend PHP API Summary

  • ParseInput($id)
  • Run($id)
  • SetMessage, $_SESSION, ParseForm
  • nfsenutil API (backend channel)