面向网络空间靶场的网络行为模拟关键技术研究

2021-06-05 06:27刘红日吕思才王佰玲
智能计算机与应用 2021年4期
关键词:网络流量靶场鼠标

刘红日,吕思才,王佰玲

(哈尔滨工业大学(威海)计算机科学与技术学院,山东 威海264209)

0 引 言

随着计算机及网络技术的不断发展,网络安全形势也日益严峻。据互联网安全协会发布的《2018年网络安全事件和数据泄露趋势报告》,2018年共有超过200万起网络安全事件,至少造成450亿美元的经济损失。网络环境由互联发展到了泛在网络空间,网络安全事件已经变成网络攻防常态化下的产物。面对越来越复杂的网络环境和愈演愈烈的网络安全事件,为了进行网络攻防演练以及网络新技术验证,世界大国和有影响力的地区组织已率先开展了网络靶场(Cyber Range)的建设[1]。

众多研究人员和机构在网络流量模拟方面取得了很多成果,产生了很多成熟的流量产生器。例如Netperf[2]和iPerf[3]等流量产生器,以及商用仿真软件OPNET和科研用仿真软件NS2及NS3等。尽管上述流量产生器及仿真软件在网络设备的性能检测及网络仿真方面发挥了巨大作用,但由于上述网络流量模拟技术主要是为测试网络设备和网络环境而设计的,其注重于高速、大流量、高带宽,而在网络行为的仿真模拟方面能力受限,难以保证模拟网络节点的逼真度以及网络用户行为复制的逼真度,无法满足在网络空间靶场环境下对真实应用场景完成较精准构建的需求。

本文以实现逼真地模拟真实的互联网行为为目标,从流量模拟和用户的应用行为模拟出发为切入点,研究网络空间靶场虚拟网络环境下的网络行为模拟技术。在流量模拟方面,研究了多节点交互式网络流量回放技术,实现多节点网络环境下的流量回放;在应用行为模拟上,分别研究了群体用户和个体用户的应用行为模拟方法,实现了不同层次、不同粒度的应用行为模拟,以满足靶场环境下网络应用场景的构建需求。

1 相关研究介绍

现有的网络行为模拟分类成果可以分为流量行为模拟和用户行为模拟。其中流量行为模拟,按照流量的生成方法,又可以分为如下几种:

(1)基于模型(model-based)的流量生成法。基于网络流量的数学统计模型,通过测量真实网络流量特征来设置模型的参数,生成网络流量。典型的模型有泊松模型、马尔科夫模型,重尾分布的ON/OFF源聚集模型[4]、M/G/∞排队模型[5]等。这些模型大部分建立在较强的假设基础之上。例如,泊松模型假设网络事件是独立分布的,但实际的网络事件并不满足这些假设。

(2)基于跟踪(trace-based)的流量生成法。使用已有的真实的网络流量,通过“录制—回放”的方式,实现网络流量的再现。通常使用TCPDum等工具对真实的网络流量进行录制,通过TCPReplay[6]、TCPivo[7]等流量工具进行回放。

(3)基于预测(prediction-based)的流量生成法。根据网络流量在统计上的自相似性和长相关的性质[8],利用现有的网络流量来预测,进而生成新的网络流量。

按照模拟的粒度进行分类,可以分为包级(packer-level)模拟[9]、流级(flow-level)模拟[10]和应用级(application-level)模拟[11]。包级和流级模拟通过构造包的长度和包的到达时间间隔的流量模拟,不研究包之间及流之间的关联关系,适用于网络出口的流量模拟,不能直接用在对网络内每个节点的流量模拟。应用级模拟通过模拟用户操作应用程序来产生流量,是一种更接近真实用户行为的模拟。

在用户行为上,研究用户网络行为,有助于从用户的角度来分析流量产生的机制,进而分析出用户网络行为的规律,为用户网络行为建模及行为模拟提供理论依据。用户行为区别主要体现在操作对象上,按照操作对象的不同,可以分为web应用、邮件应用、桌面应用等。

