一种通用的用户桌面行为模拟系统及方法与流程

文档序号:16607878发布日期:2019-01-14 21:16阅读:276来源:国知局
一种通用的用户桌面行为模拟系统及方法与流程

本发明涉及用户行为模拟与智能脚本生成领域,尤其是一种通用的用户桌面行为模拟系统及方法。



背景技术:

用户行为模拟可用于软件测试、虚拟用户生成、智能操作助手等技术的实现,特别地,在网络靶场中,用户行为模拟还被用于挖掘用户行为习惯,以模拟出真实地、有用户特征的用户行为。

目前,现有技术中关于用户桌面行为模拟的研究甚少,现有用户桌面行为模拟的实现方法大多停留在用户鼠标键盘操作的简单录制回放、由技术人员编写定制化脚本、或手动设计有限状态机模型等层次上,具有开发成本大、可扩展性差、不能体现用户行为特征等问题。在软件测试、脚本生成等需求下缺乏一种可扩展性好、自动化程度高的解决方案;在网络靶场等对模拟逼真度要求高的场景下,缺乏一种相似度好、多样性高的对真实用户行为进行模拟的方案。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种通用的用户桌面行为模拟系统,包括:用户行为捕获模块,行为知识构建模块以及用户桌面行为模拟模块;

用户行为捕获模块用于实时采集用户行为数据;采集的数据包括:用户的鼠标键盘操作、程序运行状态、屏幕截图以及与用户操作有关的系统参数;

行为知识构建模块用于利用状态匹配,将预处理所得的快照-行为链中的快照合并,对每个状态进行操作,提取操作目标;操作目标结合鼠标键盘数据组成定义操作;通过状态及操作组成的用户历史行为轨迹,挖掘出状态内及状态间的转换规则,剔除转换规则中的错误数据和噪声数据,生成包括:状态节点、状态转换规则的用户行为状态图,所述用户行为状态图为行为知识的存储形式;

用户桌面行为模拟模块用于基于已建立的用户行为状态图,采用回放、或模板定制、或模型生成,进行行为生成与模拟。

本发明中,用户行为捕获模块还用于捕获用户的桌面行为轨迹,通过鼠标键盘操作、gui界面和程序状态的变化表现出来;捕获的数据包括:用户输入操作、程序运行状态、界面变化;通过采集和融合捕获的数据,描述和复现用户行为轨迹;

还用于将采集用户的所有操作,并采集用户操作前、后的快照。

本发明中,每个快照数据样本由预设时间段采集到的程序运行状态、屏幕截图、系统参数构成,表示了系统桌面的状态和设置。

本发明中,行为知识构建模块还用于利用状态匹配,将桌面快照按照状态实体归类,匹配时,统计各状态的到达频次、离开频次;将状态的定义属性分为精确定义属性、模糊定义属性和辅助定义属性;

还用于对含操作目标的操作进行操作提取,所述含操作目标的操作包括:鼠标单击、鼠标拖拽、鼠标双击;

还用于利用操作匹配,将每个状态下的操作归类为若干个操作,去除每个状态下的重复操作,归类的同时统计各操作的使用次数;

还用于构建行为状态图;基于原始的快照-操作事件行为链转化为状态-操作行为链,将状态-操作行为链的状态视为节点、操作视为节点间的边,按照状态-操作行为链逐步构建行为状态图;

还用于将行为状态图中异常路径的过滤分为计算过滤和试探过滤。

本发明中,用户桌面行为模拟模块还用于支持四类用户行为模拟场景,使用时按照需求采用相应的模拟场景;

四类用户行为模拟场景包括:基于历史数据回放的行为复现;基于模板编辑的定制化行为模拟;基于模型的逼真用户行为生成与模拟;基于局部描述指令的行为自动生成与模拟;行为模拟过程运行于部署的计算机上,按照相应的策略持续产生和执行行为。

一种通用的用户桌面行为模拟方法,方法包括:

步骤一,实时采集用户行为数据;采集的数据包括:用户的鼠标键盘操作、程序运行状态、屏幕截图以及与用户操作有关的系统参数;

