【网安学术】以未知对未知—智能安全自我进化

必威 14

原标题:【网安学术】以未知对未知—智能安全自我进化

  来源:lantian0802的专栏  

必威 1

  blog.csdn.net/lantian0802/article/details/38333479

摘要:网络空间第三次浪潮的出现,给原来静态防御、边界防护、基于特征匹配的网络安全思路和技术带来了新的挑战。为应对这次变革,提出了“以未知对未知”的智能防御理念,主要是针对新时代特性,构建基于人类免疫系统理念网络空间安全生态体系,利用人工智能算法在生成对抗网络中具备自主进化迭代的优势,通过不断学习每个网络、设备、用户的终生模式和关联分析,自主识别、拦截异常攻击,与受保护网络空间其他系统相互协调,共同维持网络空间内部环境稳定、健康、可控、安全与运行平衡。

  

0 引 言

  一、基础概念

  

    1、10折交叉验证,英文名是10-fold
cross-validation,用来测试算法的准确性。是常用的测试方法。将数据集分成10份。轮流将其中的9份作为训练数据,1分作为测试数据,进行试验。每次试验都会得出相应的正确率(或差错率)。

  10次的结果的正确率(或差错率)的平均值作为对算法精度的估计,一般还需要进行多次10折交叉验证,在求其平均值,对算法的准确性进行估计。

 

    2、极大似然估计:极大似然估计,只是一种概率论在统计学中的应用,它是参数评估的方法之一。说的
已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计通过若干次实验,观察其结果,

  利用结果推出参数的大概值。极大似然估计是建立在这样的思想上的:已知某个参数能使这个样本出现的概率最大。我们当然不会再去选择其他其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

 

    3、在信息论中,熵表示的是不确定性的量度。信息论的创始人香农在其著作《通信的数学理论》中提出了建立在概率统计模型上的信息度量。他把信息定义为”用来消除不确定性的东西“。熵的定义为信息的期望值。

 

    ps:熵指的是体系的混乱程度,它在控制论,概率论,数论,天体物理,生命科学等领域都有重要的应用,在不同的学科中也有引申出更为具体的定义,是各个领域十分重要的参量。熵由鲁道夫.克劳修斯提出,

    并应用在热力学中。后来在,克劳德.埃尔伍德.香农
第一次将熵的概念引入到信息论中来。

 

    4、后验概率是信息论的基本概念之一。在一个通信系统中,在收到某个消息之后,接收端所了解到的该消息发送的概率称为后验证概率。后验概率是指在得到”结果“的信息后重新修正的概率,如贝叶斯公式中的。

  是执果寻因的问题。后验概率和先验概率有着不可分割的联系,后验的计算要以先验概率为基础,其实说白了后验概率其实就是条件概率。

 

    5、PCA 主成分分析:

 

    优点:降低数据的复杂性,识别最重要的多个特征。

    缺点:不一定需要,且可能损失有用信息。

    适用适用类型:数值型数据。

    技术类型必威 ,:降维技术。

 

    简述:在PCA中,数据从原来的坐标系转换到了新的坐标系,新坐标系的选择是由数据本身决定的。第一个新坐标轴选择时原始数据中方差最大的方向,第二个新坐标轴的选择和第一个坐标轴正交且具有

  最大方差的方向。该过程一直重复,重复次数为原始数据中特征的数目。会发现大部分方差都包含在最前面的几个新坐标轴中。因此,可以忽略余下的坐标轴,即对数据进行了降维处理。除了PCA主成分分析技术,

  其他降维技术还有ICA(独立成分分析),因子分析等。

 

    6、将不同的分类器组合起来,而这种组合结果则被称为集成方法(ensemble
method)或者元算法(meta-algorithm)。

 

    7、回归算法和分类算法很像,不过回归算法和分类算法输出标称型类别值不同的是,回归方法会预测出一个连续的值,即回归会预测出具体的数据,而分类只能预测类别。

 

    8、SVD(singular value decomposition) 奇异值分解:

 

    优点:简化数据,去除噪声,提高算法的结果。

    缺点:数据转换可能难以理解。

    适用数据类型:数值型数据。

    ps:SVD是矩阵分解的一种类型。

 

    总结:SVD是一种强大的降维工具,我们可以利用SVD来逼近矩阵并从中提取重要特征。通过保留矩阵80%~90%的能量,就可以得到重要的特征并去掉噪声。SVD已经运用到多个应用中,其中一个成功

  的应用案例就是推荐引擎。推荐引擎将物品推荐给用户,协同过滤则是一种基于用户喜好和行为数据的推荐和实现方法。协同过滤的核心是相似度计算方法,有很多相似度计算方法都可以用于计算物品或用户之间的相似度。

  通过在低维空间下计算相似度,SVD提高了推荐引擎的效果。

 

    9、共线性:是指线性回归模型中的解释变量之间由于存在精确的相关关系或高度相关关系而使模型估计失真或难以估计。

 

