服务器攻击的检测方法和装置与流程

文档序号:14124660阅读:277来源:国知局
服务器攻击的检测方法和装置与流程

本发明涉及信息安全技术领域,特别是涉及一种服务器攻击的检测方法和装置。



背景技术:

webshell指的是以asp(activeserverpages,动态服务器页面)、php(hypertextpreprocessor,超文本预处理器)、jsp(javaserverpages,java服务器页面)或者cgi(commongatewayinterface,公共网关接口)等网页文件形式存在的一种命令执行环境,也可以将其称作为一种网页后门。入侵者在入侵了一个网站后,通常会将asp或php后门文件与网站服务器的目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,通过webshell取得对网站服务器在某种程度上的操作权限,从而达到控制网站服务器的目的。

在传统的网络安全防御技术中,对webshell的检测主要是通过分析大量的webshell文件及原理建立特征库,通过特征库中的特征码判断一个网页文件是否为webshell文件,若一个网页文件中的代码包含特征库中的特征码,即判定其为webshell文件。然而,特征库中的特征码均是固定的字符串,入侵者只需通过将webshell文件中的代码进行变形,即可轻松绕过特征码的检测。因此,传统的webshell检测方式容易遗漏webshell文件,检测的准确性低,无法有效保障网站服务器安全。



技术实现要素:

基于此,有必要提供一种服务器攻击的检测方法,能够提高检测webshell文件的准确性,有效保障网站服务器的信息安全。

此外,还有必要提供一种服务器攻击的检测装置,能够提高检测webshell文件的准确性,有效保障网站服务器的信息安全。

一种服务器攻击的检测方法,包括:

通过实时应用程序自我保护系统rasp实时监听网页中的操作行为;

当所述rasp检测到操作行为中包含预定义的风险行为特征时,记录所述操作行为的行为数据,并将所述行为数据发送至风险评估模型;

通过所述风险评估模型对所述行为数据进行分析,得到分析结果;

若根据所述分析结果判定所述操作行为为攻击行为,则将所述网页标记为webshell文件。

一种服务器攻击的检测装置,包括:

监听模块,用于通过rasp实时监听网页中的操作行为;

记录模块,用于当所述rasp检测到操作行为中包含预定义的风险行为特征时,记录所述操作行为的行为数据,并将所述行为数据发送至风险评估模型;

分析模块,用于通过所述风险评估模型对所述行为数据进行分析,得到分析结果;

标记模块,用于若根据所述分析结果判定所述操作行为为攻击行为,则将所述网页标记为webshell文件。

上述服务器攻击的检测方法和装置,通过rasp实时监听网页中的操作行为,当检测到操作行为中包含预定义的风险行为特征时,通过风险评估模型对该操作行为的行为数据进行分析,若根据分析结果判定该操作行为为攻击行为,则将该网页标记为webshell文件,通过rasp能够实时监控网页的执行情况,对操作行为的行为数据进行分析,而不仅仅是从网页文件的代码进行检测,能准确判断网页是否为webshell文件,提高了检测webshell文件的准确性,有效保障网站服务器的信息安全。

附图说明

图1为一个实施例中服务器的内部结构示意图;

图2为一个实施例中服务器攻击的检测方法的流程示意图;

图3为一个实施例中通过风险评估模型分析行为数据得到分析结果的流程示意图;

图4为另一个实施例中通过风险评估模型分析行为数据得到分析结果的流程示意图;

图5为一个实施例中通过风险评估模型对行为数据及操作行为在网页中的上下文内容进行分析,得到分析结果的流程示意图;

图6为另一个实施例中通过风险评估模型对行为数据及操作行为在网页中的上下文内容进行分析,得到分析结果的流程示意图;

图7为一个实施例中服务器攻击的检测装置的结构示意图;

图8为一个实施例中记录模块和分析模块的内部结构示意图;

图9为另一个实施例中分析模块的内部结构示意图;

