一种解析Webshell入侵原因的方法及装置与流程

文档序号:11177647阅读:281来源:国知局
一种解析Webshell入侵原因的方法及装置与流程

本申请涉及通信领域,特别涉及一种解析webshell入侵原因的方法及装置。



背景技术:

黑客在入侵了一个网站之后,通常会在服务器上留下一些后门文件,然后使用浏览器访问这些后门文件,从而达到控制服务器的目的,这些后门文件通常被称为网页后门(webshell)。因此,针对webshell分析入侵成功的原因,有助于制定相应的规则进行及时检测以及拦截。

现有的分析方案分为以下两种:

第一种方案:将筛选出的被植入webshell的主机的访问日志,与已有的特征库进行匹配,根据匹配结果确定入侵原因。

例如,将主机的访问日志与已有的webshell特征库进行匹配,若访问日志中的某条记录满足某种特征,即可判定主机被webshell入侵是由于上述某种特征对应的漏洞造成的。

如,webshell特征库里保存的一条记录是漏洞a,漏洞a的特征是url包含xxx.php,那么,分析被植入webshell的主机在一段时间范围内的访问日志,若访问日志中记录的一条url里包含了xxx.php,那么可以判断这个主机是由于存在a漏洞导致的被入侵成功。

然而,采用第一种方案,匹配方式较单一,分析成功率取决于特征库的丰富程度,若特征库更新不及时,则无法分析出特征库中不包含的入侵方式,导致分析成功率低下。

第二种方案:由人工凭经验对一个一个的webshell网页进行入侵原因分 析。

然而,采用个人经验和精力有限,导致分析效率低下以及分析准确度不高。



技术实现要素:

本发明实施例提供一种解析webshell入侵原因的方法及装置。用以提高webshell入侵原因的分析效率以及提高分析准确度。

本发明实施例提供的具体技术方案如下:

一种解析webshell入侵原因的方法,包括:

获取待分析的webshell文件,以及获取与所述webshell文件关联的访问日志;

将所述webshell文件,分别与所述访问日志中记录的每一条访问数据进行匹配,获得匹配结果;

根据匹配结果确定所述webshell文件与至少一条访问数据匹配成功时,对所述至少一条访问数据进行解析,确定入侵原因。

较佳的,获取待分析的webshell文件之后,在获取与所述webshell文件关联的访问日志之前,进一步执行以下操作中的任意一种或任意组合:

将所述webshell文件与预设的特征库进行匹配,并确定匹配未成功,其中,所述特征库用于记录webshell特征和入侵原因之间的关联关系;

对与所述webshell文件相关联的服务器的登陆日志进行检测,确定未存在非法登陆行为;

确定在已分析成功的webshell案例中,不存在与所述webshell文件相同的webshell案例。

较佳的,获取与所述webshell文件关联的访问日志,包括:

确定以所述webshell文件创建时间为基准点的设定时长;

在与所述webshell文件相关联的服务器上获取所述设定时长内记录的访问日志。

较佳的,将所述webshell文件,与所述访问日志中记录的任意一条访问数据进行匹配,获得匹配结果,包括:

确定所述webshell文件的字段信息;

确定所述任意一条访问数据包含的访问指令;

判断所述webshell文件的字段信息是否记录在所述任意一条访问数据包含的访问指令中,若是,则判定匹配成功,否则,判定匹配失败。

较佳的,所述webshell文件的字段信息中至少包含文件名称、文件路径和文件内容中的一种或任意组合。

较佳的,一条访问数据包含的访问指令中,至少包含访问路径信息和所述访问路径信息调用的相关参数。

较佳的,对匹配成功的任意一条访问数据进行解析,确定入侵原因,包括:

确定所述任意一条访问数据包含的访问指令的指令类型;

基于所述指令类型确定相应的入侵原因。

较佳的,进一步包括:

确定所述任意一条访问数据包含的访问指令中记录的访问路径信息;

对获得的访问路径信息进行解析,获得所述访问路径信息包含的子路径集合;

将所述子路径集合作为新的webshell特征集合;

在所述新的webshell集合和已确定的入侵原因之间建立关联关系,并将所述关联关系保存至相应的特征库中,其中,所述特征库用于记录webshell特征和入侵原因之间的关联关系。

较佳的,进一步包括:

在所述特征库中,每保存一个新的webshell特征,对应所述一个新的webshell特征设置相应的可信度,其中,一个webshell的可信度用于表征所述一个webshell的被命中概率;

以及,在所述特征库中,每当一个webshell被命中,则对相应的可信度进行更新。

较佳的,进一步包括:

若将待分析的webshell文件与所述特征库匹配,并确定webshell文件与至少两个webshell特征匹配成功,则基于所述至少两个webshell特征中可信度最高的webshell特征确定相应的入侵原因。

一种解析webshell入侵原因的装置,包括:

获取单元,用于获取待分析的webshell文件,以及获取与所述webshell文件关联的访问日志;

第一处理单元,用于将所述webshell文件,分别与所述访问日志中记录的每一条访问数据进行匹配,获得匹配结果;

第二处理单元,用于根据匹配结果确定所述webshell文件与至少一条访问数据匹配成功时,对所述至少一条访问数据进行解析,确定入侵原因。

较佳的,获取待分析的webshell文件之后,在获取与所述webshell文件关联的访问日志之前,所述第一处理单元进一步执行以下操作中的任意一种或任意组合:

将所述webshell文件与预设的特征库进行匹配,并确定匹配未成功,其中,所述特征库用于记录webshell特征和入侵原因之间的关联关系;

对与所述webshell文件相关联的服务器的登陆日志进行检测,确定未存在非法登陆行为;

确定在已分析成功的webshell案例中,不存在与所述webshell文件相同的webshell案例。

较佳的,获取与所述webshell文件关联的访问日志时,所述获取单元用于;

确定以所述webshell文件创建时间为基准点的设定时长;

在与所述webshell文件相关联的服务器上获取所述设定时长内记录的访 问日志。

较佳的,将所述webshell文件,与所述访问日志中记录的任意一条访问数据进行匹配,获得匹配结果时,所述第一处理单元用于:

确定所述webshell文件的字段信息;

确定所述任意一条访问数据包含的访问指令;

判断所述webshell文件的字段信息是否记录在所述任意一条访问数据包含的访问指令中,若是,则判定匹配成功,否则,判定匹配失败。

较佳的,所述webshell文件的字段信息中至少包含文件名称、文件路径和文件内容中的一种或任意组合。

较佳的,一条访问数据包含的访问指令中,至少包含访问路径信息和所述访问路径信息调用的相关参数。

较佳的,对匹配成功的任意一条访问数据进行解析,确定入侵原因时,所述第二处理单元用于:

确定所述任意一条访问数据包含的访问指令的指令类型;

基于所述指令类型确定相应的入侵原因。

较佳的,所述第二处理单元进一步用于:

确定所述任意一条访问数据包含的访问指令中记录的访问路径信息;

对获得的访问路径信息进行解析,获得所述访问路径信息包含的子路径集合;

将所述子路径集合作为新的webshell特征集合;

在所述新的webshell集合和已确定的入侵原因之间建立关联关系,并将所述关联关系保存至相应的特征库中,其中,所述特征库用于记录webshell特征和入侵原因之间的关联关系。

较佳的,所述第二处理单元进一步用于:

在所述特征库中,每保存一个新的webshell特征,对应所述一个新的webshell特征设置相应的可信度,其中,一个webshell的可信度用于表征所述 一个webshell的被命中概率;

以及,在所述特征库中,每当一个webshell被命中,则对相应的可信度进行更新。

较佳的,所述第一处理单元进一步用于:

若将待分析的webshell文件与所述特征库匹配,并确定webshell文件与至少两个webshell特征匹配成功,则基于所述至少两个webshell特征中可信度最高的webshell特征确定相应的入侵原因。

本发明有益效果如下:

本申请实施例中,将待分析的webshell文件,与关联的访问日志中记录的每一条访问数据进行匹配,确定webshell文件与至少一条访问数据匹配成功时,对该至少一条访问数据进行解析,确定入侵原因。由于访问日志包含的访问数据中记录有大量的用户访问行为,因此,可以基于这些用户访问行为,准确分析出导致webshell入侵的原因。这样,不但提高了分析效率,同时也提高了分析准确度,也减少了对特征库的依赖性。

附图说明

图1为本申请实施例中入侵装置运行环境示意图;

图2为本申请实施例中解析webshell入侵原因流程图;

