Security Part One: Network Attacks and CountermeasuresFlashback: Internet design goalsWhy did they leave it out?Security VulnerabilitiesIP-level vulnerabilitiesRouting attacksTCP-level attacksSession HijackSession HijackOutlineDenial of ServiceSimple DoSDistributed DoSDistributed DoSSmurf AttackReflector AttackOutlineWorm OverviewProbing TechniquesRandom ScanningSubnet ScanningRouting WormHit ListTopologicalSome proposals for countermeasuresOutlineCountermeasure OverviewDesign questions ..FirewallsFirewalls (contd…)Packet FiltersPacket Filters: Possible Actions Some examplesFirewall implementationPacket FiltersAlternativesIntrusion Detection SystemsClasses of IDSSummarySecurity Part One:Network Attacks and CountermeasuresXin ZhangFlashback: Internet design goals1. Interconnection2. Failure resilience3. Multiple types of service4. Variety of networks5. Management of resources6. Cost-effective7. Low entry-cost8. Accountability for resourcesWhere is security?Why did they leave it out?• Designed for connectivity• Network designed with implicit trust No “bad” guys• Can’t security requirements be provided at the edge? Encryption, Authentication etc. End-to-end arguments in system designSecurity Vulnerabilities• At every layer in the protocol stack!• Network-layer attacks IP-level vulnerabilities Routing attacks• Transport-layer attacks TCP vulnerabilities• Application-layer attacksIP-level vulnerabilities• IP addresses are specified by the source Spoofing attacks!• Use of IP address for authentication e.g., .rhosts, some web sites• Some IP features that have been exploited Fragmentation Attacks Smurf AttacksRouting attacks• Divert traffic to malicious nodes Black-hole attack Dropping or Eavesdropping• How to implement routing attacks? Distance-Vector Announce low-cost routes• BGP vulnerabilities Prefix hijacking Path alterationTCP-level attacks• SYN-Floods Implementations create state at servers before connection is fully established Limited # slots get exhausted• Session resets Close a legitimate connection• Session hijack Pretend to be a trusted host Sequence number guessingSession HijackTrusted (T)Malicious (M)Server1.SYN (ISN_M)SRC = M2.SYN(ISN_S1), ACK(ISN_M)First send a legitimate SYN to serverSession HijackTrusted (T)Malicious (M)Server1.SYN (ISN_M)SRC = T2.SYN(ISN_S2), ACK(ISN_M)3.ACK(ISN_S2)SRC = TUsing ISN_S1 from earlier connection guess ISN_S2!Needs to prevent T from RST-ingOutline• Security Vulnerabilities• Denial of Service• Worms• Countermeasures: Firewalls/IDSDenial of Service• Make a service unusable, usually by overloading the server or network• Disrupt service by taking down hosts• Consume host-level resources E.g., SYN-floods• Consume network resources E.g., UDP/ICMP floodsSimple DoSAttacker Victim• Attacker generates lots of trafficLots of traffic• Attacker usually spoofs source address to hide origin• Think of a simple solution?Distributed DoSAttackerHandler HandlerAgent Agent Agent Agent AgentVictimDistributed DoS• Handlers are usually high volume servers Easy to hide the attack packets• Agents are usually home users with DSL/Cable Already infected and the agent installed• Very difficult to track down the attacker Multiple levels of indirection!• Aside: How to distinguish DDoS from a Flash Crowd? Flash Crowd Æ Many clients using a service Slashdot EffectSmurf AttackAttacking SystemInternetInternetBroadcast Enabled NetworkBroadcast Enabled NetworkVictim SystemPing to a broadcast IP from the (spoofed) source address of the victim ICMP Ping Dst: bcast addr of remote net Src: VictimReflector AttackAttackerAgent AgentReflector Reflector Reflector Reflector ReflectorVictimSrc = VictimDestination = ReflectorSrc = ReflectorDestination = VictimUnsolicited traffic at victim from legitimate hostsOutline• Security Vulnerabilities• Denial of Service• Worms• Countermeasures: Firewalls/IDSWorm Overview• Self-propagate through network• Typical Steps in Worm Propagation Probe host for vulnerable software Exploit the vulnerability E.g., Sends bogus input (for buffer overflow – how does it work?) Attacker can do anything that the privileges of the buggy programallow Launches copy of itself on compromised host• Spread at exponential rate 10M hosts in < 5 minutes Hard to deal with manual interventionWorm or Virus?Probing Techniques• Random Scanning• Local Subnet Scanning• Routing Worm• Pre-generated Hit List• TopologicalRandom Scanning• 32 bit number is randomly generated and used as the IP address Aside: IPv6 worms will be different …• E.g., Slammer and Code Red I• Hits black-holed IP space frequently Only 28.6% of IP space is allocated Aside: can track worms by monitoring unused addresses HoneypotsSubnet Scanning• Generate last 1, 2, or 3 bytes of IP address randomly• Code Red II and Blaster• Some scans must be completely random to infect whole internetRouting Worm• BGP information can tell which IP address blocks are allocated• This information is publicly available http://www.routeviews.org/ http://www.ripe.net/ris/Hit List• Hit list of vulnerable machines is sent with payload Determined before worm launch by scanning• Gives the worm a boost in the starting phase• Can avoid detection by the early detection systemsTopological• Uses info on the infected host to find the next target Morris Worm used /etc/hosts , .rhosts Email address books P2P software usually store info about peers that each host connects toSome proposals for countermeasures• Better software safeguards Static analysis and array bounds checking (lint/e-fence) Safe versions of library calls gets(buf) -> fgets(buf, size, ...) sprintf(buf, ...) -> snprintf(buf, size, ...)• Host-level solutions E.g., Memory randomization, Stack guard• Host-diversity Avoid same exploit on multiple machines• Network-level: IP address space randomization Make scanning ineffective• Rate-limiting: Contain the rate of spread• Dynamic quarantine: Isolate infected hosts• Content-based filtering: signatures in packet payloadsOutline• Security, Vulnerabilities• Denial of Service• Worms• Countermeasures: Firewalls/IDSCountermeasure Overview• High level basic approaches Prevention Detection Resilience • Requirements Security:
View Full Document