基于snort的企业网络安全蜜罐系统的设计与实现

时间:2022-10-14 03:13:05

【前言】基于snort的企业网络安全蜜罐系统的设计与实现由文秘帮小编整理而成,但愿对你的学习工作带来帮助。1.1 系统总体设计 该文所设计的蜜罐系统由三部分构成:网关、监控机和虚拟蜜罐,如图1所示。 网关(HoneyWall)是以桥接模式部署的,网关接口以桥接方式连接,不会提供本身的 MAC 地址,对网络数据包也不会进行网络路由 和TTL递减,网关将控制和审计所有流入流出蜜罐系...

基于snort的企业网络安全蜜罐系统的设计与实现

摘要:该文使其它安全技术与蜜罐技术相结合,在snort入侵检测技术的基础上,研究和设计了一个具有高交互度级别特征的蜜罐信息安全系统,从而构成统一的网络安全基础设施。

关键词:snort;IPTables;Sebek;入侵检测技术;蜜罐系统;信息安全

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)26-6392-02

作为一种新型的信息安全技术,蜜罐技术不再因循传统信息安全的被动防御体系,它一方面能够作为独立的信息安全工具,另一方面也能够与其它信息安全工具协作。蜜罐技术通过构造网络诱骗环境,来研究网络入侵者的具体技术与行为。传统的网络安全系统往往拘泥于一种体系,该文的创新之处在于研究如何使其它安全技术与蜜罐技术相结合,从而实现一个高交互度级别的蜜罐系统,进而构成统一的网络安全基础设施。

1 网络安全蜜罐系统的理论设计实现

1.1 系统总体设计

该文所设计的蜜罐系统由三部分构成:网关、监控机和虚拟蜜罐,如图1所示。

网关(HoneyWall)是以桥接模式部署的,网关接口以桥接方式连接,不会提供本身的 MAC 地址,对网络数据包也不会进行网络路由 和TTL递减,网关将控制和审计所有流入流出蜜罐系统的网络流量。

该文所设计的蜜罐系统引入多层次的数据捕获机制,分别是:

1) 防火墙。截获所有IP包,从其传输层协议头 以及IP头中获取相关信息,与事先设定的访问控制规则按顺序依次匹配,并执行其规定的动作。

2) 入侵检测系统。基于snort的入侵检测系统监听流入流出蜜罐系统的全部网络流量,根据配置,对与Snort攻击特征相匹配的数据包产生报警日志,避免攻击。

3) 系统行为监视器。使用了Sebek来捕获攻击者基于加密信道的攻击行为。在蜜罐主机上以内核模块的方式安装Sebek客户端,在网关上安装Sebek服务端,存储来自多个蜜罐主机发来的Sebek数据。

蜜罐系统在网关上运行IPTables防火墙、Sebek服务端以及网络入侵检测系统Snort。引入VMware虚拟机软件虚拟出分别运行Windows XP和Linux操作系统的两个蜜罐主机,系统结构图如图2所示。

1.2 核心模块的理论分析与设计

1.2.1 数据控制模块

该文引入Linux 开放源代码的自带的防火墙IPTables实现数据控制,系统侦测到数据包的进入时,会通过路由表查询,来决定数据包的流向。接下来,将信息包所传递到的链中的每条规则与数据包的头信息进行比较,看与某条规则是否完全匹配。该文所设计的网络安全蜜罐系统信息包过滤过程如图3所示。

在信息安全主系统上IPTables发挥了两个作用,首先是记录流经主系统的数据流量,其次是限制由蜜罐网络发出的对外连接。引入IPTables的作用就是在数据捕获的同时实现第三方保护,有效的降低整个系统的风险,控制蜜罐的对外连接。

IPTables蜜罐系统中对数据包进行处理时,为减少日志中的冗余信息,对入站连接而言,仅仅对新建的连接进行记录,并默认所有的对内连接均为允许。相反,严格控制出站连接,只要原地址并非蜜罐地址,便记录并丢弃,从而避免由蜜罐发起的IP欺骗攻击;IPTables允许蜜罐系统发送和接收广播包,并使用基于广播的一些服务,从而诱骗黑客相信这是正常的一台服务器;此外,IPTables蜜罐系统对出站的连接数进行限制,从而避免黑客发动DoS攻击,同时也支持对第三方的保护。

1.2.2 入侵检测模块

本系统由Snort来实现轻量级的网络入侵检测。它能够对攻击进行实时报警,检测各种不同的攻击方式。

