蠕虫软件仿真技术研究分析
2018-12-24孙超
孙 超
(中国人民大学 信息学院,北京 100872)
随着社会经济的发展和科学技术的进步,信息化时代背景下,人们的生活与工作已经离不开计算机技术和互联网技术,网络蠕虫属于智能化和自动化产物,是一种综合了网络攻击和计算机病毒的技术,网络蠕虫不需要计算机的使用者去干预,而是直接可以运行的攻击程序或者攻击代码,网络蠕虫可以扫描网络中系统存在的漏洞,攻击节点主机,通过网络从一个节点中传播到另一个节点,并且在几分钟之内将区域内数以万计的主机感染,导致网络出现拥堵,甚至操作受到感染的主机开始攻击行为[1]。
1 蠕虫传播特性研究方法
蠕虫软件仿真技术是蠕虫传播特性研究的手段之一,也能够引起有关研究人员的注意力,这种方法从网络带宽以及网络流量等方面加以考虑,分析蠕虫软件仿真技术对蠕虫传播行为的影响,也引起了国内外研究机构的重视,美国国防高级研究计划局与国家科学基金会积极参与到蠕虫软件仿真技术的研发中,并深入研究蠕虫传播特性。从一般情况上来讲,蠕虫传播特性研究也是网络模型研究方法,蠕虫只是网络的一种特殊应用,节点指的是终端主机与路由器。从现有的互联网中对蠕虫传播特性进行实验,这种方法更加真实有效,但是考虑到网络中的蠕虫不仅传播范围广,且具有突发性和破坏性,所以从真实的网络环境中将蠕虫重新播放,这种对蠕虫传播特性的方法研究是不可行的,当前的研究人员会采用多种方法对蠕虫进行传播特性的研究。
硬件测试床可以在有限制的环境中释放出真实的代码,这个环境不仅有限制,还要独立存在,代码不仅真实,还能够实现自我复制,并通过这种方式观察其中的行为表现,近年来硬件测试床的规模逐渐扩大,节点数目增加,如今已经达到了几百甚至上千,但是硬件测试床也有问题存在,最大的问题就是硬件测试床的使用规模没有办法与互联网的规模相互比较,得到的结果往往是比较局限性的,只能显示出局部效果,而且硬件测试床需要通过自我复制代码,但是这些代码无论是编制还是使用,都会涉及一些法律问题。
软件仿真的出现,能够仿真规模比较大的网络,随着技术的革新,大规模分布式网络软件仿真器因此出现,仿真网络规模在大规模分布式网络仿真器的影响下变大,目前已经出现了仿真百分级的网络。软件仿真可以轻松根据蠕虫软件仿真技术的定义,结合参数,仿真出任意规模的网络,为蠕虫的特性研究带来方便。蠕虫软件仿真技术可以在任何时候观察蠕虫传播特性,而且在研究的过程中也不用等待任何特殊现象的发生。由此可见,软件仿真无论是仿真规模还是仿真准确度方面都已经有了较好的平衡点,在保持准确与灵活的基础上,仿真规模从过去的几百几千,已经到了百万级。复杂蠕虫可以被建模,这种蠕虫软件仿真技术如今引起了国内国外相关研究机构的注意力,并逐渐得到了他们的重视,美国国防高级研究计划局与国家科学基金会也开始积极加入蠕虫传播特性研究中,并以此为根据推动蠕虫软件仿真技术的进一步发展[2]。
2 蠕虫软件仿真技术研究
蠕虫软件仿真技术应用中,蠕虫可以被看成是互联网环境下的特殊应用,想要重现蠕虫在互联网中进行传播的形态,就会涉及关于蠕虫建模的实际问题,怎样准确描述互联网也是蠕虫软件仿真技术成功的决定性因素。由此可见,蠕虫软件仿真技术的展开需要从网络建模以及蠕虫建模这两个角度加以考虑,其中网络建模更是蠕虫软件仿真技术发展的基础。
2.1 网络建模
通过蠕虫软件仿真技术的研究得知,蠕虫可以依靠当前网络结构实现动态模式的传播,例如自制系统与路由器拓扑、带宽延迟,这些都会影响到蠕虫的实际传播情况,蠕虫自身通过扫描很有可能导致路由器因此而失效,这种情况下路由因此而改变。通常情况下,蠕虫软件仿真技术中网络拓扑需要从拓扑流量以及协议3个方面进行,也就是说,网络建模中拓扑网络节点之间进行协议执行,随后形成了流量,拓扑模型也是蠕虫软件仿真技术应用中成功建立网络模型的基础。蠕虫软件仿真技术下,蠕虫的特性情况也决定了蠕虫软件仿真技术不仅有着网络模型仿真的共性,还会对蠕虫传播有影响,人们在这期间会对网络拓扑和传输协议加以考虑。
蠕虫会利用传输控制协议和用户数据报协议进行大规模的传播,其中蠕虫对用户数据报协议的仿真比较简单,但是传输控制协议在仿真的时候比较复杂,会涉及超时或者拥堵等因素,协议的仿真过程中会有大量近似情况容易被忽略,因此,人们将UNIX BSD主要代码移植到仿真器中,这样仿真的准确度有所增加,却降低了研究的实际效率。网络节点之间的流量是背景流量以及蠕虫传播流量的综合,其中蠕虫传播流量能够在仿真协议中考虑,人们将节点之间的背景流量认为是常量或者简单分布。
2.2 蠕虫建模
蠕虫软件仿真技术研究中,除了网络建模以外,还有蠕虫建模,其中在进行蠕虫建模的时候会有以下两种方法:建立纯数字模型;根据蠕虫的工作机制以及功能结构情况,将蠕虫表现为若干特征参数集合。其中纯数字模型建立已经有了较大的进展,双因子模型和AAWP模型的出现印证了蠕虫软件仿真技术的有效性;人们在对第二种方法加以分析的时候,会将蠕虫分解成若干参数,这个时候也会有一定要求存在,即减少网络软件仿真环境给蠕虫建模带来的负载;寻找能够影响蠕虫建模传播与感染速度的因素;对蠕虫活动加以分析和研究,使其具有灵活性,只有这样才能建立起符合蠕虫传播特性的蠕虫建模。
蠕虫软件仿真技术应用中,蠕虫主要是通过用户数据报协议寻找到目标主机,在进行扫描的时候如果找到了一台目标主机,先确定这台主机是不是蠕虫传播速度的关键,最科学的蠕虫扫描策略就是能够在最短的时间内将蠕虫找到,并且在互联网中寻找到所有被蠕虫干扰的主机。随着蠕虫软件仿真技术的发展,人们不仅对蠕虫的扫描策略进行分析,还对扫描的速度加以探究,对用户数据报协议蠕虫而言,每一秒发出的数据数量就是其速率,对传输控制协议而言,就是蠕虫连接到目标主机以后的数量情况,也就是在扫描过程中线程的数目,蠕虫的扫描速率可以结合当时情况,选择科学合理的扫描策略,这样基本可以确定蠕虫传播的速度。
美国波士顿市麻省理工学院的研究人员宣称,事实上,蚯蚓可能是帮助他们解决许多机器人问题的钥匙。现在,美国麻省理工学院、哈佛大学和韩国首尔国立大学研究人员设计出一种模仿蠕动机制的机器人。它靠蠕动移动,通过收缩身体体节,在各种表面上爬行,看起来更像一条蚯蚓,这种几乎全用软材料制造的机器人有很强的弹力。软机器人的一个重大挑战是设计为这类机器人提供动力的软制动器,人们使用的解决方案是将压缩空气泵入机器人体内,使其运动。
3 蠕虫软件仿真系统
3.1 高度抽象的软件仿真
蠕虫软件仿真技术下有蠕虫软件仿真系统的支持,蠕虫软件仿真系统有两种情况:分析模型;数据包级模型。这是从蠕虫软件仿真中蠕虫建模角度得到的,但是却没有办法成功反映出蠕虫软件仿真系统网络建模的方式,通过研究表明,网络建模中可以将数据包级蠕虫软件仿真系统详细划分为以下3种形式:高度抽象的蠕虫软件仿真、数据包级的蠕虫软件仿真以及大规模分布式蠕虫软件仿真。通过分析得知,这3种模式中,网络建模与蠕虫建模在蠕虫软件仿真系统的发展中变得越来越细致,仿真得到的结果也更加真实。
高度抽象的蠕虫软件仿真中,有ETH Zurich TIK蠕虫仿真器的存在,这个仿真器最早是苏黎世联邦理工大学计算机工程与网络实验室联合开展的项目,人们也称之为苏黎世联邦与网络实验室蠕虫仿真器,该仿真器主要是根据蠕虫传播的特性来分析蠕虫的供给情况。系统中会将互联网主机划分为多个小组,每一个小组中都会有带宽与延迟这两参数,连续的带宽与延迟可以取最小值,因此人们可以得到互联网模型,这个系统可以对蠕虫的大小、传输协议进行分析,通过有效的配置实现蠕虫的扫描。
2018年3月23日,全球信息安全行业的最高盛会Black Hat Asia 2018在新加坡举行,全世界的安全专家聚集于此,围绕当下热门的安全议题开展讨论并分享最新研究成果。大会由腾讯安全联合实验室反病毒实验室安全专家杨经宇、耿琛介绍的一种基于LOT设备的全新通用型攻击方式,引起在场安全专家强烈反响,并获得大会主办方“特别推荐”,该攻击方式不仅能够绕开设备的安全防御手段,还能形成“蠕虫”式攻击,造成更大的安全威胁。设备飞速发展的同时,其安全问题也逐渐显现。据国家信息安全漏洞共享平台公开数据显示,2017年共收录智能设备通用型漏洞有2 440个,同比增长高达118%。其中,针对路由器及网关、摄像头及视频系统、机顶盒等类型设备的攻击活动频发,成为不法分子的重要攻击目标。大会现场,腾讯安全反病毒实验室发布最新研究成果,在Black Hat Asia 2017上,实验室携哈勃分析系统开源项目HaboMalHunter就已亮相Arsenal展台,是当届BlackHat唯一入选的中国开源项目;2017年11月,哈勃分析系统成为全球首家接入VirusTotal的动态分析系统,将自身丰富的环境仿真、虚拟执行和深度分析能力接入VirusTotal,并得到了对方在亚洲反病毒大会等多个场合中给予的高度评价和致谢。
3.2 数据包级的软件仿真
蠕虫软件仿真系统中数据包级软件仿真尤为重要,SSFNet/NS2蠕虫仿真器的出现使系统有了较大的发展,这是基于SSF在数据包级对网络协议与建模的一套组件,并形成了数据包级仿真器的SSF,互联网因此被抽象成传染病传播模型,被蠕虫软件仿真系统选定的部分可以进行仿真,所有的通信由伪协议会话提供,通过这种数据包级软件仿真将整个网络刻画出来,从而加强蠕虫软件仿真系统对网络的影响。
3.3 大规模分布式软件仿真
近年来,随着各种分布式技术的发展,蠕虫软件仿真系统中有了大规模分布式软件仿真,其中GTNetS/PDNS分布式蠕虫仿真器就是典型案例。这种仿真器的出现在蠕虫软件仿真系统中,无论是从网络建模还是蠕虫建模中都使用了一定有效措施,通过有效措施提高结果的准确程度,对TCP协议的仿真节点已经达到128 000,对UDP协议传播的节点已经达到了75 000,利用这种方式在蠕虫软件仿真系统中将蠕虫的模型可以分为以下4个组件,第一个组件是蠕虫节点,用来表示换联网中可以传播蠕虫的终端节点;第二个组件是脆弱服务器,服务器中存在的漏洞很有可能会被蠕虫利用;第三个组件是供给代理,蠕虫软件仿真系统应用中,一台受到感染的主机会将蠕虫传播到另外一台十分脆弱的主机中;第四个组件是后门代理,指的是在蠕虫感染的过程中有可以打开的后门,在必要条件下传输比较大的蠕虫代码,蠕虫软件仿真系统开始仿真的时候会去标记一个节点,将这个节点看作是受到污染的节点,攻击代理寻找主机然后进行传播,当一个新的主机受到感染后也会去寻找新的目标主机,以此循环。
在理论上,所有的大脑活动都可以变为电信号,因此映射出这些信号无异于映射出一个大脑。并且由于它们的电信号,它们可以被数字化、存储和仿真。现在,这种之前经常出现在科幻片里的场景已经被科学家们实际应用,已经模拟出蛔虫大脑,并且将其上载到乐高机器人当中。这些科学家正在研究一个所谓的“蠕虫项目”,蠕虫大脑规模显然远远小于人类大脑。科学家们能够绘制出蠕虫相当简单的302个脑神经元,并且进行软件仿真。当然,他们不得不削减在少数复杂神经元,比如放电神经元。科学家们在研究中使用传感器和轮毂取代实际的蠕虫身体部位,而这项实验的初步结果是相当令人印象深刻和有希望的,因为这种机器“蠕虫”根本无需编程就可以自动活动。将来人们甚至可以通过这项技术制造出虚拟蠕虫,来探索进一步的实际应用。
4 结语
总而言之,随着社会经济的发展和科学技术的进步,蠕虫软件仿真技术有了较大的研究进展,蠕虫软件仿真技术在当前属于后知后觉形式的研究方法,人们只有不断加强对蠕虫软件仿真系统的研究,通过理论进行实践,掌握网络蠕虫的实际传播规律,寻找传播特点,只有这样才能够为蠕虫软件仿真的防治系统提高科学有效的对策,分析当前蠕虫传播情况与蠕虫软件仿真技术使用情况,加强对未来蠕虫发展趋势的探索。