最新版本 滨江学院自动化张润科毕业论文 5月27日 .doc
新浪微博病毒传播模型研究.pptx
毕业论文(设计)
题 目 XSS蠕虫病毒传播模型研究
院 系 滨江学院
专 业 自动化
学生姓名 张润科
学 号 20092336015
指导教师 杨春霞
职 称 教授

二O一三 年 五 月二十 日

目 录
1引言
1.1研究背景
1.2国内外关于XSS蠕虫病毒研究现状
1.3本文主要工作和安排
2无标度网络的基本理论
2.1网络的基本概念
2.1.1网络的图表示
2.1.2网络平均距离
2.1.3聚类系数
2.1.4度和度分布
2.2无标度网络的拓扑结构模型及其特征
3无标度网络上病毒模型
3.1 SIR计算机病毒传播模型介绍
3.2病毒传播模型的建立
4新浪微博病毒模型的建模与研究
4.1新浪微博及新浪微博病毒介绍
4.1.1新浪微博介绍
4.1.2新浪微博用户拓扑结构图
4.1.2新浪微博病毒概述
4.1.2新浪微博病毒影响因素分析
4.2微博病毒模型建模
4.2.1新浪微博病毒模型
4.2.2新浪微博病毒传播阶段
4.3.实验分析
4.3.1点击率和转发率分析
4.3.2初始感染用户
4.3.3用户安全意识程度
4.3.4用户使用时间
4.3.5活跃节点
4.3.6群体安全意识
5结束语
致谢
附录:

新浪微博病毒传播模型研究

张润科
南京信息工程大学滨江学院自动控制系,南京210044

摘要:本文以新浪微博病毒为例研究XSS蠕虫病毒的传播,以复杂网络中的无标度网络和经典病毒传播模型中的SIR的基础建立微博病毒传播模型。在此模型的基础上,研究各个因素对病毒传播的影响。实验结果表明:微博用户点击恶意链接的行为促使病毒传播,用户对警告信息的转发行为能遏制病毒扩散;一旦病毒爆发,感染用户数目将会呈现指数增长,初期感染用户对微博病毒的传播的影响不大;用户安全意识越高,用户点击伪装恶意链接的概率越低,病毒的传播速度越慢,传播范围越小;用户对微博的使用时间越长,对伪装恶意链接和警告信息做出反应所经历的时间越短,病毒扩散及抑制的速度也越快;活跃节点对病毒的态度会较大的影响微博病毒的传播,当初始感染用户为活跃节点时,病毒传播速度更快,感染用户更快达到峰值,当初始发布病毒警告信息为活跃节点,警告信息传播速度更加迅速,可以一定程度的遏制病毒的传播。群体安全意识越高,微博网络中会越早的出现病毒警告信息,警告信息传播速度越快。初期感染用户对微博病毒的传播的影响不大,用户安全意识越高,病毒的传播速度越慢,传播范围越小,
关键词:XSS蠕虫病毒;复杂网络;安全意识;活跃节点;点击率转发率

引言

1.1 研究背景

随着科技水平和电脑技术的快速发展,人们对互联网的依赖度日益加大,互联网已经成为普通人生活中的生活的一部分。社交网络作为一种全新的互联网模式出现,并迅速吸引大量的用户。社交网络在为人们提供信息交流,好友交互,资讯传播和知识分享的同时也成为一种新型病毒(XSS蠕虫病毒)的传播途径,给带来了社交网络用户不安全的隐患和危害。相关研究资料表明,2005年MySpace Samy XSS蠕虫爆发,是在大型社交网络上首次爆发[1]。后知名社交网络Twitter,Facebook相继爆发不同程度的XSS病毒。近几年,国内大型社交网站及其他一些博客网站也有XSS蠕虫爆发的记录,如人人网的多次XSS蠕虫攻击事件、搜狐博客网站的XSS蠕虫攻击事件、百度空间的XSS蠕虫攻击事件及最近刚刚爆发的新浪微博XSS蠕虫大规模攻击事件等。2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击[2]。XSS攻击已经成为除SQL注入外最严重的web安全问题,给社交网络的正常运作造成了一定的影响。
本文为了研究影响XSS蠕虫病毒传播过程的因素,以新浪微博中出现过的病毒案例为代表,对其进行了数据建模和实验模拟,随后分析微博病毒传播受到的影响因素,提出在修改XSS蠕虫病毒漏洞之前,社交网络应该如何提高免疫率,遏制病毒传播。上述研究工作对对未来XSS蠕虫病的预防和遏制具有非常重要的理论价值和现实意义。

1.2 国内外关于XSS蠕虫病毒研究现状

由于XSS攻击成为继SQL注入后最严重的web安全问题[3],网络安全界对XSS蠕虫病毒引起了特别重视和研究。对XSS蠕虫病毒研究的文章也越来越多,安全界对XSS蠕虫的认识也在一次一次的XSS蠕虫爆发过程中和有针对性的研究中加深,但着还是不能完全预防和遏制XSS蠕虫病毒在网络中的爆发以及扩散。
国内有很多对蠕虫病毒的研究文章,但是由于XSS蠕虫病毒是一种随着社交网络出现的新型蠕虫病毒,是蠕虫病毒家族中的新成员。在攻击载体、攻击方式、攻击环境上和原来的蠕虫病毒有较大的不同[1],所以原来蠕虫病毒研究对XSS蠕虫病毒只有一定的参考价值但并不能反映XSS蠕虫病毒传播的影响因素。其余大多数文章,关于XSS蠕虫病毒的研究大多只是从XSS攻击原理[4],XSS蠕虫的分类[5] ,XSS蠕虫防范[6]上入手分析。文章大多只仅限于对XSS蠕虫病毒的预防理论体系和实践方法总结,并没有建立数学建模进而进行仿真分析,模拟XSS病毒在特定的网络拓扑结构中的的传播过程,分析各种因素对XSS蠕虫病毒传播的影响,以及提出如何在XSS蠕虫病毒爆发后遏制其继续扩散,为运营商修改XSS漏洞争取宝贵的时间,最大力度控制病毒传播,减缓病毒传播的速度,控制病毒传播的范围。文章[1]对可能影响XSS蠕虫传播的因素进行分析,并进行实验仿真分析。但是并没有结合特定的网络拓扑结构图,未考虑蠕虫的清楚过程,没有考虑XSS蠕虫传播过冲的时间消耗和资源消耗问题。由于XSS蠕虫病毒是在社交网络上传播的,不同的社交网络的用户拓扑结构图以及用户使用习惯都大不相同,所以不同的社交网络上的爆发的XSS蠕虫间影响因素相差较大。文章中对XSS蠕虫病毒的防御策略没有实际证明,缺少一定的说服力,对在特定的网络拓扑结构上爆发的XSS蠕虫病毒缺少一定的针对性。文章[7]对新浪微博病毒进行建模和分析,但是没有综合考虑可能对微博病毒传播因素,没有站在XSS蠕虫病毒角度来分析病毒的传播。
国外对XSS蠕虫病毒的研究也大多局限于对XSS蠕虫病毒的介绍,XSS蠕虫病毒的原理,XSS蠕虫病毒的分类和XSS蠕虫病毒的预防方式[8]。也并没有对在特定的社交网络上的XSS蠕虫病毒进行数学模型的建立和仿真实验。没有提出一旦XSS蠕虫病毒爆发,在修改XSS漏洞前应当如何遏制病毒的扩散。查看资料可以了解,国内外的研究大多只是对XSS蠕虫原理的分析,分类和预防策略角度的研究,但是并没有提出一旦XSS蠕虫爆发后,在修改XSS漏洞前的这段时间里面,社交网络应当如何提高免疫率和治愈率来控制病毒的扩散。
本文为了研究影响XSS蠕虫病毒传播过程的因素,以新浪微博中出现过的病毒案例为代表,分析新浪微博用户关系,建立用户关系网络拓扑结构图,在网络结构图上进行了数据建模和实验模拟,随后分析其传播收到的影响因素。考虑病毒传播过程中互联网是一个动态演化的过程和新浪微博的有向无标度网络特性。对新浪微博和在实际爆发过的新浪微博病毒做简单介绍,归纳出可能对病毒传播起到影响作用的因素。利用复杂网络中的无标度网络来建立微博用户拓扑结构图,采取经典病毒传播模型中的SIR模型来建立微博病毒模型。研究了病毒初始感染用户数目,用户安全意识程度等对微博病毒传播的影响。本文所得的研究结果对新浪微博预防新一次的XSS蠕虫病毒爆发,一旦XSS蠕虫爆发后如何对其遏制有现实意义和实际价值。同时也便于今后人们更好的预防XSS蠕虫在其他社交网络中爆发和对病毒爆发后如何有效的控制病毒的扩散有参考价值。