Snort 在本系统中的主要功能,首先是采集和分析在网关对进出蜜罐系统的数据,实现攻击的检测;其次是控制蜜罐系统的数据,根据策略对数据包进行规则匹配,以判定是否有第三方发起攻击,进行丢弃或修改。

本系统在设计中,将 snort sensor 网卡设置为混杂模式,对进入局域网的数据,引入libpcap抓包函数库的API进行截获和监控,同时通过相应的解包函数逐层按协议栈解码截获的数据包。在此基础上形成可被分析系统识别的数据包。根据 Snort 配置文件进行匹配,并记录匹配结果。图4所示为该文所设计的Snort的结构。

在入侵检测模块中,Snort的规则分析是实现的重点。Snort的规则逻辑由两部分构成,分别是:Rule Option(规则选项)和Rule Header(规则头)。在规则头中,包括所匹配网络报文的协议、规则的行为、目标地址、源地址和源端口和目标端口、网络掩码等信息;在规则选项中,则包含了判定报文是否为攻击报文的信息以及显示给用户查看的警告信息。

1.2.3 数据捕获模块

Sebek 是基于内核的捕获数据的工具,支持系统查看蜜罐的内部活动。

1)基于Sebek的数据记录。

Sebek有两个客户端和服务端组成部分,客户端捕获数据并输出到服务端,服务端收集数据后,既可以马上显示击键记录,也可以上传到相关数据库。该文所涉及的网络安全蜜罐系统数据捕获是通过对系统调用表的read()函数进行替换来进行的。如图5所示。

主要流程为:调用老 read()函数替换新函数,同时在一个数据包缓存拷贝内容,再加上一个数据包头,发送到服务端。通过改变系统调用表的函数指针来实现替换原来的函数。当标准的read()函数被用户空间的进程调用时,便会出发一个系统调用,这个系统调用通过到系统调用表数组映射,导致索引偏移。由于read索引的函数指针被Sebek修改,并指向到它自己的函数,因此Sebek修改后的read调用会在执行到内核的 read 实现时被触发,通过这个系统调用,Sebek便能够访问所有的数据。

2)基于Sebek的数据发送

当数据被Sebek客户端捕获的时候,数据应该在没有被入侵者察觉时就发送到服务端。通常在一个局域网内布置蜜罐,如果给服务端发送数据 只是由Sebek使用 UDP 流来完成,就会使入侵者通过网络上的数据传输监听来判别Sebek是否存在。因此,本设计在使用UDP发送数据给服务端的提示,通过修改内核,使这些数据包无法被用户看到,包括该类型使用相同配置的其它主机发送的数据包。具体的实现为:在任意一个read()调用请求 Sebek的时候,均能够产生日志数据包,每个日志数据包都体现出这个调用访问的数据和调用内容的信息。这些数据包均含有 Sebek 记录,这个Sebek记录包含产生调用的进程数据信息。由于完全由Sebek(而不是使用 TCP/IP 协议栈)产生这些包,因此这些数据包无法被系统看到或阻断。创建好数据包就直接发至驱动设备,而嗅探器的libpcap收集数据包是依赖使用原始套接字接口的,所以由Sebek产生的数据包嗅探器就无法看到了,从而实现了数据发送。

2 结束语

该文在snort入侵检测技术的基础上,研究和设计了一个具有高交互度级别特征的蜜罐信息安全系统,其中,重点阐述了基于蜜罐的数据捕获和数据控制功能的多层次设计上。在分析蜜罐系统的体系结构的基础上,深入研究了对蜜罐系统中使用到的 Snort体系和规则,具有比较好的理论意义和实践价值。

参考文献:

[1] 魏亮,周吉阳. 互联网网络与信息的安全策略[J].通信管理与技术,2011(6):15-18.

[2] 谭红斌,郑鑫. 网络安全防御系统的安全策略及系统框架研究[J].电脑开发与应用,2009,21(11):67-77.

[3] 代平顺,王洪超.互联网网络安全探讨[J].科技信息,2009(17):387-388.

[4] 李安平. 防火墙的安全性分析[J].计算机安全,2010(7):86-89.

[5] HUNT R,VERWOERD T. Reactive firewalls-a new technique[J]. Computer Communications, 2010(26):1302-1317.

上一篇:物联网技术与高职计算机专业发展探讨 下一篇:基于Matlab软件的小波变换在图像去噪中的应用