人工智能安全-5-网络入侵检测

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本身是存在漏洞的软件程序,它容易成为黑客攻击的目标,一旦黑客攻击成功,那它所管理的网络安全就不能得到保证。

相关推荐
@小匠15 小时前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
星幻元宇VR17 小时前
VR卡丁车|让交通安全教育更有趣的沉浸体验
安全·vr·虚拟现实
Dream of maid18 小时前
Python12(网络编程)
开发语言·网络·php
网教盟人才服务平台18 小时前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊18 小时前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾18 小时前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)19 小时前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz19 小时前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
minji...19 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
GreenTea20 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端