1.3 本文主要工作和安排

本文针对目前复杂网络上XSS蠕虫病毒研究,以新浪微博病毒为例,分析微博病毒的传播的影响因素:
(1)做建模研究的准备工作,简单介绍网络相关概念,无标度网络拓扑结构模型,SIR计算机病毒模型和简单的SIR病毒传播模型的建立。
(2)介绍新浪微博、新浪微博病毒,分析微博用户的行为特征以及微博应用的特点。利用无标度网络中的特性建立用户网络图,在这基础上建立微博病毒传播模型。此模型考虑了微博用户网络结构和微博用户的使用习惯,再现了新浪微博病毒真实的传播过程和各个因素对其的影响效果。
(3)利用VC++ 6.0在具有无标度特征的微博用户关系基础上提出互联网病毒传播模型。此病毒模型是由经典的SIR模型改进而来,以病毒爆发后易感染用户、感染用户和免疫用户的数目变化来衡量病毒的传播,对程序不同的参数的设置会得到不同的易感染用户,感染用户,免疫用户数目,以此来衡量微博病毒在用户结构拓扑中的传播过程。
(4)利用matlab7.0 分析新浪微博病毒传播数据,分析各种因素对微博病毒传播的影响关系和影响效率。其结果表明:微博用户点击恶意链接的行为促使病毒传播,用户对警告信息的转发行为能遏制病毒扩散;一旦病毒爆发,感染用户数目将会呈现指数增长,初期感染用户对微博病毒的传播的影响不大;用户安全意识越高,用户点击伪装恶意链接的概率越低,病毒的传播速度越慢,传播范围越小;用户对微博的使用时间越长,对伪装恶意链接作出反应所经历的时间越短,病毒扩散及抑制的速度也越快;活跃节点对病毒的态度会较大的影响微博病毒的传播,当初始感染用户为活跃节点时,病毒传播速度更快,感染用户更快达到峰值,当初始发布病毒警告信息为活跃节点,警告信息传播速度更加迅速,可以一定程度的遏制病毒的传播。群体安全意识越高,微博网络中会越早的出现病毒警告信息,警告信息传播速度越快。提出基于活跃节点提高微博网络免疫率的可行性。

无标度网络的基本理论

新浪微博是社交网络的一种,在新浪微博中存有的少量高连接度的用户将大量低连接度的用户联系在了一起,且这些用户的入度与出度都表现出明显的幂律特性,同样证实具有有向无标度特性 [9]。复杂网络不同于完全规则网络和完全随机网络,具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络称为复杂网络。社交网络具有有向无标度特性,是复杂网络的一种,国外社交网络YouTube、Flickr其用户的入度与出度都具有幂律特性,被研究证实有有向无标度特性[10]。在新浪微博中,我们可以将这些少量的高连接度的用户称为活跃节点或明星用户,明星用户发布的信息有一定的影响力,信息会引起快速和大面积的转发,活跃节点对信息所持态度往往决定了信息的和传播速度传播范围。
本文对微博用户之间的有向关系是用有向无标度网络模型来模拟,对无标度网络模型的介绍是本文的准备工作和内容信息。我们将系统中的元素表示为节点,元素和元素间的相互作用用节点之间的连线表示,将节点和节点之间的连线的整体是为网络。这个简单符号化的网络模型却可以表述出高度复杂真实系统,自然界中的各种系统都可以通过网络来描述,如路由器和传输介质组成因特网,神经元通过相互联系形成人脑,人与人通过各种各样的关系联系而组成的社会[11][12]。对现实世界中的复杂系统中用什么拓扑结构来表示,关于这个问题的探讨人们分别经历了规则网络、随机网络、小世界网络和无标度网络的时代。因为新浪微博病毒模型已经被证实有无标度网络的特性,所以在这边对网络基本概念进行归纳和对无标度网络模型做简单介绍。

2.1网络的基本概念

2.1.1 网络的图表示

  1. 图示一种复杂的数据结构,在图结构中,任意两个节点之间都可以有直接的关系,图中的节点相互的联系没有限制,图结构被用于描述各种复杂的数据对象,在自然科学。社会科学和人文科学等许多领域有非常广泛的应用。<br />图_G_是由两个几何V E 组成的二元组,记作,其中为图中顶点的非空有限集合、为图中边的有限集合,两个组合为一个整体表示一个网络。中各条边的两个端点均来自于中,网络中的用户用节点表示,用户之间的关系用边表示。根据网络用户关系的是否有向,我们将网络分为无向网络和有向网络。若在网络结构图中每条边都是无方向的,则称为无向图,节点和之间的边用表示,在无向图中和表示同一条边,图2.1为无向网络的示意图。若在网络结构图中每条边都是有方向的,则称为有向图,从节点到的有向边,也称为弧。起点为弧尾,终点称为弧头。在有向图中和分别表示两条边,图2.2为有向网络的示意图。


图2.1 无向网络


图2.2 有向网络

2.1.2 网络平均距离

我们将连接两点的最短路径所包含的边的数目叫做网络中两点间的距离,网络的平均距离用对所有节点间的距离求平均来算出。若用表示网络中节点和节点的最短距离,为网络节点总数,那么网络平均距离为:
(2.1)

2.1.3 网络图的度、入读和出度

  1. 定点V的度是指关联该顶点的顶点的边的数目,记作。若图为有向图,顶点的度为该顶点入度和出度之和。顶点的入度是该顶点为终点的有向变的数目,而顶点的出度是指以该顶点为起点的有向变的数目,分别即为和。如图2.2中,顶点1234的入度为1211,出度分别为3002.2.1中,顶点12345的度分别为32432

2.1.4 聚类系数

聚类系数是衡量网络中节点聚类成团的情况。若节点的度数为,则它的领域,即与节点有连线的所有相邻节点,最多有条连线。若此领域中实际存在的连线数为(由于随机性,实际应是连线期望数),那么节点的聚类系数定义为
(2.2)
那么整个网络的聚类系数定义为所有节点聚类系数的算术平均值,即
(2.3)

2.1.5 度和度分布

一个节点拥有的连线数目称为该节点的度。定义表示节点的度。网络中所有节点的度的平均值称为网络节点平均度,记为。在时刻从网络中随机地选择一个节点,它有度数的概率,记为,即为时刻网络的瞬时度分布。当网络演化到无限时,如果极限存在,则称为该网络的稳态度分布。

2.2无标度网络的拓扑结构模型及其特征

在网络小部分活跃节点拥有大量的连接,而大部分的节点的连接度都很小,我们将这种特性成为幂律特性,大部分社交网络表现出这种特性,我们将这种网络叫做非均匀网络或者无标度网络。这种网络和以前的规则网络不同,网络中的连接度不能用一个单一的数值来衡量。无标度网络模型(BA模型)是其中的典型代表模型,这个模型的创新点是从动态、增长的角度描述了具有幂律度分布的网络的形成机理[13]。
无标度网络模型模型的算法描述如下:
(1)初始:将网络中的节点总数目记为。
(2)增长:在新的单位时间内新增加一个节点,这个节点具有的边数为(),因为这个新节点的出现,网络节点中的连接数目会随之增加个。
(3)择优:假设网络中连个节点间连接的概率相同,那么第个节点连接到某一新节点的概率和第个节点的度数成反比,即
(2.4)
其中,网络中存有的第个节点的度数用分子表示,所有节点度的总和分母为分母的累加总和表示。经过个时间单位后,就形成了一个具有个节点,条边的网络模型。
BA网络的一些统计特性如下:
平均路径长度:
(2.5)
度分布:
(2.6)
密律性是BA网络区别于其它网络的一种特殊的性质,具体说来这种性质指的是若将节点度分布取对数并呈现在双对数坐标上,将呈现出一条直线状[14]。BA网络的度分布如图2.4所示。

图2.4 无标度网络的度分布(取自[14])

3 无标度网络上病毒模型