图10为一个实施例中分析单元的内部结构示意图;

图11为另一个实施例中分析单元的内部结构示意图;

图12为另一个实施例中服务器攻击的检测装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中服务器的内部结构示意图。如图1所示,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和服务器攻击的检测装置,数据库中存储有网站的网页数据,该服务器攻击的检测装置用于实现适用于服务器的一种服务器攻击的检测方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存储器为非易失性存储介质中的服务器攻击的检测装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种服务器攻击的检测方法。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的网页访问请求以及向终端返回网页数据等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,如图2所示,提供了一种服务器攻击的检测方法,包括以下步骤:

步骤s210,通过实时应用程序自我保护系统rasp实时监听网页中的操作行为。

具体的,rasp(runtimeapplicationself-protection,实时应用程序自我保护)是一种新型应用安全保护技术,它将保护程序像疫苗一样注入到应用程序中,使保护程序与应用程序融为一体,能实时检测和阻断安全攻击,使应用程序具备自我保护能力。与传统的安全技术是外设在网络周边或终端设备上不同,例如防火墙等,rasp可嵌入到运行的程序当中,能够清楚地获取到程序中用户的逻辑、配置、数据及事件流,可提高安全攻击识别的准确性,减少误报和漏报的机率。在一个实施例中,可通过hook(钩子)函数实现rasp对网页中的操作行为的实时监听,在网页中,执行hook函数调用运行rasp提供的保护程序,并通过该rasp的保护程序实时监听网页中的操作行为,其中,操作行为指的是网页与用户、数据库、网络及文件系统等的交互行为,可包括网络连接、数据库操作、命令执行、文件操作等。

步骤s220,当rasp检测到操作行为中包含预定义的风险行为特征时,记录操作行为的行为数据,并将行为数据发送至风险评估模型。

具体的,可根据实际需求预先定义风险集合,风险集合中可包括多种风险行为特征,风险行为特征可包括字符串特征、函数特征及行为特征等。其中,字符串特征指的是webshell文件的执行代码中可能包含的一些敏感字符串,例如“setserver”、“<?phpeval($_post[cmd]);?>”等字符串。函数特征指的是webshell文件可能执行的高危函数,高危函数指的是存在安全隐患的函数,例如:phpinfo()输出php环境信息以及相关的模块信息,passthru()允许执行一个外部程序并回显输出等函数。行为特征指的是webshell可能执行的操作,例如更改数据库数据等操作。通过rasp对操作行为的执行代码及函数进行风险行为特征的匹配运算,当检测到操作行为中包含预定义的风险行为特征时,例如,在操作行为的执行代码中检测到包含了风险集合中的字符串特征“setserver”,则将该操作行为认定为风险行为。rasp可记录被认定为风险行为的操作行为的行为数据,行为数据可包括执行代码、执行函数、参数、执行时间及代码行号等。

可预先采集大量的webshell文件及正常的网页文件,并对采集的webshell文件及正常的网页文件中的行为数据进行分析,得到webshell文件及正常的网页文件的行为数据之间存在的差别,例如:执行轨迹的差别、参数结构的差别、执行函数的差别等,并根据二者的行为数据存在的差别制定判断操作行为是否为攻击行为的评判规则,从而构建风险评估模型。

步骤s230,通过风险评估模型对行为数据进行分析,得到分析结果。

具体的,rasp可将记录的行为数据发送至风险评估模型,风险评估模型中可制定一系列判断操作行为是否为攻击行为的评判方式,可通过风险评估模型中的评判方式对行为数据进行分析,得到分析结果。在本实施例中,当rasp检测到操作行为中包含预定义的风险行为特征时,可实时将记录的行为数据发送至风险评估模型进行分析,提高响应及阻断攻击行为的速度。在其他的实施例中,也可当rasp检测完网页中所有包含预定义的风险行为特征的操作行为后,再将记录的行为数据统一发送至风险评估模型进行分析。

