Internet že nekaj vseskozi pestijo različne oblike zlonamerne kode. Poleg spama in poštnih črvov, so bili zadnja leta najbolj uspešni črvi, ki izkoriščajo varnostne luknje v slabo napisanih strežniških programih. Največ črvov je izkoriščalo dobro znane luknje v M$ IIS(Internet Information Server). Med njimi je bil tudi črv Code Red, ki je prvič pokazal zobe Julija 2001. Več o tem si lahko ogledate na http://www.caida.org. V današnji vaji bomo poskušali modelirati širjenje črva. Uporabili bomo epidemološki model, ki so ga prvič upoarbili za preučevanje širjenja nalezljivih bolezni pri človeku in živalih. V vsakem trenutku t naj bo

D(t) število dojemljivih računalnikov
I(t) število inficiranih računalnikov
Z(t) število “ozdravljenih” računalnikov
C(t) število “cepljenih” računalnikov (z nameščenimi varnostnimi popravki)

C. C. Zou in sodelavci so predlagali naslednji model za opis dinamike okužbe

\begin{aligned}D′(t) & = −β(t)D(t)I(t) − μS(t)(I(t) + Z(t)) \\ Z′(t) & = γI(t) \\ C′(t) & = μS(t)(I(t) + Z(t)), \end{aligned}  (1)

kjer je

β(t) = β_{0}(1 − I(t)/N)^{η}

hitrost okužbe. Če predpostavimo, da se število vseh računalnikov ne spreminja, dobimo še enačbo N = S(t) + I(t) + Z(t) + C(z), kjer je N število vseh računalnikov, ki nastopajo v modelu. Podrobnejšo razlago modela si alhko preberete v njihovem članku na naslovu

   http://www-unix.ecs.umass.edu/~ gong/papers/codered.pdf.

Enačbe (1) skupaj z začetnimi vrednosti spremenljivk v modelu, določajo začetno nalogo, ki jo bomo reševali z metodo Runge-Kutta reda 2 za sisteme enačb. Parametri in začetne vrednosti, ki jih omenjeni avtorji predlagajo so naslednji: N = 10^{6}, Z(0) = C(0) = 0, I(0) = 1, η = 3, γ = 0.05, μ = 0.06/N in β_{0} = 0.8/N.