基于linux平台下文件隐藏技术的研究 |
|
|
论文联盟*编辑。 摘要:本文从应用层用户使用的终端命令出发,跟踪其使用的系统调用,在深入分析与虚拟文件系统相关的系统调用原理上,对在虚拟文件系统层级的文件隐藏方法进行了研究。 关键词:文件隐藏 虚拟文件系统 系统调用 Linux操作系统由于其高效,稳定,网络功能强大等特点在当今的服务器及智能手机操作系统(基于linux内核)上占据着大部分份额。然而,正是由于其应用广泛,导致其安全问题日益突出。目前大部分后门程序运行在内核层级上,比传统级如应用层级的后门程序更复杂强大,且很难发现,对Linux系统安全造成极大的威胁。本文分析了与Linux虚拟文件系统相关的系统调用实现原理,研究一种通过更改读取目录函数的指针来实现隐藏文件的方法,掌握其实现原理,对提高系统安全有重要意义。 1.虚拟文件系统 虚拟文件系统是一个内核的软件层,用来处理与unix标准文件系统相关的所有系统调用,其为各种文件系统提供了一个通用的文件界面。虚拟文件系统对文件系统共有的内核上层及底层部分进行了处理,在上层处理如:文件路径的查找,文件的读写操作从用户控件向下传递到具体文件系统部分;在底层进行各种缓存的处理,如块缓存。VFS的对象主要有super_block(超级块对象),inode(索引节点对象),file(文件对象),dentry(目录项对象)。以用户在应用层如终端输入ls命令为例,需要列出某个磁盘文件夹中(实际文件系统为ext3)所含具体文件列表。此命令将被分解为系统调用,系统调用通过软中断的形式进入内核空间,遍历虚拟文件系统的VFS文件节点(inode),而VFS节点指向了具体的文件系统的节点,通过底层块IO函数调用IDE接口,再通过块驱动程序访问块设备,取得具体文件目录。整个文件系统的流程如图1: 图1 文件系统运行流程图 2.原理分析 通常用户层会利用ls,find等命令来查看某个目录下所有文件(包括目录文件)。利用strace跟踪ls命令,发现相关信息如下: open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 … ge [1] [2] [3] 下一页 |
|
|
|
上一个论文: 农林牧渔:行业景气回落 下一个论文: Linux与Windows的安全性能比较 |
|