网络理论可以将现实生活中的各种网络抽象化并节点和关系的方式抽象化,可以反映现实生活中的各个元素之间的联系和根本差异。因此,我们将在研究病毒传播规律的时候引入复杂网络理论基础。并从宏观的角度深层次的分析了计算机病毒的传播规律,以此提出切实有效的免疫策略抵制病毒的侵袭。上文介绍了网络的基本概念和无标度网络的拓扑结构模型,将社交网络以及现实生活中的用户关系用符号化的形式展现出来。将社交网络网络后和现实社会网络相似,我们借鉴以前流行病学的传播模型来提出网络病毒的传播模型,由于当新浪病毒爆发后,用户可以发布和转发警告信息来提高用户网络的免疫率,所以在建立病毒模型的时候选用SIR模型。下面SIR计算机病毒传播模型做简单介绍和建立模型。

3.1 SIR病毒传播模型介绍

SIR是在SI模型和SIS模型上演化而来的,弥补了一些SI和SIS中模型的不足,考虑到了网络自身在病毒传播过程中具有的动态演化。在该模型中,网络节点被划分为三种状态,即易感染状态、感染状态和免疫状态。免疫状态是网络节点已经过一定的行为来获得对病毒的免疫能力,在新浪微博网络中就是查看了对病毒的警告信息,不再信任恶意伪装链接,在这种状态下节点被感染感染其它节点,也不会其他节点感染。易感染状态、感染状态和免疫状态一定的概率相互转化,图3.1描述的就是网络节点的三种状态的转换过程。

图3.1 SIR模型状态转换过程
SIR模型的微分方程如下所示:
(3.1)
文中分别用,,表示时刻计算机群体中处于易感染状态、感染状态、免疫状态的三种用户数目,为病毒的感染率,为感染用户转化为免疫用户的概率。

3.2 病毒传播模型的建立

模型中将用户节点分为三类,分别为易感染用户节点()、染病用户节点()和免疫用户节点()。易感染用户节点不会将病毒传染到其它计算机用户节点上,但很有可能被邻居染病用户节点感染,或是自我进行系统升级直接成为了免疫用户节点;染病用户节点已染有病毒,具有传播病毒的能力;免疫用户节点经过系统升级或查杀病毒而获得了免疫能力,因而不具有传染性,也不会再次被其它用户节点感染。假设单位时间内每个染病计算机独立感染一个易感染用户节点的概率为,并称之为感染率,它与具体的病毒传播机理有关。每个易感染用户节点经过系统升级的概率或是染病用户节点被查杀毒后治愈的概率都为,并合称为治愈率,它与用户升级计算机系统及查杀病毒的行为有关。用户节点三种状态的转换如图3.2所示。

图3.2 病毒传播过程中计算机三种状态的转换
文中分别用,,表示时刻计算机群体中处于易感染状态、感染状态、免疫状态的三种用户节点所占比例,则表示单位时间内新增的感染用户节点所占比例,表示单位时间内易感染用户节点经过升级系统而变成免疫计算机比例,为单位时间内感染用户节点经杀病毒后成为免疫计算机的比例,那么相应的即为单位时间内易感染用户节点的变化比例,即为单位时间内感染用户节点的变化比例,即为单位时间内免疫用户节点的变化比例。对SIR模型做修改后,计算机病毒传播可用下列微分方程组描述:
(3.3)
采用BA模型中的增长与择优原则,将新加入网络的用户都视为易感染状态,不会将病毒传染到其它计算机上,但很有可能被邻居染病计算机感染。在病毒的传播过程中需要考虑病毒的传播环境网络的动态演化过程,在病毒传播过程中也会感染新连入网络的计算机,这些新加入的感染计算机将作为病毒的传播源想自己的临近计算机传播病毒。同时在病毒的传播过程中微博病毒的传播概率和计算机的治愈率也会发生变化。
为此,我们将网络中病毒的传播分为两种类型:静态网络传播和动态网络传播。静态网络传播是指染病用户节点将病毒传播给网络中早已存在的邻居计算机,在传播过程中不考虑新加入网络的用户节点。而动态网络传播是指染病用户节点依照择优原则以一定概率与新加入的易感染用户节点相连,同时以又以一定的感染率感染新加入的计算机,计算机网络是在动态的变化过程中的。
初始时,已有的静态无标度网络中有个感染用户节点,个易感染用户节点。单位时间内,动态网络演化下的病毒传播过程如下:
(1)在病毒传播初期,这段时间内病毒网络传播为静态网络传播,感染用户节点会以概率感染网络中原有的相互关注的用户。
(2)在病毒传播的过中,病毒在网络传播由就静态网络传播变为动态网络传播,社交网络中新加入个易感染用户节点。每个新加入的用户都和网络中的m分用户进行交互,和某一用户连接的概率取决于被选用户的连接读,即
(3.3)
其中:分子表示被选择连接的用户节点的度,分母为网络中现有用户节点连接度之和。同时,感染用户节点以概率感染与它新建连接的用户节点。
(3)易感染用户节点和感染用户节点会以概率升级为免疫用户节点,并且不再被感染。

4 新浪微博病毒模型的建模与研究

4.1 新浪微博及新浪微博病毒介绍

4.1.1 新浪微博介绍

微博,是一种基于用户关系的信息分享,传播以及获取信息的平台,用户通过WEB,WAP 以及各类客户端组件便能随时随地地实现信息的更新和即时分享。微博用户网络作为SNS的一种也属于复杂网络。它是基于WEB2.0平台新近兴起的一类开放互联网社交服务。它与传统的社交网站(social network sites)一样都是基于“六度分割”的概念[17]。此概念是指任意两个陌生人都可以通过人际关系找到对方从而使每个人的社交范围可以不断扩大。与BBS和博客不同的是微博用户可以不受时间空间的限制,持续不断地对某条信息作出评论和转发,使得该信息可能在极短时间内以“核裂变”的方式被成百上千的用户转发,从而演化成引起舆论关注的社会新闻事件。新浪微博是微博中的典型代表,同时新浪微博已经是中国最大的社交网络,是重要的信息传播平台。由于大量的用户和极高的关注度,新浪微博也成为黑客的攻击对象,开发者在开发过程中不谨慎而留下的XSS漏洞为XSS攻击提供了可能。
微博让用户之间形成一张无形的大型社会化网络,该网络中的节点代表用户,边表示用户之间的相互联系。当处在该网络中某一个用户产生一个动作,就会传递到网络中与之关联的其他用户。如果其他用户有所反应,同样会不断扩散到与该用户关联的其他用户。如此下去,就会不断扩散到整个网络,永无休止地进行传播,从而形成一种“蝴蝶效应”。 这无疑加剧了微博病毒(反射式XSS)在微博用户中的传播速度和传播范围,给微博病毒在短时间内扩散创造了条件。新浪微博是社交网络的一种,社交网络是具有无标度特性的复杂网络。新浪微博已经被研究具有有向无标度特性,在新浪微博中存有的少量高连接度的用户将大量低连接度的用户联系在了一起,且这些用户的入度与出度都表现出明显的幂律特性。在新浪微博中,我们可以将这些少量的高连接度的用户称为活跃节点或明星用户。在社交网络逻辑拓扑图中,某些用户人际关系数量多,且热衷于人际交往,其进入社交网络后会不断寻求增加新的人际关系,其好友列表所体现的节点度数很大;某些用户人际关系数量少,进入社交网络后也只是与固定好友进行交互,节点度数小。在某种程度上用户的节点度数反应了该用户在社交网络上的影响力和其用户。在微博网络中,入度越大,说明关注的用户越多,信息来源越丰富,而出度越大,说明关注自己的人越多,影响力越大。通常而言,大部分微博用户的粉丝一般是几十至几百的数量级,而少数用户的粉丝超过上千乃至上万,称其为明星用户(意见领袖)。明星用户在信息传播过程中扮演着重要角色,对信息的传播有着明显推动作用,当转发病毒警告信息的时候对病毒有明显的遏制作用。研究明星用户对微博病毒传播过程中有现实意义和重要价值。
新浪微博的每个用户通常都拥有一定数量的“粉丝”(follower),其发布的信息会以新鲜事的形式通知每个“粉丝”,从而受到关注甚至转发。在新浪微博中,信息通过两种方式传播:新鲜事功能和私信功能。其中新鲜事信息发布功能可以细分为:发布功能,转发功能。发布功能:用户可以通过微博的终端随时随地发布新鲜事。转发功能,用户可以把自己喜欢的消息一键转发到自己的微博,在转发过程中原帖内容不会被篡改,自己可以在原来微博内容的基础上添加信息,可以是自己对这条信息的见解和转发这条微博的原因。私信功能:用户可以单独向“粉丝”发送私信,可以有选择用户和发送针对性内容信息,这和微博发布功能的广播式信息传播有较大的不同,和传统的邮件传播相似。用户可以像微博中的其他人发送私信,但是要通过较为复杂的验证信息。当用户接受私信时,微博会用一定的提醒内容信息。

