CS 6250 Test3 – Georgia Tech
9. Software Defined Network
- Network Management Overview
- Network Operations and Management
- Software Defined Networking
- Traffic Engineering
- Network Security
- What is network management?
- Process of configuring network to achieve a variety of tasks
- Load balancing
- Security
- Business Relationships
- Mistake can leads to..
- Oscillation
- Routers can’t agree to the route to destination
- Loops
- Partitions
- Black hole
- A packet reach to a router that doesn’t know what to do and drop it
- Oscillation
- Process of configuring network to achieve a variety of tasks
- Network Operations and Management
- Why is configuration hard?
- Defining correctness is hard
- Interactions between protocols -> unpredictability
- Operators make mistakes
- Each device is configured to the vendor specific
- Low-level configuration
- => SDN changes this
- Low-level configuration
- Each device is configured to the vendor specific
- What operators need (and what SDN provides)
- Network-wide views
- Topology
- Traffic
- Network-level objectives
- Load balance
- Security
- Direct Control
- Rather than configuring each device
- Direct manipulation of data plane
- Network-wide views
- Router should..
- Forward packets
- Collect measurements
- (x) Compute routes
- Can be (logically) centralized and controlled
- SDN
- => Remove routing from routers
- SDN
- What is an SDN?
- Today’s network has 2 functions
- Data plane
- Forward traffic to destination
- Control Plane
- Compute routing table
- => Data & Control on routers
- Data plane
- In SDN
- Control plane runs on logically centralized controller
- Network-wide control
- Separation of Data and control
- Moved from vertically integrated devices, slow innovation => Open interface, fast innovation
- Control devices by software
- Today’s network has 2 functions
- What are advantages of SDN?
- Overview
- History
- Pre-2004, distributed configuration
- Router control protocol
- BGP only
- 2005, 4D
- Decision plane
- Data plane
- Dissemination / Discovery plane
- 2008, Openflow
- Can be practical only when vendors open their api
- To make switch cheap sets can be controlled from software
- Allow us to decouple control and data
- Can be practical only when vendors open their api
- Pre-2004, distributed configuration
- Infrastructures
- Applications
- History
- What is an SDN?
- Advantages of SDN
- Separate control plane
- Coordination
- Evolve
- Reasoning
- => Allow us to apply all CS techniques
- Infrastructure
- Control plane
- Software program (python, C)
- Controller affects forwarding state using control command
- Data plane
- Programmable hardware
- Control plane
- Applications
- This course
- Data centers
- Backbone networks
- Enterprise networks
- Internet exchange points (IXPs)
- Home networks
- This course
- Separate control plane
- Examples of control plane operations
- Compute state (forwarding path) that satisfies high-level policy
- Computing a shortest path routing tree
- Authenticating a user’s device based on MAC address
- (x) rate-limiting traffic
- Typically done in data plane
- (x) Load balancing traffic based on hash of source IP
- Decision made in forwarding time not by centralized controller
- Control and Data Planes
- Control Plane
- Logic that controls forwarding behavior
- Examples:
- Routing protocols
- Configuration for network middleboxes
- Data Plane
- Forward traffic according to control plane logic
- Examples:
- Forwarding
- Switching
- Routing protocol (control plane)
- Compute functions
- => Forwarding table entries (data plane)
- Why separating data and control a good idea?
- Independent evolution
- Control from high-level program
- Easier debug/check behavior
- Provide opportunities
- Data centers
- Better network management
- Routing
- More control over decision logic
- Enterprise network
- Security
- Research
- Allow virtualize network
- Coexisture w/ production
- Allow virtualize network
- Data centers
- (x) No single point of failure
- (x) Ability to scale
- Control Plane
- Example: Data center
- There are many racks of servers
- -> over 40000
- Problem
- Provisioning/migration in response to varying load
- Solution
- Program switch state from a central database
- If we migrate a VM from a server to another,
- We must update switch state
- It is easier to do with central controller (db)
- Servers are addressed with layer 2 addressing
- -> Servers can be migrated without requiring new VM to obtain new address
- -> All it needs to be happen is to update the switch state
- There are many racks of servers
- Challenges
- Example: Backbone security
- Goal
- Filter attack traffic
- Measurement system detect attacker’s entry point
- RCP (controller) install null route to ensure no traffic comes from the attacker
- Goal
- Scalability
- One controller responsible for hundreds of switches
- Consistency
- Ensure different replicas (controllers) see same view
- (logically centralized)
- Ensure different replicas (controllers) see same view
- Security/Robustness
- Failure or complete?
- Example: Backbone security
- Coping with scalability
- Eliminate redundant data structure
- Only perform control-plane operations for a limited # of ops
- Cache forwarding decisions in switches
- Run multiple controllers
- (x) sending all traffic to controller
- Different SDN controllers
- NOX
- RYU
- Floodlight
- Pryetic
- Frenetic
- NOX
- First generation openflow controller
- Open source, stable, widely used
- Two flavors
- Classic
- C++/python
- New nox
- C++
- Fast, clean
- Classic
- Components
- Switches
- Network-attached servers
- Abstraction
- Switch control
- Control
- Flow granuality
- Flow = {srcIP, dstIP, srcPort, …}
- Operation
- Flow <header:counter, actions>
- header : 10 tuples
- Counter: maintain statistics
- Actions
- Should be performed on packets that matches to the flow definitions
- Forward, drop, seed to controller
- Update controllers
- Applies corresponding actions
- Flow <header:counter, actions>
- Program Interface
- Events
- Controller
- Know how to process different types of events
- Keeps track of network view
- topology
- Events
- Switch join/leave, packet received, …
- Controller
- Events
- NOX characteristics
- C++
- Openflow 1.0
- Model : event based
- -> event handlers for NOX control
- (o) performance
- (x) need to use low-level openflow commands
- (x) only C++ (slow for dev) (POX for python)
- First generation openflow controller
- When to use POX?
- Class, University research
- (x) performance
- (o) eash (python)
- Ryu, Floodlight, Nox, Pox
- Ryu
- Python
- OF 1.0~1.3, Nicria
- Openstack
- (x) performance
- Floodlight
- Java
- OF 1.0
- Fork from “beacon”
- (o) Documentation
- (o) Integration with REST
- (o) performance
- (x) hard to learn
- Nox
- C++
- OF 1.0
- (o) performance
- (x) Slow programming
- Pox
- Python
- OF 1.0
- (x) performance
- (o) easy to program
- Ryu
- Customizing Control
- Review hub/switches
- Pox controller w/ simple Mininet topology
- Two types of control
- Hub
- Switch
- Hub
- Maintains no state
- Simply forwards the input packet to every output ports
- In Pox
- Add listener for a switch connect
- Use OF flow modification to the switch to flood
- Switch
- Maintain switch table
- Learning switch
- When a packet arrives from a host using a port, the switch updates table
- In Pox
- Update address/port table
- Controller maintains the table
- If multicast, flood
- If no table entry (dst), flood
- If src == dst, drop
- Install flow flow table entry
- Prevents future packet to the flow from being redirected to the controller
- It can be directly handled by switch
- Prevents future packet to the flow from being redirected to the controller
- Update address/port table
- Summary
- OF makes modifying forwarding bahavior easy
- Switching
- {*,*, …, DST MAC, *} -> output port
- Flow switching
- {switch port, srcMac, … all filled} -> output
- Firewall
- {*, srcMac, *, *, …} -> forward/ drop
- Switching
- Caching
- Packets only reach controller if no flow table entry at switch
- When controller decides an action, installs it in switch
- Decision/ flow table is cached
- Until it expires
- Customizing control is easy
- Turning switch -> firewall < 40 lines of code
- Performance benefits of caching rules/decisions
- OF makes modifying forwarding bahavior easy
9.1 Programming SDNs
10. Traffic Engineering
- Traffic Engineering Overview
- Traffic Engineering
- Process of reconfiguring the network in response to changing traffic loads, to achieve some operational goal
- Some goals…
- Peering ratios
- Relieve congestion
- Balance load
- Some goals…
- Process of reconfiguring the network in response to changing traffic loads, to achieve some operational goal
- IP networks must be managed
- “Self-management”
- TCP
- Send less during congestion
- Routing
- Adopt to topology changes
- TCP
- Problem:
- Does the network run efficiently?
- How routing should adapt to traffic?
- Avoid congested links
- Satisfying application requirements
- How routing should adapt to traffic?
- Does the network run efficiently?
- “Self-management”
- Outline
- Tuning routing protocol configuration
- Intra & Interdomain Traffic Engineering
- Multipath routing
- Traffic Engineering
- Intradomain TE: Tuning link weights
- Routers flood information to learn topology
- Operator configures link weights
- Possible settings:
- Inversely proportional to capacity
- Proportional to propagation delay
- Network-wide optimization
- Measuring, Modeling, and Controlling traffic
- 3 steps: Measure, Model, Control
- Measure topology and traffic
- Build “what-if” model
- Change configuration to control network behavior
- Intradomain TE: Optimization
- Input: Graph G(R,L) (R: router, L: links), cl: capacity of l
- Mij: Traffic from router i to router j
- Output:
- Set of links weights wl
- Input: Graph G(R,L) (R: router, L: links), cl: capacity of l
- 3 steps: Measure, Model, Control
- Link utilization Function
- Objective function
- Utilization: ul/cl
- Objective: min f(ul/cl) in the all links
- -> NP complete
- Practice:
- Minimize # of degrees to network
- Resistance to failure
- Robust to measurement noise
- Objective function
- Intra vs Interdomain routing /TE
- Intradomain:
- Within a domain (e.g, ISP, campus, datacenter)
- Interdomain:
- Between domains
- eg)
- Peering between ISPs or university networks
- Peering at an internet exchange point
- eg)
- Between domains
- Intradomain:
- BGP in interdomain TE
- Interdomain traffic engineering
- Allowing congestion on edge links
- Using new/upgrade edge lineks
- Changing end-to-end path
- -> reconfiguration of BGP
- Interdomain traffic engineering
- Goals for Interdomain TE
- Predictability
- Try to avoid globally visible changes
- Or it can make it works (check lecture figures)
- Try to avoid globally visible changes
- Limit influence of neighbors
- Forcing consistent advertisement is difficult but doable
- Limit AS path influence
- Reduce overhead of routing changes
- Group routes that has same path
- Can move groups of prefixes according to the groups of the prefixes that shares AS paths
- Group routes that has same path
- Predictability
- Multipath routing
- Operator establish multipath in advance
- For Interdomain
- Equal cost multipath (ECMP)
- Traffic splitting
- 35% to upper, 65% to lower path
- For Interdomain
- How can a source router adjust path?
- Alternating between forward table entries
- Have multiple forward table entries for same dst
- Alternating between forward table entries
- Operator establish multipath in advance
- Data center networking
- Charastertics
- Multi-tenancy
- (o) Allow to amortize cost shared infrastructure
- (x) Security because multiple users
- (x) Resource isolation
- Elastic resources
- Operator can expand or contract resources depends on demand
- Flexible service management
- Ability to move workload to other locations inside of datacenter
- Workload management, migration
- -> Requires TE
- Enabler: Virtualization
- Multi-tenancy
- Charastertics
- Data Center Network Challenges
- Challenges
- Traffic load balance
- Support for virtual machine migration
- Power saving
- Provisioning
- Security
- Data center topology (check out lecture figures)
- Core
- Historically connected to layer3
- Modern: all layer-2 topology
- (o) easier migration
- Since servers can stay in same layer-2 network
- -> no need new IP address
- Since servers can stay in same layer-2 network
- (o) easier load balance
- (x) scale
- Too many servers in a single “flat” topology
- (o) easier migration
- Problem with this topology
- (x) potential single point of failure
- (x) links on top can be oversubscription
- Aggregation
- Access
- Core
- Challenges
- Data center topology
- (x) scale
- One solution
- Pods
- Each pod has address
- Each server has “pseudo mac” corresponding to pod
- Switches no longer need to maintain forwarding table for every host
- Only need to maintain entries for reaching other pods
- Once it reaches the pod, the switch for the pod has entries for the servers
- Problem: mapping
- Pseudo mac -> real mac!
- Interrupt ARP
- The switch forward it to fabric manager instead of flooding it
- Fabric manager responds with the pseudo address
- The server sends the frame with the destination pseudo address
- The receiving switch switch pseudo mac -> real mac
- Achieve hierarchical forwarding in a large layer-2 topology without modifying any host’s software
- Pods
- One solution
- (x) scale
- Data center (intradomain) TE
- Limited server-to-server capacity
- Links at “top” of fat tree topology are over-subscribed
- Fragmentation (for resource)
- Because of migrations
- May require complicated L2/L3 re-configuration
- VL2
- Want: Abstraction of BIG L2 switch
- Achieve layer-2 semantics across the entire data center topology
- Done by name, location separation and a resolution that resembles fabric manager
- Achieve uniform high capacity between servers and balance load across links
- Flow based random traffic interaction
- Valiant load balancing
- Flow based random traffic interaction
- Limited server-to-server capacity
- Valiant load balancing
- Goals
- Spread traffic evenly across servers
- Access layer randomly select a switch from indirection layer
- The intermediate switch forward the packet to the dst
- Access layer randomly select a switch from indirection layer
- Location Independence
- Spread traffic evenly across servers
- Goals
- Jellyfish: Networking Data Centers Randomly
- Goal
- High throughput
- Big data
- Incremental expandability
- Easy replacement of servers
- High throughput
- Problem: Structure constrains expansion
- Hypercube: 2^k switches
- 3-level fat tree: 5k^2/4 switches
- Top level switches constrains expansion
- Goal
- Jellyfish: Random Regular Graph
- Random:
- Each graph is randomly selected from regular graphs
- Regular graph
- Each node has same degree
- Graph
- Switches are nodes
- Construction
- Construct random graph at top of switch layer
- RRG(N,k,r)
- ki : total ports
- ri: to connect to other TopofRack switches
- Ki-Ri ports to connect to servers
- With N rackes, the network supports
- N(Ki-Ri) servers
- Random:
- Constructing Jellyfish (check lecture figures)
- Pick a random (not neighboring) switch pair
- Join them with a link
- Repeat until no links can be added
- High capacity is achieved because of shorter paths
- Can reach more servers in same number of hop jumps
- Open questions
- Topology design
- How close are random graphs to optimal?
- What about heterogeneous switches?
- System design
- How to physically cable?
- How to perform routing or congestion control?
- Topology design
11. Network Security
- Need for Network Security
- Attacks on:
- Routing (BGP)
- Naming (DNS)
- Reflection (DDos)
- Generate large amout of traffic targetted at a victim
- Phishing
- An attacker expliots the DNS and attempt to trick a customer
- Reflection (DDos)
- Attacks on:
- Internet is Insecure
- Internet is designed for simplicity
- Security was not a primary issues
- On by default
- When a host is connect to internet, it is reachable any other hosts with public IP by default
- Hosts are insecure
- Attacks can look like “normal” traffic
- Collection of traffics can be a attack
- Federated design
- Because there are many individual networks run by different network operators, it is difficult to coordinate a defense
- (x) IP addresses are easy to guess
- Internet is designed for simplicity
- Resource Exhaustion Attack
- Packet Switching Network Vulerable: Resource Exhaustion
- A link can be shared by different senders by statistical multiplexing
- A large number of senders can overload node or link
- Phone network doesn’t have this problem (statically dedicated resource)
- A large number of senders can overload node or link
- Attacks a basic component of security (availability)
- A link can be shared by different senders by statistical multiplexing
- Components of Security
- Ability
- Ability to use a resource
- Confidentially
- Conceal information (bank, …)
- Authenticity
- Assures origin of information
- Integrity
- Prevent unauthorized changes
- Ability
- Threat: Potentially violate one of the conponents of security
- Attack: Action that violates the components
- Packet Switching Network Vulerable: Resource Exhaustion
- Attacks on Confidential
- Eavesdropping
- Packet sniffing tools
- Wireshark, tcpdump
- Set network card in promiscuous mode
- DNS
- What website someone is visiting
- Packet headers
- What type of app you use
- Full packet payload
- See everything you are sending on network
- Content, messages, …
- Packet sniffing tools
- Attack on Authenticity
- Eve might modify it and reinject to the network
- Man in the middle
- Eavesdropping
- Negative impacts of attacks
- Thief of confidential info
- Unauthorized use
- False info
- Disruption of service
- Routing Security (BGP)
- Control plane security (authentication)
- Determine the veracity of routing advertisement
- Session
- Protects point-to-point between routers
- Path
- Protects AS paht
- Origin
- Guarantee the origin AS that advertises the prefix is the owner of prefix
- Router hijack
- Because the advertisement was not from right owner
- Data plane
- Data travelling to the intended locations (route)
- It is hard to verify
- Data travelling to the intended locations (route)
- Control plane security (authentication)
- Route Attacks
- How?
- Misconfiged router error
- unintended attack
- Routers compromised by attacker
- Attacker reconfigure the router
- Unscrupulous ISP
- Misconfiged router error
- Types of attack
- Config / or change config with sw
- Tamper with software
- Tamper with routing data
- Most common
- Router hijack
- How?
- Route Hijacking
- Why hijack matter: DNS masquerade
- Attacker runs rough DNS server and hijack DNS query or to return false IP
- MITM
- Traffic reaches the destination, but the attacker inserts themselves in the path
- Problem:
- We need to somehow disrupt the routes to the rest of the internest while leaving the routes between the attacker and the legitimate AS
- Solution:
- By AS poisoning
- insert 10, 20 on AS path MITM
- 10 and 20 will drop the announcement becasue they think they’ve already heard it and don’t want to form a loop
- Other ASes will switch path
- insert 10, 20 on AS path MITM
- By AS poisoning
- Attacker can hide!
- Even when sender runs trace route
- Trace route consists of ICMP time exceeded message
- Attacker don’t decrease TTL where other hops decrease it
- Then it won’t generate no time exceeded message
- Even when sender runs trace route
- Why hijack matter: DNS masquerade
- Session Authentication
- The session is TCP connection between routers
- Use MD5 authentication
- Send (M (message), MD5(M, k)); k: shared secret
- Network agree on k at the outside of network
- Send (M (message), MD5(M, k)); k: shared secret
- TTL hack
- AS1 send with TTL224, and AS2 drops packets TTL < 224
- Use MD5 authentication
- The session is TCP connection between routers
- Origin and Path Authentication
- Guaranteeing Origin & Path Authentication
- New BGP
- Secure BGP (BGPSEC)
- Add signature to route advertisement
- Origin Authentication (Address Attestation)
- Certificate binding prefix to owner
- Certificate must be signed by trusted party
- Certificate binding prefix to owner
- Path Attestation
- Setup signature along AS path
- ki : secret key of AS i
- P -> AS1 -> AS2 -> AS3
- [1]
- (P, 1) : (prefix, AS path)
- {2,1}k1 : attestation
- [2]
- (P, 2 1)
- {3, 2, 1} k2
- Use this to make sure next hop is 2
- {2,1}k1
- Check if there’s any other AS inserted by comparing with (P, 2 1)
- [1]
- Why have {3,2,1} and {2,1}?
- If AS1 generate {1}k1, an attacker can steal and replay right away
- But if AS1 generate {1,2}k1, an attacker cannot make {1}k1 or {4,1}k1 because the attacker doesn’t have k1 key
- => AS generate signs with its own AS path and next AS along the path
- Prevents
- Hijacking
- Path shortening attack
- Modification
- Cannot prevent
- Suppression
- If an AS fails to advertise a route or a route withdrawl, there’s no way for the path attestation BGPSEC to prevent that kind of attack
- Replay
- Premature re-advertisement of a withdrawn route
- No way to guarantee the data traffic travels along the advertised AS path
- Significant weakness of BGP
- Suppression
- New BGP
- Guaranteeing Origin & Path Authentication
- DNS Security
- DNS architecture
- MITM
- Stub -> Caching resolver
- Read query and it responds
- -> use DNSSEC protection
- Cache Resolver
- Cache poisining
- Attacker can send reply back to the resolver before real reply comes back
- -> use 0x20 protection
- Cache poisining
- Stub -> Caching resolver
- Spoofing
- Master Authenticative (<- cache resolver)
- SlaveAuthenticative (<-Master Authenticative)
- Dynamic update system (-> Master Authenticative)
- -> use DNSSEC protection
- Corrupt
- Zone file (->Master Authenticative)
- MITM
- DNS reflection attack
- DNS can be a “weapon” for DDos
- DNS architecture
- Why is DNS vulerable
- Resolvers trust responses
- regardless where those comes from
- Responses can contain info unrelated to query
- No means for Authentication for responses!!
- DNS quires are connectionless (UDP)
- Resolver can’t map response for the query (other than query id)
- query id can be forged by attacker
- Resolver can’t map response for the query (other than query id)
- Resolvers trust responses
- DNS cache poising
- Stub resolution (A, google.com) -> Recursive resolver -> (A, google.com) -> SoA (Server of Authority)
- Attacker -> Recursive resolver
- Flood with replies with different query id
- Attacker doesn’t need to see the actual id, it just flood
- If attack respond reaches faster than the actual response,
- Cache the bogus response!
- Flood with replies with different query id
- Defenses
- query id
- but it can be guessed
- Randomized ID (only 16 bits)
- Rather than having a resolver send quires with sequencly incrementing ID the resolve pick random id
- It is harder to guess for attacker, but it’s still not too hard
- query id
- Attacker can generate his own DNS quries
- 1. google.com, 2. google.com, …
- It will generate new race
- Eventually, attacker will win one of the races
- Attacker can respond with NS record not only A
- Kaminsky attack
- Create one of these races using an A record query, and responding not only with the A record, but also with the authoritative NS record for the entire zone
- Attacker can own the entire zone
- Kaminsky attack
- Defense to DNS cache poisoning
- ID + Randomization
- Source port randomization
- Randomize the port which it sends query
- Adding another 16 bits
- (x) it can be resource intensive
- (x) NAT (network address translator) could derandomize the port
- 0x20 Encoding
- DNS is case insensitive
- GoOGle.com == google.com
- Adding another entropy
- Only the resolver and the authoritative know exact pattern
- Add another entropy
- DNS Amplification Attack
- Exploits asymmetry in size between queries & responses
- Attacker send DNS query with victim’s IP as source
- DNS will response to the victim with large size which causes traffic
- DDos on victim
- Defenses:
- Prevent IP address Spoofing
- Using appropriate filtering rules
- Disable open resolver
- Disable the resolver to resolve queries from arbitrary locations
- Prevent IP address Spoofing
- DNSSEC DNS Security
- DNSSEC
- Add Authentication to DNS responses
- By adding signatures
- Resolver -> (root)
- Resolver <- (NS.com) (sig(IP + Pk of .com server)) (root)
- signed by root’s private key
- Pk: Public key of .com server
- As long as the resolver have public key corresponding to root, it can check signature, and it knows public key for .com server
- Resolver <- (NS google.com) (sig(IP + Pk of google.com)) (.com)
- Resolver can check if the respond is not bogus because it already has .com’s public key
- Add Authentication to DNS responses
- DNSSEC
11.1 Internet Worms
- Types of Viruses and Worm Overview
- Virus
- Infection of an existing program that results in modification of behavior
- Spread typically requires user action
- Opening an attachment
- Spread manually
- Worm
- Code that propagate/replicate across the network
- Spread by exploiting flaws
- Spread automatically
- By scanning vulerabilities and infect vulerable hosts
- Types of Viruses
- 1. Parasitic
- Infects executable files
- 2. Memory-resident
- Infect running programs
- 3. Boot-sector
- Spreads when system is booted
- 4. Polymorphic
- Encrypt part of virus program using randomly generated key
- Worm might use any of the techniques to infect before spread
- 1. Parasitic
- Virus
- Worm Lifecycle
- 1. Discover
- Scan for vunlerable hosts
- 2. Infect vulnerable machines via remote exploit
- 3. Remain undiscoverable
- 1. Discover
- First Worm: “Morris Worm”
- Robert, 1988
- No malicious payload
- but, resrouce exhaustion
- affected 10% of internet hosts
- Spread through multiple vectors
- Remote shell execution/ weak password
- Targeted trusted hosts by already infected machine
- Buffer overflow/ remote exploit
- Debug command in sendmail service
- Remote shell execution/ weak password
- Worm Outbreaks In Detail
- Three major worm outbreaks
- 1. Code Red 1 (2001)
- “modern” worm
- IIS buffer overflow
- 1th ~ 20th : spread
- Infects “random” scanning bug
- Payload
- DDos on whitehouse.gov
- But failed because it targetted an IP not the domain
- 2. Code Red 2
- Same vulerability, different payload
- Only spread on Windows 2002
- Scan preferred nearby addresses
- Because if there’s 1 vulnerable host, it is likely to be more (maybe because same admin)
- Payload
- ISS backdoor
- 3. Nimda (multi-model)
- Spread by
- IIS vulnerablilty
- Build email
- Network shares
- Copied itself to network
- Installed code in webpage
- Anyone browser visiting the webpage would be infected
- Signature based defenses don’t help
- Because it uses many ways to spread
- Zero-day attack
- Email carrying Nimda was untouched
- Because it had unknown signature, and the scanner couldn’t detect
- The signature of worm was not extracted
- Extrremely easy to spread befure any anti-virus catches up
- Email carrying Nimda was untouched
- Spread by
- 1. Code Red 1 (2001)
- Three major worm outbreaks
- Modeling Fast-spreading Worms
- Random Constant Spread
- k: initial compromised rate
- N: vulerable hosts
- a: fraction of host already compromised
- Nda (new infected in dt) = (Na) * (k(1-a) (rate of uninfected machines become compromised)) dt
- a = (e^k(t-T))/(1+e^k(t-T))
- => we need to have “k” (initial compromised rate) as high as possible
- Random Constant Spread
- Increasing Initial Compromised Rate
- Hit List
- Create hit list (list of vulnerable hosts) ahead of time
- Permutation Scanning
- Every infected hosts has shared permutation of IP address lists.
- Start from own IP & work down
- Different own IP -> make sure to not duplicate
- Slammer Worm
- Entire code in one UDP packet!
- => UDP is connectionless!
- Damage on ATM, cellphone, …
- Did not have payload
- But the bandwidth exhaustion cause resource exhaustion
- Entire code in one UDP packet!
- Hit List
11.2 Spam
- Span: Unwanted Commercial Email
- Most span ends up in your spam folder
- Problem
- 1. Filters
- Someone has to design this
- 2. Storage
- Server has to keep the spam until user deletes it
- 3. Security Problem
- Phishing
- 1. Filters
- Filter
- Prevent message from reaching inbox
- How to differentiate Spam from “ham”?
- 1. Content based (particular words)
- (x) easy to evade
- (x) building filter and update it is expensive
- 2. IP address of sender (blacklist)
- Sender -> receiver -> DNSBL (blacklist)
- Receiver can decide to not even receive it
- Server can save storage
- 3. Behavior features
- Filter based on “how” message is sent
- Particular time or of day or location
- Sent batch of emails with roughly same size
- Challenges
- 1. Understanding network level behavior
- 2. Building classifiers using network features to execute the filter
- Filter based on “how” message is sent
- 1. Content based (particular words)
- Surprise: BGP “Agility”
- 1. Hijack IP prefix (short period of time: 10 min)
- 2. Send spam
- 3. Withdraw
- => Ephemeral IP address
- IP blacklist is ineffictive
- Set of Network-level features
- 1. Single-packet
- Distance b/w sender & receiver
- Density of IP space
- How many email senders are nearby
- Time of day
- AS of sender’s IP
- 2. Single-message
- # of recipients
- length of message
- 3. Aggregate
- See groups of messages
- Variation in message length
- See groups of messages
- SNARE (Spatio Temperal Netowk Level Automated Reputation Engine)
- Use Network-level features
- 70% detection: good enough
- 1. Single-packet
11.3 Denial of Service Attacks
- Denial of Service Overview
- What is DDos?
- Attempt to exhaust resources
- Network bandwidth
- TCP connections
- Host might have limited # of TCP connections
- Server resources
- Web server might have to do complicate job to render
- Attempt to exhaust resources
- Defenses
- Ingres Filtering
- drop if src != 111.111.111/24
- Works with stub system
- Stub network has only one IP address
- (o) fool proof
- (o) works at edge
- (x) doesn’t work in core
- uRPF
- User routing tables to determine where the packet could feasibly arrived on a particular interface
- x -> 10.0.1.0/24 -> AS1, x -> 10.0.18.0/24 -> AS2
- if src (10.0.18.3) from 1 -> x
- drop it
- if src (10.0.18.3) from 1 -> x
- (o) automatic
- (x) requires symmetric routing
- routing in internet is often asymmetric
- Sync Cookies (TCP)
- Ingres Filtering
- What is DDos?
- TCP 3-way handshake
- C -> syn -> S
- S -> syn-ack -> C
- C -> ack -> S
- S -> ack -> C
- Problem
- Client can send syn to make server to allocate buffer
- The syn can be spoofed IP
- Client can send syn to make server to allocate buffer
- Solution : Syn Cookie
- No buffer allocated on C->syn->S
- Instead create seq# = f(srcIP, …, random # to prevent reply attack)
- S -> syn-ack (seq#) -> C
- C -> ack (seq#) -> S
- Server checks seq#
- (x) can be applied in the network “core”
- (x) Defense against UDP flooding attacks
- No buffer allocated on C->syn->S
- inferring Dos Activity (“Backscatter”)
- IP address spoofing -> “blackscatter”
- attacker(y) -> tcp syn(src:x) -> victim
- victim -> syn-ack -> x (backscatter)
- If src:x is selected random,
- we can setup a portion of network Telescope/8 to monitor the backscatter traffic
- syn-ack goes to this network
- If src:x is picked uniformly random, the amount of traffic we see as backscatter represents exactly fraction of propotional to the size of overall attack
- n IP address, m backscatter packets,
- We expect to see (n/2^32) * m of total backscatter packets == total attack rate
- Total attack rate (m) = x * (2^32/n)
- x: observered attack rate
- n: 2^24 because Telescope/8
- n IP address, m backscatter packets,