首先,我明白从长远来看,被勺子喂食的答案绝对会伤害我,这不是我想要的。话虽如此,这里是任务的要点:
“我们将对小型企业网络进行简单的跳岛攻击建模。攻击者将破坏网络中的一台计算机并将其用作其他攻击的启动点。我们的攻击模型被简化,因此每次攻击都需要一组一段时间并以一定的概率成功。周期性地,攻击者和每台受感染的机器将尝试破坏网络中的随机机器。跨越入侵检测系统的攻击将有一定百分比的机会被捕获。系统管理员将做出反应(与一些延迟)以 100% 的确定性修复机器。
网络的拓扑结构是一棵树。树的根部是 IDS,所有连接的组件都是孩子。IDS 也是网络网关。两个交换机(不是代理)是 IDS 上的直接子代。剩余的计算机在两个交换机之间作为子级平均分配。来自攻击者的每个事件都会穿过 IDS。IDS 只能检测到从一个交换机下的计算机到另一个交换机下的计算机的攻击。 sysadmin 是模拟中的代理,未连接到网络。它只能接收来自入侵检测系统的模拟通知。”
有 3 种事件类型:攻击、修复和通知。我知道事件将存储在队列中,这很好,但我不确定如何实现这些事件。创建一个虚拟类 Event 和一堆定义所有事件的子类?所有事件的一堂课?谁知道?
还有 3 个代理响应或产生事件:攻击者、计算机和 IDS。再一次——我应该在单独的类中实现这些,还是使用一个主类就足够了。
我的程序将获得 3 个输入:计算机数量、攻击成功百分比和通过 IDS 检测到的百分比。
我真正遇到的麻烦是整个模拟的组织,这使得开始设计和实施变得相当困难。我似乎无法理解事件的结构,而且我不敢承认我的编码相当生疏。向正确方向轻推将不胜感激。