CN112491882A - webshell的检测方法、装置、介质及电子设备 - Google Patents

webshell的检测方法、装置、介质及电子设备 Download PDF

Info

Publication number
CN112491882A
CN112491882A CN202011358088.6A CN202011358088A CN112491882A CN 112491882 A CN112491882 A CN 112491882A CN 202011358088 A CN202011358088 A CN 202011358088A CN 112491882 A CN112491882 A CN 112491882A
Authority
CN
China
Prior art keywords
data
detection
webshell
service
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011358088.6A
Other languages
English (en)
Inventor
刘刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taikang Insurance Group Co Ltd
Original Assignee
Taikang Insurance Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taikang Insurance Group Co Ltd filed Critical Taikang Insurance Group Co Ltd
Priority to CN202011358088.6A priority Critical patent/CN112491882A/zh
Publication of CN112491882A publication Critical patent/CN112491882A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例提供了一种webshell的检测方法、装置、介质和电子设备,涉及计算机技术领域,所述检测方法包括:获取请求来源和请求目的之间的业务的业务数据;根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测,得到检测结果,其中,若与请求数据对应的响应数据中含有非业务功能的异常数据,则属于webshell数据;若请求数据的数据流量占所述业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;若所述业务数据符合设定的检测模型,则属于webshell数据。本发明实施例的技术方案可以实现对webshell的检测。

Description