步骤s240,若根据分析结果判定操作行为为攻击行为,则将网页标记为webshell文件。

具体的,可根据风险评估模型的分析结果判断操作行为是否为攻击行为,若操作行为为攻击行为,则可将网页标记为webshell文件。在对网页的操作行为进行风险行为特征匹配的同时,进一步通过风险评估模型分析行为数据判断操作行为是否为攻击行为,减少误报和漏报的机率,可提高检测webshell的准确性。

上述服务器攻击的检测方法,通过rasp实时监听网页中的操作行为,当检测到操作行为中包含预定义的风险行为特征时,通过风险评估模型对该操作行为的行为数据进行分析,若根据分析结果判定该操作行为为攻击行为,则将该网页标记为webshell文件,通过rasp能够实时监控网页的执行情况,对操作行为的行为数据进行分析,而不仅仅是从网页文件的代码进行检测,能准确判断网页是否为webshell文件,提高了检测webshell文件的准确性,有效保障网站服务器的信息安全。

在一个实施例中,如图3所示,步骤s220当rasp检测到操作行为中包含预定义的风险行为特征时,记录操作行为的行为数据,并将行为数据发送至风险评估模型,包括步骤s302-步骤s304,步骤s230通过风险评估模型对行为数据进行分析,得到分析结果,包括步骤s306-步骤s316:

步骤s302,通过rasp分析操作行为中的执行函数。

具体的,rasp可动态获取操作行为的执行函数,并分析执行函数,判断执行函数是否包含风险集合中预定义的加密特征,加密特征可包括加密函数,例如md5()、crypt()等函数,也可包括赋值得到的参数结构等,可将不直接采用明文调用的执行函数均认定为包含加密特征。

步骤s304,当检测到执行函数中包含预定义的加密特征时,记录操作行为的行为数据,并将行为数据发送至风险评估模型。

具体的,当rasp检测到操作行为中的执行函数中包含预定义的加密特征,则说明执行函数进行了加密,该操作行为可认定为风险行为,rasp可记录该操作行为的行为数据,并将行为数据发送至风险评估模型进行分析。

步骤s306,通过风险评估模型获取行为数据中的执行函数。

具体的,风险评估模型可获取rasp发送的行为数据中的执行函数及执行函数中的参数。

步骤s308,对执行函数的参数进行字符串匹配或正则匹配运算,判断参数是否进行编码,若是,则执行步骤s310,若否,则执行步骤s316。

具体的,风险评估模型可对执行函数的参数进行字符串匹配或正则匹配运算,通过字符串或正则表达式判断参数是否进行编码,若匹配成功,则说明参数进行编码。

步骤s310,获取执行函数的执行体特征。

具体的,若参数进行了编码,风险评估模型可进一步获取执行函数的执行体特征,执行函数的执行体可包括网页文件及操作账号,执行体特征可包括网页的文件名、网页的所有者及执行函数对应的账号信息等,例如账号、密码等。

步骤s312,根据执行体特征判断执行函数的执行体是否为陌生执行体,若是,则执行步骤s314,若否,则执行步骤s316。

具体的,可根据获取的执行体特征判断执行体是否为陌生执行体,陌生执行体指的是不存在于数据库白名单中的执行体,数据库白名单用于记录可被网站服务器认定为通过的执行体。陌生执行体可包括陌生账号、陌生文件、陌生所有者等,例如,可根据执行函数对应的账号信息在数据库中查询是否有对应的账号数据,若没有,则该账号为陌生账号,也可通过网页的文件名判断该网页是否为陌生文件等。若执行函数的执行体为陌生执行体,则可判定操作行为为攻击行为,若执行函数的执行体不是陌生执行体,则可判定操作行为不是攻击行为。

步骤s314,操作行为为攻击行为。

步骤s316,操作行为不是攻击行为。