图3为本申请实施例中解析装置功能结构示意图。

具体实施方式

为了提高webshell入侵原因的分析效率以及提高分析准确度,本申请实施例中,在确定待分析的webshell文件后,基于与该webshell文件关联的服务器的访问日志(如,http访问日志),分析造成webshell入侵的原因,从而可迅速、准确地定位入侵原因,并且可以对特征库中记录的入侵原因进行及时补充。

下面结合附图对本申请优选的实施方式进行详细说明。

本申请实施例中,参阅图1所示,用于解析webshell文件的解析装置位于服务器侧,与保存有待分析的webshell文件的装置相连接,与保存有访问日志的装置相连接,以及与特征库相连接,其中,特征库中记录有各个webshell特征与入侵原因之间的关联关系。

参阅图2所示,本申请实施例中,对webshell入侵原因进行解析的详细流程如下:

步骤200:获取待分析的webshell文件。

本申请实施例中,所谓的webshell文件是指已确定包含webshell的文件。通常,一份webshell文件中记录有多个字段(又称字段信息),这些字段可以包含但不限于:文件名称、文件路径、文件内容中的任意一种或任意组合等等。

步骤201:将上述webshell文件与预设的特征库进行匹配,判断是否匹配成功?若是,则执行205;否则,执行步骤202。

本申请实施例中,特征库用于记录webshell特征与入侵原因之间的关联系统,进一步地,对应每一个webshell特征分别记录有相应的可信度,所谓的可信度,即是webshell特征在历史记录中的被命中概率。

例如,在特征库中,每一条记录由三个主要字段组成:入侵原因、特征表达式和可信度;其中,

入侵原因,用于描述存在某一个webshell特征时,系统是由什么原因入侵成功的;

特征表达式:用于描述某一webshell特征符合的格式;

如,一个特征表达式为:eq(“file_path”,”aaa”)&&in(“content”,”bbb”),该特征表达式表示,webshell文件的文件路径为”aaa”,并且文件内容包含”bbb”。

可信度,用于描述某一webshell特征在历史记录中的被命中概率。

具体的,本申请实施例中,将上述webshell文件与预设的特征库进行匹配时,需要基于webshell文件包含的各个字段,在预设的特征库中查找相匹配的 特征表达式,若查找到,则确定匹配成功,若未查找到,则确定匹配失败。

进一步地,若待分析的webshell文件与至少两个特征表达式匹配成功,则选取其中可信度取值最大的特征表达式作为匹配成功对象。

步骤202:获取与上述webshell文件关联的服务器的登录日志。

通常,webshell文件是设置在某一服务器上的后门文件,便于黑客随时对服务器进行攻击,因此,所有的webshell文件均存在相关联的服务器,进一步地,在步骤202中,需要在与webshell文件相关联的服务器上获取登录日志,较佳的,可以以webshell文件的创建时间为基准点,在基准点之前的第一时长或/和基准点之后的第二时长所对应的时间范围内,获取相应的登录日志。

步骤203:判断是否存在非法登录行为?若是,则执行步骤205;否则,执行步骤204。

由于服务器仅能由管理人员进行登录,因此,一旦发现存在非管理人员的登录行为,即可以判定为非法登录行为。

步骤204:判断是否与上述webshell文件相同的已分析成功案例。

在某些情况下,管理人员可能未及时将已分析成功的案例录入特征库,因此,可以在分析记录中,查找是否存在与上述webshell文件相同的已分析成功安例。

步骤205:确定入侵原因。

若webshell文件与特征库中的某一条webshell特征(以下称为特征x)匹配成功,则确定造成webshell文件入侵的原因,为对应特征x保存的入侵原因。进一步地,在确定入侵原因后,还需要对特征x对应的可信度进行更新,因为又实现了一次命中。

若与webshell文件相关联的服务器的登录日志表征存在非法登录行为,则定确定造成webshell文件入侵的原因是“登陆上传的”。

若存在与webshell文件相同的已分析成功的案例,则确定造成webshell文件入侵的原因,与该案例的入侵原因相同。

当然,在以下几种情况下,也可以执行相关步骤:

若预先已获知特征库中保存的webshell特征有限,不足以匹配成功,则可以不执行步骤201;

若预先已获知相关联的服务器上未保存有登陆日志,则可以不执行步骤202和步骤203;

