一种基于数据流虚拟资产在线异常发现的方法与流程

文档序号:11829761阅读:184来源:国知局
一种基于数据流虚拟资产在线异常发现的方法与流程

本发明属互联网技术领域,具体涉及一种基于数据流虚拟资产在线异常发现的方法。



背景技术:

互联网的迅猛发展催生了电子商务的繁荣,其中虚拟资产交易的增长尤为迅速,虚拟资产是指在网络世界中存在的具有竞争性、持久性以及可以交换或者买卖的物品,包括网上银行、网络帐号、网游装备武器、虚拟货币等。

目前,我国已经开展了基于eID的网域空间虚拟资产管理与保全技术研究,以实现对虚拟资产的规范统一管理。虚拟资产保全系统全面准确的记录了对虚拟资产的各种操作,但如何从这些记录数据中间挖掘出异常的交易行为仍然面临诸多挑战。针对网络虚拟资产交易信息规模巨大,增长速度非常快的特点,自动地从海量的虚拟资产交易信息中发现以及预测异常行为,从而对已经发生以及可能发生的犯罪行为进行有效的检测显得极为迫切。

异常发现的主要目的是根据已知的异常数据训练并建立一个异常检测模型。异常发现方法主要包括基于统计学、基于信息论、基于谱、基于机器学习的异常发现技术,其中基于机器学习的异常发现技术又主要包括基于聚类、基于分类、基于序列模式的异常发现技术。基于聚类的异常发现技术只能用于离线分析,把所有数据进行聚类之后,那些个体数量小于某一阈值的族群被视为是异常,聚类算法的优势在于它不需要历史数据带有标签。异常发现从本质上讲可以看作是个分类问题,就是把数据进行分类,分为正常或异常。异常发现技术主要是使用带标签的历史数据进行训练,得到分类器,然后运用这个分类 器对新来的数据进行分类。基于序列模式的异常发现技术主要是通多用户的操作时序数据挖掘出用户的一些正常行为模式和异常行为模式,之后对用户新数据提取行为模式,与数据库中的正常行为模式和异常行为模式进行匹配,看当前操作是否属于异常。

全拥等人[1]提出了一种基于共生矩阵的电子商务交易日志的异常检测方法,该算法利用共生矩阵对用户的交易行为建模,通过PCA方法建立共生矩阵空间,从而得到用户正常交易模式。在检测阶段,对待数据产生的共生矩阵进行了修正并获取用户的交易模式,通过矩阵2-范数计算用户交易模式和其正常模式之间的距离并以此来判断用户的交易行为是否异常。

姬炳帅等人[2]提出了另一电子商务的用户行为异常检测方法,首先根据用户行为日志数据的特点将其分割为静态属性集和操作序列集,然后利用基于轴属性的Apriori算法和GSP序列模式挖掘算法分别对这两种类型的数据集进行模式挖掘,在此基础上建立用户的正常行为模式,最后使用基于先后顺序的模式比较方法将用户当前的行为模式与其历史正常行为模式进行匹配,以此来判断该用户的交易行为是否异常。

赵学良[3]提出了一种基于滑动窗口模型的数据流离群点检测方法,该方法使用简单的滑动窗口对数据流的新旧数据更迭进行有效管理,并且算法采用的数据结构有效地降低了近邻集统计时的计算量,使得算法性能较优。

然而,上述前两种[1,2]虚拟资产中的异常检测方法都是离线进行分析,离线分析是针对历史数据进行分析,如果发现异常数据,那么再对异常数据进行追溯,找到异常源头,因此,时效性很低。

上述第三种[3]异常发现方法所寻找的离群点是指当前滑动窗口中的异常点,而不是全局的异常点,而且也没有给出基于数据流的离群点发现技术的框架。

[1]全拥,李树栋,贾焰,等.基于共生矩阵的电子商务交易日志异常检测[J].中国电子商情:通信市场,2013(4):39-45。

[2]姬炳帅,李虎,韩伟红,等.面向电子商务的用户异常行为检测研究[J].信息网络安全,2014(9):80-85。

[3]赵学良.基于滑动窗口模型的数据流离群点检测研究[D].重庆大学,2012。



技术实现要素:

针对以上问题,本发明提供一种基于数据流虚拟资产在线异常发现的方法,可实时地对异常进行检测,适用于实时检测虚拟资产操作中的异常行为。

本发明的技术方案如下:

一种基于数据流虚拟资产在线异常发现的方法,包括以下步骤:

