Windows下基于snort的入侵防御系统

时间:2022-10-01 12:35:59

Windows下基于snort的入侵防御系统

摘 要:Windows下Snort不能实现入侵防御的现状,要求对Snort的规则和源代码进行改进。实现了监听程序在入侵者尝试发现服务器漏洞时监听到入侵,并作出进一步的操作,达到阻止入侵者进一步攻击的目的。实例应用证明,基于Snort的具有实时报警功能的入侵防御系统,能大大降低使用成本,具有很高的实际应用价值。

关键词:入侵防御系统;实时;报警系统;服务器漏洞;入侵检测系统

中图分类号:TP309 文献标识码:A 文章编号:1672-7800(2012)003-0141-02

作者简介:田丽(1982-),女,安徽淮北人,硕士,淮北矿业集团公司朱仙庄矿瓦斯治理办公室 职员,研究方向为矿井和网络安全。

0 引言

Snort是基于规则匹配的入侵检测系统,针对每一种入侵行为,都提炼出它的特征值并按照规范写成检测规则,从而形成规则数据库;将捕获的数据包与规则库中的规则逐一匹配,若匹配成功,则认为该入侵行为成立,输出相应的报警信息。Snort规则库中的每条规则都是一条攻击标识,从逻辑上可分为两部分,即规则头和规则体。

规则头包含了该规则的动作、协议,源IP地址和目的IP地址,源端口号和目的端口号的信息,Snort 支持5种行为动作,分别是Alert、Pass、Log、Activate、Dynamic,其中最常用的是Alert 动作,它会向报警日志中写入报警信息。规则体是在规则头匹配的基础上,作进一步的分析。规则体由若干个被分号隔开的片断组成,每个片断定义了一个选项和相应的选项值。一部分选项是对各种协议的详细说明,另一部分选项则定义了当规则被触发时提供给管理员的参考信息等。只有当规则各条件都为真时才触发操作。组成规则的各元素是“与”逻辑关系;同时,各条规则之间为一个大的“或”关系。Snort 解析规则时,分别生成TCP、UDP、ICMP 和IP 4 个不同的规则树,每个规则树色含独立的三维链表:RTN, OTN 和FUNC。Snort规则的组织采用了链表这种数据结构,从2.0版本开始,引入了三维链表(见图1)来组织规则,Snort的检测效率也由此大大提高。

1 监听功能的实现

1.1 Snort源代码的改进

Snort的入侵检测规则是完全开放的,因此用户可以根据网络入侵的一些基本特征编写规则。通过对Snort源代码和规则的改进,使其实时输出报警信息,并为报警输出模块提供一个监听程序的办法,来及时获取报警信息。如果对报警信息进行解析,根据解析结果向防火墙添加相应的规则,就能达到实时阻止网络攻击的目的。而且监听程序独立于Snort运行,不会影响到Snort的运行效率。

图1 三维链表结构

在Snort源文件中,output-plugins文件下的spo_database.c源文件是数据库输出插件。每当Snort检测到威胁都会调用数据库输出插件来向数据库中写入威胁信息,此时加入以下代码就可实现与其他进程实时通信。该代码使得Snort在向数据库写入威胁信息的同时向本机的5556端口发送udp数据包。

1.2 Snort规则配置

alert tcp any any -> any any (msg:“SQL INTRUSION ";content:“|25 32 37 2b 6f 72 2b 25|";sid:200004;rev:2;classtype:not-suspicious;flow:to_server;)

“ SQL Instrusion”是该规则报警时发出的信息;“|25 32 37 2b 6f 72 2b 25|”是搜索数据包的关键特征;not-suspicious是该规则的类型;to_server指明只识别向服务器发送的数据包;sid,rev是规则的标识。

2 Windows下的应用

本实例有两台主机,主机1(192.168.0.2)作为客户端,主机2(192.168.0.3),作为服务器,运行着一个论坛网站,为了说明攻击的过程,此网站的密码输入采用明文。

2.1 未安装入侵防御系统

此论坛网站后台验证用户信息时有个SQL注入漏洞。只要入侵者知道用户名,并且在密码框中输入类似下列字符:' or '1'='1,就能成功绕开密码的验证直接登录。在获知管理员的用户名后,就能直接进入后台。图2显示入侵者利用这个漏洞入侵者获得了管理员的所有权限和用户的所有信息,这对网站的危害是非常大的。

2.2 安装入侵防御系统

按照同样的方法尝试入侵服务器,此时依然可以绕开密码验证。但此时Snort根据规则认定该动作是入侵行为,向监听程序发出报警,监听程序根据报警信息作出相应的防御设置。本实例采用的是通过设置防火墙与入侵源IP地址断开。入侵者虽然登录了后台,但已经无法再继续连接服务器(见图3)。

3 结束语

本文实现了Snort在windows下的实时报警,使得入侵防御系统在windows环境下的实现成为可能。Snort是一款免费的优秀专业的入侵检测系统,在此系统中实现实时报警功能不仅能有效地起到入侵防御的作用,还能大大降低使用成本,具有很高的实际应用价值。实时报警功能可以不改动原服务器架构,防范入侵攻击。即使服务器架构本身有漏洞无法及时修复,依然可以通过该方案防范入侵攻击。管理员只要及时更新Snort的规则库,就能轻松实现服务器的网络安全,大大降低了维护难度和成本。

参考文献:

\[1\] GARCIA A,JUAN J P,KATZA A,et al. Intrusion detection in web applications using text mining\[J\].Engineering Applications of Artificial Intelligence, 2007(4).

\[2\] ANTONATOS S,ANAGNOSTAKIS K G.Generating realistic workloads for network intrusion detection systems\[J\].ACMSIGSOFT Software Engineering Notes, 2004(1).

\[3\] KAI HONGMEI,ZHU HONGBING,KEIE, et al. Anovel intelligent intrusion detection,decision, response system\[J\].IEICE Transactions on Fundamen tals of Elect ronics ,Communications and Computer Sciences , 2006(6).

\[4\] XIAO LING YE,YING CHAO ZHANG,CHAO LONG ZHANG.Amobileagent and snort based distributed intrusion detection system\[C\].World Congress on Software Engineering.Xiamen, Chin a, 2009.

上一篇:基于活动理论的交互白板培训活动设计 下一篇:物联网技术在制造业智能仓库管理系统中的应用