步骤二,利用状态匹配,将预处理所得的快照-行为链中的快照合并,对每个状态进行操作,提取操作目标;操作目标结合鼠标键盘数据组成定义操作;通过状态及操作组成的用户历史行为轨迹,挖掘出状态内及状态间的转换规则,剔除转换规则中的错误数据和噪声数据,生成包括:状态节点、状态转换规则的用户行为状态图,所述用户行为状态图为行为知识的存储形式;

步骤三,基于已建立的用户行为状态图,采用回放、或模板定制、或模型生成,进行行为生成与模拟。

本发明中,步骤一还包括:捕获用户的桌面行为轨迹,通过鼠标键盘操作、gui界面和程序状态的变化表现出来;捕获的数据包括:用户输入操作、程序运行状态、界面变化;通过采集和融合捕获的数据,描述和复现用户行为轨迹;

将采集用户的所有操作,并采集用户操作前、后的快照。

本发明中,步骤二还包括:

利用状态匹配,将桌面快照按照状态实体归类,匹配时,统计各状态的到达频次、离开频次;将状态的定义属性分为精确定义属性、模糊定义属性和辅助定义属性;

对含操作目标的操作进行操作提取,所述含操作目标的操作包括:鼠标单击、鼠标拖拽、鼠标双击;

利用操作匹配,将每个状态下的操作归类为若干个操作,去除每个状态下的重复操作,归类的同时统计各操作的使用次数;

构建行为状态图;基于原始的快照-操作事件行为链转化为状态-操作行为链,将状态-操作行为链的状态视为节点、操作视为节点间的边,按照状态-操作行为链逐步构建行为状态图;

将行为状态图中异常路径的过滤分为计算过滤和试探过滤。

本发明中,步骤三还包括:

支持四类用户行为模拟场景,使用时按照需求采用相应的模拟场景;四类用户行为模拟场景包括:基于历史数据回放的行为复现;基于模板编辑的定制化行为模拟;基于模型的逼真用户行为生成与模拟;基于局部描述指令的行为自动生成与模拟;行为模拟过程运行于部署的计算机上,按照相应的策略持续产生和执行行为。

从以上技术方案可以看出,本发明具有以下优点:

本发明通过采集和分析用户行为,挖掘用户行为中蕴含的软件操作知识,构建用户行为的表述模型,从而实现智能自动化的桌面行为脚本生成,提供软件自动化使用和模拟指定真实用户桌面行为的功能。

本发明针对网络靶场和测试床中对逼真用户行为模拟和桌面环境下执行自动化软件操作、智能脚本生成的需求,提供了一种通用的用户桌面行为模拟系统及方法。该系统能够精确采集所需行为数据,既可以高度复现用户的历史行为,又可以挖掘用户行为蕴含的软件操作知识,从而实现自动化操作、脚本生成和用户桌面行为模拟。本发明是一个智能自动化的高逼真度用户桌面行为模拟系统。本发明实际部署时可提供的典型功能包括:1)用户历史行为录制与回放;2)基于模板编辑的定制化行为模拟;3)基于模型的逼真用户行为生成与模拟;4)基于局部描述指令的行为自动生成与模拟。

本发明能够较完整地捕获用户桌面行为数据,构建历史行为轨迹库和基于行为状态图的行为知识库,实现了用户行为的录制与回放等多种适用于不同场景的用户行为生成与模拟方法,适应了网络靶场、软件测试等对自动化行为生成模拟、高逼真度行为生成模拟的需求。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为通用的用户桌面行为模拟系统示意图;

图2为通用的用户桌面行为模拟系统实施例示意图;

图3为数据采集流程示意图;

图4为快照-操作事件行为链构建流程图;

图5为行为状态图构建流程图;

图6行为状态图一般结构示意图;

图7为通用的用户桌面行为模拟方法流程图。

具体实施方式

本发明提供一种通用的用户桌面行为模拟系统,如图1所示,包括:用户行为捕获模块1,行为知识构建模块2以及用户桌面行为模拟模块3;

