蜜罐技术概述
蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷。传统蜜罐有着不少的优点,比如收集数据的保真度,蜜罐不依赖于任何复杂的检测技术等,因此减少了漏报率和误报率。使用蜜罐技术能够收集到新的攻击工具和攻击方法,而不像目前的大部分入侵检测系统只能根据特征匹配的方法检测到已知的攻击。但是随着应用的广泛,传统蜜罐的缺点也开始暴露了出来,综合起来主要有3个方面:
(1)蜜罐技术只能对针对蜜罐的攻击行为进行监视和分析,其视图不像入侵检测系统能够通过旁路侦听等技术对整个网络进行监控。
(2)蜜罐技术不能直接防护有漏洞的信息系统并有可能被攻击者利用带来一定的安全风险。
(3)攻击者的活动在加密通道上进行(IPSec,SSH,SSL,等等)增多,数据捕获后需要花费时间破译,这给分析攻击行为增加了困难。
针对以上问题出现了蜜网技术。蜜网技术实质上是一类研究型的高交互蜜罐技术,与传统蜜罐技术的差异在于,蜜网构成了一个黑客诱捕网络体系架构,在这个架构中,可以包含一个或多个蜜罐,同时保证了网络的高度可控性,以及提供多种工具以方便对攻击信息的采集和分析。
蜜网中蜜罐所面临的挑战
蜜网是一个体系结构,成功地部署一个蜜网环境,这里有两个严格的需求,这也是针对传统蜜罐的缺点而提出来的。这两个需求是:数据控制和数据捕获。数据控制就是限制攻击者活动的机制,它可以降低安全风险。数据捕获就是监控和记录所有攻击者在蜜网内部的活动,包括记录加密会话中击键,恢复使用SCP拷贝的文件,捕获远程系统被记录的口令,恢复使用保护的二进制程序的口令等。这些捕获的数据将会被用于分析,从中学习黑客界成员们使用的工具、策略以及他们的动机。这正是蜜罐所要做的工作。
蜜罐应用解决方案
1捕获工具隐藏
1.1隐藏模块。
捕获数据的工具是以模块化的机制在Linux系统启动后动态地加载到内核成为内核的一部分进行工作的。当捕获程序的模块被加载到内核时,一个记载已加载模块信息的安装模块链表里面就记录下已加载模块的信息,用户可以通过内存里动态生成的proc文件系统下的module文件来查看到。当特权用户root调用/sbin/insmod命令加载模块时会有一个系统调用sys_create_module,这个函数在Linux2.4的源代码中位于kernel/module.c。它会将含有新加载的模块信息的数据结构struct module插入到名为moudle_list的模块链表中去。
当一个模块加载时,它被插入到一个单向链表的表头。黑客们在攻入蜜罐系统后,可以根据以上存在的漏洞,找出他们认为是可疑的蜜罐捕获模块并从内核卸载模块,这样蜜罐也就失去了它的功能。为了达到隐藏模块的目的就必须在加载模块后,将指向该模块的链表指针删除,这样通过遍历表查找时就再也无法找到该模块了。
1.2进程隐藏。
进程是一个随执行过程不断变化的实体。在Linux系统运行任何一个命令或程序系统时都会建立起至少一个进程来执行。这样蜜罐捕获程序必定会在系统中运行多个进程,利用类似于ps这样查询进程信息的命令便可以得到所有的进程信息,这样很容易就会暴露蜜罐的存在。由于在Linux中不存在直接查询进程信息的系统调用,类似于ps这样查询进程信息的命令是通过查询proc文件系统来实现的。
proc文件系统是一个虚拟的文件系统,它通过文件系统的接口实现,用于输出系统运行状态。它以文件系统的形式,为操作系统本身和应用进程之间的通信提供了一个界面,使应用程序能够安全、方便地获得系统当前的运行状况以及内核的内部数据信息,并可以修改某些系统的配置信息。由于proc以文件系统的接口实现,因此可以象访问普通文件一样访问它,但它只存在于内存之中,所以可以用隐藏文件的方法来隐藏proc文件系统中的文件,以达到隐藏进程的目的。
判断文件是否属于proc文件系统是根据它只存在于内存之中,不存在于任何实际设备之上这一特点,所以Linux内核分配给它一个特定的主设备号0以及一个特定的次设备号1,除此之外在外存上没有与之对应的i节点,所以系统也分配给它一个特殊的节点号PROC_ROOT_INO(值为1),而设备上的1号索引节点是保留不用的。这样可以得出判断一个文件是否属于proc文件系统的方法。得到该文件对应的inode结构
- d_inode;(2)if(d_inode->i_ino==PROC_ROOT_INO.&&!MAJO(d_inode->i_dev)&;MINOR(d_inode->i_dev)==1){该文件属于proc文件系统}
蜜罐技术在校园网中的应用,本文只为大家介绍了一部分,希望大家已经掌握以上的内容,在下一节中我们将会介绍此方案,希望大家多多掌握。下一篇:校园网中蜜罐技术应用方案 续
【编辑推荐】