网络蠕虫实验床的实际意义体现在如下几方面:
①蠕虫病毒传播过程的研究,即研究蠕虫病毒通过仿真软件模拟出网络环境并进行蠕虫传播的研究实验。通过实验得出的数据进行分析处理,研究得出相关结论。
②蠕虫传播研究实验的安全性,即由于网络蠕虫的特有的破坏性使得蠕虫传播的数据研究不能在真实的网络中进行实际传播实验,而通过蠕虫传播策略及相关算法的描述,利用仿真软件来模拟蠕虫的传播过程是一个很好的解决手段,保证了试验环境的安全性。
③对于网络拓扑结构的研究,由于网络蠕虫的传播模拟需要在一定的网络协议及相关结构上进行仿真运行,所以在网络蠕虫实验床上也可以讨论网络拓扑结构与网络蠕虫传播的相关特点,对于揭示其传播的动力学机理和提高网络的鲁棒性也具有很好的研究意义。
在建立和实现一个网络蠕虫实验床时考虑最多的就是其性能和成本。本文使用SSFNet网络仿真软件来设计实现一种低成本,高性能的网络蠕虫实验床,其实现功能可以满足网络蠕虫传播研究的需要。
SSFNet网络仿真软件
SSFNet是一个Internet网络协议的仿真和建模软件,以基于java和C++的SSF(Scalable Simulation Framework)的软件框架所组成。作为教育和科学研究用途的SSFNet是开放软件,允许用户按需要进行补充和修改。开放源码提供面向对象的可扩展仿真建模的并行运算环境,主要支持IP包级别以上的细粒度仿真,链路层和物理层的协议模型以独立的组件方式提供。SSFNet模型是一种自配置的仿真软件,每一个SSFNet类能通过询问本地的配置数据库或者通过网络进行自主配置。网络配置文件是用DML(Domain Model Language)来编写配置的,它被用来描述一个完整的网络模型。在SSFNet软件中,被用作模拟主机和操作系统,特别是协议的软件框架叫做SSF.OS;被用作模拟网络的连通性,建立主机结点和链路配置的软件框架叫做SSF.Net。SSFNet提供的协议支持包括:IP,TCP,UDP,SOCKET,OSPF,BGP4,HTTP等等。
目前,SSFNet网络仿真软件可以支持的操作系统是windows2000及以上系列,Unix操作系统,Linux操作系统等,对于追求实验的性能来讲推荐使用Linux或Unix操作系统。另外,DML语言配置方便,灵活;可以很好的定义所需的网络拓扑结构。目前SSFNet也支持大多数网络协议,可以实现运行网络模型的功能。
SSFNet具有灵活的可扩展性,其配置语言DML具有自己的语法结构,用户可以按照需要自己编写DML配置文件,设计网络拓扑结构模型。另外,用户可按照SSFNet的API自行定义编写所需要的新的网络模型或者协议。如:SSF.OS.IP就是被定义好的IP协议类库。所定义的协议类库能够被DML调用,使得用户可以自己扩展SSFNet仿真运行的结构环境,DML就是被定义在这些类库之上的。SSF.App.Worm是可以被DML调用的蠕虫包,它是由美国依利诺州俄尔班纳香槟城市大学的Michael Liljenstam博士编写;由于它是开放代码,所以用户仍然可以自行修改相关代码,设计蠕虫传播模型。
可以看到,SSFNet是建立在Java 虚拟机环境上的1;DML配置语言调用SSFNet的两个框架结构SSF.OS和SSF.Net中的协议,并定义主机结点和网络间的相互连接关系,同时DML配置文件也调用蠕虫包中的java类。DML语言定义的是微观下的网络级别结构,其中加入假想的蠕虫传播协议到协议栈,通过该传播协议使传播模型由网络的微观层次扩展到宏观的抽象层次;也就是一个从细节的微观扩展到粗略的宏观的过程。这样的好处就是既可以考虑微观的网络拓扑结构的特殊性,又可以扩展到宏观的大规模的网络特性,这一特点使实验床具有良好的运行分析功能。
网络蠕虫实验床的实现
对于实现网络蠕虫实验床来讲,重点体现在两个主要的方面:一个是实验运行的网络拓扑结构,一个是网络上传播的蠕虫攻击策略。通过DML语言2可以定义网络的微观结构,定义多台主机结点、路由器以及其上运行的协议。即通过对DML语言的指定参数对象的定义,设置网络内部的主机结点的相互连接关系,网络内部的路由协议(如OSPF协议),网络间通过边界路由器的指定接口运行BGP协议的连接情况,甚至是网络服务器-客户机访问模式关系。对于网络上传播的蠕虫模型,就要修改或定义蠕虫包中的蠕虫初始化定义代码,传播过程中主机分布代码,蠕虫传播速度定义文件等等;同时在DML语言中设定相应的蠕虫传播对象参数,如易感主机数目,初始感染主机台数状态以及传染参数等等。还要在DML文件中指定相应的蠕虫传播的初始化定义类,蠕虫传播分布类文件及传播模型类文件等等。运行SSFNet网络仿真软件就会计算出传播过程的分析结果,显示每一仿真时刻的感染数量情况。其运行过程是SSFNet询问DML文件中的每一条对象语句,询问到蠕虫传播属性值的时候开始调取蠕虫传播类库文件*WormEpidemic.java,它也定义了一部分蠕虫的传播策略代码,初始化传播状态文件*Intializer.java和传播流量速度定义类库MeanRate*.java。根据初始化定义参数值进行蠕虫的传播模拟。 当一台主机在定义执行协议WormProtocolSession的时候表示它是一台易感主机,否则它不会感染。通过设定适当的仿真运行时间可以观察蠕虫传播过程随时间的结果变化,进而分析其数学特性。
类Flash蠕虫的模拟
flash蠕虫[3]是Berkeley大学的Nicholas Weaver等人[3]提出来的一种理论蠕虫, 它可以看作是Warhol 蠕虫[3]的变种。它传播的时候将攻击表自动分成n块,然后感染每一个块中的某一个结点,之后将对应攻击表的1/n复制给对应块的感染结点,这样依此类推。整个蠕虫的传播是逐块分层的形式,感染速度惊人,在622M bit/sec的理论高传输带宽条件下可以在30秒内感染整个网络。本文模拟的类Flash蠕虫具备理论上Flash蠕虫的感染策略,在实验床运行于300000台易感主机的网络规模上,设定网络带宽10Mbit/sec,块数n取为10,忽略了理论Flash蠕虫对攻击列表大小的压缩处理。按照Flash蠕虫的传播策略编写相应的蠕虫传播初始化状态特征代码,调用蠕虫传播的宏观层次,完成在大规模网络中的扩展模拟;同时编写DML配置文件,在文件中的主机协议里添加假想的蠕虫传播协议类WormProtocolSession,构成传播模型的微观网络层次,通过实验床的运行得出运算数据,结果如图2所示:该图表示的是总数为300,000台易感主机在类flash蠕虫发作传播时,主机感染情况随时间变化曲线图,横坐标表示的是传播时间(小时),纵坐标表示的是感染主机数目(台)。由图可知当传播时间运行到43分钟时,所有主机都被感染,这一结果与理论数值在同一量级1。由此可见Flash蠕虫的传播策略能使传播速度达到惊人程度,应引起研究人员的注意,针对这种蠕虫传播策略制定较好的防范机制,以避免或减少将来此类蠕虫的爆发所带来的严重后果。
使用网络蠕虫实验床对网络蠕虫的传播进行研究降低了传统网络蠕虫实验方法所带来的风险性,并且通过直观的数据给研究工作者以更多的启发,以防范未来危险蠕虫的爆发。本文利用 SSFNet建立的网络蠕虫实验床,包括蠕虫运行的微观网络和宏观的大规模扩展网络,加上传染病模型的蠕虫传播代码,使得该实验床可以满足网络蠕虫研究的基本要求。在大规模网络中网络蠕虫的传播过程里,网络拓扑结构对蠕虫传播流量和速度等参数也有着重要的影响,所以对在不同网络拓扑结构下的动力学机制和相关特点的研究,将是我们下一步新的工作。
本文选自:《中国教育网络》
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。