用户行为捕获模块1用于实时采集用户行为数据;采集的数据包括:用户的鼠标键盘操作、程序运行状态、屏幕截图以及与用户操作有关的系统参数;行为知识构建模块2用于利用状态匹配,将预处理所得的快照行为链中的快照合并,对每个状态进行操作,提取操作目标;操作目标结合鼠标键盘数据组成定义操作;通过状态及操作组成的用户历史行为轨迹,挖掘出状态内及状态间的转换规则,剔除转换规则中的错误数据和噪声数据,生成包括:状态节点、状态转换规则的用户行为状态图,所述用户行为状态图为行为知识的存储形式;用户桌面行为模拟模块3用于基于已建立的用户行为状态图,采用回放、或模板定制、或模型生成,进行行为生成与模拟。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本发明提供的实施例中,如图2和4所示,用户行为捕获模块还用于用户的桌面行为轨迹通过鼠标键盘操作、gui界面和程序状态的变化表现出来。本发明捕获的数据主要包括用户输入操作(如:鼠标、键盘操作)、程序运行状态(包括进程属性及窗口属性)、界面变化(由屏幕截图体现),其中用户的各类输入操作统称为操作,程序运行状态、屏幕截图和系统参数统称为状态快照(简称快照)。通过采集和融合这些数据,可以较完整地描述和复现用户行为轨迹。本发明的数据采集模块将采集用户的所有操作,并采集用户操作前、后的快照。其中,操作的采集是被动响应式采集;为减少资源占用,快照的采集在具体实施时可分为被动触发式采集和主动周期性采集。被动触发式采集指在捕获到用户的某些操作时,采集一次或多次该操作时、操作后的快照,主动周期性采集指定期采集快照、即使没有显著的用户操作。密集的快照采集过程可能占用较高的系统资源,可根据实际情况实施不同密集程度的采集,采集模块通过多线程实现以提高实时性。

每个快照数据样本由某一时间采集到的程序运行状态、屏幕截图、系统参数构成,表示了系统桌面的状态和主要设置。具体而典型的,以windows操作系统为例,采集到的快照数据主要包括:1)鼠标当前位置;2)前端活跃窗口标题;3)前端活跃窗口句柄类名;4)前端活跃窗口位置;5)前端活跃窗口的矩形大小;6)前端活跃窗口所属进程名;7)前端活跃窗口句柄的样式;8)前端活跃窗口句柄的子句柄的类名、标题、位置、大小、样式等属性;9)前端活跃窗口所属进程的可执行文件路径:据此可提取进程所述软件的相关信息;10)屏幕截图:整个屏幕的截图,从中可提取前端窗口的图像信息和鼠标所在区域的图像信息;11)前端活跃窗口所属进程的线程数量;12)屏幕分辨率、系统中与鼠标键盘操作设置相关的参数集合(如:windows系统注册表项中的dragwidth、dragheight值,用于区分一组鼠标按下、弹起操作是原地单击操作还是拖拽操作);13)时间戳。

上述快照数据中的不同数据采集项可按需以不同频率更新(即时间上异步采集),以减小开销。例如:第12项的鼠标键盘操作设置参数用户很少更改,故可以以1天为周期更新,其余时刻采集的快照的该项数据默认使用上一次采集的值即可。

鼠标键盘消息是计算机对用户鼠标键盘操作的原始表达,经处理可得到典型的鼠标操作和键盘操作。

以windows操作系统为例,采集到的鼠标、键盘消息及其补充属性的字段包括:1)鼠标位置横坐标x;2)鼠标位置纵坐标y;3)消息时间戳t;4)鼠标事件类型type:指示事件是左键按下、左键弹起、鼠标移动等事件中的哪一个;5)键盘ctrl、alt、shift键是否按下的状态:用于区分某些键盘鼠标组合操作。每个键盘消息及其补充属性的字段包括:1)键位的虚拟键码vkey;2)键位的按下或弹起状态state;3)消息时间戳t;4)键盘shift、ctrl、alt键的按下状态及capslock大写锁定键的指示灯状态。