4.1.2 新浪微博用户拓扑结构图

总的来说,微博的用户关系网是靠关注(follow)和粉丝(follower)建立的,不像其他社交网络一样是双向关注的,只是单向关注,是有向网络。粉丝可以看到自己关注的人的信息,但是自己关注的人看不到自己发布的信息内容。在新浪微博上信息的传播有一定的方向性,以信息(包含伪装恶意链接)为载体的微博病毒的传播也同样具有一定的方向性。当用户注册新浪微博后,新浪会向推荐影视明星、社会公知、行业专家,一般用户都会有选择性的关注这些人。所以在新浪微博中存有的少量高连接度的用户将大量低连接度的用户联系在了一起,且这些用户的入度与出度都表现出明显的幂律特性。
网络中的节点代表微博用户,。入度表示用户的粉丝数目,出度表示用户的关注对象数目。用户发布的信息会在粉丝中的新鲜事显示,自己新鲜事中显示关注用户的信息。在单向关注中,信息传播的路径方向和关注方向是想法的的,在双向关注内容之内心不受影响。因为微博病毒的传播是需要微博信息作为载体的,所以病毒及警告信息的传播方向与用户的关注方向是相反的。图4.1标明了微博用户的关注方向,用户1和用户2为相互关注,所以在用户网络中节点1和节点2就纯在双向的连接;用户1关注了用户3,在用户网络中,只有从节点1出发到节点3的有向线,没有从用户3到用户1的有向线。图4.2标明了信息的传播方向,也就是带病毒信息的伪装恶意链接和警告信息的传播方向,假设用户1点击伪装恶意链接感染病毒,他只能向其粉丝用户2传播带病毒的伪装恶意链接,但是不能向自己关注单向关注的用户3和4发送恶意链接。对病毒的警告信息同时是以信息为载体向外传播,警告信息的传播方式和病毒的信息相同。

图4.1 微博用户关注方向 图4.2 病毒与警告信息传播方向

新浪微博被证实具有无标度性,存在少量活跃节点拥有大量的连接,而大部分的节点的连接度都很小,微博用户的入读和出度具有幂律特性。网络中的连接度不能用一个单一的数值来衡量,存在少量活跃节点将普通节点联系在一起组成一个网络结构内容。本文用上文介绍的无标度网络来模拟微博用户网络拓扑结构图,模拟用户之间的相互关注状态。模型中结点总数,结点的入权值服从指数分布,结点的出权值服从另一指数分布,条件阈值,阈值是由于社交网络本身的特性,去除一些在社交网络中不合理的因素,这样会使建立的微博用户网络模型更加有针对性。
根据无标度网络的幂指数分布特性,给网络节点随机分配入度数和出度数,网络中的分布如图4.3和4.4所示。

4.3.入度分布 4.4.出度分布

4.1.2 新浪微博病毒概述

分析爆发过程,包含病毒的伪装恶意链接的消息I在微博网络上的传播过程可以简述如下:
(1)用户A 发布消息I,消息I中包含有指向javascript编写的脚本病毒,用户一旦点击URL地址,就会自动发布同样指向 脚本病毒的URL地址。同时自动获取“粉丝”的ID号,向“粉丝”账号逐个发布指向病毒的URl地址。
(2)A的粉丝可通过个人首页上系统的新鲜消息提醒,查看个人账户的私信箱,主动访问u 的微博页面这三种途径来获知消息I。
(3)对消息I 感兴趣的粉丝B 可能会对点击其中的URL地址,一旦点击,用户B就会转发信息I,同时向其“粉丝”发出包含病毒的私信。
(4)如此重复过程2)和3)。
资料[18]表明,新浪微博病毒为反射型XSS,黑客将病毒脚本加入伪装恶意链接的程序参数里,用户点击链接进入程序后在页面直接输出脚本内容,自动执行某些操作,用户一旦点击类似的恶意链接就会受到攻击,成为病毒病毒传播的新节点。以自身为原点,自动执行某些行为向好友推送伪装恶意链接。
微博用户一旦点击伪装恶意链接就会中毒,用户中毒后发布包含病毒信息状态,给关注自己的粉丝发送私信。该微博用户的粉丝在观看微博信息和阅读私信时有可能点击URL地址时又触发病毒,其粉丝作为一个新的病毒源头发送带有病毒的伪装恶意链接,以这种模式在新浪微博中传播病毒,造成中毒用户的几何增长,给新浪微博和用户造成严重的影响。
微博病毒作为一种新型的病毒,其抑制手段不同于其他病毒,在微博运营商未采取行动前,微博用户可以通过发布和转发病毒的警告信息来遏制病毒的传播。微博运营商在服务器端编写修改XSS漏洞和在代码编写注意谨慎是抑制和预防用户中毒的根本的方式。在这之前微博病毒会在新浪微博模型中不断的传播。

4.1.2 新浪微博病毒影响因素分析

  1. 新浪微博病毒以一些诱人信息作为载体诱使用户点击访问其发出的伪装恶意链接地址。新浪微博用户在新浪微博用户在查看新鲜事和私信时会接受关注到发出的相关链接,往往会不加分辨地直接点击访问。活跃节点会比非活跃节点收到更多的蠕虫邀请链接,一旦受到感染,也会发送更多的蠕虫邀请链接。同时,安全意识高的用户在发现自己微博异常后发布警告信息,提醒好友避免点击伪装恶意链接遏制微博病毒的传播,当活跃节点发布或转发病毒的警告信息的时候也会被更多的人看到相关的警告信息。<br />新浪微博病毒属于反射型蠕虫的一种,结合社交网络的特点,其传播会受到下列7种因素的影响:<br /> (1)初期感染用户数目 <br />新浪微博病毒通过伪装的邀请链接引诱用户触发链接,拙劣的伪装链接往往会使用户产生警觉而不会被点击,若伪装邀请高明,对用户的吸引力较大,那么会提高用户点击伪装链接的概率,提高感染用户的成功率。新浪微博病毒在传播过程中向大量用户自动发送“建党大业中穿帮的地方”、“个税起征点有望提到4000”、“郭美美事件的一些未注意到的细节”、“3D肉团团高清普通话版种子”等带链接的微博与私信。现实中新浪微博病毒伪装链接都是一些当时的较有吸引力的咨询和内容,不同的伪装链接对不同的地位和层次的人都有吸引力内容。<br />(2)用户安全意识程度<br />社交网络用户在面对好友时会降低安全防范意识。同时在一段时间内容重复收到大量相同的信息和私信会让用户思考这种现象的异常性和信息的安全性问题。用户自身的安全意思可以让用户理性看待好友发送的邀请链接是否合理,是否有不安全的隐患,最后决定是否点击。当用户个体的安全意识搞和新浪微博群体的用户安全意识高可以降低新浪微博病毒感染的成功率,在某种程度上起到遏制蠕虫扩散的作用。<br />(3)用户使用时间<br />不同的用户对新浪微博的使用习惯不一样,用户个体在使用时间,使用模块,接受信息的方式上有较大的区别。因为新浪微博通过微博的新鲜事和私信内容发布伪装链接喜迎用户点击,所以当用户使用微博频率越高,使用时间越长就代表用用户看到病毒伪装链接的机会越大,新浪微博病毒感染的成功率越高。同时微博用户对私信和新鲜事两个模块的选择也会影响微博病毒感染的成功率。<br />(4)活跃节点<br />与非活跃节点相比,大量的Web 应用程序交互会使活跃节点面临大量的好友信息链接。若活跃节点被感染,则会发送大量的邀请链接,新浪微博病毒感染成功率将得到极大提高。在微博网络中,活跃节点的入度越大,说明关注的用户越多,信息来源越丰富,二出度越大,说明关注自己的人越多,影响力越大。在新浪微博中“明星用户”(拥有大量粉丝数的用户)对信息的传播和对信息遏制有重要的作用。若“明星用户”感染微博病毒将大大病毒感染的成功率,“明星用户”发布警告信息提醒用户注意注意病毒的伪装链接也将大大降低微博病毒的感染成功率。事实上,微博病毒就是通过一些感染“明星用户”迅速扩大病毒的传播。<br />(5)群体安全意识程度<br />微博病毒作为一种新型的病毒,其抑制手段不同于其他病毒,在微博运营商未采取行动前,微博用户可以通过发布和转发警告信息来遏制病毒的传播。当用户点击伪装链接发现自己的账号异常后发布警告信息提醒自己的“粉丝”避免点击病毒的伪装链接内容可以大大降低微博病毒感染的成功率。当群体安全意识高时,大量用户转发警告信息可以大大降低新浪病毒感染的成功率,遏制病毒在微博网络上的传播。<br />(6)群体安全意识程度<br />微博病毒作为一种新型的病毒,其抑制手段不同于其他病毒,在微博运营商未采取行动前,微博用户可以通过发布和转发警告信息来遏制病毒的传播。当用户点击伪装链接发现自己的账号异常后发布警告信息提醒自己的“粉丝”避免点击病毒的伪装链接内容可以大大降低微博病毒感染的成功率。当群体安全意识高时,大量用户转发警告信息可以大大降低新浪病毒感染的成功率,遏制病毒在微博网络上的传播。<br />(7)用户访问偏向度<br />当用户在使用微博的过程中,用户更加偏向于信任于现实中的朋友或者相互关注的好友的信息,对陌生用户的交互以及对其信息点击的概率都比较小,当用户看到好友发布病毒警告信息时也会更倾向于转发这类内容信息。当用户偏向于访问和信任好友,用户点击伪装恶意链接的概率相对较小,而用户随机偏向于访问陌生用户且信任他们的信息时,用户就存在感染病毒的隐患。

