一种基于非监督机器学习的用户可疑行为分析方法及系统与流程

文档序号:19219265发布日期:2019-11-26 01:59阅读:217来源:国知局
一种基于非监督机器学习的用户可疑行为分析方法及系统与流程

本发明涉及一种基于非监督机器学习的用户可疑行为分析方法及系统,属于信息安全技术领域。



背景技术:

现有的单点单源安全防御系统(如ids、firewall、日志审计等)虽然在一定程度上提高了网络的安全性,但由于彼此间缺乏有效的协作,无法真正实现全网的整体安全态势监控;现有的用户操作行为审计通过已知规则着重对用户单条操作记录进行分析,从单一的实体和时刻对用户操作行为进行研究。

国网各级电力调度中心虽然均制定了详细的安全管理方案并运用安全事件分析方法,对整体的安全防护工作起到了良好的支撑作用,但随着信息技术以及安全防护技术的发展,一些较为隐蔽的问题也逐渐显现出来。主要体现在以下几方面:(1)缺乏有效的安全事件分析方法。目前仅基于单链路安全事件告警,不具备基于多个链路事件的综合分析处理能力。对同一类型事件的多次告警未进行有效整合,存在重复告警;对各类安全事件仅仅是做日志收集,欠缺对安全事件的归类分析,无法定位告警原因,尚未提供有效解决措施;(2)电力监控系统网络安全分析技术滞后。内网安全监视平台现有技术架构主要是满足告警日志的收集与展示需求,对于大数据量的关联处理、挖掘、计算能力存在不足,难以实现各类安全事件的分析、预警并有效发现、判别出威胁事件,此外,现场运行中发现海量日志存储等也存在问题。



技术实现要素:

本发明的目的在于提供一种基于非监督机器学习的用户可疑行为分析方法及系统,以解决现有技术中导致的上述多项缺陷或缺陷之一。

为达到上述目的,本发明是采用下述技术方案实现的:

第一方面,本发明提供了一种基于非监督机器学习的用户可疑行为分析方法,方法包括如下步骤:

根据用户实时操作行为数据生成实时的用户行为链;

对实时的用户行为链进行向量化处理,获取用户实时行为向量;

根据用户历史操作日志和k-mean++算法,生成聚类模型;

加载聚类模型,对用户实时行为向量进行离群点分析,根据离群点的行为链数据生成预警信息。

优选的,通过对用户实时操作行为数据为进行窗口计算,生成实时的用户行为链。

优选的,通过加载idf模型对实时的用户行为链进行向量化处理;所述idf模型包括if-idf算法。

进一步的,生成聚类模型的方法包括如下步骤:

根据用户历史操作日志,生成用户历史行为链;

使用if-idf算法对用户历史行为链进行向量化处理,获取用户历史行为向量;

使用k-means++算法,加载用户历史行为向量,进行聚类模型训练。

进一步的,方法还包括:

对用户历史操作日志进行链式分析,生成行为链md5;

根据md5值,对用户历史操作日志进行聚合操作,生成用户历史行为链数据。

进一步的,方法还包括将预警信息写入分析搜索引擎。

第二方面,本发明提供了一种基于非监督机器学习的用户可疑行为分析系统,系统包括:

第一生成模块:用于根据用户实时操作行为数据生成实时的用户行为链;

第一获取模块:用于对实时的用户行为链进行向量化处理,获取用户实时行为向量;

第二生成模块:用于根据用户历史操作日志和k-mean++算法,生成聚类模型;

分析模块:用于加载聚类模型,对用户实时行为向量进行离群点分析,根据离群点的行为链数据生成预警信息。

进一步的,第二生成模块包括:

第三生成模块:用于根据用户历史操作日志,生成用户历史行为链;

第二获取模块:用于使用if-idf算法对用户历史行为链进行向量化处理,获取用户历史行为向量;

训练模块:用于使用k-means++算法,加载用户历史行为向量,进行聚类模型训练。

进一步的,系统还包括将预警信息写入分析搜索引擎的写入模块。

第三方面,本发明提供了一种非监督机器学习的用户可疑行为分析系统,包括处理器及存储介质;

所述存储介质用于存储指令;

所述处理器用于根据所述指令进行操作以执行根据权利要求1~6任一项所述方法的步骤。

