一种社交网络恶意代码传播的仿真系统及仿真方法转让专利

申请号 : CN201210129998.6

文献号 : CN102752279B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王蕊贾晓启和亮

申请人 : 中国科学院信息工程研究所

摘要 :

本发明涉及一种社交网络恶意代码传播模型的仿真系统及仿真方法。通过一服务器构建多个虚拟机,各虚拟机之间网络连接;根据一社交网络拓扑数据生成社交网络图;根据一设定的恶意代码初始感染策略通过所述虚拟机计算得到初始感染节点信息;根据初始感染节点的后续节点及其节点属性通过所述虚拟机按照给定的传播感染判定规则计算得到经一次传播后被感染的新节点,再根据该新节点的后继节点得到下次传播后被感染的新节点,直至在某次传播后没有新节点被感染。本发明涵盖了社交网络恶意代码的传播模型中可能出现的各种变量,利用分布式计算方式,实现社交网络恶意代码传播模型的检验和修正,对社交网络恶意代码防御具有重要的支撑作用。

权利要求 :

1.一种社交网络恶意代码传播的仿真系统,包括一服务器,多个由所述服务器构建的虚拟机,各虚拟机之间网络连接,其特征在于,还包括:一个或多个部署于所述虚拟机上的存储模块,存储一根据社交网络拓扑数据生成的社交网络图G=(V,E,VA),其中V代表社交网络用户节点集合,E代表社交网络用户节点之间的关系,VA代表社交网络用户节点属性,所述节点属性包括节点ID,感染状态,登录状态以及消息响应概率;

一计算模块,包括

一初始感染子计算模块,以根据一设定的恶意代码初始感染策略通过所述虚拟机计算被初始感染的节点集合,所述计算结果存储于所述存储模块;

一传播感染子计算模块,以根据被初始感染的节点的后继节点及其节点属性通过所述虚拟机按照给定的传播感染判定规则计算在传播后被感染的节点集合,直至没有新的节点被感染;所述计算结果存储于所述存储模块。

2.如权利要求1所述的仿真系统,其特征在于,所述计算模块还包括一统计计算子模块,以提取恶意代码的传播感染信息。

3.如权利要求1或2所述的仿真系统,其特征在于,所述传播感染判定规则为:在某一时刻,如果感染节点将包含恶意代码的消息传播到其后继节点,该时刻后继节点中的登录节点的感染概率大于设定的值,则判定该登录节点被感染,所述感染概率根据节点登录状态和消息响应概率计算。

4.如权利要求1或2所述的仿真系统,其特征在于,所述虚拟机构成分布式存储环境和分布式计算环境。

5.如权利要求4所述的仿真系统,其特征在于,所述分布式计算环境为MapReduce分布式计算环境。

6.一种社交网络恶意代码传播的仿真方法,其步骤包括

1)通过一服务器构建多个虚拟机,各虚拟机之间网络连接;

2)根据一社交网络拓扑数据生成社交网络图G=(V,E,VA),其中V代表社交网络用户节点集合,E代表社交网络用户节点之间的关系,VA代表社交网络用户节点属性,所述节点属性包括节点ID,感染状态,登录状态以及消息响应概率;

3)根据一设定的恶意代码初始感染策略通过所述虚拟机计算得到初始感染节点信息;

4)根据初始感染节点的后续节点及其节点属性通过所述虚拟机按照给定的传播感染判定规则计算得到经一次传播后被感染的新节点,再根据该新节点的后继节点得到下次传播后被感染的新节点,直至在某次传播后没有新节点被感染。

7.如权利要求6所述的仿真方法,其特征在于,提取恶意代码的传播感染信息,所述传播感染信息包括被感染的节点信息、传播感染时间、传播曲线。

8.如权利要求6或7所述的仿真方法,其特征在于,所述传播感染判定规则为:在某一时刻,如果感染节点将包含恶意代码的消息传播到其后继节点,该时刻后继节点中的登录节点的感染概率大于设定的值,则判定该登录节点被感染,所述感染概率根据节点登录状态和消息响应概率计算。