在本实施例中,可通过rasp检测到执行函数的加密,并通过风险评估模型确定执行函数的参数编码情况,可精准地检测到加密隐藏的webshell,并进一步通过执行体特征进行分析,减少误报的机率,提高检测webshell的准确性。

在一个实施例中,如图4所示,步骤s230通过风险评估模型对行为数据进行分析,得到分析结果,包括以下步骤:

步骤s402,根据行为数据中的代码行号及执行时间获取操作行为在网页中的上下文内容。

具体的,风险评估模型可根据rasp发送的行为数据中的代码行号及执行时间获取操作行为在网页中的上下文内容,操作行为在网页中的上下文内容指的是本次操作行为的上一次操作行为及下一次操作行为的相关行为数据,包括上一次操作行为及下一次操作行为的执行代码、执行函数、数据、执行时间等。

步骤s404,通过风险评估模型对行为数据及上下文内容进行分析,得到分析结果。

具体的,风险评估模型可对操作行为的行为数据及在网页中的上下文内容统一进行分析,同时对多个操作行为的行为数据进行分析,可更加准确地判断出本次的操作行为是否为攻击行为。

在本实施例中,可根据操作行为的行为数据及在网页中的上下文内容统一进行分析,同时对多个操作行为的行为数据进行分析,可更加准确地判断出本次的操作行为是否为攻击行为,提高了检测webshell文件的准确性。

在一个实施例中,如图5所示,步骤s404通过风险评估模型对行为数据及上下文内容进行分析,得到分析结果,包括以下步骤:

步骤s502,通过风险评估模型提取行为数据及上下文内容中的事件标识。

具体的,事件标识可用于表示操作行为的具体操作内容,例如访问文件目录、访问数据库、执行系统命令等,事件标识可从执行函数中提取,例如,提取执行函数的事件标识为get_files,则风险评估模型根据该事件标识可清晰地确定该操作行为的具体操作内容是遍历目录下的文件。

步骤s504,根据事件标识确定操作行为的执行轨迹。

具体的,风险评估模型从行为数据及操作行为在网页中的上下文内容中提取事件标识,根据事件标识可清晰地得到操作行为的具体操作内容,按照执行时间进行排列,可确定完整的操作行为的执行轨迹,例如,风险评估模型从行为数据及上下文内容中提取的事件标识包括get_files、run及download,分别表示具体的操作内容为遍历目录下的文件、执行系统命令及下载文件,根据各个事件标识对应的执行时间,可确定执行轨迹为遍历目录下的文件-执行系统命令-下载文件。

步骤s506,计算执行轨迹的轨迹比率,若轨迹比率小于预设阈值,则操作行为为攻击行为。

具体的,风险评估模型可计算操作行为的执行轨迹在轨迹数据中所占的轨迹比率,其中,轨迹数据可为建立风险评估模型时,对采集的webshell文件及正常的网页文件的行为数据进行分析获取得到,若轨迹比率小于预设阈值,例如,风险评估模型确定的执行轨迹为操作1-操作2-操作3,该操作行为的执行轨迹在轨迹数据中所占的轨迹比率为1%,小于预设阈值10%,则说明操作行为的执行轨迹与其他的执行轨迹存在很大的不同,判定该操作行为为攻击行为。在其他的实施例中,也可根据轨迹比率确定操作行为的级别,不同的级别对应的不同的轨迹比率范围不同,例如级别1对应的轨迹比率范围为80%-100%,级别2对应的轨迹比率范围为60%-80%,并不限于此。可将计算得到的操作行为的轨迹比率与各个轨迹比率范围进行比较,从而确定对应的级别,并将轨迹比率落入最末一级的操作行为判定为攻击行为,也即,将轨迹比率落入最小的轨迹比率范围的操作行为判定为攻击行为。

在本实施例中,风险评估模型可根据行为数据及操作行为在网页的上下文内容中的事件标识确定执行轨迹,能够根据具体的执行轨迹分析操作行为是否为攻击行为,从而准确检测出webshell文件,提高检测webshell文件的准确性,有效保障网站服务器的信息安全。