原始的鼠标、键盘操作数据经过预处理被分类为若干类实体操作,实体操作可按需预定义,典型的实体鼠标操作包括鼠标左键单击、双击、拖拽,鼠标右键单击、双击、拖拽,鼠标中键单击、双击、拖拽,其他鼠标功能键的单击、双击、拖拽,鼠标滚轮的滚动;典型的实体键盘操作包括预定义的单键按键操作(典型如:enter、esc、方向键)、预定义的组合按键操作(典型如:alt+tab、ctrl+s、ctrl+c、ctrl+v、ctrl+space、win+e),文本编辑操作(连续若干字符键的击键操作,期间允许space、backspace、shift、enter等文本编辑相关功能键的击键)等。

典型操作的分类方法显而易见,需要注意的是,操作的分类使用了快照数据中包含的鼠标键盘操作分类参数(典型的,在windows系统中,这些参数可在注册表中获得),用于对类似操作的区分和界定(例如:鼠标键按下并弹起的操作中,鼠标按下、弹起时的横坐标差值大于dragwidth或纵坐标差值大于dragheight时,即视为拖拽;两次鼠标单击的时间间隔大于doubleclickspeed指定的时间间隔、或横坐标差值大于doubleclickwidth、或纵坐标差值大于doubleclickheight时,即视为两次独立的单击操作,否则视为一次双击操作)。

以上述属性为主的快照、操作定义是对多种平台通用的,实际实现时所需采集项可根据不同平台的特性有改动。快照数据项一般通过读取系统文件或者调用操作系统api或桌面软件api采集得到,内容包括全屏截图、全屏截图的像素坐标范围、鼠标位置坐标、前端活跃窗口的属性集合、前端活跃窗口所述进程的属性集合。

基于上述采集和预处理方法捕获的快照-操作事件行为链,即是对用户历史行为轨迹的完整表达。

本发明提供的实施例中,行为知识构建模块还用于构建出表述桌面行为知识的行为状态图,行为状态图的构建流程如图5所示,具体步骤如下:

步骤一,利用状态匹配技术,将桌面快照按照状态实体归类,匹配时,统计各状态的到达频次、离开频次。本发明将状态的定义属性分为精确定义属性、模糊定义属性和辅助定义属性,精确定义属性包括:前端窗口所属进程名,前端窗口句柄类名;模糊定义属性包括:前端窗口截图,鼠标所在区域截图;辅助定义属性包括:前端窗口标题,前端窗口位置,前端窗口矩形大小,前端窗口句柄的样式,前端窗口句柄的子句柄属性集。一个快照被归类为一个状态的要求是:精确定义属性完全相等,且辅助定义满足一定条件(例如:窗口矩形对角线角度相差不超过指定阈值,窗口句柄的子句柄属性集相同),且模糊定义属性的各组分相似度达到阈值。其中,截图相似度由归一化的相关系数匹配法来计算,首先将两个图片等比缩放至相同大小,然后计算归一化的相关系数值作为相似度度量,具体实现可以使用opencv计算机视觉库的matchtemplate函数。

步骤二,对含操作目标的操作进行操作提取,所述含操作目标的操作主要包括:鼠标单击、鼠标拖拽、鼠标双击。本发明对操作目标的定义包括:所属状态,在状态窗口中的百分比横纵坐标(以窗口左上角为原点,窗口宽度作为横坐标百分比计算的分母、窗口高度作为纵坐标百分比计算的分母),操作目标较大图像,操作目标较小图像。其中,操作目标图像的提取方法是:以操作位置(如:鼠标单击位置)为中心,在操作所属状态的截图中分别提取一个较大的矩形区域和较小矩形区域。两个操作目标等价的条件是:所属状态相同,百分比坐标的余弦相似度达到阈值,且各自的操作目标较小图像可以匹配到另一操作目标的较大图像中。其中,操作目标较小图像到操作目标较大图像的匹配也使用归一化的相关系数匹配法,实际实现可使用opencv的matchtemplate函数,取计算结果矩阵中的最大值作为相似度度量,达到指定阈值即视为匹配成功。