本发明提供的基于非监督机器学习的用户可疑行为分析方法及系统,通过用户历史操作日志和k-means++算法生成聚类模型,根据用户实时操作行为数据生成实时的用户行为链,对实时的用户行为链进行向量化处理,获取用户实时行为向量,加载聚类模型,对用户实时行为向量进行离群点分析,根据离群点的行为链数据生成预警信息,将预警信息写入搜索引擎以提示用户该行为链与偏离历史存在潜在威胁;实现了对用户行为的跨多实体和多时刻的综合分析,可以有效捕捉用户存在的可疑行为。

附图说明

图1是根据本发明实施例提供的试验环境;

图2是根据本发明实施例提供的用户可疑行为分析方法流程图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本发明实施例提供一种基于非监督机器学习的用户可疑行为分析方法,参照图2,方法包括如下步骤:

步骤1:建立用户历史行为链;

对用户历史操作日志进行链式分析,生成行为链md5;根据md5值,对用户历史操作日志进行聚合操作,生成用户历史行为链数据:

步骤1.1:建立行为链链根

用户登陆系统后将根据其srcip(源ip)、logintime(登陆时间)、username(用户名)计算其行为链根md5值并对相关信息进行存储。其本机操作将以根md5值为标识进行记录,记录格式为:md5值、pts、操作、实际命令、操作时间、是否告警。

步骤1.2:建立行为链跳转链节点

当用户发生变更或实体间跳转(如从a主机跳转到b主机)时根据srcip(源ip)、dstip(目的ip)、dstport(目的端口)、logintime(登陆时间)、username(用户名)计算其行为链本次跳转md5值和与其前序md5(如根md5)值关联的premd5值并对相关信息进行存储。其跳转后的操作将以本次跳转生成的md5值为标识进行记录,记录格式为:md5值、pts、操作、实际命令、操作时间、是否告警。

步骤1.3:建立用户行为链系列跳转链节点

当用户继续发生行为链式变更时重复上述步骤2对其行为进行记录。该算法的特点在于将用户行为抽象为一系列连续的链式动作,并且可以通过md5值进行行为链从源头到结尾的快速搜索,为用户行为的跨多实体和多时刻综合分析提供前提条件,并为后续的快速行为追溯提供支撑。

步骤2:对用户历史行为链进行向量化处理,获取用户历史行为向量,生成idf模型并存储用户历史行为链的短文,idf模型包括tf-idf算法:

根据用户历史操作日志,将用户的历史操作行为数据进行链式处理后,将用户历史行为链抽象为一篇篇记录用户历史操作行为并能反映其行为链背后意图和目的的用户历史行为链短文。

在本发明实施例中采用tf-idf(词频-逆文本频率)算法来实现用户历史行为链的向量化。

tf-idf(词频-逆文本频率)算法是一种反映文集中术语对一篇文档重要性的特征向量化方法,该方法被广泛应用于文本挖掘领域。

tf-idf(词频-逆文本频率)度量由tf和idf生成,表示为:

tfidf(t,d,d)=tf(t,d)·idf(t,d)(1)

词频tf(t,d)表示术语t出现在文档d中的次数,如果仅用词频来衡量术语的重要性,很容易过分强调频繁出现但信息量少的术语。如果术语在文集中出现的非常频繁,这意味着它不含有特定文档的特殊信息。

逆文本频率idf(t,d)是一个术语提供信息量的数值度量,表示为:

t代表一个术语,d代表一篇文档,d代表文集,文档频率df(t,d)表示含有术语t的文档个数,|d|表示文集中文档总数。其中因为使用了对数,所以当术语出现在所有文档中时,它的idf值为0。

步骤3:将根据步骤2获取的用户历史行为向量输入聚类分析算法,进行聚类模型训练;

在本实施例中使用的聚类分析算法为k-means++算法;指定的聚类中心为2至15个,在进行模型训练的过程中通过计算不同中心个数的轮廓系数来对聚类模型进行评价选择,选取轮廓系数最高的聚类模型进行存储,用于后续的用户实时操作行为的分析。

其中,轮廓系数s(j)计算公式如下:

其中a(j)=average(j向量到所有它属于的簇中其他点的距离),b(j)=min(j向量到各个非本身所在簇的所有点的平均距离)。

样本集合的轮廓系数为所有样本轮廓系数的平均值,所述样本集合为根据步骤2获取的进行用户历史行为链向量化处理的用户历史行为向量。

