All relevant data are within the paper.

Introduction {#sec001}
============

Epidemic spreading phenomena exist in a wide range of domains \[[@pone.0127478.ref001], [@pone.0127478.ref002]\]. Well-known examples include disease spreading \[[@pone.0127478.ref003]--[@pone.0127478.ref005]\], computer worm proliferation \[[@pone.0127478.ref006]--[@pone.0127478.ref008]\], and information propagation \[[@pone.0127478.ref009]--[@pone.0127478.ref011]\]. Modelling and understanding of such phenomena can have important practical values to predict and control real world epidemics \[[@pone.0127478.ref003]--[@pone.0127478.ref005], [@pone.0127478.ref012]--[@pone.0127478.ref015]\].

Some typical spreading mechanisms have been extensively studied, such as the fully-mixed spreading model and the network spreading model. Many epidemics are *hybrid* as they spread via two or more different mechanisms simultaneously. Previous work on hybrid epidemics has focused on what we call the *non-critically* hybrid epidemic, where at least one of the spreading mechanisms alone is able to cause an epidemic outbreak, and a mixture of mechanisms brings no advantage.

We are interested in the *critically* hybrid epidemic, where each spreading mechanism alone is unable to cause any significant spreading whereas the mixture of such mechanisms leads to a huge epidemic outbreak. Recently we proposed a model that explains the behaviour of critically hybrid epidemics, which incorporates two spreading mechanisms in the setting of a metopopulation \[[@pone.0127478.ref016]\]. We demonstrated that it is indeed possible to have a highly contagious epidemic by mixing simple, ineffective spreading mechanisms. The properties of such epidemics are critically determined by the ratio at which the different spreading mechanisms are mixed, and usually there is an optimal ratio that leads to a maximal outbreak size.

In this paper we present a detailed analysis of a *real* hybrid epidemic---the Internet worm Conficker, which erupted on the Internet in 2008 and infected millions of computers. The worm is a hybrid epidemic as the code analysis \[[@pone.0127478.ref017]\] has revealed the worm applied three distinct spreading mechanisms: (1) global random spreading, (2) local network spreading, and (3) neighbourhood spreading. It is a critically hybrid epidemic because the first and second spreading mechanisms are highly ineffective if used alone, and the third mechanism, as we will show later, is most effective when mixed with the other two.

We introduce a mathematical model to describe the spreading behaviour of Conficker. Our study was based on measurement data provided by Center for Applied Internet Data Analysis (CAIDA)'s Network Telescope project \[[@pone.0127478.ref018], [@pone.0127478.ref019]\], which monitors Internet traffic anomalies. We proposed algorithms to extract Conficker--related features from the CAIDA data. Then we infer the values of our model's parameters that characterise the worm.

We evaluated our inference results by comparing theoretical predictions with the actual measurement results. Our predictions closely reproduced the outbreak process of Conficker. We then explored possible spreading scenarios based on simulations using different values of parameters. One of the interesting results was that we showed the worm could spread faster, reach a larger outbreak size or survive for longer time by just revising the ratios at which the worm allocated its time on each of the spreading mechanisms (while keeping everything else the same), which can be easily achieved by changing a few lines in its coding.

This paper's contributions are two fold. Firstly, we present the first study on a real-life critically hybrid epidemic, where the epidemic's parameter values are inferred from measurement data. Secondly, we analyse the complex interactions among Conficker's three spreading mechanisms, and show that the worm can be more contagious if it mixes its three spreading mechanisms in an optimal way.

Background {#sec002}
==========

Epidemic spreading mechanisms {#sec003}
-----------------------------

A number of epidemic spreading mechanisms have been extensively studied \[[@pone.0127478.ref020], [@pone.0127478.ref021]\]. For example, in the *fully-mixed* spreading models \[[@pone.0127478.ref020], [@pone.0127478.ref022]\], a node is connected to all other nodes in a population, thus an epidemic can potentially spread between any two nodes according to a probability. Whereas in the *network* spreading models \[[@pone.0127478.ref001], [@pone.0127478.ref002], [@pone.0127478.ref020], [@pone.0127478.ref023]\], nodes are connected to their neighbours via a network structure, therefore an epidemic can only spread along the connections among nodes. Recent network-based models considered additional physical properties such as location-specific contact patterns \[[@pone.0127478.ref024], [@pone.0127478.ref025]\], human mobility patterns \[[@pone.0127478.ref026]--[@pone.0127478.ref029]\] and spatial effects \[[@pone.0127478.ref030]--[@pone.0127478.ref033]\].

Hybrid epidemics {#sec004}
----------------

Many epidemics are *hybrid* in the sense that they spread via two or more spreading mechanisms simultaneously. A hybrid epidemic can use fully-mixed spreading and network spreading, or use fully-mixed spreading but at two or more different levels, e.g. at the *global* level covering the whole population or at the *local* level consisting of only a part of the population.

There are many real examples. Mobile phone viruses can spread via Bluetooth communication with any nearby devises (local, fully-mixed spreading) and Multimedia Messaging Service with remote contacts (global, network spreading) \[[@pone.0127478.ref027]\]. A computer that is infected by the worm Red Code II spends 1/8 of its time probing any computers on the Internet at random (global, fully-mixed spreading) and the rest of the time probing computers located in local area networks (local, fully-mixed spreading) \[[@pone.0127478.ref034]\]. Today information is propagated in society via mass media (TV, newspaper, posters) as well as online social media (Facebook, Twitter and emails). Mass media (global, fully-mixed spreading) can potentially deliver the information to a big audience, but the effectiveness of information transmission at an individual level may be small (for example, its ability to alter the target individuals behaviour). In contrast, social media (local, network spreading) may have little or no access to the majority of people who are not connected to the local group, but they provide rapid penetration of a selected target group with higher effectiveness.

It is clear that hybrid epidemics are much more complex than simple epidemics. Their behaviour is affected not only by multiple spreading mechanisms that they use, but also by the population's overlaid structure on which they spread. Studying hybrid epidemics may provide crucial clues for better understanding of many real epidemics.

Previous works on hybrid epidemics {#sec005}
----------------------------------

Hybrid epidemics were initially studied as two levels of mixing in a population where nodes are mixed at both local and global levels \[[@pone.0127478.ref035]\]. Recently hybrid epidemics were studied as two levels of mixing in a network \[[@pone.0127478.ref036]--[@pone.0127478.ref038]\], in structured populations \[[@pone.0127478.ref039]\], in structured households \[[@pone.0127478.ref040]--[@pone.0127478.ref042]\], and in a meta-population which consists of a number of weakly connected sub-populations\[[@pone.0127478.ref043]--[@pone.0127478.ref048]\]. Studies of epidemics in clustered networks \[[@pone.0127478.ref049]--[@pone.0127478.ref051]\] are also relevant to the hybrid epidemics.

These previous works focused on analysing how a network's structure affects hybrid spreading. And most of them studied the *non-critically* hybrid epidemics, where at least one of the two spreading mechanisms alone can cause an infection outbreak and therefore the mix of two mechanisms is not a necessary condition for an epidemic outbreak. In this case, a hybrid epidemic using two spreading mechanisms is often less contagious than an epidemic using only one of the mechanisms. \[[@pone.0127478.ref036], [@pone.0127478.ref052]\].

Our recent study on critically hybrid epidemics {#sec006}
-----------------------------------------------

We are interested in the *critically* hybrid epidemics, where each of the spreading mechanisms alone is not able to cause any significant infection whereas a combination of the mechanisms can cause an epidemic outbreak. In this case, the mix of different spreading mechanisms is a critically condition for an outbreak (see [Fig 1](#pone.0127478.g001){ref-type="fig"}).

![Hybrid epidemics, where two spreading mechanisms A and B are mixed at the ratio of *α* to (1 − *α*), where 0 ≤ *α* ≤ 1.\
(a) Non-critically hybrid epidemic, where at least one of the two mechanisms can cause an outbreak by its own (i.e. when *α* = 1 or *α* = 0). (b) critically hybrid epidemics, where each mechanism alone cannot cause any significant infection whereas a mix of them produces an epidemic outbreak. There exists an optimal *α* that produces the maximum outbreak.](pone.0127478.g001){#pone.0127478.g001}

Recently we proposed a generic model to study the critically hybrid epidemics \[[@pone.0127478.ref016]\]. We considered an epidemic which spreads in a *meta-population* (consisting of many weakly connected *sub-populations*) using a mix of the following two typical spreading mechanisms. (1) Fully-mixed spreading on the global level, i.e. infection between any two nodes in the meta-population. (2) Network (or fully-mixed) spreading on the local level, i.e. infection between nodes within a sub-population where the internal topology of a sub-population is a network (or a fully-connected mesh). Each spreading mechanism has its own infection rate and an infected node recovers at a recovery rate. We define a parameter called the hybrid trade-off, *α*, as the proportion of time that the epidemic devotes to the first spreading mechanism (or the probability of using the first spreading mechanism in a time unit). Thus the proportion of time spent on the second mechanism is (1 − *α*).

Our mathematical analysis and numerical simulations based on the model highlight the following two results. Firstly, it is possible to mix two ineffective spreading mechanisms to produce a highly contagious epidemic, because the mix of the mechanisms can help to overcome the weakness of each mechanisms. Secondly, the threshold and the size of outbreak is critically determined by the hybrid trade-off *α*. We also provided an analytical prediction of the optimal trade-off for the maximum outbreak size.

Computer Worm Conficker {#sec007}
=======================

In this paper we will analyse a critically hybrid epidemic, the computer worm Conficker, based on real measurement data. It is one of the most contagious computer worms on record. It erupted on the Internet on 21 November 2008 and infected millions of computers in just a few days \[[@pone.0127478.ref007]\]. The worm's ability to spread to such a large number of computers in so short a time and the fact \[[@pone.0127478.ref053]\] that it is still active on the Internet has caused serious concern.

Each computer on the Internet is associated with an Internet Protocol (IP) address. Conficker views the Internet as a meta-population, where computers are located in sub-populations, i.e. Local Area Network (LAN) consisting of computers whose IP addresses share the same prefix. According to the computer security company Symantec \[[@pone.0127478.ref017]\], Conficker uses three spreading mechanisms (see [Fig 2](#pone.0127478.g002){ref-type="fig"}): *Global* spreading, where the worm probes computers with random IP addresses on the Internet;*Local* spreading, where the worm on an infected computer probes computers in the same Local Area Network (LAN) with the same IP address prefix;*Neighbourhood* spreading, where it probes computers in ten neighbouring LANs (with smaller consecutive IP address prefixes).

![Conficker's three probing strategies.\
(1) global spreading, where it probes any computer on the Internet at random; (2) local spreading, where it probes computers in the same local network; (3) neighbourhood spreading, where it probes computers in ten neighbouring local networks.](pone.0127478.g002){#pone.0127478.g002}

Previous research on Conficker has studied the geographical distribution of infected IP addresses, the distribution of probing packet size \[[@pone.0127478.ref007], [@pone.0127478.ref054], [@pone.0127478.ref055]\], and properties of the worm's global probing \[[@pone.0127478.ref056], [@pone.0127478.ref057]\]. The parameters of Conficker's hybrid spreading and how they affect the epidemic dynamics of the worm can help explain why the worm is so contagious. But they have been hitherto little studied.

Our Model of Conficker {#sec008}
======================

Here we use the notion of node to represent an IP address at which a computer (or computers) connects to the Internet. For convenience, we call a sub-population (or a LAN) a subnet. A node must be in one of three states: *susceptible*, *infected*, and *recovered*\[[@pone.0127478.ref020]\]. Initially only a small number of nodes are infected and all others are susceptible. At each time step, an infected node attempts to spread the worm to susceptible nodes using one of the three probing strategies: Global spreading with probability *α* ~*g*~, where the worm probes nodes on the Internet at random with the global infection rate *β* ~*g*~ ∈ \[0, 1\].Local spreading with probability *α* ~*l*~, where it probes nodes in the local subnet with the local infection rate *β* ~*l*~ ∈ \[0, 1\];Neighbourhood spreading with the probability *α* ~*n*~, where it probes nodes in ten neighbouring subnets with the neighbourhood infection rate *β* ~*n*~ ∈ \[0, 1\]; The mixing probabilities satisfy *α* ~*g*~+*α* ~*l*~+*α* ~*n*~ = 1.

An infected node is recovered with recovery rate *γ* ∈ \[0, 1\]. A recovered node remains recovered and cannot be infected again. Note that for mathematical analysis, the mixing probabilities could be incorporated into the infection rates. But we have treated them as separate parameters, considering that an infection rate reflects inherent properties of a computer worm in the context of a specific target population, whereas mixing probabilities are settings that can be easily modified in the worm's code. This is also the reason we use the mixing probabilities as controlling parameters in our study below and keep other parameters the same.

Only nodes that can potentially be infected by Conficker are relevant to our study. We call them the *relevant* nodes. A subnet is relevant if it contains at least one relevant node. Irrelevant nodes include unused IP addresses and those computers that do not have the vulnerabilities that the worm can exploit. Note that although the irrelevant nodes and subnets do not participate in the spreading of Conficker, they will be probed by the worm as the worm does not have the priori knowledge about which nodes are vulnerable.

Let *n* represent the total number of relevant nodes and *N* the number of relevant subnets. The average number of relevant nodes in a subnet is *n* ~*N*~ = *n*/*N*. Let *N* ^+^ represent the average number of relevant subnets in ten neighbouring subnets.

At time *t*, the total number of susceptible, infected, and recovered nodes are *S*(*t*), *I*(*t*), and *R*(*t*), respectively. Then the average number of infected nodes in a subnet is *I* ~*N*~(*t*) = *I*(*t*)/*N*, and the average number of infected nodes in ten neighbouring subnets is *I* ^+^(*t*) = *I* ~*N*~(*t*)*N* ^+^. Hence on average a susceptible node can be infected via (1) global probing by *I*(*t*) infected nodes in the Internet; (2) local probing by *I* ~*N*~(*t*) infected nodes in the local subnet; (3) neighbourhood probing by *I* ^+^(*t*) infected nodes in the neighbouring subnets.

The average probabilities that a susceptible node is *not* infected by the global, local and neighbourhood probing, respectively, are: $$\begin{array}{rcl}
{P_{g}\left( t \right)} & = & \left( 1 - \alpha_{g}\beta_{g} \right)^{I(t)} \\
{P_{l}\left( t \right)} & = & \left( 1 - \alpha_{l}\beta_{l} \right)^{I_{N}{(t)}} \\
{P_{n}\left( t \right)} & = & {\left( 1 - \alpha_{n}\beta_{n} \right)^{I^{+}{(t)}}.} \\
\end{array}$$ The average probability of *not* being infected by any probing is *P*(*t*) = *P* ~*g*~(*t*)*P* ~*l*~(*t*)*P* ~*n*~(*t*). Thus the discrete evolution of Conficker spreading can be described as: $$\begin{array}{rcl}
{S\left( t + 1 \right)} & = & {S\left( t \right) - S\left( t \right)\left\lbrack 1 - P\left( t \right) \right\rbrack} \\
{I\left( t + 1 \right)} & = & {I\left( t \right) + S\left( t \right)\left\lbrack 1 - P\left( t \right) \right\rbrack - \gamma I\left( t \right)} \\
{R\left( t + 1 \right)} & = & {R\left( t \right) + \gamma I\left( t \right)} \\
\end{array}$$ where *S*(*t*)\[1 − *P*(*t*)\] is the number of new infections at *t*.

Inferring Conficker Parameters From Data {#sec009}
========================================

We infer the parameter values of our Conficker model from the Internet measurement data \[[@pone.0127478.ref018], [@pone.0127478.ref019]\] collected by the Center for Applied Internet Data Analysis (CAIDA) in 2008. This is the only publicly available dataset that has captured the *initial* outbreak process of the worm. The CAIDA Network Telescope project \[[@pone.0127478.ref018], [@pone.0127478.ref019]\] monitors Internet traffic sent to a large set of *unusable* IP addresses, which account for around 1/256 of all addresses. No legitimate traffic should be sent to these monitored addresses because they are not allocated for normal usage \[[@pone.0127478.ref058]\]. Thus the traffic data captured by this project provides a good view on various abnormal behaviours on the Internet.

When Conficker spreads on the Internet, its global spreading mechanism sends out probing packets to randomly generated IP addresses, some of which are unused IP addresses and therefore are monitored by the Network Telescope project. Conficke's probing packets are characterised by the Transmission Control Protocol (TCP) with destination port number 445. This feature can be used to distinguish Conficker packets from other packets in the Network Telescope data.

For each record of Conficker's probing packet, we are interested in two things: (1) the time when the packet is monitored by the Network Telescope project, and (2) the packet's source IP address, which gives the location of a Conficker-infected node. We ignore the destination address, as it is a randomly-generated, unused IP address.

We study the Network Telescope project's daily dataset collected on November 21, 2008, the day when Conficker broke out on the Internet. We use two earlier datasets collected on November 12 and 19, 2008 to filter out background 'noise' that has been happening before the outbreak. That is, in the outbreak dataset, we discard packets that were sent from any source address that had already sent packets to any of the unusable addresses in the two earlier datasets. We use the prefix of /24 (i.e. IP address mask of 255.255.255.0) to distinguish different subnets \[[@pone.0127478.ref007]\]. Our analysis uses a 10-minute window.

Step One: Inferring node status at a given time {#sec010}
-----------------------------------------------

We first infer the status of each node at time *t* from the CAIDA data. On the day of Conficker outbreak, all relevant nodes were initially susceptible. In the analysis, we assume a node is just infected by the worm when we observe the first Conficker probing packet coming from it; and the node is recovered when we observe its last probing packet before the end of the day. [Fig 3](#pone.0127478.g003){ref-type="fig"} shows the number of susceptible, infected and recovered nodes as observed in a 10-minute window.

![Numbers of susceptible nodes *S*(*t*), infected nodes *I*(*t*) and recovered nodes *R*(*t*) as a function of time *t*, as inferred from CAIDA's dataset on 21/Nov/2008, the day of Conficker's outbreak.](pone.0127478.g003){#pone.0127478.g003}

Step Two: Inferring new infections caused by each spreading mechanism {#sec011}
---------------------------------------------------------------------

Let *dI* ~*l*~(*t*), *dI* ~*n*~(*t*) and *dI* ~*g*~(*t*) represent the numbers of nodes that are newly infected through local, neighbourhood and global spreading, respectively, at time step *t*. Our analysis on the data shows that 84% of new infections occurred within already infected subnets or their neighbourhood subnets, i.e. only 16% of new infections appeared outside the reach of local and neighbourhood probing. This agrees with our understanding that local and neighbourhood probing are significantly more effective than global probing \[[@pone.0127478.ref007]\]. And 73% of those new infections within the reach of local and neighbourhood probing (i.e. 73%×84% of all new infections) occurred in already infected subnets. This indicates the local probing is more effective than neighbourhood probing. Based on the above analysis we can then approximately identify the probing mechanism that is responsible for a newly infected node by analysing the states of other relevant nodes at the time when the new infection happens.

-   IF there is an infected node already in the same subnet, the new infection is caused by that infected node via local spreading.

-   ELSE IF there is an infected node in the ten neighbouring subnets, then the new infection is via neighbourhood spreading.

-   OTHERWISE, the newly infected node is infected via global spreading.

[Fig 4](#pone.0127478.g004){ref-type="fig"} shows the inferred results, plotting the number of new infections caused by each spreading mechanism as a function of time.

![Numbers of nodes newly infected by Conficker via each of the three spreading mechanisms in 10-minute windows on the day of Conficker's outbreak, as inferred from CAIDA's dataset on 21/Nov/2008.](pone.0127478.g004){#pone.0127478.g004}

Step Three: Inferring parameters of the Conficker model {#sec012}
-------------------------------------------------------

From the above result, we can calculate *I* ~*N*~(*t*) and *I* ^+^(*t*) according to their definitions. Then we calculate the average probabilities that a susceptible node at time *t* is *not* infected by the local, neighbourhood and global probing, respectively, as: $$\begin{array}{r}
{P_{l}\left( t \right) = 1 - \frac{dI_{l}\left( t \right)}{S\left( t \right)},P_{n}\left( t \right) = 1 - \frac{dI_{n}\left( t \right)}{S\left( t \right)},P_{g}\left( t \right) = 1 - \frac{dI_{g}\left( t \right)}{S\left( t \right)}.} \\
\end{array}$$ We define the effective infection rate as *b* ~*l*~ = *α* ~*l*~ *β* ~*l*~, *b* ~*n*~ = *α* ~*n*~ *β* ~*n*~ and *b* ~*g*~ = *α* ~*g*~ *β* ~*g*~. Then we can use [Eq 1](#pone.0127478.e001){ref-type="disp-formula"} and [Eq 3](#pone.0127478.e003){ref-type="disp-formula"} to calculate *b* ~*l*~ *b* ~*n*~ and *b* ~*g*~.

Let *λ* denote the average total number of probes an infected node conducts during each time step. Then the average number of local, neighbourhood, and global probes in a time step are respectively *α* ~*l*~ *λ*, *α* ~*n*~ *λ*, and *α* ~*g*~ *λ*. The number of nodes (relevant and irrelevant) probed by the local, neighbourhood and global probing are 256, 10×256 and 2^30^ (it is not 2^32^ due to a bug in the worm's random number generation algorithm \[[@pone.0127478.ref017]\]). We can express the effective infection rates as: $$\begin{array}{r}
{b_{l} = \alpha_{l}\lambda/256,\mspace{600mu} b_{n} = \alpha_{n}\lambda/2560,\mspace{600mu} b_{g} = \alpha_{g}\lambda/2^{30}.} \\
\end{array}$$ By solving [Eq 4](#pone.0127478.e004){ref-type="disp-formula"} together with *α* ~*g*~+*α* ~*l*~+*α* ~*n*~ = 1, we can obtain *λ*, *α* ~*l*~, *α* ~*n*~ and *α* ~*g*~. Then we can obtain the infection rates of three spreading mechanisms as *β* ~*l*~ = *b* ~*l*~/*α* ~*l*~, *β* ~*n*~ = *b* ~*n*~/*α* ~*n*~, and *β* ~*g*~ = *b* ~*g*~/*α* ~*g*~. The recovery rate can be calculated as *γ* = *dR*(*t*)/*I*(*t*), where *dR*(*t*) = *R*(*t* + 1) − *R*(*t*).

Inference results and evaluation {#sec013}
--------------------------------

The inferred values of the Conficker model parameters are shown in [Table 1](#pone.0127478.t001){ref-type="table"}, including the mixing probability *α* and the infection rate *β* for three spreading mechanisms, the recover rate *γ*, the recovery time *τ* = 1/*γ* which is the average time it takes for an infected node to recover, and the probing frequency *λ*. The parameter values are averaged over time windows between 4:00 and 16:00 when the spreading behaviour was stable. Computers are online and offline on a daily basis following a diurnal pattern \[[@pone.0127478.ref059]\]. We find that this factor only has a marginal impact on our results.

10.1371/journal.pone.0127478.t001

###### Conficker parameters inferred from data^[1](#t001fn001){ref-type="table-fn"}^.

![](pone.0127478.t001){#pone.0127478.t001g}

  ------------------------- ------------------- ------------------------
  Global spreading          *α* ~*g*~ = 89.1%   *β* ~*g*~ = 7.7×10^−8^
  Local spreading           *α* ~*l*~ = 5.3%    *β* ~*l*~ = 0.32
  Neighbourhood spreading   *α* ~*n*~ = 5.6%    *β* ~*n*~ = 0.032
  Recovery rate             *γ* = 0.064         
  Recovery time             *τ* = 156 mins      
  Probing frequency         *λ* = 82.5          
  ------------------------- ------------------- ------------------------

^1^ All parameters are measured in a 10-minute window.

We observe in the data that the worm had infected in total *n* = 430,135 nodes, which were located in *N* = 92,267 subnets. On average, each subnet has *n* ~*N*~ = 4.7 relevant nodes, and *N* ^+^ = 4.3 of ten neighbouring subnets are relevant.

With these parameter values, we can use our Conficker model (see [Eq 2](#pone.0127478.e002){ref-type="disp-formula"}) to theoretically predict the worm's outbreak process. As measured from the data, the number of nodes in the three statuses were *S* = 423,899, *I* = 3,945, and *R* = 2,291 at 4:00am. Our prediction starts from 4.00am and uses these numbers as the initial condition. As shown in [Fig 5](#pone.0127478.g005){ref-type="fig"}, our model's predictions closely match the measurement data.

![The outbreak of computer worm Conficker.\
Points are measured from Network Telescope's dataset collected on the outbreak day. Curve is theoretical prediction from our Conficker model using the inferred parameters.](pone.0127478.g005){#pone.0127478.g005}

The inferred parameters are in agreement with our expectations. For example the local spreading has a high infection rate because if a computer is already infected, then other computers in the same subnet are likely to have a similar computer system and thus are also likely to be vulnerable to the worm. By comparison, global spreading has an extremely low infection rate. On average, more than 10 million global probings will produce only a single new infection. On average an infected node retains its status for 2.5 hours (156 mins) before it recovers (e.g. switched off or updated with new anti-virus database). The worm only sends out 8 probing packets per minute. Such a deliberately low probing rate helps the worm to evade a computer's or network's security systems.

Analysis on Conficker's Hybrid Spreading {#sec014}
========================================

Mix of TWO spreading mechanisms {#sec015}
-------------------------------

We run simulations using our Conficker model with the parameter values inferred above. The simulation network has 100k subnets. Each subnet contains 5 relevant nodes and has 4 relevant adjacent subnets. This topology setting resembles Conficker's spreading network observed in the data. Initially two random nodes are infected. The only controlling parameter is the mixing probabilities of the spreading mechanisms. Simulation results on mix of two spreading mechanisms are shown in [Fig 6](#pone.0127478.g006){ref-type="fig"}.

![Simulation results for the mix of Conficker's two spreading mechanisms with different mixing probabilities.\
(a) Mix of global (*α* ~*g*~) and local (1 − *α* ~*g*~) mechanisms; (b) Mix of global (*α* ~*g*~) and neighbourhood (1-*α* ~*g*~) mechanisms; (c) Mix of local (*α* ~*l*~) and neighbourhood (1-*α* ~*l*~) mechanisms. In each case we measure the outbreak size, the total duration of the spreading, and the speed of spreading. The outbreak results include both the final outbreak size (square) and the outbreak size at time step 100 (filled circle). Each data point is averaged over 100 runs of a simulation. Note the y axes are all logarithmic.](pone.0127478.g006){#pone.0127478.g006}

[Fig 6a](#pone.0127478.g006){ref-type="fig"} shows that as explained above, global spreading or local spreading alone cannot cause an outbreak, whereas a mixture at a ratio of 0.8 to 0.2 produces a large and rapid outbreak. [Fig 6b](#pone.0127478.g006){ref-type="fig"} shows that the neighbourhood spreading alone (*α* ~*g*~ = 0) can cause a large, but very slow outbreak, whereas the mix of neighbourhood spreading with just a small amount of global spreading can dramatically accelerate the spreading process. [Fig 6c](#pone.0127478.g006){ref-type="fig"} shows that adding local spreading to neighbourhood spreading slows down the spreading process considerably. When they are mixed at the ratio of 0.8 to 0.2, the spreading reaches the same final outbreak size but the whole process lasts for the longest time.

Mix of THREE spreading mechanisms {#sec016}
---------------------------------

Simulation results on mixing three spreading mechanisms are shown in [Fig 7](#pone.0127478.g007){ref-type="fig"}. [Fig 7a](#pone.0127478.g007){ref-type="fig"} shows it is not difficult to achieve a large final outbreak size when the three mechanisms are all present and neither local spreading nor global spreading is dominant. [Fig 7b](#pone.0127478.g007){ref-type="fig"} shows spreading will last for longer time if there is less global probing. [Fig 7c](#pone.0127478.g007){ref-type="fig"} shows that the most contagious variation of the worm is a mix of global, local and neighbourhood spreading at the probabilities of 0.4, 0.2 and 0.4 (see circle on the plot), which causes the largest final outbreak with the highest spreading speed.

![Simulation results when three of Conficker's spreading mechanisms are mixed at different probabilities.\
Spreading properties shown include the final outbreak size, the survival time and the spreading speed (see colour maps) as functions of the mixing probabilities of global spreading *α* ~*g*~ (x axis) and local spreading *α* ~*l*~ (y axis), where the mixing probability of neighbourhood spreading is *α* ~*n*~ = 1 − *α* ~*g*~ − *α* ~*l*~.](pone.0127478.g007){#pone.0127478.g007}

Discussion {#sec017}
==========

In this study, we infer the epidemic spreading parameters of the Conficker worm from observed data collected during the first few hours of the epidemic. Simulations of worm spreading, based on these parameters, allow us to reach some important conclusions about the worm's use of hybrid spreading mechanisms.

Advantage of mixing hybrid spreading mechanism {#sec018}
----------------------------------------------

Conficker's global probing is extremely ineffective. The infection rate of global probing is many orders of magnitude smaller than the recovery rate. This means, if Conficker used only the global probing, it would not have caused any significant infection on the Internet at all.

Local probing has a remarkably high infection rate, *β* ~*l*~ = 0.32, which means when an infected node conducts only local spreading, a susceptible node in the same subnet has an 1/3 chance of being infected in a step (10-mins). However, local probing is confined within a subnet. If the worm used only the local probing, it would not have infected any other subnet apart from those initially containing infected nodes.

Neighbourhood probing is constrained to a neighbourhood of ten subnets. It has a high infection rate because computers in adjacent IP address blocks often belong to the same organisation and they use similar computer systems and therefore have similar vulnerabilities that can be exploited by the worm. Since different nodes' neighbourhoods can partially overlap with each other, it is in theory possible for the worm to reach any node in the whole meta-population by using only the neighbourhood probing. Such process, however, would be extraordinarily slow as we have shown in [Fig 6b](#pone.0127478.g006){ref-type="fig"}.

In summary, if Conficker used only a single spreading mechanism, it would have vanished on the Internet without causing any significant impact.

Thus the enormous outbreak of the worm lies in its ability to do two things. Firstly it needs to devote great efforts to explore every corner of the Internet to find a new vulnerable computer. Every new victim will open a new colony full of similar vulnerable computers. Secondly it needs to make the most out of each new colony.

This is exactly what Conficker does. It allocates most of its time on global probing with a mixing probability of *α* = 89%. This in a degree compensates the ineffectiveness of global probing. Although the worm allocates small amounts of time on local and neighbouring probing, their high infection rates allow them to exploit all possible victims in the subnets with efficiency. And all newly infected nodes will join the collective effort to flood the Internet with more global random probes.

In short, the Conficker worm is an example of a critically hybrid epidemic. It can cause an enormous outbreak not because it has an advanced ability to exploit weaknesses of a computer, but because it has remarkable capability to discover all potentially vulnerable computers in the Internet, i.e. it is not the infectivity, but the hybrid spreading that makes Conficker one of the most infectious worms on record.

Implication of critically hybrid epidemics {#sec019}
------------------------------------------

The analysis of critically hybrid epidemics such as Conficker has important general implications. Firstly, it demonstrates that it is possible to design a high impact epidemic based on mechanisms, each of relatively low efficiency. Indeed our result in [Fig 7](#pone.0127478.g007){ref-type="fig"} suggests that Conficker could have had a larger outbreak with higher speed if it had used a different set of mixing probabilities, which requires change of only a few lines of Conficker's program code. Hybrid mechanisms may therefore be ideal for rapid efficient penetration of a network, for example in the context of an advertising campaign or in order to promulgate important public health or security information. An interesting example might be the use of media campaigns (global spreading) where the reader or viewer is specifically requested to pass on a message via Twitter or Facebook to their "local" group contacts.

Conversely, malicious hybrid epidemics can be extremely difficult to defend against, and many existing defence strategies may not be effective. For example immunising a selected portion of a local population in order to isolate and hence protect the vulnerable nodes will not be effective, because the vulnerable nodes can still be found by the worm through random global spreading.

Another possible measure is to reduce the average time it takes for an infected node to recover, for example to speed up the release of anti-virus software updates or increase the frequency of security scanning on computers. Our theoretical predictions (using [Eq 2](#pone.0127478.e002){ref-type="disp-formula"}) in [Fig 8](#pone.0127478.g008){ref-type="fig"} show that the final outbreak size (in terms of total recovered nodes) does not change significantly when the recovery time is reduced from 156 minutes to 140 or 120 minutes. In practice, even achieving such reductions represents a remarkable technical challenge. It is clear from the discussion above that epidemics can spread with extremely low global infection rates (far below individual recovery rates), provided there is efficient local infection. The extremely efficient spreading achieved once a given subnet or set of subnets has been penetrated is therefore obviously a key determinant of the worm's outbreak \[[@pone.0127478.ref007]\]. Thus, defence strategies that focus on security co-operation between nodes with a local network neighbourhood (a "neighbourhood watch" strategy \[[@pone.0127478.ref007]\]) may be the key to future prevention of similar outbreaks.

![Predicted numbers of susceptible, infected and recovered nodes at 16:00 on the outbreak day as a function of the recovery time *τ*, which is the average time for an infected node to recover.\
Conficker's recovery time is 156 minutes.](pone.0127478.g008){#pone.0127478.g008}

Our Conficker model {#sec020}
-------------------

The Conficker worm can be described as a discrete model or a continuous model. The two modelling approaches should give the same prediction results of the spreading dynamics of the worm. In this work we used a discrete approach to model the Conficker worm for three reasons. Firstly the model's parameters can be defined with clear physical meanings. Secondly we can directly calculate the parameters' values from the CAIDA measurement data. Lastly it is more convenient to run simulations with a discrete model. If a continuous model were used, the model parameters would be defined differently with less clear physical meanings, and their values would have to be obtained through iterative data fitting.

In our Conficker model, we set the local and global population as fully mixed, because this is how the Conficker worm perceives the structure of the Internet. We considered more complex network structures in a separate work \[[@pone.0127478.ref016]\] where we studied hybrid epidemics in general.

Conclusion {#sec021}
==========

Our study uses data collected during the first day of the Conficker epidemic to parametrise a hybrid model to capture the worm's spreading behaviour. The study highlights the importance of mixing different modes of spreading in order to achieve large, rapid and sustained epidemics, and suggests that the trade-off between the different modes of spreading will be critical in determining the epidemic outcome.

[^1]: **Competing Interests:**The authors have declared that no competing interests exist.

[^2]: Conceived and designed the experiments: CZ SZ BMC. Performed the experiments: CZ. Analyzed the data: CZ SZ BMC. Wrote the paper: SZ BMC CZ.
