基于Linux系统的木马检测方法及装置与流程

文档序号:11134535阅读:279来源:国知局
基于Linux系统的木马检测方法及装置与制造工艺

本发明涉及计算机安全领域,特别涉及一种基于Linux系统的木马检测方法及装置。



背景技术:

随着计算机技术的发展,计算机的功能也越来越多,也导致越来越多的黑客在用户的计算机中种植木马以达到自己的目的。所述木马通过特定的程序(木马程序)来控制另一台计算机,并且木马为了防止被本地用户发现而采取隐藏手段,即将木马核心代码进行隐藏。因此也相继出现了很多检测木马的方法,现有技术中,通过对比系统的异常行为来判断是否存在木马,但是此种方式往往需要大量数据比对,占用系统资源大,且效率低。



技术实现要素:

有鉴于此,本发明提供一种基于Linux系统的木马检测方法及装置,能够直接有效地判断出系统是否存在木马,提高电子终端的安全。

本发明实施例提供一种基于Linux系统的木马检测方法,所述方法包括以下步骤:

接收通过指定方式触发的文件读取请求,所述文件读取请求为读取指定虚拟文件的请求,所述指定虚拟文件为Linux系统的内核模块创建的文件;

接收到所述文件读取请求后,启动预设宏来读取内核进程链表,所述内核进程链表包括至少一个进程;

根据所述内核进程链表列举所述进程链表中进程对应的进程基层文件;

若列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

本发明实施例还提供一种基于Linux系统的木马检测装置,所述装置包括:

请求接收模块,用于接收通过指定方式触发的文件读取请求,所述文件读取请求为读取指定虚拟文件的请求,所述指定虚拟文件为Linux系统的内核模块创建的文件;

进程表读取模块,用于启动预设宏来读取内核进程链表,所述内核进程链表中包括至少一个进程;

文件列举模块,用于根据所述内核进程链表列举所述进程链表中进程对应的进程基层文件;

判定模块,用于列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

可以知道的是为了防止被用户发现木马,木马的基层文件被隐藏,根据本申请的实施例可以直接读取内核的基层文件,若读取不到所述基层文件则判断为木马,从而省去了大量数据对比,效率更高。

为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

图1示出了一种电子终端的结构框图。

图2为第一实施例提供的一种基于Linux系统的木马检测方法流程图。

图3为第二实施例提供的一种基于Linux系统的木马检测方法流程图。

图4为第二实施例提供的一种基于Linux系统的木马检测方法流程图。

图5为第三实施例提供的一种基于Linux系统的木马检测方法流程图。

图6为第四实施例提供的一种基于Linux系统的木马检测装置结构框图。

图7为第五实施例提供的一种基于Linux系统的木马检测装置结构框图。

图8为第五实施例提供的一种基于Linux系统的木马检测装置结构框图。

图9为第六实施例提供的一种基于Linux系统的木马检测装置结构框图。

具体实施方式

为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。

图1示出了一种电子终端的结构框图。如图1所示,电子终端100包括一个或多个(图中仅示出一个)处理器102、存储器104、存储控制器106,外设接口108、RF(Radio Frequency,射频)模块110、网络模块112、传感器114、输入模块116以及显示模块118。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对电子终端100的结构造成 限定。例如,电子终端100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。上述的电子终端100的具体实例包括但并不限于手持式计算机、移动电话、媒体播放器、车载设备、个人数字助理及前述装置的各种组合。

本领域普通技术人员可以理解,相对于处理器102来说,所有其他的组件均属于外设,处理器102与这些外设之间通过多个外设接口108相耦合。外设接口108可基于以下标准实现:通用异步接收/发送装置(Universal Asynchronous Receiver/Transmitter,UART)、通用输入/输出(General Purpose Input Output,GPIO)、串行外设接口(Serial Peripheral Interface,SPI)、内部集成电路(Inter-Integrated Circuit,I2C),但不并限于上述标准。在一些实例中,外设接口108可仅包括总线;在另一些实例中,外设接口108还可包括其他元件,如一个或者多个控制器,例如用于连接液晶显示面板的显示控制器或者用于连接存储器的存储控制器106。此外,这些控制器还可以从外设接口108中脱离出来,而集成于处理器102内或者相应的外设内。

存储器104可用于存储软件程序以及模块,如本发明实施例中的基于Linux系统的木马检测方法/装置/系统对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于Linux系统的木马检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至电子终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

