CN109951462B - 一种基于全息建模的应用软件流量异常检测系统及方法 - Google Patents
一种基于全息建模的应用软件流量异常检测系统及方法 Download PDFInfo
- Publication number
- CN109951462B CN109951462B CN201910170833.5A CN201910170833A CN109951462B CN 109951462 B CN109951462 B CN 109951462B CN 201910170833 A CN201910170833 A CN 201910170833A CN 109951462 B CN109951462 B CN 109951462B
- Authority
- CN
- China
- Prior art keywords
- flow
- model
- application software
- data
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000002159 abnormal effect Effects 0.000 claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 37
- 239000006185 dispersion Substances 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims abstract description 20
- 238000013461 design Methods 0.000 claims abstract description 13
- 230000005856 abnormality Effects 0.000 claims abstract description 9
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 230000006399 behavior Effects 0.000 claims description 65
- 239000000203 mixture Substances 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010801 machine learning Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 4
- 238000011425 standardization method Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000003542 behavioural effect Effects 0.000 description 7
- 238000005065 mining Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 206010000117 Abnormal behaviour Diseases 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007635 classification algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000027455 binding Effects 0.000 description 1
- 238000009739 binding Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于全息建模的应用软件流量异常检测系统及方法,包括:应用软件识别模块、特征空间设计模块、全息建模模块和异常检测模块;应用软件识别模块,实现流量识别功能;根据获取的原始流量数据包中的端口进行应用软件的识别,得到已知软件类别的流量数据集;特征空间设计模块,实现特征提取功能,根据不同的TCP流进行基于流的特征提取,得到流量特征数据集;全息建模模块,实现模型的建立与动态更新功能;根据聚类算法对应用软件的流特征进行多角度建模,再根据更新条件,基于新的流量数据更新已建立的多个模式,得到应用软件流量的正常模型;异常检测模块,实现应用软件的流量异常判断功能,根据模型容量和离散度综合得到的异常分数来识别异常,得到流量是否异常的判定结果。
Description
技术领域
本发明涉及一种基于全息建模的应用软件流量异常检测系统及方法,属于信息安全中流量异常检测技术领域。
背景技术
异常检测是检测不符合预期行为的异常模式,称为异常值。近年来,流量异常检测逐渐成为关键应用的网络安全领域热门问题,比如网络入侵检测领域和内部威胁检测领域等。对于以获取利益为目的外部入侵或内部威胁,必然会留下痕迹,即相关的网络行为。因此,受损的机器将产生与入侵者或内部人员的恶意行为相关的网络流量。与已知的采用签名匹配恶意行为的方法相比,基于异常的方法可能会检测到新类型的恶意行为并解决0day的网络攻击。因此,流量异常检测已引起越来越多的研究者的关注。
在用于异常检测的所有方法中,基于模式的方法十分重要。其主要思想是通过算法来构建正常行为的模式,并将流量的偏差视为异常。因此,如何构建正常行为的模式对于检测异常是至关重要的。当前大多数流量异常检测算法都假设历史网络行为均为正常,然后采用机器学习算法建立正常模式。首先是基于聚类算法的异常检测方法。Guan等人[参见Y.Guan,A.Ghorbani,N.Belacel,“Y-means:a clustering method for intrusiondetection,”Electrical and Computer Engineering,IEEE CCECE.Canadian Conferenceon IEEE,vol.2,pp.1083–1086,2003.]提出了Y-means作为基于K-means和其他相关聚类算法的入侵检测聚类启发式方法。它克服了K-means的两个缺点:簇的依赖性和简并性的数量。它提高了结果的准确性,降低了异常检测的误报率。Panchamukhi等人[V.Panchamukhi,H.A.“Murthy,Port-based traffic verification as a paradigm for anomalydetection,”IEEE,2012.]提出了一种基于高斯混合模型的框架,用于检测网络流量中的异常。将一段时间内聚合的流量特征提供给模型以验证流量的有效性。但是,这些方法没有考虑模型更新的问题。Lam等人[参见P.Lam,L.Wang,H.Y.Ngan,N.H.Yung,A.G.Yeh,“Outlierdetection in large-scale traffic data by naive Bayes method and gaussianmixture model method,”Electronic Imaging,pp.73--78,September 2017.]假设流量数据符合混合高斯分布,他们所做的实验证明,GMM方法可以更准确地检测流量异常。还有许多研究使用深度学习方法进行异常检测。Zhu等人[参见D.Zhu,H.Jin,Y.Yang,D.Wu,W.Chen,“DeepFlow:Deep learning-based malware detection by mining Androidapplication for abnormal usage of sensitive data,”In Computers andCommunications(ISCC),IEEE,pp.438--443,July 2017.]提出了DeepFlow,这是一种基于DBN深度学习模型的方法,用于直接从Android应用软件中的数据流中识别恶意软件。DeepFlow使用FlowDroid从Android应用软件中提取数据流,并使用SUSI技术对提取的流进行分类以获取功能。虽然此方法可以检测异常,但它仅适用于恶意软件识别,并且无法检测正常应用软件中的异常。在异常流量识别领域也有许多测试。例如,Kong等人[参见L.Kong,G.Huang,K.Wu,“Identification of Abnormal Network Traffic Using Support VectorMachine,”Parallel and Distributed Computing,Applications and Technologies(PDCAT),201718th International Conference on.IEEE,pp.288--292,December 2017.]提出了一种异常流量识别系统,可以对多个攻击流量应用进行分类和识别。通过对KDD CUP数据集的测试,ATIS可以检测攻击网络的流量,实现异常检测。但是,分类算法需要攻击应用软件生成的大量流量,这是不切实际的。
其次,流量的异常检测方法经常被用于特定应用软件的入侵检测领域。Alizadeh等人[参见H.Alizadeh,S.Khoshrou,A.Zquete,“Application-Specific Traffic AnomalyDetection Using Universal Background Model,”ACM International Workshop onInternational Workshop on Security and Privacy Analytics,March 2015.]通过使用GMM-UBM(高斯混合模型-统一背景模型)来模拟单个应用软件,提出了应用软件入侵检测(IDS)框架。他们定义了特定的应用软件中流量异常检测的问题,以确定是否为指定的应用软件生成的一段流量,并将此问题重新作为基本假设进行检验。Zuquete等人[参见A.Zuquete,M.Rocha.“Identification of source applications for enhanced trafficanalysis and anomaly detection,”IEEE International Conference onCommunications(ICC),Ottawa,pp.6694–6698,2012.和A.Zuquete,P.Correia,H.Alizadeh,“Packet tagging system for enhanced traffic profiling,”IEEE 5thInternational Conference on Internet Multimedia Systems Architecture andApplication(IMSAA),Bangalore,Karnataka,pp.1–6,2011.]开发了一个框架,能够可靠地将数据包映射到它们所属的应用软件,授权的IDS可以使用这种对应关系来检测数据包是否属于指定应用软件的流量。但这个框架并没有考虑为每个特定应用软件建模。HassanAlizadeh等人[参见H.Alizadeh,A.Zuquete,“Traffic classification for managingApplications’networking profiles,”IEETA.Security and Communication Networks,pp.2557–2575,2016.]提出了一种现有的实时检测手段的混合方法,用于构建特定于应用软件的模式,并应用于异常检测系统以检测入侵。该方法将流量数据划分为多个子流,并基于这些子流设计了特征表示和模型构建,提高了检测的实时性。Crgel等人[参见C.Krügel,T.Toth,E.Kirda,“Service specific anomaly detection for network intrusiondetection,”Proc Acm Symposium on Applied Computing.March 2002.]提出利用正常网络服务的应用软件特定知识来构建应用软件模型。该方法可以检测隐藏在网络中的恶意内容。冯等人[参见P.Feng,J.Ma,C.Sun,“Selecting critical data flows in Androidapplications for abnormal behavior detection,”Mobile Information Systems,2017.]提出了一种工具,可以自动选择Android应用软件中的关键数据流,并将这些关键流作为异常行为检测的特征。该算法可以有效地减少异常检测的流特征的数量。论文表明,去除噪声数据流并将关键数据流作为特征将提高异常检测的准确性。张等人[参见L.Zhang,C.Liu,Y.Chen,“Abnormal Detection Research Based on Outlier Mining.”2018 11thInternational Conference on Intelligent Computation Technology and Automation(ICICTA).IEEE,2018.]介绍了基于数据挖掘的入侵检测方法的最新发展,并研究了基于异常挖掘的网络入侵检测方法,提出了一种基于异常值挖掘的异常检测模型。该模型计算每个正常样本的异常值,并形成了正常行为的特征。
针对应用软件产生的流量随着环境等因素动态变化的问题,部分研究人员提出了在线学习的方法来进行异常检测。Yamanishi等人[Y.Guan,A.Ghorbani,N.Belacel,“Y-means:a clustering method for intrusion detection,”Electrical and ComputerEngineering,IEEE CCECE.Canadian Conference on IEEE,vol.2,pp.1083–1086,2003.]提出了一种名为SmartSifter的离群检测引擎。它通过基于无监督方法的在线学习信息源的概率模型来检测异常值,并使用在线折扣学习算法来学习概率模型,然后给出分数。得分越高,出现异常的可能性越大。该方法适用于非固定数据源。罗等人[11]提出了将频繁模式挖掘与在线学习相结合的异常检测方法。该方法将数据流构建为动态数据集合,随着时间的推移无限增长,并构建了一个在线学习模型,用于快速检测持久,大规模,实时数据流中的异常值。
当前大多数流量异常检测算法都假设历史数据的网络行为是正常的,然后采用机器学习算法建立正常模式。然而,这种假设并切实有效。一方面是应用软件的正常模式应该涵盖多种行为,若将所有的行为都构建成一种模式,会使得异常检测时的模式匹配准确度降低。另一方面,历史行为的集合肯定不够全面,难以涵盖所有的正常行为,因此,结果构建的正常模型并不够全面和完整,导致这些方法都具有较高的误报率。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于全息建模的应用软件流量异常检测系统及方法,一方面,本发明技术能够从多个角度分析软件的行为模式,使模型更加准确和全面;另一方面,本发明能够对模型进行动态更新,每次只利用当前到达的样本对模型进行调整,提高了学习效率,降低了时间复杂度,同时扩大了模型的样本覆盖率,使模型能够不断适应数据的变化,从而提高了模型的准确率。
本发明通过使用全息建模的方法来实现对应用软件行为的全面刻画,构建完整的正常模式,并通过新数据流来实现模型的更新和扩展,旨在提出。
本发明技术解决方案:
一种基于全息建模的应用软件流量异常检测系统,包括:应用软件识别模块、特征空间设计模块、全息建模模块和异常检测模块;
应用软件识别模块,实现流量识别功能;根据获取的原始流量数据包中的端口进行应用软件的识别,得到已知软件类别的流量数据集;
特征空间设计模块,实现特征提取功能,根据不同的TCP流进行基于流的特征提取,得到流量特征数据集;
全息建模模块,实现模型的建立与动态更新功能;根据聚类算法对应用软件的流特征进行多角度建模,再根据更新条件,基于新的流量数据更新已建立的多个模式,得到应用软件流量的正常模型;
异常检测模块,实现应用软件的流量异常判断功能,根据模型容量和离散度综合得到的异常分数来识别异常,得到流量是否异常的判定结果。
所述全息建模模块具体实现如下,如图4(a)-图4(b)所示:。
(1)根据流量的特征数据样本,采用基于聚类的算法-K-means和GMM(高斯混合模型)来构建行为模型,(a)中K-means算法将样本数据表示为聚集在一起的多组样本,(b)中GMM算法将这些样本表示成多个不同参数的概率函数。
(2)基于步骤(1)建立的行为模型,当新的数据样本输入时,(a)对于K-means算法通过计算模型的轮廓系数来判断是否需要对模型进行更新;(b)中对于GMM算法计算新输入的样本属于每一个已有高斯分量的概率若概率低于设定的阈值,则对模型进行更新,最终完成模型的动态更新过程。
所述异常检测模块具体实现如下,如图5所示:
(1)根据构建的全息行为模型,计算每种模式的容量和不同模式之间离散程度。
(2)根据步骤(1)计算得到的容量和离散度,求得最终的异常分数AS;
(3)根据步骤(2)得到的异常分数AS,检测到异常模式,并将该模式所包含的样本判定为异常。
所述应用软件识别模块具体实现如下,如图2所示:
(1)应用软件流量识别模块的第一种方法是基于端口来分类,根据原始流量数据集,通过提取每条TCP流中的端口数据,得到已知应用软件类别的流量数据集;
(2)第二种方法是基于特征提取和机器学习的方法进行分类,根据原始流量数据集,提取每条TCP流中的特征数据,然后采用SVM算法进行分类,最终得到已知应用软件类别的流量数据集(提取的流特征数据包括协议(TCP、UDP)、流持续时间、包含的数据包个数、流的大小(字节数)、SYN包个数、ACK包个数、RST包个数、FIN包个数、包含的数据包长度的最大值、最小值和平均值)。
所述特征空间设计模块具体实现如下,如图3所示:
(1)将具有相同4元组(源IP,源端口,目标IP,目标端口)元素的数据包关联到单个流中,得到基于TCP流的数据样本集;
(2)根据第一步得到的流数据集来提取特征,提取的特征包括流持续时间、物理层数据包的平均字节数、IP层数据包的平均字节数、数据包的平均字节数、数据包到达时间的最大时间间隔、数据包到达时间的平均时间间隔;
(3)根据第二步得到的特征样本数据,采用Z-score标准化方法来对特征数据进行预处理,得到标准化的数据样本。
所述异常因子设定方法具体实现如下:
(1)计算行为模型容量MC,表示拟合的模型中每种模式包含的样本数量;
(2)计算模型离散度MI,表示与其他行为模型的偏离程度,使用不同模式之间的距离来度量离散度,即计算不同模式的样本之间的平均距离;
(3)根据步骤(1)和步骤(2)的计算结果MC和MI,计算最终异常分数AS,其中MC和MI的权重是设定好的超参数;
本发明的一种基于全息建模的应用软件流量异常检测方法,步骤如下:
(1)通过端口识别和机器学习的分类方法对网络数据包进行应用软件流量的识别,得到已知应用软件类别的流量样本数据;
(2)根据第一步获得的样本数据,将具有相同4元组,即源IP,源端口,目标IP,目标端口元素的数据包关联到单个流中,得到基于TCP流的样本数据集,在对TCP流进行特征提取,生成特征样本集;
(3)根据步骤(2)生成的特征样本集,进行全息建模,采用K-means和GMM两种聚类算法构建模型,再利用输入的新样本来对模型进行更新和扩展;
(4)根据步骤(3)构建的模型来判断异常的样本,通过计算行为模型容量和离散度来获得最终异常分数,从而判断出异常样本,完成软件流量的异常检测。
本发明与现有技术相比的优点在于:
本发明针对已有的采用机器学习算法对历史数据建立正常模式的方法所导致的模型不够完整和全面的问题以及误报率较高的情况,提出了一种基于全息建模的方法对特定应用软件的流量进行异常检测的系统,能够全面而完整的构建正常和异常行为的模型,并且能够对模型进行动态更新和扩展,提高软件流量异常检测的准确率,降低误报率。
附图说明
图1为本发明系统的总体框图;
图2为本发明中的应用软件识别模块实现流程图;
图3为本发明中的特征空间设计模块实现流程图;
图4(a)-图4(b)为本发明中的全息建模模块实现流程图;其中,图4(a)是基于GMM算法的全息建模模块实现流程图,图4(b)是基于K-means算法的全息建模模块实现流程图;
图5为本发明中的异常检测模块实现流程图。
具体实施方式
下面结合附图对本发明进行详细说明。
如图1所示,本发明系统包括四个模块,分别为:应用软件识别模块,特征空间设计模块,全息建模模块和异常检测模块。
首先,使用流量分类算法识别应用软件。其次,功能表示是基于流量和数据包设计的。第三,对于个人应用,采用全息建模的方式以形成完整的模式集合,逐个输入新样本动态地获得从多个行为角度建立的行为模型。此步骤对于提出的方法至关重要。最后,基于异常很少出现且较为分散的事实,在模型库中拟合少量样本并与其他样本隔离的行为模型被识别为异常,并且样本被标记为异常。
(1)应用软件识别模块:在分析单个应用软件之前,需要回答以下问题:此数据流属于哪种流量,此问题已在流量识别和分类域中进行了探讨。当前研究已经提供了有效的方法可用于识别源应用软件协议或软件的网络数据包和源应用软件之间的可信绑定。本发明中对获取到的原始网络流量通过两种方式将其分类成不同软件产生的流量,第一种方法是直接按照端口区分,第二种方法是通过提取流量特征,利用SVM分类器对特征数据进行分类,从而得到归属于不同应用软件的流量数据,以进行下一步的操作。
(2)特征空间设计模块:将具有相同4元组(源IP,源端口,目标IP,目标端口)元素的数据包关联到单个流中。本发明基于流程提取特征,采用表I所示的六维特征。
表1 特征及其描述
由于特征数据的每个维度量纲不同,采用Z-score标准化方法来对特征数据进行预处理。该方法称为零-均值规范化,也称为标准差标准化。它根据原始数据的均值和标准差进行数据的标准化,经过处理的数据符合标准正态分布。
(3)全息建模模块:全息建模包括行为模型集的生成,模型集的更新和扩展。使用基于聚类的算法构建行为模型集,将网络行为分类为正常行为类和异常类,其中一个类簇对应于一个行为模型。然后根据更新和扩展的条件,基于新的流量数据更新和扩展模式集。随着流量数据的不断输入,模式集不断更新和扩展,逐渐形成完整的模式池。
(4)异常检测模块:在形成完整的模式池的过程中,识别出正常的行为和异常。基于异常行为很少且分散在所有行为中的事实,提出了一种结合模型容量和离散度的异常分数来识别异常。
下面将详细介绍全息建模和异常检测这两大重要模块的实施步骤。
全息建模模块:
为了检测具有较低误报率的异常,提出的方法尝试使用全息建模方法来构建各个应用的完整模式池,其中构建的行为模型能够在线更新和扩展,以便尽可能多地覆盖行为类别。
本发明的全息建模方法具体包括两大部分:行为模型的生成;行为模型和更新和扩展。
A行为模型的生成
完整的配置文件被分解为一组行为模型,每个模型描述一种行为。正式定义了行为模型如下。
定义1(行为模型):对于一个已识别出的应用软件,其行为模式集被定义为:
根据上述定义,使用基于聚类的算法构建行为模型,并将其表示为聚集在一起的一组样本或这些样本的概率函数。K-means和GMM(高斯混合模型)是两种具有代表性的聚类算法,本发明将用它们来验证所提出的异常检测系统的有效性。
(1)K-means:
初始的类簇个数K设置为2(初始K应设置较小,易于更新),K-means算法分为以下四个步骤:
(1)随机选择K个中心点
(2)遍历所有数据,将每个数据划分到最近的中心点所在的类簇中
(3)计算每个聚类的平均值,并作为新的中心点
(4)重复以上第(2)、(3),直到这k个中心点不再变化(算法收敛),或迭代次数达到阈值
(2)高斯混合模型:
高斯混合模型,多个高斯分布的结合组成的概率分布模型,简称为GMM。具体而言,GMM使用高斯概率密度函数来精确量化对象并将一个对象分解为若干的基于高斯概率密度函数。假设有一个随机变量xj∈RD(RD表示D维的实数集),则包含K个分量的GMMΘ可以用下式表示:
其中,表示第k个高斯分量的N个样本,xj表示的是其中的第j个样本,πk是第k个高斯分量的先验概率,表示高斯分布函数,μk和Σk是第k个高斯分量的均值和协方差,p(xj|k)是条件概率密度函数,D是特征空间的维度,表示协方差的逆矩阵。为了简化计算,令累积的后验概率为则GMMΘ的参数为{πk,μk,∑k,Ek},本发明采用EM算法来求解这些参数。
贝叶斯信息准则缩写为BIC指南,用于选择GMM的初始类簇个数K,BIC引入了一个惩罚项来解决大量高斯分量导致的过拟合问题。
BIC=k In(N)-2 In(L) (4)
其中k是高斯分量的个数,N是样本数,L是似然函数。当维数过大且训练样本数量相对较小时,kln(N)惩罚项有效避免维度灾难的现象。模型计算了对应于不同k的BIC值,并将BIC值最小的k作为初始高斯分量数K。
B行为模型的更新和扩展
为了应对监控环境快速发展、动态变化的特性,采用不断更新和扩展行为模型的方法。下面将详细描述行为模型如何动态更新并根据流量的变化进行扩展。满足更新条件或满足扩展条件的新添加的流用于更新和扩展当前行为模型。本发明分别为K-means和GMM设计了相应的更新和扩展方案。
(1)K-means的动态更新和扩展
当出现新流时,使用轮廓系数来确定是否需要更新和扩展基于K-means的行为模型。轮廓系数结合了聚类的聚合度和离散度来评估聚类的有效性。值在-1和1之间,值越大,聚类越有效。具体计算方法如下:
(a)对于第i个样本xi,计算xi到与其同一个类簇c内的其他所有样本的平均距离,记作ai,ai用于量化簇内的聚合度。
(b)选择一个xi不属于的类簇cb,计算xi与cb中所有样本的平均距离,遍历所有其他簇,找到最近的平均距离,记作bi,用于量化簇之间离散度。
(c)对于元素xi,轮廓系数计算公式如下:
(d)计算所有xi的轮廓系数si,求出平均值即为当前聚类的整体轮廓系数S。
从公式(7)看到,如果si<0,则xi与其所属簇c之间的距离大于不包含xi的簇cb,表示聚类结果更差;否则,如果ai→0或bi足够大,那么si→1,表示聚类结果更好。当新的流x*输入时,分别计算K和K+1对应的轮廓系数sold和snew,然后定义K-means的更新和扩展条件如下:
如果sold<snew,则行为模型集扩展为:
K←K+1
M={c1,c2,···,cK,cK+1={x*}} (9)如果sold>snew,则行为模型集更新为:
K←K
cj=cj∪{x*},其中:
ci=ci,i≠j
M=(c1,c2,…,cK} (10)
其中,公式(10)中的cj满足dis(x*-cej)≤dis(x*-cei),cej是模型cj的中心,x*表示新的样本数据,M代表构建的模型。
(2)GMM的动态更新和扩展
如果对于任意的p(k|x*)≥Thr,i∈{1,2,…,k},Thr表示设定的最小概率的阈值,则因此,当参数集(^表示更新前上一次的参数)根据增量学习算法被更新为时(im表示更新后的参数集合,*表示更新之后的参数),行为模型的数量保持不变。
如果对于所有的Pi<Thr,1≤i≤k,行为模型集的参数
从上面提到的GMM的更新和扩展过程,可以观察到,如果中的最大值仍然小于预设的阈值Thr,这表明新样本不属于所有已建立的高斯分量。在这种情况下,K需要增加1,否则,新样本可归属于现有的高斯分量,并且该分量的参数可根据公式(11)-(15)进行更新。
异常检测模块::
在动态和全息建模之后,根据行为模型容量和离散程度来识别异常。具体而言,行为模型容量MC表示拟合的模型包含的样本数量,模型离散度MI表示与其他行为模型的偏离程度,本发明使用距离来度量离散度。一般来说,与正常行为相比,异常很少出现且较为分散,因此它们往往是少数的异常。因此,采用MC和MI来衡量异常是合理的。本发明中行为模型Mi的MC和MI定义如下:
其中i,j表示编号,Mi,Mj表示构建的不同模型,|Mi|表示Mi包含的样本数量,dis(Mi,Mj)表示Mi和Mj的距离,被定义为样本之间的平均距离;
公式(20)描述了结合了MC和MI的模型Mi的最终异常分数AS。根据AS,检测到异常模型,并将该模型所包含的样本判定为异常。
AS(i)=α MC(i)+β MI(i) (20)
α和β为超参数,表示行为模型容量和离散度各自的权重。
当前流量异常检测方法使用机器学习技术基于历史网络行为构建正常模式,并且将与正常模式的有所偏差的流量识别为异常。因为历史行为数据难以涵盖所有的正常情况,所以现有方法构建的模型并不全面和完整且具有较高的误报率。为了解决这个问题,同时确定哪些应用软件出现异常,本发明提出了基于全息建模的应用软件流量异常检测系统,采用全息建模方法为每个应用软件构建完整的模式池且能够动态更新扩展,所以几乎覆盖了所有的行为模式。系统首先基于历史行为采用聚类的方法构建池中的基本行为模型,然后随着网络的发展,使用在线学习技术更新和扩展模式池,最后提出了基于模型容量和离散度的异常因子来判定异常。这些方法组合成了本发明的整体检测框架,能够降低由于构建的不够完整的正常模式导致的高误报率,实现更准确的基于特定应用软件的流量异常检测。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (6)
1.一种基于全息建模的应用软件流量异常检测系统,其特征在于,包括:应用软件识别模块、特征空间设计模块、全息建模模块和异常检测模块;
应用软件识别模块,实现流量识别功能;根据获取的原始流量数据包中的端口进行应用软件的识别,得到已知软件类别的流量数据集;
特征空间设计模块,实现特征提取功能,根据不同的TCP流进行基于流的特征提取,得到流量特征数据集;
全息建模模块,实现模型的建立与动态更新功能;根据聚类算法对应用软件的流特征进行多角度建模,再根据更新条件,基于新的流量数据更新已建立的多个模式,得到应用软件流量的正常模型;
异常检测模块,实现应用软件的流量异常判断功能,根据异常因子,即模型容量和离散度综合得到的异常分数来识别异常,得到流量是否异常的判定结果;
所述全息建模模块具体实现如下:
(1)根据流量的特征数据样本,采用基于聚类的算法K-means和GMM高斯混合模型来构建行为模型,并将其表示为聚集在一起的一组样本或这些样本的概率函数;
2.根据权利要求1所述的基于全息建模的应用软件流量异常检测系统,其特征在于:所述异常检测模块具体实现如下:
(1)根据构建的全息行为模型,计算每种模式的容量和不同模式之间离散程度;
(2)根据步骤(1)计算得到的容量和离散度,求得最终的异常分数AS;
(3)根据步骤(2)得到的异常分数AS,检测到异常模式,并将该模式所包含的样本判定为异常。
3.根据权利要求1所述的基于全息建模的应用软件流量异常检测系统,其特征在于:所述应用软件识别模块具体实现如下:
(1)应用软件流量识别模块的第一种方法是基于端口来分类,根据原始流量数据集,通过提取每条TCP流中的端口数据,得到已知应用软件类别的流量数据集;
(2)第二种方法是基于特征提取和机器学习的方法进行分类,根据原始流量数据集,提取每条TCP流中的特征数据,然后采用SVM算法进行分类,最终得到已知应用软件类别的流量数据集,所述提取的流特征数据包括协议TCP和UDP、流持续时间、包含的数据包个数、流的大小即字节数、SYN包个数、ACK包个数、RST包个数、FIN包个数、包含的数据包长度的最大值、最小值和平均值。
4.根据权利要求1所述的基于全息建模的应用软件流量异常检测系统,其特征在于:所述特征空间设计模块具体实现如下:
(1)将具有相同4元组,即源IP,源端口,目标IP,目标端口元素的数据包关联到单个流中,得到基于TCP流的数据样本集;
(2)根据第一步得到的流数据集来提取特征,提取的特征包括流持续时间、物理层数据包的平均字节数、IP层数据包的平均字节数、数据包的平均字节数、数据包到达时间的最大时间间隔、数据包到达时间的平均时间间隔;
(3)根据第二步得到的特征样本数据,采用Z-score标准化方法来对特征数据进行预处理,得到标准化的数据样本。
5.根据权利要求1所述的基于全息建模的应用软件流量异常检测系统,其特征在于:所述异常因子设定方法具体实现如下:
(1)计算行为模型容量MC,表示拟合的模型中每种模式包含的样本数量;
(2)计算模型离散度MI,表示与其他行为模型的偏离程度,使用不同模式之间的距离来度量离散度,即计算不同模式的样本之间的平均距离;
(3)根据步骤(1)和步骤(2)的计算结果MC和MI,计算最终异常分数AS,其中MC和MI的权重是设定好的超参数。
6.一种基于全息建模的应用软件流量异常检测方法,其特征在于,步骤如下:
(1)通过端口识别和机器学习的分类方法对网络数据包进行应用软件流量的识别,得到已知应用软件类别的流量样本数据;
(2)根据第一步获得的样本数据,将具有相同4元组,即源IP,源端口,目标IP,目标端口元素的数据包关联到单个流中,得到基于TCP流的样本数据集,在对TCP流进行特征提取,生成特征样本集;
(3)根据步骤(2)生成的特征样本集,进行全息建模,采用K-means和GMM两种聚类算法构建模型,再利用输入的新样本来对模型进行更新和扩展;
(4)根据步骤(3)构建的模型来判断异常的样本,通过计算行为模型容量和离散度来获得最终异常分数,从而判断出异常样本,完成软件流量的异常检测;
所述步骤(3)中,全息建模模块具体实现如下:
(1)根据流量的特征数据样本,采用基于聚类的算法K-means和GMM高斯混合模型来构建行为模型,并将其表示为聚集在一起的一组样本或这些样本的概率函数;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910170833.5A CN109951462B (zh) | 2019-03-07 | 2019-03-07 | 一种基于全息建模的应用软件流量异常检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910170833.5A CN109951462B (zh) | 2019-03-07 | 2019-03-07 | 一种基于全息建模的应用软件流量异常检测系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109951462A CN109951462A (zh) | 2019-06-28 |
CN109951462B true CN109951462B (zh) | 2020-08-25 |
Family
ID=67009204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910170833.5A Active CN109951462B (zh) | 2019-03-07 | 2019-03-07 | 一种基于全息建模的应用软件流量异常检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109951462B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110634288B (zh) * | 2019-08-30 | 2022-06-21 | 上海电科智能系统股份有限公司 | 基于三元高斯混合模型的多维城市交通异常事件识别方法 |
CN111585830A (zh) * | 2020-03-25 | 2020-08-25 | 国网思极网安科技(北京)有限公司 | 一种用户行为分析方法、装置、设备及存储介质 |
CN111817875B (zh) * | 2020-06-03 | 2022-06-28 | 华为技术有限公司 | 检测网络故障的方法和装置 |
CN112104503B (zh) * | 2020-09-17 | 2022-08-16 | 成都思维世纪科技有限责任公司 | 一种基于流转模型的数据异常流转的监测分析系统及方法 |
CN112202817B (zh) * | 2020-11-30 | 2021-04-06 | 北京微智信业科技有限公司 | 一种基于多事件关联与机器学习的攻击行为检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571486B (zh) * | 2011-12-14 | 2014-08-27 | 上海交通大学 | 一种基于BoW模型和统计特征的流量识别方法 |
US10200382B2 (en) * | 2015-11-05 | 2019-02-05 | Radware, Ltd. | System and method for detecting abnormal traffic behavior using infinite decaying clusters |
CN108234430B (zh) * | 2016-12-22 | 2021-06-25 | 中国航天系统工程有限公司 | 一种面向集散控制系统的异常流量监测方法 |
CN108923975B (zh) * | 2018-07-05 | 2021-08-10 | 中山大学 | 一种面向分布式网络的流量行为分析方法 |
-
2019
- 2019-03-07 CN CN201910170833.5A patent/CN109951462B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109951462A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951462B (zh) | 一种基于全息建模的应用软件流量异常检测系统及方法 | |
Gogoi et al. | MLH-IDS: a multi-level hybrid intrusion detection method | |
CN109067586B (zh) | DDoS攻击检测方法及装置 | |
CN112738015A (zh) | 一种基于可解释卷积神经网络cnn与图检测的多步攻击检测方法 | |
CN111641634B (zh) | 一种基于蜜网的工业控制网络主动防御系统及其方法 | |
CN109218321A (zh) | 一种网络入侵检测方法及系统 | |
CN114143037B (zh) | 一种基于进程行为分析的恶意加密信道检测方法 | |
CN112134862B (zh) | 基于机器学习的粗细粒度混合网络异常检测方法及装置 | |
CN112769752A (zh) | 一种基于机器学习集成模型的网络入侵检测方法 | |
CN113821793A (zh) | 一种基于图卷积神经网络的多阶段攻击场景构建方法及系统 | |
CN113904795A (zh) | 一种基于网络安全探针的流量快速精确检测方法 | |
Hendry et al. | Intrusion signature creation via clustering anomalies | |
Tang et al. | A new detection method for LDoS attacks based on data mining | |
CN113765921B (zh) | 一种面向工业物联网的异常流量分级检测方法 | |
CN115085948A (zh) | 基于改进d-s证据理论的网络安全态势评估方法 | |
CN113780431A (zh) | 基于神经网络技术的网络流量信息分析方法及系统 | |
Alizadeh et al. | Timely classification and verification of network traffic using Gaussian mixture models | |
CN116170237B (zh) | 一种融合gnn和acgan的入侵检测方法 | |
Corchado et al. | Detecting compounded anomalous SNMP situations using cooperative unsupervised pattern recognition | |
CN114124437B (zh) | 基于原型卷积网络的加密流量识别方法 | |
Amosov et al. | Recognition of abnormal traffic using deep neural networks and fuzzy logic | |
Liu et al. | MSCA: An unsupervised anomaly detection system for network security in backbone network | |
Jeyanna et al. | A network intrusion detection system using clustering and outlier detection | |
Bisen et al. | An intrusion detection system based on support vector machine using hierarchical clustering and genetic algorithm | |
Uymin | Application of machine learning in the classification of traffic in telecommunication networks: working with network modeling systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |