Linux文件操作控制方法及装置与流程

文档序号:12467704阅读:188来源:国知局
Linux文件操作控制方法及装置与流程

本发明涉及信息安全技术领域,特别是涉及一种Linux文件操作控制方法及装置。



背景技术:

在Linux系统中,如何保证文件操作的安全性,从而进一保证内部网络或整个系统的安全性,是信息安全技术领域的重要课题。目前,Linux下常用的进行文件操作控制的方法,一般通过对文件的操作权限进行管理,为文件的操作进行安全保护。现有的针对Linux系统下的文件操作的方法,基本上利用Inotify应用来控制文件操作,如文件的添加、删除和修改等,针对所有使用Linux系统的程序统一监控文件操作,尤其对具有超级用户权限的用户,无法控制其进行文件操作,更无法针对应用程序对Linux系统文件操作进行控制。



技术实现要素:

基于此,有必要针对无法针对应用程序对Linux系统文件操作进行控制的问题,提供一种Linux文件操作控制方法,所述方法包括:

接收应用程序的运行命令,并获取应用程序的标识;

加载预设的劫持函数库和动态库;

运行所述应用程序并识别所述应用程序中的文件操作函数;

根据所述文件操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系;若查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的文件操作函数。

在其中一个实施例中,所述劫持函数库的绝对路径保存在后台入口文件中。

在其中一个实施例中,所述根据所述劫持函数的运行结果判断是否调用所述动态库中的文件操作函数,包括:

获取所述文件操作函数中的文件信息;

根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述文件操作函数。

在其中一个实施例中,所述调用外部服务程序,包括:

查找预设的控制文件库;

所述根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述文件操作函数,包括:

根据所述文件信息,查找预设的控制文件库,若预设的控制文件库的查找结果为禁止执行所述文件操作函数,则不执行所述文件操作函数;

若预设的控制文件库的查找结果为不禁止执行所述文件操作函数,则调用所述动态库中的文件操作函数。

在其中一个实施例中,所述方法还包括:

若预设的控制文件库的查找结果为不禁止执行所述文件操作函数且监控所述文件操作函数,则调用所述动态库中的文件操作函数,并对所述文件操作函数进行监控。

本发明所提供的Linux文件操作控制方法,通过劫持应用程序的文件操作函数,并通过劫持函数的运行结果判断是否运行所述文件操作函数,能够在Linux系统中针对不同的应用程序对文件操作进行控制,提高文件操作控制的灵活性。

在其中一个实施例中,本发明所提供的Linux文件操作控制方法,能够通过外部服务程序对需要进行控制的应用程序进行定义及维护,提供了灵活方便的针对Linux系统文件操作的控制。

本发明还提供一种Linux文件操作控制装置,包括:

应用程序接收模块,用于接收应用程序的运行命令,并获取应用程序的标识;

函数加载模块,用于加载预设的劫持函数库和动态库;

函数识别模块,用于运行所述应用程序并识别所述应用程序中的文件操作函数;

操作控制模块,用于根据所述文件操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系;若查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的文件操作函数。

在其中一个实施例中,函数加载模块,用于加载预设的劫持函数库,且所述劫持函数库的绝对路径保存在后台入口文件中。

在其中一个实施例中,所述操作控制模块,包括:

文件信息获取单元,用于获取所述文件操作函数中的文件信息;

操作控制单元,用于根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述文件操作函数。

在其中一个实施例中,所述调用外部服务程序,包括:查找预设的控制文件库;

所述操作控制单元,用于根据所述文件信息,查找预设的控制文件库,若预设的控制文件库的查找结果为禁止执行所述文件操作函数,则不执行所述文件操作函数;若预设的控制文件库的查找结果为不禁止执行所述文件操作函数,则调用所述动态库中的文件操作函数。

在其中一个实施例中,所述操作控制单元,还用于若预设的控制文件库的查找结果为不禁止执行所述文件操作函数且监控所述文件操作函数,则调用所述动态库中的文件操作函数,并对所述文件操作函数进行监控。