步骤三,利用操作匹配技术,将每个状态下的大量操作归类为若干个操作,即去除其中的重复操作,归类的同时统计各操作的使用次数。操作的定义包括:操作源状态、操作结果状态、操作类型、操作消息序列、操作目标(部分操作无操作目标)。一个操作等价于另一个操作的要求是:操作源状态相同、操作类型相同,且操作目标等价。注意,该定义下一个源状态下多次出现的某个操作可能导致了不同的操作结果状态,这种情况下对同一个操作的不同效果还需要按照“子操作”分别统计。合并操作时,操作消息序列可以只保留一个操作的,也可以存储多个。

步骤四,构建行为状态图。基于上述步骤,原始的快照-操作事件行为链已转化为状态-操作行为链,将其中的状态视为节点、操作视为节点间的边(路径),按照该行为链逐步构建行为状态图。比如,状态a在经过“移动-双击”操作后转换成b状态,状态b经过“移动-单击”操作时转换回a状态……行为状态图的一般结构如图6所示。

步骤五,行为状态图中异常路径的过滤分为计算过滤和试探过滤两个步骤。计算过滤计算每个操作从源状态到结果状态的置信度和支持度,两者小于指定阈值时,则过滤掉该操作。其中,置信度表示经过该操作后达到某个状态的频率;支持度表示从该源状态到该结果状态的操作中,使用该操作实现状态转移的频率。试探过滤通过使用行为模拟模块,对行为状态图中的全部或部分状态及其操作进行一次行为模拟遍历,将未能模拟成功的操作路径视为异常路径剔除。最终构成的行为状态图是一个有向图,图中只有入度、没有出度的状态节点(即:不能通过操作转移到其他状态的节点)记作终止节点。可选地,异常路径的过滤可以有人工观察分析的参与,由工作人员根据可视化为图片和图片上的操作的状态图,过滤或修复异常数据。

步骤六,可选地,允许为状态、操作添加描述符,以便检索和使用。

步骤七,行为状态图以状态节点、操作的形式存入状态图数据库,可选地,可以为该状态图添加描述符,说明其使用场景(例如:针对某软件的行为状态图),以便选择使用。如果数据库中已有状态图,则还需进行图合并操作,图合并的步骤与上述状态匹配、操作匹配过程相同。可选地,最后可将原始的快照-操作事件行为链转化为状态-操作行为链,可以仅以索引号的形式,大幅度压缩地存入历史行为轨迹数据库。

补充说明:本发明中所涉及的图像、坐标计算在进行之前,会基于采集到的分辨率等数据,使用旋转、平移、缩放等预处理方法,保证计算对象的坐标参考系、像素单位一致。

本发明所述的行为状态图可以有多个,例如基于不同的用户分别构造行为状态图、以区分不同用户的行为模型。也可以通过在构建行为状态图时,记录各个状态、操作有哪些用户访问过,以示区分。

本发明提供的实施例中,用户桌面行为模拟模块还用于提供支持四类用户行为模拟场景,实际使用时可按照需求采用相应的模拟策略。包括:1)基于历史数据回放的行为复现;2)基于模板编辑的定制化行为模拟;3)基于模型的逼真用户行为生成与模拟;4)基于局部描述指令的行为自动生成与模拟。行为模拟过程运行于部署的计算机上,按照相应的策略持续产生和执行行为。下面分别叙述不同场景下的行为模拟步骤。

模拟场景1:基于历史数据回放的行为复现

步骤一,指定一条行为链作为要回放的历史行为,将当前桌面状态置于该行为链的初始状态。

步骤二,从快照-操作事件行为链数据库中,获取指定的历史行为链(形如:快照s1-操作p1-快照s2……),作为行为模拟模板,开始模拟。

步骤三,在当前状态si下,进行操作pi:如果有操作目标则先定位目标后执行操作,否则直接执行操作。

步骤四,对当前桌面状态捕获一次快照,与模板中预期的状态si+1进行对比,检测是否相同。如果是,则转到步骤五;否则表明数据存在噪声或错误,需要消除或修复,报告错误并退出。

步骤五,如果当前状态是模板中的最后一个状态,则回放完成,退出;否则转到步骤三。

模拟场景2:基于模板编辑的定制化行为模拟