若预先已获知不存在已分析成功的案例,则可以不执行步骤205。

步骤206:获取与web获取与webshell文件相关联的服务器的访问日志。

具体的,可以先确定以webshell文件创建时间为基准点的设定时长,再从与webshell文件相关联的服务器上获取上述设定时长内记录的访问日志,较佳的,上述设定时长,可以是上述基准点之前的第三时长或/和上述基准点之后的第四时长所对应的时间范围。

步骤207:分别将webshell文件与访问日志中记录的每一条访问数据进行匹配。

访问日志又称用户访问日志,记录了各个客户端访问服务器时的情况,访问日志中包含了多条访问数据,每条访问数据对应一次访问行为,通常,一条访问数据包含有客户端访问是发送的访问指令,而访问指令中至少包含访问路径信息和所述访问路径信息调用的相关参数。

例如,访问路径信息可以是统一资源定位(uniformresourcelocator,url)地址,调用的相关参数可以是传送(post)参数。

具体的,在执行步骤207时,需要将webshell文件中的每一个字段,分别与每一条访问数据中的访问指令进行匹配,确定任意一个字段记录在任意一个访问指令包含的访问路径信息或/和相关参数中时,确定匹配成功。

步骤208:基于匹配成功的访问数据确定入侵原因。

具体的,可以先确定匹配成功的访问数据包含的访问指令的指令类型,再基于该指令类型确定相应的入侵原因。

例如,假设访问指令的指令类型为应用程序编程接口(application programminginterface,api)访问,则确定入侵原因为“api漏洞”。

又例如,假设访问指令的指令类型为上传类访问,则确定入侵原因为“上传漏洞”。

又例如,假设访问指令的指令类型为命令执行类动作,则确定入侵原因为“命令执行漏洞”。

步骤209:对匹配成功的访问数据中包含的访问指令进行解析,提取出新的webshell特征集合。

具体的,在执行步骤209时,需要先确定匹配成功的访问数据所包含的访问指令中记录的访问路径信息;再对获得的访问路径信息进行解析,获得该访问路径信息包含的子路径集合,以及将获得的子路径集合作为新的webshell特征集合,并在新的webshell集合和已确定的入侵原因之间建立关联关系,再将该关联关系保存至相应的特征库中。

例如,以url地址为例,假设匹配成功的一条访问数据包含的访问指令中的url地址为:www.aa.com/bb/edit/cc/upload.php,其中,upload为上传命令,则确定入侵原因为“上传漏洞”。

其中,www.aa.com为源路径,通常情况下,webshell文件不可能保存在源路径下,因此,对url地址进行解析时,对源路径可以不予考虑。

那么,对上述url地址进行解析后,获得的多条子路径分别为/bb/ediit/cc/upload.php、/ediit/cc/upload.php和/cc/upload.php,这几条子路径便可以组成一个新的子路径集合,每一个子路径可以视为一个新的webshell特征,因此,可以将上述新的子路径集合称为新的webshell特征集合,以下称为webshell特征集合lll。

步骤210:将已确定的入侵原因和提取出的新的webshell特征之间的关联关系保存至特征库中。

例如,在webshell特征集合lll和入侵原因“上传漏洞”之间建立关联关系,再将新建的关联关系保存至特征库中,从而完成了特征库的更新。

这样,可以随时以自学习的方式随时对特征库进行自动更新,确保了特征库中保存的信息的及时性和可靠性。

进一步地,将上述webshell特征集合lll保存至特征库的过程中,较佳的,可以对应每一个新的webshell特征设置相应的可信度的初始值。

例如,可以分别针对/bb/ediit/cc/upload.php、/ediit/cc/upload.php和/cc/upload.php设置一个可信度的初始值,由于路径越复杂,越有可能是黑客隐藏的后门文件,因此,较佳的,可以针对/bb/ediit/cc/upload.php、设置一个可信度的初始值为80%,针对/ediit/cc/upload.php设置一个可信度的初始值为70%,以及针对/cc/upload.php设置一个可信度的初始值为60%。

在特征库中,任意一条webshell特征在匹配过程中一旦被命中,其对应的可信度的取值也会随之增加,这样,执行一段时间的匹配流程后,每一条webshell特征的可信度各不相同,且真实地反映了各个webshell的命中情况。