本发明所提供的Linux文件操作控制装置,通过劫持应用程序的文件操作函数,并通过劫持函数的运行结果判断是否运行所述文件操作函数,能够在Linux系统中针对不同的应用程序对文件操作进行控制,提高文件操作控制的灵活性。

在其中一个实施例中,本发明所提供的Linux文件操作控制装置能够通过外部服务程序对需要进行控制的应用程序进行定义及维护,提供了灵活方便的针对Linux系统文件操作的控制。

附图说明

图1为一个实施例中的Linux文件操作控制方法的流程图;

图2为一个实施例中的Linux文件操作控制方法中劫持库的位置示意图;

图3为另一个实施例中的Linux文件操作控制方法的流程图;

图4为又一个实施例中的Linux文件操作控制方法的流程图;

图5为一个实施例中的Linux文件操作控制装置的结构图;

图6为另一个实施例中的Linux文件操作控制装置的结构图。

具体实施方式

图1为一个实施例中的Linux文件操作控制方法的流程图,如图1所示的一个实施例中的Linux文件操作控制方法,包括:

步骤S100,接收应用程序的运行命令,并获取应用程序的标识。

具体的,所述应用程序的标识是指用于区分不同应用程序的记号,或区分不同应用程序的特征的标记,包括应用程序的程序类别、名称、版本号中的任意一种。

步骤S200,加载预设的劫持函数库和动态库。

具体的,所述预设的劫持函数库,包括open系列函数,close函数,create系列函数,read函数,write函数等。

系统首先加载所述劫持函数库,再加载动态库,即常用的C库。

如图2所示,本实施例所提供的劫持库,加载后在Linux系统中位置。在用户应用层之下,劫持库位于动态库更加靠近用户应用层的位置,以表示劫持库中的劫持函数优先被调用,如劫持库中没有相应的劫持函数,则调用动态库中的函数。图2中,劫持库和动态库都连接到Linux底层的内核部分。不再赘述。

步骤S300,运行所述应用程序并识别所述应用程序中的文件操作函数。

具体的,运行所述应用程序后,对程序中的网路访问函数进行识别,当识别到文件操作函数时,即进行后续步骤S400。

步骤S400,根据所述文件操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系;若查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的文件操作函数。

具体的所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系,所述劫持函数包括禁止运行所述文件操作函数。例如,当设定某个应用程序A的文件操作函数open为需要被禁止时,所述应用程序A的文件操作函数open在所述劫持函数库中,对应结果为禁止所述应用程序A的文件操作函数open。

进一步的,还可以对应用程序中文件操作函数所操作的文件进行控制,如,可以设定应用程序A的文件操作函数open,可以打开文件1,但不能打开文件2,从而更加灵活的实现文件操作控制。

根据所述文件操作函数和所述标识查找所述劫持函数库时,当所述文件操作函数和所述标识在所述劫持函数库中,存在与劫持函数之间的对应关系时,所述应用程序的文件操作函数需要被劫持,在调用动态库中的文件操作函数的同时,运行所述应用程序和文件操作函数对应的劫持函数,并根据所述劫持函数的运行结果,判断是否对所述应用程序的文件操作函数进行控制,所述的控制包括禁止运行等。所述劫持函数的运行结果,还包括运行外部服务程序等,根据外部服务程序的运行结果进行判断。

本实施例所提供的Linux文件操作控制方法,通过劫持应用程序的文件操作函数,并通过劫持函数的运行结果判断是否运行所述文件操作函数,能够在Linux系统中针对不同的应用程序对文件操作进行控制,提高文件操作控制的灵活性。在其中一个实施例中,若未查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则调用所述动态库中的文件操作函数。

具体的,当所述文件操作函数和所述标识在所述劫持函数库中,不存在与劫持函数之间的对应关系时,即,在所述劫持函数库中查找不到时,运行所述动态库中的文件操作函数。

在其中一个实施例中,所述的劫持函数库,绝对路径保存在后台入口文件中,即,保存在/etc/ld.so.preload文件中。

本实施例所提供的Linux文件操作控制方法,将所述的劫持函数库保存在后台入口文件中,可以保证所述劫持函数库先于动态库添加,进一步提高针对不同应用程序的文件操作控制的效率。