以信息技术为代表的新一轮科技和产业革命给世界各国主权、安全、发展利益带来了许多新的挑战。近年来,国家级网络武器及其相关工具和技术的扩散,给各国关键基础设施造成了极大挑战。当前,全球互联网治理体系变革进入关键时期,构建网络空间命运共同体日益成为国际社会的广泛共识。

  二、基本算法

全球网络攻击事件统计(如图1所示)显示,未知威胁攻击、Account
Hijacking账户劫持攻击、Targeted
Attack针对性攻击、DDoS攻击,攻击比例上呈逐年上升趋势。国计民生的基础设施系统是攻击的重点领域,其中涉及金融、能源、交通等,其目标性、隐蔽性极强,传统的消缺补漏、静态防御、“封、堵、查、杀”在这些攻击面前捉襟见肘。

    1、 Logistic回归:

 

    优点:计算代价不高,易于理解和实现。

    缺点:容易欠拟合,分类精度可能不高。

    适用数据类型:数值型和标称型数据。

    类别:分类算法。

    试用场景:解决二分类问题。

 

    简述:Logistic回归算法基于Sigmoid函数,或者说Sigmoid就是逻辑回归函数。Sigmoid函数定义如下:1/(1+exp(-z))。函数值域范围(0,1)。可以用来做分类器。

 

    Sigmoid函数的函数曲线如下:

    必威 2

    

    逻辑回归模型分解如下:

    1、首先将不同维度的属性值和对应的一组权重加和:

       公式如下: z =
w0+w1x1+w2x2+…+wm*xm。(其中x1,x2,…,xm是某样本数据的各个特征,维度为m)

       ps:这里就是一个线性回归。W权重值就是需要经过训练学习到的数值,具体W向量的求解,就需要用到极大似然估计和将似然估计函数代入到
优化算法来求解。最常用的最后化算法有 梯度上升算法。

       由上面可见:逻辑回归函数虽然是一个非线性的函数,但其实其去除Sigmoid映射函数之后,其他步骤都和线性回归一致。

    2、然后将上述的线性目标函数 z
代入到sigmond逻辑回归函数,可以得到值域为(0,0.5)和(0.5,1)两类值,等于0.5的怎么处理还以自己定。这样其实就得到了2类数据,也就体现了二分类的概念。

 

    总结:Logistic回归的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,参数的求解过程可以由最优化算法来完成。在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法有可以简化为随机梯度上升算法。

 

必威 3

    2、SVM(Support Vector Machines) 支持向量机:

 

    优点:泛化错误率低,计算开销不大,结果易解释。

    缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题。

    适用数据类型:数值型和标称型数据。

    类别:分类算法。

    试用场景:解决二分类问题。

    

    简述:通俗的讲,SVM是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

       或者简单的可以理解为就是在高维空间中寻找一个合理的超平面将数据点分隔开来,其中涉及到非线性数据到高维的映射以达到数据线性可分的目的。

    必威 4

  

    上面样本图是一个特殊的二维情况,真实情况当然可能是很多维。先从低纬度简单理解一下什么是支持向量。从图中可以看到3条线,中间那条红色的线到其他两条先的距离相等。这条红色的就是SVM在二维

  情况下要寻找的超平面,用于二分类数据。而支撑另外两条线上的点就是所谓的支持向量。从图中可以看到,中间的超平面和另外两条线中间是没有样本的。找到这个超平面后,利用超平面的数据数学表示来对样本数据进行二分类,就是SVM的机制了。

    
    ps: 《机器学习实战》书中有这么几个概念:

    1、如果能找到一个直线(或多维的面)将样本点分开,那么这组数据就是线性可分的。将上述数据集分隔开来的直线(或多维的面)称为分隔超平面。分布在超平面一侧的数据属于一个类别,分布在超平面另一侧的数据属于另一个类别

    2、支持向量(Support vector)就是分离超平面最近的那些点。

    3、几乎所有分类问题都可以使用SVM,值得一提的是,SVM本身是一个二分类分类器,对多类问题应用SVM需要对代码做一些修改。

    

    公式:

    SVM有很多实现,但是本章值关注其中最流行的一种实现,及序列最小优化(Sequential
Minimal Optimization,SMO)算法。

 

    其公式如下:

    必威 5

    

    SMO算法的目标是求出一些列的alpha,一旦求出了alpha,就很容易计算出权重向量w并得到分隔超平面。

 

    SMO算法的工作原理是:每次循环中选择两个alpha进行优化处理。一旦找到一对合适的alpha,那么就增大其中一个同时减小另一个。这里所谓的“合适”就是指两个alpha必须符合一定的条件,

  条件之一就是这两个alpha必须要在间隔边界之外,而其第二个条件则是这两个alpha还没有进行过区间化处理或者不在边界上。

 

    核函数将数据从低维度映射到高维:

 

    SVM是通过寻找超平面将数据进行分类的,但是当数据不是线性可分的时候就需要利用核函数将数据从低维映射到高维使其线性可分后,在应用SVM理论。

  必威 6

  

    示例:

 

    这个二维数据分布不是线性可分的,其方程为:

 

    必威 7

    必威 8

  对应的方程为:

 

     必威 9

    

    这样映射后的数据就变成了线性可分的,就可以应用SVM理论了。

 

    总结:支持向量机是一种分类器。之所以成为“机”是因为他会产生一个二值决策结果,即它是一种‘决策’机。核方法或者说核技巧会将数据(有时是非线性数据)从一个低维空间映射到一个高维空间,

  可以将一个在低维空间中的非线性问题转换为高维空间下的线性问题来求解。

 

美国中情局对其黑客武器库的失控,如同一把宝剑悬着以划“域”而治。固守边界防御思路治理下的各国关键基础设施上空,大范围安全事件随时可能发生。2017年,WannaCry勒索病毒是一个典型的安全事件,短短4日,席卷150多个国家,造成80亿美元损失,涉及金融、能源、医疗等众多行业[1]。如何避免突击式的补救,成为当下急需解决的问题。

  3、决策树

 

    优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。

    缺点:可能会产生匹配过度问题。

    适用数据类型:数值型和标称型。

    算法类型:分类算法。

    数据要求:树的构造只适用于标称型的数据,因此数值型数据必须离散化。

 

    简述:在构造决策树时,我们需要解决的第一个问题就是,当前数据集上哪个特征在划分数据分类时起决定性作用。为了找到决定性特征,划分出最好的结果,我们必须评估每个特征。完成测试后,

  原始数据就被划分为几个数据子集。这些数据的子集分布在第一个决策点的所有分支上,如果某个分支下的数据属于同一个类型,则无需进一步对数据集进行切割。反之则需要进一步切割。

    创建分支的伪代码如下:  

    检测数据集中的每个子项是否属于同一分类:

          if so return 类标签;

          else

              寻找数据集的最好特征

              划分数据集

              创建分支结点

                  for 每个划分的子集

                      调用函数createBranch并增加返回结果到分支结点中

                 return 分支结点

    

    在可以评测哪种数据划分方式是最好的数据划分之前,我们必须学习如何计算信息增益。集合的信息度量方式称为香农熵或者简称为熵。熵在信息论中定义为信息的期望值。

 

    信息熵的计算公式为:

    H(信息熵) = -∑ P(xi) log2P(xi)
ps:其中p(xi)表示选择该分类的概率。

    

    下面简述一下生成决策树的步骤:

     1、根据给定的训练数据,根据熵最大原则根据每一个维度来划分数据集,找到最关键的维度。

    
2、当某个分支下所有的数据都数据同一分类则终止划分并返回类标签,否则在此分支上重复实施(1)过程。

     3、依次计算就将类标签构建成了一棵抉择树。

     4、依靠训练数据构造了决策树之后,我们就可以将它用于实际数据的分类。

    ps:当然生成决策树的算法不止这一个,还有其他一些生成决策树的方法,比如:C4.5和CART。

 

    总结:

 

    决策树分类器就像带有终止块的流程图,终止块表示分类结果。开始处理数据集时,我们首先需要测量集合中数据的不一致性,也就是熵,然后寻找最优的方案划分数据集,直到数据集中的所有数据属于同一个分类。

 

改变以往的边界防御思路,从数据安全保护角度出发,通过对业务数据进行动态评估,分析出业务数据的价值,从而根据不同价值等级进行动态的策略规则防护。

  4、朴素贝叶斯:

 

    优点:在数据较少的情况下仍然有效,可以处理多类别问题。

    缺点:对于输入数据的准备方式较为敏感。

    适用的数据类型:标称型数据。

    算法类型:分类算法

 

    简述:朴素贝叶斯是贝叶斯理论的一部分,贝叶斯决策理论的核心思想,即选择具有高概率的决策。朴素贝叶斯之所以冠以朴素开头,是因为其在贝叶斯理论的基础上做出了两点假设:(1)每个特征之间相互独立、(2)每个特征同等重要。

 

    贝叶斯准则是构建在条件概率的基础之上的,其公式:P(H|X)=P(X|H)P(H)/P(X)

     

    ps:P(H|X)是根据X参数值判断其属于类别H的概率,称为后验概率。P(H)是直接判断某个样本属于H的概率,称为先验概率。

 

    P(X|H)是在类别H中观测到X的概率(后验概率),P(X)是在数据库中观测到X的概率。可见贝叶斯准则是基于条件概率并且和观测到样本的先验概率和后验概率是分不开的。

 

    总结:对于分类而言,使用概率有事要比使用硬规则更为有效。贝叶斯概率及贝叶斯准则提供了一种利用已知值来估计未知概率的有效方法。可以通过特征之间的条件独立性假设,降低对数据量的需求。

  尽管条件独立性的假设并不正确,但是朴素贝叶斯仍然是一种有效的分类器。

 

  

