0 提纲

  • 概述
  • 数据集
  • 数据预处理
  • 特征工程
  • 天池AI上的实践
  • 棘手问题

1 概述

入侵检测是网络安全中的经典问题,入侵是指攻击者违反系统安全策略,试图破坏计算资源的完整性、机密性或可用性的任何行为。不管是哪种类型的入侵检测系统(IDS),其工作过程大体是相同的,可以分为三个主要的环节,即信息收集、分类检测和决策,其中,分类检测和决策环节是IDS的关键,都需要一定的人工智能技术来支持。
IDS有多种不同的划分方法,可以根据信息来源、检测方法、体系结构进行分类。
根据信息来源可分为:

  • 基于主机IDS;
  • 基于网络的IDS;
  • 混合IDS。

根据检测方法可分为:

  • 异常检测;
  • 误用检测;

根据体系结构的不同,可以分为:

  • 集中式IDS;
  • 分布式IDS。

2 数据集

对于网络入侵检测,采用网络嗅探、网络数据包截获等方法获得流量数据。对于主机型入侵检测,采用的方法比较灵活,既可以是操作系统的各种日志,也可以是某些应用系统的日志,也可以通过开发驻留于主机的应用软件等方法获得主机数据。

NSL-KDD数据集是通过网络数据包提取而成,由Tavallaee等人于2009年构建
NSL-KDD共使用41个特征来描述每条流量,这些特征可以分为三组,即:

  • (1)基本特征(basic features),从TCP/IP连接中提取。
  • (2)流量特征(traffic features),与同一主机或同一服务相关。
  • (3)内容特征(content features),反映了数据包中的内容。

除此之外,每条流量都带有一个标签,即normal和anomaly,表示相应的流量为正常或异常。

https://www.unb.ca/cic/datasets/nsl.html下载数据文件
KDDTrain+.txt文件说明:是完整的NSL-KDD训练集,除了41个特征外,还包括数据包类型的标签和难度等级。

3 数据预处理

对于分类任务来说,由于原始数据可能存在异常、缺失值,不同特征的取值范围差异大等问题,对于机器学习会产生影响,因此,在进行机器学习模型训练之前,需要先对数据进行预处理。主要的过程包括:

  • 数据清洗,主要工作包括缺失值和异常值处理;
  • 去量纲:使不同取值范围的特征值转换到同一规格,一般是[0,1]、[-1,+1]等。常见的去量纲方法有归一化和标准化;
  • 离散化:等宽法、等频法和基于聚类的方法等。

4 特征工程

针对网络入侵检测应用,其特征数据通常来自多个不同软硬件设备、不同应用系统、不同的日志系统,但是都与攻击行为有一定联系。由此可能导致特征之间存在一定的相关性。例如,针对某个端口的大量并发连接请求,也必然引起内存使用量的增加。又如,Web服务器通常使用默认端口80进行监听,不同服务器一般有默认端口,由此服务器类型和端口就存在一定的相关性。因此,构造合适的特征空间也是很有必要的。

特征选择和特征抽取是特征工程的两个重要的方面,目的都是寻找合适的样本表示空间。它们的最大区别是是否生成新的属性。

  • 特征提取通过变换的方法获得了新的特征空间,如PCA、NMF等;
  • 特征选择只是从原始特征集中选择出部分子集,没有生成新的特征,主要有Filter(筛选)式、Wrapper(包裹)式和Embedded(嵌入)式。

5 天池AI上的实践

在sklearn框架内,以NSL-KDD数据集为例,选择其中的部分数据构造了二分类问题、多分类问题。

  • 在二分类中,训练集共有125973条记录,类别是正常和异常两类。经过去除缺失值记录、归一化等数据处理后,进行特征选择,然后以SVM、决策树、逻辑回归和随机森林作为分类器进行了训练。对另外的测试数据文件进行测试。
  • 在线实验入口:https://tianchi.aliyun.com/course/990

6 棘手问题

(1)误报率高、漏报率高。各种机器学习模型仍存在较高的误报率和漏报率,并且对于参数敏感。特别是,对于未知的入侵行为的感知能力弱,已成为制约入侵检测发展的关键技术问题。
(2)自学习能力差。添加IDS检测规则常依赖于手工方式且更新缓慢,限制了IDS的可用性。
(3)从检测到决策的困难。入侵检测的最终目标是为安全防御提供支持,而检测技术中的误报率漏报率问题,使得自动化决策可能影响正常数据的流动,也可能导致未能及时阻断入侵行为。
(4)自身易受攻击。IDS本身是存在漏洞的软件程序,它容易成为黑客攻击的目标,一旦黑客攻击成功,那它所管理的网络安全就不能得到保证。

09-16 04:22