在一个实施例中,如图6所示,步骤s404通过风险评估模型对行为数据及上下文内容进行分析,得到分析结果,包括以下步骤:

步骤s602,将行为数据及上下文内容导入风险评估模型中预先建立的监督学习模型。

具体的,监督学习是机器学习中的一种方式,可以从给定的训练数据集中学习或建立一个模型,即为监督学习模型,训练数据集由输入及输出组成,输出一般为预测的一个分类标签。在本实施例中,可将正常的网页文件及检测到的webshell文件中的行为数据作为训练数据集构建监督学习模型,预测的结果可为正常或异常。风险评估模型可将行为数据及操作行为在网页中的上下文内容导入监督学习模型,通过监督学习模型对行为数据及上下文内容进行统计分析,得到预测结果。在其他的实施例中,也可直接将行为数据导入监督学习模型中进行分析,输入的数据主要取决于监督学习模型中所需的数据特征。

步骤s604,根据监督学习模型分析行为数据及上下文内容,得到监督学习模型输出的预测结果,若预测结果为异常,则操作行为为攻击行为。

具体的,若通过监督学习模型对行为数据及上下文内容进行统计分析后,得到的预测结果为异常,则可判定操作行为为攻击行为。

需要说明的是,风险评估模型可采用上述的一种方式对rasp发送的行为数据进行分析,也可同时采用多种方式对行为数据进行分析,可综合多种方式的分析结果判定操作行为是否为攻击行为,从而减少误报及漏报的机率,提高检测webshell的准确性。

在本实施例中,可将数据及上下文内容导入风险评估模型中预先建立的监督学习模型进行统计分析,并根据预测结果确定操作行为是否为攻击行为,利用统计学的方式分析行为数据,从而准确检测出webshell文件,提高了检测webshell文件的准确性,有效保障网站服务器的信息安全。

在一个实施例中,在步骤s240若根据分析结果判定操作行为为攻击行为,则将网页标记为webshell文件之后,还包括:通过rasp将标记为webshell文件的网页移动到隔离区中。

具体的,当操作行为被判定为攻击行为,可将网页标记为webshell文件,rasp可调用相应的api(applicationprogramminginterface,应用程序编程接口)将标记为webshell文件的网页移动到隔离区中,其中,隔离区可以为服务器中不属于网站目录的其他目录,将标记为webshell文件的网页移动到隔离区中,使该网页无法继续执行。在其他的实施例中,可根据标记为webshell文件的网页生成警报信息,警报信息中可包括该网页的文件名、被判定为攻击行为的操作行为的行为数据等,方便管理员根据警报信息查找出安全漏洞,及时进行修复。

在本实施例中,当操作行为被判定为攻击行为,可将网页标记为webshell文件移动到隔离区中,实时对webshell文件进行隔离,阻断攻击行为,有效保障网站服务器的信息安全。

在一个实施例中,如图7所示,提供了一种服务器攻击的检测装置,包括监听模块710、记录模块720、分析模块730及标记模块740。

监听模块710,用于通过rasp实时监听网页中的操作行为。

在一个实施例中,监听模块710,还用于执行钩子函数调用rasp提供的保护程序,并通过rasp的保护程序实时监听网页中的操作行为。

记录模块720,用于当rasp检测到操作行为中包含预定义的风险行为特征时,记录操作行为的行为数据,并将行为数据发送至风险评估模型。

分析模块730,用于通过风险评估模型对行为数据进行分析,得到分析结果。

标记模块740,用于若根据分析结果判定操作行为为攻击行为,则将网页标记为webshell文件。

