CN110505247B - 攻击检测方法、装置、电子设备及存储介质 - Google Patents
攻击检测方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110505247B CN110505247B CN201910926737.9A CN201910926737A CN110505247B CN 110505247 B CN110505247 B CN 110505247B CN 201910926737 A CN201910926737 A CN 201910926737A CN 110505247 B CN110505247 B CN 110505247B
- Authority
- CN
- China
- Prior art keywords
- command
- data corresponding
- runtime data
- historical
- cache information
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic 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)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了攻击检测方法、装置、电子设备及存储介质,涉及网络安全技术领域。具体实现方案为:在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用钩子程序获取执行的命令对应的运行时数据;根据历史执行的命令对应的运行时数据生成历史缓存信息;将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比;根据对比结果对当前执行的命令进行攻击检测。本申请实施例使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,不依赖于已知规则和特征,可以检出隐蔽的0day攻击,且检测的准确度更高,误报更少。
Description
技术领域
本申请涉及一种信息技术领域,尤其涉及一种网络安全技术领域。
背景技术
互联网公司的Web(World Wide Web,即全球广域网,也称为万维网)服务由于暴露在公网上,往往成为黑客组织打入企业内部网络的入口和跳板。
传统的Web安全防护技术通常是基于已知规则进行构建的,对未知攻击很难进行识别。此外,由于外界攻击对抗技术日益升级,新的漏洞与威胁层出不穷,传统的基于已知规则构建的WAF(英文:Web Application Firewall,Web应用防火墙)需要投入额外的人力进行规则编写与运营。
基于机器学习的攻击识别在误报率上无法精确控制,会增加不少报警运营的人力成本。机器学习识别本质上是基于概率的分类,误报问题无法彻底解决,对于安全人员来说不够灵活,并且规则升级过程也比较复杂。
发明内容
本申请实施例提出一种攻击检测方法、装置、电子设备及存储介质,以至少解决现有技术中的以上技术问题。
第一方面,本申请实施例提供了一种攻击检测方法,包括:
在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用钩子程序获取执行的命令对应的运行时数据;
根据历史执行的命令对应的运行时数据生成历史缓存信息;
将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比;
根据对比结果对当前执行的命令进行攻击检测。
本申请实施例中,使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,不依赖于已知规则和特征,可以检出隐蔽的0day攻击,且检测的准确度更高,误报更少。
在一种实施方式中,根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:
对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
将第一语法结构信息保存为历史缓存信息。
本申请实施例中,对运行时数据的语法结构进行解析,将解析结果保存为历史缓存信息,为后续步骤根据历史缓存信息进行对比奠定了数据分析的基础。
在一种实施方式中,将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比,包括:
对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
获取与当前执行的命令对应的历史缓存信息;
将第二语法结构信息与历史缓存信息进行对比。
本申请实施例中,使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,使得检测的准确度更高,误报更少。
在一种实施方式中,根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:通过调用栈生成历史缓存信息的缓存标识;
获取与当前执行的命令对应的历史缓存信息,包括:通过缓存标识获取与当前执行的命令对应的历史缓存信息。
本申请实施例中,通过使用缓存标识可以精确定地位到缓存位置,以便获取到历史缓存信息的准确数据,进一步保证攻击检测的准确性。
在一种实施方式中,根据对比结果对当前执行的命令进行攻击检测,包括:
若当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度大于等于预设的差异度阈值,则将当前执行的命令识别为攻击。
本申请实施例中,根据当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度进行攻击检测,不依赖于已知规则和特征,不受到特定业务环境的限制,不受攻击场景的限制,能够达到更好的检测效果。
在一种实施方式中,上述方法还包括:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将当前执行的命令识别为攻击。
本申请实施例中,通过检测敏感词可以识别出较为明显的攻击,在此基础上可以实施流量阻断,进一步保障***的安全。
第二方面,本申请实施例提供了一种攻击检测装置,包括:
数据获取单元,用于:在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用钩子程序获取执行的命令对应的运行时数据;
生成单元,用于:根据历史执行的命令对应的运行时数据生成历史缓存信息;
对比单元,用于:将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比;
第一检测单元,用于:根据对比结果对当前执行的命令进行攻击检测。
在一种实施方式中,生成单元包括:
第一解析子单元,用于:对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
保存子单元,用于:将第一语法结构信息保存为历史缓存信息。
在一种实施方式中,对比单元包括:
第二解析子单元,用于:对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
缓存获取子单元,用于:获取与当前执行的命令对应的历史缓存信息;
对比子单元,用于:将第二语法结构信息与历史缓存信息进行对比。
在一种实施方式中,生成单元用于:通过调用栈生成历史缓存信息的缓存标识;
缓存获取子单元用于:通过缓存标识获取与当前执行的命令对应的历史缓存信息。
在一种实施方式中,第一检测单元用于:
若当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度大于等于预设的差异度阈值,则将当前执行的命令识别为攻击。
在一种实施方式中,上述装置还包括第二检测单元,第二检测单元用于:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将当前执行的命令识别为攻击。
第三方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意一项实施例所提供的方法。
第四方面,本申请实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使该计算机执行本申请任意一项实施例所提供的方法。
上述申请中的一个实施例具有如下优点或有益效果:使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,不依赖于已知规则和特征,可以检出隐蔽的0day攻击,且检测的准确度更高,误报更少。
上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请实施例的攻击检测方法的流程图;
图2是根据本申请实施例的攻击检测方法的整体架构图;
图3是根据本申请实施例的攻击检测方法的SQL注入检测流程图;
图4是根据本申请实施例的攻击检测装置的结构示意图;
图5是根据本申请实施例的攻击检测装置的生成单元的结构示意图;
图6是根据本申请实施例的攻击检测装置的对比单元的结构示意图;
图7是用来实现本申请实施例的攻击检测方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
传统的Web攻击检测方案是Web应用防火墙(英文:Web Application Firewall,简称WAF)。WAF部署方式一般是透明串接、旁路接入、云WAF接入。这三种接入方式以不同的形式获取外界与Web服务的网络流量,并基于一些已知的攻击特征,使用正则表达式、字符串匹配等方式编写检测规则,从而防御外界已知的Web网络攻击。由于传统的Web安全防护技术,如上述WAF,还有IDS(Intrusion Detection Systems,入侵检测***)、IPS(IntrusionPrevention System,入侵防御***)通常是基于已知规则进行构建的,因此对一些0day级别的未知攻击很难进行识别。其中,0day泛指所有在官方发布该作品之前或者当天。早期的0day表示在软件发行后的24小时内就出现破解版本,现在已经引申了这个含义,只要是在软件或者其他东西发布后,在最短时间内出现相关破解版本的,都可以叫做0day级别。
图1是根据本申请实施例的攻击检测方法的流程图。参见图1,该攻击检测方法包括:
步骤S110,在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用钩子程序获取执行的命令对应的运行时数据;
步骤S120,根据历史执行的命令对应的运行时数据生成历史缓存信息;
步骤S130,将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比;
步骤S140,根据对比结果对当前执行的命令进行攻击检测。
在一个示例中,攻击检测的产品部署方式可以是在Web应用服务器环境中安装检测agent(代理),该agent针对特定语言的一些危险函数进行运行时HOOK(钩子)操作,获取Web服务的运行时数据,基于这些数据执行检测逻辑。其中,特定语言可包括PHP(HypertextPreprocessor,超文本预处理器)或Java。HOOK是在命令所执行的原始函数中***一个自定义的函数执行的技术,利用HOOK技术可以修改目标进程的某个函数的执行功能。HOOK通过截取函数来改变或增加***方法的实现行为。具体地,本申请实施例中通过HOOK在命令所执行的原始函数中***收集数据的统计逻辑的代码,通过HOOK获取执行的命令对应的运行时数据。
在步骤S110中,对应用服务中的至少一个执行的命令进行攻击检测。可在命令所执行的原始函数中***钩子程序。其中,原始函数可以是业务执行任务调用的***自带的函数。对原始函数进行HOOK操作,以获取执行的命令对应的运行时数据。获取的运行时数据可包括函数的参数,例如函数的代码、语句等。
在应用服务中,一条命令通常会被频繁地多次执行。在步骤S120中,通过HOOK获取每一次历史执行的命令对应的运行时数据,根据每一次历史执行的命令对应的运行时数据生成历史缓存信息。在步骤S130中,通过HOOK获取当前执行的命令对应的运行时数据,将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比。在步骤S140中,根据对比结果识别当前执行的命令是否是一次攻击行为。
本申请实施例中,使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,不依赖于已知规则和特征,可以检出隐蔽的0day攻击,且检测的准确度更高,误报更少。
图2是根据本申请实施例的攻击检测方法的整体架构图。图2中的Web Server中文名称叫网页服务器或web服务器,主要功能是提供网上信息浏览服务。如图2所示,访问WebServer的流量中除了正常流量之外,还包括攻击流量。图2中的“外部请求”是指与浏览器流量对应的外部请求。使用攻击检测***对浏览器对应的外部请求进行攻击检测。在图2所示的示例中,攻击检测***的应用层方法调用其下层的HOOK层方法对命令所执行的原始函数进行HOOK操作。例如,原始函数可以是PHP/Java自带的原始函数。通过HOOK操作得到执行的命令对应的运行时数据。在云端分析模块中,将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比,对当前执行的命令进行攻击检测。如检测到攻击行为,则在报警运维模块中实施对应处理操作。
在一种实施方式中,上述方法还包括:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将当前执行的命令识别为攻击。
参见图2所示,在攻击阻断模块中,安装在服务器上的agent对当前执行的命令对应的运行时数据进行分析。如果在运行时数据中发现含有攻击命令等敏感词,则实施流量阻断操作,并返回错误页面的信息,例如返回对应的错误状态码。
本申请实施例中,通过检测敏感词可以识别出较为明显的攻击,在此基础上可以实施流量阻断,进一步保障***的安全。
在一种实施方式中,根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:
对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
将第一语法结构信息保存为历史缓存信息。
本申请实施例中,通过HOOK操作获取执行的命令对应的运行时数据。获取的运行时数据可包括函数的参数,例如函数的代码、语句等。以SQL(Structured Query Language,结构化查询语言)语句为例,通过HOOK操作可获取SQL语句的token流。其中,SQL中token是符号,比如0,1,2之类的符号,可以用于代表header(头部)中的每一个单词。token流可以代表herder里面的每一个表头中的每一个单词。采用token的目的在于符号处理,内容和符号之间的转化可以通过预处理完成。将获取的token流拆开,可以得到SQL语句的语法结构。
根据上述方法可在每次命令执行前通过对命令执行的原始函数进行HOOK操作,获取该函数的参数(例如获取代码),通过对参数的分析得到第一语法结构信息,将第一语法结构信息作为历史缓存信息。
本申请实施例中,对运行时数据的语法结构进行解析,将解析结果保存为历史缓存信息,为后续步骤根据历史缓存信息进行对比奠定了数据分析的基础。
在一种实施方式中,将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比,包括:
对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
获取与当前执行的命令对应的历史缓存信息;
将第二语法结构信息与历史缓存信息进行对比。
在这种实施方式中,可对当前执行的命令进行HOOK操作,获取当前执行的命令对应的运行时数据。运行时数据包括该命令调用的函数的参数(例如获取代码),通过对参数的分析得到第二语法结构信息。以SQL语句为例,仍可通过获取SQL语句的token流的方法得到SQL语句的第二语法结构信息。然后将第二语法结构信息与当前执行的命令对应的历史缓存信息中的第一语法结构信息进行对比。若某一次命令执行时,通过HOOK得到的第二语法结构信息与该命令执行时调用的***函数的历史缓存信息不匹配,则识别为一次攻击。
本申请实施例中,使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,使得检测的准确度更高,误报更少。
在一种实施方式中,根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:通过调用栈生成历史缓存信息的缓存标识;
获取与当前执行的命令对应的历史缓存信息,包括:通过缓存标识获取与当前执行的命令对应的历史缓存信息。
调用栈的作用相当于程序当前执行的日志,可以记录***函数的调用历史。调用栈可以包括从用户请求应用开始,直到HOOK点函数的整个函数调用历史。比如该应用起始触发函数为A,中间过程中函数A调用函数B,函数B最终调用HOOK点函数C,则调用栈为[A,B,C]。在本申请实施例中,获取历史缓存信息需要精确定位到检测的缓存位置,因此调用栈被用来生成一串唯一的hash(哈希)字符串作为缓存标识,用来唯一标识该HOOK点。当HOOK点被调用触发后,可以通过该缓存id(缓存标识)定位到缓存队列,从而进行下一步操作。
本申请实施例中,通过使用缓存标识可以精确定地位到缓存位置,以便获取到历史缓存信息的准确数据,进一步保证攻击检测的准确性。
在一种实施方式中,根据对比结果对当前执行的命令进行攻击检测,包括:
若当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度大于等于预设的差异度阈值,则将当前执行的命令识别为攻击。
以SQL注入攻击为例,SQL注入攻击是黑客对数据库进行攻击的常用手段之一。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些其想得知的数据,这就是SQL注入攻击。本申请实施例中,若某一次命令执行时,通过HOOK得到的第二语法结构信息与该命令执行时调用的***函数的历史缓存信息差异较大,则确定该SQL语句的语义有变化,从而将当前执行的命令判定为SQL注入攻击。
本申请实施例中,根据当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度进行攻击检测,不依赖于已知规则和特征,不受到特定业务环境的限制,不受攻击场景的限制,能够达到更好的检测效果。
本申请实施例基于历史执行点状态进行缓存与信息建模,使用历史缓存信息来判断当前的请求是否为恶意请求。如图3所示,以SQL注入攻击检测为例,一个示例性的攻击检测流程如下:
(1)浏览器流量中的外部请求触发HOOK的风险函数,例如触发DB(database,数据库)操作函数。触发之后agent会收集运行时数据。运行时数据可包括调用栈、风险函数的敏感参数(例如SQL语句)等。
(2)通过调用栈生成缓存id(缓存标识),将SQL语句保存在缓存队列中。图3中的cache表示缓存,id:1和id:2表示缓存标识。
(3)HOOK的风险函数被调用,获取其参数。然后在检测引擎中将其进行语法解析,获取SQL语句的token流,并与历史缓存信息中的SQL语句进行语法结构对比。
(4)根据判断结果,当两者差异较大或者语法报错时,则识别为一次攻击。若识别出当前执行的命令是攻击命令,则给出报警信息。
图4是根据本申请实施例的攻击检测装置的结构示意图。如图4所示,本申请实施例的攻击检测装置包括:
数据获取单元100,用于:在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用钩子程序获取执行的命令对应的运行时数据;
生成单元200,用于:根据历史执行的命令对应的运行时数据生成历史缓存信息;
对比单元300,用于:将当前执行的命令对应的运行时数据与该命令的历史缓存信息进行对比;
第一检测单元400,用于:根据对比结果对当前执行的命令进行攻击检测。
图5是根据本申请实施例的攻击检测装置的生成单元的结构示意图。如图5所示,在一种实施方式中,生成单元200包括:
第一解析子单元210,用于:对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
保存子单元220,用于:将第一语法结构信息保存为历史缓存信息。
图6是根据本申请实施例的攻击检测装置的对比单元的结构示意图。如图6所示,在一种实施方式中,对比单元300包括:
第二解析子单元310,用于:对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
缓存获取子单元320,用于:获取与当前执行的命令对应的历史缓存信息;
对比子单元330,用于:将第二语法结构信息与历史缓存信息进行对比。
在一种实施方式中,生成单元200用于:通过调用栈生成历史缓存信息的缓存标识;
缓存获取子单元320用于:通过缓存标识获取与当前执行的命令对应的历史缓存信息。
在一种实施方式中,第一检测单元400用于:
若当前执行的命令对应的运行时数据与该命令的历史缓存信息的差异度大于等于预设的差异度阈值,则将当前执行的命令识别为攻击。
在一种实施方式中,上述装置还包括第二检测单元,第二检测单元用于:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将当前执行的命令识别为攻击。
本申请实施例的攻击检测装置中的各单元的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例的攻击检测方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示图形用户界面(Graphical User Interface,GUI)的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的攻击检测方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的攻击检测方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的攻击检测方法对应的程序指令/模块(例如,附图4所示的数据获取单元100、生成单元200、对比单元300、第一检测单元400,附图5所示的第一解析子单元210、保存子单元220,附图6所示的第二解析子单元310、缓存获取子单元320、对比子单元330)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的攻击检测方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据执行攻击检测方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至执行攻击检测方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行攻击检测方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与执行攻击检测方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(Liquid Crystal Display,LCD)、发光二极管(Light EmittingDiode,LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用集成电路(Application Specific Integrated Circuits,ASIC)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(programmable logic device,PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(Cathode Ray Tube,阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,使用历史缓存建模的形式进行检测,依赖于运行时数据进行异常对比从而执行检测逻辑,不依赖于已知规则和特征,可以检出隐蔽的0day攻击,且检测的准确度更高,误报更少。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种攻击检测方法,其特征在于,包括:
在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用所述钩子程序获取执行的命令对应的运行时数据;
根据历史执行的命令对应的运行时数据生成历史缓存信息;
将当前执行的命令对应的运行时数据与该命令的所述历史缓存信息进行对比;
根据对比结果对所述当前执行的命令进行攻击检测;
其中,所述根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:通过所述钩子程序获取所述历史执行的命令对应的运行时数据,根据所述历史执行的命令对应的运行时数据生成所述历史缓存信息。
2.根据权利要求1所述的方法,其特征在于,根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:
对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
将所述第一语法结构信息保存为历史缓存信息。
3.根据权利要求2所述的方法,其特征在于,将当前执行的命令对应的运行时数据与该命令的所述历史缓存信息进行对比,包括:
对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
获取与所述当前执行的命令对应的所述历史缓存信息;
将所述第二语法结构信息与所述历史缓存信息进行对比。
4.根据权利要求3所述的方法,其特征在于,
根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:通过调用栈生成所述历史缓存信息的缓存标识;
获取与所述当前执行的命令对应的所述历史缓存信息,包括:通过所述缓存标识获取与所述当前执行的命令对应的所述历史缓存信息。
5.根据权利要求1-4中任一项所述的方法,其特征在于,根据对比结果对所述当前执行的命令进行攻击检测,包括:
若当前执行的命令对应的运行时数据与该命令的所述历史缓存信息的差异度大于等于预设的差异度阈值,则将所述当前执行的命令识别为攻击。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将所述当前执行的命令识别为攻击。
7.一种攻击检测装置,其特征在于,包括:
数据获取单元,用于:在应用服务的至少一个命令所执行的原始函数中***钩子程序,利用所述钩子程序获取执行的命令对应的运行时数据;
生成单元,用于:根据历史执行的命令对应的运行时数据生成历史缓存信息;
对比单元,用于:将当前执行的命令对应的运行时数据与该命令的所述历史缓存信息进行对比;
第一检测单元,用于:根据对比结果对所述当前执行的命令进行攻击检测。
8.根据权利要求7所述的装置,其特征在于,所述生成单元包括:
第一解析子单元,用于:对历史执行的命令对应的运行时数据进行解析,得到第一语法结构信息;
保存子单元,用于:将所述第一语法结构信息保存为历史缓存信息;
其中,所述根据历史执行的命令对应的运行时数据生成历史缓存信息,包括:通过所述钩子程序获取所述历史执行的命令对应的运行时数据,根据所述历史执行的命令对应的运行时数据生成所述历史缓存信息。
9.根据权利要求8所述的装置,其特征在于,所述对比单元包括:
第二解析子单元,用于:对当前执行的命令对应的运行时数据进行解析,得到第二语法结构信息;
缓存获取子单元,用于:获取与所述当前执行的命令对应的所述历史缓存信息;
对比子单元,用于:将所述第二语法结构信息与所述历史缓存信息进行对比。
10.根据权利要求9所述的装置,其特征在于,
所述生成单元用于:通过调用栈生成所述历史缓存信息的缓存标识;
所述缓存获取子单元用于:通过所述缓存标识获取与所述当前执行的命令对应的所述历史缓存信息。
11.根据权利要求7-10中任一项所述的装置,其特征在于,所述第一检测单元用于:
若当前执行的命令对应的运行时数据与该命令的所述历史缓存信息的差异度大于等于预设的差异度阈值,则将所述当前执行的命令识别为攻击。
12.根据权利要求7-10中任一项所述的装置,其特征在于,所述装置还包括第二检测单元,所述第二检测单元用于:
检测当前执行的命令对应的运行时数据中是否包含预设的敏感词;
若检测到当前执行的命令对应的运行时数据中包含预设的敏感词,则将所述当前执行的命令识别为攻击。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926737.9A CN110505247B (zh) | 2019-09-27 | 2019-09-27 | 攻击检测方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910926737.9A CN110505247B (zh) | 2019-09-27 | 2019-09-27 | 攻击检测方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110505247A CN110505247A (zh) | 2019-11-26 |
CN110505247B true CN110505247B (zh) | 2022-05-17 |
Family
ID=68593036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910926737.9A Active CN110505247B (zh) | 2019-09-27 | 2019-09-27 | 攻击检测方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110505247B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100620B (zh) * | 2020-09-04 | 2024-02-06 | 百度在线网络技术(北京)有限公司 | 代码安全检测方法、装置、设备和可读存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8613084B2 (en) * | 2007-09-18 | 2013-12-17 | Mcafee, Inc. | System, method, and computer program product for detecting at least potentially unwanted activity based on execution profile monitoring |
CN102609654A (zh) * | 2012-02-08 | 2012-07-25 | 北京百度网讯科技有限公司 | 一种检测恶意flash文件的方法和装置 |
CN102651060B (zh) * | 2012-03-31 | 2015-05-06 | 北京奇虎科技有限公司 | 一种漏洞检测的方法和*** |
CN104753946A (zh) * | 2015-04-01 | 2015-07-01 | 浪潮电子信息产业股份有限公司 | 一种基于网络流量元数据的安全分析框架 |
CN107239702A (zh) * | 2016-03-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 一种安全漏洞检测的方法以及装置 |
CN107292167B (zh) * | 2017-06-27 | 2020-03-10 | 北京计算机技术及应用研究所 | 基于精简语法树的sql语句安全检测方法 |
CN108256335B (zh) * | 2018-02-08 | 2019-06-18 | 北京百度网讯科技有限公司 | 用于检测漏洞的方法和装置 |
CN108846287A (zh) * | 2018-06-26 | 2018-11-20 | 北京奇安信科技有限公司 | 一种检测漏洞攻击的方法及装置 |
CN108959923B (zh) * | 2018-05-31 | 2022-05-17 | 深圳壹账通智能科技有限公司 | 综合安全感知方法、装置、计算机设备和存储介质 |
CN109194606B (zh) * | 2018-07-05 | 2022-05-03 | 百度在线网络技术(北京)有限公司 | 攻击检测***、方法、计算机设备及存储介质 |
CN109842628A (zh) * | 2018-12-13 | 2019-06-04 | 成都亚信网络安全产业技术研究院有限公司 | 一种异常行为检测方法及装置 |
CN109561112A (zh) * | 2019-01-25 | 2019-04-02 | 虞定生 | 一种人工智能实时检测安全攻击*** |
-
2019
- 2019-09-27 CN CN201910926737.9A patent/CN110505247B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于改进的模式匹配算法的SQL注入攻击防范技术;张生财等;《科技创新与应用》;20171218(第35期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110505247A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10705904B2 (en) | Detecting anomalous behavior in an electronic environment using hardware-based information | |
KR102612500B1 (ko) | 로깅을 통한 민감 데이터 노출 탐지 | |
Diao et al. | No pardon for the interruption: New inference attacks on android through interrupt timing analysis | |
US10282276B2 (en) | Fingerprint-initiated trace extraction | |
KR100786725B1 (ko) | 악성코드 분석 시스템 및 방법 | |
WO2016082501A1 (zh) | 一种云计算***中云应用攻击行为处理方法、装置及*** | |
JP2016503219A (ja) | 認知挙動認識のためのシステムおよびその方法 | |
US10152596B2 (en) | Detecting anomalous events through runtime verification of software execution using a behavioral model | |
KR101796205B1 (ko) | 보안 강화를 위해 입력된 명령어 학습 기반 이상 사용자를 탐지하는 서버 접근 통제 시스템 | |
CN111881453A (zh) | 一种容器逃逸检测方法、装置以及电子设备 | |
KR101696694B1 (ko) | 역추적을 이용한 소스 코드 취약점 분석 방법 및 장치 | |
CN110505247B (zh) | 攻击检测方法、装置、电子设备及存储介质 | |
US10015181B2 (en) | Using natural language processing for detection of intended or unexpected application behavior | |
US11163875B1 (en) | Discovery of computer system incidents to be remediated based on correlation between support interaction data and computer system telemetry data | |
CN113132393A (zh) | 异常检测方法、装置、电子设备以及存储介质 | |
CN111104670B (zh) | 一种apt攻击的识别和防护方法 | |
CN103971055A (zh) | 一种基于程序切片技术的安卓恶意软件检测方法 | |
KR101580624B1 (ko) | 벌점기반의 알려지지 않은 악성코드 탐지 및 대응 방법 | |
US10726069B2 (en) | Classification of log entry types | |
EP3776314A1 (en) | Staged dynamic taint flow inference | |
CN112104748B (zh) | 区块链数据的监管方法、装置、电子设备和存储介质 | |
US11163876B2 (en) | Guided security analysis | |
CN114444087A (zh) | 一种越权漏洞检测方法、装置、电子设备及存储介质 | |
CN114205156A (zh) | 面向切面技术的报文检测方法、装置、电子设备及介质 | |
CN113839944A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |