精华内容
下载资源
问答
  • 关联分析的作用
    千次阅读
    2019-06-13 15:08:30

    基本方法
    关联分析的目标包括两项:发现频繁项集和发现关联规则。
    首先需要找到频繁相机,然后才能获得关联规则。
    关联分析的主要目的是寻找频繁项集,如果通过暴力搜索,运算量会呈几何性增长。为了减少频繁项集的计算量,可以采用Apriori算法和FP-Growth算法。

    Apriori算法

    原理:如果某个项集是频繁的,那么它的所有子集也是频繁的。这个原理反过来看对实际操作更有作用,即如果一个项集是非频繁项集,那么它的所有超集也是非频繁的。
    步骤

    1. 根据数据集生成候选项,首先生成单物品候选项集。
    2. 设定最小支持度和最小置信度
    3. 过滤掉数据项集占比低于最小支持度的项,形成频繁项。
    4. 根据步骤3形成的频繁项集结果,进行项集之间的组合形成新的项集集合。
    5. 重复步骤3、4.直到没有新的项集满足最小支持度。
    6. 根据步骤5形成的最终频繁集合,计算频繁集合所含物品之间的置信度,过滤掉小于最小置信度的项集
    7. 根据步骤6的结果生成关联规则,并计算其置信度。
      上述步骤中体现了Apriori算法的两个重要过程:连接步和剪枝步。
      连接步的目的是找到K项集,从满足约束条件的1项候选项集,逐步连接并检测约束条件产生高一级候选项集,直到得到最大的频繁项集。
      剪枝步是在产生候选项Ck的过程中起到减小搜索空间的目的。
      根据Apriori原理,频繁项集的所有非空子集也是频繁的,反之,不满足该性质的项集不会存在与Ck中,因此这个过程称为剪枝。
      从单元素项集开始,通过组合满足最小支持度要求的项集来形成更大的集合,每次增加频繁项集的大小,Apriori算法都会重新扫描整个数据集。当数据集很大时,会显著降低频繁项集发现的速度。

    FP-Growth算法

    在Apriori原理的基础上,采用FP树数据结构对原始数据进行压缩,大大加快了计算速度。
    FP-Growth算法把数据集中的事务映射到一棵FP-Tree上,再根据这棵树找出频繁项集,FP-Tree的构建过程只需要扫描两次数据集,特别是在大型数据集上具有很高的效率。
    步骤:构建FP树和挖掘频繁项集。
    算法的瓶颈在FP-Tree的递归挖掘上。
    1.FP树的数据结构:上去和其他树结构类似,但是它通过链接来连接相似的元素,被连起来的元素项可以看成一个链表。一个元素项可以在一棵FP树中出现多次。
    2.构建FP树: 需扫描两次数据集
    第一次扫描用来统计各元素项的出现频率,第二遍扫描只考虑频繁项集。
    (1)遍历数据集,统计各元素项出现的次数,创建头指针表。
    (2)移除头指针表中不满足最小值尺度的元素项
    (3)第二次遍历数据集,创建FP树。对每个数据集中的项集进行如下操作。
    ① 初始化空FP树
    ② 对每个项集进行过滤和重排序
    ③ 使用这个项集更新FP树,从FP树的根节点开始进行
    a.如果当前项集的第一个元素存在于FP树当前节点的子节点中,则更新这个子节点的计数值。
    b.否则,创建新的子节点,更新头指针表。
    c.对当前项集的其余元素项和当前元素项的对应子节点递归③的过程
    3.从FP树中挖掘频繁项集
    有了FP树之后,就可以抽取频繁项集了。从单元素项集合开始,然后在此基础上逐步构建更大的集合。步骤如下:
    (1)从FP树中获得条件模式基
    从头指针表中最下面的频繁元素项开始,构造每个元素项的条件模式基。条件模式基是以所查找元素项为结尾的路径集合,这里每一条路径都是该元素项的前缀路径。条件模式基的频繁度为路径上该元素项的频繁度计数。
    (2)利用条件模式基,构建一个条件FP树
    对于灭一个频繁项,都需要创建一棵条件FP树。使用刚才创建的条件模式基作为输入,累加每个条件模式基上的元素项频繁度,过滤低于阈值的元素项,采用同样的建树代码构建FP树。递归发现频繁项、条件模式基和另外的条件树。
    (3)迭代重复步骤(1)和步骤(2),知道树包含一个元素项,这样就获得了所有的频繁项集

    以下为FP树的测试代码。

    # FP树的数据结构
    class treeNode:
        def __init__(self, nameValue, numOccur, parentNode):
            self.name = nameValue
            self.count = numOccur
            self.nodeLink = None
            self.parent = parentNode
            self.children = {}
    
        def inc(self, numOccur):
            self.count += numOccur
    
        def disp(self, ind=1):
            print('  ' * ind, self.name, ' ', self.count)
            for child in self.children.values():
                child.disp(ind + 1)
    
    
    # 构建FP树
    def createTree(dataSet, minSup=1):
        headerTable = {}
        for trans in dataSet:
            for item in trans:
                headerTable[item] = headerTable.get(item, 0) + dataSet[trans]
    
        for k in list(headerTable):
            if headerTable[k] < minSup:
                del (headerTable[k])
        freqItemSet = set(headerTable.keys())
        if len(freqItemSet) == 0: return None, None
        for k in headerTable:
            headerTable[k] = [headerTable[k], None]
        retTree = treeNode('Null Set', 1, None)
        for tranSet, count in dataSet.items():
            localD = {}
            for item in tranSet:
                if item in freqItemSet:
                    localD[item] = headerTable[item][0]
            if len(localD) > 0:
                orderedItems = [v[0] for v in sorted(localD.items(), key=lambda p: p[1], reverse=True)]
                updateTree(orderedItems, retTree, headerTable, count)
        return retTree, headerTable
    
    
    def updateTree(items, inTree, headerTable, count):
        if items[0] in inTree.children:
            inTree.children[items[0]].inc(count)
        else:
            inTree.children[items[0]] = treeNode(items[0], count, inTree)
            if headerTable[items[0]][1] == None:
                headerTable[items[0]][1] = inTree.children[items[0]]
            else:
                updateHeader(headerTable[items[0]][1], inTree.children[items[0]])
        if len(items) > 1:
            updateTree(items[1::], inTree.children[items[0]], headerTable, count)
    
    
    def updateHeader(nodeToTest, targetNode):
        while (nodeToTest.nodeLink != None):
            nodeToTest = nodeToTest.nodeLink
        nodeToTest.nodeLink = targetNode
    
    
    # 挖掘频繁项集
    def ascendTree(leafNode, prefixPath):
        if leafNode.parent != None:
            prefixPath.append(leafNode.name)
            ascendTree(leafNode.parent, prefixPath)
    
    
    def findPrefixPath(basePat, treeNode):
        condPats = {}
        while treeNode != None:
            prefixPath = []
            ascendTree(treeNode, prefixPath)
            if len(prefixPath) > 1:
                condPats[frozenset(prefixPath[1:])] = treeNode.count
            treeNode = treeNode.nodeLink
        return condPats
    
    
    def mineTree(inTree, headerTable, minSup, preFix, freqItemList):
        bigL = [v[0] for v in sorted(headerTable.items(), key=lambda p: str(p[1]))]
        for basePat in bigL:
            newFreqSet = preFix.copy()
            newFreqSet.add(basePat)
            freqItemList.append(newFreqSet)
            condPathBases = findPrefixPath(basePat, headerTable[basePat][1])
            myCondTree, myHead = createTree(condPathBases, minSup)
            if myHead != None:
                print('conditional tree for:', newFreqSet)
                mineTree(myCondTree, myHead, minSup, newFreqSet, freqItemList)
    
    
    # 生成数据集
    def loadSimpDat():
        simDat = [
            ['r', 'z', 'h', 'j', 'p'],
            ['z', 'y', 'x', 'w', 'v', 'u', 't', 's'],
            ['z'],
            ['r', 'x', 'n', 'o', 's'],
            ['y', 'r', 'x', 'z', 'q', 't', 'p'],
            ['y', 'z', 'x', 'e', 'q', 's', 't', 'm']
        ]
        return simDat
    
    
    def createInitSet(dataSet):
        retDict = {}
        for trans in dataSet:
            retDict[frozenset(trans)] = 1
        return retDict
    
    
    if __name__ == '__main__':
        minSup = 3
        simDat = loadSimpDat()
        initSet = createInitSet(simDat)
        myFPtree, myHeaderTab = createTree(initSet, minSup)
        myFPtree.disp()
    
        myFreqList = []
        mineTree(myFPtree, myHeaderTab, minSup, set([]), myFreqList)
        print(myFreqList)
    
    

    两个算法的思路都是采用的枚举式方法,然后通过统计其频率,按照我们的需求返回结果。
    这一类算法比较适合用于包含具体的枚举项的场景,例如超市,商场。而如果是其他场景,比如,预测天气,分析影响天气的影响因素,则需采用其他更适合场景的方法了。

    更多相关内容
  • 运用关联规则挖掘方法进行危险源耦合作用量化研究,首先将隐患排查类比为"超市购物",进行建模分析;其次,进行隐患排查"事务"界定和危险源"项集"分析,构建布尔关系表,采用基于提升度拓展的Apriori算法构建危险源关联...
  • 针对这个不足,探索了域内和域问路由的关联分析技术,并在此基础上成功设计实现了Internet路由监测系统IRMS(Internet routing monitoring system).IRMS在对主流路由协议OSPF,BGP的监测基础上,可以提供包括全局路由拓扑...
  • 网络舆情是指在互联网上流行的对社会问题不同看法的网 络舆论,是社会舆论的一种表现形式,是通过互联网传播 的公众对现实...因此需要 研究网络舆情与分析对象之间的关联性,寻找出与给定舆资源联系最紧密的分析对象
  • 理解地理空间位置的空间相关性...最后以北京市共享单车轨迹数据与公共交通路网数据进行实证分析,实验结果表明基于本文提出方法生成的空间向量在空间位置的关联分析、聚类分析中相比DeepMove等已有方法拥有更好的效果.
  • 关联分析

    千次阅读 2018-02-06 20:56:52
    关联分析 作用:提取出对数据中的变量之间的关系的最佳解释 基本概念: 1、事务:每一条交易称为一个事务,例如示例1中的数据集就包含四个事务。 2、项:交易的每一个物品称为一个项,例如Cola、Egg等。 3、项...
    关联分析
        作用: 提取出对数据中的变量之间的关系的最佳解释
       基本概念:
        1、事务:每一条交易称为一个事务,例如示例1中的数据集就包含四个事务。
      2、项:交易的每一个物品称为一个项,例如Cola、Egg等。
      3、项集:包含零个或多个项的集合叫做项集,例如{Cola, Egg, Ham}。
      4、k−项集:包含k个项的项集叫做k-项集,例如{Cola}叫做1-项集,{Cola, Egg}叫做2-项集。
      5、支持度计数:一个项集出现在几个事务当中,它的支持度计数就是几。例如{Diaper, Beer}出现在事务 002、003和004中,所以它的支持度计数是3。
      6、支持度:支持度计数除于总的事务数。例如上例中总的事务数为4,{Diaper, Beer}的支持度计数为3,所以它的支持度是3÷4=75%,说明有75%的人同时买了Diaper和Beer。
      7、频繁项集:支持度大于或等于某个阈值的项集就叫做频繁项集。例如阈值设为50%时,因为{Diaper, Beer}的支持度是75%,所以它是频繁项集。
      8、前件和后件:对于规则{Diaper}→{Beer},{Diaper}叫做前件,{Beer}叫做后件。
      9、置信度:对于规则{Diaper}→{Beer},{Diaper, Beer}的支持度计数除于{Diaper}的支持度计数,为这个规则的置信度。例如规则{Diaper}→{Beer}的置信度为3÷3=100%。说明买了Diaper的人100%也买了Beer。
      10、强关联规则:大于或等于最小支持度阈值和最小置信度阈值的规则叫做强关联规则。关联分析的最终目标就是要找出强关联规则。
        11、频繁K项集:满足最小支持度阈值的K项集合。
     12、候选K项集:通过连接形成的K项集合。

    例子:
    交易号码  商品
    0 豆奶,莴苣
    1 莴苣,尿布,葡萄酒,甜菜
    2 豆奶,尿布,葡萄酒,橙汁
    3 莴苣,豆奶,尿布,葡萄酒
    4 莴苣,豆奶,尿布,橙汁
    一个项集的 支持度 被定义数据集中包含该项集的记录所占的比例。
    如上图中,{豆奶}的支持度为4/5,{豆奶,尿布}的支持度为3/5。
    支持度是针对项集来说的,因此可以定义一个最小支持度,而只保留满足最小值尺度的项集。
    可信度或置信度(confidence)是针对关联规则来定义的。
    规则{尿布}➞{啤酒}的可信度被定义为"支持度({尿布,啤酒})/支持度({尿布})",
    由于{尿布,啤酒}的支持度为3/5,尿布的支持度为4/5,所以"尿布➞啤酒"的可信度为3/4。
    这意味着对于包含"尿布"的所有记录,我们的规则对其中75%的记录都适用。

    1)Apriori算法
    Apriori原理是说如果某个项集是频繁的,那么它的所有子集也是频繁的。更常用的是它的逆否命题,即如果一个项集是非频繁的,那么它的所有超集也是非频繁的。
    步骤:
        1.先计算1项集的支持度,筛选出频繁1项集。
     2.然后排列组合出2项集,计算出2项集的支持度,筛选出频繁2项集。
     3.然后通过连接和剪枝计算出3项集,计算出3项集的支持度,筛选出频繁3项集。
     4.然后依次类推处理K项集,直到没有频繁集出现(具体例子参考首图)。
    优点:
         使用先验性质,大大提高了频繁项集逐层产生的效率;简单易理解;数据集要求低
    缺点:
         1、候选频繁K项集数量巨大。
      2、在验证候选频繁K项集的时候,需要对整个数据库进行扫描,非常耗时。 

    2)FP-growth算法
    参考:http://blog.csdn.net/huagong_adu/article/details/17739247
    思想和算法步骤:遍历数据集中每个元素,获得每个元素出现的次数,然后根据元素出现的频率,去掉不满足最小支持度的元素项。获得过滤后的频繁项集,然后开始构建FP树。
         
    构建BP树的过程就是向树中添加频繁项集的过程,这就需要第二次遍历数据集,遍历数据集中元素时,这是只考虑频繁项集,对每个频繁项根据支持度递减的次序进行排序,然后使用排序后的频繁项集进行对树的填充,
       填充过程为:首先建一个空树,当遍历第一组频繁项集时,将所有项集填入树中,作为树的子节点(添的时候从上到下依次添入,比如下图中第一步add{z,r}),
       然后,再填入下一组频繁项集时,对每个频繁项有:遍历树中的每个元素,从上到下,从左到右,如果该频繁项已存在树的子节点中,只需将该子节点的频繁项数加1即可,
       如果该频繁项不存在树的子节点中,就将该频繁项添加到树中,作为新的子节点,接下来添加频繁项组的过程跟上述一样,直到将所有频繁项都添加到FP树中。
    应用场景:
         优化货架商品摆放,或优化邮寄商品目录的内容
      交叉销售和捆绑销售
      异常识别等
     
    优点:只进行2次数据集扫描而且不使用候选集,直接压缩数据集成一个频繁模式树(FP树),最后通过这个FP树生成频繁项集
    缺点:不适用于数据量很大情况

    牛奶,鸡蛋,面包,薯片
    鸡蛋,爆米花,薯片,啤酒
    鸡蛋,面包,薯片
    牛奶,鸡蛋,面包,爆米花,薯片,啤酒
    牛奶,面包,啤酒
    鸡蛋,面包,啤酒
    牛奶,面包,薯片
    牛奶,鸡蛋,面包,黄油,薯片
    牛奶,鸡蛋,黄油,薯片

    展开全文
  • 安全事件关联分析方法

    千次阅读 2021-06-30 18:32:37
    综述性文章可以参考《网络安全事件关联分析技术与工具研究》琚安康 郭渊博 朱泰铭 王 通 一、安全事件关联分析技术分类 类别 技术方法 主要特点 应用场景 ...

    原链接:https://www.cnblogs.com/bonelee/p/14049231.html

    综述性文章可以参考《网络安全事件关联分析技术与工具研究》琚安康 郭渊博 朱泰铭 王 通

    一、安全事件关联分析技术分类

    类别

    技术方法

    主要特点

    应用场景

    文献

    属性特征

    有限状态机

    行为动作明确清晰且具有极强的逻辑约束性;不够灵活,不支持

    场景的动态变化

    逻辑性较强的系统应用场景

    [17-18]

    基于规则

    最易实现且效率最高;使 用不灵活,配置困难,规 则库依赖于专家知识

    通用场景

    [19-21]

    codebook

    关联匹配速度快,性能较好,关联过程不 需要专家知识;编码 生成过程复杂

    异常事件匹配识别

    [40]

    逻辑推理

    实例推断

    具有学习能力;时间效率低,不适用于实时事件关联

    非实时处理环境

    [23-25]

    模型推断

    模块化协作;结构描述、行为描述和异常定义

    逻辑回路错误诊断

    [26]

    概率统计

    投票机制

    指示范围辅助决策;无法给出确切信息 分布式网络下的网络错误或异常定位

    [28]

    依赖图

    直观反映关联关系,易于管理;生成算法效率较低,依赖资源

    反映事件因果的偏 序关系,生成操作信息流图

    [30,41-42]

    贝叶斯网络

    综合了先验知识和专家知识,且可随环境变化更新;需要大量训练,依赖专家知识,针对大型网络效果较差

    小型网络环境

    [31-33,44-46]

    马尔科夫模型

    可检测未知入侵,适用于连续事件流和 实时检测;训练代价 高,性能依赖于参数调优多步攻击定位问题

    [34,47-49]

    机器学习

    神经网络

    非线性逼近性、鲁棒性以及容错性,自适应性,抗噪声输入,便于推广;调整权重和生成稳定网络的过程需要大量试错

    快速、准确且 有精度要求 的近实时应用

    [35-37,43]

    支持向量机

    克服了维数灾难和局部极小等问题,具有较好的泛化能力

    小样本、高速网络应用

    [27,37-39]

    1、基于属性特征的安全事件关联分析技术

    基于属性特征的关联分析技术是指从事件自身的角度出发,分析属性特征之间的关联特性,并以此为基础配置关联策略,根据事件属性对其进行匹配检测。由于各种类型的安全事件本身具有特有的特征,因此此类方法要求人们对事件有较为深刻的理解,较多地依赖于专家知识,无法对未知问题进行有效关联。

    基于状态机的关联分析方法,将有限状态机技术应用到网络安全事件关联分析中的本质在于某个安全事件会带来多个可能的事件序列。基于状态机的关联分析模型[17-18]的优点在于确定了系统状态及转换函数后,描述系统各行为动作时是清晰明确的,具有极强的逻辑约束性,适合于逻辑性较强的系统应用场景。在网络入侵检测方面,可用于业务逻辑清楚且安全要求较高的应用场景,但是也因为其强逻辑性,难以区分攻击事件和人员误操作,所以会带来通用性不好的缺点;而且在确定了状态转换逻辑之后,不支持场景的动态变化,针对不同的应用场景必须重新建立状态模型,且当环境发生变化时需要进行适当调整。

    2、基于规则的关联方法

    基于规则的关联方法[19-21]是最易实现且也是效率最高的方法,但其缺点也很明显:使用不灵活且配置困难。在实际应用中,通常根据指定的条件动作关系设计和制定关联规则,即为每个规则指定一个条件(如“在不到五分钟内事件 A 至少发生十次,且在不超过一分钟后 B 事件发生”)和相应的操作(如“向管理员发送报警消息”)。对一个规则的评估由相应的输入事件触发,这些规则通常被称为事件条件操作(ECA)规则。

    3、基于逻辑推理的关联方法

    实例推断

    基于实例推断的思想源于现实生活中的应用场景,在现实生活中,一些类似情形总是重复发生,处理某一特定情形的方法在其他情形中也能适用,而这些类似的情形并非要与该特定情形完全一致。因此,当试图解决一个问题时,都是从曾经经历过的类似案例出发,基于实例推断的关联技术主要依据这一思想,利用类比推理的方法得到新问题的近似解答,再加以适当修正,使之完全适合新问题。基于实例推断的关联技术[23-24]是指:将解决过的成功案例作为知识存储起来,遇到新问题时,在实例库中查找相似的案例,对其修正后作为新问题的解决方案。一般地,基于实例推断的关联分析体系的结构由5个部分组成,其中包括1个实例库和4个功能模块,4个功能模块分别是输入模块、检索模块、修改模块和处理模块。首先,输入模块接收用户提供的问题描述;接着由检索模块在实例库中寻找与之匹配的事例,如果能找到完全匹配的事例,那么就应用该事例的解,问题就迎刃而解。如果找不到完全匹配的事例,检索模块就在实例库中找一个最近似的事例,然后由修改模块对该事例的解作适当的修正即可满足当前问题的要求,其结果是得到一个新问题的解;一旦问题被解决,则处理模块根据解决方案对问题进行处理。

    模型推断

    基于模型推断的关联技术[26]将系统中的每一个部件都表示为一个模型,需要对模型进行结构描述和行为描述,以及违背上述两种描述的异常定义,这种方法的缺点在于解决问题的复杂性较高。在基于模型的关联分析系统中,每个管理对象都有一个模型作为其副本与之相联系,一个模型实际上就是一个软件模块,事件之间的关联通过各个模型相互协作实现。虽然基于模型推断的关联技术在实现上会使用基于规则的方法,但是与基于规则的方法针对于特定行为的事件模式不同,基于模型推断的关联技术更关注一系列事件序列或模型状态,在这种意义上更接近于基于FSM的方法。在应用中,基于模型推断的关联技术较多应用于逻辑回路的错误诊断。例如,在实际网络中一般都会周期性地对某一路由器发出命令以检测其是否正常工作,在基于模型的推理系统中,这一过程实际上是通过该路由器的模型周期性地对路由器发出命令来实现。

    4、基于概率统计的安全事件关联分析技术

    基于概率统计的安全事件关联分析技术是指从事件发生概率和统计数据角度出发,对报警信息间的关系以概率形式进行刻画,揭示网络安全事件的时序和因果关系。这种方法的优势在于现有统计分析方法已经较为成熟,但缺点也很明显,即需要借助专家知识进行验证和性能调优,因此针对未知攻击方式和存在大量冗余报警的事件集合的关联效果较差。

    投票机制

    通过投票机制可以定位网络中的错误或异常[28]。通常,选票(由不同的节点事件表示)不能提供故障位置的确切信息,但其可以指示一定的方向和范围来辅助决策。正如文献[4]指出,在故障定位过程中,基于投票机制的关联分析引擎事先获知网络的拓扑结构,并且可以计算出每个网络组成元素的投票数量,从而得到故障发生的可能位置。文献[5]描述了一个使用投票机制的示例场景,在该场景中,从一个可能的消息类型中确定一个故障信息(触发了具有脆弱性设备中的一个程序漏洞),采用神经网络的方法检查每个子网,每一个神经网络确定哪一个消息类型最有可能是该消息的错误消息并进行投票,最后根据所有消息类型的选票确定最有可能的错误消息类型。

    依赖图

    基于依赖图(Dependency Graphs)的关联分析技术[30]通过将收集到的安全警报映射到基于时序信息的图形中,将警报之间的关系表示为一个有向图,其中节点集表示警报,这些节点相连的边表示连接警报(节点)的时空关系,也称为报警关联图。

    报警关联图具有下面几个优点:1)从管理角度看,图是比较简单的模型,即图的形式可以很好地反映节点之间的关联关系;2)在关联图上的操作实现具有鲁棒性,即添加或删除对象和依赖关系都是简单的原子任务;3)图表是一种自然的分布式结构,易于管理,可以由不同的管理员独立添加或删除对象和从属关系。

    在使用依赖图的同时往往也会结合决策树模型。决策树是一种树状结构,用于揭示数据中的结构化信息,利用该结构可以将大型记录集分割为相互连接的小记录集,通过每一次连续分割,结果集中的成员彼此之间变得越来越相似。使用决策树算法便于将数据规则可视化,构造决策树的过程所需的时间也比较短,且输出的结果容易理解。决策树具有分类精度高、操作简单以及对噪声数据具有较好健 壮性的优点。C4.5和ID3是常见的决策树算法方法,但是 C4.5决策树算法在生成树的过程中,需要对样本集进行多次扫描和排序,导致算法的效率比较低;另外,C4.5算法只适用于可以驻留于内存的数据集,当训练集超过内存的容纳能力时,程序就无法运行,这使得该算法对硬件的要求比较高。

    5、基于贝叶斯网络的关联方法

    贝叶斯网络

    贝叶斯网络模型,也被称为信度网络(或简称为贝叶斯网),是最强大的概率图形(GMs)之一,用于表示关于不确定性的域间知识。贝叶斯网络主要由两个部分组成。

    1)一个图形组件组成的向无环图(DAG),图的顶点表示事件,边表示事件和事件之间的关系。

    2)由数值组件组成的概率依赖关系,DAG 的每个节点表示在其父母的上下文中条件概率分布的不同环节之间的关系,图中的每个节点代表一个随机变量,而节点之间的边代表相应的随机变量的概率依赖关系。

    贝叶斯网络由几个参数定义,即是由先验概率的父节点状态和一组与子节点相关联的条件概率表(CPT)组成的,条件概率表反映子节点和其父节点之间的先验知识。贝叶斯网络用于解决告警关联问题时是有明显的优势。首先,关联分析的处理速度快;其次,可以通过填充条件概率表,合并先验知识和专家知识;再次,便于引入新数据以发现未观测到的变量概率;另外,可以通过网络传播更新适应新的数据和知识。但是其也存在一定的缺点,即这种方法需要大量的训练活动以取得先验概率,且需要依赖于专家知识。此外,基于贝叶斯网络的概率推理是 NP难问题,针对大型网络实际上很难实施有效的解决方案。

    6、马尔科夫模型

    马尔科夫模型(Markov Models)[34]是由离散状态和状态转移概率矩阵组成的随机模型,在此模型中的事件被假定遵循马尔科夫特性,模型的下一个状态只取决于当前状态,而不依赖于之前事件的顺序。在马尔科夫模型的定义中,需事先设定好状态间的跃迁概率和初始状态概率,这些参数可以静态定义,也可以通过对数据集进行训练得到。马尔科夫模型经过训练得到定义相关的概率,即通过对一连串的事件进行评估从而获得概率值,将概率与门限值进行对比,从而确定事件之间是否存在关联性。隐马尔可夫模型(Hidden MarkovModels,HMMs)中的状态序列不可见,由于攻击过程的行为序列有较强的先后顺序,一个步骤必须在另一步骤之后才能达到攻击的目的,因此隐马尔科夫模型更适合于结合攻击的先决条件来解决定位多步攻击问题。一般来说,基于马尔科夫模型的关联分析技术更适用于解决连续性质的问题,马尔科夫模型的主要缺点是需要经过适当的训练,且性能依赖于参数调优。

    7、基于机器学习的安全事件关联分析技术

    基于机器学习的安全事件关联分析技术应用数据挖掘和机器学习的方法训练数据集,生成事件关联规则,通过关联分析得到新型攻击事件模式,是一种可实时运行的事件关联方法。这种方法的优点在于可以自动地为安全事件建立关联模型,为分析管理大量报警信息节省了时间,其结果提供的信息便于分析人员阅读。缺点在于需要对数据进行训练,可能造成结果线程过于庞大,而不存在于线程中的数据则无法进行关联,影响到最后的分析结果的准确性。

    神经网络

    人工神经网络(ANN)通过大量相互关联的处理单元即神经元(Neurons)共同作用来解决具体问题,该模型主要受人脑中的神经系统模型的启发。各神经元之间相互关联,每个神经元可被看作是一个简单的自动处理单元,本地提供内存和单向通道,使其与其它神经元进行通信。神经网络通常用于复杂关系的建模或数据输入与输出之间存在非线性依赖关系的场景。

    二、关联分析技术分类

    1、因果关系关联方法

    任何一个攻击都不是单独出现的,一般情况下,每一个攻击的出现都是为后面的攻击做铺垫或是前一攻击的产物,最终,将达到攻击的意图。也就是说,每一步攻击都是整个攻击中的某一步,这些攻击之间有着一定的因果联系。因果关系关联方法便由此产生。因果关联方法最早是由 Templeton 等提出的,首先,他们对攻击进行建模,为每类攻击定义它的前因和后果,然后,通过比较后发生攻击的先决条件和先发生的攻击的结果,关联这两个告警信息[16]。随后,美国北卡罗莱纳州大学的 Peng Ning 等在这一思想的基础上进行了深入和系统的研究。他们提出了 TIAA 关联分析方法,该方法也是通过事件的前因和后果之间的联系进行关联性的阐释[17]。

    经过对很多入侵案例的有关分析,我们能够发觉,入侵常常可以分成四个阶段:

    (1) 收集目标系统信息。

    收集目标性的系统信息主要包括收集网络拓扑结构、目标系统的 IP 地址、端口号、操作系统的类型、和对系统进行漏洞扫描等。有很多方法可以进行系统信息的收集,如可以利用扫描工具来获得目标主机的操作系统版本等。

    (2) 提升权限。

    利用安全漏洞进行权限提升是目前流行的主要手段。近年来,安全漏洞出现的速度惊人,对我们使用计算机产生了很大的危害。每一个漏洞都要通过厂家提供相应的补丁,然后再将这些补丁安装到目标主机,才能解决相应的问题,这需要一个很长的时间过程。因此,很多人就在这段时间里,通过该安全漏洞进行入侵。当他们完成信息收集以后,会对收集到的信息进行综合分析,首先,对目标主机上正在运用的程序进行分析,然后对该目标主机上的系统进行安全弱点扫描,分析可以获取的权限,和可以继续加以利用的漏洞。

    (3) 入侵和放置后门程序。

    这一步主要包括的技术有缓冲区溢出、DDos、特洛伊木马和网络监听等。缓冲区溢出是指通过填充数据,使得数据越出缓冲区的边界,从而造成原程序的改变。有很多种方法可以造成缓冲区溢出,如栈溢出、堆溢出和静态数据区溢出等是根据填充数据溢出的缓冲区的位置,还有本地溢出和远程溢出则是根据缓冲区溢出漏洞的不同外部条件来进行的。

    DDos 即拒绝服务攻击,是一种通过大量合理的请求来占用服务资源,从而使得合法用户无法得到服务的攻击方法。它主要是运用网络上面已经被攻陷的电脑作为“僵尸”,向着某一个特有的目标,向电脑发动密集式的“拒绝服务”需求,用来将有关目标的网络资源以及系统的资源消耗完,让它不能向着正常的使用者提供有效服务。来拒绝有关服务攻击方式多种多样性,包括针对 UDP 协议的攻击、针对 WEB Server 的多连接攻击、针对 WEB Server 的变种攻击、针对游戏服务器的攻击、TCP 全连接攻击等[18]。

    特洛伊木马是一种后门程序,它可以秘密潜伏在计算机中,从而可以通过远程网络进行有效控制。控制者能够经过被木马感染的计算机来得到使用者的个人信息,从而达到盗取各种资料的目的。特洛伊木马和病毒相似,具有很强的隐蔽性,很难被用户发现。

    目前,常见的木马包括 SUB7、BO2000、冰河等,打开 TCP 端口监听和写入注册表启动是它们主要的控制方式。

    通过网络监听可对网络状态、数据流、网络上的信息传输进行监听。因此,控制者可以使用网络监听的方式来截获用户上传的数据流,其中可能包括用户的各种账号和密码、机密文件等信息。为了防范网络监听,首先要确保以太网的整体安全性,其次,一个很好的办法是采用加密手段,即使窃取了数据但不知道如何解密也是无用的,还有一种方法便是使用交换机,由于交换机是工作在第二层,而不像 Hub 一样在第一层工作,因为二层设备很少用到广播报文,所以大大的降低了被窃取的可能[19]。

    (4) 入侵后的现场处理。

    主要的处理便是清理或修改日志文件,以便隐藏攻击痕迹,从而达到隐蔽的效果,为日后再次入侵做准备。

    综上所述,我们可以知道,入侵攻击的每一步必然不是孤立的,一个完整的攻击步骤一定存在着因果关联关系。比如可以通过 IPSweep 攻击与 Portscan 攻击之间存在的因果关系来研究警告的因果关系,因为前者能够发现那些网络上的主机能够被访问,后者能够发现这些能够被访问的主机中哪些在向外提供信息,运用本地或远程缓冲区溢出攻击可以使得攻击者获得不合法授权的访问权限,或者得到一定权限的 shell,安装后门程序为以后再次进行入侵系统提供了方便。正是由于警告之间具有这样的因果关系,所以可以通过这样的因果关系来判断警告数据的关联性。

    2、交叉关联方法

    交叉关联方法是由 O.Dain 和 R.Cunningham 等人在 2001 年提出的。它的主要原理是利用告警信息与网络环境里面的全部主机的破绽扫描成果、网络拓扑构造,并通过安全策略与网络全部资料的结合分析,就能够较为准确的得到警告信息的成功率,从而判断影响程度,通过这一系列的操作来达到区分真实威胁,并最终去除误报的目的。

    交叉关联方法有六个步骤:

    (1)目标扫描。通过目标扫描就能够了解到警告信息中的目标系统存在怎样的系统漏洞,了解系统类型、IP 地址等等为后续工作服务。

    (2) 攻击类型的判断。通过警告信息,结合目标扫描结果来寻找攻击的类型,并且需要对相应的攻击类型进行网络依赖性判别。

    (3) 通过步骤 2 得到匹配结果,输入结果并得出贝叶斯网络条件的概率值,然后把安全专家根据经验知识设定的条件概率表作为基础,攻击成功的条件概率我们可以通过计算贝叶斯网络条件的概率值得出,这个值就是这条告警的可信度。

    (4) 在系统运行过程中,安全规则可以由网管进行一个动态的改变,在不同的时间段内有着不同的应用规则,而特定的 priority 就是特定的源地址、端口达到确定地址、端口产生的特定攻击造成的[33]。如果告警和这个安全规则相匹配,则将这规则的严重度用这条告警的严重度(priority)值设定来表示。如果没有匹配的,就将告警本身的严重度设定为该规则的严重度值。

    (5) 在同一网络中的各个不同的主机、服务器等,在全部网络的顺利运行中必然有着不相同的价值和重要程度。一般采用 asset 值来对这样一些资产进行重要性的衡量与判别,并且 asset 值可以根据实际需要有管理员在继续设置,且不同的主机或网络可以有不同的 asset 值能进行灵活控制。在告警没有找到与其相对应的 asset 值的时候,我们就将其默认设定为 1。

    (6) 交叉关联的最终目的就是判断出告警的威胁程序,而这个告警的威胁程序主要是由该告警的风险值 risk 来确定的。风险值 risk 的确定主要是通过前几步中得到的可信度、严重度和 asset 值来计算的。

    在不同的实际网络环境中,有可能得到相同的告警,这就使得使用交叉关联这种方法有了很高的必要性。此外,可以通过设置筏值的方法对信息进行一定的过滤,这就是交叉关联数据过滤必须要使用的过滤方法;并且通过过滤后还能够把一些原本琐碎,但具有一定威胁的信息重新进行关联分析,这样就能够集中精力来应对有一定威胁的警告。

    三、安全事件关联分析方法

    在过去的几年中,研究人员和供应商共同努力下提出了许多关于降低警报冗余性的相关方法。尽管如此,随着网络攻击的日趋多样化以及网络安全的要求日益严格,传统的关联方法仍然存在很多问题。国内外学者仍然尝试从不同的角度完善安全事件关联分析技术,使之可以更好的应用到实际网络态势系统中。通过学习已有研究方法,根据所使用的相关算法模型对提出的不同技术进行分类,主要可以概括为三个类别:基于相似度,基于攻击顺序和基于多源知识集成的方法。

    下面针对每一类阐述设计思路以及研究现状。

    1、基于相似度的关联方法

    基于相似性的技术旨在通过使用警报间的相似性进行聚类以此来减少警报总数。通过探测器生成的警报都有若干属性和字段,如警报生成时间、IP 地址、IDS名称、报警信息描述、攻击分类等。相似警报是指由相同攻击触发,由不同 IDS监测并产生的一类警报。相似性计算方法的差异的是影响关联分析的主要因素。

    为了提高关联的性能,许多研究者提出了不同的相似性策略。例如为每个属性定义一个合适的相似度函数,因为属性在相关过程中可能有不同的权重和影响。属于相似性关联方面的技术具有很多优点[19]。首先,它们通常用比其他类别的复杂度更小的轻量级算法来实现,主要是因为这些算法仅仅基于简单的逻辑比较。其次,这个类别已经证明了它在减少警报总数方面的有效性,这是关联过程中的一个重要步骤,因为通常原始 IDS 会向网络管理员报告大量的警报。但是,这些技术也有共同的弱点,那就是他们只是在属性层次上工作,不能检测到警报之间的因果关系,从而发现问题的根源。基于相似性的相关技术可以分为两类:基于属性信息和基于时间信息。下面分别介绍两种方法的设计思路。

    基于属性信息的关联技术通过使用某些属性或特征之间的相似性来关联警报,常用的属性如互联网协议地址、网络协议、攻击分类等。通过将定义好的属性通过合适方式量化后,就可以使用计量函数来度量相似性,例如欧式距离、余弦相似性、交叉熵以及汉明距离。得到的分数与阈值进行比较,从而确定这些警报是否相关。选择适当的相似性度量函数将会增加相关性的整体性能,使用不同的度量方式警报间的距离会有差异。Siraj 等人在不同属性的抽象层次的中给出了不同的相似度分数[20]。与其他方法不同的是该方法除了考虑属性的字符串层次的相似度,还考虑了字段实际意义层次的相似度。 例如,假设两个警报 A 和 B 具有相同的 IP 地址,匹配将处于最高等级相似度并给出 4 分。但是,如果它们具有不同的 IP 地址,则匹配被检查到更高级别,考虑子网级别。如果它们具有相同的子网,则匹配分数将是 3,等等。Lee 等人使用类似的方法[21]。此外 Valdes 他们使用基于欧几里德距离的相似性度量来计算两个警报之间的相似度值并进行聚类。他们应用这种技术来检测 DDoS 攻击[9]。Zhuang 等人使用了三种相似性度量机制来决定两个警报是否需要汇总[22]。这些机制是按字母,按位和最大值比较,分别应用于三个不同的属性,警报标识符,IP 地址和端口相似性。这样做的好处是可以根据不同属性字段选择最佳的比较方法,具有更好的灵活性和实用性。

    基于时间信息的关联技术通过利用警报产生的时间隔来判定一组警报是否有关联关系。该方法的假设是在攻击发生后的短时间内可能观察到由相同攻击引起的若干警报,这些警报来自于不同 IDS。时间警报关联的主要优点是通过时间一个维度的属性确定是否相似。但是,确定是事件间隔是固定的,这限制了关联算法的适用性,而且在大规模环境中可能在某一个时刻有大量攻击发生,所以仅仅依靠时间属性规约显然不合理[23,24]。

    2、 基于攻击顺序的关联分析方法

    网络安全事件之间往往不是独立的个体,通常一个攻击场景由若干子攻击事件组成,而且这些子攻击事件之间存在并列或者前置后续等关系,所以可以使用构建逻辑公式对攻击场景进行表达。属于同一个攻击场景的警报可以进行归档合并。常见顺序关系可以细分为几个主要类别:前置后续条件,攻击图,神经网络和其他技术[25]。下面介绍一下有代表性的研究者的研究成果。

    基于前置/后续条件的关联。在这个类别中,相关过程试图通过他们的前置和后续条件来找到警报之间的因果关系。这种方法试图通过链接作为同一攻击的各个步骤来重建一些复杂的攻击场景[10,21]。攻击规则的建立可以通过一阶逻辑或一些攻击建模语言,如 LAMBDA [26]来实现。

    基于马尔科夫模型的关联分析技术,将报警信息使用模型中的离散状态来表示,报警状态之间的转换使用状态转移概率矩阵来表示。使用马尔科夫模型用于安全事件关联分析可以有效预测多步攻击的下一步攻击动作,已有研究展示了较好的关联效果。基于马尔科夫的相关系统具有相同的优点,但是同样的缺点是需要手动设置多个概率参数和阈值,并且需要大而合适的训练数据集,而且通常无法借助已知攻击检测未知的攻击。OB Fredj 等人提出了一种基于图结构的报警关联系统[27],他们的方法基于两个基本模型:吸收马尔可夫链和图。吸收马尔可夫链模型被用来定义在达到一些攻击目标之前根据给定情景从一个攻击行为转移到另一个攻击行为的概率,能够进行自适应和精确的攻击识别。该方法使用吸收马尔可夫链模型来定义每个多步攻击的初始状态和目标以及状态之间转移的概率,较其他传统的基于马尔科夫模型关联分析的最大特点是概率是实时自动推导获得,不需要任何预先知识。性能分析表明,该系统可以将大量警报(超过 442 000条警报)关联到几十个攻击图中。

    3、基于多源知识集成的关联分析方法

    单一的数据源技术指关联的数据来自单一入侵检测源,此工作的优点是快速、简单,不足是他们仅仅在报警一个维度做文章,没有考虑其他维度的重要信息,所以很难发现攻击的真实目的。最新的关联相关研究都是基于多源信息的报警关联,意味着要同时使用多源输入来获得更高的准确率。很显然,使用多个输入源获得较好结果的同时提高了关联分析的复杂度。Zhang J 等人提出了一个新颖的方法,使用网络安全指标(NSIS)来评估网络安全态势[28]。NSIS 包括基础维指数、脆弱维指数、威胁维指数以及综合指数。每一个维度的指数都重点关注一个方面的安全领域,并且给出了如何详细计算指标值的方法。Y Zhang[29]等人介绍了一种简单的数据融合技术,通过收集大量原生安全数据,包括一个标准评估数据集,威胁数据集,漏洞数据集,以及网络基础维数据集。他们分析了不同数据源之间的关系,并且分析了影响网络安全的安全事件。通过相关关联分析技术来分析该些安全事件之间的关系。J chang 等人提出了 MS2IFS[30]系统,使用了来自例如 Snort IDS、Ossec IDS 、Nessus 等产生的警报信息,还考虑了漏洞信息。上述多源信息融合报警关联研究时间相对较早,虽然综合了若干方面的安全态势知识,但是仍然没有统一的安全知识库模型,关联方法缺乏一定的可扩展性。

    四、几种常见的网络安全关联分析技术

    网络安全关联分析通过将来自于具有不同功能、不同设备的各种网络安全检测工具所产生的各类报警信息进行统一格式、综合分析,挖掘确定出真正的网络攻击事件,该技术是网络安全监控的重要部分。网络安全关联分析技术发展至今,主要分为以下几种。

    1、基于聚类分析的网络安全关联分析技术

    基于聚类分析的网络安全关联分析技术,通过分析由同源进行触发的网络安全信息和事件攻击特征,并对这些信息进行相似性观察,再根据适当的假想设定,如相似网络安全信息源于相同或者相似根源等,为报警提供了一个统一的数学模型,从而挖掘出网络安全信息之间的关系,识别攻击场景。此类技术的关键是衡量各种相似性,包括网络安全信息之间的相似性、基于特征的相似性、警报与警报间的相似性、警报与安全策略之间的相似性、警报与被保护主机网络软硬件和网络条件之间的相似性等[19]。

    Alfonso Valdes[20,21]提出了基于特征相似度的概率聚类技术分析方法。此类方法的主要思想是计算并将各个网络安全信息相似度进行比较,来判定新产生告警的聚类归属。包括定义特征相似函数、特征最小相似度、特征相似期望、报警相似度阈值域以及计算报警相似度等。报警信息的共同特征包括攻击的类型、攻击主机、被攻击主机、主机端口、发生时间等。

    1991 年 Cai,Cercone 和 Han[22]首次提出了面向属性归纳 AoI(Attribute—Oriented Induction)方法。此类方法的网络安全关联分析技术,在相似性标准参数(比如最小相似度和报警相似度阀值)取值恰当的前提条件下,可以较好地实现对于网络安全事件信息的有效、正确地聚集与关联这个目的。然而如果相似度仅由单一的配置参数确定,则很难全面反应各告警之间的关系[23]。另外,这项技术在使用过程中得到的效果水平,要严重依赖于使用者所掌握安全知识的程度。

    2、基于攻击场景的模式识别关联分析技术

    基于攻击场景的模式识别关联分析技术的主要思想是,预先定义好攻击场景模式,通过将这些场景模式和网络安全信息序列(这些序列是描述实际发生的网络安全事件的)进行匹配,从而来识别序列中的网络安全信息之间的关系,并分析出网络中发生的实际攻击场景及其目的。

    研究攻击过程发现,一次完整的攻击过程通常可以分为五个步骤,包括:目标主机的信息收集、目标主机漏洞的探测、用户权限的获取、攻击破坏进行、攻击痕迹清除处理。因此,可以对同属于某一个攻击场景的报警信息进行关联分析。

    攻击场景的建模问题是该类技术需要解决的核心和基础问题。比较常用的攻击场景建模手段有以下几种:原子模型方法,自动机方式,建立时序逻辑模型,专家系统以及对上述模型的扩展与演变等。目前,基于模式识别技术大量运用于很多旨在分析网络安全信息间关系的研究领域。

    采用原子模型方法[24]的主要思想是,提前构建好攻击场景和可信度,每当接收到一个攻击事件,就与攻击场景进行关联匹配分析,并根据已有的可信度值对该攻击步骤中该攻击场景的可信度值进行确定。某一攻击事件一旦被归入到一个攻击场景中,就不会再进行改变。最后会进行阀值判断,进一步确定该攻击场景是否已经发生,并根据这些来产生攻击告警。

    Richard Kemmer 和 Giovanni Vigna[25]领导的 STAT 项目组则是自动机建模方式的代表,提出了基于状态转移图的关联分析方法[26,27],基于高层状态转移图对安全事件入侵模式进行表示和分析。

    Benjamin Morin 和 Herve Debar 是时序逻辑模型的代表,他们提出了一种基于 时序模式识别的攻击场景识别技术[28]。时序模式识别技术 (ChronicleRecognition)的主要思想是按照一定的时序逻辑推理方法,将输入的时序信息流与时序模式规则进行匹配,从而能够按照预定义的时序模式对时序流中的网络安全信息进行关联,并识别出符合预定时序模式的输入信息流。

    Christopher Kruegel 和 Thomas Toth[29]的 P2P 攻击场景识别技术是基于模式图识别的。具体实现上该技术采用了树形的攻击场景模式来对每一个可能的攻击场景进行建模,使用树形规则描述这些场景,关联过程中,关联引擎会基于这些规则进行安全事件的关联分析。在规则树中,每一个结点都会对应某一条关联规则。关联引擎会把一段时间内接收到的已统一格式的安全报警从树的根节点到叶子节点依次进行匹配。只要规则没有超时,那么规则匹配地越是接近叶子节点,则这个攻击场景就越可能会成功。

    基于攻击场景的模式识别技术关联分析技术,在明确地分析出各个网络安全信息之间的关系上具有很大优势,但是也并不是完美的,比如无法识别出未知的攻击场景,无法穷举攻击场景、较难识别人类攻击者的复杂性、不确定性和不可预期性攻击。

    3、基于网络安全事件因果关系的关联分析技术

    网络安全事件存在固有的因果关系是基于网络安全事件因果关系的关联分析技术的理论基础,通过这种固有的因果关系的关联,可以将这些描述网络安全事件的网络安全事件较好地关联起来,接下来就可以形成攻击场景图,在攻击场景图中描述了各个网络安全事件之间的关系。具体实现时,会逐个寻找并分析一个攻击事件的前因与另一个攻击事件的后果之间是否存在逻辑联系,如果它们之间存在着联系,就能表明这两个攻击事件之间存在关联[30]。

    基于因果关联技术进行实现的有:Peng Ning 领导的 TIAA 项目[31]、 ONERA的 Frederic Cuppens 领导的 MIRADOR 项目[32]、 UCDavis 的 Steven Templeton 和Karl Levitt 领导的 JIGSAW 项目[33]。

    Ning[34]和 Cuppens[35]则是使用关联规则来表示攻击场景,基于谓词对每种类型攻击进行编码,用于进行攻击前提和结果的描述。

    基于网络安全事件因果关系的关联分析技术,较好地利用了攻击序列之间存在的前后因果关系[23],如何实时高效地在线分析、攻击场景的缺损和攻击场景的高噪声则是需要克服的问题。

    4、基于序列模式的关联分析挖掘方法

    序列模式挖掘[36]是指挖掘频繁场景,也就是挖掘相对的时间窗口内或者是在其它的模式中出现的某些频率较高的模式。经过序列模式的挖掘[37,38],发现了攻击事件之间的理论上的有价值的关联模式:

    1)发现基于特征的攻击方式的场景:来自同一攻击源的攻击事件在一个攻击场景中,如果只是攻击的目标不同但是告警序列相同,通常这样的攻击场景可以表明该攻击者在使用同一攻击方式或者同一种工具对不同的目标进行攻击;

    2)发现场景规则:分析已发生的攻击事件,可以对攻击者的行为进行预测,从而采取适当的措施进行防御;

    3)对合法的系统操作行为进行过滤:异常并不一定意味着入侵,对非入侵行为进行建模,对其所产生的类似攻击事件进行单独的预处理,这样可以减少挖掘过程的负担。

    序列模式挖掘方法存在的缺点是:方法的自动化程度较低;其产生的攻击场景相对难以理解,定位操作会花费很长时间,因而需要寻找到实用性更强的的报警序列模式挖掘算法[39]。另外,基于该算法可以进行拓展,用于进行报警信息的关联分析。

    5、 基于网络安全信息统计因果关系的关联分析技术

    基于网络安全信息统计因果关系的关联分析技术的基本思想是,网络安全事件之间存在的某种统计因果关系能够把不同的网络安全信息关联起来,因此可以通过统计因果分析当前的网络安全信息流,从而识别出网络安全事件间的因果关系。

    Xinzhou Qin 和 Wenke Lee 提出了一种 Granger Causality Test(GCT) [40]的算法来关联网络安全事件。该算法用统计函数来计算两个时序事件的 Granger Causality Index(GCI)值,并将该值与 Fisher 分布的特定值进行对比,从而确定出这两个时序事件之间的统计因果关系。 (靠谱???)

    基于网络安全信息统计因果关系的关联分析技术具有很强的技术创新和突破,它的出现给网络安全关联分析技术的发展开拓了一个新的方向。然而该技术本身发展得并不成熟,其有效性还有待时间的检验。

    6、基于过滤器的关联分析方法

    基于过滤器的关联分析方法[41]的主要思想,是把网络安全事件和主机的脆弱性(即漏洞)、主机的资产进行关联分析。其理论来源是,当发生一个针对某个主机漏洞进行的攻击时,如果该主机恰好具有该漏洞,或者是当发生一个针对某类资产的服务进行的攻击时,如果该服务恰好运行了符合这次攻击的软件版本,那么,我们就可以认为该攻击真实发生了。

    此算法的优点是能过滤掉大量的虚假警报,其缺点是对网络安全事件之间的关系缺乏进一步关联。

    五、网络安全事件关联分析

    网络安全事件关联分析能将不同功能的网络安全检测工具产生的报警信息进行综合统一、去伪存真,从而挖掘出真正的网络攻击事件,是网络安全监控的重要部分。关联分析技术发展至今,归纳起来主要有以下几种:

    1、基于特征相似的概率关联方法[3]

    利用报警信息特征的相似性来解决该问题,其方法描述如下:

    (1) 定义特征相似函数。即对报警信息的共同特征(如攻击主机、被攻击主机、攻击的类型、发生时间等)分别定义相似函数;

    (2) 定义特征相似期望。相似期望表示的是对报警信息特征相似的先验期望,这个相似期望的大小依赖于特定上下文。因为不同的特征对于报警信息是否整体相似的作用是不一样的,所以采用不同特征的相似度的加权值来计算整体相似度。

    (3) 定义特征最小相似度。如果某特征的相似度小于最小相似度,则两条报警信息的该特征不具有相似性。

    (4) 定义报警相似度阈值域。如果两条报警信息的相似度不包含在相似度阔值域,则两条报警不相似。

    (5) 计算报警相似度。基于此方法的网络安全关联分析技术在最小相似度和相似度阈值域取值适当的情况下能够较好地实现对网络安全事件信息的有效聚集和关联。但是由于这些取值是由用户自行调整的,因此该技术在使用中其使用效果严重依赖于使用者所掌握的安全知识。

    2、基于攻击场景构建的关联方法[4][5]

    通过对攻击过程的研究发现,一次完整的攻击过程通常经历五个步骤,即:目标主机信息收集、目标主机漏洞探测、用户权限获取、实施攻击破坏、攻击痕迹清除。因此,同属一个攻击场景的报警信息可以进行关联分析。

    采用原子模型方法[6]:每从 NIDS 接收到一个攻击事件,就与经构建的攻击场景进行关联分析,即计算该攻击事件是否属于已知攻击场景,并根据预先设定的可信度值确定在这个时间点上该攻击场景的可信度值。一旦改攻击事件归为一个攻击场景,就不再改变。最后通过设定阈值来判断,改攻击场景是否发生,并因此产生攻击警报。其缺点是:由于场景的分配基于原子模型,一旦一个攻击场景出错,就会影响到后续报警信息的关联,因此该方法需要在减少错误场景创建上进行改进。

    Benjamin Morin 和 Herve Debar 提出了一种基于时序模式识别的攻击场景识别技术[7]。所谓时序模式识别技术(Chronicle Recognition)是指按照一定的时序逻辑推理方法基于一定的时序模式规则对输入的时序信息流进行匹配,从而将网络安全信息按照预定义的时序模式进行关联并识别出符合时序模式的输入信息流。时序模式识别技术对自动机技术而言的优势在于它能够灵活地描述事件间的时序关系并能够随着时间的推移自动地取消对一些不可能成立的时序模式的识别。Steven Cheung 等提出了一种基于专家系统的攻击场景识别技术[8]。改方法主要是将攻击场景描述为一些模块,每个模块代表了一个攻击场景,攻击场景由一系列攻击子场景和攻击事件组成。当攻击子场景或事件满足一定的约束条件则认为特定的攻击场景已发生并形成一个描述该攻击场景的报警。

    3、 面向属性归纳的概念聚类方法由 Cai, Cercone 和 Han[9]于 1991 年首次提出的面向属性归纳 AOI(Attribute—Oriented Induction),它是数据概化的一种方法。概念聚类[10][11][12]依据对对象的概念描述从而形成聚类簇,一般分两步进行:首先发现合适的簇,其次形成对每个簇的描述。

    概念聚类主要优点是:①通过对聚类簇的可理解性描述,方便了聚类解释;②概念聚类擅长于处理类别属性特征数据,例如 IP 地址、端口号和报警类型等。

    AOI 首先是作为一种数据总结技术被提出,后来建立起与概念聚类之间的联系[12][13],成为概念聚类的工具。

    4、序列模式挖掘方法

    序列模式挖掘[15]是指挖掘在相对时间或在其他模式中出现频率高的模式,即频繁场景。通过序列模式的挖掘[11][12],从理论上发现了攻击事件间的有价值的关联模式:①发现攻击方式的特征场景:如在一个攻击场景中,来自同一攻击源的攻击事件,如果攻击目标不同但是报警序列相同,通常这样的攻击场景表明攻击者使用同一攻击方式或者工具在对不同目标进行攻击;②发现场景规则:通过对已发生的攻击事件的分析,可以对攻击者的行为进行预测,并可采取适当措施防御;③对合法系统操作引起的操作行为进行过滤:异常并不一定意味着入侵,因此,对非入侵行为所产生的攻击事件进行预处理,可以减少分析的负担。

    该方法的缺点是:自动化程度较低;产生的攻击场景难以理解,定位操作很耗时,需要寻找更实用的报警序列模式挖掘算法[16]。该算法可以进行拓展,用于报警信息关联分析。

    5、基于因果关系的分析技术

    基于因果关系的分析技术[17],其基本思想是网络安全事件之间存在固有的因果关系,基于这种固有的因果关系可以将网络安全事件信息很好地关联起来,从而形成可以描述网络安全事件之间关系的攻击场景图。

    实现方法[18][19][20]主要是首先为各种网络安全事件定义因果关联知识,并通过因果关联算法,识别出各事件之间的关联关系,最终形成攻击场景图。

    优点是揭示了安全事件间的联系,缺点是关联后的场景可能和实际场景有一定差异。

    6.、基于过滤器的关联分析方法[21]

    主要方法是把网络安全事件和主机脆弱性、主机资产进行关联分析。因为当发生一个针对某主机的漏洞进行的攻击,如果该主机具有该漏洞,或者当发生一个针对某资产的服务进行的攻击时,该服务正好运行了符合这个攻击的软件版本,那么我们认为该攻击真实发生。

    优点是能过滤大量虚假警报,缺点是对事件间的关系缺乏关联。

    后面的内容不知所云。。。参考文献对不上。。。

    例如,文献[1]从基于模型的角度分析比较了现有安全关联分析技术,并将其分为基于相似度、基于序列和基于实例的方法等。其中基于相似度的关联技术又包括基于属性[12]和基于时间关系[15]两种方法;基于序列的关联技术包括基于因果条件[6]、图算法[30]、代码书[40]、马尔可夫模型[34]、贝叶斯网络[31]、神经网络[35]等方法;而基于实例的方法[13-14]往往需要基于先验知识。

    文献[2]根据对知识库的依赖程度,从基于统计方法[44]、基于知识[11]以及基于相似度[10]3种关联方法的角度对警报关联技术进行了分析。其中基于统计方法的关联技术不需要关于攻击场景的先验知识,可以用于检测新出现的攻击方式;基于知识的关联技术主要分为基于攻击场景的知识、基于因果关系的知识和混合知识等;基于相似度的关联技术采用的方法主要是将安全报警与现有的数据进行对比,结合过去的方法对当前遇到的问题进行处理。

    文献[3]则从关联分析过程的视角,对规一化处理、数据聚集、关联分析、误差分析、攻击策略分析、优先级确定等6个具体实现步骤的实现方法进行了分析总结,并对各自的优缺点进行了比较。

    目前,网络安全方向的主要研究方向之一便是网络安全文件关联分析,根据Anton Chuvakin 所说,他将安全文件关联方法分为两种,一种是以有关规则的关联作为基础,一种以统计的关联作为基础[5]。规则关联的基础要求某些攻击的先验知识,但是有关统计性的关联基础不要求攻打先验知识(至少不是主要的检测手段),而是参考正常逻辑和运用数学算法来进行关联。一般情况下是将两种关联算法混合使用以互相补充,提高关联准确度。

    利用告警属性的类似程度来进行分析是现有的告警聚合分析的主要方法。

    SRI 的 Andersson 等和 Valdes&Skinner 对告警属性的相似度作为基础的思想性关联分析,进而对系统提出了,网络安全文件关联分析系统是由极小匹配规则和人为定义的安全事件间的概率相似度来构建的[6]。Cuppens等的研究中包含的alert-clustering有关的部分就运用了和属性十分相似的聚合式方法,以此来实现该目标。此方式的最大特色就是在进行相似告警聚类时效果很好,但是这类方法也有一个很大的缺点,就是对相关告警之间的因果联系不能有效的识别[5]。为了能够对属性相似和因果关联这两个方法结合使用,Debar和Wespi就提出了一种将这两个方法同时用于入侵检测系统的关联分析中的方法,从而在一定程度上提高了识别相关告警之间因果联系的能力[7]。

    聚合过程虽然可以有效的减少告警数量,但是不能去除误报和无效告警,然而所有的误报和无效告警都会对后续的关联分析效果造成不便。因此,Morin等提出了一种形式化模型,以主机的系统类型、可能存在的漏洞等信息作为主要信息进行告警关联,在理想状况下此方法可以对误报进行准确的识别。另外有些研究者还对某些漏洞信息进行了深入性的探究。

    有关多步攻击的关联分析方法,学者们通过对攻击之间的因果联系进行分析来完成多步攻击的关联分析。多步攻击的关联方法最早由Templeton等提出的,通过比较先前发生攻击产生的后果与后发生攻击的前因进行关联分析是该方法的基本思想,这种方法可以高效地识别出两个告警之间的因果关系,从而使得关联分析可以利用未知的攻击场景[8]。研究者们还提出了一种以告警的前提条件为核心的告警关联算法。随后,美国北卡大学的Peng Ning等提出了一种方法,他们依照告警提前条件的思维对这个方式进行了深入的分析[9]。Cheung等人对于多步攻击建模的CAML语言给予了提出。Cuppens等也通过这种方法对其系统进行了大量的改进。因果关联关系定义过于困难和仅能关联已有因果联系的告警这两个缺陷导致这种方法并不完美,进行关联分析时仅用该方法并不合理[10]。

    在国内,研究者们才刚刚开始对网络安全文件关联进行研究,很少能查到相关的文献与资料。其中,由陕西西交大的李辉等人提出了一种方法,其主要思想是利用人为发现和机器配合使用进行告警的关联分析[11],并进行了实验,但是理想化的研究结果并没能有效的在实际中进行应用。武汉华中科大的李家春对分级告警的关联分析技术在分布式的入侵检测系统(IDS)中的应用进行了研究[12]。通过对国内相关资料的调查研究,我们得知大部分的论文都是凭借国外的技术,目前国内有关的学术界还没有在网络事件的关联分析技术上进行深入的探究以及阐释。

    综合上面所说的,最近几年以来,国内外在安全网络事件的关联分析这一领域的研究进度差距较大,国外已经在这一领域取得了明显的成果,由于网络安全涉及到国家的利益,所以大多数大型的相关科研项目都得到其国家的大力支持。而在国内,由于对该领域的研究才刚刚起步,还有很多问题需要深入研究解决,所以,这一领域在近几年将会作为一个主要研究点出现。

    目前,网络安全事件关联主要有漏洞扫描、聚合分析,因果关联分析、基于统计的关联和安全事件严重度分析等。

    等提出了一种形式化模型考虑信息源包括被检测系统的描述、漏洞信息、检测工具的有关信息以及被观测事件的信息来对告警进行关联,这种方法在理想状况下能有效识别误告警。还有一些研究者提出利用漏洞分析信息来进行告警确认的方法一。然而关于该方法的研究尚未深入,难以整合到完整的关联分析过程中,并且这种方法依赖于对受保护网络的早期漏洞分析结果,无法适应动态的告警确认。聚合分析目前主要采用基于告警属性相似度的计算方法。的等【和一在项目中用手工定义的入侵事件间概率相似度和极小匹配规则来构建安全事件关联分析系统。等【」和在文献【一中同样用到了相似度计算的方法。等在法国国防部的科研项目中的告警聚合部分也使用了类似的方法。这类方法的优点是在对相似告警进行聚类时非常有效,能够有效地合并相似度很大的告警,缺点是不能充分发掘出相关告警之间的因果关系,并不能把属于不同种类却之间存在着某种联系的两种告警有效地关联起来。和』提出的用聚类和关联两种方法用于报警的关联分析,综合考虑了相似性和因果两种关系,部分解决了该问题。聚合过程能有效的减少告警数据量,但是不能去除误告警和无用告警,而这些多余告警会对后续的关联分析过程产生很大的影响【。

    为了挖掘告警间的因果关系,研究者们提出了通过分析攻击间因果关系的方法来进行多步关联分析。该方法最早由介等根据〔一提出。随后,美国北卡罗莱纳州大学的即等【一根据这一思想对该方法做了深入和系统的研究,全面提出了基于先决条件的网络安全事件关联,将告警表示为用三元组,提出了基于三元组的知识表示的关联算法和攻击场景构建技术。等提出了语言用于多步攻击建模。等也利用这一方法对系统做出了改进〔。而这种方法的缺陷就在于因果关系的定义太过复杂且只能关联存在因果关系、的告警,因此不适合在关联分析过程中单独使用。另有一些研究利用己知的攻击场景和从现有的数据集中挖掘出来的知识进行安全事件关联分析。的等提出了使用专家知识库进行关联分析的方法,该方法已经用于的事件关联分析系统中。等〔对该方法中的规则生成过程进行了优化。和【川提出了基于资料挖掘的方法,并通过实验比较指出数据挖掘方法优于原始匹配方法和启发式关联方法。

    在统计方面,佐治亚理工学院的、等利用时间序列之间的统计关系对安全事件做关联分析「中科院计算所的肖政等利用分类器对告警进行聚类【。

    在安全事件严重度分析的研究方面,公司的等在项目的研究中提出了基于一的事件优先级计算方法。

    国内,安交通大学的李辉博士等提出了一个基于人机交互式知识发现的入侵事件关联方法毛〕,华中科技大学的李家春博士对分布式入侵检测系统中分级告警关联技术进行了研究【一〕,提出了一种基于改进增量贝叶斯分类器的概率关联方法。根据文献情况来看,国内大部分的工作者都侧重于介绍国外的方法和技术,并没有关于新的关联方法的探讨,网络安全事件关联分析方法上还未有足够深入的研究。

    参考文献见《网络安全事件关联引擎的研究与设计》附录部分

    探针每天要从网络上收集到成千上万的事件,如果对这些海量的事件信息不加任何处理就直接报告或生成报警,这种做法是没有意义的。而在报告之前通过关联分析可以将这些成千上万的事件进行浓缩并确认成数十个甚至数个事件,以一种智能的方式将这些复杂而抽象的海量事件转化成我们可以理解的警告。

    文献

    [19] 罗宁,喻莉.入侵检测技术研究发展[J].计算机与数字工程,2005,33(6):52-57.

    [20] Alfonso V, Keith S. Probabilistic Alert Correlation[C]. Proc. of the 4th International Symposium on Recent Advances in Intrusion Detection. Springer-Verlag, 2001.

    [21] Valdes A., Simmer K. Probabilistic Alert Correlation. In: 4th Workshop on Recent Advances in Intrusion Detection(RAID), LNCS, Springer Verlag, 2001:54-68.

    [22] Cai Y,Cercone N,Han J.Attribute-Oriented induction in relational database. In:G.Piatetsky-Shapiro and W.J.Frawley.eds.Knowledge Discovery in Database, Cambridge,MA:AAAI/MIT Press,1991.213~328

    [23] 杨智君,田地,马骏骁等.入侵检测技术研究综述[J].计算机工程与设计,2006,

    27(12):2119-2123,2139.

    [24] Chenfeng Vincent Zhou, Christopher Leckie, Shanika Karunasekera. A survey of

    coordinated attacks and collaborative intrusion detection. Computers &

    Security,29(2010):124-140.

    [25] Fredrik Valeur, Giovanni Vigna, Christopher Krügel, Richard A. Kemmerer: A

    Comprehensive Approach to Intrusion Detection Alert Correlation. IEEE Trans.

    Dependable Sec. Comput. 1(3): 146-169 (2004).

    [26] Porras P AA.Penetration state transition arialysis l^rule basedintrusion detection

    approach[c].Proceedings of the Eighth AnnnalComputer Security Applications

    Conference,1992.220-229.

    [27] An extensible stateful intrusion detection system[EB/OL]. http://www.ca.

    ucsb.edu/kenun/NetSTAT/dor/indeLhtml. 2005.

    [28] Benjamin M, Herve D. Correlation of Intrusion Symptoms: An Application of

    Chronicles[C]. Proc. of the 6th International Symposium on Recent Advances in

    Intrusion Detection, Pittsburgh, PA. USA: Springer-Verleg, 2003.

    [29] Christopher K, Thomas T, Clemens K. Decentralized Event Correlation for

    Intrusion Detection[D]. Technical University of Vienna Information Systems

    Institute, 2002.

    [30] 张翔,胡昌振,尹伟等.基于事件关联的网络威胁分析技术研究[J].计算机工程与

    应用,2007,43(4):143-145.

    [31] Peng N. Techniques and Tools for Analyzing Intrusion Alerts[J]. ACM Trans. on

    Inf. Syst. Secur., 2004, 7(2): 274-318.

    [32] Frederic C, Alexandre M. Alert Correlation in a Cooperative Intrusion Detection

    Framework[C]. Proc. of IEEE Symposium on Security and Privacy, Oakland,

    California, USA, 2002.

    [33] Steven T, Karl L. A Requires/provides Model for Computer Attacks[C]. Proc. of

    Workshop on New Security Paradigms. Ballycotton, County Cork, Ireland, 2000.

    [34] Ning P.Cui Y.An intrusion alert correlator based on prerequisites of intrusions:

    [Technical Report TR-2002-01].North Carolina State University.Department of

    Computer Science,2002.

    [35] Cuppens F,Miege A.Alart correlation in a cooperative intrusiondetection

    framework.In:Proc.of the 2002 IEEE Symposium onSecurity and Privacy,2002.

    [36] Mannila H., Toivonen H., verkamo A. Discovering frequent episodes in sequences.

    In: proc. of the 1st intl. conf. on knowledge discovery in databases and data

    mining, Montreal, Canada, Aug. 1995.

    [37] Julisch K. Mining A1arm Clusters to Improve Alarm Handling ef-ficiency. In:

    17th Annual Computer Security Applications Conf.(ACSAC), Dec. 2001.12~21.

    [38] Julisch K., Dacier M. Mining intrusion detection alarms for actionable knowledge.

    [39] Wespi A., Dacier M. An intrusion-detection system based on the Teiresias

    pattern-discovery algorithm. EICAR In: Proc. 1999.

    [40] Qin Xinzhou , Lee Wenke. Statistical Causality Analysis of INFOSEC Alert

    Data[C]. Proc. of the 6th International Symposium on Recent Advances in

    Intrusion Detection, Pittsburgh, PA, 2003.

    展开全文
  • 根据地下水流系统的灰色模糊性,应用灰色关联分析法进行水源识别,通过研究分辨系数取0.5在关联计算中的不足,认为分辨率系数不应为单一取值,改进了分辨系数的取值方法,有效提高了关联度分辨力,使关联分析在突水水源...
  • 灰色关联分析在数学建模以及数据分析中也是一种较为常用的方法,可用于进行系统分析或进行综合评价,本文主要介绍了灰色关联分析的原理和步骤,以及在实际案例当中如何应用求解。

    Q1:什么是系统分析?

            比方说在社会系统、经济系统、农业系统、教育系统中,每个系统都含有许多种因素,而这多种因素共同作用的结果决定了该系统的发展态势,我们常常希望知道在这众多因素中,哪些因素对系统发展影响大,哪些因素对系统发展影响小;哪些是主要因素,哪些是次要因素;哪些对系统发展起推动作用,哪些对系统发展起阻碍作用……这就是所谓的系统分析。举个栗子,粮食生产系统中,影响粮食产量的因素有播种面积、土壤、浇水施肥、气候、耕作技术等等,我们希望实现少投入多产出,取得良好的经济效益、社会效益和生态效益,那么就必须进行系统分析。

            数理统计中的回归分析、方差分析、主成分分析等都是用来进行系统分析的方法。这些方法都有下列不足之处(引用自某文章):
    (1)要有大量数据支持,数据量少就难以找出统计规律;
    (2)样本要服从某个典型的概率分布,要求各因素数据与系统特征数据之间呈线性关系且各因素之间彼此无关,而这些要求往往难以满足;
    (3)可能出现量化结果与定性分析结果不符的现象,导致系统的关系和规律遭到歪曲和颠倒。

    Q2:什么是灰色关联分析?

            灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。
            灰色关联分析方法弥补了采用数理统计方法作系统分析所导致的缺憾。它对样本量的多少和样本有无规律都同样适用,而且计算量小,十分方便,更不会出现量化结果与定性分析结果不符的情况。(注:系统分析中灰色关联分析方法目前不是主流,主流还是数理统计中的方法)



    应用一:进行系统分析

    下表为某地区国内生产总值的统计数据(以百万元计),问该地区从2000年到2005年之间哪一种产业对GDP总量影响最大。

    年份国内生产总值第一产业第二产业第三产业
    20001988386839763
    20012061408846808
    20022335422960953
    2003275048212581010
    2004335651115771268
    2005380656118931352

    一、画统计图

    (画图后配上简单的分析)
            由图表可知:四个变量均呈上升的趋势;第二产业的增幅较为明显;第二产业和第三产业的差距在后三年相差更大。

    二、确定分析数列
    (1)母序列(又称参考数列、母指标):能反映系统行为特征的数据序列。——类似于因变量y,此处即为X0;
    (2)子序列(又称比较数列、子指标):影响系统行为的因素组成的数据序列。——类似于自变量x,此处记为(x1,x2,x3,…,xm)。
            故在本例中:国内生产总值就是母序列X0,第一、第二、第三产业就是子序列X1、X2、X3.

    三、对变量进行预处理(两个目的:去量纲(标准化);缩小变量范围简化计算)
            对母序列和子序列中的每个指标进行预处理:先求出每个指标的均值,再把该指标的每个元素都除以其均值。

    四、计算子序列中各个指标与母序列的关联系数
    母序列:  X0 = (x0_(1),x0_(2),……,x0_(n))'
    子序列:  X1 = (x1_(1),x1_(2),……,x1_(n))'
                    X2 = (x2_(1),x2_(2),……,x2_(n))'
                       …………
                    Xm = (xm_(1),xm_(2),……,xm_(n))'

    在这里我们令
    母序列:  X0 = (x0_(1),x0_(2),x0_(3),x0_(4),x0_(5),x0_(6))'
    子序列:  X1 = (x1_(1),x1_(2),x1_(3),x1_(4),x1_(5),x1_(6))'
                    X2 = (x2_(1),x2_(2),x2_(3),x2_(4),x2_(5),x2_(6))'
                    X3 = (x3_(1),x3_(2),x3_(3),x3_(4),x3_(5),x3_(6))'

    记 a = min|x0_(k) - xi_(k)|,b = max|x0_(k) - xi_(k)|. 称a、b分别为两级最小差和两级最大差。
    在本例中有:

    | X0 - X1 || X0 - X2 || X0 - X3 |
    0.10410.04920.0119
    0.12490.07040.0289
    0.05440.07850.0694
    0.03150.01120.0278
    0.12880.04770.0006
    0.18620.13920.0832

    故两级最小差a = 0.0006,两级最大差b = 0.1862.
    我们给出如下定义:

    ρ为分辨系数一般取0.5,故在求出a、b后,分子即为一个常数,而分母中的|x0_(k) - xi_(k)|在上表中已经求出,我们将其一一代入这个式子即可得到:

    0.47510.65860.8922
    0.42990.57330.7680
    0.63560.54620.5766
    0.75200.89850.7753
    0.42240.66571.0000
    0.33560.40350.5317

     比如第一个数据 0.4751 = (0.0006 + 0.5×0.1862) / (0.1041 + 0.5×0.1862).

    五、计算灰色关联度
    定义 γ(X0, Xi) =  为X0和Xi的灰色关联度
    因此我们有 γ(X0, X1) = 0.5084,γ(X0, X2) = 0.6243,γ(X0, X3) = 0.7573.

    六、得出结论
    通过比较三个子序列和母序列的关联度我们可以得出结论:
    该地区在2000年至2005年间的国内生产总值受到第三产业的影响最大。(其灰色关联度最大)

    (注:灰色关联分析研究的人比较少,主要是国内有部分人研究,在论文中谨慎使用)


     思考:
    (1)什么时候用标准化回归,什么时候用灰色关联分析?
            当样本个数n较大时,一般使用标准化回归;当样本个数n较小时,可考虑使用灰色关联分析。
    (2)如果母序列中有多个指标时,应该怎么分析?(例如Y1和Y2是母序列,X1,X2,…,Xm是子序列)
            我们可首先计算Y1和X1,X2,…,Xm的灰色关联度进行分析,再计算Y2和X1,X2,…,Xm的灰色关联度进行分析。



    应用二:用于综合评价

            在之前我们已经介绍过进行综合评价有两个模型:层次分析法(AHP)和优劣解距离法(TOPSIS)。它们的区别在于层次分析法用于没有数据,TOPSIS用于有数据时,现在我们将要讲的灰色关联分析也是用于有数据时的评价方法。另外在用TOPSIS时如果需要确定指标权值可以用熵权法解决,也可以用层次分析法。在有了之前的基础上,现简要介绍一下灰色关联分析进行评价的过程。

    主要步骤:
    (1)对指标数据进行正向化(可参考TOPSIS中的正向化方法);
    (2)对正向化后的矩阵进行数据预处理(可参考上面系统分析中和之前讲过的预处理方法),得到矩阵Z_{n*m}
    (3)将预处理后的矩阵每一行取出最大值构成母序列(这里的母序列其实是虚构的,因为我们是对指标进行评价,不像系统分析中母序列其实是因变量)
    (4)计算各个指标与母序列的灰色关联度:γ1、γ2、……、γm.
    (5)计算各个指标的权重:w1 = γ1 / (γ1+γ2+…+γm)、……、wm = γm / (γ1+γ2+…+γm)
    (6)第k个评价对象的得分:S_{k} = \sum_{j=1}^{m}Z_{kj}\cdot \gamma _{j},(k = 1,2,…,n)
    (7)对得分进行归一化:S_{k}' = S_{k}/(S_{1}+S_{2}+…+S_{n}) ;
    (8)对结果可视化。

    展开全文
  • 针对变频调速系统的...仿真实例研究结果表明,灰关联故障诊断方法计算简单、诊断结果与定性分析结论一致,便于形成知识库中的规则,对工程实践具有理论指导作用,且对样本数量及其分布规律没有特殊要求,有较大实用价值。
  • 为研究宁夏煤基产业的发展及其对经济发展发挥的作用,绘制了宁夏煤流图,分析宁夏煤炭的生产消费结构的变化情况,基于2012年和2017年宁夏投入产出表,利用投入产出关联分析模型,探讨宁夏煤炭产业的关联效应及煤基产业的...
  • R语言做关联分析

    千次阅读 2021-06-25 14:32:55
    理解关联分析的相关概念:关联分析、支持度、置信度、强规则、项集、频繁项集等。 掌握关联分析的基本方法:数据是事务的或关系的,如何由大量的数据中发现关联规则 ?什么样的关联规则最有趣? 案例资料 (一)...
  • 【生信】全基因组关联分析(GWAS)原理

    千次阅读 多人点赞 2022-03-12 15:39:05
    【生信】全基因组关联分析(GWAS) 1.前提知识介绍 1.1 最小二乘法 1.2 GWAS的数学原理 1.3 Hardy-Weinberg定律&卡方检验 1.4 连锁不平衡 1.5 曼哈顿图 1.6 箱式图Box-plot 1.7 QQ plot 2、GWAS的定义 2.1 几个需要...
  • 灰色关联分析及实践

    2021-12-03 15:14:43
    灰色关联分析及实践1 背景2 灰色关联分析2.1 定义2.2 名称起源2.3 思想2.4 作用2.5 算法步骤2.6 评价标准2.7 应用应用1: 旅游业发展程度的影响因子应用2:哪一种产业对GDP总量影响最大?应用3:不同产业之间的协同度...
  • 针对当前网络安全信息分析过程中出现的安全描述片面性、信息可视化程度低和误报警、漏...给出关联分析的定义和模型,对关联分析的分类和实施方法进行了阐述,并结合相应事例说明了关联分析在网络安全信息分析中的作用
  • 因此,灰色关联分析是指对一个系统发展变化态势的定量描述和比较的方法,其基本思想是通过确定参考数据列和若干个比较数据列的几何形状相似程度来判断其联系是否紧密,它反映了曲线间的关联程度。 2、输入输出描述 ...
  • 基因组关联分析中的交互作用研究

    千次阅读 2021-10-08 21:35:02
    基因组关联分析中的交互作用研究 语音编辑讨论上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 《基因组关联分析中的交互作用研究》是依托中国科学技术大学,由杨亚宁担任...
  • 结果表明:因水泥胶结作用而导致腐殖质松结态存量较小、稳结态存量增大,由灰色关联分析结果表明,稳结态富里酸较胡敏酸影响效果较大,水泥土颗粒小于0.1mm的粒径越小,对水泥土抗压强度影响效果愈强,富里酸和小于0.1mm...
  • 灰色关联分析概述 当样本个数n较大时使用标准化回归;当样本个数n较少时,才使用灰色关联分析 系统分析,综合评价 应用一:进行系统分析 步骤 第一步画统计图 用Excel画统计图 第二步确定分析序列 第三步对...
  • 【数据挖掘】关联规则之灰色关联分析

    万次阅读 多人点赞 2019-01-24 17:52:39
    灰色关联分析法 利用灰色关联分析的九个步骤: 1.根据分析目的确定分析指标体系,收集分析数据。  设n个数据序列形成如下矩阵:   其中m为指标的个数, 2.确定参考数据列 参考数据列应该是一个理想的比较...
  • 下面介绍几种安全管理平台中,目前常用的事件关联分析方法: 基于规则的关联分析 基于规则的关联分析是指按平台预先内置关联规则,或者用户自定义关联规则对安全事件进行有效的关联分析。平台接收到安全事件以后,...
  • 想必大家都听说过美国沃尔玛连锁超市“啤酒与尿不湿”的故事。...其实,这种通过研究已经产生的数据,将不同标的关联起来并挖掘二者之间联系的分析方法,就叫做关联分析法,也就是商场和电商领域的“购物篮分析”。 .
  • 尽管海南岛东南海岸带植被景观各类型之间呈现出正关联,且它们之间的关联很松散,具有很高的独立性,但是人类活动的干扰使得植被的发育与发展与其呈现极其显著的空间相互排斥作用。由于植被斑块破碎,相互交错,空间异质...
  • 关联分析是灰色系统分析、评级和决策的基础,其基本思想是根据数据指标呈现出的序列曲线的几何形状相似程度来判断两个指标之间的联系是否紧密,通过关联度表征两个事物间的关联程度。 层次分析法。
  • MATLAB基本语法之灰色关联分析

    千次阅读 2021-08-27 12:29:24
    灰色关联分析用于系统分析实例 介绍:灰色关联分析是一种根据自变量图形与因变量图形的相似度进行判断相关性的一种方法 % 导入数据 一个6*4的矩阵 load gdp.mat %不会导入数据的同学可以看看第二讲...
  • 采用灰关联分析方法对煤矿瓦斯爆炸事故发生的原因进行分析,首先确定煤矿瓦斯爆炸事故发生的原因,然后分别计算各类事故致因因素对事故发生的灰色关联度,并对灰关联度计算结果进行排序,从而确定各影响因素关联度的大小...
  • 常用分析方法——矩阵关联分析

    千次阅读 2021-01-06 23:31:33
    一、矩阵关联分析(象限分析法) 定义 将事物的两个重要指标作为分析的依据,进行分类关联分析,找出解决问题的一种分析方法,也称为矩阵关联分析法,简称矩阵分析(或象限分析)。 作用 (1)将有相同特征的事件...
  • 数学建模系列--灰色关联分析

    千次阅读 2021-07-02 14:35:34
    而灰色关联分析对样本量要求小,样本量小的时候可以采用,但由于其是国人发明、且推广程度小,so 美赛不可以用,美赛只可以用数理统计分析。 画图简单分析 确定分析数列 ​2个序列正如其名,母是直观体现,...
  • 正交试验灰关联度分析法,文畅平,,提出了正交试验数据计算分析的新的方法-灰关联分析法(Grey Relation Analysis,简称GRA)。应用GRA对不考虑交互作用的正交试验结果进行�
  • 因此,灰色关联分析方法,是根据因素之间发展趋势的相似或相异程度,亦即“灰色关联度”,作为衡量因素间关联程度的一种方法。 适用题型:(1)系统分析; (2) 综合评价; 一、系统分析 在一般的抽象系统中,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 302,901
精华内容 121,160
关键字:

关联分析的作用