RF模块110用于接收以及发送电磁波,实现电磁波与电信号的相互 转换,从而与通讯网络或者其他设备进行通讯。RF模块110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。RF模块110可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM)、增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(wideband code division multiple access,W-CDMA),码分多址技术(Code division access,CDMA)、时分多址技术(time division multiple access,TDMA),无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE 802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE802.11n)、网络电话(Voice over internet protocal,VoIP)、全球微波互联接入(Worldwide Interoperability for Microwave Access,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。

网络模块112用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为WiFi信号,由于WiFi的工作频率也处于射频的频段内,此时网络模块可具有与RF模块110类似的硬件结构,即可包括天线、射频收发器、数字信号处理器、加密/解密芯片等元件。在一个实例中,上述网络信号为有线网络信号。此时,网络模块112可包括处理器、随机存储器、转换器、晶体振荡器等元件。

传感器114的实例包括但并不限于:光传感器、运行传感器、及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环 境光传感器可以感测环境光的明暗,进而处理器102执行的一些模块可利用环境光传感器的输出来自动调节显示的输出。接近传感器可在电子终端100移动到耳边时,关闭显示输出。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子终端100还可配置的陀螺仪、气压计、湿度计、温度计等其他传感器,在此不再赘述。

输入模块116可用于接收输入的字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入模块116可包括按键以及触控表面。按键例如可包括用于输入字符的字符按键,以及用于触发控制功能的控制按键。控制按键的实例包括“返回主屏”按键、开机/关机按键、拍照键等等。触控表面可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控表面上或在触控表面附近的操作),并根据预先设定的程序驱动相应的连接装置。可选的,触控表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器102,并能接收处理器102发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控表面。除了触控表面,输入模块116还可以包括其他输入设备。上述的其他输入设备包括但不限于物理键盘、轨迹球、鼠标、操作杆等中的一种或多种。

显示模块118用于显示由用户输入的信息、提供给用户的信息以及电子终端100的各种图形用户接口,这些图形用户接口可以由图形、文本、 图标、视频和其任意组合来构成。在一个实例中,显示模块118包括一个显示面板。显示面板例如可为一个液晶显示面板(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode Display,OLED)显示面板、电泳显示面板(Electro-Phoretic Display,EPD)等。进一步地,触控表面可设置于显示面板上从而与显示面板构成一个整体。在另一些实施例中,显示模块118还可包括其他类型的显示装置,例如包括一个投影显示装置。相比于一般的显示面板,投影显示装置还需要包括一些用于投影的部件例如透镜组。

上述的软件程序以及模块包括:操作系统以及基于Linux系统的木马检测模块。本发明实施例中,操作系统例如可为LINUX,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。基于Linux系统的木马检测模块运行在操作系统的基础上,用于对电子终端100的木马进行检测。

第一实施例

本实施例提供一种基于Linux系统的木马检测方法,本实施例的方法可用于图1所示的电子终端100中,如图2所示,本实施例的方法包括以下步骤:

步骤S101、接收通过指定方式触发的文件读取请求,所述文件读取请求为读取指定虚拟文件的请求,所述指定虚拟文件为Linux系统的内核模块创建的文件。

所述指定方法可以是在安全卫士中木马查杀功能界面中触发指定按钮,例如界面中的“快速扫描”或者“全盘扫描”按钮,从而触发所述文件读取请求。详细地,所述虚拟文件为Linux系统的内核模块创建的 /proc/ps_list虚拟文件。所述虚拟文件构成虚拟系统VFS(Virtual File System),VFS也称为虚拟文件系统开关(Virtual Filesystem Switch)。VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可以让列举,读取、写入函数等系统调用时可以不用关心底层的存储介质和文件系统类型就可以工作的粘合层。可以理解,/proc/ps_list虚拟文件就是用户态进程与内核模块通讯的接口。

在一个实施方式中,通过指定方式触发的文件读取请求,也就是触发编译一个内核模块,以用户态进程发送所述虚拟文件/proc/ps_list的读取请求,进而内核模块可接收到内核进程链表数据读取请求,从而启动内核态进程。所述内核模块为一种区别于一般应用程序的系统级程序,主要用于扩展linux的内核功能。内核模块可以动态地加载到内存中,无须重新编译内核。

步骤S102、接收到所述文件读取请求后,启动预设宏来读取内核进程链表,所述内核进程链表中包括至少一个进程。

若用户通过指定方式发送所述文件读取请求,启动用户态进程读取/proc/ps_list文件,则内核模块会进一步接收读取内核进程链表数据的请求,从而启动内核态进程。在一种实施方式中,通过启动内核宏for_each_process读取所述内核进程链表数据。