(1)数据处理:用户操作行为日志数据流流入数据窗口中,通过对数据窗口中数据的预处理提取到数据概要,已经处理过的数据流直接流出数据窗口,存到永久存储器中;

(2)离线分析:数据库中的数据定期计算一次,用模式生成算法挖掘出用户的正常行为模式和异常行为模式;

(3)在线分析:系统实时地对滑动窗口中的数据进行分析,提取当前的行为模式,与模式库中的正常行为模式和异常行为模式进行匹配,看是否属于异常,若被判为异常,进行报警处理。

其中,所述的步骤(2)中包括以下步骤:

1、数据的存储:从数据窗口流出的数据流流进永久存储器时默认为正常行为标签,当实时分析模块检测到某个用户操作为异常时,调整数据库中对应数据的标签。同时,调整数据库中对应数据的标签还包括人工反馈性的调整,如 当系统判断某用户行为异常并发出警报后被人工确认为是错误警报,需要把信息反馈到数据库中去调整相应数据的标签。应对虚拟资产用户操作行为海量数据的存储一般采用nosql的数据库存储,如Cassandra。

2、模式的生成:对离线分析模块数据库中的数据,系统定期用模式生成算法定期计算一次,得到每个用户的正常行为模式库和异常行为模式库。模式生成算法采用多种算法,如关联规则、序列模式、谱理论、基于时空序列挖掘等;

3、模式的更新:对数据库中数据进行计算更新模式时,只使用用户最后一次登出之前的所有操作行为数据进行分析。

其中,所述的步骤(3)中包括以下步骤:

1)提取数据概要:只对用户登录到登出之间的数据进行处理,只记录登录操作的时间,节省内存空间而保证不丢失重要信息,且所用数据结构有利于后续计算;

2)提取当前用户行为模式:每一次用户有新的操作行为数据进入时,都对该用户对应的数据概要进行当前用户行为模式提取;

3)行为模式匹配:提取出的行为模式与离线分析模块中生成的正常行为模式库和异常行为模式进行匹配。

进一步的,所述的步骤1)中还包括以下步骤:

步骤1:首先创建一个新的HashMap,命名为dataProfile,用来存数据概要;

步骤2:读到缓冲区的一条记录,验证该记录中用户ID字段是否为空,若为空,直接跳到步骤5;否则,进入下一步骤;

步骤3:验证当前数据概要dataProfile中是否存在key为当前用户ID的记录,若不存在,则在dataProfile中添加一条key为当前用户ID的记录,这种情 况操作类型肯定为登录操作,需要记录登录时间;否则,进入下一步骤;

步骤4:查看当前操作类型是何类型,若为登出操作,则将dataProfile中key为当前用户ID的记录删除;若为其他操作,则在dataProfile中key为当前用户ID的记录的value中的操作序列中加入当前操作类型和相应商品ID;

步骤5:读取缓冲区下一条记录,进入循环。

进一步的,所述的步骤3)中还包括以下步骤:

步骤a:与异常行为模式库中异常行为模式匹配;

步骤b:若匹配成功,则将其判断为已知的异常;

步骤c:若未匹配成功,则再与正常行为模式匹配,若匹配成功,则将其判断为正常,若未匹配成功,则将其判断为未知的异常;

步骤d:确认为异常后,进行以下四个操作:①实时反馈给前端,发出异常报警,②在数据概要中将该用户的记录删除,③把该用户加入到一个异常用户队列中去,不再对其进行异常检测了,直至该用户发送登出行为,将其从异常用户队列中删除,④把异常反馈给数据库,调整相应标签。

本发明的有益效果是:采用从数据窗口流出的数据流进永久存储器时默认为正常行为标签,当实时分析模块检测到某个用户操作为异常时,再去调整数据库中对应数据的标签,可使得数据窗口中的数据不需要等到检测操作完成并判断好它属于哪个标签就可以直接流出,可节省内存空间,防止数据被堵塞在数据窗口中。

由于用户为异常操作可在登出操作之前被判断出来,且实时分析模块检测发现异常之后可以立马反馈给离线分析模块去调整数据库中对应数据的标签,因此,可确保用户最后一次登出之前的所有数据都为更新过标签的。

与现有技术相比,本发明将数据流的技术应用到虚拟资产的异常发现中,设 计了基于数据流的虚拟资产在线异常发现技术框架,使得系统能更快速有效地实现实时地检测异常,从而更好地预防用户的损失。