上述服务器攻击的检测装置,通过rasp实时监听网页中的操作行为,当检测到操作行为中包含预定义的风险行为特征时,通过风险评估模型对该操作行为的行为数据进行分析,若根据分析结果判定该操作行为为攻击行为,则将该网页标记为webshell文件,通过rasp能够实时监控网页的执行情况,对操作行为的行为数据进行分析,而不仅仅是从网页文件的代码进行检测,能准确判断网页是否为webshell文件,提高了检测webshell文件的准确性,有效保障网站服务器的信息安全。

在一个实施例中,如图8所示,记录模块720包括函数分析单元722及记录单元724。

函数分析单元722,用于通过所述rasp分析操作行为中的执行函数。

记录单元724,用于当检测到执行函数中包含预定义的加密特征时,记录操作行为的行为数据,并将行为数据发送至风险评估模型。

分析模块730包括函数获取单元732、参数运算单元734及判断单元736。

函数获取单元732,用于通过风险评估模型获取行为数据中的执行函数。

参数运算单元734,用于对执行函数的参数进行字符串匹配或正则匹配运算,判断参数是否进行编码。

判断单元736,用于若参数进行编码,则获取执行函数的执行体特征,并根据执行体特征判断执行函数的执行体是否为陌生执行体,若执行体为陌生执行体,则操作行为为攻击行为,所述陌生执行体为不存在于数据库白名单中的执行体。

在本实施例中,可通过rasp检测到执行函数的加密,并通过风险评估模型确定执行函数的参数编码情况,可精准地检测到加密隐藏的webshell,并进一步通过执行体特征进行分析,减少误报的机率,提高检测webshell的准确性。

在一个实施例中,如图9所示,分析模块730包括上下文获取单元910及分析单元920。

上下文获取单元910,用于根据行为数据中的代码行号及执行时间获取操作行为在网页中的上下文内容。

分析单元920,用于通过风险评估模型对行为数据及上下文内容进行分析,得到分析结果。

在本实施例中,可根据操作行为的行为数据及在网页中的上下文内容统一进行分析,同时对多个操作行为的行为数据进行分析,可更加准确地判断出本次的操作行为是否为攻击行为,提高了检测webshell文件的准确性。

在一个实施例中,如图10所示,分析单元920包括提取子单元922、确定子单元924及计算子单元926。

提取子单元922,用于通过风险评估模型提取行为数据及上下文内容中的事件标识。

确定子单元924,用于根据事件标识确定操作行为的执行轨迹。

计算子单元926,用于计算执行轨迹的轨迹比率,若轨迹比率小于预设阈值,则操作行为为攻击行为。

在本实施例中,风险评估模型可根据行为数据及操作行为在网页的上下文内容中的事件标识确定执行轨迹,能够根据具体的执行轨迹分析操作行为是否为攻击行为,从而准确检测出webshell文件,提高检测webshell文件的准确性,有效保障网站服务器的信息安全。

在另一个实施例中,如图11所示,分析单元920包括导入子单元9202及预测子单元9204。

导入子单元9202,用于将行为数据及上下文内容导入风险评估模型中预先建立的监督学习模型。

预测子单元9204,用于根据监督学习模型分析行为数据及上下文内容,得到监督学习模型输出的预测结果,若预测结果为异常,则操作行为为攻击行为。

在本实施例中,可将数据及上下文内容导入风险评估模型中预先建立的监督学习模型进行统计分析,并根据预测结果确定操作行为是否为攻击行为,利用统计学的方式分析行为数据,从而准确检测出webshell文件,提高了检测webshell文件的准确性,有效保障网站服务器的信息安全。

在一个实施例中,上述服务器攻击的检测装置,除了包括监听模块710、记录模块720、分析模块730及标记模块740,还包括移动模块750。

移动模块750,用于通过rasp将标记为webshell文件的网页移动到隔离区中。

在本实施例中,当操作行为被判定为攻击行为,可将网页标记为webshell文件移动到隔离区中,实时对webshell文件进行隔离,阻断攻击行为,有效保障网站服务器的信息安全。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

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

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