9.如权利要求6或7所述的仿真方法,其特征在于,所述虚拟机构成分布式存储环境和分布式计算环境。

10.如权利要求6或7所述的仿真方法,其特征在于,根据在实际社交网络数据库中获取的一定时间之内的用户实际登录情况来为所述登录状态赋值。

11.如权利要求8所述的仿真方法,其特征在于,根据当前节点的登录状态、消息响应概率和其前驱节点中被感染的个数来计算其感染概率。

12.如权利要求7所述的仿真方法,其特征在于,根据一社交网络恶意代码传播模型确定上述节点属性及传播感染判定规则,根据所述恶意代码的传播感染信息与实际恶意代码传播的信息进行对照,以检验所述模型。

13.如权利要求12所述的仿真方法,其特征在于,根据检验结果,对所述模型进行修正。

说明书 :

一种社交网络恶意代码传播的仿真系统及仿真方法

技术领域

[0001] 本发明属于网络安全技术领域,具体涉及一种社交网络恶意代码传播模型仿真系统及仿真方法。

背景技术

[0002] 社交网络(Social Network Service,SNS)的大规模流行,使其成为很多不法分子的目标,将其作为获取隐私信息的途径和恶意代码传播的主要平台。据安全软件公司Webroot的调查显示,社交网站用户更容易遭遇财务信息丢失、身份信息被盗和恶意软件感染等安全威胁。
[0003] 社交网络的恶意代码多次爆发,造成巨大影响:2005年在MySpace上爆发了第一个SNS蠕虫——Samy蠕虫,在20小时内感染了百万用户;2008年的Koobface通过社会工程学的方法在Facebook上迅速爆发,该恶意代码的变种直到如今还对社交网络存在危害;2009年的Mikeyy蠕虫攻击了Twitter网站;2010年Clickjacking蠕虫再次攻击Facebook;2011年6月,国内的新浪微博遭到恶意代码攻击,其在80分钟内感染了3万多用户。因此,作为互联网上最为重要应用服务之一的社交网络,由于其覆盖力和传播影响力,提高其恶意代码防御能力逐渐成为学术界和产业界共同关注的焦点。
[0004] 当前社交网络恶意代码根据攻击技术的不同主要可分为如下两大类:第一类,基于XSS攻击的恶意代码,例如已出现的Samy、Yamanner、Pink Floyd以及HelloSamy均属于此类,该类恶意代码的显著特点是系统无关性,即由于使用的是XSS技术,因此不受操作系统的限制。第二类,基于可执行程序的恶意代码,例如著名的Koobface,该类恶意代码的特性是不局限于特定社交网站,这是由于其利用了可执行程序而非特定网站特定漏洞,虽然本身受到操作系统的影响,但却可以在多个社交网站中传播。
[0005] 社交网络由于其特殊的网络结构特性及社会工程学特性,恶意代码在其中的感染和传播也有着不同于传统恶意代码的特点。
[0006] 影响社交网络恶意代码传播的因素包括:
[0007] (1)拓扑相关特性:社交网络恶意代码的传播发生在联系人之间,传播路径依赖于人际关系网络,即具有拓扑相关特性。
[0008] (2)用户行为影响:社交网络恶意代码能否实现感染及传播,和用户行为有着直接的关联,例如用户点击概率直接决定了恶意代码能否实现感染和继续传播。
[0009] (3)初始感染情况:初始感染情况的不同会影响到恶意代码传播的速度和扩散的情况,包括初始感染数量,以及被初始感染的用户情况(其联系人的多少及活跃度)等。
[0010] 如何有效地对社交网络恶意代码进行特性分析是社交网络恶意代码防御研究的基础和前提。不同的研究者对社交网络恶意代码的特性尤其是影响其传播感染的因素进行研究,构建不同的模型对其传播和感染进行描述,例如吉林大学刘衍珩教授团队提出了微观节点上的基于用户安全意识的行为博弈模型,重庆三峡学院的陈晓峰等基于用户习惯建立了社交网络访问模型,从微观和宏观两个方面提出了社交网络蠕虫模型。
[0011] 因为可能会造成严重后果,不能将这些有关恶意代码传播的理论在实际的社交网络中进行验证,这些研究虽在理论上取得了很大的突破,但目前仍没有一个十分有效的检验方法可对这些研究成果进行验证。
[0012] 目前已有的网络恶意代码模型仿真及检验方法主要可分为三类:
[0013] (1)基于数学解析方法,主要包括连续和离散数学解析方法。如利用微分方程的形式或离散迭代方程的形式对给出的恶意代码传播模型进行仿真检验。虽然利用数学解析方法的仿真检验技术可以不受规模的限制,但在研究在线社交网络蠕虫过程中,需要考虑单个节点处理(如用户点击概率以及用户行为等)的影响,此方法无法满足该需求。
[0014] (2)基于数据包级的仿真检验,主要包括局部和全局仿真检验。通常在网络仿真工具的基础上提出。数据包级的方法不能检验用户间关系和用户行为,且消耗系统资源过大,也无法满足在线社交网络的仿真检验需求。
[0015] (3)基于网络测试床技术。此类方法一般在某种测试床的基础上提出相应的恶意代码传播模型仿真检验系统。基于测试床技术虽然可以检验单个节点处理过程,但由于消耗系统资源过大,通常只处理中小型规模的网络。
[0016] 可见,当前在对社交网络恶意代码传播模型的研究成果进行实验验证时,所采用的数据大都是小型数据,比如人为生成的小规模网络数据,或小型的社交网络。然而,当前实际社交网络的规模已逐步扩大,目前国内外著名社交网络的用户数量均已过亿,并以较快的速度继续增长。
[0017] 针对社交网络特性,构建有效的社交网络恶意代码仿真系统,特别是构建可适应大规模网络的有效社交网络恶意代码仿真系统,以提供一个社交网络恶意代码传播的仿真环境对各类模型进行仿真,在具备大规模仿真能力的同时,保证仿真精度,实现模型的检验,以便进一步研究社交网络恶意代码传播的特性及防御方法,是当前社交网络恶意代码防御研究中首先需要解决的问题。