用户的行为从规模上可以分为群体行为和个体行为。个体用户行为主要是通过个人的网络行为产生日志来进行分析。如,鼠标、键盘的动力学特征[12];群体用户行为分析主要是从人类动力学角度,对用户行为进行特征分析,并分析其产生的机制[13]。

2 网络流量回放

在网络测试床和网络靶场中,流量回放被用来生成背景流量和再现网络场景,是网络安全试验不可缺少的支撑技术。通过从真实的网络中捕获流量并在实验中进行回放,可以在网络测试床中生成背景流量,并在网络靶场上再现真实的网络场景。实现点到点流量回放的工具有TCPreplay、TCPivo等。然而,这些工具只处理单机到单机的回放,并不能处理多节点到多节点的交互。本文提出多节点流量回放模型,如图1所示。

图1 多节点网络流量回放模型Fig.1 The traffic replay model for multi-node network

将多节点流量回放抽象为一个模型,原始流量(pcap文件)从网管交换机中抓取并存储在存储服务器中。按照流量的源地址将流量分为两类:一类是客户机流量,另一类是服务器流量。假设本地计算机(客户机)为c1,…,cn,远程计算机(服务器)为s1,…,s m。c i(i=1,2,…,n)和s j(j=1,2,…,m)从存储服务器下载pca p文件后,保持原有的交互关系,实现流量回放。该模型实现了:

(1)IP映射。目标网络中的IP与原始流量文件中的IP不同,同时原始流量文件中的IP数量要多于目标网络中的IP数量。因此,需要将原始流量中的IP映射到目标网络中的IP上。

(2)流量规约。由于有限的硬件资源,在目标网络的服务器数量比在真实网络中的数量少得多。因此,需要将真实网络中服务器流量进行规约,并将规约的流量分配给指定数量的服务器。要解决的问题是如何将所有的服务器流量平均分配到指定数量的服务器中的同时保持原有的交互关系。

(3)低延迟交互。部署在操作系统上的agent转发原始流量的负载实现流量回放,其需要尽可能与原始网络中IP的节点保持时序一致。

3 用户行为模拟

3.1 群体用户行为模拟

本文基于人类动力学规律,给出一种基于agent的大规模用户网络web行为模拟方法。该方法将个体用户建模为一个独立的agent,多个agent构成了一个虚拟的社交网络。在这个虚拟社交网络上,研究基于SIR模型的感染消息传播机制,去驱动agent的网络行为模拟,最终使群体用户的web行为时间间隔服从幂律分布。基于SIR模型的web行为模拟算法(s-SIR)如算法1所示。

?

基于s-SIR算法来驱动每一个agent在指定的时间间隔进行web行为模拟,最终使全部用户的web行为的时间间隔符合幂律分布,以实现群体用户web行为的模拟。

3.2 个体用户行为模拟

用户操作应用软件的行为一方面可以为网络空间靶场产生前景流量,另一方面为靶场中的网络攻防演习提供比较真实的靶标。用户操作所有的软件,本质上是鼠标对屏幕特定位置的点击、拖拽以及敲击键盘中特定按键等动作,将这些操作定义为微观行为。用户对某个应用软件的使用,建立在对软件功能的理解基础上,通过鼠标和键盘对功能的操作,实现了对应用软件的操作,将用户操作单个应用的行为称为中观行为。为了完成一项任务,用户通常是通过操作一系列应用软件,形成应用操作序列来实现任务目标,将用户行为序列称为宏观行为。

在微观行为上,根据鼠标移动的起点和终点坐标的元数据,采用归一化方法匹配已采集的用户鼠标数据,找到最优模板后进行轨迹拟合,生成本次鼠标移动轨迹,最后通过消息插入的方式模拟出鼠标的移动动作,其步骤如下:

3.2.1 静态匹配的鼠标模板生成

通过录制用户鼠标的行为,存储用户的移动轨迹,构建用户鼠标行为数据库。通过比较待模拟的距离d0和角度a0,与模板库中待匹配鼠标轨迹的距离d i和角度a i的距离公式(1),来确定命中的模板f i t L。

其中,f i t L={(x1,y1,t1),(x2,y2,t2),......,(x n,y n,t n)},是n个鼠标消息记录。