4.2 微博病毒模型建模

4.2.1 新浪微博病毒模型

  1. 在病毒爆发时根据的用户行为状态将网络中的所有用户分为易感染状态、感染状态和免疫状态。易感染状态的用户没有觉察到微博病毒和对病毒的警告信息,也没有点击伪装恶意链接中毒。感染状态的用户已经点击了伪装恶意链接,XSS蠕虫会以用户登录的身份自动执行代码中的操作,在微博病毒中是自动发布包含伪装恶意链接的信息,给自己的“粉丝”发送相同内容的私信。免疫状态的用户是指用户已经觉察到伪装恶意链接的异常情况,对这些链接持一定的谨慎态度,或者是在查看了病毒警告信息后对微博病毒的伪装恶意链接有辨别能力,用户会在自己的微博中发布对病毒的警告信息和转发别人的警告信息。文中分别用、、表示时刻易感染用户、感染用户和免疫用户的数目。微博病毒是XSS蠕虫病毒的一种,具有XSS蠕虫病毒的特殊性,黑客用过社交网络中XSS漏洞制造病毒,发布伪装恶意链接诱惑用户点击,用户一点点击链接就会中毒,病毒自动会以用户的身份想好友传播包含病毒的伪装恶意链接。在新浪运营商发现并修改XSS蠕虫病毒漏洞之前,安全意识高的用户只能在觉察到自己账号的异常情况后发布对病毒的警告信息,提醒粉丝避免点击伪装恶意链接而中毒,群体安全意识高的用户会转发这类信息,警告信息在微博中的大量转发会提高网络中的免疫率,以遏制病毒在微博网络中的传播。因为不同用户对微博的使用习惯时间长短不同,用户对微博的使用习惯很大程度上对微博病毒和病毒警告信息的传播起影响作用。本文用、、和度来衡量病毒在网络中的传播和不同的用户使用习惯:<br />:用户在时刻点击恶意短链接的概率。随着时间的推移,用户不一定能查看到伪装恶意链接,即使接触了到了伪装恶意链接对其的点击概率也不同,本文将用户点击伪装恶意的链接的概率假定为正态分布,即<br /> 5.1)<br />其中,设为常数。因为用户安全意识不同,所以在微博病毒开始传播的时候用户点击某一伪装恶意链接的概率高低是用户安全意识的反映。当用户多次看到好友的警告信息和短时间内容在微博中看到大量的相同信息时,他们对伪装恶意链接做出自己的判断和怀疑,对伪装恶意链接点击率降低,这边可以用转发转发警告信息的用户衡量,当越多时,用户的点击率将随着免疫用户的增多而单调递减。用户对伪装恶意链接的点击概率在一定程度上反应了用户的安全意识程度。<br />:用户在时刻转发警告信息的概率。随着时间的推移,用户也不一定能参看到病毒警告信息,即使参看到了对病毒的警告信息也不一定会转发它,本文将用户转发警告信息的概率假定为正态分布,即<br /> 5.2)<br />其中,,设为常数。因为用户的群体安全意识不同,所以在出现警告信息的时候用户转发警告信息的概率高低是群体安全意识体现。因为用户安全意识不同,所以在微博病毒开始传播的时候用户点击某一伪装恶意链接的概率不同。当用户多次看到好友的警告信息和短时间内容在微博中看到大量的相同信息时,他们对伪装恶意链接做出自己的判断和怀疑,对伪装恶意链接点击率降低,这边可以用转发转发警告信息的用户衡量,当越多时,用户的点击率将随着免疫用户的增多而递减。<br />:用户对微博使用时间的长短。不同用户对微博的使用习惯不同,使用时间长短和使用的热衷程度不一样,微博用户通过浏览器和手机访问微博花费的时间长短不一,所以用户查看到某一条微博信息的所用时间不同,因此假定<br /> 5.3)<br />其中设为常数。<br /> :用户访问偏向度,,用户偏向于信任访问好友和信任好友信息,说明访问倾向度越高,的值越大,如果用户倾向于随机访问社交网络中的陌生用户,那表明用户倾向度不高。访问偏向度会带来影响因子, ,计算公式为:<br />(5.3)<br />在考虑用户访问偏向度的情况下,用户点击概率为,用户转发警告信息的概率为。用户的访问偏向度会影响点击病毒和装法概率的链接。

4.2.2 新浪微博病毒传播阶段

微博病毒一伪装恶意链接为传播载体传播受到上面四个因素影响,本文根据对病毒警告信息出现和新浪运营商修改XSS蠕虫病毒的时间点将病毒的传播过程可分为以下三个阶段:
(1)病毒扩散阶段:病毒以一定的初始感染用户开始向微博网络中传播,病毒传播初始阶段,没有用户发现伪装恶意链接的异常,没有人发现病毒已经在微博网络中爆发,没有人发布对病毒的警告信息,也没有人转发此类信息内容。假定初始感染用户数目为,以用户为病毒源开始向外传播病毒。在初始时刻,用户点击伪装恶意链接并感染病毒,向关注他的粉丝用户发送包含伪装恶链接的信息,粉丝用户分别经历不同的时间会看到这条包含病毒的伪装恶意链接。粉丝用户点击伪装恶意链接的概率为,粉丝用户一旦点击伪装恶意链接感染病毒,会自动向其粉丝用户传播包含病毒的伪装恶意链接,成为新的。该阶段用户的状态变迁如图4.5所示。
(2)警告抑制阶段:随着病毒的传播,包含伪装恶意链接信息数目和感染病毒的用户数目越来越多,用户开始发现微博的异常,对伪装恶链接产生了警惕,开始发布对病毒的警告信息提醒其余用户避免点击伪装恶意链接而中毒,群体安全意识高的用户会转发此类信息,随着警告信息的大面积转发,用户会对病毒产生一定的免疫率。 将个免疫用户开始发布警告信息的时刻即为,用户对察觉异常并发布了警告信息,关注他的粉丝用户分别经历不同的时间会看到该信息,在时刻,用户查看到这条警告信息,由易感染节点变为免疫节点。那些没有发现伪装恶意链接异常情况和看到警告信息还有可能点击恶意链接而变成染病节点,该阶段用户的状态变迁如图4.6所示。

4.5 自由传播阶段用户的状态转

4.6警告抑制阶段用户的状态转化

4.7病毒消除阶段用户的状态转化
(3)病毒消除阶段
因为新浪微博病毒是XSS蠕虫病毒的一种,微博病毒利用XSS漏洞攻击新浪微博网络,在新浪运营商修改源代码内容以前微博病毒会不断传播,微博用户在只有发布和转发警告信息来遏制微博病毒的扩散,而在运营商修改了XSS漏洞后微博病毒就会失效,在新浪微博用户中间消失,此时在微博网络中的用户都变为免疫用户,不再存在易感染用户感染用户,该阶段用户的状态变迁如图4.7所示。

4.3.实验分析

针对前面提出的对微博病毒的影响因素,用户使用微博的行为大有不同,我们引入上述三个变量来描述用户的行为,并建立对应的微博病毒传播模型。给模型赋予一定的初始值,仿真建模,得到对应的实际结果并对数据进行分析。不同的影响因素用不同的参数来衡量。下面将给出模型的仿真结果与分析。