图3为另一个实施例中的Linux文件操作控制方法的流程图,是图2所示的方法流程中步骤S400的具体的实施例,如图3所示的文件操作控制方法,包括:

步骤S410,获取所述文件操作函数中的文件信息。

具体的,获取所述文件操作函数中的文件信息,包括文件的绝对路径、文件名等信息。

步骤S420,根据所述文件信息,查找预设的控制文件库,若预设的控制文件库的查找结果为禁止执行所述文件操作函数,则不执行所述文件操作函数;若预设的控制文件库的查找结果为不禁止执行所述文件操作函数,则调用所述动态库中的文件操作函数。

具体的,所述预设的控制文件库,可以为白名单性质的控制文件库,也可以为黑名单性质的控制文件库,可根据实际需要选用即可。

通过所述的控制文件库,可以实现针对特定的应用程序和特定的文件操作的不同组合情况,分别进行控制,如针对应用程序A进行文件操作时,禁止其操作文件1和文件2,但不禁止其操作文件3和文件4。

本实施例给出是否对应用程序的文件操作函数进行控制的结果,当给出的结果为需要进行控制时,可通过调用外部程序的方式实现控制。

本实施例所提供的Linux文件操作控制方法,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的文件操作进行选择性的控制,提高了文件操作控制的灵活性和针对性。

图4为又一个实施例中的Linux文件操作控制方法的流程图;图4是图2所示的方法流程中步骤S400的另一个具体的实施例,如图4所示的文件操作控制方法,包括:

步骤S410,获取所述文件操作函数中的文件信息。

步骤S420’,根据所述文件信息,查找预设的控制文件库,若预设的控制文件库的查找结果为不禁止执行所述文件操作函数且监控所述文件操作函数,则调用所述动态库中的文件操作函数,并对所述文件操作函数进行监控。

具体的,在通过所述的控制文件库,可以实现针对特定的应用程序和特定的文件操作的不同组合情况,分别进行控制的同时,本实施例给出对需要进行控制的文件操作函数进行控制的判断的同时,记录文件操作日志,不需要调用外部程序记录文件操作日志。

本实施例所提供的Linux文件操作控制方法,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的文件操作进行选择性的控制,并记录访问访问日志,提高了文件操作控制的灵活性和针对性。

图5为一个实施例中的Linux文件操作控制装置的结构图,如图5所示的Linux文件操作控制装置,包括:

应用程序接收模块100,用于接收应用程序的运行命令,并获取应用程序的标识;

函数加载模块200,用于加载预设的劫持函数库和动态库;用于加载预设的劫持函数库,且所述劫持函数库的绝对路径保存在后台入口文件中。

函数识别模块300,用于运行所述应用程序并识别所述应用程序中的文件操作函数;

操作控制模块400,用于根据所述文件操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系;若查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则根据所述劫持函数的运行结果判断是否调用所述动态库中的文件操作函数;还用于若未查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,则调用所述动态库中的文件操作函数。。

本实施例本实施例所提供的Linux文件操作控制装置,通过劫持应用程序的文件操作函数,并通过劫持函数的运行结果判断是否运行所述文件操作函数,能够在Linux系统中针对不同的应用程序对文件操作进行控制,提高文件操作控制的灵活性。

图6为另一个实施例中的Linux文件操作控制装置的结构图,如图6所示的Linux文件操作控制装置,包括:

文件信息获取单元410,用于获取所述文件操作函数中的文件信息,

操作控制单元420,用于根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述文件操作函数;用于根据所述文件信息,查找预设的控制文件库,若预设的控制文件库的查找结果为禁止执行所述文件操作函数,则不执行所述文件操作函数;若预设的控制文件库的查找结果为不禁止执行所述文件操作函数,则调用所述动态库中的文件操作函数;还用于若预设的控制文件库的查找结果为不禁止执行所述文件操作函数且监控所述文件操作函数,则调用所述动态库中的文件操作函数,并对所述文件操作函数进行监控。

本实施例所提供的Linux文件操作控制装置,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的文件操作进行选择性的控制,并记录文件操作日志,提高了文件操作控制的灵活性和针对性。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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