基于Linux内核的文件系统监控研究

时间:2022-03-22 06:38:39

基于Linux内核的文件系统监控研究

摘 要

随着计算机的广泛应用和网络的迅速发展,对信息安全的要求越来越高。尤其是要保证磁盘中文件的安全,除此之外,数据库,注册表的安全性也不可忽略。因此,本文研究并设计了基于Linux内核的文件系统监控,从而能实时监控计算机对文件的各种操作,以此维护系统中的数据信息。

【关键词】文件系统 监控 虚拟文件层 中间层

1 引言

随着信息技术和计算机技术的飞速发展,计算机已广泛应用于科研,政府等重要机构。同时,与之带来的是数据安全隐患,同时也给企业内部的信息安全带来巨大的威胁。因此,国内外目前通过采取对文件系统的实时监控,从而降低信息安全的隐患。而现有的基于Linux 平台采用的文件系统监控技术多是挂钩系统实现,但是这种方式会存在一些缺陷,效率不够高,且监控信息冗余较多。针对当前存在的缺陷,本文将在 Linux 内核中的虚拟文件层和下层文件系统之间,设计一个中间层。它不仅能监控所有文件的操作,而且可以根据用户的要求过滤所需要的文件和数据信息,并在过滤操作完成之后,转发给下层文件系统操作。相比挂钩系统调用,该方法效率更高,监控信息也更加的全面。

2 虚拟文件层

Linux之所以能够成功,是因为它能够识别不同操作系统的不同类型的文件系统。我们可以将存放在Linux内核目录下的不同操作系统的不同文件类型的磁盘分区,并把针对不同文件系统的操作整合到同一个框架中,从而提供统一的文件操作接口,即虚拟文件层。虚拟文件层是一个抽象的内核软件层,可处理Linux 内核文件系统能够识别的所有系统调用,并且能为与之相应的不同的文件系统格式提供一个通用的接口。由于虚拟文件层主要由一组抽象的文件操作组成,因此该层可以向用户隐藏针对不同文件系统的各种实现细节,同时能够为用户提供一个文件系统操作界面,以及统一的文件操作接口。尽管虚拟文件层隐藏了相关的文件系统实现细节,然后它依然能够实现所有针对不同文件系统的相关操作,用户可以通过相关的系统调用完成对文件相应的操作,如 read()、write()、close(),然后再将这些系统调用转发到虚拟文件层中。之后系统调用的完成则不是由虚拟文件层进行操作,而是需要继续将系统调用转发,并由下层的文件系统来实现。

3 中间层

若要对基于Linux内核的文件系统进行监控,那么挂钩相关函数是必不可少的,也就是对文件系统或者内核代码进行相应的修改。然而我们知道,对文件系统或者内核的任何操作都是几乎不可能实现的。首先,我们是很难掌握到关于内核和文件系统的代码;其次,因为任何原因而可能出现的误操作都会严重破坏系统;因此,通过挂钩函数实现文件系统的监控必然是不可行的。

相比之下,虚拟文件层是文件系统一个抽象的内核软件层,通过提供统一的接口来实现转发操作,并屏蔽不同的文件系统所带来的实现细节问题。但考虑到虚拟文件层只负责文件系统调用的转发操作,无法实时的对文件系统进行监控,而我们又不能修改文件系统或者内核代码;基于上述原因,我们可以在虚拟文件层和具体文件系统层之间,自行设计并添加一个中间层,整体功能与虚拟文件层相近,新添加的中间层不仅可以实现系统调用的转发操作,被上层文件操作调用的同时进行调用下层的文件操作,还可以完成对文件系统的监控。该中间层通过向文件系统增加相应的特性,从而达到不需修改任何内核或文件系统的代码,便可实现对文件系统的监控。图1显示了增加中间层之后的文件系统架构。

中间层是利用 vnode堆叠技术设计的。vnode 是 UNIX 操作系统中虚拟文件系统表示一个文件或者目录的对象,任何操作系统能够识别的针对不同文件类型的操作均可通过vnode提供的接口进行访问。vnode接口抽象了Linux内核操作文件系统的具体细节,并形成虚拟文件层,之后由虚拟文件层负责转发对文件系统的一系列操作,从而达到隐藏对下层文件系统的具体操作细节的目的。

为了实现对文件系统的监控功能,我们可以利用vnode 的堆叠技术原理,在不改变内核和文件系统源代码的基础上,对 vnode 接口进行分层处理,实现对文件操作的两次堆叠。存在两个虚拟层,必然也就在内核和文件系统之间有两个vnode接口,其中上层接口是 虚拟文件层的抽象层,而下层接口则是需添加监控功能的抽象层。中间层的设计技术将在以前的vnode之下,实现一个新的 vnode接口。中间层实现的 vnode 接口通过vnode接口接收上层传递过来的系统调用,对包含的参数进行分析,然后将具体文件操作转发至下层具体文件系统,从而进行数据访问和文件操作。

4 结语

相比较于目前国内外针对Linux文件系统监控的研究现状,本文以vnode堆叠技术为基础,在虚拟文件层和下层具体系统之间设计出更为高效的中间层,以达到监控文件系统的目的。虚拟文件层通过提供统一的接口,隐藏了下层具体文件系统的操作信息。

参考文献

[1]Power R.2002 CSI/FBI Computer Crime and Security Survey[Z].San Francisco:AmericanComputer Security Institute,2002.

[2] Prasad Dabak,Hooking Windows NT System Services,1999.

作者单位

西北大学 陕西省西安市 710127

上一篇:通过新闻英语和影视英语教学提高大学生英语听... 下一篇:构建以专利为核心的科技大数据平台以促进创新...