3.2.2 动态拟合的鼠标轨迹生成

待模拟操作鼠标移动的起止点与f i t L不重合,需对f i t L进行轨迹拟合。轨迹拟合操作包括:

(1)坐标平移:使待模拟操作的起始点平移到模板序列起点位置;

(2)坐标伸缩:保证鼠标模拟操作的起止点与命中模板的起止点的直线距离相等;

(3)坐标旋转变换:使模板的起止点的水平夹角与待模拟操作的起止点的水平夹角方向一致;

(4)时间补偿:命中模板的坐标进行缩放,移动的时间也发生了变化,需修正。

通过以上静态匹配和动态拟合,可以生成鼠标模拟的移动轨迹。

在中观行为上,基于agent进行用户单应用行为模拟。agent通过强化学习方法来学习某个软件的功能,生成软件行为知识库。在模拟用户操作软件行为时,通过从知识库获取agent学到的软件功能菜单的操作序列,来实现软件行为的模拟。

Agent通过强化学习,可在形成软件的各个状态和动作之间建立逻辑连接(知识),将知识存储在数据库中,构建知识库。进行行为模拟任务时,检索知识库进行知识回忆,通过Windows消息驱动和OCR驱动混合实现行为模拟。

在宏观行为上,基于序列预测,实现了用户连续多应用软件行为模拟。借助于生成式对抗网络(Generative Adversarial Networks,GAN)在本文生成方面的优势,提出了基于SeqGan[14]的用户软件行为序列生成算法。将用户使用的软件进程(一个软件对应一个进程名称)进行统一编码,用户在一段时间内使用的软件构成一个序列,该序列被定位为输入样本。算法的目的是生成用户新的行为序列,作为用户未来的行为序列,如图2所示。

图2 SeqGan示意图Fig.2 SeqGan schematic

图2 中,左侧输入的数据为用户操作的软件编号,D和G分别代表判别器和生成器,D通过真实数据和G的生成数据进行训练。在图的右侧,G由policy gradient训练,其中最终的奖励信号由D提供,并通过蒙特卡洛搜索传递回途经的动作价值。已经存在的白色圆点称为现在的状态(state),要生成的下一个白色圆点称作动作(action)。因D需要对一个完整的序列评分,所以用MCTS(蒙特卡洛树搜索)将每一个动作的各种可能性补全,D对这些完整的序列产生reward,回传给G,通过增强学习更新G。用强化学习的方式,训练出一个可以产生下一个最优的action的生成网络。生成器为强化学习中的agent,状态是生成的token,动作为下一个生成的token,利用蒙特卡洛搜索去估计状态行为值,策略梯度去训练梯度。

4 结束语

本文针对网络靶场中的网络行为模拟进行研究,将网络行为抽象建模,从用户行为和流量行为两个方面来模拟网络行为,实现网络场景的背景流量模拟、前景流量模拟和靶标模拟。在流量模拟方面,提出了多节点交互式流量回放算法,实现了录制流量在靶场中的逼真回放;在用户行为模拟方面,提出了粗粒度的群体用户行为模拟和细粒度个体用户行为模拟,又进一步对个体行为模拟从模拟层次上提出了宏观行为模拟、中观行为模拟和微观行为模拟,研究了3种层面用户行为模拟的算法。

未来工作中,在流量回放上可以围绕流量回放资源计算问题展开,计算出回放需要的最少资源,这对于未来进行大规模的网络攻防演习具有极高的应用价值;在用户行为建模上,目前研究的用户行为模拟是从个人细粒度行为的模拟,没有区分出用户在组织中的角色,可以从网络攻防演练下的用户角色的建模方法进行深入研究。

猜你喜欢
网络流量靶场鼠标
大数据驱动和分析的舰船通信网络流量智能估计
网络靶场的建设现状、基本特点与发展思路
贵阳建首个“大数据安全综合靶场”
一种用于敏感图像快速加密的图像注入技术仿真
基于小波神经网络的网络流量预测研究
鼠标折叠笔
基于时间序列分析的网络流量预测模型研究
45岁的鼠标
超能力鼠标
鼠标也可以是这样的