附图说明

图1为本发明的基于数据流虚拟资产在线异常发现框架图。

图2为本发明的提取数据概要生成算法流程图。

图3为本发明的硬件部署环境图。

具体实施方式

为了便于理解本发明,以下结合说明书附图和实施例对本发明作进一步说明。

本发明提供一种基于数据流虚拟资产在线异常发现的方法,其框架图如图1所示,包括在线分析模块和离线分析模块。首先,用户操作行为日志数据流流入数据窗口中,通过对数据窗口中数据的预处理提取到数据概要,已经处理过的数据流直接流出数据窗口,存到永久存储器中。在离线分析模块中,数据库中的数据将被定期计算一次,用模式生成算法挖掘出用户的正常行为模式和异常行为模式。在线分析模块中,系统会实时地对滑动窗口中的数据进行分析,提取当前的行为模式,然后再与模式库中的正常行为模式和异常行为模式进行匹配,看是否属于异常。若被判为异常,则进行报警处理。

在线分析模块:在线分析模块主要有三个工作,即提取数据概要、提取当前用户行为模式、行为模式匹配。表1是某个时间段的用户操作行为日志流的简单示例,该数据流包括12条记录,时间跨多为50秒,有三个用户参与。此示例仅展示用户、IP地址、时间、操作行为类型、相关商品ID五个字段,现实数据中会复杂许多。提取数据概要的目的是为了尽可能地节省宝贵的内存空间而又要保证不丢失重要信息,并且做到所用的数据结构需要有利于之后的计 算。所以,本发明提取数据概要模式主要坚持以下两条要求:

A.只对用户登录到登出之间的数据进行处理;

B.只记录登录操作的时间。

表1 用户操作行为日志流的简单示例

表2是根据表1中数据示例产生的用户操作行为数据概要简单示例,数据概要主要包括用户ID、IP地址、登录时间、操作序列四个字段。数据概要以每个用户为单位存于List当中,其中的操作序列该字段也是一个List,当用户有新的操作行为数据进入数据窗口之后,提取其操作类型和相关商品ID加入到操作序列这个List中。

表2 用户操作行为数据概要简单示例

提取数据概要具体算法如图2所示,主要步骤为:

步骤1:首先创建一个新的HashMap,命名为dataProfile,用来存数据概要。

步骤2:读到缓冲区的一条记录,验证该记录中用户ID字段是否为空,若为空,直接跳到步骤5;否则,进入下一步骤。

步骤3:验证当前数据概要dataProfile中是否存在key为当前用户ID的记录,若不存在,则再dataProfile中添加一条key为当前用户ID的记录,这种情况操作类型肯定为登录操作,需要记录登录时间;否则,进入下一步骤。

步骤4:查看当前操作类型是何类型,若为登出操作,则将dataProfile中key为当前用户ID的记录删除;若为其他操作,则在dataProfile中key为当前用户ID的记录的value中的操作序列中加入当前操作类型和相应商品ID。

步骤5:读取缓冲区下一条记录,进入循环。

每一次用户有新的操作行为数据进入时,都对该用户对应的数据概要进行当前行为模式提取,提取出的行为模式与离线分析模块中生成的正常行为模式库和异常行为模式进行匹配。匹配过程具体为:先与异常行为模式库中异常行为模式匹配,若匹配成功,则将其判断为已知的异常;若未匹配成功,则再与正常行为模式匹配,若匹配成功,则将其判断为正常,若未匹配成功,则将其判断为未知的异常。确认为异常后,需要做四个操作:①实时反馈给前端,发出异常报警;②在数据概要中将该用户的记录删除;③把该用户加入到一个异常用户队列中去,不再对其进行异常检测了,直至该用户发送登出行为,将其从异常用户队列中删除;④把异常反馈给数据库,调整相应标签。

表3是根据表2中的数据概要对其中的用户user1所提取的一个简单行为模式示例,其表示用户user1在19点左右在IP地址220.79.15.21登录时长为30分 钟以内,相关商品的价格为0-100元区间,操作序列为登录---浏览了与加入购物车的商品相似度为0.84的商品---浏览了加入购物车的商品---加入购物车。

表3 用户user1提取的简单行为模式示例

表4是行为模式库中用户user1的部分正常行为模式的示例,包括两条IP地址及时间的关联规则;关注商品价格区间的百分比,示例中用户user1关注的商品80%是0-100元的,19%是100-200元的,1%是200-500元的;三条操作序列的频繁模式。