轮廓系数取值范围为[-1,1],同类别样本距离越相近且不同类别样本距离越远,分数越高。进行聚类模型训练时选取轮廓系数最高的聚类模型进行存储。

应当清楚的是,k-means++算法起源于k-means算法,k-means(k均值聚类)是一种常用的聚类分析方法。其目的在于将n个观测值划分为k个类,k-means算法描述如下:

a:从数据集中随机取k个样本作为初始聚类中心c={c1,c2,…ck};

b:针对每个样本,计算样本到k个聚类中心的距离并将该样本分到距离最小的中心对应的类中;

c:针对每个类别,重新计算其聚类中心,第i个聚类中心ci的计算公式为:

其中,x表示样本。

d:重复步骤b和步骤c直到聚类中心的位置不再变化。

k-means聚类算法的核心问题是找到类内方差最小的聚类中心,类内方差为每一个被聚类到该中心的点到该中心的平方距离之和,然而求任意输入的k-means核心问题精确解是个难题,寻找近似解(通常称为lioyd’s算法或k-means算法)的标准方法被广泛使用并经常能快速找到合理解。然而,k-means算法至少有两个主要理论缺陷:

已证明该算法在最坏情况下的运行时间是超多项式时间,算法耗时长;

与最优聚类相比,关于目标函数的近似值可能是任意差的,所以不保证一定能够得到全局最优解。

k-means++算法通过在进行标准k-means优化迭代之前指定初始化聚类中心过程来解决k-means算法的第二个缺陷,该算法能够保证找到一个时间复杂度为o(logk)的近似解,算法描述如下:

s1:随机选取一个样本作为初始聚类中心;

s2:计算每个样本与当前聚类中心间的最短距离,最短距离为与最近的一个聚类中心的距离,用d(x)表示;接着计算每个样本被选为下一个聚类中心的概率然后按照轮盘选择出下一个聚类中心;

其中,x表示样本,x表示样本集合。

s3:重复第2步直到选择出k个聚类中心;

s4:之后的过程与k-means算法中步骤b、步骤c、步骤d相同。

步骤4:对实时的用户行为链进行离群点分析;

对用户实时操作行为数据进行时间窗口计算生成实时的用户行为链,假定窗口长度为2小时(窗口的持续时间),滑动间隔为1小时(执行窗口操作的间隔)。

加载根据步骤2获取的idf模型对实时的用户行为链进行向量化处理,获取用户实时行为向量。

加载根据步骤3获取的聚类模型对用户实时行为向量进行离群点分析;

将被判定为离群点的行为链数据生成预警信息写入elasticsearch(分析搜索引擎),并提示用户该行为链与偏离历史存在潜在威胁。本发明实施例的计算框架采用spark(分析框架)通用分析引擎,数据流取自kafka(分布式流平台),分析结果写入elasticsearch,历史数据取自传统数据库。实验环境参照图1。

本发明实施例提供了一种能够用于执行上述方案的基于非监督机器学习的用户可疑行为分析系统,系统包括:

第一生成模块:用于根据用户实时操作行为数据生成实时的用户行为链;

第一获取模块:用于对实时的用户行为链进行向量化处理,获取用户实时行为向量;

第二生成模块:用于根据用户历史操作日志和k-mean++算法,生成聚类模型;

分析模块:用于加载聚类模型,对用户实时行为向量进行离群点分析,根据离群点的行为链数据生成预警信息。

所述第二生成模块包括:

第三生成模块:用于根据用户历史操作日志,生成用户历史行为链;

第二获取模块:用于使用if-idf算法对用户历史行为链进行向量化处理,获取用户历史行为向量;

训练模块:用于使用k-means++算法,加载用户历史行为向量,进行聚类模型训练。

系统还包括将预警信息写入分析搜索引擎的写入模块。

本发明实施例还提供了一种基于非监督机器学习的用户可疑行为分析系统,也同样能够用于执行前述的方法,包括处理器及存储介质;

所述存储介质用于存储指令;

所述处理器用于根据所述指令进行操作以执行前述方法的步骤。

本发明实施例提供的方案可以跨多实体和多时刻的综合分析用户行为,挖掘与历史数据存在较大差异的可疑行为,能够有效捕捉用户存在误操作、破坏性操作等可疑行为,能够提高电力监控系统用户安全行为分析的可行性、时效性和准确性,实验证明,该方法性能优良,能有效分析用户存在潜在威胁的可疑行为。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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