When Intrusion Detection Meets Blockchain Technology A Review

警告
本文最后更新于 2019-10-03,文中内容可能已过时。

Meng W, Tischhauser E, Wang Q, et al. When Intrusion Detection Meets Blockchain Technology: A Review[J]. IEEE Access, 2018: 10179-10188.

Abstract:以识别网络威胁和可能的事故为目的,入侵检测系统(IDS)已被广泛用于各种计算机网络。为了增强单个IDS的检测能力,协作入侵检测系统被提出(collaborative IDS, CIDS),它允许IDS节点间彼此交换数据。然而,当前检测架构中数据和信任管理仍然是两个主要的问题,能够降低检测系统的有效性。区块链可以保护数据存储的完整性和确保过程透明,因此有潜力被用于入侵检测领域。受此启发,本文就IDS和区块链的交叉做了一个综述,讨论区块链在入侵检测中的适用性,并明确该方向可能的挑战。


论文内容主要分为如下几部分:

  1. 介绍入侵检测和协作入侵检测(CID)的概念,声明CID当前面临的挑战:数据共享和信任管理。
  2. 介绍了区块链的概念,原理和主要应用。
  3. 叙述了在CID中,区块链如何用于解决数据共享和信任管理问题。

引言部分也是对IDS和CIDS的说明,因此和后文进行合并,区块链部分的介绍已较为熟悉,浏览后未发现值得记录的知识,因此跳过。以下分为[入侵检测](##Intrusion Detection),[协作入侵检测](##Collaborative Intrusion Detection),[协作入侵检测的问题](##Challenges in Collaborative Intrusion Detection),[基于区块链的解决方案](##Blockchain-Based Solutions),[未来的研究方向](##Challenges and Future Trends)四部分对论文总结说明。并记录阅读时产生的想法。

Intrusion Detection

入侵检测描述了为了发现可能发生的事故的迹象监控网络或系统事件的过程。IDS是实现入侵检测过程的一种应用,主要提供两个功能:

  1. 信息记录:一个IDS可以监控目标对象并在本地记录信息,收集的数据可以发送到其它设施(如中心化的事件管理服务器)进行分析。
  2. 警报生成:一个IDS的重要任务是生成警报将识别的重要异常通知安全管理员。误报率是衡量一个IDS是否有效的重要指标。

基于IDS节点部署的位置,可以分为 host-based IDS (HIDS) and network-based IDS (NIDS)两种类型。前者主要监控本地系统的特征和主机中的系统事件,以防恶意活动。后者监测网络流量,并分析网络协议和可疑事件的流量负载。这种分类还可以更具体,比如wireless-based IDS,通过监控无线网络的packages和协议识别恶意活动。实际应用中,经常结合HIDS和NIDS使用,因为它们可以相互补充,从而提供更好的保护。如下图

基于检测方法也可将IDS分为两类:signature-based IDS(也称作 misuse-based IDS) 和 anomaly-based IDS。基于签名的IDS通过比较存储的签名和观察到的系统或网络事件,防止可能发生的事故,签名(或规则)是一种描述已知攻击的模式。基于签名的检测对已知威胁是有效的,但对于未知威胁和已知威胁的变种是无效的,例如,定义一个搜索malware.exe文件的签名,攻击者将攻击程序重命名为malware1.exe就可以轻松绕过检测。

基于匿名的检测则通过识别预定义的正常配置文件和观察到的事件间的显著差别来寻找可疑活动。正常配置文件通常通过在一段时间内监视典型活动的特征来创建,因此可以代表与用户、网络连接和应用相关的正常行为。如果发现异常情况,将会生成警报。大量文献研究了如何使用机器学习分类器来构建正常配置文件,另外,实际使用中,配置文件可以是静态或动态的,静态文件不会更新,但动态文件会根据安全策略周期性地更新。高误报率是anomaly-based IDS的最大限制。

除了以上两种检测方法外,还有一种方法叫做specification-based detection,它识别预定义的benign profile和观察到的事件间的偏差,benign profile和normal profile的不同在于前者定义了预先被接受的事件,比如,一个benign可以指定某种协议如何使用或不能如何使用。

基于签名的IDS事先定义各自攻击模型,检测通过和这些攻击比较实现,现在所做的实验中的恶意行为判决一定意义也属于这种情况,事先定义了单位时间的请求数量,通过对比做出决策,并添加了判决,根据预定义规则进行惩罚。

基于匿名的IDS中normal profile可以用智能合约代替,不仅可以保证无篡改,还可以根据安全策略动态更新。本地节点做完机器学习分类后,生成配置文件,作为智能合约定义到区块链中,或者更新已有的智能合约。

Collaborative Intrusion Detection

协作入侵检测在实际应用中包括CIDN和CIDS,主要以增强单个IDS的性能为目标,因为单个IDS很容易被高级或复杂的攻击绕过,比如DoS攻击。根本原因是单个IDS没有关于它保护的环境的信息,而协作入侵检测框架则允许各IDS节点通过相互交换数据和信息来理解上下文。例如,通过收集不同检测传感器的流量特征,中央服务器对网络异常比单个IDS更敏感。传统的协作可分为如下类型:

  • Hierarchical collaboration systems like EMERALD and DIFS;
  • Subscribe collaboration systems like COSSACK and DOMINO;
  • Peer-to-peer(P2P) query-based collaboration systems like Netbait and PIER。

一个典型的协作入侵检测网络架构如下图所示,CIDN中的各节点可以交换彼此需要的信息。一个节点通常由以下几个部分组成:IDS模型,协作组件,P2P通信组件。具体而言,IDS模型执行入侵检测,监控网络流量和记录事件;协作组件负责帮助节点和其它节点交换需要的数据,以及执行某些操作如信任计算;P2P通信组件用于帮助建立和其它IDS节点的物理连接。

CIDS和区块链看起来具有天然的可结合性,P2P通信由区块链本身完成,IDS模型由节点本身完成,信息和数据的交换(协作组件)通过发起交易或智能合约完成。

由于区块链本身通过共识实现了信任,一般不需要信任计算,若仍然需要,可以利用区块链中的激励机制实现,比如将信任度定义为通过智能合约定义的代币。

Challenges in Collaborative Intrusion Detection

异常检测已经研究了很久,但实际应用中仍有很多问题未解决,这些问题能显著减弱检测性能。

  1. 处理能力跟不上流量大小:在流量较大的网络中,过量的数据包能显著降低检测系统性能,如果流量超过了IDS的最大处理能力,大量的数据包将被丢弃。
  2. 签名覆盖范围有限:基于签名的检测的检测能力严重依赖于可用签名,换句话说,检测性能受限于签名的数量和质量,然而,签名通常难以覆盖所有已知攻击和漏洞。
  3. 不准确的配置文件:基于匿名的检测很难建立准确的配置文件,具体而言,因为基于匿名的IDS通常利用机器学习建立配置文件,而训练数据,尤其是有标签的攻击数据,实际上限制很大,这回导致机器学习分类器的不准确。
  4. 大量错误警报:IDS生成准确的警报并通知安全管理员非常重要,然而,由于不成熟的签名和不准确的配置文件,错误的警报是一个大挑战,它们会显著降低检测性能,增加安全分析的压力。例如,一个大公司一天会产生超过10000个警报。

尽管入侵检测已经研究了40年,数据共享和信任管理仍然是协作环境的两个主要挑战。

  1. 数据共享:数据共享是一个主要的问题,因为让参与者信任彼此很难。PKI体系可以建立一定的信任,但并不总是有用。更进一步,由于对隐私的担心,参与者可能不愿意共享数据,而没有足够的数据,就不可能优化检测算法从而构建一个稳健的识别模型。例如,异常检测通常运用机器学习来构建正常配置文件,其中,分类器需要大量训练条目,但由于隐私问题,一些组织可能不想共享它们的数据,使得检测性能很难优化。
  2. 信任管理:众所周知,CIDN/CIDS对内部攻击是脆弱的,因为攻击者有权限访问网络。通常,计算信任被用于量化不同节点的信任级别,实际应用中,一般使用中央服务器收集节点流量和行为数据来计算每个节点的信任值。然而,当组织变得庞大,参与者变多,信任管理就会出现问题,因为很难找到可信第三方,例如,中央服务器可能被破坏。

Blockchain-Based Solutions

区块链取消了可信第三方的存在,拥有不可篡改的特性,使得它能用于解决入侵检测的以上问题。

  1. 数据共享:数据共享问题主要由两方面引起:相互信任数据隐私。相互信任意味着共享数据时,协作实体必须相信彼此不会泄露数据。数据隐私则是指共享的数据可能包含与参与者相关的一些信息,比如IP地址等,可能引起隐私泄露。

    区块链是一种可能的解决方案,具体而言。数据共享可以被视为一系列的交易,参与的各方将数据共享的规则定义在区块链中,保持公开和不可变,这种情况下,其它的参与者可以访问区块链,阅读协议并确认数据所有权。协议的永久可见确保了一方不可以单方面否定它。

    对于数据隐私,一个解决方案是共享转换后的数据而非原始数据。例如,实体A想用实体B的数据验证其设计的分类器的性能,可以将该分类器上传到区块链,实体B检索这一分类器在本地使用自己的数据运行,并将最后的结果返回给实体A。这样,实体B就可以维持原始数据的隐私。总的来说,对于数据共享问题,区块链可以作为数据所有者和其他方之间协议的永久性账本,帮助建立协作各方之间的相互信任,并保护数据隐私。

  2. 信任管理:通常,协作网络架构可以分为中心化的、层次的和分布式的。分布式架构以及进行了广泛的研究,而另外两种架构被认为受到可扩展性和单点故障的影响。对CIDN而言,在不同IDS节点间交换警报是极为重要的,这可以用来帮助寻找异常发生在哪儿。一些协作检测方法(如基于挑战的CIDN)利用警报评估其它节点的可信度,区块链可用于处理这一问题,例如,验证收到的警报信息是否未篡改。

另外,警报交换也可以用来计算网络内节点的可信度。例如,Fung等设计了一个基于挑战的CIDN,其中节点可信度可以通过基于接收到的警报信息的满意度来计算。他们所提出的架构对一些内部攻击如newcomer attack和Betrayal attack是鲁棒的,但对协作攻击(一组恶意节点为了破坏网络协作提供错误的警报)没有用。因此,如何以一种稳健的方式执行信任计算仍是一个挑战。

区块链技术提供了一种可能的方式来解决这一问题。例如,Alexopoulos引入了基于区块链的CIDS,用区块链增强IDS节点间的信任,他们将每个IDS生成的原始警报视作区块链中的交易,从而在CIDN的协作节点间传播。所有协作者通过共识对其验证,可以保证存储在区块链中的警报信息是防篡改的。

区块链和入侵检测可以相互补充。一方面,如前所述,区块链用于提升IDS的性能,尤其是CIDS在数据共享和信任管理方面,另一方面,入侵检测可以帮助区块链系统中的异常。

要注意,用不用区块链解决入侵检测问题需要具体评判,传统方案依然值得研究。

总体思路,节点在本地运行机器学习分类器生成正常配置文件,以智能合约的形式存储在区块链中,并根据安全策略周期性的更新,运行过程中检测系统事件并和配置文件比较,发现异常后生成警报并在区块链中记录保证不可篡改,判决合约根据警报和节点历史行为做出判决。

支付宝
微信
0%