1

First, i understand that being spoon-fed answers will absolutely hurt me in the long run and that is not what i'm looking for. That being said, here is the main point of the assignment:

"We are going to model a simple island-hopping attack on a small corporate network. The attacker will compromise a computer in the network and use that as the launching point for other attacks. Our attack model is simplified so that each attack takes a set amount of time and succeeds with some probability. Periodically, the attacker and each compromised machine will attempt to compromise a random machine in the network. Attacks crossing the intrusion detection system will have a certain percentage chance of being caught. The sysadmin will react (with some delay) to fix machines with 100% certainty.

The topology of the network is a tree. At the root of the tree is the IDS, with all connected components as children. The IDS is also the network gateway. Two switches (not agents) are direct children on the IDS. The remaining computers are split evenly as children between the two switches. Every event from the attacker crosses the IDS. Only attacks from computers under one switch to computers under the other switch can be detected by the IDS The sysadmin is an agent in the simulation that is not attached to the network. It can only receive simulation notification from the intrusion detection system."

There are 3 event types: attack, fix, and notify. I know that the events are to be stored in the queue, which is fine, but i'm not sure how to implement these events. Create a virtual class Event and a bunch of subclasses defining all the events? One class for all events? Who knows?

There are also 3 agents that respond to or produce events: the attacker, the computers, and the IDS. Again-- should i implement these all in separate classes or would it be sufficient to use one main class.

My program is to be given 3 inputs: number of computers, percent success of the attack, and percent detected across the IDS.

What i'm having real trouble with is the organization of the whole simulation, which makes it rather difficult to begin the design and implementation. I can't seem to wrap my head around the structure of the event, and my coding is rather rusty i'm afraid to admit. A nudge in the right direction would be greatly appreciated.

Some programmer dude
  • 400,186
  • 35
  • 402
  • 621
jaden8123
  • 11
  • 1
  • 3
  • 1
    You might take a look at [this paper](http://www.informs-sim.org/wsc06papers/001.pdf). It uses Java rather than C++, but the concepts translate readily and the focus is on organizing the architecture of a discrete event simulation. – pjs Feb 09 '17 at 20:39
  • 1
    This helped a TON, thank you! – jaden8123 Feb 10 '17 at 23:27
  • Glad to hear that. You might mention it to your instructor as potential reading material. – pjs Feb 11 '17 at 17:03

0 Answers0