1 防御构想

  5、 K-近邻算法(KNN):

 

    优点:精度高、对异常值不敏感、无数据输入假定

    缺点:计算复杂度高,空间复杂度搞。

    适用数据范围:数值型和标称型。

    算法类型:分类算法。

 

    简述:算法原理,存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一个数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征

  和样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,我们只选择样本数据集中前k个最相似的数据,这就是k-近邻算法中k的出处,通常k是不大于20的整数。

  最后选择k个最相似数据中出现次数最多的分类,作为新数据的分类。

 

动态防御,很早就是网络安全领域追诉的目标,经历了从设备联动布防到现在对人工智能的关注。在当下网络安全环境中,利用IPS、FW等设备的动态关联,已经不能满足动态的需要。人工智能以其高效数据处理和分析的速度、准确性等优势,受到了人们的青睐。其中,数据和算法是保障高信度和高效度分析结果的核心。脱离全面有效数据的喂养,准确分析将无从谈起;离开有效算法和算法集间的交叉验证,就会走向信度和效度极度脆弱的一面。

  6、 线性回归(Linear Regression):

 

    优点:结果易于理解,计算上不复杂。

    缺点:对非线性数据拟合不好。

    适用数据类型:数值型和标称型数据。

    算法类型:回归算法。

    ps:回归于分类的不同,就在于其目标变量时连续数值型。

 

     简述:在统计学中,线性回归(Linear
Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的

  线性组合(自变量都是一次方)。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。

 

    线性方程的模型函数的向量表示形式为:

 

    必威 10

 

    通过训练数据集寻找向量系数的最优解,即为求解模型参数。其中求解模型系数的优化器方法可以用“最小二乘法”、“梯度下降”算法,来求解损失函数:

 

    必威 11

 

    的最优值。

 

    附加:岭回归(ridge regression):

 

      岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价,获得回归系数更为符合实际、更可靠的回归方法,

    对病态数据的耐受性远远强于最小二乘法。

      岭回归分析法是从根本上消除复共线性影响的统计方法。岭回归模型通过在相关矩阵中引入一个很小的岭参数K(1>K>0),并将它加到主对角线元素上,从而降低参数的最小二乘估计中复共线特征向量的影响,

    减小复共线变量系数最小二乘估计的方法,以保证参数估计更接近真实情况。岭回归分析将所有的变量引入模型中,比逐步回归分析提供更多的信息。

 

    总结:与分类一样,回归也是预测目标值的过程。回归与分类的不同点在于,前者预测连续型的变量,而后者预测离散型的变量。回归是统计学中最有力的工具之一。在回归方程里,求得特征对应的最佳回归系统的方法是最小化误差的平方和。

 

构建真正意义上的“以未知对未知”的动态防御,数据和算法是核心。获取全面的具有代表性的数据,才能避免人工智能鲁棒性的出现,才能提供更加准确可靠的分析结果。算法决定检测准确度的上限。只有对算法的优缺点进行验证、分析,才能在实战中做好算法集的动态调配。

  7、 树回归:

 

    优点:可以对复杂和非线性的数据建模。

    缺点:结果不易理解。

    适用数据类型:数值型和标称型数据。

    算法类型:回归算法。

 

    简述:线性回归方法可以有效的拟合所有样本点(局部加权线性回归除外)。当数据拥有众多特征并且特征之间关系十分复杂时,构建全局模型的回归算法是比较困难的。此外,实际中很多问题为非线性的,

  例如常见的分段函数,不可能用全局线性模型类进行拟合。树回归将数据集切分成多份易建模的数据,然后利用线性回归进行建模和拟合。较为经典的树回归算法为CART(classification
and regreesion trees 分类回归树)。

 

    CART算法的详细描述可以看这篇文章:
(说实话,大体了解,看的不太懂,谁了解的比较透彻可以分享下)。

 

“以未知对未知”,是在人工智能的技术前提下,基于Netflow和sFlow两种协议字段融合,克服单一网络协议的数据局限性弊端,降低网络数据存储量和运行主机的CPU负载率,结合算法集对流动变化的数据自适应,通过关键因素的风险区间和概率分布,对未来结果做出精准判断,产出不断进化的防御规则,以应对新时代网络安全的需求。

  8、K-Means(K 均值算法):

 

    优点:容易实现。

    缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。

    适用数据类型:数值型数据。

    算法类型:聚类算法。

 

    ps:K-Means和上面的分类和回归算法不同,它属于非监督学习算法。类似分类和回归中的目标变量事先并不存在。与前面“对于数据变量X能预测变量Y”不同的是,非监督学习算法要回答的问题是:“从数据X中能发现什么?“,

  这里需要回答的X方面可能的问题是:”构成X的最佳6个数据簇都是哪些“或者”X中哪三个特征最频繁共现?“。

 

    K-Means的基本步骤:

     1、从数据对象中随机的初始化K个初始点作为质心。然后将数据集中的每个点分配到一个簇中,具体来讲每个点找到距其最近的质心,并将其分配给该质心所对应的簇。

     2、计算每个簇中样本点的均值,然后用均值更新掉该簇的质心。然后划分簇结点。

     3、迭代重复(2)过程,当簇对象不再发生变化时,或者误差在评测函数预估的范围时,停止迭代。

 

    算法的时间复杂度上界为O(nkt), 其中t是迭代次数。

 

    ps:初始的K个质心的选取以及距离计算公式的好坏,将影响到算法的整体性能。

 

    附加:

 

    二分K-均值算法:为克服K-均值算法收敛于局部最小值的问题,有人提出了另一个称为二分K-均值(bisecting
K-Means)的算法。该算法首先将所有点作为一个簇,然后将簇一分为二。之后选择其中一个簇继续划分,

    选择哪个一簇进行划分取决于对其划分是否可以最大程度降低SSE(Sum of
Squared Error,两个簇的总误差平方和)的值。

 

2 “以未知对未知”的防御体系设计

   算法关联分析:

    频繁项集(frequent item sets):经常出现在一块的物品的集合。

    关联规则(association
rules)
:暗示两种物品间可能存在很强的关系。

    项集的支持度(support):数据集中包含该项集记录所占的比例。

    关联分析的目标包括两项:发现频繁项集合发现关联规则。首先找到频繁项集,然后才能获得关联规则。

 

“以未知对未知”防御体系设计(如图2所示)共分三个部分。第一部分是未知数据的采集、梳理、融合、范化、精炼,形成标准的数据格式;第二部分是自适应算法集,包含支持向量机算法、Apriori与FP-Growth算法、隐式马尔科夫算法、朴素贝叶斯算法等,每个算法单独并行运算,威胁验证后,提交给态势数据库;第三部分,态势数据库一方面将威胁情报梳理呈现,另一方面根据网络状况进行资源管理策略调整,影响安全防御系统策略变更。

  9 、Apriori算法:

 

    优点:易编码实现。

    缺点:在大型数据集上可能较慢。

    适用数据类型:数值型或标称型数据。

    原理:如果某个项集时频繁的,那么他的所有子集也是频繁的。

    Apriori运用的DEMO示例参见博客:

 

    简述:Apriori算法是发现频繁项集的一种方法。Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个item的项集列表。然后扫描列表计算每个item的项集支持度,

    将低于最小支持度的item排除掉,然后将每个item两两组合,然后重新计算整合后的item列表的支持度并且和最小支持度比较。重复这一过程,直至所有项集都被去掉。

 

    总结:

      关联分析是用于发现大数据集中元素间有趣关系的一个工具集,可以采用两种方式来量化这些有趣的关系。发现元素间不同的组合是个十分耗时的任务,不可避免需要大量昂贵的计算资源,

    这就需要一些更智能的方法在合理的时间范围内找到频繁项集。能够实现这一目标的一个方法是Apriori算法,它使用Apriori原理来减少在数据库上进行检查的集合的数目。Apriori原理是说如果一个元素是不频繁的,

    那么那些包含该元素的超集也是不频繁的。Apriori算法从单元素项集开始,通过组合满足最小支持度要求的项集来形成更大的集合。支持度用来度量一个集合在原始数据中出现的频率。

 

  10、 FP-growth算法:

 

     简述:FP-growth也是用于发现频繁项集的算法,他以FP树的结构存储构建元素,其他Apriori算法的性能要好很多。通常性能要好2个数量级以上。其发现频繁项集的过程如下:(1)构建FP树。(2)从FP树中挖掘频繁项集。

    优点:一般要快于Apriori。  

    缺点:实现比较困难,在某些数据集上性能会下降。

    适用数据类型:标称型数据。

 

    总结:FP-growth算法是一种用于发现数据集中频繁模式的有效方法。FP-growth算法利用Apriori原则,执行更快。Apriori算法产生候选项集,然后扫描数据集来检查他们是否频繁。由于只对数据集扫描两次,

       因此FP-growth算法执行更快。在FP-growth算法中,数据集存储在一个称为FP树的结构中。FP树构建完成后,可以通过查找元素项的条件及FP树来发现频繁项集。该过程不断以更多元素作为条件重复进行,直到FP树只包含一个元素为止。

 

必威 12

2.1 数据采集方法研究

采集具有代表性的原始数据,是“未知对未知”防御的重要基础。

由于网络流量中包含了源/目的地址、源/目的端口、协议类型等丰富的网络信息,能够实时反映当前网络中出现的安全信息和行为描述。因此,网络流量为在网络异常检测方面最具有代表性的元数据。由于其他安全设备和网络设备品牌各异,采集数据的协议也不尽相同。这些设备采集的和二次加工的数据暂且纳入第三方信息管理平台,为威胁验证提供参考。

近几年,应用比较广泛的网络流技术主要包括NetFlow(Ciso公司)、J-Flow(Juniper公司)、sFlow(HP,InMon,Foundry
Networks公司)和NetStream(华为公司)。其中,J-Flow和NetStream这2种网络流的原理和内容基本与NetFlow相类似,故可以认为目前应用的常见网络流主要以NetFlow和sFlow为主[2]。

2.1.1 基于NetFlow的流量采集方法

NetFlow是由Cisco创造的一种流量轮廓监控技术,简单来说就是一种数据交换方式。NetFlow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息,易于管理和易读。

NetFlow利用标准的交换模式处理数据流的第1个IP包数据生成NetFlow缓存,随后同样的数据基于缓存信息在同1个数据流中进行传输,不再匹配相关的访问控制等策略。NetFlow缓存同时包含了随后数据流的统计信息。NetFlow有2个核心的组件:NetFlow缓存,存储IP流信息;NetFlow的数据导出或传输机制,将数据发送到网络管理采集器。

利用NetFlow技术可以检测网络上IP
Flow信息,包括(5W1H):

who:源IP地址;

when:开始时间、结束时间;

where:从哪——From(源IP,源端口);到哪——To(目的IP,目的端口);

what:协议类型,目标IP,目标端口;

how:流量大小,流量包数;

why:基线,阈值,特征。

这些数据可以形成标准的七元组。用七元组来区分每一个Flow是其重要的特点。七元组主要包括,源IP地址、源端口号、目的IP地址、目的端口号、协议类、服务种类和输入接口。

2.1.2 基于sFlow的流量采集方法

sFlow(RFC
3176)是基于标准的最新网络导出协议[3]。sFlow已经成为一项线速运行的“永远在线”技术,可以将sFlow技术嵌入到网络路由器和交换机ASIC芯片中。与使用镜像端口、探针和旁路监测技术的传统网络监视解决方案相比,sFlow能够明显降低实施费用,同时可以使面向每一个端口的全企业网络监视解决方案成为可能。

sFlow系统的基本原理为:分布在网络不同位置的sFlow代理把sFlow数据报源源不断地传送给中央sFlow采集器,采集器对sFlow数据报进行分析并生成丰富、实时、全网范围的传输流视图。

sFlow是一种纯数据包采样技术,即每一个被采样的X包的长度被记录下来,而大部分的包则被丢弃,只留下样本被传送给采集器。由于这项技术是基于样本的,如果没有复杂的算法来尝试推测准确的会话字节量,那么几乎不可能获得每台主机流量100%的准确值。使用这项技术时,交换机每隔100个数据包(可配置)对每个接口采一次样,然后将它传送给采集器。sFlow的规格也支持1:1的采样率,即对每一个数据包都进行“采样”。对数据包最大采样频率的限制取决于具体的芯片厂商和sFlow的实现情况。

2.1.3 双流量数据采集

因HTTP会话双向性的特点,需采取网络双向流量分析,主要针对request请求和服务器的response响应进行实时分析,并且自动关联分析磁盘阵列中全流量镜像历史数据,发现更深层次的攻击事件。

如图3所示,系统在用户发出请求和服务器给予响应的过程中,会对两者的HTTP请求包和响应包数据进行分析,判断是否存在漏洞或者攻击事件。如果有漏洞或者攻击事件,则会记录并交由其他模块继续处理。

必威 13

通过不同层次的监控(内核级、应用层级主要包括进程操作、文件操作、注册表操作、网络访问、网络数据URL等)发现更全面的监控样本,结合智能关联分析形成有效的安全检测体系,以挖掘更全面的恶意行为。

2.1.4 数据融合

NetFlow和sFlow两种协议都属于网络流协议,但是存在一些差异。sFlow通过采样的形式来获取网络流数据,基本包含了网络中的所有信息,且具有“永远在线”的特点。由于协议本身的设置,使得sFlow在获取网络流数据过程中虽然CPU负载率低,但是获取的数据存在一些误差,尤其在网络流量较小时,难以满足小规模网络的要求。而NetFlow通过连续采集的方式来获取网络流数据,使得数据中不包括网络中的一些部分重要信息(如:MAC地址、接口速率等),导致无法对上述重要信息进行研究分析。此外,由于通过连续采集的方式来获取数据,使得其CPU负载率较高,尤其当网络流量较大时,难以有效满足大规模网络的要求[4]。

将NetFlow和sFlow数据融合,相互弥补各自的不足、性能上的差异,是推动采集数据全面性的必经之路。融合不是简单的结合,而是在两个协议功能、性能优缺点分析的基础上,对两个协议字段进行融合。

2.2 算法研究

算法决定上限,也是说算法决定了智能安全功能展现的上限阈值。本文通过算法集研究实践,分析不同算法特性来应对不同威胁的攻击。具体地,主要对支持向量机算法、Apriori与FP-growth算法、隐式马尔科夫算法和朴素贝叶斯算法等进行分析研究。

2.2.1 支持向量机算法

支持向量机是一种二分类模型,基本模型是定义在特征空间上的间隔最大的线性分类器[5]。间隔最大使它有别于感知机(感知机利用误分类最小的策略,求得分离超平面,解有无穷多个;线性可分支持向量机利用间隔最大化求解最优分离超平面,解是唯一的);支持向量机还包括核技巧(将数据有时是非线性数据,从一个低维空间映射到一个高维空间,可以将一个在低维空间中的非线性问题转换为高维空间下的线性问题来求解),使其成为实质上的非线性分类器。支持向量机的学习策略是间隔最大化,以形式化为一个求解凸二次规划的问题,也等价于正则化的合页函数的最小化问题。

支持向量机学习算法模型分类。

(1)线性可分支持向量机。当训练集线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机。

(2)线性近似可分支持向量机。当训练集近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机。

(3)非线性支持向量机。当训练集线性不可分时,通过核技巧和软间隔最大化,学习非线性支持向量机。

SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器和人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,一般只能获得局部最优解。

2.2.2 Apriori与FP-gowth算法

Apriori和FP-growth算法是比较有代表性的关联规则算法。它们是无监督算法,可以自动从数据中挖掘出潜在的关联关系。这一算法对挖掘潜在威胁很有帮助,如对图2中自适应算法集及资源管理调整生成未知策略帮助很大。

Apriori算法是一种同时满足最小支持度阈值和最小置信度阈值的关联规则挖掘算法。使用频繁项集的先验知识,通过逐层搜索迭代的方式探索项度集。

FP-growth算法基于Apriori算法构建,但采用了高级的数据结构减少扫描次数,加快了算法速度。FP-growth算法只需要对数据库进行两次扫描,而Apr-iori算法对每个潜在的频繁项集都会扫描数据集判定给定模式是否频繁,因此FP-growth算法比Apr-iori算法快。

在自适应算法集,采用Apriori和FP-growth算法对NetFlow和sFlow两个协议的融合数据进行关联分析。

2.2.3 隐式链马尔科夫算法

隐马尔可夫模型(Hidden Markov
Model,HMM)是统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。难点是从可观察的参数中确定该过程的隐含参数,然后利用参数做进一步分析,如模式识别。被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计,即马尔可夫模型。

和HMM相关的算法主要分为三类,分别解决三种问题:

(1)已知隐含状态数量、转换率,根据可见状态链得出隐含状态链;

(2)已知隐含状态数量、转换率,根据可见状态链得出结果概率;

(3)已知隐含状态数量,通过多次观测可见状态链,反推出转换率。

2.2.4 朴素贝叶斯算法

在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法不同。对于大多数的分类算法,如决策树、KNN、逻辑回归、支持向量机等,都是判别方法,也就是直接学习特征输出Y
和特征X 之间的关系,要么是决策函数Y=f(X) ,要么是条件分布P(Y|X)
。但是,朴素贝叶斯却是生成方法,直接找出特征输出Y 和特征X
的联合分布P(X,Y) ,然后利用:

得出:

贝叶斯学派的思想可以概括为先验概率+数据=后验概率。也就是说,实际问题中需要得到的后验概率,可以通过先验概率和数据综合得到。一般来说,先验概率是对数据所在领域的历史经验,但是这个经验常常难以量化或者模型化。于是,贝叶斯学派大胆假设先验分布的模型,如正态分布、beta分布等。这个假设一般没有特定的依据,虽然难以从严密的数学逻辑中推出贝叶斯学派的逻辑,但是在很多实际应用中,贝叶斯理论应用效果良好,如垃圾邮件分类和文本分类。

2.3 未知规则生成研究

在整个“以未知对未知”防御思路中,未知数据、算法集、未知规则是其核心。这个思路是改变传统以特征库匹配防御的思路,推出了新的动态防御思路。

未知数据是网络空间中网络设备、安全设备二次加工数据以及NetFlow和sFlow两个协议融合的网络流量数据,需对这些数据进行处理提炼。

自适应算法集是在对机器学习智能算法理解的基础上进行建模识别,并检测网络威胁。检测流程:(1)智能算法集依据客户网络环境数据及相关信息生成威胁识别模型;(2)威胁识别模型适配运行;(3)识别威胁分类;(4)识别威胁验证(真实性、可触发性验证)优化算法模型;(5)结合已有策略进行调整。

3 理论验证

本文通过加密流量检测和DGA域名检测两个实验,验证“以未知对未知”理论的实践效果。

3.1 加密流量检测

数据加密通保证了网络交易和聊天的私密性,防止了攻击者(中间人攻击)窥探或篡改用户的网络通信数据。但是,也被攻击者利用普通的TLS或SSL流量来试图掩盖他们的恶意命令、远程控制行为以及数据窃取活动。

为了防止恶意软件通过加密流量窃取用户的隐私,传统做法是通过设置代理并解密通信数据来检查所有的SSL和TLS流量。

如果是在恶意活动中,那么上述这种“可行方法”就是常说的中间人(MitM)攻击。但是,即便是出于安全防御端的角度来看,这种方法仍然会被视为一种侵犯用户隐私的行为。因为当用户需要向银行或加密邮件服务发送加密通信信息时,这种方法就会破坏加密信任链,导致用户隐私受到侵害。此外,这种方法的计算量非常高,高到足以造成网络性能的大幅下降,更不用说管理额外的SSL证书(流量被检查之后需要重新签名)所带来的性能负担。以牺牲隐私权和网络性能为代价来换取安全性的方法是不值得的。

为此,从侧面来寻找答案。通过分析NetFlow和sFlow发现,流量中包含大量的有价值信息,可以表示网络上的两台设备正在交互,以及通信时长和发送的字节数等,但受语境限制,有些数据出现不完整现象。分析加密隧道协议发现,TLS数据流中未加密的元数据包含攻击者无法隐藏的数据指纹,而且即使数据经过加密也无法隐藏这种指纹。在不进行任何解密的情况下,对海量数据进行筛选和归类,通过“最具描述性的特征”来识别可以恶意流量和正常流量。

通过未知算法检测加密流量,发现了隐藏恶意文件和指纹,基于NetFlow,检测准确率为67%。配合SPL、DNS、TLS元数据以及HTTP等信息,检测的准确率将高达99%。而传统边界类防护设备无法检测加密流量。

3.2 检测DGA域名

DGA(域名生成算法)是一种利用随机字符生成C&C域名,从而逃避域名黑名单检测的技术手段。例如,一个由Cryptolocker创建的DGA生成域xeogrhxquuubt.com,如果进程尝试其他建立连接,那么机器就可能感染Cryptolocker勒索病毒。域名黑名单通常用于检测和阻断这些域的连接,但对不断更新的DGA算法并不奏效。

检测DGA域名的流程:(1)从DGA文件中提起域名数据;(2)特征提取:①元音字母个数统计;②去重后的字母数字个数与域名长度的比例;③平均jarccard系数;④HMM系数;(3)模型验证。

根据DGA的特性,采取不同算法对其进行验证。

为了更准确地评估不同算法检测的准确率,采用准确率、召回率、F
值评测进行评估。正确率是提取的正确数据条数/提取出的数据条数;召回率是提取的正确信息条数/样本中的信息条数;F
值是正确率*召回率*2/(正确率+召回率)。基于处理好的样本,对传统检测技术和大数据关联分析技术进行对比,实验结果如表1所示。

必威 14

4 结 语

将“以未知对未知”的实践尝试应用到网络空间中,将为动态化、自主化识别恶意软件和攻击行为提供保障。

参考文献:

[1]
徐贵宝.美国智能网络攻防对我国网络强国的启示[J].世界电信,2017(03):57-60.

[2]
陶桦.网络运行状况监控研究[D].南京:东南大学,2004.

[3]
罗焱.网络性能管理系统的研究与实现[D].武汉:武汉理工大学,2006.

[4]
陈欣.基于NetFlow和sFlow网络流融合的异常检测方法研究[D].哈尔滨:哈尔滨工业大学,2013.

[5] 杨文璐,乔海丽,谢宏等.基于Leap
Motion和支持向量机的手势识别[J].传感器与微系统,2018(05):47-51.

作者简介:

林榆坚,北京安赛创想科技有限公司,学士,主要研究方向为WEB应用安全、网络空间安全、人工智能安全;

梁宁波,北京安赛创想科技有限公司,学士,主要研究方向为信息安全。

原创声明 >>>

本微信公众号刊载的原创文章,欢迎个人转发。未经授权,其他媒体、微信公众号和网站不得转载。

···························································返回搜狐,查看更多

责任编辑:

发表评论

电子邮件地址不会被公开。 必填项已用*标注