本发明涉及信息安全技术领域,特别是涉及一种Linux实时杀毒的方法及装置。
背景技术:
在Linux系统中,如何保证文件操作的安全性,从而保证内部网络或整个系统的安全性,是信息安全技术领域的重要课题。
目前,Linux下常用的文件杀毒的方法包括用户选择杀毒和人为设定定时杀毒等方法,只有在用户选择使用杀毒软件主动查杀,或者到了用户设定的杀毒周期的情况下,才能对文件进行杀毒,不能保证系统中文件的安全性。如果在程序运行中,被应用程序调用的文件没有及时杀毒,或者如果Linux系统长时间没有查杀病毒,整个系统的安全更加得不到保障。
技术实现要素:
基于此,有必要针对无法针对应用程序对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实时杀毒装置的结构图;
图7为另一个实施例中的Linux实时杀毒装置的结构图;
图8为又一个实施例中的Linux实时杀毒装置的结构图。
具体实施方式
图1为一个实施例中的Linux实时杀毒方法的流程图,如图1所示的一个实施例中的Linux实时杀毒方法,包括:
步骤S100,接收应用程序的运行命令,并获取应用程序的标识。
具体的,所述应用程序的标识是指用于区分不同应用程序的记号,或区分不同应用程序的特征的标记,包括应用程序的程序类别、名称、版本号中的任意一种。
步骤S200,加载预设的劫持函数库和动态库。
具体的,所述预设的劫持函数库,包括open系列函数,close函数,create系列函数,read函数,write函数等。
系统首先加载所述劫持函数库,再加载动态库,即常用的C库。
如图2所示,本实施例所提供的劫持库,加载后在Linux系统中位置。在用户应用层之下,劫持库位于动态库更加靠近用户应用层的位置,以表示劫持库中的劫持函数优先被调用,如劫持库中没有相应的劫持函数,则调用动态库中的函数。图2中,劫持库和动态库都连接到Linux底层的内核部分。不再赘述。
步骤S300,运行所述应用程序并识别所述应用程序中的文件操作函数。
具体的,运行所述应用程序后,对程序中的文件操作函数进行识别,当识别到文件操作函数时,即进行后续步骤S400。
步骤S400,根据所述应用程序的标识、所述文件操作函数查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系,若未查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,调用所述动态库中的文件操作函数;若查找到,
则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否对所述文件操作函数操作的文件进行杀毒,并根据所述文件的杀毒结果判断是否运行所述动态库中的文件操作函数。
具体的,所述劫持函数库包括所述文件操作函数和所述应用程序的标识与劫持函数之间的对应关系。例如,当设定应用程序A的文件操作函数open操作的文件需要根据所述劫持函数的运行结果判断是否需要杀毒时,所述应用程序A的文件操作函数open在所述劫持函数库中。如劫持函数的运行结果为所述文件不是病毒文件,则调用动态库中的文件操作函数,如劫持函数的运行结果为所述文件是病毒文件,则对文件进行杀毒,并根据杀毒的结果进一步判断是否调用动态库中的文件操作函数。
本发明所提供的Linux实时杀毒方法,能够在Linux系统中针对不同的应用程序,通过劫持所述应用程序调用的文件操作函数,并根据所述劫持函数的运行判断是否运行所述文件操作函数,通过劫持函数的运行对文件操作函数所操作的文件进行杀毒,提高了文件杀毒的灵活性和实时性。
在其中一个实施例中,所述的劫持函数库,绝对路径保存在后台入口文件中,即,保存在/etc/ld.so.preload文件中。本实施例所提供的Linux实时杀毒方法,将所述的劫持函数库保存在后台入口文件中,可以保证所述劫持函数库先于动态库添加,进一步提高针对不同应用程序的文件杀毒的效率。
图3为另一个实施例中的Linux实时杀毒方法的流程图,是图2所示的方法流程中步骤S400的具体的实施例,如图3所示的文件操作监控方法,包括:
步骤S410,获取所述文件操作函数中的文件信息。
具体的,获取所述文件操作函数中的文件信息,包括文件的绝对路径,文件名等信息。
步骤S420,根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否对所述文件进行杀毒。
具体的,所述调用外部服务程序,包括根据文件信息对所述文件是否是病毒文件进行确定,并根据外部程序的运行结果判断是否对所述文件进行杀毒。
通过对文件信息、应用程序的组合设定,可以实现对特定应用程序的特定文件操作函数所操作的文件进行杀毒。如指定应用程序A的文件操作函数open为需要进行病毒查杀的文件的操作函数,如根据文件操作函数open所打开的文件1调用外部服务程序,并根据外部服务程序的运行结果判断是否需要对文件1进行杀毒,如外部服务程序的运行结果为所述文件1为病毒文件,则所述劫持函数的运行结果为需要对所述文件1进行杀毒,并根据杀毒的结果判断是否运行动态库中的文件操作函数open;如外部服务程序的运行结果为所述文件1不是病毒文件,所述劫持函数的运行结果为不需要对文件1进行杀毒,调用动态库中的文件操作函数open即可。
本发明所提供Linux实时杀毒方法,能够通过外部服务程序对特定应用程序的特定文件操作函数所操作的文件进行杀毒的组合设定,提供了灵活方便的针对Linux系统文件的杀毒方法。
在其中一个实施例中,所述的劫持函数库,绝对路径保存在后台入口文件中,即,保存在/etc/ld.so.preload文件中。本实施例所提供的Linux实时杀毒方法,将所述的劫持函数库保存在后台入口文件中,可以保证所述劫持函数库先于动态库添加,进一步提高针对不同应用程序的文件杀毒的效率。
图4为又一个实施例中的Linux实时杀毒方法的流程图;图4是图2所示的方法流程中步骤S400的另一个具体的实施例,如图4所示的文件操作监控方法,包括:
步骤S410,获取所述文件操作函数中的文件信息。
具体的,获取所述文件操作函数中的文件信息,包括文件的绝对路径,文件名等信息。
步骤S420,根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否对所述文件进行杀毒。
步骤S430,当所述劫持函数的运行结果为需要对所述文件进行杀毒时,对所述文件进行隔离。
具体的,在对文件进行杀毒后,本实施例还进一步提供是否对文件进行隔离的判断选项。如判断结果为需要对文件进行隔离,则执行文件隔离步骤。如,当所述劫持函数的运行结果(调用外部服务程序后,外部服务程序的运行结果为所述文件是病毒文件)为需要对文件进行杀毒时,可进一步执行文件隔离的步骤。当所述劫持函数的运行结果为不需要对文件进行杀毒时,则不需要执行文件隔离。
本实施例所提供的Linux实时杀毒方法,在对文件进行应用程序调用实时杀毒的基础上,提供文件隔离,进一步提高文件的安全性,保证整个Linux系统的运行安全。
图5为再一个实施例中的Linux实时杀毒方法的流程图,如图5所示的Linux实时杀毒方法,包括:
步骤S410,获取所述文件操作函数中的文件信息。
步骤S420’,根据所述文件信息,查找预设的可信文件库,并根据所述可信文件库的查找结果判断是否查找所述病毒文件库。
具体的,所述可信文件库,可以采用黑名单或白名单的方式,给出不需要进行病毒查杀的可信文件,提高文件的查杀效率。
步骤S420,根据所述文件信息,查找预设的病毒文件库,并根据所述病毒文件库的查找结果判断是否对所述文件进行杀毒。
具体的,所述的病毒文件库,可根据需求进行实时的更新病毒,保证文件杀毒的准确率。
本实施例所提供的Linux实时杀毒方法,通过外部的可信文件库和病毒文件库,提供更加高效的Linux系统文件实时杀毒。
图6为一个实施例中的Linux实时杀毒装置的结构图,如图6所示的Linux实时杀毒装置包括:
应用程序接收模块100,用于接收应用程序的运行命令,并获取应用程序的标识;
函数库加载模块200,用于加载预设的劫持函数库和动态库;
函数识别模块300,用于运行所述应用程序并识别所述应用程序中的文件操作函数;
文件杀毒模块400,根据所述应用程序的标识、所述文件操作函数查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系,若未查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,调用所述动态库中的文件操作函数;若查找到,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否对所述文件操作函数操作的文件进行杀毒,并根据所述文件的杀毒结果判断是否运行所述动态库中的文件操作函数。
本发明所提供的Linux实时杀毒装置,能够在Linux系统中针对不同的应用程序,通过劫持所述应用程序调用的文件操作函数,并根据所述劫持函数的运行判断是否运行所述文件操作函数,通过劫持函数的运行对文件操作函数所操作的文件进行杀毒,提高了文件杀毒的灵活性和实时性。图7为另一个实施例中的Linux实时杀毒装置的结构图,如图7所示的Linux实时杀毒装置包括:
应用程序接收模块100,用于接收应用程序的运行命令,并获取应用程序的标识;
函数库加载模块200,用于加载预设的劫持函数库和动态库;
函数识别模块300,用于运行所述应用程序并识别所述应用程序中的文件操作函数;
文件杀毒模块400,用于根据所述应用程序的标识、所述文件操作函数查找所述劫持函数库,所述劫持函数库包括所述文件操作函数、所述应用程序的标识和劫持函数之间的对应关系,若未查找到与所述文件操作函数和所述应用程序的标识对应的劫持函数,调用所述动态库中的文件操作函数;若查找到,则根据所述劫持函数的运行结果判断是否对所述文件操作函数操作的文件进行杀毒,并根据所述文件的杀毒结果判断是否运行所述动态库中的文件操作函数。
文件隔离模块500,用于当所述劫持函数的运行结果为需要对所述文件进行杀毒时,对所述文件进行隔离。
本实施例所提供的Linux实时杀毒装置,在对文件进行应用程序调用实时杀毒的基础上,提供文件隔离,进一步提高文件的安全性,保证整个Linux系统的运行安全。
图8为又一个实施例中的Linux实时杀毒装置的结构图,如图8所示的Linux实时杀毒装置,包括:
文件信息获取单元410,用于获取所述文件操作函数中的文件信息;
文件杀毒单元420,用于根据所述文件信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否对所述文件进行杀毒,包括:
病毒文件查找子单元421,用于根据所述文件信息,查找预设的病毒文件库,并根据所述病毒文件库的查找结果判断是否对所述文件进行杀毒。
可信文件查找子单元422,用于根据所述文件信息,查找预设的可信文件库,并根据所述可信文件库的查找结果判断是否查找所述病毒文件库。
本实施例所提供的Linux实时杀毒装置,通过外部的可信文件库和病毒文件库,提供更加高效的Linux系统文件实时杀毒。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。