步骤一,按需在行为状态图中任选由若干个状态及状态间转移操作构成的一个状态图子图(也可以是一条行为链)作为行为模板。可选地,可以在不改变操作含义和状态转换规则的范围内,适当编辑其中操作的操作序列,或添加某些不导致状态切换的鼠标移动操作。

步骤二,可选地,可以修改状态图子图(模板)中的状态转移概率或者操作的执行概率。不修改时默认按照状态图生成时的频次来计算频率来作为概率。可选地,允许指定或屏蔽模拟终止节点,或者自定其他终止条件(如:操作执行次数、状态转移次数、行为模拟时间)。

步骤三,将当前桌面状态置于状态图子图包含的任一状态节点所描述的状态下,开始模拟。

步骤四,对当前桌面状态捕获一次快照,将快照匹配到状态图子图中的状态si,在当前状态si下,按状态转移概率随机生成下一目标状态sj,在可以从状态si到达sj的操作中按操作执行概率选择出操作pij,如果该操作有操作目标则先定位目标后执行操作,否则直接执行操作。特别地,如果当前桌面快照不属于状态图子图中的任一状态,则报告该异常,并中断模拟。

步骤五,对当前桌面状态捕获一次快照,与模板中预期的状态sj进行对比,检测是否相同。如果是,则转到步骤五;否则表明数据存在噪声或错误,需要消除或修复,处理方法可以是报告错误并退出、或者屏蔽该操作继续模拟,转到步骤四。

步骤六,如果当前状态是模板中的终点状态或者达到了其他终止条件,则回放完成,退出;否则转到步骤四。

模拟场景3:基于模型的逼真用户行为生成与模拟

步骤一,模型训练。指定一个序列生成模型m,指定历史行为轨迹数据库中的部分数据,提取状态序列,构造训练集,训练模型m。例如,k阶马尔科夫模型以训练集的状态序列作为输入,训练k阶状态转移概率。可选地,允许指定或屏蔽模拟终止节点,或者自定其他终止条件(如:操作执行次数、状态转移次数、行为模拟时间)。

步骤二,初始状态检测。对当前桌面状态捕获一次快照,将快照匹配到状态s0,作为初始状态。

步骤三,对模型m输入初始状态,由模型m生成状态序列s0,s1,s2,…,sn,作为行为模板。

步骤四,在当前状态si下,在状态图中状态si下结果状态是si+1的操作中按执行概率随机选择操作pi,如果有操作目标则先定位目标后执行操作,否则直接执行操作。

步骤五,对当前桌面状态捕获一次快照,与模板中预期的状态si+1进行对比,检测是否相同。如果是,则转到步骤六;否则:如果状态si+1在状态图中,可转到步骤二继续模拟,或者报告该异常并中断;如果状态si+1不在状态图中,则报告该异常并中断。

步骤六,若当前状态是终止状态,或达到了其他终止条件,则模拟完成,退出;否则转到步骤四。

模拟场景4:基于局部描述指令的行为自动生成与模拟

步骤一,输入欲模拟的行为轨迹的局部描述指令。指令指定了顺次排列的用户行为状态图中若干个节点s1,s2,…,sn,要求在状态图中,由节点si,可以通过若干步状态转移到达节点si+1。将当前桌面状态置于状态图中任一可通过若干不状态转移到达状态s1的状态节点。

步骤二,初始状态检测。对当前桌面状态捕获一次快照,将快照匹配到状态s0,作为初始状态。

步骤三,轨迹自动补全。基于指定的局部状态序列{si|i=0,1,…,n},依次对每相邻的两个状态节点si、si+1,计算状态图中从si到si+1的一条最短路径si,0,si,1,si,2,…,si,k。其中,状态图是一个边权均为1的无负环的有向图,其最短路径可使用单源最短路径dijkstra算法计算得出。各个最短路径彼此拼接,得到的完整状态转移序列{sj}即为补全的行为轨迹,作为行为模板。

步骤四,在当前状态sj下,在状态图中状态sj下结果状态是sj+1的操作中按执行概率随机选择操作pj,如果有操作目标则先定位目标后执行操作,否则直接执行操作。

