武警警官学院 四川成都 610213
摘要:入侵防御系统 (IPS) 能够帮助组织识别恶意流量,并主动阻止此类流量进入其网络。本文围绕入侵防御技术展开,通过对开源的Snort软件从体系结构及检测规矩进行研究,进而通过Snort的应用实现入侵防御模式。
关键字:入侵防御;Snort;检测规则
引言
随着互联网技术的快速发展,网络中的安全风险系数不断提高,防火墙作为最主要的网络安全防范手段,只能够对网络外部的入侵进行抵抗,而当入侵来自于网络内部时,防火墙的防御和监测功能也就无法发挥效用了,已经不能满足网络安全的需求。入侵防御系统 (IPS) 能够帮助组织识别恶意流量,并主动阻止此类流量进入其网络。使用 IPS 技术可以连续部署以监控传入流量,并检查流量是否存在漏洞。如果检测存在,将采取安全策略中定义的适当措施,例如阻止访问、隔离主机或阻止访问可能存在泄露风险的外部网站。
一、入侵防御系统
入侵防御系统也像入侵检测系统一样,专门深入网络数据内部,查找它所认识的攻击代码及特征,过滤有害数据流,丢弃有害数据包,并进行记载,以便事后分析。除此之外,更重要的是,大多数入侵防御系统同时结合考虑应用程序或网路传输中的异常情况,来辅助识别入侵和攻击。
网络入侵防御系统作为网路之间或网路组成部分之间的独立的硬体设备,切断交通,对过往包裹进行深层检查,然后确定是否放行。网络入侵防御系统藉助病毒特征和协议异常,阻止有害代码传播【1】。
投入使用的入侵预防系统按其用途进一步可以划分为单机入侵防御系统(HIPS: Hostbased Intrusion Prevension System)和网络入侵防御系统(NIPS: Network Intrusion Prevension System)两种类型。
基于网络的IPS主要用于检测流经网络链路的信息流,可以保护网络资源和统一防护网络内部的主机,工作流程包括信息捕获、信息实时分析、入侵阻止、报警、登记和事后分析。
二、Snort软件技术
1、Snort简介
Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS,Snort 经常用作入侵检测系统(IDS),进一步可以配置为入侵防御系统(IPS)。
Snort使用数据采集器监听防火墙数据包队列,配合Snort规则动作drop、alert等处理数据包,防火墙在Snort启动后添加链表队列。报文经过防火墙时,将交给Snort来处理,触发入侵检测规则时立刻响应动作,屏蔽数据包。
2、Snort体系结构
Snort的结构由4大软件模块组成【2】,它们分别是:
(1)数据包嗅探模块:负责监听网络数据包,对网络进行分析;
(2)预处理模块:该模块用相应的插件来检查原始数据包,从中发现原始数据的“行为”,如端口扫描,IP碎片等,数据包经过预处理后才传到检测引擎;
(3)检测模块:该模块是Snort的核心模块,当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块;
(4)报警/日志模块:经检测引擎检查后的Snort数据需要以某种方式输出。如果检测引擎中的某条规则被匹配,则会触发一条报警,这条报警信息会通过网络、UNIXsocket 、Windowspopup(SMB)、SNMP协议的trap命令传送给日志文件,甚至可以将报警传送给第三方插件(如SnortSam),另外报警信息也可以记入SQL数据库。
3、Snort规则
Snort就是利用规则来匹配数据包进行实时流量分析,网络数据包记录的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),也就是NIDS/NIPS。在Snort中有五种动作:alert、log、pass、activate和dynamic。
Alert:使用选择的报警方法生成一个警报,然后记录(log)这个包。 Alert动作用来在一个包符合规则条件时发送告警消息。告警的发送有多种方式,例如可以发送到文件或者控制台。
Log:记录这个包。Log动作与Alert动作的不同在于:Alert动作是发送告警然后记录包,Log动作仅仅记录包,并且有不同的方式,例如,可以记录到文件或者数据库,这将在以后讨论。根据命令行参数和配置文件,包可以被记录为不同的详细程度。
Pass:丢弃(忽略)这个包。这个动作告诉Snort不理会这个包,这个动作在你不想检查特定的包的时候可以加快Snort的操作速度。例如,如果你在网络中有一台包含一些弱点的主机,用来检测网络安全漏洞,可能会希望不理会对这台机器的攻击,pass规则这时就可以用到了。
activate:报警并且激活另一条dynamic规则。Activate动作用来产生告警然后激活其它规则来进行进一步的检验。如下面所说的,dynamic动态规则就是用于这个目的。当你需要对捕获的包进行进一步检验的时候,就可以用activate动作。
dynamic:保持空闲直到被一条activate规则激活,被激活后就作为一条log规则执行。Dynamic规则动作由其它用activate动作的规则调用,在正常情况下,他们不会被用来检测包。一个动态规则仅能被一个“activate”动作激活。
三、基于Snort的IPS技术实现
基于网络的IPS主要用于检测流经网络链路的信息流,可以保护网络资源和统一防护网络内部的主机,该模式也是Snort的最重要的实现形式。在安装和配置Snort软件后,创建规则如下:
(1)TCP字段警报,凡是TCP包中包含"admin"字段的,警报并记录,规则如下:
alert TCP any any <> $HOME_NET any (logto:"ceshi";msg::TCP"; content:"admin"; sid:100000002)
(2)80端口监控,凡是访问主机80端口的TCP包,警报并记录,规则如下:
alert TCP any any -> $HOME_NET 80 (logto:"ceshi2 "; msg:" TCP 80"; sid:100000003)
配置文件及规则文件无误后,输入以下命令执行配置文件并进行入侵检测:Snort -dve -i1 -l c:\Snort\log -c c:\Snort\etc\Snort.conf。当该主机被访问网页,log文件夹下已有入侵检测日志文件,结果如图1。
图1 Snort检测攻击警告日志
四、总结
应用入侵预防系统的目的在于及时识别攻击程序或有害代码及其克隆和变种,采取预防措施,先期阻止入侵,防患于未然。或者至少使其危害性充分降低。入侵预防系统一般作为防火墙和防病毒软件的补充来投入使用。在必要时,它还可以为追究攻击者的刑事责任而提供法律上有效的证据。
参考文献:
[1]冷峰, 张翠玲, 陈闻宇,等. 从Snort规则的协议信息分析攻击[J]. 计算机应用, 2022, 42(S01):5.
[2]叶长青, 常李艳. 一种基于Snort技术的入侵检测系统的实现[J]. 电脑知识与技术:学术版, 2020.