worm-model.tex
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
源码类别:

通讯编程

开发平台:

Visual C++

  1. chapter{Worm Model}
  2. label{chap:worm}
  3. begin{figure}[tb] 
  4.   centerline{includegraphics [width=3in] {dn-an.eps}}
  5.   caption{small The DN-AN model.}
  6.   label{fig:dn-an}
  7. end{figure}
  8. In this chapter,
  9.   we describe a scalable worm propagation model in~ns,
  10.   namely the detailed-network and abstract-network (DN-AN) model.
  11. It combines packet-level simulations with analytic worm spreading model.
  12. As shown in Figure~ref{fig:dn-an},
  13.   we model the Internet with two parts: detailed, and abstract part.
  14. A detailed-network could be an enterprise-network or the network run by an ISP.
  15. It simulates network connectivity and packet transmission.
  16. Users can evaluate worm detection algorithms in the detailed network.
  17. On the other hand,
  18.   we abstract the rest of the Internet with a mathematical model,
  19.   namely susceptible-infectious-removal (SIR) model
  20.   (refer to~cite{Hethcote00inf} for detailed descriptions).
  21. Compared to the detailed network,
  22.   we only track several state variables in the abstract world,
  23.   such as the number of infected hosts.
  24. The interaction between DN and AN is through actual packet transmissions,
  25.   that is, the probing traffic generated by compromised hosts in
  26.   both parts.
  27. For detailed description on DN-AN model,
  28.   please refer to our draft paper.
  29. We implement the worm propagation model as applications.
  30. The source code can be found at nsf{/apps/worm.{cc,h}}.
  31. There is also a sample script to illustrate the DN-AN model under
  32.   nsf{/tcl/ex/worm.tcl}.
  33. section{Overview}
  34. label{sec:worm:overview}
  35. We implement the worm propagation model with three classes:
  36.   clsref{WormApp, DnhWormApp, and AnWormApp}{ns-2/apps/worm.{cc,h}}. 
  37. clsref{WormApp} and clsref{DnhWormApp} are used in the detailed network,
  38.   representing invulnerable and vulnerable hosts respectively.
  39. clsref{AnWormApp} is the abstract network.
  40. Currently,
  41.   our model only supports UDP-based worms.
  42. An vulnerable host is compromised upon receiving a probing packet.
  43. Then,
  44.   it chooses a target host (randomly or with certain preference to local
  45.   neighbors) to scan.
  46. Probing packets have no effect on invulnerable hosts.
  47. When the abstract network receives probing packets,
  48.   it updates its current states.
  49. section{Configuration}
  50. label{sec:worm:config}
  51. To set up simulation scenario,
  52.   we first build the detailed network.
  53. We also need to create one extra node to represent the abstract network, 
  54.   and connect it to the detailed network.
  55. For nodes in the detailed network,
  56.   we first attach a code{MessagePassing} agent to each node:
  57. begin{program}
  58.   set a [new Agent/MessagePassing]
  59.   $n attach $a $probing_port
  60. end{program}
  61. If the node represents a vulnerable host,
  62.   we use clsref{DnhWormApp}:
  63. begin{program}
  64.   set w [new Application/Worm/Dnh]
  65.   $w attach-agent $a
  66. end{program}
  67. Otherwise, we configure the node as invulnerable:
  68. begin{program}
  69.   set w [new Application/Worm]
  70.   $w attach-agent $a
  71. end{program}
  72. We configure the abstract network as:
  73. begin{program}
  74.   set a [new Agent/MessagePassing]
  75.   $na attach $a $probing_port
  76.   set w [new Application/Worm/An]
  77.   $w attach-agent $a
  78. end{program}
  79. In order for the abstract network to receive probing packets generated by
  80.   nodes within the detailed networks,
  81.   we need to use manual routing.
  82. There are some extra configuration for the abstract-network node:
  83. begin{program}
  84.   set p [$na set dmux_]
  85.   $p defaulttarget $a
  86.   [$na entry] defaulttarget $p
  87. end{program}
  88. section{Commands at a glance}
  89. label{sec:worm:command}
  90. Some common parameters can be configured through TCL script:
  91. begin{program}
  92.   ScanRate    # the rate that a compromised host sends probing packets
  93.   ScanPort    # the vulnerable service port number
  94.   ScanPacketSize  # the size of worm probing packets
  95. end{program}
  96. By default,
  97.   compromised hosts scan the Internet randomly.
  98. We can also simulate local-scanning worm by setting the local-scanning
  99.   probability:
  100. begin{program}
  101.   $w local-p 0.5    
  102. end{program}
  103. Following are some commands to configure parameters for the
  104.   abstract network:
  105. begin{program}
  106.   $w beta 0.1   # infection parameter
  107.   $w gamma 0   # removal parameter
  108.   $w addr-range 2000 200000  # the address space of the abstract network
  109.   $w dn-range 0 1999         # the address space of the detailed network
  110.   $w v_percent 0.01          # the percentage of vulnerable hosts in the abstract network
  111. end{program}