《一种联合计算架构下的海量病毒报告分析方法.pdf》由会员分享,可在线阅读,更多相关《一种联合计算架构下的海量病毒报告分析方法.pdf(14页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103679023 A (43)申请公布日 2014.03.26 CN 103679023 A (21)申请号 201310471339.5 (22)申请日 2013.10.10 G06F 21/56(2013.01) (71)申请人 南京邮电大学 地址 210023 江苏省南京市亚东新城区文苑 路 9 号 (72)发明人 徐小龙 徐佳 李千目 孙雁飞 王新珩 杨庚 毕朝国 邱国霞 杨宝杰 (74)专利代理机构 南京知识律师事务所 32207 代理人 汪旭东 (54) 发明名称 一种联合计算架构下的海量病毒报告分析方 法 (57) 摘要 本发明公开了一种联合计算架构下。
2、的海量病 毒报告分析方法, 该方法解决了云安全系统不依 赖大规模的网络终端节点提交病毒报告来监测网 络中的各种恶意代码 ; 本发明提出联合计算架构 下的海量病毒报告分析机制, 充分利用服务器和 大规模终端构成的联合计算能力, 将针对海量病 毒报告的分析任务进行有效的分割, 并通过移动 代理有序部署到服务器端和大规模终端节点上来 执行, 从而有效降低服务器端的负载, 提高了系统 的病毒报告处理效率。 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书8页 附图3页 (10)申请公布号 CN 。
3、103679023 A CN 103679023 A 1/2 页 2 1. 一种联合计算架构下的海量病毒报告分析方法, 其特征在于, 所述方法包括如下步 骤 : 阶段一 : 联合制造 RSA 公钥 / 私钥对 ; 步骤 1 : 系统服务器端通过 “心跳机制” 来掌握终端节点的在线情况, 设当前环境中有 N 个在线的终端节点 ; 步骤2 : 服务器选择其中的M个 (MN) 终端节点, 向其中的每一个节点发放一个任务, 在区间 (1, 21024) 的不同子区间上生成 k 个 1024bit 的素数 ; 步骤 3 : 终端节点各自将求得的大素数集合返回至服务器端 ; 步骤 4 : 服务器对终端节点。
4、发回的大素数集合进行随机抽样素性检验, 并将通过抽样 检验的素数集合放到素数池中备用 ; 步骤 5 : 服务器反复从素数池中选取不同的两个素数 p 和 q, 用以制造 RSA 公钥 / 私钥 对 ; 阶段二 : 病毒报告分析任务分发 ; 步骤 1 : 系统服务器端选择 M 个 (M N) 在线的终端节点, 作为组 1 节点, 服务器将 病毒报告集合以时间为序均匀分成 M 个子集合, 并分别配备不同的私钥 d, n ; 步骤 2 : 服务器端将病毒报告子集合、 代码和相应的私钥 d, n 一同发给终端节点 ; 步骤 3 : 服务器再随机选取 M 个终端节点, 作为组 2 节点, 将同样的病毒报告。
5、子集合和 私钥 d, n 发给它们 ; 所述步骤可选, 即在对结果精确度要求不高的应用中可省略 ; 步骤 4 : 终端节点收到病毒报告子集合与分析代码后, 对报告进行分析 ; 终端节点根据病毒报告子集合、 来自不同节点的相同报告的数量和提供病毒报告的节 点信誉度来综合计算出局部病毒报告重要度 ; 步骤 5 : 终端节点完成任务后, 终端节点对当次任务执行结果进行 hash 运算后再利用 私钥 d, n 进行签名, 然后发给服务器, 以提供给服务器来验证结果来源及正确性 ; 阶段三 : 任务结果的验证、 汇总与排序 ; 步骤 1 : 服务器对返回的分析结果用对应的公钥 e, n 进行验证, 若通。
6、过验证则将数据 放入数据队列 1 ; 步骤 2 : 服务器将队列 1 中分配得到相同私钥 d, n 的组 1 和组 2 终端节点提交的数 据结果的 hash 值进行比对, 以验证节点提交数据结果的正确可信性 ; 若 hash 值是相同的, 则将结果放入数据队列 2 ; 若 hash 值不同, 则需要将该子任务重 新发送至另一个随机选择的终端节点, 也可以在服务器端直接执行, 并对返回的结果和之 前未验证通过两组数据分别进行比较 ; 反复进行该步骤, 直至结果匹配为止, 取匹配的那个 结果 ; 步骤 3 : 服务器对数据队列 2 中的局部病毒报告重要度进行全局汇总, 从而统计出全局 病毒报告重要。
7、度, 并按重要度进行排序。 2. 根据权利要求 1 所述的一种联合计算架构下的海量病毒报告分析方法, 其特征在 于 : 所述方法阶段二的步骤 4 中任务执行结果指局部病毒报告重要度。 3. 根据权利要求 1 所述的一种联合计算架构下的海量病毒报告分析方法, 其特征在 于 : 所述方法通过利用联合计算架构下的服务器和大规模终端双方计算能力, 采用移动代 理来实现联合计算架构下的海量病毒报告的分析任务进行分割、 封装, 并通过移动代理有 权 利 要 求 书 CN 103679023 A 2 2/2 页 3 序部署到服务器端和大规模终端节点上来执行 ; 所述方法还对子任务的权重进行计算。 4. 根据。
8、权利要求 1 所述的一种联合计算架构下的海量病毒报告分析方法, 其特征在 于 : 所述方法对子任务的权重进行计算, 包括 : 所述方法为了确定出子任务的权重 weight, 设置两个权重函数 f 和 g, 包括如下步骤 : 步骤 1 : 对任务中的所有子任务的权重 weight 置初始值, 令 f(sTaski) g(sTaski) 1(i 1,2,.,n) ; 步骤 2 : 假设 sTaski的权重 weight 应小于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 g(sTaskj) f(sTaski)+1 ; 步骤 3 : 假设 sTaski的权重 weight 。
9、应大于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) g(sTaskj)+1 ; 步骤 4 : 假设 sTaski的权重 weight 应等于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) 和 g(sTaskj) 中的较小者等于较大者 ; 步骤 5 : 重复步骤 2 4, 直到构造过程收敛为止, 此时得到 f 和 g 权重函数值即所求的 子任务的权重值 ; 设定一个权重阈值 , 即将权重值大于或等于 的子任务部署到服务器端执行, 将权 重值小于 的子任务部署到大规模终端节点上运行。 5. 根据权利要求 1 。
10、所述的一种联合计算架构下的海量病毒报告分析方法, 其特征在 于 : 所述方法将重要、 核心的任务部署在联合计算系统中服务器端集中执行, 将不重要但 琐细、 繁重的任务细化后部署到联合计算系统中的大规模终端节点上运行 ; 当服务器端收 集到来自客户端提交的病毒报告时, 首先将病毒报告集合按时间序列分割成为若干个子集 合, 利用移动代理将报告分析代码一并发布到若干终端节点上 ; 终端节点执行了病毒报告 的分析任务后, 将结果分别返回至服务器端, 再由服务器端完成病毒报告汇总和排序的任 务 ; 所述方法的系统对任务结果进行了校验, 即系统要求 2 个或 2 个以上终端节点执行同 一分析任务, 并对任。
11、务执行结果进行 hash 运算后, 并利用分配的 RSA 私钥对结果进行签名 后再发送至服务器端用相应的 RSA 公钥解密后进行比对验证 ; 所述方法将制造 RSA 公钥 / 私钥对的任务进行分割, 将寻找大素数的任务交由若干个终端节点来联合完成, 而服务器 仅负责利用收集到的大素数来构建 RSA 公钥 / 私钥对。 6. 根据权利要求 1 所述的一种联合计算架构下的海量病毒报告分析方法, 其特征在 于 : 所述方法是基于移动代理的任务部署。 权 利 要 求 书 CN 103679023 A 3 1/8 页 4 一种联合计算架构下的海量病毒报告分析方法 技术领域 0001 本发明涉及计算机网络。
12、安全技术, 特别涉及一种联合计算架构下的海量病毒报告 分析方法。 背景技术 0002 网络病毒包括计算机病毒、 网络蠕虫、 后门木马、 间谍件等, 网络优秀的资源共享 和通信功能为网络病毒的传播、 感染和破坏提供了天然温床。通过网络特别是互联网及其 应用系统传播的网络病毒、 波及范围大、 覆盖面广, 在短时间内就可以造成网络拥塞甚至瘫 痪、 共享资源丢失、 机密信息失窃, 从而造成巨大的损失。 0003 新型的云安全反病毒系统通过网状的大规模终端对网络中软、 硬件异常行为进行 监测, 实时获取互联网中蠕虫与木马等恶意代码的最新信息, 自动传送到服务器端进行分 析和处理, 再将恶意代码解决方案迅。
13、速分发到每一个网络终端。这意味着反病毒系统不再 仅仅依靠本地硬盘中的病毒库来识别和查杀各种恶意代码 (特别是未知恶意代码) , 而是依 靠庞大的网络服务, 将整个互联网联合成为一个巨大的协同 “杀毒软件” , 实时采集、 分析以 及处理恶意代码, 实现 “参与者越多, 每个参与者就越安全, 整个互联网就会更安全” 的目 标。 0004 显然, 对海量用户提供的海量病毒报告分类、 分析与汇总是云安全系统的主要任 务。 趋势云安全系统每天收集到2.5亿个病毒报告 ; 卡巴斯基全功能云安全系统在用户 “知 情并同意” 的情况下在线收集、 分析数以万计的网络终端提交的可疑病毒报告 ; 瑞星云安全 的核。
14、心 “瑞星卡卡 6.0” 每天收集 8 10 万个木马病毒报告, 并对病毒进行分类和特征提 取。 0005 海量病毒报告的分类、 分析与汇总为云安全系统带来了巨大的负载。 病毒 报告获 取的速度越来越快, 已经达到微秒级 ; 病毒报告已经由手动发送转为自动获取, 服务器获取 的报告数量成井喷趋势 ; 报告的内容也日渐详尽多样。这些都对病毒报告分析技术提出了 更高的要求。 负责节点监控、 病毒疫苗分发等重要任务的云安全集群服务器端负荷沉重, 极 容易成为系统的性能瓶颈。 0006 为了解决这种问题, 趋势云安全系统等通过在全球建立大规模数据中心, 使用几 万台服务器来完成对病毒报告的收集与分析。。
15、而本发明能够很好地解决上面的问题。 发明内容 0007 技术问题 : 在目前云安全系统中, 云服务器会收到来自各个用户终端节点的病毒 报告。随着病毒报告量的进一步扩大, 服务器端也将越来越难以负荷。当服务器收到大批 来自不同用户感知后汇报的病毒报告时, 按照何种计算架构来对这些病毒报告进行分析成 为影响整个系统提高抵御网络病毒能力的一个关键点。 0008 技术方案 : 本发明提供一种联合计算架构下的海量病毒报告分析方法, 该方法是 一种用于反病毒软件的、 联合计算架构下的海量病毒报告分析方法, 该方法充分利用服务 说 明 书 CN 103679023 A 4 2/8 页 5 器和大规模终端双方。
16、计算能力, 将针对海量病毒报告的分析任务进行有效的分割, 并通过 移动代理有序部署到服务器端和大规模终端节点上来执行, 从而有效降低服务器端的负 载, 提高系统的处理效率。 0009 一、 联合计算架构 0010 集群计算将计算任务分布在大量服务器计算节点构成数据中心平台上, 使各种应 用能够根据按需获取计算能力、 存储空间和信息服务, 具有可扩展性和高可用性, 一般具备 以下 3 个典型特征, 即 : 数据中心的硬件基础设施由大规模的集群服务器组成 ; 应用程序与 底层服务协作开发, 高效利用系统资源 ; 通 过数据与设备冗余, 使服务达到高可用性。 0011 传统的集群计算技术及系统狭隘地。
17、将集群计算的基础运行平台设定为集中管理 的数据中心, 即在地理概念上将大量的服务器放置于局域网环境中并互相连接, 再通过门 户主服务器对外统一提供服务。这种模式对于瘦客户机来说是科学的, 但是对于目前的个 人计算机来说, 并不合理, 因为目前的个人计算机普遍基于高性能多核中央处理器、 大容量 高带宽内存和辅助存储器, 其计算与存储能力不应被浪费。 事实上, 目前大部分个人计算机 的资源利用率很低, 以中央处理器为例, 基本都工作在 10% 20% 左右的负荷。如果能将这 些个人计算机的计算能力进行有效聚合, 并与目前的集群计算系统相互融合、 互为补充, 将 可以产生巨大的效益。 0012 本发。
18、明联合计算模型将传统集群计算中的集群服务器节点与网络边缘的大规模 终端节点通过局域网与互联网有机互联在一起, 从而形成一个更大规模的计算和存储资源 池, 并通过任务的有序部署使服务器与大规模终端节点的计算资源的利用和负载趋于一种 平衡状态, 实现了网络资源和计算能力的真正全面的分布式共享。 0013 本发明联合计算系统中的门户与任务调度服务器节点将用户终端节点提交任务 进行分解, 并将分割后的任务合理部署到集群服务器节点和用户终端节点上执行, 然后对 子任务执行结果再进行汇总并得出可返回给用户的最终执行结果, 从而解决了越来越多的 基于大计算和存储资源的应用的实施造成系统难以承载或服务质量难以。
19、保障的尴尬境遇。 0014 二、 基于移动代理的任务部署 0015 对于分割任务而成的若干子任务通过何种技术来实现在联合计算系统中的动态 部署是本发明的关键问题。基于移动代理的系统具有生存、 计算、 安全、 通信和迁移机制。 生存机制指的是移动代理的产生、 销毁、 启动、 挂起和停止等服务 ; 计算机制指的是移动代 理及其运行环境所具备的计算推理能力, 包括数据操作和线程控制原语 ; 安全机制描述移 动代理访问其它移动代理和网络资源的方式 ; 通信机制定义移动代理之间以及与其它实体 间的通讯方式。 迁移机制负责移动代理在异构的软、 硬件网络环境中自由移动, 代理用户异 地完成指定的任务, 这可。
20、以有效地提高通信效率, 降低分布式计算中的网络负载, 动态适应 变化的网络环境, 具有很好的安全性和容错能力。 0016 本发明采用移动代理来实现联合计算系统中的任务的代码、 数据的封装、 迁移与 执行。本发明基于移动代理可以对任务进行灵活的拆分与部署。 0017 三、 任务执行点的选择 0018 如果需要进一步增强任务执行的安全可靠性, 还可以对子任务的权重进行设置, 即将重要、 核心的任务部署在联合计算系统中服务器端集中执行, 将不重要但琐细的繁重 任务细化后部署到联合计算系统中的大规模终端节点上运行。 说 明 书 CN 103679023 A 5 3/8 页 6 0019 为了确定出子任。
21、务的权重weight, 本发明首先设置两个权重函数f和g, 所述方法 如下 : 0020 步骤 1 : 对任务中的所有子任务的权重 weight 置初始值, 令 f(sTaski) g(sTaski) 1(i 1,2,.,n) , 如表 1 所示 ; 0021 表 1 子任务的权重初始值 0022 sTask1sTask2.sTaski.sTaskn f11.1.1 g11.1.1 0023 步骤 2 : 假设 sTaski的权重 weight 应小于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 g(sTaskj) f(sTaski)+1 ; 0024 步骤 3 : 。
22、假设 sTaski的权重 weight 应大于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) g(sTaskj)+1 ; 0025 步骤 4 : 假设 sTaski的权重 weight 应等于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) 和 g(sTaskj) 中的较小者等于较大者 ; 0026 步骤 5 : 重复步骤 2 4, 直到构造过程收敛 (即不再出现步骤 2 4 中的情况) 为 止, 此时得到 f 和 g 权重函数值即所求的子任务的权重值。 0027 设定一个权重阈值 , 即将权重值大于或等于 。
23、的子任务部署到服务器端执行, 将权重值小于 的子任务部署到大规模终端节点上运行。 0028 四、 联合计算架构下的海量病毒报告分析方法 0029 本发明联合计算架构下的海量病毒报告分析方法的核心方案是当服务器端收集 到来自客户端提交的大量病毒报告时, 首先会将病毒报告集合按时间序列分割成为若干个 子集合, 利用移动代理将报告分析代码一并发布到若干终端节点上。 0030 终端节点执行了病毒报告的分析任务后, 将结果分别返回至服务器端, 再由服务 器端完成少量的病毒报告汇总和排序的任务。 0031 本发明为了进一步保障终端任务执行的正确性, 系统对任务结果进行了校验, 即 系统要求 2 个或 2 。
24、个以上终端节点执行同一分析任务, 并对任务执行结果进行 hash (哈希) 运算后, 并利用分配的 RSA 私钥对结果进行签名后再发送至服务器端用相应的 RSA 公钥解 密后进行比对验证。显然, 制造 RSA 公钥 / 私钥对的任务应交由服务器端执行。但是制造 多对 RSA 公钥 / 私钥对的前提是寻找多个大素数构建素数池, 这需要较大的计算能力。依 据本发明提出的联合计算的思想, 本发明依然是将制造RSA公钥/私钥对的任务进行分割, 将寻找大素数的任务交由若干个终端节点来联合完成, 而服务器仅负责利用收集到的大素 数 来构建 RSA 公钥 / 私钥对。 0032 如图 4 所示, 本发明的系。
25、统运行方法流程包括 : 0033 阶段一 : 联合制造 RSA 公钥 / 私钥对 ; 0034 步骤 1 : 系统服务器端通过 “心跳机制” 来掌握终端节点的在线情况, 设当前环境 中有 N 个在线的终端节点 ; 0035 步骤 2 : 服务器选择其中的 M 个 (M N) 终端节点, 向其中的每一个节点发放一个 任务, 在区间 (1, 21024) 的不同子区间上生成 k 个 1024bit 的素数 ; 0036 步骤 3 : 终端节点各自将求得的大素数集合返回至服务器端 ; 说 明 书 CN 103679023 A 6 4/8 页 7 0037 步骤 4 : 服务器对终端节点发回的大素数集。
26、合进行随机抽样素性检验, 并将通过 抽样检验的素数集合放到素数池中备用 ; 0038 步骤 5 : 服务器反复从素数池中选取不同的两个素数 p 和 q, 用以制造 RSA 公钥 / 私钥对 ; 0039 阶段二 : 病毒报告分析任务分发 ; 0040 步骤 1 : 系统服务器端选择 M 个 (M N) 在线的终端节点, 作为组 1 节点, 服务 器将病毒报告集合以时间为序均匀分成 M 个子集合, 并分别配备不同的私钥 d, n ; 0041 步骤 2 : 服务器端将病毒报告子集合、 代码和相应的私钥 d, n 一同发给终端节 点 ; 0042 步骤 3 : 服务器再随机选取 M 个终端节点, 。
27、作为组 2 节点, 将同样的病毒报告子集 合和私钥 d, n 发给它们 ; 所述步骤可选, 即在对结果精确度要求不高的应用中可省略 ; 0043 步骤 4 : 终端节点收到病毒报告子集合与分析代码后, 对报告进行分析 ; 0044 具体实施方法是 : 终端节点根据病毒报告子集合、 来自不同节点的相同报告 的数 量和提供病毒报告的节点信誉度来综合计算出局部病毒报告重要度 ; 0045 步骤 5 : 终端节点完成任务后, 终端节点对当次任务执行结果 (即局部病毒报告重 要度) 进行 hash 运算后再利用私钥 d, n 进行签名, 然后发给服务器, 以提供给服务器来 验证结果来源及正确性 ; 00。
28、46 阶段三 : 任务结果的验证、 汇总与排序 ; 0047 步骤 1 : 服务器对返回的分析结果用对应的公钥 e, n 进行验证, 若通过验证则将 数据放入数据队列 1 ; 0048 步骤 2 : 服务器将队列 1 中分配得到相同私钥 d, n 的组 1 和组 2 终端节点提交 的数据结果的 hash 值进行比对, 以验证节点提交数据结果的正确可信性 ; 具体实施方法 是 : 若hash值是相同的, 则将结果放入数据队列2 ; 若hash值不同, 则需要将该子任务重新 发送至另一个随机选择的终端节点 (也可以在服务器端直接执行) , 并对返回的结果和之前 未验证通过两组数据分别进行比较 ; 。
29、反复进行该步骤, 直至结果匹配为止, 取匹配的那个结 果 ; 0049 步骤 3 : 服务器对数据队列 2 中的局部病毒报告重要度进行全局汇总, 从而统计出 全局病毒报告重要度, 并按重要度进行排序。 0050 本发明所述方法通过利用联合计算架构下的服务器和大规模终端双方计算能力, 采用移动代理来实现联合计算架构下的海量病毒报告的分析任务进行分割、 封装, 并通过 移动代理有序部署到服务器端和大规模终端节点上来执行 ; 所述方法还对子任务的权重进 行计算, 即 : 将重要、 核心的任务部署在联合计算系统中服务器端集中执行, 将不重要但琐 细、 繁重的任务细化后部署到联合计算系统中的大规模终端节。
30、点上运行。 0051 有益效果 : 0052 (1) 负载平衡。联合计算环境中服务器和终端节点均需承载任务的一部分 子任 务, 任务被分担完成。以上述的基于的病毒报告汇总与排序模块为例, 无论是制造 RSA 公钥 / 私钥对还是分析病毒报告重要度都是由终端节点和服务器节点联合完成的。制造 RSA 公 钥 / 私钥对时, 将寻找多个大素数构建素数池的繁重、 琐碎的任务拆分为多个子任务部署 到终端节点上去完成, 集群服务器的负载大大降低了 ; 在分析病毒报告时, 系统鉴于病毒报 说 明 书 CN 103679023 A 7 5/8 页 8 告量的庞大, 因此也是首先由终端节点来分别分析某个时间片的。
31、病毒报告子集合, 然后再 由服务器根据各终端节点返回的局部病毒报告重要度来计算出全局病毒报告重要度, 服务 器的计算量为节点数, 远远小于原先需要完成的计算量。 0053 (2) 安全性。 系统通过对子任务的权重进行设置, 将重要的核心任务部署在服务器 端集中执行, 将不重要但琐细的繁重任务细分后部署到终端节点上执行, 有效增强了系统 的安全性。如在制造 RSA 公钥 / 私钥对时, 每个终端节点仅负责提供部分素数, 并不知道计 算素数的目标, 即便能窥知计算素数的目标, 也无法获知由服务器端制造的RSA公钥/私钥 对所依据的素数来源 ; 以病毒报告分析与排序模块为例, 各个终端节点也无法获得。
32、最终的 全局病毒报告重要度数值, 从而有效保障系统的安全性。 0054 (3) 可靠性。 另外联合计算环境中由于包含的终端节点的数据量是巨大的, 系统可 通过冗余机制来保障结果的正确性, 如将同样的病毒报告子集合发送给不同的终端节点来 进行分析以防止终端伪造局部病毒报告分析结果, 再如将同一区间大素数的寻找任务发送 给不同的终端节点以防止终端伪造结果, 这些都有效降低终端返回虚假结果的可能性。 附图说明 0055 图 1 是原始的病毒报告系统界面图。 0056 图 2 是病毒报告分析结果界面图。 0057 标识说明 :(a) - 病毒报告返回结果查看的服务器端界面图 ;(b) - 病毒报告计算。
33、 结果查看的服务器端界面图。 0058 图 3 是服务器获得的部分素数列表界面图。 0059 图 4 是本发明方法的系统运行流程图。 具体实施方式 0060 以下结合说明书附图对本发明专利作进一步的详细说明。 0061 可在分布式计算环境下构建联合计算系统。 利用高性能塔式计算机作为服务器节 点, 并负责接受、 分解、 部署任务以及将结果进行汇总 ; 利用多台个人电脑作终端节点。构 建联合计算应用系统时可选择 Linux(内核版本 2.6.30) 作为操作系统, Java 开发工具包 选择 JDK(Java Developers Kit, Java 开发工具包, 版本 1.6) , 联合计算基。
34、础平台选择 Hadoop 平台 (版本 0.20) , 移动代理采用意大利电信的 JADE, 开发语言选用 Java, 开发工具 采用 Eclipse3.3。 0062 依据上述的联合计算模型, 在 Hadoop 平台构建的联合计算计算环境中, 可利用 Java 语言及其开发工具 Eclipse 并基于 JADE 的移动代理开发与运行平台构建可以具体构 建出联合计算环境架构下的各种应用系统。 0063 本发明采用移动代理来实现联合计算架构下的病毒报告分析任务的代码、 数据的 封装、 迁移与执行。对于移动代理给出以下的具体定义。 0064 定义 1 移动代理 (MobileAgent) 是一个以。
35、下的 7 元组 : 0065 MobileAgent (SAInterface,AttributeSet,StatusSet,Restriction,TaskExe ,ARepository,ExeRoute)(1) 0066 式 (1) 中包括 : 说 明 书 CN 103679023 A 8 6/8 页 9 0067 安全代理接口 SAInterface 是代理与外界通信的中介, 执行代理的安全策略, 防止外界对代理的非法访问, 在开放的联合计算环境中, 安全代理接口的安全管理功能还 负责保证代理自身的合法性、 健壮性和用户身份的合法性等, 同时还可以保护代理当前驻 留的主机。 0068 。
36、属性集 AttributeSet 描述了移动代理本身的一些特性信息, 包括代理标识符、 所有者、 身份认证等。 0069 内部状态集 StatusSet 记录了代理执行过程中的当前状态, 实现持久支持跨平 台的持续运行。 0070 约束条件 Restriction 是代理创建者为保证代理的行为和性能而作出的约束, 如返回条件、 站点停留时间及任务完成程度等, 一般只有创建者对约束条件有修改权限。 0071 任务执行模块 TaskExe 负责处理子任务处理工作, 封装了方法和数据, 包括代 理的初始化程序和事件处理程序, 感知外部环境的请求, 并依照内部规则和状态产生动作。 0072 代理知识库。
37、 ARepository 包含了私有知识和全局知识, 作为代理所感知的世界 和自身模型, 并保存当前相对静止或移动的过程中所获取的知识和任务求解结果。 0073 执行路径 ExeRoute 按照子任务在整个任务执行流程中的位置决定了该移动代 理按照执行路径到达某一个任务承担节点, 然后移动到另一个节点继续执行, 并将任务执 行结果作为输入交给当地的代理。 0074 基于移动代理来实现联合计算架构下的海量病毒报告的分析任务进行有效的分 割、 封装, 并通过移动代理有序部署到服务器端和大规模终端节点上来执行。 0075 1、 任务执行点的选择 0076 如果需要进一步增强任务执行的安全可靠性, 还。
38、可以对子任务的权重进行计算, 即将重要、 核心的任务部署在联合计算系统中服务器端集中执行, 将不重要但琐细的繁重 任务细化后部署到联合计算系统中的大规模终端节点上运 行。 0077 为了确定出子任务的权重weight, 本发明首先设置两个权重函数f和g, 其方法包 括如下步骤 : 0078 步骤 1 : 对任务中的所有子任务的权重 weight 置初始值, 令 f(sTaski) g(sTaski) 1(i 1,2,.,n) , 如表 2 所示 ; 0079 表 2 子任务的权重初始值 0080 sTask1sTask2.sTaski.sTaskn f11.1.1 g11.1.1 0081 步。
39、骤 2 : 假设 sTaski的权重 weight 应小于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 g(sTaskj) f(sTaski)+1 ; 0082 步骤 3 : 假设 sTaski的权重 weight 应大于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) g(sTaskj)+1 ; 0083 步骤 4 : 假设 sTaski的权重 weight 应等于 sTaskj, 但是 f(sTaski) g(sTaskj), 则令 f(sTaski) 和 g(sTaskj) 中的较小者等于较大者 ; 0084 步骤 5 。
40、: 重复步骤 2 4, 直到构造过程收敛为止, 此时得到 f 和 g 权重函数值即所 求的子任务的权重值。 说 明 书 CN 103679023 A 9 7/8 页 10 0085 设定一个权重阈值 , 即将权重值大于或等于 的子任务部署到服务器端执行, 将权重值小于 的子任务部署到大规模终端节点上运行。 0086 基于本发明提出的方法, 可构建了一个联合计算架构下的病毒报告分析、 汇总与 排序系统, 将完成海量数据的分析任务分割后交由集群服务器和终端节点来联合完成。系 统由 Java 语言开发构建移动代理, 是当服务器端收集到来自客户端提交的大量病毒报告 时, 首先会将病毒报告集合按时间序列。
41、分割成为若干个子集合, 利用移动代理将报告分析 代码一并发布到若干终端节点上, 系统 如图 1 所示。 0087 终端节点执行了病毒报告的分析任务后, 将结果分别返回至服务器端, 再由服务 器端完成少量的病毒报告汇总和排序的任务, 如图 2 所示。 0088 为了进一步保障终端任务执行的正确性, 系统对任务结果进行了校验, 即系统要 求 2 个或 2 个以上终端节点执行同一分析任务, 并对任务执行结果进行 hash 运算后, 并利 用分配的RSA私钥对结果进行签名后再发送至服务器端用相应的RSA公钥解密后进行比对 验证 (如图 2(a) 所示) 。显然, 制造 RSA 公钥 / 私钥对的任务应。
42、交由服务器端执行。但是 制造多对RSA公钥/私钥对的前提是寻找多个大素数构建素数池, 这需要较大的计算能力。 依据本发明提出的联合计算的思想, 本发明依然是将制造 RSA 公钥 / 私钥对的任务进行分 割, 将寻找大素数的任务交由若干个终端节点来联合完成, 而服务器仅负责利用收集到的 大素数来构建 RSA 公钥 / 私钥对。 0089 如图 4 所述, 本发明的具体描述系统的方法运行流程包括 : 0090 阶段一 : 联合制造 RSA 公钥 / 私钥对 0091 步骤 1 : 系统服务器端通过 “心跳机制” 来掌握终端节点的在线情况, 设当前环境 中有 N 个在线的终端节点。 0092 步骤 。
43、2 : 服务器选择其中的 M 个 (M N) 终端节点, 向其中的每一个节点发放一个 任务, 在区间 (1, 21024) 的不同子区间上生成 k 个 1024bit 的素数。 0093 步骤 3 : 终端节点各自将求得的大素数集合返回至服务器端。 0094 步骤 4 : 服务器对终端节点发回的大素数集合进行随机抽样素性检验, 并将通过 抽样检验的素数集合放到素数池中备用, 获得的部分素数列表如图 3 所示。 0095 步骤 5 : 服务器反复从素数池中选取不同的两个素数 p 和 q, 用以制造 RSA 公钥 / 私钥对。 0096 具体实施方法 : 服务器选取一个素数 e, 作为此次任务分配。
44、的验证私钥的一 部 分。以 p、 q、 e 作为输入, 得到公钥 e, n 和私钥 d, n, 其中 n=p*q, e 是一个与 (p-1) * (q-1) 互素的数字, d*e 1mod n, 即 d 是 e 模 n 的逆。单次任务中 e 可以不变。 0097 阶段二 : 病毒报告分析任务分发 0098 步骤 1 : 系统服务器端选择 M 个 (M N) 在线的终端节点, 作为组 1 节点, 服务 器将要处理的病毒报告集合以时间为序均匀分成 M 个子集合, 并分别配备不同的私钥 d, n。 0099 步骤 2 : 服务器端将病毒报告子集合、 代码和相应的私钥 d, n 一同发给终端节 点。 。
45、0100 步骤 3 : 服务器再随机选取 M 个终端节点, 作为组 2 节点, 将同样的病毒报告子集 合和私钥 d, n 发给它们, 目的是维护结果的正确性 ; 该步骤可选, 即在对结果精确度要求 说 明 书 CN 103679023 A 10 8/8 页 11 不高的应用中可省略。 0101 步骤 4 : 终端节点收到病毒报告子集合与分析代码后, 对报告进行分析。 0102 具体实施方法是 : 终端节点根据病毒报告子集合、 来自不同节点的相同报告的数 量和提供病毒报告的节点信誉度来综合计算出局部病毒报告重要度。 0103 步骤 5 : 终端节点完成任务后, 终端节点对当次任务执行结果 (即局。
46、部病毒报告重 要度) 进行 hash 运算后再利用私钥 d, n 进行签名, 然后发给服务器, 以提供给服务器来 验证结果来源及正确性。 0104 阶段三 : 任务结果的验证、 汇总与排序 0105 步骤 1 : 服务器对返回的分析结果用对应的公钥 e, n 进行验证, 若通过验证则将 数据放入数据队列 1。 0106 步骤 2 : 服务器将队列 1 中分配得到相同私钥 d, n 的组 1 和组 2 终端节点提交 的数据结果的 hash 值进行比对, 以验证节点提交数据结果的正确可信性。 0107 具体实施方法是 : 若hash值是相同的, 则将结果放入数据队列2 ; 若hash值不同, 则需。
47、要将该子任务重新发送至另一个随机选择的终端节点 (也可以在服务器端直接执行) , 并对返回的结果和之前未验证通过两组数据分别进行比较。反复进行该步骤, 直至结果匹 配为止, 取匹配的那个结果。并对终端节点的本次行为 0108 步骤 3 : 服务器对数据队列 2 中的局部病毒报告重要度进行全局汇总, 从而统计出 全局病毒报告重要度, 并按重要度进行排序。 说 明 书 CN 103679023 A 11 1/3 页 12 图 1 图 2 说 明 书 附 图 CN 103679023 A 12 2/3 页 13 图 3 说 明 书 附 图 CN 103679023 A 13 3/3 页 14 图 4 说 明 书 附 图 CN 103679023 A 14 。