在Linux系统中执行操作的方法

文档序号:6380505阅读:179来源:国知局
专利名称:在Linux系统中执行操作的方法
技术领域
本发明基本上涉及服务器领域,更具体地来说,涉及一种在Linux系统中执行操作的方法。
背景技术
随着网络技术的发展,孤立节点计算逐步被网络计算所取代。智能手机等小型计算设备逐步融入网络之中,与外界发生频繁数据交换。这为计算机病毒的传播提供了条件。根据CERT/CC的报告,当前针对计算机的主要攻击方法中,木马和病毒占据了重要席位,对计算机用户构成最主要的安全威胁。 Linux操作系统通常是作为服务器操作系统使用,具有应用程序种类与变化较少的特点。本文为以此为前提,提出一种基于LSM(Linux Securitymodule)的可执行程序控制方法,能有有效地监测程序的执行,保护操作系统安全。LSM是Linux内核的一个通用访问控制框架。它使得各种不同的安全访问控制模型能够以Linux可加载内核模块的形式实现。许多著名的访问控制系统已经移植到LSM下,包括P0SIX. Ie Capability、SELinux等。目前LSM已经被正式纳入Linux 2. 6系列内核中,成为实现Linux内核机制的接口标准。本方法以LSM的钩子函数(Hook函数)作为检查点,实施程序访问控制。业内知名的Sel inux功能众多同时配置复杂,超过了大多数服务器管理员的工作能力,在普通的服务器环境中极少采用。而P0SIX. Ie Capability目前仅仅被继承在了SUSE操作系统中,并没有在整个Linux体系中采用。