发明内容

[0018] 针对社交网络恶意代码感染及传播特性研究的模型成果,本发明的目的在于提出一种社交网络恶意代码传播的仿真系统及仿真方法,可对社交网络中的恶意代码传播模型进行仿真,进而和实际情况进行对比实现模型检验。
[0019] 本发明的社交网络恶意代码传播的仿真系统,包括一服务器,多个由所述服务器构建的虚拟机,各虚拟机之间网络连接,还包括:
[0020] 一个或多个部署于虚拟机上的存储模块,与服务器数据连接,存储一根据社交网络拓扑数据生成的社交网络图G=(V,E,VA),其中V代表社交网络用户节点集合,E代表社交网络用户节点之间的关系,VA代表社交网络用户节点属性,所述节点属性包括节点ID,感染状态,登录状态以及消息响应概率;
[0021] 一计算模块,包括
[0022] 一初始感染子计算模块,以根据一设定的恶意代码初始感染策略通过所述虚拟机计算被初始感染的节点集合,所述计算结果存储于所述存储模块;
[0023] 一传播感染子计算模块,以根据被初始感染的节点的后继节点及其节点属性通过所述虚拟机按照给定的传播感染判定规则计算在传播后被感染的节点集合,直至没有新的节点被感染;所述计算结果存储于所述存储模块。
[0024] 所述计算模块还包括一统计计算子模块,以提取恶意代码的传播感染信息。
[0025] 所述传播感染判定规则可以是:在某一时刻,如果感染节点将包含恶意代码的消息传播到其后继节点,该时刻后继节点中的登录节点的感染概率大于设定的值,则判定该登录节点被感染,所述感染概率根据节点登录状态和消息响应概率计算。
[0026] 所述虚拟机构成分布式存储环境和分布式计算环境。
[0027] 本发明的社交网络恶意代码传播的仿真方法,其步骤包括
[0028] 1、通过一服务器构建多个虚拟机,各虚拟机之间网络连接;
[0029] 2、根据一社交网络拓扑数据生成社交网络图G=(V,E,VA),其中V代表社交网络用户节点集合,E代表社交网络用户节点之间的关系,VA代表社交网络用户节点属性,所述节点属性包括节点ID,感染状态,登录状态以及消息响应概率;
[0030] 3、根据一设定的恶意代码初始感染策略通过所述虚拟机计算得到初始感染节点信息;
[0031] 4、根据初始感染节点的后续节点及其节点属性通过所述虚拟机按照给定的传播感染判定规则计算得到经一次传播后被感染的新节点,再根据该新节点的后继节点得到下次传播后被感染的新节点,直至在某次传播后没有新节点被感染。
[0032] 本发明还提取恶意代码的传播感染信息,所述传播感染信息包括被感染的节点信息、传播感染时间、传播曲线。
[0033] 本发明的主要内容如下:
[0034] 1、利用有向图描述社交网络中的人际关系构成的拓扑结构;
[0035] 2、将用户行为因素情况抽象为节点属性,生成基于节点属性的社交网络图描述,并在此基础上定义传播相关的节点集合;
[0036] 3、生成基于社交网络图的恶意代码传播过程描述;
[0037] 4、将社交网络恶意代码的整个传播感染过程分为初始感染阶段和多次传播阶段和感染阶段的迭代过程,并生成相应的分布式仿真方法;
[0038] 5、将所需验证模型的各个影响因素输入到相应的变量中进行仿真计算,通过仿真结果和实际数据的对比,验证模型中各因素如公式等的准确性。
[0039] 基于本发明的内容,本发明的步骤如下:
[0040] 1)基于有向图,生成社交网络人际关系构成的拓扑结构的社交网络图描述;
[0041] 2)将影响社交网络恶意代码传播的用户因素——包括用户登录情况和用户响应消息情况概率等形式抽象为节点属性,生成基于节点属性的社交网络图描述,在此基础上,定义节点的前驱节点集合、后继节点集合、初始感染集合、感染集合和预感染集合;
[0042] 3)基于上述图描述,生成基于离散时间的社交网络恶意代码传播过程描述;
[0043] 4)将社交网络恶意代码的整个传播感染过程等价为初始感染阶段和多次传播阶段和感染阶段的迭代过程,并生成相应的分布式仿真方法;
[0044] 5)将所需验证模型中各元素及计算方法对应输入到本方法相应的变量及运算中,进行恶意代码传播过程的仿真计算,通过仿真结果数据和实际数据的对比,验证模型中各因素如公式等的准确性。
[0045] 在步骤1)中,根据社交网络人际关系,生成相应的社交网络图:将社交网络中人际关系构成的拓扑结构(社交网络人际关系的来源包括两种,一种来源于实际社交网络的数据,另一种是研究者根据需要构造的社交网络的人际关系),以图G=(V,E)的形式描述,其中V代表用户节点集合,E代表用户关系集合,用户关系集合是有向的。
[0046] 在步骤2)中,基于节点属性的社交网络图描述方法为:在步骤1)生成的社交网络图G的基础上,为每个节点添加属性信息,生成基于节点属性的社交网络图描述G=(V,E,VA),其中VA代表节点属性,包括节点ID,感染状态,登录状态以及消息响应概率。
[0047] 在步骤3)中,恶意代码传播过程中采用了离散时间模型,是指在某一时刻t,如果感染节点将包含恶意内容的消息传播到其后继节点,则在该时刻,后继节点中的登录用户以概率p响应,则为感染;下一时刻,重复传播及感染过程。
[0048] 在步骤3)中,基于图描述的社交网络恶意代码传播算法流程是:
[0049] (1)为每一个节点赋属性初始值;
[0050] (2)根据不同的感染策略生成初始感染集合;
[0051] (3)对于感染集合中的节点,根据用户关系将其后继节点集合中的节点加入预感染集合中;
[0052] (4)对于预感染集合中的节点,查看其登录状态,若处于登录状态,根据用户点击概率和在该时刻收到的恶意消息数量计算其感染概率;
[0053] (5)将感染节点加入感染集合;
[0054] (6)重复(3)~(5),直到没有新节点可被感染。
[0055] 在步骤4)中,恶意代码传播过程的分布式仿真方法是指:将社交网络恶意代码的整个传播感染过程等价为初始感染阶段和多次传播阶段和感染阶段的迭代过程,将其中的初始感染过程抽象为一次初始感染计算任务,一次传播和感染过程抽象为传播感染计算任务,此外,利用统计计算任务传播感染情况,在此基础上,结合云计算中MapReduce分布式计算技术(具体技术细节可参照文档《MapReduce:Simplified Data Processing on Large Clusters》)实现高效分布式计算。相应的,初始感染计算中利用一次Map-Reduce任务,传播计算中利用一次Map-Reduce任务,统计计数中利用一次Map-Reduce任务;
[0056] 在步骤5)中,仿真数据与实际数据的对比方法是:可根据需求设定时间间隔,在各个时间的仿真结果的感染情况与实际恶意代码传播获取的数据进行对比,并可在此基础上调节模型中计算因子再次计算,从而还可达到修正模型的作用。
[0057] 本发明基于图论生成基于节点属性的社交网络图,将涉及的用户行为因素抽象为节点属性,用有向图的方式描述用户关系拓扑,由此可综合检验社交网络的拓扑结构和用户行为相关的因素,形成离散时间的社交网络恶意代码仿真和模型检验架构。在此基础上,利用云计算中MapReduce分布式计算技术构造相应的算法分阶段模拟社交网络恶意代码的传播,通过迭代的方式来对整个传播过程实现仿真。
[0058] 本方法涵盖了对拓扑结构及用户行为因素等信息和关键过程的描述,从而保证了对模型中构建的各类因素的检验。同时,本方法基于MapReduce的分布式并行计算模式,可实现大规模社交网络恶意代码的仿真,从而实现真实网络规模下对模型的检验。
[0059] 本发明的优点包括:
[0060] 1、本发明提取社交网络典型恶意代码的共性传播特征流程构建传播描述,在此基础上构建的仿真系统及仿真方法具有很好的普适性。
[0061] 2、本发明基于有向图描述社交网络人际关系形成的拓扑结构,可描述单向及双向两种关系结构,从而对恶意代码传播行为的描述更加准确。
[0062] 3、本发明充分考虑了影响恶意代码传播的各个用户因素及社交网络拓扑结构,可将各类模型中包含的变量均加以检验,比较全面地体现了社交网络恶意代码的传播特性。
[0063] 4、本发明使用分布式计算方法进行仿真计算,具有大规模社交网络数据计算能力。
[0064] 5、本发明在检验模型的过程中,检验者可根据数据对比情况调节变量及计算公式再次检验查看结果,可实现模型的修正。
[0065] 综上,本发明提出的社交网络恶意代码传播模型检验方法,较全面地涵盖了社交网络恶意代码的传播模型中可能出现的各种变量,并利用分布式计算方式,为实现社交网络恶意代码传播模型的检验和修正具有重要作用,从而对社交网络恶意代码防御具有重要的支撑作用。

