浅析以NIDS为例的入侵检测
2021-07-20邹亚君吕沂伦何天晴
◆邹亚君 吕沂伦 何天晴
(曲阜师范大学 网络空间安全学院 山东 273100)
自互联网进入大众视野以来,网络安全已进入发展快车道,传统的防火墙策略已经无法满足人们对网络安全的要求。入侵检测技术是一种有效策略,但是在这条道路上还面临着挑战。因此必须对入侵检测技术有全方位多角度的了解,才能更好的应用于网络安全管理,为人民解决网络安全隐患,在网络安全防护市场中发挥关键性的作用。
1 入侵检测系统概述
1.1 入侵检测系统的概念
入侵检测是对用户上网行为实时监测和安全管理的一种手段,是对网络防火墙的加强。它提供了用于发现非法行为和恶意入侵迹象的一种检测方法。入侵检测系统是一种硬件和软件交叉结合的检测设备,能够对入侵行为发出入侵警报。
1.2 入侵检测系统的分类
(1)根据入侵数据源的不同可以细分为基于主机的入侵检测和基于网络的入侵检测。前者主要功能是监测主机内部行为,监视主机系统的异常操作或运行状态;后者主要功能是以网络数据包为数据源,分析数据包的特征。
(2)根据对网络信息源分析方法的不同又可以分为两种:基于误用的入侵检测和基于异常的入侵检测。
图1 入侵检测的分类
2 基于主机的入侵检测系统
2.1 基于主机的入侵检测系统的概念
基于主机的入侵检测系统(Host-based Intrusion Detection System,HIDS)是一种能够关注计算机系统内部状态,对审计日志记录进行分析的一种入侵检测机制。
2.2 基于主机的入侵检测系统的优点与缺点
HIDS 具有更高的辨识度,对特殊主机关注性较强,可以检测到行为特征不明显的入侵。HIDS 针对不同的操作系统具有不同的操作,适用于加密与交换环境,并且HIDS 的成本低,性能也不会受到网络流量的影响,具有普适性。但是HIDS 也具有以下缺点:实时性较差,不能及时对入侵行为做出反应;只能检测到局部数据包,入侵检测范围不够全面;利用HIDS 会导致主机资源被占用,并且具有较差的隐蔽性和主动性,不能在没有用户的参与下对攻击行为展开调查。
3 基于网络的入侵检测系统
3.1 基于网络的入侵检测系统的概念
基于网络的入侵检测系统(Network-based Intrusion Detection System,NIDS)是一种能够对网段数据包内容进行分析,实时监听网段流量的入侵检测机制,当某一数据包与内置规则相匹配时,则发出入侵警报或者自动切断网络连接。
3.2 基于网络的入侵检测系统的优点与缺点
NIDS 会对整个网段的网络数据包进行检测,而不仅局限于一台主机,NIDS 与HIDS 相比实时性较好,可以及时对一般入侵行为做出反应,同时具有良好的隐蔽性,不易被发现也不需要任何特殊的审计和登录管理机制,配置好网站的接口即可。而且NIDS 不占用主机资源,能够节省空间。但是NIDS 还具有以下缺点,处理范围并不全面,虽然可以检测一般入侵行为,但是不能有效检测到带有伪装的攻击行为,当主机要实现监听功能时,NIDS 会增加冲突的可能性,导致监听效果变差。此外,NIDS 规则的更新总是慢于攻击手段的出现,即使用户可以自定义规则,但这也为入侵者提供了方便,入侵者可以故意规避已有规则,从而使攻击行为不被NIDS 发现。
3.3 基于网络的入侵检测系统的功能
NIDS 能够管理网络引擎,用户角色以及数据库,对数据进行收集,将网卡设为混杂模式来抓取网段中的流量数据包,在检测到攻击入侵时能及时对FTP、DNS、HTTP 等事件进行分析并做出响应。
3.4 基于网络的入侵检测系统的特征匹配
NIDS 发现入侵攻击行为主要有以下三个特征:端口特征,即对目的IP 地址的端口号进行检查,如有一些非法程序的端口号出现则可判定为入侵行为。串特征看似是普通的字符串,实则为危险信号,代表攻击,某些字符串的含义为不经过身份认证就可以使用该主机,危害非常大;数据包头特征即数据包的码位含有非法组合,具有代表性的就是WinNuke 攻击,通过TCP/IP 协议传输紧急数据包,当主机收到此数据包就会死机或者蓝屏。
3.5 Snort 简介
Snort 的三种模式。嗅探器:其主要用途是探测网络数据包,并将其显示在界面上,常用命令snort -dev。网络入侵检测系统:对网络数据流协议进行分析,并与自定义规则相比较,对有入侵特征的行为采取相应措施。数据包记录器:将数据包打包存储到主机,常用命令snort -b。
Snort 的四大组成模块。数据包嗅探模块:监听网络协议数据包,并进行协议解析。预处理模块:对传入的数据包进行整合,利用注册,初始化和调用等插件进行端口扫描等操作。检测模块:数据包被发送到此核心模块,检测引擎根据用户自己设置的规则,对该数据包内容进行检测和匹配,当用户发现数据包的内容与规则中content 的字符串相匹配时,就发出警报。报警/日志模块:当数据包与检测模块中的某条规则相匹配,则会触发报警,报警信息被记录到日志文件或者数据库中。
3.6 Snort 规则
Snort 规则由规则头和规则体两部分组成。规则头又由四部分组成:协议、源IP 地址和目的IP 地址、规则动作、源端口信息和目的端口信息。规则体可以在规则头的基础上进一步对数据包进行分析,包含报警信息和需要检查的包的具体部分。
规则一:
alert any any -> any any[2000;2021](msg:””;content:””)
解释:“alert”表示规则动作为报警,any 代表任意,“->”表示发送方向,因为端口号之间用分号连接,则目的端口为2000—2021,如果是冒号则是独立的两个数值,括号里的内容是规则体,msg 对应的是报警信息,content 对应的是匹配的字符串。
(1)规则动作
规则动作规定了Snort 在发现匹配的数据包时应该作何反应。Snort 预置的规则动作有五种:log 是按照自定义格式对数据包进行记录。activate 是当数据包与规则相匹配时,会生成警报并启动相关的dynamic 类型的规则。pass 是跳过对当前数据包的分析,继续对下一个数据包进行分析。alert 是按照自定义格式对包进行记录并发出警报。dynamic 是等待activate 规则激活,激活后类似于log。
(2)协议
当前Snort 分析的IP 协议有四种分别是TCP,UDP,ICMP 和IP。
(3)IP 地址
规则中会给定规则的IP 地址和端口信息,any 代表任意(任意IP 地址和任意端口号),地址由数字型IP 地址和CIDR 所表示。在这个区域内的所有IP 地址都对应使用此规则。此部分可能会用到“!”否定运算符,表示除给定的IP 地址外对其他的流都会报警。“111”表示端口映射器,想要测试主机必须先开放111 端口。
规则二:
alert tcp !192.168.15.0/24 any -> 192.168.15.0/24 111(content:””;msg:””)
(4)端口号
any 可以表示任何端口,静态端口号表示单独的一个端口号。例如ftp 端口号为21,telnet 端口号为23,http 端口号为80,smtp 端口号为25 等。
(5)方向操作符
“->”表示规则所施加的流的方向。方向操作符左边的IP 地址和端口号是源主机,方向操作符右边的IP 地址和端口号是目的主机;“<>”双向操作符表示IP 地址和端口号又作为源又作为目的主机,记录数据的双向传输。
规则三:
log 192.168.15.0/24 any <> 192.168.15.0/24 23
图2 数据包部分解析示例
图3 TCP 数据包部分内容示例
3.7 NIDS 的发展
面对着如今防火墙产品充斥着市场的现状,入侵检测系统作为防火墙的加强手段有着强劲的上升势头,但是入侵检测系统还有许多问题亟待解决,一方面是虚假警报率和漏报率过高,究其原因还是匹配技术与检测技术不精确,这还有待加强改善;另一方面是检测速度太慢无法跟上当前大数据时代越来越快的网络增长速度,和越来越复杂的网络拓扑结构的步伐。目前大多数的入侵检测系统在检测质量和数据负荷量方面不能兼得。可见入侵检测技术还未成熟,仍然是一个具有研究潜力的课题。
4 总结
网络安全技术是一个复杂的课题,而入侵检测是保证网络信息安全的一个必要手段,是网络安全中新兴的有效技术。本文针对入侵检测技术在信息源上的分类,分别进行了简要的叙述,并且提到了Snort入侵检测技术,但是Snort 没有图形界面,总体来说比较抽象。入侵检测技术与防火墙技术的结合,将会广泛应用于安全防护技术当中。如何进一步提高入侵检测力度,更好迎接两大方面的挑战,保障网络信息安全,是以后入侵检测方面需要着重研究的新方向。