4.3.1 点击率和转发率分析

模型中,假定微博用户总数,用户一般查看信息所花时间,初始时,假定初始感染用户数目,开始时刻用户点击伪装恶意链接的概率为,感染用户的粉丝点击恶意链接的概率,其中。假定时,网络用察觉异常并发布警告信息的用户数目,这类用户转化为免疫用户,信息时刻用户点击伪装恶意链接的概率为其粉丝用户看到此信息的用户转发它的概率,其中。图4.5给出了三种用户的变化趋势,其中虚线、实线、点状虚线分别表示易感染用户、感染用户和免疫用户。从图中可以看出,之前,即用户发现异常发布警告信息转化为免疫用户之前,病毒开始往外扩山,大量的易感染用户转变为感染用户,在这段时间里面免疫用户数目为0。之后,一定数量的发现微博异常发觉病毒转化为免疫用户开始发布警告信息,此后用户开始转发这些信息,人们对该病毒产生警惕,用户不会在点击伪装恶意链接,感染用户却逐渐减少,同时免疫用户增多。在警告信息出现之前,假定在用户初始时刻点击伪装恶意链接的概率为,用户对病毒的点击率在0.6左右波动,,在时,微博中有个免疫用户开始发布警告信息,接近于,但是转发率升高,因此免疫用户增多。从开始,随着免疫用户越来越多,点击恶意链接概率的均值将单调递减,点击率会越来越低,相反,转发警告信息概率的均值将单调递增,转发率越来越高,人们对该病毒的警惕性也越来越高,因此很多感染用户渐渐变为免疫用户。其中已感染用户为用户总数减去感染用户和免疫用户。

图4.8 三种用户的变化情况

4.3.2 初始感染用户

新浪微博病毒在发布病毒前会伪装的邀请链接,拙劣的伪装链接往往会使用户产生警觉而不会被点击,若伪装邀请高明,对用户的吸引力交大,那么会提高用户点击伪装链接的概率,提高感染用户的成功率。黑客对微博的伪装成都可以体现在初期病毒感染用户,这可以用的初始值来量化表示。微博病毒的伪装程度越高,初期病毒感染用户越多,越大,伪装恶链接对用户的吸引力越大,越大。
模型中,微博用户总数,初始时,假定初始感染用户数目为和,开始时刻用户点击伪装恶意链接的概率为,感染用户的粉丝点击恶意链接的概率,其中。图4.9给出了两种不同的初始用户数目情况易感染用感染用户数目曲线图对比。其中实线表示时的感染用户数目变化,虚线表示是感染用户数目变化

图4.9 病毒传播初期的中毒用户数目不同中毒人数变化
从图4.8可以看出,制造病毒的黑客对伪装恶意链接的伪装程度越高,病毒传播初期的中毒用户越多,但是传播初期的中毒用户对病毒传播的影响力不是很大,因为一旦微博病毒爆发,用户点击伪装链接,感染用户数目开始出现指数传播,会快速引发整个朋友链沦陷,进而波及整个社交网络,原本初始感染用户数目会在短时间内容和初始感染用户高的模型有相同的峰值内容。一旦微博病毒开始传播,病毒传播初期的中毒用户对病毒传播的影响不是很大,因为病毒会在用户网络中呈现指数传播,初期的中毒用户数目会快熟增长。

4.3.3 用户安全意识程度

在病毒传播初期,微博病毒通过感染用户向粉丝发布伪装恶链接信息,网络用户在面对好友和诱惑力的伪装信息时会降低安全防范意识。但是在一段时间后,用户在在一段时间重复收到大量相同的信息会让用户思考这种现象的异常性和对信息的安全性做出怀疑,安全意识高的用户会理性看待好友发送的邀请链接是否合理,是否有不安全的隐患,最后决定是否点击。
户的安全意识程度可以用来量化,用户的安全意识程度越高,初始状态下用户点击恶意链接的概率越小,越小,,用户的安全意识程度越低,越大。我们选择和作为用户点击伪装恶意链接的概率。图4.9给出了两种高低安全意识情况下易感染用感染用户数目曲线图对比。其中实线表示的感染用户变化数目,虚线表示的感染用户变化数目,

4.10 不同的用户安全意识的时候点击恶意链接概率均值对比

从图4.10可以看出,用户的安全意识越高,用户点击伪装恶意链接的概率越低,下降速度越快,用户转发警告信息的概率上升速度越快。用户安全意识对微博病毒的传播有较大的影响,用户安全意识高,点击伪装恶意链接的概率越低,转发警告信息概率越高,会降低病毒的传播速度和遏制病毒在用户网络中传播。

4.3.4 用户使用时间

不同的用户对新浪微博的使用习惯不一样,用户个体在使用时间,使用模块,接受信息的方式上有较大的区别。因为新浪微博通过微博的新鲜事和私信内容发布伪装链接喜迎用户点击,所以当用户使用微博频率越高,使用时间越长就代表用用户看到病毒伪装链接的机会越大,新浪微博病毒感染的成功率越高。
排除其他因素,简历理想模型内容,用户的使用习惯可以,两量化,用户使用时间越长,的越大。我们假定用户一般用户的时间为我们分别为和,以和描述用户的不同经历时间。图4.10给出了相应的实验结果,其中虚线和实线表示经历时间分别为,时感染用户数目的变化情况。

图4.11 微博用户对信息作出反应所经历的时间对病毒传播的影响
从图4.11中可以看出,当用户经历时间在5个单位时间左右波动时,染病用户到达峰值的速度较快,警告信息出现之后,染病用户下降的速度也相对较快。当经历时间在30个单位时间左右波动时,染病用户到达峰值的速度较慢,警告信息出现之后,染病用户下降的速度也相对较慢。显然,用户对信息作出反应所经历时间越短,病毒传播得越快,在警告信息出现之后,也越快能抑制病毒传播。

4.3.5 活跃节点

  1. 与非活跃节点相比,大量的Web 应用程序交互会使活跃节点面临大量的好友信息链接。若活跃节点被感染,则会发送大量的邀请链接,新浪微博病毒感染成功率将得到极大提高。在微博网络中,活跃节点的入度越大,说明关注的用户越多,信息来源越丰富,出度越大,说明关注自己的人越多,影响力越大。在新浪微博中“明星用户”(拥有大量粉丝数的用户)对信息的传播和对病毒的遏制有重要的作用。若“明星用户”感染病毒将大大病毒感染的成功率,“明星用户”发布或者转发警告信息提醒用户注意带病毒的伪装链接也将大大降低微博病毒的感染成功率,提高网络对病毒的免疫率。在实际爆发过的微博病毒中,微博病毒就是通过一些感染“明星用户”迅速扩大病毒的传播。众所周知,明星、意见领袖以及热门媒体(入度很大的节点)在微博上比草根用户(入度较小的节点)具有更大的影响。因此,本文比较了高级用户和普通用户两者对病毒与警告信息传播的影响。图4.12给出了相应的实验结果,其中虚线和实线表示经历时间分别为活跃节点和普通节点感染源时感染用户数目的变化情况。

图4.12 普通用户与高级用户对病毒传播的影响
文中假定入度数大于的节点为高级用户,入度数小于的节点为普通用户。图4.11中个不同用户作为初始感染源时的实验结果,虚线表示普通节点作为初始感染源时染病用户的变化情况,实线表示活跃节点作为初始感染源时染病用户数目的变化情况。从图中可以看出,当活跃节点作为感染源时,病毒传播的速度越快,感染用户快速达到峰值并迅速回落。

图4.13 普通用户与高级用户对警告信息传播的影响
图4.13给出了个不同用户作为免疫信息发起源时的实验结果,虚线表示普通节点作为免疫信息发起源时免疫用户的变化情况,实线表示活跃节点作为免疫信息发起源时免疫用户的变化情况。从图中可以看出,免疫信息初始源为活跃节点时,免疫信息传播速度更迅速。从上面两个实验结果可得,增强活跃节点的安全意识有助于提高社交网络的整体安全性。活跃节点不仅要作为病毒的防御点,也可以作为病毒的监控点。当发现病毒爆发后应该利用活跃节点发布警告信息,提醒用户注意恶意链接信息,提高网络的免疫率,控制病毒的传播范围,遏制病毒的传播速度。

4.3.6 群体安全意识