发明内容
为了克服上述缺陷,本发明提出了一种在Linux系统中执行操作的方法,解决了如何在Linux系统中更安全地执行操作的技术问题。本发明公开了一种在Linux系统中执行操作的方法,包括步骤SI :向所述Linux系统发送对程序文件执行操作的请求;步骤S2 :所述Linux系统通过调用实现了 Linux安全模块(LSM)的第一钩子函数,将所述程序文件的内容与白名单中的内容相比对;以及步骤S3 :根据比对结果,判断是否对所述程序文件执行所述操作。优选地,所述步骤S2包括将所述程序文件的内容与白名单中的内容相比对包括将所述程序文件的哈希值与白名单中的哈希值相比对。优选地,对程序文件执行操作包括执行所述程序文件。优选地,对程序文件执行操作包括修改所述程序文件。优选地,所述步骤S3包括如果所述白名单中存在所述程序文件的哈希值,则执行所述程序文件。优选地,所述步骤S3包括如果所述白名单中不存在所述程序文件的哈希值,则修改所述程序文件。
优选地,在所述步骤SI之后和所述步骤S2之前,所述方法还包括所述Linux系统加载所述程序文件。优选地,在所述步骤S3之后,所述方法还包括所述Linux系统通过调用实现了Linux安全模块(LSM)的第二钩子函数,来更新所述白名单。优选地,所述步骤S3还包括在所述程序文件的内核数据结构中生成标识,并且在所述步骤S3之后,所述方法还包括步骤S4 :再次向所述Linux系统发送执行所述程序文件的请求;以及步骤S5 :如果在所述程序文件的内核数据结构中查找到所述标识,则执行所述程序文件。优选地,所述方法还包括通过程序注册与请求接口配置所述白名单。通过本发明所描述的在Linux系统中执行操作的方法,使得系统运行更加安全可 O


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中图I是根据本发明的在Linux系统中执行操作的方法的总体流程图;图2是根据本发明的在Linux系统中执行操作的方法的一个优选实施例的具体流程图;图3是根据本发明的在Linux系统中执行操作的方法的另一个优选实施例的具体流程图;图4是根据本发明的在Linux系统中执行操作的方法的又一个优选实施例的具体流程图;图5是实现本发明的在Linux系统中执行操作的方法的程序执行控制框架的示意图。
具体实施例方式下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。图I是根据本发明的在Linux系统中执行操作的方法的总体流程图。在图I中步骤SlOO 向Linux系统发送对程序文件执行操作的请求。步骤S102 :Linux系统通过调用实现了 Linux安全模块(LSM)的第一钩子函数,将程序文件的内容与白名单中的内容相比对。步骤S104 :根据比对结果,判断是否对程序文件执行操作。其中,对程序文件执行操作包括但不限于执行程序文件和修改程序文件。在步骤SlOO之后,步骤S102之前,本实施例还可以包括=Linux系统加载该程序文件。并且在步骤S104之后,本实施例还可以包括=Linux系统通过调用实现了 Linux安全模块(LSM)的第二钩子函数,来更新白名单。优选地,该方法还包括通过程序注册与请求接口配置白名单。白名单中的程序文件为可以执行并且需要保护的文件,因此,只有当该白名单中存在该程序文件,该文件才是安全的,才可以执行。而只要该白名单中存在该程序文件,该文件就是需要保护的,就不能进行修改。通过本实施例所描述的执行程序文件的方法,通过内核态实现,可以有效地监控每一个可执行程序;通过白名单机制,简单可靠,避免了杀毒软件特征判断带来的误判。适用于服务器环境。对程序的整体影响小,只在程序初次加载时判断,可以避免频繁检测带来的性能损耗。图2是根据本发明的在Linux系统中执行操作的方法的一个优选实施例的具体流程图。在图2中示出了当需要执行程序文件时的具体流程图。在图2中步骤S200 向Linux系统发送执行程序文件的请求。步骤S202 :将程序文件的哈希值与白名单中的哈希值相比对。步骤S204 :如果白名单中存在程序文件的哈希值,则执行程序文件 换言之,本实施例通过哈希值判断所要执行的程序文件是否是白名单中允许执行的程序文件,如果该程序文件的哈希值存在于白名单中,则执行该程序文件,反之则不执行。通过本实施例所描述的方法,通过内核态实现,可以有效地监控每一个可执行程序;通过白名单机制,简单可靠,避免了杀毒软件特征判断带来的误判。适用于服务器环境。对程序的整体影响小,只在程序初次加载时判断,可以避免频繁检测带来的性能损耗。图3是根据本发明的在Linux系统中执行操作的方法的另一个优选实施例的具体流程图。步骤S300 向Linux系统发送修改程序文件的请求。步骤S302 :将程序文件的哈希值与白名单中的哈希值相比对。步骤S304 :如果白名单中不存在程序文件的哈希值,则修改程序文件。换言之,本实施例通过哈希值判断所要修改的程序文件是否是白名单中需要保护的程序文件,如果该程序文件的哈希值不存在于白名单中,则修改该程序文件,反之则不进行修改。通过本实施例所描述的修改程序文件的方法,通过内核态实现,可以有效地监控每一个可执行程序;通过白名单机制,简单可靠,避免了杀毒软件特征判断带来的误判。适用于服务器环境。对程序的整体影响小,只在程序初次加载时判断,可以避免频繁检测带来的性能损耗。图4是根据本发明的在Linux系统中执行操作的方法的又一个优选实施例的具体流程图。在图4中步骤S400 向Linux系统发送执行程序文件的请求。步骤S402 :Linux系统通过调用实现了 Linux安全模块(LSM)的第一钩子函数,将程序文件的内容与白名单中的内容相比对。步骤S404:如果白名单中存在程序文件的哈希值,则执行该程序文件,并且在程序文件的内核数据结构中生成标识。步骤S406 :再次向Linux系统发送执行该程序文件的请求。步骤S408 :如果在程序文件的内核数据结构中查找到该标识,则执行该程序文件。
通过本优选实施例,可以将通过了白名单校验的程序文件中生成标识,从而在下次再请求执行该程序文件时,就不用再次进行白名单校验而直接执行了。这样,除了上述效果之外,本优选实施例还能够简化校验过程,节省资源。以下将通过几个实例来描述本发明。其中,图5是实现本发明的在Linux系统中执行操作的方法的程序执行控制框架的示意图。本发明为可执行程序建立白名单,白名单的内容是可执行程序文件内容的哈希值。通过程序修改与执行时比对白名单,达到控制系统内可执行程序的目的。同时,为了避免可执行程序控制收到篡改,提高系统的可用性,也对程序的修改进行了控制。实现方式是在操作系统的内核态注册LSM(Linux Security module)的实现模块,该模块实现LSM(Linux Securitymodule)提供的与可执行程序加载、文件修改相关的钩子函数,在内核态程序文件的执行与修改过程进行控制。同时,在用户态提供了程序注册与删除的工具,便于管理原使用。在可执行程序加载时,读取程序内容进行校验,并与白名单进行比对,只有比对通过的程序才许可执行。并在程序文件的内核数据结构中予以标记。当程序再次执行时,检查标记即可。在修改文件时,对文件进行白名单比对,如果文件在白名单中,说明这是 一个应受到的保护的程序文件,拒绝修改。仅有拥有特定角色的主体可以继续操作。操作完成后主动更新白名单。此外,本实例还提供了程序的注册与请求接口,可以灵活的配置白名单。通过本实例,通过内核态实现,可以有效地监控每一个可执行程序;通过白名单机制,简单可靠,避免了杀毒软件特征判断带来的误判。适用于服务器环境。对程序的整体影响小,只在程序初次加载时判断,可以避免频繁检测带来的性能损耗。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在Linux系统中执行操作的方法,其特征在于,包括步骤SI 向所述Linux系统发送对程序文件执行操作的请求;步骤S2:所述Linux系统通过调用实现了 Linux安全模块(LSM)的第一钩子函数,将所述程序文件的内容与白名单中的内容相比对;以及步骤S3 :根据比对结果,判断是否对所述程序文件执行所述操作。
2.根据权利要求I所述的在Linux系统中执行操作的方法,其特征在于,所述步骤S2 包括将所述程序文件的内容与白名单中的内容相比对包括将所述程序文件的哈希值与白名单中的哈希值相比对。
3.根据权利要求2所述的在Linux系统中执行操作的方法,其特征在于,对程序文件执行操作包括执行所述程序文件。
4.根据权利要求2所述的在Linux系统中执行操作的方法,其特征在于,对程序文件执行操作包括修改所述程序文件。
5.根据权利要求3所述的在Linux系统中执行操作的方法,其特征在于,所述步骤S3 包括如果所述白名单中存在所述程序文件的哈希值,则执行所述程序文件。
6.根据权利要求4所述的在Linux系统中执行操作的方法,其特征在于,所述步骤S3 包括如果所述白名单中不存在所述程序文件的哈希值,则修改所述程序文件。
7.根据权利要求I所述的在Linux系统中执行操作的方法,其特征在于,在所述步骤S I之后和所述步骤S2之前,所述方法还包括所述Linux系统加载所述程序文件。
8.根据权利要求7所述的在Linux系统中执行操作的方法,其特征在于,在所述步骤 S3之后,所述方法还包括所述Linux系统通过调用实现了 Linux安全模块(LSM)的第二钩子函数,来更新所述白名单。
9.根据权利要求5所述的在Linux系统中执行操作的方法,其特征在于,所述步骤S3 还包括在所述程序文件的内核数据结构中生成标识,并且在所述步骤S3之后,所述方法还包括步骤S4 :再次向所述Linux系统发送执行所述程序文件的请求;以及步骤S5 :如果在所述程序文件的内核数据结构中查找到所述标识,则执行所述程序文件。
10.根据权利要求1-9中的任一项所述的在Linux系统中执行操作的方法,其特征在于,所述方法还包括通过程序注册与请求接口配置所述白名单。
全文摘要
本发明公开了一种在Linux系统中执行操作的方法,包括向Linux系统发送对程序文件执行操作的请求;Linux系统通过调用实现了Linux安全模块(LSM)的第一钩子函数,将程序文件的内容与白名单中的内容相比对;以及根据比对结果,判断是否对程序文件执行操作。通过本实施例所描述的执行程序文件的方法,通过内核态实现,可以有效地监控每一个可执行程序;通过白名单机制,简单可靠,避免了杀毒软件特征判断带来的误判。适用于服务器环境。对程序的整体影响小,只在程序初次加载时判断,可以避免频繁检测带来的性能损耗。
文档编号G06F21/52GK102930202SQ20121043653
公开日2013年2月13日 申请日期2012年11月5日 优先权日2012年11月5日
发明者姜国梁, 付根希, 彭成, 杨浩, 苗艳超 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1