webshell的检测方法、装置、介质及电子设备
技术领域
本发明涉及计算机软件技术领域,具体而言,涉及一种webshell的检测方法、装置、计算机可读存储介质和电子设备。
背景技术
webshell是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,是一种网站服务器的脚本程序,也可以称为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php网页文件与网站服务器目录下正常的网页文件混在一起,之后使用浏览器来访问asp或者php网页文件,即能得到一个命令执行环境,以达到控制网站服务器的目的。
webshell具有非常强的隐蔽性,其可以隐藏在正常文件中并修改文件时间达到隐蔽的目标,还可以利用服务器漏洞进行隐藏,如"…"目录实现隐蔽的目标,这种情况下,站长从FTP中找到的是含有“…”的文件夹,而且没有权限删除,还有一些隐藏的webshell可以隐藏于正常文件带参数运行脚本程序。webshell还可以穿越服务器防火墙,并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难找出入侵痕迹的。
因此,需要一种新的webshell的检测方法来对webshell进行检测。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施例的目的在于提供一种webshell的检测方法、装置、计算机可读存储介质和电子设备,进而至少在一定程度上实现对webshell的检测。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明实施例的第一方面,提供了一种webshell的检测方法,所述检测方法包括:获取请求来源和请求目的之间的业务的业务数据;根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测,得到检测结果,其中,所述检测规则包括:第一规则:若与请求数据对应的响应数据中含有非业务功能的异常数据,则属于webshell数据;第二规则:若请求数据的数据流量占所述业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;第三规则:若所述业务数据符合设定的检测模型,则属于webshell数据,其中,所述检测模型根据公开的webshell样本数据建立。
在一些实施例中,所述获取请求来源和请求目的之间的业务的业务数据之前,所述检测方法还包括:获取所述请求来源和请求目的之间的业务的数据包;根据http请求的请求行的参数、请求数据和响应数据对所述数据包进行处理,得到所述业务数据。
在一些实施例中,所述选择检测规则中的至少一个对所述业务数据进行webshell检测,包括:选择三个规则中的任意一个规则对所述业务数据进行webshell检测;或者,选择三个规则中的任意两个规则对所述业务数据进行webshell检测;或者,选择所述第一规则、所述第二规则和所述第三规则对所述业务数据进行webshell检测。
在一些实施例中,所述根据http请求的请求行的参数、请求数据和响应数据对所述数据包进行处理,还包括:获取所述请求来源和请求目的之间的业务流量的数据包;将所述数据包存储到任务缓存中;启动第一数量的线程对所述数据包进行处理,所述线程的数量由线程计数器计算;每接受一个处理数据包的任务,所述线程计数器减1,每结束一个处理数据包的任务,所述线程计数器加1;当所述线程计数器的计数等于第二数量时,自动新增分配第三数量的线程。
在一些实施例中,所述得到检测结果之后,所述检测方法还包括:将识别出的webshell以及所述业务的请求数据和响应数据保存到分布式存储的数据库中。
在一些实施例中,所述根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测之前,所述检测方法还包括:根据所述webshell样本的hash值、变种hash、字节码特征建立模型。
在一些实施例中,所述选择检测规则中的至少一个对所述业务数据进行webshell检测,包括:选择所述检测规则中的至少两个对所述业务数据进行webshell检测,其中,根据设定的检测规则的顺序依次进行webshell检测;和/或,设置host优先级,根据所述host优先级确定对不同业务系统进行webshell检测的检测顺序。
根据本发明实施例的第二方面,提供了一种webshell的检测装置,所述检测装置包括:获取单元,用于获取请求来源和请求目的之间的业务的业务数据;检测单元,用于根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测,得到检测结果,其中,所述检测规则包括:第一规则:若请求数据的返回结果中含有非业务功能的异常数据,则属于webshell数据;第二规则:若请求数据的数据流量占所述业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;第三规则:若所述业务数据符合设定的检测模型,则属于webshell数据,其中,所述检测模型根据公开的webshell样本数据建立。
在一些实施例中,所述检测装置还包括:处理单元,用于获取所述请求来源和请求目的之间的业务的数据包,并根据http请求的请求行的参数、请求数据和响应数据对所述数据包进行处理,得到所述业务数据。
在一些实施例中,所述检测单元还用于:选择三个规则中的任意一个规则对所述业务数据进行webshell检测;或者,选择三个规则中的任意两个规则对所述业务数据进行webshell检测;或者,选择所述第一规则、所述第二规则和所述第三规则对所述业务数据进行webshell检测。
在一些实施例中,所述处理单元还用于:获取所述请求来源和请求目的之间的业务流量的数据包;将所述数据包存储到任务缓存中;启动第一数量的线程对所述数据包进行处理,所述线程的数量由线程计数器计算;每接受一个处理数据包的任务,所述线程计数器减1,每结束一个处理数据包的任务,所述线程计数器加1;当所述线程计数器的计数等于第二数量时,自动新增分配第三数量的线程。
在一些实施例中,所述检测装置还包括保存单元,用于将识别出的webshell以及所述业务的请求数据和响应数据保存到分布式存储的数据库中。
在一些实施例中,所述检测装置还包括建模单元们,用于:根据所述webshell样本的hash值、变种hash、字节码特征建立模型。
在一些实施例中,所述检测单元还用于选择所述检测规则中的至少两个对所述业务数据进行webshell检测,其中,根据设定的检测规则的顺序依次进行webshell检测;和/或,在设置host优先级后,根据所述host优先级确定对不同业务系统进行webshell检测的检测顺序。
根据本发明实施例的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中第一方面所述的webshell的检测方法。
根据本发明实施例的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中第一方面所述的webshell的检测方法。
本发明实施例提供的技术方案可以包括以下有益效果:
在本发明的一些实施例所提供的技术方案中,通过获取请求来源和请求目的之间的业务的业务数据,并选取至少一个检测规则对该业务数据进行webshell检测,实现了对webshell的检测。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术相关人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本发明一种实施例的webshell的检测方法的流程图;
图2示意性示出了根据本发明一种实施例中数据包的处理方法的流程图;
图3示意性示出了根据本发明一种实施例的webshell的检测方法的流程图;
图4示意性示出了根据本发明的实施例的webshell的检测装置的方框图;
图5示意性示出了适于用来实现本发明实施例的电子设备的计算机系统的结构图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术中,webshell常用于实现控制网站服务器的非法目的,webshell具有较强的隐蔽性,较难被检测到。
为解决上述问题,本发明实施例提供一种webshell的检测方法。
图1示意性示出了本公开示例性实施方式的一种webshell的检测方法。本公开实施例提供的方法可以由任意具备计算机处理能力的电子设备执行,例如终端设备和/或服务器。参考图1,该webshell的检测方法可以包括以下步骤:
步骤S102,获取请求来源和请求目的之间的业务的业务数据。
步骤S104,根据检测时效和业务的业务需求选择检测规则中的至少一个对业务数据进行webshell检测,得到检测结果。其中,检测规则包括:第一规则:若与请求数据对应的响应数据中含有非业务功能的异常数据,则属于webshell数据;第二规则:若请求数据的数据流量占业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;第三规则:若业务数据符合设定的检测模型,则属于webshell数据,其中,检测模型根据公开的webshell样本数据建立。
本公开实施例的技术方案中,在业务系统中,获取某一业务在该业务的请求来源和请求目的之间的业务数据,并选择检测规则对该业务数据进行webshell检测,通过对解析后的业务数据使用检测规则进行webshell检测,实现了对业务系统的webshell检测。
在本公开实施例中,业务系统采用http协议,http协议是一个无状态的请求/响应协议,通过对网络请求信息的获取来探索网站的整体架构,包括发现被检测对象存在多少个页面,每一个页面需要哪些参数。
在步骤S102之前,需要获取请求来源和请求目的之间的业务的数据包,并根据http请求的请求行的参数、请求数据和响应数据对数据包进行处理,得到业务数据。这些工作由业务流量接入模块完成。
业务流量接入模块用于记录请求来源和请求目的之间的业务流量,业务流量的所有的数据包请求都将经过该业务流量接入模块,并将四层的网络数据包还原为7层的应用数据包。步骤S102中的业务数据即该应用数据包中的数据。
根据http请求的请求行的参数、请求数据和响应数据进行处理时,可以根据请求行的参数对数据包进行处理。
具体地,请求行的参数可以为请求方法(Get/Post)、请求host。这时,处理内容可以为将http数据包中的cookie字段全部内容删除。
请求行的参数还可以为请求协议、请求方法(Get/Post/Trunk)、请求URL。
请求行的参数还可以为请求协议、请求方法(Get/Post/Trunk)、请求host、请求URL、请求参数。
此外,还可以根据http请求的请求行的参数、请求数据和响应数据对数据包进行处理。
对数据包的处理,还可以根据响应数据的结果特征进行数据处理。
对业务数据的数据包的处理,实现了对业务流量的获取和还原,并利用还原得到的业务数据进行webshell检测,检测方法较为简单,检测效果较好。
本公开实施例的技术方案中,还采用规则管理模块对webshell检测过程中的必要数据进行获取和维护。
这些必要数据可以为文件的hash值、字节码的数据规则、响应数据的结果特征、请求流量阈值、协议特征、检测优先级、记录的时长、登录凭证、https证书、数据匹配字段维护、处理优先级等信息。
这里,请求流量阈值即为上述第一阈值。
具体地,规则管理模块对特定监控点的webshell进行爬取和分析,对已知webshell进行hash处理,并将得到的hash值同步到webshell的检测系统中。
规则管理模块对特定行为沙箱的分析结果进行获取,对已知字节码特征的webshell进行处理,并将得到的字节码特征值同步到webshell的检测系统中。
规则管理模块对常见webshell的响应数据中的特定分析结果进行获取,并将得到的响应数据的结果特征同步到webshell的检测系统中。
规则管理模块根据域名/IP对请求流量的阈值进行学习,并将学习得到的请求流量阈值即第一阈值同步到webshell的检测系统中。
此外,规则管理模块还可以根据攻防的动态结果,对常见针特定协议或编码进行维护和管理,例如trunk的编码,进行有针对性的分析。还可以根据域名/IP,对请求流量中检测规则的先后顺序进行管理和维护。还可以根据域名/IP,对记录请求数据的时间长度进行管理和维护。在待检测的业务系统属于https时,支持将https的证书导入检测系统中。
规则管理模块还可以用于维护精准的的匹配字段,例如:某webshell系统使用user_token来验证用户身份,用户手机号的字段是user_p等,提升是否存在越权漏洞的精准性。
这些同步到webshell的检测系统中的必要数据,可以应用在各个检测规则中。及时获取必要数据并同步到webshell的检测系统的规则库中,可以提高webshell检测的准确性。
针对大流量业务,如图2所示,在根据http请求的请求行的参数、请求数据和响应数据对数据包进行处理时,可以采用以下步骤:
步骤S201,获取请求来源和请求目的之间的业务流量的数据包。
步骤S202,将数据包存储到任务缓存中,其中,每个数据包包含多个扫描任务。
步骤S203,启动第一数量的线程对数据包进行处理,线程的数量由线程计数器计算。
步骤S204,判断是否接受一个处理数据包的任务,若是,即执行步骤S205,每接受一个处理数据包的任务,线程计数器减1。若否,则执行步骤S206。
步骤S206,判断是否结束一个处理数据包的任务,若是,即执行步骤S207,每结束一个处理数据包的任务,线程计数器加1。若否,则执行步骤S208。
步骤S208,判断线程计数器的技术是否等于第二数量,若是,即当线程计数器的计数等于第二数量时,执行步骤S209,自动新增分配第三数量的线程。若否,执行步骤S204。
其中,第一数量为1000,第二数量为800,第三数量为1000时,检测引擎默认启动1000个线程进行处理,每个线程处理一个数据包的请求任务和响应任务,接收任务后,线程计数器减1。数据包处理完毕后,线程计数器加1。当线程计数器到达800时,系统自动新增分配1000个线程。
在步骤S104之前,需要根据webshell样本的hash值、变种hash值、字节码特征值建立模型。这里,webshell样本的hash值、变种hash值和字节码特征值可以由规则管理模块获取并同步到webshell检测系统中保存。模型建立模块根据这些参数建立检测模型。具体地,在建立检测模型时,采集公开的webshell样本,对样本进行预处理后进行解析,得到hash值、变种hash值、字节码特征值等数据,并建立检测模型。
在步骤S104中,可以选择三个规则中的任意两个规则对业务数据进行webshell检测;或者,选择三个规则中的任意一个规则对业务数据进行webshell检测;或者,选择第一规则、第二规则和第三规则对业务数据进行webshell检测。
大多webshell中,请求数据对应的响应数据中明显含有非业务功能的异常。正常业务的返回数据中返回的是业务的业务功能和业务数据,不可能返回执行操作系统命令的返回结果或操作系统命令。例如,返回结果中含有ifconfig以及对应的IP信息等特征,即为执行操作系统命令的返回结果或操作系统命令。应用该第一规则,可以通过对响应数据中的非业务功能的识别进行webshell检测。
正常业务的请求数据的流量具有一定的特征。例如,通过对历史数据的学习,可以发现在上午9:00-11:00为业务请求的高峰,业务功能文件的流量占整体流量50%。出现异常时,典型特征为某个从未访问的页面峰值陡增,请求占该业务流量的50%,甚至更高,则认为是webshell。这里,上述第一阈值即为50%,应用该第二规则,可以通过业务的请求数据的流量进行webshell检测。
应用该第三规则使用上述检测模型并对业务中的业务数据进行分析,也可以检测webshell。
根据不同的业务需求和检测时效的要求,可以选择不同的检测规则,也可以对检测规则的执行顺序进行调配。例如,针对业务请求不大的非保险核心业务,使用可以使用第一规则和第二规则相结合的模式,快速进行检测;针对业务时效性较高的保险业务,可以使用单独使用第三规则的模型进行深度检测。
如果使用两种检测规则相结合的模式,可以是先使用一种检测规则对业务数据进行检测,得到初次检测结果,再使用另一种检测规则检测初次检测结果,得到最终检测结果;也可以是分别使用两种检测规则对业务数据进行检测,并且各自检测结果的交集作为最终检测结果。
如果使用三种检测规则相结合的模式,可以按照设定的顺序依次使用三种检测规则对业务数据进行检测,得到最终检测结果;也可以是分别使用三种检测规则对业务数据进行检测,并且各自检测结果的交集作为最终检测结果;也可以按照其他检测顺序进行检测,在此不一一列举。
在步骤S104之后,得到检测结果之后,检测方法还包括:将识别出的webshell以及业务的请求数据和响应数据保存到分布式存储的数据库中。具体地,将识别出来的webshell,以及http请求相关的请求数据和响应数据保存到分布式文件存储的数据库中。安全分析人员可以根据存储在分布式文件存储的数据库中的这些数据,对检测结果的真实性和有效性进行确认。
在步骤S104中,还可以设置host优先级,根据host优先级确定对不同业务系统的webshell检测的检测顺序。
这里,host是http请求头中的一个字段,通过业务的http请求的该字段进行设置,可以确定不同业务的优先级。例如,某业务系统正在进行越权的检测,系统优先级为5;一旦有更紧急的检测任务,可通过设置host优先级,检测优先级高的系统。
在本公开一种实施例中,A系统采用http协议。
A系统被入侵并被上传webshell脚本程序,通过这个webshell,攻击者可以获取服务器的操作权限。
用户在对保险业务中的请求数据进行分析和匹配,检测是否存在上传webshell,使用webshell对系统进行攻击的情况。
正常用户使用A系统所提供的功能时,通过对http数据进行解析,用户可以查看自己的业务功能。
本发明实施例通过接口日志、流量镜像等手段,获取A系统的业务的业务流量,并对业务流量的数据包进行解析,根据解析得到的对比hash值、文件特征码、文件的请求时间、请求流量、请求头与请求结果的关联关系等特征,选取适当的检测规则进行检测,并将检测到的webshell发送到后端进行最终确认。
在本公开实施例中,可以依次使用第一规则、第二规则和第三规则进行检测,这时候,可以发现响应数据的数据包中含有明显的非业务请求数据、某个不常使用的页面突然之间请求流量陡增、请求页面的hash、字节码特征与检测模型中hash值和字节码特征值匹配。
第一规则的原理是,攻击者对系统进行控制前,需要上传对操作系统进行控制的小型代码执行环境,用于确认是否能够对服务器或系统进行控制。这些代码执行环境通常执行对操作系统的命令执行结果,例如查看系统的用户、查看系统的IP地址等操作系统命令,操作本与正常的业务功能和数据有非常明显的区别。例如,在查看所有用户的业务操作功能的返回解中,突然执行了whoami的系统命令。
第二规则的原理是,攻击者通过webshell进行控制后,所有的攻击请求都需要通过这个webshell,导致请求流量陡增或明显的特征。例如,传输的来往数据包较大且使用了加密信息。
第三规则的原理是,通过对样本webshell的分析和学习,建立检测模型,该检测模型中,包含了hash值、变种hash值、以及字节码特征值等参数值,且并不局限于此。这些参数值都是较为典型的webshell参数值,因此,与该检测模型中的相关参数值匹配的业务数据极大可能为webshell数据。
具体地,如图3所示,针对上述系统A,本公开实施例提供一种webshell的检测方法,包括以下步骤:
步骤S301,获取http请求中的请求行的参数、请求数据和响应数据的内容。
步骤S302,基于检测系统的规则库,根据获取的hash值、字节码特征值、请求数量、文件的时长等必要数据,对上述内容进行分析,得到响应数据。
步骤S303,对响应数据和正常请求所返回的响应数据进行对比。
步骤S304,若对比结果符合设定的结果,则执行步骤S305。若否,则执行步骤S301。
步骤S305,存在webshell。
本发明实施例提供的webshell的检测方法,通过获取请求来源和请求目的之间的业务的业务数据,并选取至少一个检测规则对该业务数据进行webshell检测,实现了对webshell的检测。
以下介绍本发明的装置实施例,可以用于执行本发明上述的webshell的检测方法。如图4所示,根据本发明实施例提供的一种webshell的检测装置400可以包括:
获取单元402,用于获取请求来源和请求目的之间的业务的业务数据。
检测单元404,用于根据检测时效和业务的业务需求选择检测规则中的至少一个对业务数据进行webshell检测,得到检测结果,其中,检测规则包括:第一规则:若请求数据的返回结果中含有非业务功能的异常数据,则属于webshell数据;第二规则:若请求数据的数据流量占业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;第三规则:若业务数据符合设定的检测模型,则属于webshell数据,其中,检测模型根据公开的webshell样本数据建立。
检测装置还可以包括:处理单元,用于获取请求来源和请求目的之间的业务的数据包,并根据http请求的请求行的参数、请求数据和响应数据对数据包进行处理,得到业务数据。
检测单元还可以用于:选择三个规则中的任意一个规则对业务数据进行webshell检测;或者,选择三个规则中的任意两个规则对业务数据进行webshell检测;或者,选择第一规则、第二规则和第三规则对业务数据进行webshell检测。
处理单元还可以用于:获取请求来源和请求目的之间的业务流量的数据包;将数据包存储到任务缓存中;启动第一数量的线程对数据包进行处理,线程的数量由线程计数器计算;每接受一个处理数据包的任务,线程计数器减1,每结束一个处理数据包的任务,线程计数器加1;当线程计数器的计数等于第二数量时,自动新增分配第三数量的线程。
检测装置还可以包括保存单元,用于将识别出的webshell以及业务的请求数据和响应数据保存到分布式存储的数据库中。
检测装置还可以包括建模单元们,用于:根据webshell样本的hash值、变种hash、字节码特征建立模型。
检测单元还用于选择检测规则中的至少两个对业务数据进行webshell检测,其中,根据设定的检测规则的顺序依次进行webshell检测;和/或,在设置host优先级后,根据host优先级确定对不同业务系统进行webshell检测的检测顺序。
由于本发明的示例实施例的webshell的检测装置的各个功能模块与上述webshell的检测方法的示例实施例的步骤对应,因此对于本发明装置实施例中未披露的细节,请参照本发明上述的webshell的检测方法的实施例。
本发明实施例的webshell的检测装置,通过获取请求来源和请求目的之间的业务的业务数据,并选取至少一个检测规则对该业务数据进行webshell检测,实现了对webshell的检测。
下面参考图5,其示出了适于用来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备的计算机系统500仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分505加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的webshell的检测方法。
例如,所述的电子设备可以实现如图1、图2和图3中所示的各个步骤。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本发明实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种webshell的检测方法,其特征在于,所述检测方法包括:
获取请求来源和请求目的之间的业务的业务数据;
根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测,得到检测结果,其中,所述检测规则包括:
第一规则:若与请求数据对应的响应数据中含有非业务功能的异常数据,则属于webshell数据;
第二规则:若请求数据的数据流量占所述业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;
第三规则:若所述业务数据符合设定的检测模型,则属于webshell数据,其中,所述检测模型根据公开的webshell样本数据建立。
2.根据权利要求1所述的检测方法,其特征在于,所述获取请求来源和请求目的之间的业务的业务数据之前,所述检测方法还包括:
获取所述请求来源和请求目的之间的业务的数据包;
根据http请求的请求行的参数、请求数据和响应数据对所述数据包进行处理,得到所述业务数据。
3.根据权利要求1所述的检测方法,其特征在于,所述选择检测规则中的至少一个对所述业务数据进行webshell检测,包括:
选择三个规则中的任意一个规则对所述业务数据进行webshell检测;或者,
选择三个规则中的任意两个规则对所述业务数据进行webshell检测;或者,
选择所述第一规则、所述第二规则和所述第三规则对所述业务数据进行webshell检测。
4.根据权利要求2所述的检测方法,其特征在于,所述根据http请求的请求行的参数、请求数据和响应数据对所述数据包进行处理,还包括:
获取所述请求来源和请求目的之间的业务流量的数据包;
将所述数据包存储到任务缓存中;
启动第一数量的线程对所述数据包进行处理,所述线程的数量由线程计数器计算;
每接受一个处理数据包的任务,所述线程计数器减1,每结束一个处理数据包的任务,所述线程计数器加1;
当所述线程计数器的计数等于第二数量时,自动新增分配第三数量的线程。
5.根据权利要求1所述的检测方法,其特征在于,所述得到检测结果之后,所述检测方法还包括:将识别出的webshell以及所述业务的请求数据和响应数据保存到分布式存储的数据库中。
6.根据权利要求1所述的检测方法,其特征在于,所述根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测之前,所述检测方法还包括:根据所述webshell样本的hash值、变种hash值、字节码特征值建立模型。
7.根据权利要求6所述的检测方法,其特征在于,所述选择检测规则中的至少一个对所述业务数据进行webshell检测,包括:选择所述检测规则中的至少两个对所述业务数据进行webshell检测,其中,根据设定的检测规则的顺序依次进行webshell检测;和/或,设置host优先级,根据所述host优先级确定对不同业务系统进行webshell检测的检测顺序。
8.一种webshell的检测装置,其特征在于,所述检测装置包括:
获取单元,用于获取请求来源和请求目的之间的业务的业务数据;
检测单元,用于根据检测时效和所述业务的业务需求选择检测规则中的至少一个对所述业务数据进行webshell检测,得到检测结果,其中,所述检测规则包括:
第一规则:若请求数据的返回结果中含有非业务功能的异常数据,则属于webshell数据;
第二规则:若请求数据的数据流量占所述业务的整体流量的比值大于等于设定的第一阈值,则属于webshell数据;
第三规则:若所述业务数据符合设定的检测模型,则属于webshell数据,其中,所述检测模型根据公开的webshell样本数据建立。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7中任一项所述的webshell的检测方法。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的webshell的检测方法。
CN202011358088.6A 2020-11-27 2020-11-27 webshell的检测方法、装置、介质及电子设备 Pending CN112491882A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011358088.6A CN112491882A (zh) 2020-11-27 2020-11-27 webshell的检测方法、装置、介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011358088.6A CN112491882A (zh) 2020-11-27 2020-11-27 webshell的检测方法、装置、介质及电子设备