那么,当一个webshell文件一次命中至少两个webshell文件时,便可以自动优化匹配顺序,挑选可信度最高的webshell特征确定入侵原因。

基于上述实施例,参阅图3所示,本申请实施例中,解析装置至少包括获取单元30、第一处理单元31和第二处理单元32,其中,

获取单元30,用于获取待分析的webshell文件,以及获取与所述webshell文件关联的访问日志;

第一处理单元31,用于将所述webshell文件,分别与所述访问日志中记录的每一条访问数据进行匹配,获得匹配结果;

第二处理单元32,用于根据匹配结果确定所述webshell文件与至少一条访问数据匹配成功时,对所述至少一条访问数据进行解析,确定入侵原因。

较佳的,获取待分析的webshell文件之后,在获取与所述webshell文件关联的访问日志之前,第一处理单元31进一步执行以下操作中的任意一种或任意组合:

将所述webshell文件与预设的特征库进行匹配,并确定匹配未成功,其 中,所述特征库用于记录webshell特征和入侵原因之间的关联关系;

对与所述webshell文件相关联的服务器的登陆日志进行检测,确定未存在非法登陆行为;

确定在已分析成功的webshell案例中,不存在与所述webshell文件相同的webshell案例。

较佳的,获取与所述webshell文件关联的访问日志时,获取单元30用于;

确定以所述webshell文件创建时间为基准点的设定时长;

在与所述webshell文件相关联的服务器上获取所述设定时长内记录的访问日志。

较佳的,将所述webshell文件,与所述访问日志中记录的任意一条访问数据进行匹配,获得匹配结果时,第一处理单元31用于:

确定所述webshell文件的字段信息;

确定所述任意一条访问数据包含的访问指令;

判断所述webshell文件的字段信息是否记录在所述任意一条访问数据包含的访问指令中,若是,则判定匹配成功,否则,判定匹配失败。

较佳的,所述webshell文件的字段信息中至少包含文件名称、文件路径和文件内容中的一种或任意组合;

较佳的,一条访问数据包含的访问指令中,至少包含访问路径信息和所述访问路径信息调用的相关参数。

较佳的,对匹配成功的任意一条访问数据进行解析,确定入侵原因时,第二处理单元32用于:

确定所述任意一条访问数据包含的访问指令的指令类型;

基于所述指令类型确定相应的入侵原因。

较佳的,第二处理单元32进一步用于:

确定所述任意一条访问数据包含的访问指令中记录的访问路径信息;

对获得的访问路径信息进行解析,获得所述访问路径信息包含的子路径集合;

将所述子路径集合作为新的webshell特征集合;

在所述新的webshell集合和已确定的入侵原因之间建立关联关系,并将所述关联关系保存至相应的特征库中,其中,所述特征库用于记录webshell特征和入侵原因之间的关联关系。

较佳的,第二处理单元32进一步用于:

在所述特征库中,每保存一个新的webshell特征,对应所述一个新的webshell特征设置相应的可信度,其中,一个webshell的可信度用于表征所述一个webshell的被命中概率;

以及,在所述特征库中,每当一个webshell被命中,则对相应的可信度进行更新。

较佳的,第一处理单元31进一步用于:

若将待分析的webshell文件与所述特征库匹配,并确定webshell文件与至少两个webshell特征匹配成功,则基于所述至少两个webshell特征中可信度最高的webshell特征确定相应的入侵原因。

综上所述,本申请实施例中,将待分析的webshell文件,与关联的访问日志中记录的每一条访问数据进行匹配,确定webshell文件与至少一条访问数据匹配成功时,对该至少一条访问数据进行解析,确定入侵原因。由于访问日志包含的访问数据中记录有大量的用户访问行为,因此,可以基于这些用户访问行为,准确分析出导致webshell入侵的原因。这样,不但提高了分析效率,同时也提高了分析准确度,也减少了对特征库的依赖性。

进一步地,可以对匹配成功的访问数据进行解析,提取出新的webshell特征集合,再将新的webshell集合与已确定的入侵原因之间的关联关系保存至特征库中,从而令特征库中的信息得到了及时更新,保证了特征库中信息的完善性。

进一步地,针对特征库中的每一个webshell特征设置有相应的可信度,这样,可以自动优化各个webshell特征的匹配顺序,在与待分析的webshell文件进行匹配时,确保匹配结果的准确性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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