从上面实验中可以看出,大量的微博用户点击恶意链接的行为能促使病毒传播,转发警告信息的行为能抑制病毒扩散。那么什么时间发布警告信息好呢?为此,我们选择和分别作为用户发布警告信息的初始时刻。
图4.13给出了相应的实验结果,其中虚线和实线分别对应和 时的情况。从图中可以看出,当用户在时开始发布警告信息,染病用户所达峰值较低,且开始转发警告信息后,染病用户数目的下降速度也相对较快。相反,当用户在时开始发布警告信息,染病用户所达峰值较高,且开始转发警告信息后,染病用户数目的下降速度也相对较慢。显然,用户发布警告信息越早,病毒传播范围越小,并且警告信息发布后,也越容易抑制病毒扩散。

图4.14 开始免疫时间对病毒传播的影响

4.3.7 访问偏向度

  1. 社交网络中的用户比较对用户访问和信息信任的偏向度不同。本文选择我们选择和分别作为用户的访问偏向度。图4.14给出了相应的实验结果,其中虚线和实线分别对应和 时的情况。从图中可以看出用户偏向度对微博传播的影响不大,黑客会伪装成正常用户,一旦在社交网络中形成好友链,其中一个用户出现问题,那么就会牵连朋友,一旦薄弱点被感染,那么微博病毒将会呈现指数增长。

图4.14不同偏向度是用户感染数目变化

5 结束语

新浪微博是基于复杂网络的在线社交网络,是现实生活中的人际网络的一个实例。新浪微博病毒是XSS蠕虫病毒一种,XSS蠕虫病毒的传播实例。本文以新浪微博网络为现实模板,构建了一个复杂网络的病毒传播模型,在模型中描述了微博病毒传播的方式和特点,以及在传播过程中的用户对含有微博病毒的伪装恶意链接的选择和态度。通过在建立模型上的脱贫子网上进行仿真,得到以下结论:一旦微博病毒爆发,且伪装恶意链接有一定的吸引力,微博病毒初期感染用户对微博病毒的传播影响不大。用户安全意识越高,微博病毒传播速度越慢且在一定程度上可以遏制微博病毒的传播。用户使用习惯对微博病毒传播的影响很大,用户查看微博的时间越长病毒传播速度越快。活跃节点对微博病毒的态度会很大的影响微博病毒的传播,初始感染用户为活跃节点时,病毒传播速度更快,感染用户更快达到峰值。最先发布病毒警告信息为活跃节点,警告信息传播速度更加迅速,可以一定程度的遏制病毒的传播。群体安全意识越高,微博网络中会越早的出现病毒警告信息,警告信息传播越快,可以遏制病毒的传播。综上所述,对新浪微博病毒(XSS蠕虫病毒)预防工作应该是提高用户安全意识和群体安全意识,当微博病毒爆发的时候利用活跃节点(明星用户)发布警告信息可以快速提高微博病毒的免疫力和遏制病毒在微博网络中快速传播。对微博病毒的彻底查杀手法应是在服务器端修改微博病毒利用的XSS漏洞代码,使病毒失效。

参考文献
[1] 罗卫敏, 刘井波. XSS蠕虫在社交网络中的传播分析[J]. 计算机工程, 2011, 37(10):129-131.
[2] 王伶玲. 新浪微博爆发病毒近3万用户“中招”[EB/OL]. 2011[2012-5-19]. http://news.qq.com/a/20110630/000799.html .
[3] Gislason Drew, Gillman Tim. Cross Site Scripting Attack[EB/OL]. 2010[2012-5-20]. http://www.acunetix.com/websitesecurity/cross-site-scripting/ .
[4] 王佩楷. XSS跨站脚本攻击分析[J]. 信息安全 , 2012, 6(8):32-56.
[5] 王志春. Web 中XSS 攻击检测与防范措施[N]. 通化师范学院学报, 2008.8.
[6] 朱星伟. XSS 攻击升温,Web 业务安全面临更大挑战[J]. 科学之友, 2008, 10(9):36-37.
[7] 杨春霞, 胡丹婷. 微博病毒传播模型研究[J]. 计算机工程, 2012, 38(15):99-103.
[8] Chen M V G A H. Noncespaces: Using Randomization to Enforce Information Flow Tracking andThwart Cross-Site Scripting Attacks [J]. IEEE Computer Society, 2008, 7(10):80-87.
[9] Mislove A, . Measurement and Analysis of Online Social Networks[C]. //Gummadi K P,.Proceedings of the 7th ACM SIGCOMM Conference on Internet Measurement, 美国: ACM Press, 2007.
[10] Feng F, Lianghuan L, Long W. Empirical Analysis of Online Social Networks in the Age of Web 2.0[J]. Physica A, 2008, 387(2):675-684.
[11] Cross F R, Schroeder L, Kruse M, etal. Quantitative characterization of a mitotic cyclin threshold regulating exit from mitosis[J]. Mol Biol Cell, 2005, 16(5):2129-2138.
[12] Sun H.J. and Huang H.J. Urban transit as a scale-free network[J]. Mod.Phy.Lett.B, 2004, 18, 1043-1049.
[13] 杨春霞, 胡丹婷. 动态演化的互联网病毒建模与分析[J]. 计算机工程, 2012, 29(7):2678-2680.
[14] Faloutsos M, Faloutsos P, Faloutsos C. On power-law relationships of the Internet topology[J]. ACM, 1999, 29(4).
[15] 张运凯, 王方伟, 张玉清, 等. 无尺度网络上的蠕虫传播行为研究[J]. 通讯和计算机, 2005, 2(2):14-18.
[16] 徐翔斌, 涂欢, 王佳. 基于复杂网络的社交网站用户评价模型研究[J]. 华东交通大学学报, 2012, 2(1):89-91.
[17] 徐建闽,严新. 新浪微博遭遇跨站攻击蠕虫 [EB/OL]. 2011[2012-05-01]. http://it.sohu.com/20110629/n311988605.shtml.

XSS worm propagation model
Zhang Runke
Auto-control Department of Binjiang College of Nanjing University of Information Science & Technology

ABSTRACT:In this paper, an example of Sina microblogging XSS worm virus spread in complex networks and classical virus propagation model based on the establishment of micro-Bo virus propagation model. In this model, based on the research user click-through rate, forward rate, the virus disguised level user security awareness, user habits, attitudes active node of the virus, the virus spread safety awareness group process. The experimental results showed that: Weibo user clicks a malicious link behavior to promote virus spread, the user of a warning message forwarding behavior can curb the spread of the virus; Once the virus outbreak, the infection will show exponential growth in the number of users, users of the microblogging initial infection and spread of the virus little effect;User security awareness is higher, the user clicks a malicious link disguised lower the probability, the slower spread of the virus, spread the smaller the range; users use microblogging longer disguise malicious links on the elapsed time to respond to shorter , and inhibition of spread of the virus, the faster; active node of the virus greater influence attitudes microblogging spread of the virus, when the initial infection users active node, the virus spread faster, infected users quickly reached a peak when the initial release of active nodes virus warning message, warning, information dissemination speed more quickly, can to some extent to curb the spread of the virus. Community safety awareness is higher, microblogging network will appear sooner virus warning messages, warning messages spread faster.
Key word: XSS worms; complex network; security awareness; active node; clicking Forward

致 谢
在此次毕业论文的完成过程中,我受到许多人的帮助与鼓励,正是他们的帮助与鼓励才使我能顺利地完成此次毕业设计。
其中最想感谢的是我的论文辅导老师:杨春霞杨老师。从论文的选择到论文的定稿,老师都给了我很大的帮助,在与杨春霞老师的接触中,让我影响最深的是她的严谨的科学态度和深厚的专业知识。在写论文的过程中,杨老师传授给了我许多的写作经验,当我设计遇到问题时,及时地帮我分析问题,引导我解决问题。在此,向杨老师表示由衷的感谢。还有我还要感谢郝微微学姐帮我校验论文,提出原来论文结构上的不合理处,这对我论文的修改有极大的帮助和促进作用。
同时我还想感谢我的舍友,他们在我完成毕业论文的过程中给予了很大的帮助,为我营造了良好的学习环境。在此向所有给予我关心、支持和帮助的人们表示衷心的感谢,对本文中所引用的文献作者表示诚挚的谢意!

附录:
#include
#include
#include
#include
#define N_siz 20000 // 微博用户总数
#define BA_m 5000 //每个节点连出的边数//
#define deg_max 500
#define lamda1 0.97 //入权值
#define lamda2 0.9 //出权值
#define cita 10 //阈值