步骤五,对当前桌面状态捕获一次快照,与模板中预期的状态sj+1进行对比,检测是否相同。如果是,则转到步骤六;否则则报告该异常并中断。

步骤六,若当前状态是模板中的最后一个状态,则模拟完成,退出;否则转到步骤四。

各场景下,操作的模拟执行由行为模拟引擎实现,具体实现方法有多种。典型的可以通过模拟发送消息序列来完成。消息序列可以根据操作的消息序列属来合成,合成时需要将原消息序列中消息的时间戳转换为与其前一个消息的时间间隔(首个消息时间间隔为0)。对于移动类操作,可以直接按照操作的起点(鼠标当前位置)、终点(操作目标位置)生成线性匀速的消息序列,也可以由原操作消息序列按起止点进行坐标的平移、旋转、缩放变换来合成。

本发明还提供一种通用的用户桌面行为模拟方法,如图7所示,方法包括:

步骤一,实时采集用户行为数据;采集的数据包括:用户的鼠标键盘操作、程序运行状态、屏幕截图以及与用户操作有关的系统参数;

步骤二,利用状态匹配,将预处理所得的快照行为链中的快照合并,对每个状态进行操作,提取操作目标;操作目标结合鼠标键盘数据组成定义操作;通过状态及操作组成的用户历史行为轨迹,挖掘出状态内及状态间的转换规则,剔除转换规则中的错误数据和噪声数据,生成包括:状态节点、状态转换规则的用户行为状态图,所述用户行为状态图为行为知识的存储形式;

步骤三,基于已建立的用户行为状态图,采用回放、或模板定制、或模型生成,进行行为生成与模拟。

本方法中,步骤一还包括:捕获用户的桌面行为轨迹,通过鼠标键盘操作、gui界面和程序状态的变化表现出来;捕获的数据包括:用户输入操作、程序运行状态、界面变化;通过采集和融合捕获的数据,描述和复现用户行为轨迹;

将采集用户的所有操作,并采集用户操作前、后的快照。

本方法中,步骤二还包括:

利用状态匹配,将桌面快照按照状态实体归类,匹配时,统计各状态的到达频次、离开频次;将状态的定义属性分为精确定义属性、模糊定义属性和辅助定义属性;

对含操作目标的操作进行操作提取,所述含操作目标的操作包括:鼠标单击、鼠标拖拽、鼠标双击;

利用操作匹配,将每个状态下的操作归类为若干个操作,去除每个状态下的重复操作,归类的同时统计各操作的使用次数;

构建行为状态图;基于原始的快照-操作事件行为链转化为状态-操作行为链,将状态-操作行为链的状态视为节点、操作视为节点间的边,按照状态-操作行为链逐步构建行为状态图;

将行为状态图中异常路径的过滤分为计算过滤和试探过滤。

本方法中,步骤三还包括:

支持四类用户行为模拟场景,使用时按照需求采用相应的模拟场景;四类用户行为模拟场景包括:基于历史数据回放的行为复现;基于模板编辑的定制化行为模拟;基于模型的逼真用户行为生成与模拟;基于局部描述指令的行为自动生成与模拟;行为模拟过程运行于部署的计算机上,按照相应的策略持续产生和执行行为。

本方法能够较完整地捕获用户桌面行为数据,构建历史行为轨迹库和基于行为状态图的行为知识库,实现了用户行为的录制与回放等多种适用于不同场景的用户行为生成与模拟方法,适应了网络靶场、软件测试等对自动化行为生成模拟、高逼真度行为生成模拟的需求。

本方法包括在网络靶场中的用户行为模拟系统,基于用户行为的软件功能测试、流量生成、服务器负载测试,以及智能脚本快速生成等方面。相比于传统的鼠标键盘消息录制回放的方法和人工脚本编程方法,具有更好的鲁棒性、灵活性、可扩展性、可读性和可编辑性,提供了网络靶场大规模桌面用户行为模拟的一种解决方案,也有利于加速其他开发测试的进程、节省人力资源和成本。同时,本发明构建和使用行为知识库的方法还能用于实现基于用户行为知识的桌面操作助手。综上所述,本发明应用前景广泛。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1