一种基于hook技术的Unix白名单控制方法与流程

文档序号:12720886阅读:951来源:国知局
一种基于hook技术的Unix白名单控制方法与流程

本发明涉及计算机操作系统安全技术领域,特别涉及一种基于hook技术的Unix白名单控制方法。



背景技术:

随着云计算、大数据等新型技术的发展,对云主机和服务器的安全计算环境要求越来越高。安全的计算环境是云计算发展的基础,没有安全的计算环境就不能保证云端数据的安全性,没有安全的计算环境就不能保证云端业务的可持续性。软件白名单机制是构建安全计算环境的重要措施。

现有技术中,基于hook技术的Unix白名单控制方法,能够有效的解决Unix系统上软件白名单技术的实现机制及如何部署的问题。

Unix系统上可运行的二进制文件,通常有三种方式:1、可独立运行的可执行文件;2、SO文件,必须由可执行文件加载到自身的进程地址空间才能运行的动态库文件;3、KO文件,由进程加载到内核空间运行的驱动文件。但现有技术中,如果黑客或内部人员新增、修改、替换这三种类型文件中的任意一个,造成当前操作系统存在恶意文件,计算环境将不再安全。

基于上述问题,本发明提出了一种基于hook技术的Unix白名单控制方法。



技术实现要素:

本发明为了弥补现有技术的缺陷,提供了一种简单高效的基于hook技术的Unix白名单控制方法。

本发明是通过如下技术方案实现的:

一种基于hook技术的Unix白名单控制方法,其特征在于:在Unix系统上增加过滤驱动模块,所述过滤驱动模块采用内核驱动的方式实现,由白名单主服务进程安装并启动运行;所述过滤驱动模块在整个操作系统上控制非白名单中的进程启动,控制非白名单中的动态库加载,控制非白名单中的驱动加载,控制二进制文件添加,控制白名单中的二进制文件被写入、覆盖、替换、删除和重命名,使操作系统保持干净、安全的运行环境。

所述白名单主服务进程采用Unix应用程序的方式实现,白名单主服务进程在初始化时安装过滤驱动模块,同时扫描操作系统上的所有ELF文件,将各个ELF文件的全路径和文件内容的SHA1值提交给过滤驱动模块,添加到驱动的白名单清单中,建立白名单清单链表。

当接收到进程启动,动态库加载和/或驱动加载访问请求时,所述过滤驱动模块首先获取访问请求的二进制文件全路径和SHA1值,然后遍历自身的白名单清单链表,判断ELF文件映射是否允许,如果是白名单清单中的二进制文件,则将访问传递到原系统调用,操作系统正常完成ELF文件映射;如果不是白名单清单中的二进制文件,则将访问过程阻止,操作系统映射ELF文件失败,从而使得对应的进程无法启动,动态库无法加载,驱动无法加载。

操作系统运行期间,所述过滤驱动模块拦截文件创建行为,禁止创建二进制文件;操作系统运行期间所有针对白名单清单链表中的二进制文件的写入、覆盖、替换、删除、重命名,都将被所述过滤驱动模块拦截后予以拒绝。

当接收到二进制文件的写入、覆盖、替换、删除、重命名访问请求时,所述过滤驱动模块首先获取访问请求的二进制文件全路径和SHA1值,然后遍历自身的白名单清单链表,如果访问请求针对的是白名单清单中的二进制文件,则将访问过程阻止,使二进制文件的写入、覆盖、替换、删除、重命名操作失败;如果访问请求针对的不是白名单清单中的二进制文件,则将访问传递到原系统调用,操作系统正常完成二进制文件的写入、覆盖、替换、删除、重命名操作。

为了安全起见,所述白名单主服务进程初次启动在操作系统刚刚安装/配置完成且网络断开的情况下进行;所述白名单主服务进程主动退出时,从当前操作系统中卸载过滤驱动模块和自身。

本发明的有益效果是:该基于hook技术的Unix白名单控制方法,能够禁止非白名单清单中的进程启动,禁止非白名单清单中的动态库和驱动加载,同时又能保证白名单清单中的进程文件、动态库文件和驱动文件不被非法写入、覆盖、替换、删除和重命名,保证当前操作系统不再新建二进制文件,从而建立一个安全的操作系统计算环境。

附图说明

附图1为本发明控制进程启动,动态库加载和/或驱动加载流程示意图。

附图2为本发明控制二进制文件的写入、覆盖、替换、删除、重命名流程示意图。

具体实施方式

为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图和实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

该基于hook技术的Unix白名单控制方法,在Unix系统上增加过滤驱动模块,所述过滤驱动模块采用内核驱动的方式实现,由白名单主服务进程安装并启动运行;所述过滤驱动模块在整个操作系统上控制非白名单中的进程启动,控制非白名单中的动态库加载,控制非白名单中的驱动加载,控制二进制文件添加,控制白名单中的二进制文件被写入、覆盖、替换、删除和重命名,使操作系统保持干净、安全的运行环境。

在Unix操作系统中,可执行文件、动态库文件(SO文件)和驱动文件(KO文件)都是ELF格式的文件。不管是进程启动,是动态库加载,还是驱动加载,都要由操作系统将ELF文件映射到内存。在操作系统运行期间,发生ELF文件映射行为时,例如:A进程要启动B进程、A进程要加载B动态库、进程要加载驱动,会自动进入过滤驱动模块。

所述白名单主服务进程采用Unix应用程序的方式实现,白名单主服务进程在初始化时安装过滤驱动模块,同时扫描操作系统上的所有ELF文件,将各个ELF文件的全路径和文件内容的SHA1值提交给过滤驱动模块,添加到驱动的白名单清单中,建立白名单清单链表。

当接收到进程启动,动态库加载和/或驱动加载访问请求时,所述过滤驱动模块首先获取访问请求的二进制文件全路径和SHA1值,然后遍历自身的白名单清单链表,判断ELF文件映射是否允许,如果是白名单清单中的二进制文件,则将访问传递到原系统调用,操作系统正常完成ELF文件映射;如果不是白名单清单中的二进制文件,则将访问过程阻止,操作系统映射ELF文件失败,从而使得对应的进程无法启动,动态库无法加载,驱动无法加载。

操作系统运行期间,所述过滤驱动模块拦截文件创建行为,禁止创建二进制文件;操作系统运行期间所有针对白名单清单链表中的二进制文件的写入、覆盖、替换、删除、重命名,都将被所述过滤驱动模块拦截后予以拒绝。

当接收到二进制文件的写入、覆盖、替换、删除、重命名访问请求时,所述过滤驱动模块首先获取访问请求的二进制文件全路径和SHA1值,然后遍历自身的白名单清单链表,如果访问请求针对的是白名单清单中的二进制文件,则将访问过程阻止,使二进制文件的写入、覆盖、替换、删除、重命名操作失败;如果访问请求针对的不是白名单清单中的二进制文件,则将访问传递到原系统调用,操作系统正常完成二进制文件的写入、覆盖、替换、删除、重命名操作。

为了安全起见,所述白名单主服务进程初次启动在操作系统刚刚安装/配置完成且网络断开的情况下进行;所述白名单主服务进程主动退出时,从当前操作系统中卸载过滤驱动模块和自身。

该基于hook技术的Unix白名单控制方法,通过在现有Unix操作系统上增加过滤驱动模块,干预操作系统的文件访问操作,从而避免非清单进程启动、非清单动态库加载、非清单驱动加载。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1