Publications (1)

Publication Number Publication Date
CN112491882A true CN112491882A (zh) 2021-03-12

Family

ID=74936268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011358088.6A Pending CN112491882A (zh) 2020-11-27 2020-11-27 webshell的检测方法、装置、介质及电子设备

Country Status (1)

Country Link
CN (1) CN112491882A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800427A (zh) * 2021-04-08 2021-05-14 北京邮电大学 webshell检测方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107302586A (zh) * 2017-07-12 2017-10-27 深信服科技股份有限公司 一种Webshell检测方法以及装置、计算机装置、可读存储介质
CN107689940A (zh) * 2016-08-04 2018-02-13 深圳市深信服电子科技有限公司 WebShell检测方法及装置
CN109905385A (zh) * 2019-02-19 2019-06-18 中国银行股份有限公司 一种webshell检测方法、装置及系统
CN109948339A (zh) * 2019-03-20 2019-06-28 国家计算机网络与信息安全管理中心 一种基于机器学习的恶意脚本检测方法
CN110417718A (zh) * 2018-12-27 2019-11-05 腾讯科技(深圳)有限公司 处理网站中的风险数据的方法、装置、设备及存储介质
CN111614599A (zh) * 2019-02-25 2020-09-01 北京金睛云华科技有限公司 基于人工智能的webshell检测方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107689940A (zh) * 2016-08-04 2018-02-13 深圳市深信服电子科技有限公司 WebShell检测方法及装置
CN107302586A (zh) * 2017-07-12 2017-10-27 深信服科技股份有限公司 一种Webshell检测方法以及装置、计算机装置、可读存储介质
CN110417718A (zh) * 2018-12-27 2019-11-05 腾讯科技(深圳)有限公司 处理网站中的风险数据的方法、装置、设备及存储介质
CN109905385A (zh) * 2019-02-19 2019-06-18 中国银行股份有限公司 一种webshell检测方法、装置及系统
CN111614599A (zh) * 2019-02-25 2020-09-01 北京金睛云华科技有限公司 基于人工智能的webshell检测方法和装置
CN109948339A (zh) * 2019-03-20 2019-06-28 国家计算机网络与信息安全管理中心 一种基于机器学习的恶意脚本检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
戴桦;李景;卢新岱;孙歆;: "智能检测WebShell的机器学习算法", 网络与信息安全学报, no. 04, pages 52 - 53 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112800427A (zh) * 2021-04-08 2021-05-14 北京邮电大学 webshell检测方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US10834051B2 (en) Proxy server-based malware detection
US20180121657A1 (en) Security risk evaluation
CN111416811B (zh) 越权漏洞检测方法、系统、设备及存储介质
CN111416822B (zh) 访问控制的方法、电子设备和存储介质
CN110300133B (zh) 跨域数据传输方法、装置、设备及存储介质
US20110314558A1 (en) Method and apparatus for context-aware authentication
CN107465693B (zh) 请求消息处理方法和装置
US10250605B2 (en) Combining a set of risk factors to produce a total risk score within a risk engine
CN110113366B (zh) Csrf漏洞的检测方法及装置,计算设备和存储介质
CN111683047B (zh) 越权漏洞检测方法、装置、计算机设备及介质
CN107133516B (zh) 一种权限控制方法和系统
CN111104675A (zh) 系统安全漏洞的检测方法和装置
CN109547426B (zh) 业务响应方法及服务器
CN112738100A (zh) 数据访问的鉴权方法、装置、鉴权设备和鉴权系统
CN110704820A (zh) 登录处理方法、装置、电子设备和计算机可读存储介质
CN110708335A (zh) 访问认证方法、装置及终端设备
CN105022939A (zh) 信息验证方法及装置
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
CN113472798B (zh) 一种网络数据包的回溯解析方法、装置、设备及介质
CN112491882A (zh) webshell的检测方法、装置、介质及电子设备
CN113783975A (zh) 基于本地dns服务器的请求管理方法、装置、介质及设备
CN112905990A (zh) 一种访问方法、客户端、服务端及访问系统
CN107018140B (zh) 一种权限控制方法和系统
CN114297639A (zh) 一种接口调用行为的监测方法、装置、电子设备及介质
CN110401674B (zh) 数据访问方法、装置、系统、电子设备及计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210312