附图说明

[0066] 图1为本发明仿真系统结构框图
[0067] 图2为本发明仿真方法流程图;
[0068] 图3为本发明分布式计算仿真流程图。

具体实施方式

[0069] 下面结合附图详细说明本发明的技术方案:
[0070] 本发明的仿真系统如图1所示,基于MapReduce技术实现本系统。在硬件层使用虚拟化技术,用虚拟主机来代替传统的物理主机,构建多个虚拟主机,并以以太网连接。存储模块中,使用分布式存储环境,存储输入的社交网络图拓扑数据。基于MapReduc部署分布式计算环境,将社交网络蠕虫传播换分为初始感染、传播感染和统计计算三个子任务模块,并为这三个预先划分好的任务内容分别定义映射与规约计算模块,然后根据定义的任务顺序,将此顺序提交到MapReduce底层分布式计算环境中。
[0071] 在本实施方式中,通过在MapReduce技术的开源实现-Apache Hadoop(以下简称Hadoop)的基础上设计并实现了本系统。通过开源的虚拟化软件Oracle Virtualbox将高性能Dell R910服务器虚拟出多个主机节点,并以此作为底层的分布式硬件环境。使用Hadoop分布式文件系统(Hadoop Distributed File System)作为分布式存储环境,Hadoop MapReduc部署分布式计算环境。
[0072] 如图2所示,本发明的仿真方法,包括步骤:
[0073] 1.基于有向图,生成社交网络人际关系构成的拓扑结构的社交网络图描述[0074] 在社交网络之中,用户关系分为有向和无向两种。有向关系是指用户可以单方面关注一方收到一方的消息,例如新浪微博;无向关系是指只有互为联系人的情况存在,类似Facebook,人人网等。本发明为了能同时表示这两种情况,使用有向图对社交网络中的人际关系拓扑结构进行描述。具体的,本发明使用G=(V,E)来描述社交网络人际关系拓扑结构,其中V表示用户节点集合{vi},而E表示用户节点之间的关系集合{en|en=,vi≠vj},其中en=表示vj可收到vi的消息。则对于无向关系的情况,表示为两条有向边es=和et=的方式即可处理。
[0075] 2.将影响社交网络恶意代码传播的用户因素抽象为节点属性,生成基于节点属性的社交网络图描述,并在此基础上定义节点的前驱节点集合、后继节点集合、初始感染集合、感染集合和预感染集合。
[0076] 对于影响社交网络恶意代码传播感染的用户因素抽象为节点属性信息,添加到社交网络图G中。本发明中,影响社交网络恶意代码传播感染的主要用户因素包括用户登录情况和用户消息响应情况,根据在实际社交网络数据库中获取的一定时间之内的用户实际登录情况,消息响应情况以概率的形式行进描述。
[0077] 在生成的社交网络图G的基础上,为每个节点添加属性信息,生成基于节点属性的社交网络图描述G=(V,E,VA)。其中,V表示用户节点集合{vi},E表示用户之间的关系集合{en|en=,vi,≠vj},而VA则表示用户的属性信息。本发明中的节点属性信息包括节点ID,登录状态、消息响应概率和感染状态。
[0078] 以下为具体说明:
[0079] (1)节点ID表示用户在社交网络中的唯一标识,本发明将其取值范围设为正整数集,满足 均有IDi≠IDj,其中i=1,2,...|V|,j=1,2,...|V|。
[0080] (2)登录状态OS.t,用来表示用户在某一时刻是否处于登录状态。若用户平均在时间nt登录一次,则通过t=n开始计算。即某一时刻登录后,t开始从n递减计数,从n-1开始处于非登录状态到1时,在下一时刻重新由n计数且处于登录状态。并用vi.os.t表示节点vi的登录状态。
[0081] (3)消息响应概率P,表示用户在接收到消息时对其进行响应的概率,也即用户登录时恶意代码传播过程中的感染概率,这里用vi.p表示节点vi的响应概率。
[0082] (4)感染状态S,用来表示用户在恶意代码传播过程中的感染状态。本发明中用户状态分为未感染、预感染和已感染三种。为了表述方便,以vi.s=0表示未感染,vi.s=1表示预感染,vi.s=2表示已感染。
[0083] 为了描述传播状态,本发明提出在基于节点的属性图G上的几类节点集合:
[0084] (1)前驱节点集合PS(vi):表示所有与节点vi存在有向边∈E的节点vj集合,即PS(vi)={vj|∈E,vj∈V};
[0085] (2)后继节点集合SS(vi):表示所有与节点vi存在有向边∈E的节点vj集合,即SS(vi)={vj|∈E,vj∈V};
[0086] (3)初始感染集合IIS:是指在某种初始化策略g的作用下感染的用户集合;
[0087] (4)感染集合IS:表示在某时刻所有已感染节点的集合,即IS={vi|vi.s=2,vi∈V};
[0088] (5)预感染集合PIS:表示由感染集合IS中节点的后继节点组成的可能被感染的节点集合,并将其中节点的状态置为1,即PIS={vi|vi.s=1,vi∈V}。用NPIS-i表示某一节点vi,的前驱节点中被感染节点的个数,即集合{vj|vj∈PS(vi),vj∈IS}中vj的个数。
[0089] 3.在以上图描述的基础上,生成基于离散时间的社交网络恶意代码传播过程描述;
[0090] 通过分析,社交网络恶意代码传播感染的具体形式有所不同,但可以提取其共性的传播特征流程,该传播特征步骤是:(1)初始感染:恶意代码以某种策略感染一些用户;(2)传播:利用某种机制将包含恶意内容的消息发送给感染节点的联络人;(3)感染:联络人以某种概率响应消息。在恶意代码传播过程中,以步骤(1)、重复步骤(2)(3)的顺序实现传播感染,直到没有新用户被感染。
[0091] 本发明在描述恶意代码传播过程中采用了离散时间模型,即感染及传播过程均在某一时刻t内发生。具体是指,在某一时刻t,如果感染节点将包含恶意内容的消息传播到其后继节点,则在该时刻,后继节点中的登录用户以概率P响应,则为感染;下一时刻,重复传播及感染过程。本发明中另一个与离散时间密切相关的是登录情况OS.t,在社交网络中根据实际情况获取用户登录周期nt,当用户处于登录状态时,t从n开始递减计数,每过一个单位时刻减1,直至1结束,再次从n循环。为了模拟实际情况,本发明对于初始时刻t的登录状态,采用随机生成的方式,确定t0时刻vi.os.t=1的节点。对于某用户vi,其登录情况vi.os.t的取值计算方法如下:
[0092]
[0093] 本发明将社交网络恶意代码的传播过程分为初始感染和传播阶段和感染阶段。
[0094] 初始状态,所有集合为空集,即 初始感染阶段,根据恶意代码初始感染策略g得到初始感染集合IISg,对 将vi.s置2,并将其添加至感染集合IS;
[0095] 传播阶段,在时刻tn,对 根据用户关系集合E获取其后继节点集合SS(vi),将SS(vi)中满足vj.s=0的节点vj的状态置1,并添加到预感染集合PIS中。如果根据集合IS中的节点vi获取不到任何满足vj.s=0条件的后继节点,则传播结束。此外,由于多个已感染节点有可能将恶意消息传播到同一个节点,本发明在集合PIS定义中的NPIS-i来记录节点vj在某时刻接收恶意消息的次数。
[0096] 感染阶段,对于PIS集合中的节点,查看其登录状态,若vi.os.t=1,则根据感染概率计算公式计算其感染概率。此时,设定随机数生成器生成参照数T,其中T∈[0,1],如果pi>=T,则将vi从PIS中删除,置vi.s=2,并将其添加至感染集合IS中。否则,不改变其状态。若vi.os.t=1,说明该节点在此时刻处于非登录状态,不进行处理。
[0097] 感染阶段完成后,更新感染集合IS及预感染集合PIS,从而开始下一次传播、感染的迭代过程。如果在任意一次迭代过程中,预感染集合PIS为空,则表明已经再没有可能被感染的节点,此时迭代过程结束,即恶意代码传播过程结束。
[0098] 4.将社交网络恶意代码的整个传播感染过程分为初始感染阶段和多次传播阶段和感染阶段的迭代过程,并生成相应的分布式仿真方法;
[0099] 根据上述步骤给出的社交网络恶意代码传播过程描述,本发明将社交网络恶意代码的传播过程描述为一次初始感染和多次传播、感染迭代的过程。据此,将整个仿真过程分解为三个分布式计算任务:将其中的初始感染过程抽象为一次初始感染计算任务,一次传播和感染过程抽象为传播感染计算任务,此外,利用统计计算任务传播感染情况。
[0100] 在分布式计算方法上,本发明结合云计算中MapReduce分布式计算技术(具体技术细节可参照文档《MapReduce:Simplified Data Processing on Large Clusters》)实现高效分布式计算。根据上述分解的三个任务。相应的,初始感染计算中利用一次Map-Reduce任务,传播计算中利用一次Map-Reduce任务,统计计数中利用一次Map-Reduce任务,然后根据每一个任务需要完成的运算定义各自的map和reduce方法;最后将三个任务依照恶意代码传播过程描述组合来仿真整个传播过程。利用MapReduce运算要将需处理的值转化为的形式。
[0101] 初始感染任务完成初始化过程和初始感染过程。在map方法中可以对每一个社交网络图描述中的(IDi,IDj)记录进行初始化工作,即把(IDi,IDj)修改为(IDi-A,IDj-A),A为属性值,具体地,即(IDi-e-vi.os.t-vi.p-vi.s,IDj-e-vj.os.t-vj.p-vj.s),如前文所属,分别代表相连边,登录情况,消息响应概率和感染状态。而在reduce方法中,将每个Map方法收集的key及其对应的value的属性A赋值,对于初始感染状态,假设选择vi为初始感染节点,则把所有包含IDi的记录,即(IDi-A,IDj-A)或者(IDj-A,IDi-A)修改为(IDi-e-vi.os.t-vi.p-2,IDj-e-vj.os.t-vj.p-0)或者(IDj-e-vj.os.t-vj.p-0,IDi-e-vi.os.t-vi.p-1)。
[0102] 传播感染计算任务完成传播过程中的一次传播和感染过程的迭代。其中传播阶段的计算利用了Map方法,将感染集合IS中节点的后继节点集合SS(vi)中满足vi.s=0即未感染的节点加入预感染集合PIS中,则此时vi.s=1,即对于IDi-e-vi.os.t-vi.p-2的情况,将其中e包含的边对应的vj的属性值IDj-e-vj.os.t-vj.p-0中的状态修改为1,即IDj-e-vj.os.t-vj.p-1,对于所有IDj-e-vj.os.t-vj.p-1的节点,转化为新的。在Reduce方法中,根据Map方法转化生成的,配合统计计算任务(见下文)中的NPIS-i及恶意消息条数,对应需检验的模型中的计算方式,通过前述步骤3中将计算的概率结果与随机生成的参照数T比对的方法,判断vi.s的值是2或者0。然后将vi.s=2节点加入相应的感染集合。
[0103] 统计计数任务完成两部分工作,一是协助Infect_Job完成“全局更新”,另一个工作完成对新感染节点和节点接受恶意消息条数NPIS-i的统计工作。其中“全局更新”工作是当一次感染过程完成后,需要将所有相应的数据实现更新,由于MapReduce底层并行处理中不提供通信机制实现节电状态的全局更新功能,需要构建相应的流程进行更新。统计工作中新感染节点统计是在一次传播感染完成后统计所有vi.s=2的节点的个数,节点接受恶意消息条数NPIS-i的统计则是对于vi.s=1的节点,统计其某一时刻前驱节点集合中已感染节点,即会向本节点发出恶意消息的节点个数。
[0104] 5.将所需验证模型的各个影响因素(包括用户登录状态、消息响应概率和传播感染判定算法)输入到相应的变量中进行仿真计算,通过仿真结果和实际数据的对比,验证模型中各因素如公式等的准确性。
[0105] 将所需验证的模型中所包含各个变量和计算方法对应添加到本发明中的各个变量及计算中,例如将模型中的登录情况对应到变量vj.os.t中,消息响应概率对应到P中,感染计算方法对应到仿真计算阶段的传播感染计算任务中的Reduce阶段的计算等。
[0106] 根据以上描述及仿真方法,对所需验证的模型中的变量和方法进行恶意代码传播仿真计算,可根据具体需求,对照实际恶意代码传播的数据,在某些固定时间得到的感染结果、传播情况(主要包括感染数量和感染节点),以及传播曲线进行对比,以检验所需验证的模型中的各个变量和计算公式是否描述准确,同时,利用本方法可随时调整模型中的变量及计算方式,从而实现修正模型的目的。
[0107] 本发明根据以上方法仿真恶意代码在社交网络的传播过程,根据不同的初始感染策略,登录情况以及消息响应概率,接收消息状况等,可检验不同模型在不同情况下的恶意代码传播情况。
[0108] 尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。