表4 用户user1部分正常行为模式的示例

模式匹配阶段,采用的步骤是:①首先将用户当前操作行为模式中的静态属性(IP地址及时间、商品价格)与正常行为模式库中的所有关联规则进行比较,如果全部匹配成功,则此次行为判断为正常;②否则,将当前用户操作行为模式中的操作序列与正常行为模式库中的所有操作序列进行比较,当相似度超过所设定的阈值时将此次行为判断为正常,否则判断为异常。所给示例中, 静态属性的匹配时发现“IP地址及时间”匹配不上,正常行为模式在IP地址为220.79.15.21的登录时间一般在11点左右,而这次出现在19点左右,进入操作序列的匹配;计算操作序列的相似性目前有很多方法可以使用,该点不是本发明重点研究之处,该例中使用Deep-Simi算法计算得到当前行为模式中的操作序列与所给示例正常行为模式中的第一条操作序列相似度为0.7,而阈值一般设在0.4-0.6之间,所以将此次行为判断为正常。

离线分析模块:主要是包括数据的存储和模式的生成。应对虚拟资产用户操作行为海量数据的存储一般采用nosql的数据库存储,比如Cassandra。值得注意的是,从数据窗口流出的数据流进永久存储器时默认为正常行为标签,当实时分析模块检测到某个用户操作为异常时,再去调整数据库中对应数据的标签。这样做的一个好处就是数据窗口中的数据不需要等到检测操作完成并判断好它属于哪个标签就可以直接流出,这样很节省内存空间,不然将会有很多数据都被堵塞在数据窗口中。同时,调整数据库中的标签还应包括人工反馈性的调整,比如当系统判断某用户行为异常并发出的警报后被人工确认为是错误警报,那么我们需要把这个信息反馈到数据库中去,去调整相应数据的标签。

对离线分析模块数据库中的数据,系统会定期用模式生成算法定期计算一次,得到每个用户的正常行为模式库和异常行为模式库。模式生成算法可以采用多种算法,比如关联规则、序列模式、谱理论、基于时空序列挖掘等等。在对数据库中数据进行计算更新模式时,我们只使用用户最后一次登出之前的所有操作行为数据进行分析就好。因为数据库中的有一部分最新的数据是没有调整过标签的,标签都是默认为正常的,而我们能确保用户最后一次登出之前的所有数据都是更新过标签的,这是因为如果用户为异常操作肯定是会在登出操作之前就会被判断出来,实时分析模块检测发现异常之后可以立马反馈给离 线分析模块去调整数据库中对应数据的标签。

本发明的硬件部署环境图如图3所示,本发明硬件可扩展性强,当需求增加时,只需增加集群节点即可。

实施例1

一种基于数据流虚拟资产在线异常发现的方法,其虚拟资产管理系统的硬件具体信息如下:

虚拟资产数据流处理集群:2个节点,节点配置为4核CPU、32G内存、Centos6.564位系统;

行为模式计算集群:5个节点,节点配置为4核CPU、16G内存、Centos6.564系统;

虚拟资产操作日志数据库:1个节点,节点配置为2核CPU、8G内存、2TB硬盘、Centos6.564位操作系统;

行为模式库:1个节点,节点配置为2核CPU、8G内存、2TB硬盘、Centos6.564位操作系统。

如上述的硬件配置环境能够应对1W级别用户的并发操作。虚拟资产数据流处理集群实时地不断流入的数据提取数据概要,将数据概要存储在内存中,处理过的数据直接流出滑动窗口存到虚拟资产操作日志数据库中。行为模式计算集群定期不断地去访问虚拟资产操作日志数据库中的数据,计算用户行为模式,得到新的行为模式后去更新行为模式库。与此同时,虚拟资产数据流处理集群根据数据概要中的信息提取用户的当前行为模式,再去访问行为模式库中的该用户的正常行为模式和异常行为模式,分别进行匹配,验证当前操作是否属于异常。若判断为异常,需要将异常标签反馈给虚拟资产操作日志数据库。

与现有技术相比,本发明将数据流的技术应用到虚拟资产的异常发现中,设 计了基于数据流的虚拟资产在线异常发现技术框架,使得系统能更快速有效地实现实时地检测异常,从而更好地预防用户的损失。

以上是对本发明进行了示例性的描述,显然本发明的实现并不受上述方式的限制,只要采用了本发明技术方案进行的各种改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围内。

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