所述进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。详细地,程序是指令、数据及其组织形式的描述,进程是程序的实体。进一步地,运行在电子终端100的进程能够通过唯一标识进程的进程ID(process ID)进行唯一识别。所述进程ID可以作为函数的调用参数。在一个实例中,所述内核进程链表可以是进程ID链表。

详细地,通过用户态进程向所述/proc/ps_list虚拟文件发送读取请求, 以实现进一步,向系统内核模块发送读取内核进程链表数据的消息。

进一步地,本实施例的方法可开发一个内核模块,通过内核模块可以读取内核进程链表。

步骤S103、根据所述内核进程链表列举所述进程链表中进程对应的进程基层文件。

详细地,系统中进程ID对应有/proc/pid/目录。详细地,正常的进程在所述/proc/pid/目录中存在对应的文件。若木马进程对应的基层文件被隐藏,则在所述/proc/pid/目录中查找不到。因此,可以通过木马的这一特性,判断进程是否为木马进程。

在一个实例中,通过使用vfs_readdir函数列举所述/proc/pid/目录。所述基层文件为所述/proc/pid/目录中的文件。详细地,在一次木马检测中,依次列举所述内核进程链表中的进程与所述/proc/pid/目录中对应的文件。

所述内核进程链表中的进程为运行在当前电子终端100中的进程。

步骤S104、若列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

详细地,本实施例中用于检测内核木马,所述内核木马为使用Linux内核模块技术和架构开发的木马,直接隐藏于Linux系统内核中,因此危害更大。

详细地,若所述进程存在对应基层文件则能够列举成功,若所述进程的基层文件被隐藏则列举失败。

进一步地,还包括:若列举到所述内核进程链表中进程对应的进程基层文件,则判定所述进程为安全进程。

可以知道的是,区别于木马进程,安全进程不需要隐藏基层文件。因此,可根据此特征(能列举进程对应的基层文件)判定为安全进程。

根据本实施例的方法,可以知道的是,为了防止被用户发现木马,木 马进程对应的基层文件被隐藏,因此通过直接读取内核准确数据,判断是否有与当前进程对应的基层文件判断所述当前进程是否是木马进程,能够有效提高木马检测的效率,提高电子终端的用户使用环境的安全性。

第二实施例

本实施例提供一种基于Linux系统的木马检测方法,本实施例与第一实施例类似,其不同之处在于,请参阅图3或图4,本实施例的方法包括:

步骤S101,具体可包括:

步骤S1011、接收用户触发的木马查杀软件界面的木马检测按钮操作,则触发所述文件读取请求。

或者,步骤S1012、接收用户设定的预设时间间隔进行木马查杀的操作,所述预设时间间隔自动触发所述文件读取请求。

详细地,第一实施例的应用背景可以是一个木马查杀软件。图3为本实施例的一个实施例方式的方法流程图。步骤S101中所述接收通过指定方式触发的文件读取请求,可以是在木马查杀软件显示界面中直接触发,通过接收用户在所述显示界面对指定按钮的点击操作。

图4为本实施例的另一个实施例方式的方法流程图。步骤S101中所述接收通过指定方式触发的文件读取请求,在检测木马之前,通过接收用户设定的预设时间间隔进行木马查杀的操作,所述预设时间间隔自动触发所述文件读取请求,也可以理解为在指定时间自动进行木马检测。例如,假设用户设定一天检测一次,则系统每天自动触发对电子终端100进行木马检测。

步骤S102、接收到所述文件读取请求后,启动预设宏来读取内核进程链表,所述内核进程链表中包括至少一个进程。

步骤S103、根据所述内核进程链表列举所述进程链表中进程对应的 进程基层文件。

步骤S104、若列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

上述步骤S102-S104与第一实施例相似,请参考第一实施例,在此不再赘述。

进一步地,本实施例的方法应用背景为木马查杀软件时,则在木马检测完成后,对被检测到的木马进行查杀。详细地,在木马查杀之前,可以先显示询问用户界面,在接收到用户确定查杀木马操作后,对所述木马进行查杀。

由此可见,本实施例的方法可以直接运用于木马查杀软件中,且能提高检测木马的准确度,提高用户使用电子终端的环境的安全性。

第三实施例

本实施例提供一种基于Linux系统的木马检测方法,本实施例与第一实施例类似,其不同之处在于,请参阅图5,本实施例的方法包括:

步骤S101、接收通过指定方式触发的文件读取请求,所述文件读取请求为读取指定虚拟文件的请求,所述指定虚拟文件为Linux系统的内核模块创建的文件。

步骤S102、接收到所述文件读取请求后,启动预设宏来读取内核进程链表,所述内核进程链表中包括至少一个进程。

进一步地,所述内核进程链表中的进程为运行在当前电子终端100中的进程。

步骤S103,包括:

步骤S1031、逐一读取所述内核进程链表中的进程。

详细地,进程ID可以唯一标识进程,则所述内核进程链表也以标识 进程的进程ID链表。进程ID在/proc/pid/目录中存在与之匹配的PID(process ID)文件。

步骤S1032、根据读取的所述进程,列举对应于所述进程的基层文件。

在本步骤中,通过读取进程ID链表中的ID,再读取所述进程ID与/proc/pid/目录中的文件进行列举。若所述进程存在对应基层文件则能够读取成功,若所述进程的基层文件被隐藏则读取失败。由于木马具有隐藏性,则可以根据进程ID与/proc/pid/目录进行匹配来判断列举是否成功,由此判断所述进程ID对应的进程是否为木马进程。

步骤S104、若列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

关于本实施例的方法的进一步细节,可参考第一实施例提供的方法,在此不再赘述。

根据本实施例的方法,通过逐一对进程ID链表中的基层文件进行列举,可以直接有效地检测各种隐藏的木马,能提高用户信息的安全性。

第四实施例

本实施例提供一种基于Linux系统的木马检测装置,如图6所示,本实施例中的装置包括:请求接收模块201、进程表读取模块202、文件列举模块203以及判定模块204。

请求接收模块201,用于接收通过指定方式触发的文件读取请求,所述文件读取请求为读取指定虚拟文件的请求,所述指定虚拟文件为Linux系统的内核模块创建的文件。

进程表读取模块202,用于启动预设宏来读取内核进程链表,所述内核进程链表中包括至少一个进程。

文件列举模块203,用于根据所述内核进程链表列举所述进程链表中 进程对应的进程基层文件。

判定模块204,用于若列举所述内核进程链表中进程对应的进程基层文件失败,则判定所述进程为木马进程。

判定模块204还包括:用于若读取所述内核进程链表中进程对应的进程基层文件,则判定所述进程为安全进程。

关于本实施例的装置进一步细节,可参考第一实施例提供的方法,在此不再赘述。

根据本实施例的装置,由于,为了防止被用户发现木马,木马进程对应的基层文件被隐藏,因此通过直接读取内核准确数据,判断是否有与当前进程对应的基层文件判断所述当前进程是否是木马进程,能够有效提高木马检测的效率,提高电子终端的用户使用环境的安全性。

第五实施例

本实施例提供一种基于Linux系统的木马检测装置,本实施例与第四实施例类似,其不同之处在于,如图7或8所示,本实施例的请求接收模块201包括:

用户触发单元2011,用于接收用户触发的木马查杀软件界面的木马检测按钮操作,则触发所述文件读取请求。

自动触发单元2012,用于接收用户设定的预设时间间隔进行木马查杀的操作,所述预设时间间隔自动触发所述文件读取请求。

关于本实施例的装置进一步细节,可参考第二实施例提供的方法,在此不再赘述。

由此可见,本实施例的装置可以直接运用于木马查杀软件中,且能提高检测木马的准确度,提高用户使用电子终端的环境的安全性。

第六实施例

本实施例提供一种基于Linux系统的木马检测装置,本实施例与第四实施例类似,其不同之处在于,如图9所示,本实施例的文件列举模块203包括:

进程读取单元2031,用于逐一读取所述内核进程链表中的进程。

列举单元2032,用于根据读取的所述进程,列举对应于所述进程的基层文件。

关于本实施例的装置进一步细节,可参考第三实施例提供的方法,在此不再赘述。

根据本实施例的装置,通过逐一对进程ID链表中的基层文件进行列举,可以直接有效地检测各种隐藏的木马,能提高用户信息的安全性。

此外,本发明实施例还提供一种计算机可读存储介质,其内存储有计算机可执行指令,上述的计算机可读存储介质例如为非易失性存储器例如光盘、硬盘、或者闪存。上述的计算机可执行指令用于让计算机或者类似的运算装置完成上述的基于Linux系统的木马检测方法中的各种操作。

需要说明的是,本说明书中的各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物 品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者装置中还存在另外的相同要素。

以上该,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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