Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Code Red Worm Propagation Modeling and Analysis Zou, Gong, & Towsley Michael E. Locasto March 21, 2003 Overview • Code Red incident data & impact • epidemiology models – traditional (biological) infection models – two-factor worm model • related work & questions – (Weaver & Sapphire) Motivation • Internet great medium for spreading malicious code – Code Red & Co. renew interest in worm studies • Issues: – How to explain worm propagation curves? – What factors affect spreading behavior? – Can we generate a more accurate model? Background: Code Red • Three versions: – CRv1.1 (bad rng) July 13, 2001 – CRv1.2 July 19, 2001 – CRv2 August, 2001 • 100 threads, 300k victims • “maliciously crafted URL” (default.ida vulnerability) Background: The Stack Smash • Buffer overflows in C functions – gets(), etc – home-grown functions • code injection & modify return pointer – both parts are critical: overflow alone does not allow you to execute code The Stack Smashing Mechanism • Insert “junk” (nop), attack code, and return value • this is how many worms propagate • SQL “Slammer” fits in one UDP packet. (376 bytes of assembly code) Epidemic Models • Deterministic vs. Stochastic – Simple epidemic model (previous paper) – general epidemic model (Kermack-Mckendrick add notion of removed hosts) • good baseline, need to be adjusted to explain Internet worm data • any model must be deterministic (b/c of scale) Two-Factor Worm Model • Two major factors affect worm spread: – dynamic human countermeasures • • • • anti-virus software cleaning patching firewall updates disconnect/shutdown – interference due to aggressive scanning • Rate of infection (ß) is not constant Two-Factor Worm Model (con) • Two important restrictions: – consider only “continuously activated” worms – consider worms that propagate w/ort topology Infection Statistics Classic Simple Epidemic Model • Model presented in previous paper (classic simple epidemic model, k=1.8, k=BN) • a(t) = J(t) / N (fraction of population infected) • Wrong! (compare to last slide) Simple Epidemic Model Math • Variables: • infected hosts (had virus at some point) = J(t) • population size = N • infection rate = ß(t) • dJ(t)/dt = βJ(t)[N - J(t)] Two-Factor Model Math • dI(t)/dt = β(t)[N - R(t) - I(t) - Q(t)]I(t) dR(t)/dt – – – – – – – – S(t) = susceptible hosts I(t) = infectious hosts R(t) = removed hosts from I population Q(t) = removed hosts from S population J(t) = I(t) + R(t) C(t) = R(t) + Q(t) J(t) = I(t) + R(t) N = population (I+R+Q+S) Two-Factor Fit • Take removed hosts from both S and I populations into account • non-constant infection rate (decreases) • fits well with observed data Results • Two-factor worm model – accurate model without topology constraints – explains exponential start & end drop off – identifies 2 critical factors in worm propagation • Only 60% of CR targets infected The SQL Slammer (Sapphire) • Infection stats: – – – – 90% in 10 minutes pop doubled every 8.5s >=75000 infected 1 UDP packet! Questions • Sapphire paper: – http://www.caida.org/outreach/papers/2003/sapphire/sapphire.html • “Previous” Code Red paper: – http://www.icir.org/vern/papers/cdc-usenix-sec02/