本发明涉及网络安全技术领域,具体涉及一种基于机器学习算法的终端异常行为识别方法。
背景技术:
终端异常行为识别是保证网络安全和信息安全的重要环节,该技术可以及时发现终端的异常威胁行为,防止网络攻击、病毒传播、信息泄露,从而保护网络空间和数据安全。目前主要有以下两种解决方案:
1)通过建立异常行为特征库、规则库,通过特征匹配或规则匹配确定异常行为。采用这种方法可以直观快速的发现已定义的异常行为,但其局限在于需要专家人为定义规则库且难以发现规则库以外的异常行为,静态规则容易被颠覆,也难以动态更新。
2)通过分类模型进行终端行为识别,该方法首先需要根据终端产生的数据判断终端行为是正常还是异常,从而建立大量用于训练分类模型的样本。该方法的局限性在于终端行为的判断取决于人为定义的规则或阈值,无法分辨新型异常行为。另外,该方法需要大量异常行为样本用于建立分类模型,由于在网络安全领域这类黑样本相较白样本更稀缺,难以获取足够的异常行为样本用于训练模型,故可能导致分类模型可靠性不足的问题。
针对以上列出的现有技术存在的缺陷,需要提出更为合理的技术方案,对终端异常行为进行识别,解决静态规则、人为打标以及黑样本稀缺等问题。
技术实现要素:
为了克服上述内容中提到的现有技术存在的缺陷,本发明提供了一种基于机器学习算法的终端异常行为识别方法,旨在通过实现机器学习,使系统快速识别并更新终端的异常行为类型,及时有效地动态更新规则,提高异常行为识别的有效性;因而可以在训练样本的构建过程中,实现去人工打标的工作,由机器识别判定样本类型,克服了样本类型稀缺的问题,帮助提高构建模型的效率,提高了模型的可靠性。
为了实现上述目的,本发明具体采用的技术方案是:
一种基于机器学习算法的终端异常行为识别方法,包括:
获取终端行为日志数据;
对所述日志数据进行清洗和集成,得到以终端单位时间内的行为数据为统计特征的样本集;
对样本集按最优簇类数进行聚类,得到聚类模型;
持续对终端最近一段单位时间内的行为数据进行清洗、集成,并获得实时样本集,使用聚类模型对实时样本集进行类别划分,将样本划分至距离最近且距离小于阈值的簇心所属簇类,若样本距离所有簇心均大于阈值,则进行增量学习;
利用增量学习的样本补充训练样本集,通过补充后的样本训练集构造更新的聚类模型,同时将补充的样本划分至新的簇心,以此作为一个行为模式的识别类型。
上述公开的识别方法,通过对实时样本集内的样本进行类别划分,对属于既定行为模式识别类型的样本划分至对应的簇类中;对于暂无最优簇类的样本,将其进行重新聚类后划分至新的类别,以该类别作为新的行为模式识别模型,可通过机器学习后自行将大量的陌生样本进行归类处理,增加聚类模型内的样本数,以实时增加样本和更新样本集,解决样本稀缺的问题;在大量样本的支持下,训练得到的聚类模型具有更强的识别能力和准确性,因此在实际应用过程中可准确识别出终端的异常行为,提高终端系统的安全性。
进一步的,训练聚类模型需要大量的样本支持,在进行样本集构造时,包括如下步骤:
对日志数据进行清洗和空值填充,对处理后的数据按照单位时间进行分块,构造单维度统计特征;
利用处理过的数据构造多维度统计特征,得到以终端单位时间内的行为数据为统计特征的样本集,并对样本集进行z-score标准化处理。
所述的单位时间可根据需要进行设定,包括每分钟、每小时、每天等单位时间,在满足数据收集、存储、计算分析等性能的前提下,可自行规定单位时间的长短,以能够快速对分成块的日志数据进行处理。
由于日志数据中存在噪音和无用数据,通过清洗后筛选出可用的数据,再进行处理和后续使用。
进一步的,每个数据存在多个维度的评价指数,对数据进行多方面的评价后可评价该数据以及对应行为的危险性,进而判定行为是否异常,因此,所述的多维度统计特征包括占比类特征和风险指数类特征。
再进一步,所述的占比类特征至少包括不存在签名占比、签名验证不成功占比和不在白名单占比。
再进一步,所述的风险指数类特征至少包括端口连接状态风险指数和服务状态风险指数,所述风险指数通过如下方法进行计算:
风险指数=a·bt
其中,a表示各类型项目风险系数矩阵;b表示各类项目对应的项目数矩阵。经过风险指数的计算,可得到以单位时间内行为数据为统计特征的数据集。
进一步的,由于聚类算法属于无监督学习,通过轮廓系数对聚类效果进行评价,轮廓系数综合表示各样本与其同簇类的聚合度(即类内聚合度与类间离散度),因此轮廓系数值越大表示聚类效果越好。在确定最优簇类数并进行聚类时,采用如下方法确定轮廓系数si:
其中,ai表示样本i与其同簇类各点距离的均值(即类内聚合度),bi表示样本i到其他簇类质心距离的最小值(即类间离散度),si表示训练集内样本点i的轮廓系数,且-1≤si≤1,整个聚类模型的聚合度是训练集内各样本点的轮廓系数的均值。
进一步的,上述技术方案中明确了根据轮廓系数确定聚类模型聚合度的计算方法,则在将样本划分至对应的簇类前,还需根据轮廓系数确定最优簇类数,具体包括如下步骤:
构建单样本轮廓系数算法,得到每个样本的轮廓系数;
计算所有样本轮廓系数的均值,得到整个样本集被聚为k类后的轮廓系数sk;
遍历簇类数k,2≤k≤n,n为正整数,得到簇类数为2~n时的n-1个轮廓系数sk,以其中最大的sk对应的k值作为最优簇类数。
根据以上方法确定的最优簇类数,进而确定样本对应的簇类,从而可进行划分和聚类。
进一步的,若样本均不适于已经划分好的簇类,则对样本进行增量学习并重新划分,以此实现样本集的扩充,增加样本数,并细化行为识别模型的种类,增加对终端行为类型的判断准确性。进行增量学习以划分至新的行为识别模型的样本,通过如下步骤进行处理:
收集所有需要进行增量学习的样本并作为新增样本加入训练样本集,得到更新后的训练样本集;
使用更新后的训练样本集训练聚类模型,包括确定最优簇类数和类别划分,更新的聚类模型将新增样本划分至新的簇心;
对该新的簇心类别进行定义,并作为新的行为模式识别模型。
与现有技术相比,本发明具有的有益效果是:
1)本发明针对一般模型对新型异常行为不敏感的问题,提出基于增量机器学习算法的终端异常识别方法,可以实现未定义终端行为模式的动态发现和更新,解决现有模型的静态规则问题,提高异常行为识别能力的有效性,具有广阔的应用价值。
2)本发明针对网络安全领域黑样本稀缺导致的分类可靠性问题,提出使用无监督学习算法对终端行为模式进行识别和分类,实现异常行为准确检测和细分,并可通过人为参与对划分的行为类别进行进一步的定义。
3)本发明实现样本集去人工打标化,避免人为误判,提升模型效率,具有实际使用价值。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅表示出了本发明的部分实施例,因此不应看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为识别方法的示意图。
图2为实施例中构造样本集的示意图。
图3为未定义行为模式(即样本无法划分至任一簇类)的动态发现和更新过程。
图4为实施例中终端行为识别的总体过程示意图。
图5为实施例中确定最优簇类数的示意图。
具体实施方式
下面结合附图及具体实施例对本发明做进一步阐释。
在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
实施例
现有技术对终端行为进行识别,存在过度依赖样本模型、正确率低以及需要大量人工标记、可靠性差的缺陷,本实施例提出了一种改进的方案,对现有技术中存在的问题进行改进,以达到更优异的识别效果。具体的,本实施例公开了一种基于机器学习算法的终端异常行为识别方法。
以该方法进行终端行为识别时,主要包括如下步骤:
s01:获取终端行为日志数据。包括网络行为、登录行为、文件操作行为、外设操作行为、软件使用行为等方面的行为数据。
s02:对所述日志数据进行清洗和集成,得到以终端单位时间内的行为数据为统计特征的样本集。
训练聚类模型需要大量的样本支持,在进行样本集构造时,包括如下具体步骤:
s021:对日志数据进行清洗和空值填充,对处理后的数据按照单位时间进行分块,构造单维度统计特征,本实施例中统计得到单维度统计特征共115个。
所述的单位时间可根据需要进行设定,包括每分钟、每小时、每天等单位时间,在满足数据收集、存储、计算分析等性能的前提下,可自行规定单位时间的长短,以能够快速对分成块的日志数据进行处理。
在本实施例中,将单位时间设置为1小时,以该单位时间连续收集终端的网络行为、登录行为、文件操作行为、外设操作行为、软件使用行为等方面的行为数据,并交由系统后续处理和使用。
s022:由于日志数据中存在噪音和无用数据,通过清洗后筛选出可用的数据,再进行处理和后续使用。
s023:对样本集进行z-score标准化处理,如此变换和规约处理是为了消除量纲的影响,加快模型收敛速度,提升模型准确度。可采用既有的方式进行处理,如下所示:
其中,x为个体观测值,对应样本中的全部样本值;μ为均值,σ为总体数据的标准差。
在采集数据构建样本集的过程中,每个数据存在多个维度的评价指数,对数据进行多方面的评价后可评价该数据以及对应行为的危险性,进而判定行为是否异常,因此,所述的多维度统计特征包括占比类特征和风险指数类特征。
所述的占比类特征至少包括不存在签名占比、签名验证不成功占比和不在白名单占比。
所述的风险指数类特征至少包括端口连接状态风险指数和服务状态风险指数,所述风险指数通过如下方法进行计算:
风险指数=a·bt
其中,a表示各类型项目风险系数矩阵;b表示各类项目对应的项目数矩阵。经过风险指数的计算,可得到以单位时间内行为数据为统计特征的数据集,进行计算后,该数据集内单维度统计特征34个,多维度统计特征17个。
s03:对样本集按最优簇类数进行聚类,得到聚类模型。由于聚类算法属于无监督学习,通过轮廓系数对聚类效果进行评价,轮廓系数综合表示各样本与其同簇类的聚合度(即类内聚合度与类间离散度),因此轮廓系数值越大表示聚类效果越好。在确定最优簇类数并进行聚类时,采用如下方法确定轮廓系数si:
其中,ai表示样本i与其同簇类各点距离的均值(即类内聚合度),bi表示样本i到其他簇类质心距离的最小值(即类间离散度),si表示训练集内样本点i的轮廓系数,且-1≤si≤1,整个聚类模型的聚合度是训练集内各样本点的轮廓系数的均值。
上述技术方案中明确了根据轮廓系数确定聚类模型聚合度的计算方法,则在将样本划分至对应的簇类前,还需根据轮廓系数确定最优簇类数,具体包括如下步骤:
s031:构建单样本轮廓系数算法,得到每个样本的轮廓系数。新建一个空字典,key值设置为簇类数k,key对应的值则为在指定簇类数时的聚类轮廓系数sk。一般地,样本数在十万量级,从计算效率方面考虑算法认为样本与其同簇质心距离为类内聚合度,优化了类内聚合度算法。
s032:计算所有样本轮廓系数的均值,得到整个样本集被聚为k类后的轮廓系数sk。
s033:在kmeans聚类算法中,遍历簇类数k,2≤k≤n,n为正整数,得到簇类数为2~n时的n-1个轮廓系数sk,以其中最大的sk对应的k值作为最优簇类数。可选地,如图5所示,以字典的键值对为横纵坐标给出折线图,以便直观发现最优簇类数。
根据以上方法确定的最优簇类数,簇类数k=2时聚类效果最好,设置k=2进行聚类。
按照上述方法,持续对终端最近一段单位时间内的行为数据进行清洗、集成,并获得实时样本集,使用聚类模型对实时样本集进行类别划分,将所有样本划分至距离最近且距离小于阈值的簇心所属簇类。
s04:若样本距离所有簇心均大于阈值,无法划分至任一簇类中,则进行增量学习并重新划分,以此实现样本集的扩充,增加样本数,并细化行为识别模型的种类,增加对终端行为类型的判断准确性。增量学习的方式如下:
s041:利用增量学习的样本补充训练样本集,得到更新后的训练样本集。
s042:通过补充后的样本训练集构造更新的聚类模型,包括最优簇类数的选择和类别解析过程,在建立新的聚类模型后,将之前未进行划分的样本划分至新的簇心。
s043:对新的簇心类别进行定义,以此作为一个行为模式的识别类型。该新的簇心类别可按照预定的规则进行定义,包括但不限于人为定义、随机定义等方式。在进行定义之后,再有新的样本出现时,根据其最优簇类数可划归到距离最近的簇心所在的簇类中,该样本对应的行为即是该簇类对应的行为,至此完成行为的识别。
上述公开的识别方法,通过对实时样本集内的样本进行类别划分,对属于既定行为模式识别类型的样本划分至对应的簇类中;对于暂无最优簇类的样本,将其进行重新聚类后划分至新的类别,以该类别作为新的行为模式识别模型,可通过机器学习后自行将大量的陌生样本进行归类处理,增加聚类模型内的样本数,以实时增加样本和更新样本集,解决样本稀缺的问题;在大量样本的支持下,训练得到的聚类模型具有更强的识别能力和准确性,因此在实际应用过程中可准确识别出终端的异常行为,提高终端系统的安全性。
采用该方法进行终端异常行为识别时,得到如下的实时结果。
1)测试数据为最近1天内的终端行为数据,将测试数据按照样本构造方法处理,得到测试样本集,测试样本集共1611个样本。
2)将上述测试样本集输入上述聚类模型,将各样本归类为距离该样本最近且小于阈值的质心所在簇类,在本实例中,1611个测试样本的识别结果为1465个样本为正常行为样本,148个为异常行为样本。
可知,本实施例通过样本的收集处理,建立实时样本集,对于样本集中的样本进行聚类划分,根据其最优簇类数和类别的不同将样本划分至对应的簇类中;并且对于暂无最优簇类数的样本进行重新聚类,增加至新的行为模式识别模型中,以扩充样本集和聚类模型,提高了样本集的容量,能够对更多的行为进行识别;同时聚类模型在大量样本的支持下可达到更高的识别正确率,即使是陌生行为也可通过训练被划分到适宜的聚类模型中。因此,本发明提高了对终端行为识别的正确率和可靠性,能够根据行为变化而进行提升,可长期应用。
以上即为本发明列举的实施方式,但本发明不局限于上述可选的实施方式,本领域技术人员可根据上述方式相互任意组合得到其他多种实施方式,任何人在本发明的启示下都可得出其他各种形式的实施方式。上述具体实施方式不应理解成对本发明的保护范围的限制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
1.一种基于机器学习算法的终端异常行为识别方法,其特征在于,包括:
获取终端行为日志数据;
对所述日志数据进行清洗和集成,得到以终端单位时间内的行为数据为统计特征的样本集;
对样本集按最优簇类数进行聚类,得到聚类模型;
持续对终端最近一段单位时间内的行为数据进行清洗、集成,并获得实时样本集,使用聚类模型对实时样本集进行类别划分,将样本划分至距离最近且距离小于阈值的簇心所属簇类,若样本距离所有簇心均大于阈值,则进行增量学习;
利用增量学习的样本补充训练样本集,通过补充后的样本训练集构造更新的聚类模型,同时将补充的样本划分至新的簇心,以此作为一个行为模式的识别类型。
2.根据权利要求1所述的基于机器学习算法的终端异常行为识别方法,其特征在于,在进行样本集构造时,包括如下步骤:
对日志数据进行清洗和空值填充,对处理后的数据按照单位时间进行分块,构造单维度统计特征;
利用处理过的数据构造多维度统计特征,得到以终端单位时间内的行为数据为统计特征的样本集,并对样本集进行z-score标准化处理。
3.根据权利要求2所述的基于机器学习算法的终端异常行为识别方法,其特征在于,所述的多维度统计特征包括占比类特征和风险指数类特征。
4.根据权利要求3所述的基于机器学习算法的终端异常行为识别方法,其特征在于,所述的占比类特征至少包括不存在签名占比、签名验证不成功占比和不在白名单占比。
5.根据权利要求3所述的基于机器学习算法的终端异常行为识别方法,其特征在于,所述的风险指数类特征至少包括端口连接状态风险指数和服务状态风险指数,所述风险指数通过如下方法进行计算:
风险指数=a·bt
其中,a表示各类型项目风险系数矩阵;b表示各类项目对应的项目数矩阵。
6.根据权利要求1所述的基于机器学习算法的终端异常行为识别方法,其特征在于,在确定最优簇类数并进行聚类时,采用如下方法确定轮廓系数si:
其中,ai表示样本i与其同簇类各点距离的均值,bi表示样本i到其他簇类质心距离的最小值,si表示训练集内样本点的轮廓系数,且-1≤si≤1。
7.根据权利要求6所述的基于机器学习算法的终端异常行为识别方法,其特征在于,根据轮廓系数确定最优簇类数,具体包括如下步骤:
构建单样本轮廓系数算法,得到每个样本的轮廓系数;
计算所有样本轮廓系数的均值,得到整个样本集被聚为k类后的轮廓系数sk;
遍历簇类数k,2≤k≤n,n为正整数,得到簇类数为2~n时的n-1个轮廓系数sk,以其中最大的sk对应的k值作为最优簇类数。
8.根据权利要求1所述的基于机器学习算法的终端异常行为识别方法,其特征在于,进行增量学习以划分至新的行为识别模型的样本,通过如下步骤进行处理:
收集所有需要进行增量学习的样本并作为新增样本加入训练样本集,得到更新后的训练样本集;
使用更新后的训练样本集训练聚类模型,包括确定最优簇类数和类别划分,更新的聚类模型将新增样本划分至新的簇心;
对该新的簇心类别进行定义,并作为新的行为模式识别模型。
技术总结