int devo_hz=1000; //时步//时间
int YH_bu=1; //每个时间段
double outweight[N_siz]; //每个结点的出权重
double inweight[N_siz];
int outdeg[N_siz]; //每个结点的出度
int indeg[N_siz];
int state4[N_siz]; //用户核实警告信息时间//
int state3[N_siz]; //用户核实恶意链接信息时间//
int state2[N_siz]; //用户潜在的感染状态//
int state1[N_siz]; //用户在线状态//
int state[N_siz]; //用户感染状态//
double prob_chu2=0.008; //后期初始免疫比例//
double prob_chu=0.001; //自由传播过程中的初始感染比例//

/正太随机数的函数/
double gaussrand1(double miu1,double sigma1) //正太随机数//
{
static double V1, V2, S;
static int phase = 0;
double X;

if ( phase == 0 ) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;

V1 = 2 U1 - 1;
V2 = 2
U2 - 1;
S = V1 V1 + V2 V2;
} while(S >= 1 || S == 0);

X = V1 sqrt(-2 log(S) / S);
} else
X = V2 sqrt(-2 log(S) / S);

phase = 1 - phase;
return (abs((int)(miu1+sigma1*X)));
}

/指数函数1—-随机分配入权重/
double zhishurand1()
{
double R;
double x;
R = (double)rand() / RAND_MAX;
x=-log(R)/lamda1;

return x;
}
/指数函数2—-随机分配入权重/ */
double zhishurand2()
{
double R;
double x;
R = (double)rand() / RAND_MAX;
x=-log(R)/lamda2;

return x;
}
/结构体/
struct ha
{
int connect[BA_m]; //每个结点的最大连线数目
};
struct ha hua[N_siz]; //建立连边矩阵//

/生成网络/
void CCDF()
{
double R1,R2,weight;
int i,j,z,gg,hh;
gg=0;
hh=0;

  1. for(i=0;i<N_siz;i++) <br /> {<br /> R1=zhishurand1(); //指数随机数分配出权重//<br /> R2=zhishurand2(); //指数随机数分配入权重//<br /> outweight[i]=R1; //给结点i赋予出权重和入权重<br /> inweight[i]=R2;<br /> }
  2. <br /> //生成网络//<br /> for(i=0;i<N_siz;i++) //结点i和其他网络结点的关系连图<br /> {<br /> for(j=0;j<N_siz;j++)<br /> { <br /> weight=0;<br /> weight=outweight[i]+inweight[j];<br /> if((cita<weight)&&(i!=j)) // 结点i和结点j不是同一节点且权重大于阈值就链接两个结点<br /> {<br /> outdeg[i]++;<br /> indeg[j]++;<br /> gg=outdeg[i]-1;<br /> hua[i].connect[gg]=j;<br /> <br /> }<br /> }<br /> hh=outdeg[i]+1;<br /> for(z=hh;z<BA_m;z++)<br /> hua[i].connect[z]=-1;<br /> <br /> }<br />}

/爆发期函数/
int bavir1() //爆发期病毒数//
{
int i,j;
int q;
double y1,rr;
double r,R,R1,miu;
int a=0;

for(i=0;i {
if(state[i]==3)
a++;
}

  1. miu=0.5*(1-a/N_siz);
  2. <br /> for(i=0;i<N_siz;i++)<br /> {for(j=0;j<BA_m;j++)<br /> {q=hua[i].connect[j];<br /> if(q>-1)<br /> {/*if((state[i]==1)&&(state2[q]==0)) {r=(double)rand()/(double)RAND_MAX;y1=log(indeg[q]*g)/log(f);if(r<=1) {state2[q]=1;R1=gaussrand1();state3[q]=R1;}}*/ <br /> if((state[q]==1)&&(state2[i]==0)) {r=(double)rand()/(double)RAND_MAX;y1=gaussrand1(miu,0.3);/*y1=log(indeg[q])/log(f);*/if(r<=y1) {state2[i]=1;R1=gaussrand1(10.0,5.0);state3[i]=R1;}}<br /> }}}
  3. int w=0;<br /> for(i=0;i<N_siz;i++)<br /> {<br /> state3[i]--;<br /> if((state2[i]==1)&&(state3[i]==0))<br /> {<br /> state[i]=1;<br /> <br /> }<br /> <br /> }
  4. for(i=0;i<N_siz;i++)<br /> {<br /> if(state[i]==1)<br /> w++;<br /> }

return w; //计算机感染数//
}

/治愈期函数/
int bavir2() //治愈期病毒数//
{
int i,j;
int q;
double y1,rr;
double r,R,R1;
double r1,miu;

  1. int a=0;
  2. for(i=0;i<N_siz;i++)<br /> {<br /> if(state[i]==3)<br /> a++;<br /> }
  3. miu=0.5*(a/N_siz);
  4. for(i=0;i<N_siz;i++) //免疫状态转变//<br /> {<br /> for(j=0;j<BA_m;j++)<br /> {q=hua[i].connect[j];<br /> if(q>-1)<br /> {/*if((state[i]==3)&&(state2[q]!=3)) {r=(double)rand()/(double)RAND_MAX; y1=log(indeg[q]*g)/log(f);if(r<=y1) {state2[q]=3;R1=gaussrand1();state4[q]=R1;}}*/ <br /> if((state[q]==3)&&(state2[i]!=3)) {r=(double)rand()/(double)RAND_MAX; y1=gaussrand1(miu,0.3);/*y1=log(indeg[q])/log(f);*/if(r<=y1) {state2[i]=3;R1=gaussrand1(10.0,5.0);state4[i]=R1;}}<br /> }}}<br /> int v=0;<br /> for(i=0;i<N_siz;i++)<br /> {<br /> state4[i]--;<br /> if((state2[i]==3)&&(state4[i]==0))<br /> {<br /> state[i]=3; <br /> <br /> }<br /> if(state[i]==3)<br /> v++;<br /> <br /> } <br /> return v;<br />}

int main()
{
/FILE fp;
fp=fopen(“connect.txt”,”a”);/
FILE
fp;
FILE fp1;
FILE
cp;
FILE *fp2;
int i;
int t=0;
float shu=0;
int su=0;
int defsu=0;
int cishu;
int cishu1;
int cishu2;
int j;
double r;
int totaldeg;

  1. cishu=YH_bu*devo_hz;<br /> cishu1=0.12*cishu; //新增// <br /> cishu2=0.88*cishu; //新增//
  2. CCDF(); //生成网络//
  3. for(i=0;i<N_siz;i++) //用户查看病毒微博私信所用时间//<br /> {<br /> <br /> state3[i]=10;<br /> <br /> } <br /> for(i=0;i<N_siz;i++) //用户查看警告所用时间//<br /> {<br /> <br /> state4[i]=10;<br /> <br /> }
  4. /////////////////////////////////////////// <br /> for(i=0;i<N_siz;i++)<br /> {<br /> r=(double)rand()/(double)RAND_MAX;<br /> if(r<=prob_chu) {state[i]=1;state2[i]=1;su++;} //&&(deg[i]>2*BA_m)//<br /> else {state[i]=0;state2[i]=0;}<br /> } //新增 设置初始时已感染的计算机//
  5. fp=fopen("infected.txt","a");<br /> fp1=fopen("defected.txt","a");<br />// fp2=fopen("1.txt","a");<br /> fprintf(fp,"%d\n",su);
  6. for(i=1;i<=cishu1;i++)<br /> {
  7. <br /> su=bavir1(); //病毒传播//<br /> t=t+su;
  8. //printf("%d\n",i);<br /> fprintf(fp,"%d\n",su);<br /> }<br /> ///////////////////////////////////////////// <br /> <br /> <br /> for(i=0;i<N_siz;i++)<br /> {<br /> r=(double)rand()/(double)RAND_MAX;<br /> if(r<=prob_chu2) {state[i]=3;state2[i]=3;} //&&(deg[i]>2*BA_m)//<br /> else {state[i]=state[i];state2[i]=state2[i];} //设置后期免疫用户//<br /> }
  9. for(i=1;i<=cishu2;i++)<br /> {
  10. defsu=bavir2(); //病毒传播//<br /> su=bavir1();<br /> t=t+su;
  11. //printf("%d\n",(i+cishu1));<br /> fprintf(fp1,"%d\n",defsu);<br /> fprintf(fp,"%d\n",su);<br /> }<br /> fclose(fp);<br /> fclose(fp1);<br />}