CN116108438B - 攻击检测方法、装置、设备、介质和程序产品 - Google Patents

攻击检测方法、装置、设备、介质和程序产品 Download PDF

Info

Publication number
CN116108438B
CN116108438B CN202310368582.8A CN202310368582A CN116108438B CN 116108438 B CN116108438 B CN 116108438B CN 202310368582 A CN202310368582 A CN 202310368582A CN 116108438 B CN116108438 B CN 116108438B
Authority
CN
China
Prior art keywords
parameter
attack detection
service
service interface
call 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.)
Active
Application number
CN202310368582.8A
Other languages
English (en)
Other versions
CN116108438A (zh
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202310368582.8A priority Critical patent/CN116108438B/zh
Publication of CN116108438A publication Critical patent/CN116108438A/zh
Application granted granted Critical
Publication of CN116108438B publication Critical patent/CN116108438B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种攻击检测方法,可以应用于信息安全技术领域。该方法包括:拦截访问第一业务接口的调用请求;利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测;若所述M种参数特征检测通过,则放行所述调用请求;其中,所述N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,所述K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求。通过预先学习每个业务接口下正常调用请求的参数特征规律,能够更加准确的发现攻击行为并实时阻断,克服了传统攻击检测设备无法基于业务特点精准设置检测规则,容易遗漏攻击行为或误报率较高的缺点。

Description

攻击检测方法、装置、设备、介质和程序产品
技术领域
本发明涉及信息安全领域,更具体地,涉及一种攻击检测方法、装置、设备、介质和程序产品。
背景技术
在常见的应用服务攻击过程中,攻击者经常需要输入非常规字符来达到攻击目的,例如通过输入“’or 1=1”进行sql注入,通过输入“<script>alert(1)</script>”进行跨站脚本攻击。
传统攻击检测设备(如防火墙设备)通常设置统一的正则规则,来对请求参数进行特殊字符判定,但是判定规则若设定的范围过宽,可能无法产生较好的拦截效果,出现漏报。而判定规则设定范围过窄会出现误报,存在影响正常业务操作的可能。
因此,传统攻击检测设备无法针对每个特有业务场景定制个性化的检测规则,导致在日常攻击检查中误报率或漏报率较高,无法较好的平衡。
发明内容
鉴于上述问题,本发明提供了一种攻击检测方法、装置、设备、介质和程序产品。
本发明实施例的一个方面提供了一种攻击检测方法,包括:拦截访问第一业务接口的调用请求,其中,所述第一业务接口为应用服务器提供的N个业务接口中的任一个;利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测;若所述M种参数特征检测通过,则放行所述调用请求;其中,所述N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,所述K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1。
根据本发明的实施例,在拦截访问第一业务接口的调用请求之前,还包括:对部署在所述应用服务器中的请求处理函数进行字节码插桩;其中,所述拦截访问第一业务接口的调用请求包括:基于所述字节码插桩拦截解密后的所述调用请求,其中,所述调用请求包括预先基于业务加密方式和/或加密流量方式进行加密的请求。
根据本发明的实施例,预先获得所述第一业务接口的攻击检测规则包括:在测试环境中,解析访问所述第一业务接口的S个正常调用请求,获得所述K种参数特征;基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则。
根据本发明的实施例,所述K种参数特征包括K种参数格式,所述基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则包括:确定所述K种参数格式一一对应的K个格式标识;根据所述K个格式标识生成第一标识表达式,其中,所述第一业务接口的攻击检测规则包括所述第一标识表达式。
根据本发明的实施例,所述基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则还包括:确定所述S个正常调用请求中每个参数值的参数格式;对所述K种参数格式中每种参数格式下至少一个参数值进行统计分析,获得K个统计分析特征;根据所述每种参数格式对应的格式标识,以及该种参数格式对应的统计分析特征,生成第二标识表达式,其中,所述第一业务接口的攻击检测规则包括所述第二标识表达式。
根据本发明的实施例,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:利用所述第一标识表达式对所述M种参数特征进行第一阶段检测;和/或利用所述第二标识表达式对所述M种参数特征进行第二阶段检测。
根据本发明的实施例,所述M种参数特征包括M种参数格式,所述利用所述第一标识表达式对所述M种参数特征进行第一阶段检测包括:基于所述第一标识表达式,对所述M种参数格式进行匹配校验;若从所述第一标识表达式中匹配到与所述M种参数格式对应的M个格式标识,则检测通过。
根据本发明的实施例,所述利用所述第二标识表达式对所述M种参数特征进行第二阶段检测包括:对所述M种参数格式中每种参数格式下至少一个参数值进行统计分析,获得M个统计分析特征;基于所述第二标识表达式,对所述M个统计分析特征进行匹配校验;若从所述第二标识表达式中匹配到与所述M个统计分析特征相一致的内容,则检测通过。
根据本发明的实施例,在解析访问所述第一业务接口的S个正常调用请求之前,还包括:在测试环境中按照以下至少一种拦截维度,利用所述字节码插桩拦截访问所述第一业务接口的S个正常调用请求:访问所述第一业务接口的至少一个正常调用请求;访问特定微服务的至少一个正常调用请求,其中,所述应用服务器中部署分布式应用,所述第一业务接口对应一个或多个微服务;Q个渠道应用发送的至少一个正常调用请求,Q大于或等于1。
根据本发明的实施例,预先获得所述第一业务接口的攻击检测规则包括:在测试环境中,利用所述字节码插桩监测所述Q个渠道应用中每个渠道应用发送的至少一个正常调用请求;解析所述每个渠道应用发送的至少一个正常调用请求,获得该渠道应用的至少一种参数特征;基于机器学习的方式,根据所述每个渠道应用的至少一种参数特征,生成该渠道应用的攻击检测规则,其中,所述第一业务接口的攻击检测规则包括所述每个渠道应用的攻击检测规则。
根据本发明的实施例,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:确定发送所述调用请求的第一渠道应用,所述第一渠道应用为所述Q个渠道应用中的任一个;利用所述第一渠道应用的攻击检测规则对所述M种参数特征进行检测。
根据本发明的实施例,预先在所述Q个渠道应用一一安装有Q个检测组件,其中每个检测组件允许调用对应渠道应用的攻击检测规则;所述利用所述第一渠道应用的攻击检测规则对所述M种参数特征进行检测包括:确认所述调用请求中的检测标识,其中,所述检测标识由安装在所述第一渠道应用的第一检测组件生成,所述第一检测组件用于预先按照所述第一渠道应用的攻击检测规则,对所述调用请求进行检测。
根据本发明的实施例,预先获得所述第一业务接口的攻击检测规则包括:在测试环境中,利用所述字节码插桩监测访问所述特定微服务的至少一个正常调用请求;解析访问所述特定微服务的至少一个正常调用请求,获得该微服务的至少一种参数特征;基于机器学习的方式,根据所述特定微服务的至少一种参数特征,生成该微服务的攻击检测规则,其中,所述第一业务接口的攻击检测规则包括所述特定微服务的攻击检测规则。
根据本发明的实施例,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:确定所述调用请求访问的第一微服务,所述第一微服务为所述第一业务接口对应的任一个微服务;利用所述第一微服务的攻击检测规则对所述M种参数特征进行检测。
根据本发明的实施例,所述放行所述调用请求包括:若所述M种参数特征检测通过,则按预设标识生成规则生成所述第一微服务对应的调用标识;令所述第一微服务响应于所述调用标识处理所述调用请求。
根据本发明的实施例,所述K种参数格式包括文字字符格式、数字格式、文件格式和特殊字符格式中一种或多种参数格式。
本发明实施例的另一方面提供了一种攻击检测装置,包括:请求拦截模块,用于拦截访问第一业务接口的调用请求,其中,所述第一业务接口为应用服务器提供的N个业务接口中的任一个;攻击判断模块,用于利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测;请求处理模块,用于若所述M种参数特征检测通过,则放行所述调用请求;其中,所述N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,所述K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1。
本发明实施例的另一方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行如上所述的方法。
本发明实施例的另一方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本发明实施例的另一方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上所述的方法。
上述一个或多个实施例具有如下有益效果:通过预先学习每个业务接口下正常调用请求的参数特征规律,获得与N个业务接口一一对应的N个攻击检测规则。在生产环境中对于任一个业务接口,可以基于对应的攻击检测规则,对访问该业务接口的调用请求进行攻击检测,在该调用请求中的M种参数特征检测通过后再予以放行。能够更加准确的发现攻击行为并实时阻断,解决了传统攻击检测设备无法基于业务特点精准设置检测规则的问题,并克服了容易遗漏攻击行为或误报率较高的缺点。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本发明实施例的攻击检测方法的应用场景图;
图2示意性示出了根据本发明实施例的攻击检测方法的流程图;
图3示意性示出了根据本发明实施例的生成攻击检测规则的流程图;
图4示意性示出了根据本发明实施例的生成第一标识表达式的流程图;
图5示意性示出了根据本发明实施例的生成第二标识表达式的流程图;
图6示意性示出了根据本发明实施例的拦截调用请求的流程图;
图7示意性示出了根据本发明实施例的攻击检测的流程图;
图8示意性示出了根据本发明实施例的第一阶段检测的流程图;
图9示意性示出了根据本发明实施例的第二阶段检测的流程图;
图10示意性示出了根据本发明实施例的生成渠道应用的攻击检测规则的流程图;
图11示意性示出了根据本发明实施例的对渠道应用攻击检测的流程图;
图12示意性示出了根据本发明实施例的生成特定微服务的攻击检测规则的流程图;
图13示意性示出了根据本发明实施例的对特定微服务攻击检测的流程图;
图14示意性示出了根据本发明实施例的攻击检测装置的结构框图;以及
图15示意性示出了根据本发明实施例的适于实现攻击检测方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
图1示意性示出了根据本发明实施例的攻击检测方法的应用场景图。但本发明并不限于此。
如图1所示,根据该实施例的应用场景100可以包括A终端设备101、B终端设备102、C终端设备103,网络104和服务器105。网络104用以在A终端设备101、B终端设备102、C终端设备103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用A终端设备101、B终端设备102或C终端设备103通过网络104与服务器105交互,以接收或发送消息等。A终端设备101、B终端设备102或C终端设备103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件或渠道应用客户端等(仅为示例)。
A终端设备101、B终端设备102或C终端设备103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用A终端设备101、B终端设备102或C终端设备103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
示例性地,服务器105可以是应用服务器,用户可以通过A终端设备101、B终端设备102或C终端设备103中安装的各种应用客户端或浏览器向应用服务器发送业务接口调用请求。而应用服务器可以处理业务接口调用请求以为用户提供业务,例如银行中的余额查询业务、转账业务、积分业务或其他业务。
需要说明的是,本发明实施例所提供的攻击检测方法一般可以由服务器105执行。相应地,本发明实施例所提供的攻击检测装置一般可以设置于服务器105中。本发明实施例所提供的攻击检测方法也可以由不同于服务器105且能够与A终端设备101、B终端设备102、C终端设备103和/或服务器105通信的服务器或服务器集群执行。相应地,本发明实施例所提供的攻击检测装置也可以设置于不同于服务器105且能够与A终端设备101、B终端设备102、C终端设备103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图13对本发明实施例的攻击检测方法进行详细描述。
图2示意性示出了根据本发明实施例的攻击检测方法的流程图。
如图2所示,该实施例的攻击检测方法包括在生产环境中执行操作S210~操作S250。
示例性地,生产环境包括正式对用户提供业务服务的硬件和软件环境。测试环境包括克隆生产环境配置的硬件和软件环境,不对用户提供业务服务,用于内部预先模拟用户使用业务的场景实现测试目的。
在操作S210,拦截访问第一业务接口的调用请求,其中,第一业务接口为应用服务器提供的N个业务接口中的任一个。可以理解,N个业务接口中还可以包括第二业务接口、第三业务接口及第四业务接口等。
示例性地,调用请求包括HTTP请求或HTTPS请求。HTTP请求基于超文本传输协议进行明文传输,而HTTPS请求是在HTTP请求基础上加入SSL/TLS进行密文传输。
在一些实施例中,可以在应用服务器之前设置中间服务器,调用请求先到达中间服务器,由中间服务器起到拦截的目的,接着由中间服务器执行攻击检测。在另一些实施例中,可以直接在应用服务器部署拦截手段(如filter过滤器、拦截器或字节码增强等),在应用服务器处理请求之前执行攻击检测,避免数据传入业务接口而达到攻击目的。
在操作S220,利用第一业务接口的攻击检测规则对调用请求中的M种参数特征进行检测。
示例性地,第一业务接口的攻击检测规则包括正常调用请求中参数特征所符合的一个或多个规则。正常调用请求包括不包含攻击参数的请求。参数特征包括调用请求中业务参数的特征,例如根据参数格式、类型、长度或参数值等提取的特征。根据对监测到实时访问的一个或多个正常调用请求中的参数特征进行统计、分析和处理,可得到参数特征规律。
在操作S230,判断是否检测通过。
例如若M种参数特征均符合第一业务接口的攻击检测规则,则检测通过,执行操作S240,否则执行操作S250。
在操作S240,若M种参数特征检测通过,则放行调用请求。
其中,N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1。
可以理解,M与K可以相同或不同。K种参数特征可以是在特定环境中对一个或多个正常访问请求进行处理得到的,而M种参数特征是根据访问第一业务接口的某个调用请求获得。另一些实施例中,也可以通过对历史访问请求进行筛选,得到历史正常访问请求后再处理分析获得。
在操作S250,若M种参数特征检测未通过,则丢包处理。
丢包是指一个或多个数据包丢失而无法到达目的地(例如第一业务接口)。若检测未通过,则可能该请求中存在攻击参数,例如“’or 1=1”或“<script>alert(1)</script>”,通过主动丢包的处理方式达到拦截攻击调用请求的目的。
根据本发明的实施例,通过预先监测并学习每个业务接口下正常调用请求的参数特征规律,获得与N个业务接口一一对应的N个攻击检测规则。在生产环境中对于任一个业务接口,可以基于对应的攻击检测规则,对访问该业务接口的调用请求进行攻击检测,在该调用请求中的M种参数特征检测通过后再予以放行。能够更加准确的发现攻击行为并实时阻断,解决了传统攻击检测设备无法基于业务特点精准设置检测规则的问题,并克服了容易遗漏攻击行为或误报率较高的缺点。
下面以第一业务接口为例,首先阐述在测试环境中学习参数特征规律以获得其攻击检测规则的过程。可以理解的是,N个业务接口中的任一个接口皆可以作为第一业务接口,可按照以下内容获得对应的攻击检测规则。
图3示意性示出了根据本发明实施例的生成攻击检测规则的流程图。
在操作S220之前,如图3所示,可以预先获得第一业务接口的攻击检测规则,包括在测试环境中执行操作S310~操作S320。
在操作S310,解析访问第一业务接口的S个正常调用请求,获得K种参数特征。
示例性地,可以基于字节码插桩技术拦截到S个正常调用请求。如针对应用服务器(部署有所保护的应用)中的HTTP请求处理函数进行插桩,在原有的函数代码中插入信息收集代码和信息分析代码,其中信息收集代码用于收集请求的url、body和header等信息,信息分析代码用于对每个业务接口接收的请求中业务参数进行统计学习。
字节码插桩包括在编译期或运行期进行字节码增强,以便在运行期影响程序的执行行为,可以分为在编译时增强和运行时增强,例如可以基于Java agent程序实现。在测试环境中基于字节码插桩实现监测即采集正常调用请求中的数据。
例如测试环境中应用运行,基于测试人员的设置,向该应用的第一业务接口发送S个正常调用请求,并获取各正常访问请求的业务参数,从而实现获得K种参数特征的目的。因此,在向N个业务接口发送多个正常调用请求过程中,结合字节码插桩能够以每个业务接口为维度获得对应的业务参数,按不同的业务接口进行特征分析和学习,最后将学习到的规则进行存储。
可以理解,测试环境下,可以在功能测试或例行化测试时启用插桩代码,在性能测试、破坏性测试或安全测试等情况下关闭,可以保证监测到的皆为正常调用请求,从而学习到正确的攻击检测规则。
示例性地,获取各正常访问请求的业务参数时,首先识别接口的传参形式,分解出参数内容,如识别是url形式传参,还是body形式的json、xml或key-value形式传参。识别后通过对应的解析器(例如url解析器、json解析器、xml解析器或key-value解析器),提取出业务参数内容。
在操作S320,基于机器学习的方式,根据K种参数特征生成第一业务接口的攻击检测规则。
例如可以按照无监督学习、半监督学习或有监督学习等机器学习方式,将S个正常调用请求作为输入,利用机器学习算法获得其中的参数特征规律,生成攻击检测规则。
例如,可以使用分类算法(如神经网络算法、支持向量机算法或决策树算法等),结合攻击调用请求训练得到包括攻击检测规则的分类模型,可以在生产环境中将调用请求分为攻击类和非攻击类(即检测通过)。又例如,可以使用聚类算法,基于各请求中的参数特征对S个正常调用请求进行聚类,得到聚类模型,攻击检测可以是在生产环境中计算调用请求与各个聚类簇中心之间的距离,根据距离大小判断是否存在攻击参数。再例如,可以使用统计分析算法,提取出各个正常调用请求中参数特征的共性信息,并得到攻击检测规则。
在对应用进行功能测试和例行化测试时,由于此过程中产生的请求均为业务场景内的正常请求,故以此过程中的请求为基线,进行参数特征学习。可以实时监测记录渠道应用客户端对应用的所有API(应用程序编程接口)的请求参数信息,对每个API的参数特征进行记录总结,形成攻击检测规则。
根据本发明的实施例,在测试环境中,测试人员发送正常调用请求可以引导学习结果,从而能够确定正常调用业务接口的参数特征规律,比依赖人工经验清洗历史数据来提取检测规则的方式更加高效。
另外,在测试环境中是模拟生产环境的真实调用场景,基于正常调用请求进行学习过程中,相当于预先在生产环境中模拟运行监测功能,并可以进一步确定拦截效果,不仅得到了准确的攻击检测规则,还降低了生产环境中漏检的概率。
图4示意性示出了根据本发明实施例的生成第一标识表达式的流程图。
如图4所示,在操作S320中生成第一业务接口的攻击检测规则包括操作S410~操作S420。其中,K种参数特征包括K种参数格式。第一业务接口的攻击检测规则包括第一标识表达式。
在操作S410,确定K种参数格式一一对应的K个格式标识。
在一些实施例中,K种参数格式包括文字字符格式、数字格式、文件格式和特殊字符格式中一种或多种参数格式。
示例性地,文字字符格式包括英文字符格式与中文字符格式,数字格式包括阿拉伯数字格式,特殊字符格式包括如<、’、(、\、=和)等常规符号格式或可能来自攻击报文的字符格式。文件格式包括文件类型的数据格式。
每种参数格式具有对应的参数标识,如文字字符格式使用α标识,数字格式使用ß标识,特殊字符格式使用γ标识,文件格式使用δ标识,仅为示例。可以理解,K是一个变量,业务接口之间可能具有相同或不同数量的参数格式。
在操作S420,根据K个格式标识生成第一标识表达式,其中,每个业务接口的攻击检测规则包括第一标识表达式。
例如第一业务接口所有正常调用请求中的参数皆为数字,则第一标识表达式为ß。又例如第一业务接口所有正常调用请求中的参数包括数字和文字,则第一标识表达式为αß,两标识的顺序可以进行限定,也可以不进行限定,允许灵活设置。
根据本发明的实施例,通过第一标识表达式可以表征出对应业务接口的参数内容所包含的参数格式,便于在生产环境中对调用请求的参数内容进行整体判断,提高检测效率和准确率,降低漏检和误报的情况。
图5示意性示出了根据本发明实施例的生成第二标识表达式的流程图。
如图5所示,在操作S320中生成第一业务接口的攻击检测规则还包括操作S510~操作S530。其中,第一业务接口的攻击检测规则包括第二标识表达式。
在操作S510,确定S个正常调用请求中每个参数值的参数格式。
可以理解,上述K种参数格式表明S个正常调用请求中共出现的参数格式类别。而在操作S510中,将颗粒度细化到每个业务参数值进行统计分析。
在操作S520,对K种参数格式中每种参数格式下至少一个参数值进行统计分析,获得K个统计分析特征。K种参数格式与K个统计分析特征一一对应。
示例性地,统计分析特征包括对应参数格式下参数值的数量特征、长度特征、语义特征或顺序特征等一个或多个。其中,长度特征包括参数值的平均长度、最大长度或最短长度中的至少一种信息。语义特征包括各个参数值的组合所表征的语义信息。顺序特征包括各个参数值之间的排列顺序信息。
在操作S530,根据每种参数格式对应的格式标识,以及该种参数格式对应的统计分析特征,生成第二标识表达式。
示例性地,对于包含特殊字符格式的,计算字符个数,对于属于文件格式的,记录文件后缀类型。比如纯文字字符输入则为α,纯数字则为ß,字符加数字则为αß,如若再包含特殊字符,则记录示例为αßγ(1),αßγ(3),括号内表示特殊字符出现了几次。如果为文件格式则记录示例为δ(doc)和δ(png),括号中为文件后缀名,上述括号内的信息即为统计分析特征。文字字符格式和数字字符格式也可后附括号,括号内包括对应的统计分析特征,换言之,可以灵活对部分或全部参数格式下参数值分析得到对应统计分析特征来形成标识表达式。
在一些实施例中,第一标识表达式与第二标识表达式可以是相同或不同的表达式。例如在相同时,则仅保留第二标识表达式,如αßγ(1),其中包含了参数格式信息和统计分析特征。又例如在不同时,第一标识表达式为αßγ,而第二标识表达式如αßγ(1)。
区别在于,在攻击检测时的检测逻辑不同。在相同时,根据第二标识表达式在检测时即要确定参数格式,又要确定每个参数格式下的统计分析特征,同步进行检测。在不同时,可以先根据第一标识表达式确定整体的参数格式类型,通过的情况下再根据第二标识表达式确定每个参数格式下的统计分析特征。
根据本发明的实施例,得到统计分析特征形成第二标识表达式,所检测的颗粒度更细,能够有效降低漏检率。
图6示意性示出了根据本发明实施例的拦截调用请求的流程图。
如图6所示,该实施例的拦截调用请求包括操作S610~操作S620。其中,操作S620是操作S210的其中一个实施例。
在操作S610,对部署在应用服务器中的请求处理函数进行字节码插桩。该操作中的字节码插桩过程可以参照上述操作S310,在此不做赘述。
在操作S620,基于字节码插桩拦截解密后的调用请求,其中,调用请求包括预先基于业务加密方式和/或加密流量方式进行加密的请求。
示例性地,在测试环境中监测的目的是为了采集正常访问请求,可以不拦截请求,也可以拦截请求,视需求设置。而在生产环境中为了保护应用服务器的安全,首先利用字节码插桩拦截后便于攻击检测。通过字节码增强技术对请求处理函数进行插桩,即使应用在流量层使用了加密技术,此时获取到的参数也为解密后的业务参数。
业务加密方式包括按照业务接口的维度设置的加密方式,例如第一业务接口在客户端向应用服务器发送调用请求时,可以利用非对称加密算法,令客户端使用对应于第一业务接口的公钥进行加密,而应用服务器使用私钥解密。加密流量方法包括使用SSL/TLS协议对HTTP报文加密的方式。
相关技术中,传统攻击检测设备部署在网络层,对加密后的调用请求无法进行解密,可能无法提取攻击参数,导致不能进行攻击检测判断。
根据本发明的实施例,由于对应用服务器中的函数进行字节码插桩,并实现请求拦截,能够在应用层从解密后的调用请求中提取业务参数,有效进行攻击检测判断。
下面通过一些实施例进一步介绍在生产环境中,对调用请求中的M种参数特征进行检测的过程。
图7示意性示出了根据本发明实施例的攻击检测的流程图。
如图7所示,在操作S220中攻击检测包括操作S710和/或操作S720。
在操作S710,利用第一标识表达式对M种参数特征进行第一阶段检测。
在操作S720,利用第二标识表达式对M种参数特征进行第二阶段检测。
根据本发明的实施例,可以根据检测要求确定执行第一阶段检测或第二阶段检测,也可以先执行第一阶段检测,在通过后再执行第二阶段检测,能够提供灵活的攻击检测策略。
图8示意性示出了根据本发明实施例的第一阶段检测的流程图。
如图8所示,在操作S710中第一阶段检测包括操作S810和操作S820。
在操作S810,基于第一标识表达式,对M种参数格式进行匹配校验。
在操作S820,若从第一标识表达式中匹配到与M种参数格式对应的M个格式标识,则检测通过。
例如根据M种参数格式获得M个格式标识,再与第一标识表达式中的K个格式标识进行匹配,若皆匹配到,则检测通过。若M个格式标识中一个或多个没有匹配到,则检测不通过。
例如第一标识表达式中记录第一业务接口的参数为ß,那么代表只能接收数字格式,若接收到“’or 1=1”则判定为攻击行为,检测不通过。或第一标识表达式中记录第一业务接口的参数为α,代表只能接收文字字符格式,则发现“<”或“/”等字符将进行阻断,可以有效阻止xss攻击或列目录攻击等。
根据本发明的实施例,能够通过参数格式检测到攻击应用的行为,如发现某接口接收的字符不符合正常业务规则,则实时阻断,有效保证应用系统安全。
在一些实施例中,在操作S820检测通过的情况下,则可以继续执行第二阶段检测。
图9示意性示出了根据本发明实施例的第二阶段检测的流程图。
如图9所示,在操作S720中第二阶段检测包括操作S910~操作S930。
在操作S910,对M种参数格式中每种参数格式下至少一个参数值进行统计分析,获得M个统计分析特征。
在操作S920,基于第二标识表达式,对M个统计分析特征进行匹配校验。
在操作S930,若从第二标识表达式中匹配到与M个统计分析特征相一致的内容,则检测通过。
示例性地,拦截生产环境中第一业务接口接收到的实时访问请求,同时调用第二标识表达式,对比请求参数是否符合该业务接口的常用请求特征,来判断是否存在攻击。比如第二标识表达式中记录有αßγ(2)、αßγ(4),即除文字字符和数字,特殊字符一般为成对出现,且数量为2或者4,那么M个统计分析特征表征出现αßγ(1)或αßγ(3)等情况则进行拦截。对于文件流类型,如第二标识表达式中记录有δ(doc)和δ(png),则jsp文件和php文件等格式均进行拦截。
根据本发明的实施例,基于业务自学习得到的细粒度统计分析特征,可以针对业务参数,更加精确定制防守规则,精准检测攻击行为,防止因阻断规则设置过宽,导致的攻击变体绕过情况。
另外,通过多阶段检测策略,若在靠前阶段检测出攻击行为,也可节省运行靠后阶段所耗费的资源和时间。
因此,通过对正常调用请求的参数特征进行学习分析,形成细化到每个业务接口的针对性攻击检测规则,当发现不符合预设攻击检测规则的非法请求时,将会实时阻断攻击,提高检测的精准度和实时性。
在另一些实施例中,可以进一步细化攻击检测的维度,从业务接口、微服务或渠道应用等单维度或多维度结合实现攻击检测。
例如在操作S310解析访问第一业务接口的S个正常调用请求之前,可以在测试环境中按照以下至少一种拦截维度,利用字节码插桩拦截访问第一业务接口的S个正常调用请求:
访问第一业务接口的至少一个正常调用请求。例如只要是访问第一业务接口,则全部进行拦截。
访问特定微服务的至少一个正常调用请求,其中,应用服务器中部署分布式应用,第一业务接口对应一个或多个微服务。分布式应用中,每个业务被拆分成多个微服务,且相互之间协同调用,故每个业务接口对应一个或多个微服务,可以针对其中涉及到的一个或多个微服务进行攻击检测。
Q个渠道应用发送的至少一个正常调用请求,Q大于或等于1。为了更好地服务用户,提供各种渠道便于用户更加方便操作业务,例如银行的手机银行、网上银行或第三方支付应用等渠道应用。
图10示意性示出了根据本发明实施例的生成渠道应用的攻击检测规则的流程图。
如图10所示,预先获得第一业务接口的攻击检测规则包括在测试环境中执行操作S1010~操作S1030。第一业务接口的攻击检测规则包括每个渠道应用的攻击检测规则。
在操作S1010,利用字节码插桩监测Q个渠道应用中每个渠道应用发送的至少一个正常调用请求。
在操作S1020,解析每个渠道应用发送的至少一个正常调用请求,获得该渠道应用的至少一种参数特征。
在操作S1030,基于机器学习的方式,根据每个渠道应用的至少一种参数特征,生成该渠道应用的攻击检测规则。
可以参照操作S310~操作S320,操作S410~操作S420以及操作S510~操作S530,实现解析请求、获得参数特征以及生成渠道应用的攻击检测规则。
根据本发明的实施例,能够按不同的渠道应用进行特征分析和学习,最后将学习到的规则进行存储,可以对特定渠道应用针对性地攻击检测,避免了多余检测行为产生的成本,提高了检测效率。
图11示意性示出了根据本发明实施例的对渠道应用攻击检测的流程图。
如图11所示,在操作S220中包括操作S1110~操作S1120。
在操作S1110,确定发送调用请求的第一渠道应用,第一渠道应用为Q个渠道应用中的任一个。
例如可以解析调用请求获取其中的渠道应用标识,从而确定出第一渠道应用。
在操作S1120,利用第一渠道应用的攻击检测规则对M种参数特征进行检测。
可以参照操作S710~操作S720,操作S810~操作S820以及操作S910~操作S930,实现针对第一渠道应用的攻击检测,即第一渠道应用可以对应有第一标识表达式和第二标识表达式。可以理解,本发明实施例能够对一个或多个渠道应用发送的请求同时进行攻击检测。
在一些实施例中,预先在Q个渠道应用一一安装有Q个检测组件,其中每个检测组件允许调用对应渠道应用的攻击检测规则。
在操作S1120中利用第一渠道应用的攻击检测规则对M种参数特征进行检测包括:确认调用请求中的检测标识,其中,检测标识由安装在第一渠道应用的第一检测组件生成,第一检测组件用于预先按照第一渠道应用的攻击检测规则,对调用请求进行检测。
在第一渠道应用发送调用请求之前,可以利用第一检测组件实现攻击检测,若通过则插入检测标识。若不通过,则禁止发送,或者插入不通过标识。
例如每个检测组件可以在本地存储对应渠道应用的攻击检测规则,也可以向后端服务器调用。为避免渠道应用或第三方的篡改行为,各个检测组件与应用服务器之间可以使用加密传输的方式发送调用请求或生成检测标识,例如利用非对称加密算法生成公钥和私钥,检测组件使用私钥对调用请求或检测标识加密,而应用服务器可以使用公钥确认。
根据本发明的实施例,能够将攻击检测操作在各个渠道应用端执行,降低了应用服务器的攻击检测压力,从而提高请求处理速度。
图12示意性示出了根据本发明实施例的生成特定微服务的攻击检测规则的流程图。
如图12所示,预先获得第一业务接口的攻击检测规则包括在测试环境中执行操作S1210~操作S1230。第一业务接口的攻击检测规则包括特定微服务的攻击检测规则。
在操作S1210,利用字节码插桩监测访问特定微服务的至少一个正常调用请求。
测试人员可以集中向特定微服务发送正常调用请求,也可以随机发送请求,由应用服务器监测并解析,通过请求头中的信息判断要访问哪个微服务。
在操作S1220,解析访问特定微服务的至少一个正常调用请求,获得该微服务的至少一种参数特征。
在操作S1230,基于机器学习的方式,根据特定微服务的至少一种参数特征,生成该微服务的攻击检测规则,其中,第一业务接口的攻击检测规则包括特定微服务的攻击检测规则。
可以参照操作S310~操作S320,操作S410~操作S420以及操作S510~操作S530,实现解析请求、获得参数特征以及生成特定微服务的攻击检测规则。
根据本发明的实施例,在分布式部署环境中,能够按不同的微服务进行特征分析和学习,最后将学习到的规则进行存储,可以对特定微服务针对性地攻击检测,避免了多余检测行为产生的成本,提高了检测效率。
图13示意性示出了根据本发明实施例的对特定微服务攻击检测的流程图。
如图13所示,在操作S220中包括操作S1310~操作S1320。
在操作S1310,确定调用请求访问的第一微服务,第一微服务为第一业务接口对应的任一个微服务。
以调用请求为HTTP请求形式举例,可以通过请求头中的referer字段确定其中指明的请求来源字段,并据此判断要访问哪个微服务。还可以通过微服务中添加返回HTTP请求头的映射方法观察请求头信息。
在操作S1320,利用第一微服务的攻击检测规则对M种参数特征进行检测。
可以参照操作S710~操作S720,操作S810~操作S820以及操作S910~操作S930,实现针对第一微服务的攻击检测,即第一微服务可以对应有第一标识表达式和第二标识表达式。可以理解,本发明实施例能够对访问一个或多个微服务的调用请求同时进行攻击检测。
在一些实施例中,若访问第一微服务(即特定微服务)的调用请求检测通过,则按预设标识生成规则生成第一微服务对应的调用标识。令第一微服务响应于调用标识处理调用请求。预设标识生成规则可以包括各个微服务与各个调用标识之间的映射关系。
根据本发明的实施例,第一微服务根据调用标识处理请求,可以减少不必要的处理流程,提高安全性。另外,能够基于调用标识针对后续的多个微服务之间的调用链路进行监控,并采集携带有调用标识的所有日志文件,便于后续对漏检的攻击请求快速定位和分析。
基于上述攻击检测方法,本发明还提供了一种攻击检测装置。以下将结合图14对该装置进行详细描述。
图14示意性示出了根据本发明实施例的攻击检测装置的结构框图。
如图14所示,该实施例的攻击检测装置1400包括请求拦截模块1410、攻击判断模块1420和请求处理模块1430。
请求拦截模块1410可以执行操作S210,用于拦截访问第一业务接口的调用请求,其中,第一业务接口为应用服务器提供的N个业务接口中的任一个。
攻击判断模块1420可以执行操作S220,用于利用第一业务接口的攻击检测规则对调用请求中的M种参数特征进行检测。
请求处理模块1430可以执行操作S240,用于若M种参数特征检测通过,则放行调用请求。
其中,N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,K种参数特征来自于访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1。
在一些实施例中,请求处理模块1430还可以执行操作S250,用于若M种参数特征检测未通过,则丢包处理。
在一些实施例中,请求处理模块1430还可以用于若M种参数特征检测通过,则按预设标识生成规则生成第一微服务对应的调用标识。令第一微服务响应于调用标识处理调用请求。
在一些实施例中,攻击检测装置1000还可以包括机器学习模块,用于执行操作S310~操作S320,操作S410~操作S420,操作S510~操作S530,操作S1010~操作S1030和操作S1210~操作S1230,在此不做赘述。
在一些实施例中,攻击检测装置1000还可以包括规则存储模块,用于存储机器学习模块生成的N个攻击检测规则。
在一些实施例中,攻击检测装置1000还可以包括插桩模块,用于执行操作S610,请求拦截模块1410可以执行操作S620,在此不做赘述。
在一些实施例中,攻击判断模块1430还可以执行操作S710~操作S720,操作S810~操作S820,操作S910~操作S930,操作S1110~操作S1120和操作S1310~操作S1320,在此不做赘述。
需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本发明的实施例,请求拦截模块1410、攻击判断模块1420和请求处理模块1430中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。
根据本发明的实施例,请求拦截模块1410、攻击判断模块1420和请求处理模块1430中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,请求拦截模块1410、攻击判断模块1420和请求处理模块1430中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图15示意性示出了根据本发明实施例的适于实现攻击检测方法的电子设备的方框图。
如图15所示,根据本发明实施例的电子设备1500包括处理器1501,其可以根据存储在只读存储器(ROM)1502中的程序或者从存储部分1508加载到随机访问存储器(RAM)1503中的程序而执行各种适当的动作和处理。处理器1501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1501还可以包括用于缓存用途的板载存储器。处理器1501可以包括用于执行根据本发明实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1503中,存储有电子设备1500操作所需的各种程序和数据。处理器 1501、ROM 1502以及RAM 1503通过总线1504彼此相连。处理器1501通过执行ROM 1502和/或RAM1503中的程序来执行根据本发明实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1502和RAM 1503以外的一个或多个存储器中。处理器1501也可以通过执行存储在一个或多个存储器中的程序来执行根据本发明实施例的方法流程的各种操作。
根据本发明的实施例,电子设备1500还可以包括输入/输出(I/O)接口1505,输入/输出(I/O)接口1505也连接至总线1504。电子设备1500还可以包括连接至I/O接口1505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1506。包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1507。包括硬盘等的存储部分1508。以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1509。通信部分1509经由诸如因特网的网络执行通信处理。驱动器1510也根据需要连接至I/O接口1505。可拆卸介质1511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1510上,以便于从其上读出的计算机程序根据需要被安装入存储部分1508。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的。也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本发明实施例的方法。
根据本发明的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本发明的实施例,计算机可读存储介质可以包括上文描述的ROM 1502和/或RAM 1503和/或ROM 1502和RAM 1503以外的一个或多个存储器。
本发明的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本发明实施例所提供的方法。
在该计算机程序被处理器1501执行时执行本发明实施例的系统/装置中限定的上述功能。根据本发明的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1509被下载和安装,和/或从可拆卸介质1511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1509从网络上被下载和安装,和/或从可拆卸介质1511被安装。在该计算机程序被处理器1501执行时,执行本发明实施例的系统中限定的上述功能。根据本发明的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本发明的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
以上对本发明的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本发明的范围由所附权利要求及其等同物限定。不脱离本发明的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本发明的范围之内。

Claims (17)

1.一种攻击检测方法,其特征在于,包括:
拦截访问第一业务接口的调用请求,其中,所述第一业务接口为应用服务器提供的N个业务接口中的任一个;
利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测;
若所述M种参数特征检测通过,则放行所述调用请求;
其中,所述N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,所述K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1;
其中,所述第一业务接口的攻击检测规则被配置为按照以下操作预先获得,具体包括:在测试环境中,
解析访问所述第一业务接口的S个正常调用请求,获得所述K种参数特征;
基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则;
所述K种参数特征包括K种参数格式,所述基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则包括:
确定所述K种参数格式一一对应的K个格式标识;
根据所述K个格式标识生成第一标识表达式,其中,所述第一业务接口的攻击检测规则包括所述第一标识表达式。
2.根据权利要求1所述的方法,其特征在于,在拦截访问第一业务接口的调用请求之前,还包括:
对部署在所述应用服务器中的请求处理函数进行字节码插桩;
其中,所述拦截访问第一业务接口的调用请求包括:
基于所述字节码插桩拦截解密后的所述调用请求,其中,所述调用请求包括预先基于业务加密方式和/或加密流量方式进行加密的请求。
3.根据权利要求1所述的方法,其特征在于,所述基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则还包括:
确定所述S个正常调用请求中每个参数值的参数格式;
对所述K种参数格式中每种参数格式下至少一个参数值进行统计分析,获得K个统计分析特征;
根据所述每种参数格式对应的格式标识,以及该种参数格式对应的统计分析特征,生成第二标识表达式,其中,所述第一业务接口的攻击检测规则包括所述第二标识表达式。
4.根据权利要求3所述的方法,其特征在于,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:
利用所述第一标识表达式对所述M种参数特征进行第一阶段检测;和/或
利用所述第二标识表达式对所述M种参数特征进行第二阶段检测。
5.根据权利要求4所述的方法,其特征在于,所述M种参数特征包括M种参数格式,所述利用所述第一标识表达式对所述M种参数特征进行第一阶段检测包括:
基于所述第一标识表达式,对所述M种参数格式进行匹配校验;
若从所述第一标识表达式中匹配到与所述M种参数格式对应的M个格式标识,则检测通过。
6.根据权利要求4或5所述的方法,其特征在于,所述利用所述第二标识表达式对所述M种参数特征进行第二阶段检测包括:
对所述M种参数格式中每种参数格式下至少一个参数值进行统计分析,获得M个统计分析特征;
基于所述第二标识表达式,对所述M个统计分析特征进行匹配校验;
若从所述第二标识表达式中匹配到与所述M个统计分析特征相一致的内容,则检测通过。
7.根据权利要求1所述的方法,其特征在于,在解析访问所述第一业务接口的S个正常调用请求之前,还包括:
在测试环境中按照以下至少一种拦截维度,利用字节码插桩拦截访问所述第一业务接口的S个正常调用请求:
访问所述第一业务接口的至少一个正常调用请求;
访问特定微服务的至少一个正常调用请求,其中,所述应用服务器中部署分布式应用,所述第一业务接口对应一个或多个微服务;
Q个渠道应用发送的至少一个正常调用请求,Q大于或等于1。
8.根据权利要求7所述的方法,其特征在于,预先获得所述第一业务接口的攻击检测规则包括:在测试环境中,
利用所述字节码插桩监测所述Q个渠道应用中每个渠道应用发送的至少一个正常调用请求;
解析所述每个渠道应用发送的至少一个正常调用请求,获得该渠道应用的至少一种参数特征;
基于机器学习的方式,根据所述每个渠道应用的至少一种参数特征,生成该渠道应用的攻击检测规则,其中,所述第一业务接口的攻击检测规则包括所述每个渠道应用的攻击检测规则。
9.根据权利要求8所述的方法,其特征在于,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:
确定发送所述调用请求的第一渠道应用,所述第一渠道应用为所述Q个渠道应用中的任一个;
利用所述第一渠道应用的攻击检测规则对所述M种参数特征进行检测。
10.根据权利要求9所述的方法,其特征在于,
预先在所述Q个渠道应用一一安装有Q个检测组件,其中每个检测组件允许调用对应渠道应用的攻击检测规则;
所述利用所述第一渠道应用的攻击检测规则对所述M种参数特征进行检测包括:
确认所述调用请求中的检测标识,其中,所述检测标识由安装在所述第一渠道应用的第一检测组件生成,所述第一检测组件用于预先按照所述第一渠道应用的攻击检测规则,对所述调用请求进行检测。
11.根据权利要求7所述的方法,其特征在于,预先获得所述第一业务接口的攻击检测规则包括:在测试环境中,
利用所述字节码插桩监测访问所述特定微服务的至少一个正常调用请求;
解析访问所述特定微服务的至少一个正常调用请求,获得该微服务的至少一种参数特征;
基于机器学习的方式,根据所述特定微服务的至少一种参数特征,生成该微服务的攻击检测规则,其中,所述第一业务接口的攻击检测规则包括所述特定微服务的攻击检测规则。
12.根据权利要求11所述的方法,其特征在于,所述利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测包括:
确定所述调用请求访问的第一微服务,所述第一微服务为所述第一业务接口对应的任一个微服务;
利用所述第一微服务的攻击检测规则对所述M种参数特征进行检测。
13.根据权利要求12所述的方法,其特征在于,所述放行所述调用请求包括:
若所述M种参数特征检测通过,则按预设标识生成规则生成所述第一微服务对应的调用标识;
令所述第一微服务响应于所述调用标识处理所述调用请求。
14.根据权利要求1所述的方法,其特征在于,所述K种参数特征包括K种参数格式,所述K种参数格式包括文字字符格式、数字格式、文件格式和特殊字符格式中一种或多种参数格式。
15.一种攻击检测装置,其特征在于,包括:
请求拦截模块,用于拦截访问第一业务接口的调用请求,其中,所述第一业务接口为应用服务器提供的N个业务接口中的任一个;
攻击判断模块,用于利用所述第一业务接口的攻击检测规则对所述调用请求中的M种参数特征进行检测;
请求处理模块,用于若所述M种参数特征检测通过,则放行所述调用请求;
其中,所述N个业务接口与N个攻击检测规则一一对应,每个攻击检测规则预先通过对应业务接口的K种参数特征获得,所述K种参数特征来自于测试环境中实时访问该业务接口的S个正常访问请求,N、M、K和S皆大于或等于1;
所述第一业务接口的攻击检测规则被配置为按照以下操作预先获得,具体包括:在测试环境中,
解析访问所述第一业务接口的S个正常调用请求,获得所述K种参数特征;
基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则;
所述K种参数特征包括K种参数格式,所述基于机器学习的方式,根据所述K种参数特征生成所述第一业务接口的攻击检测规则包括:
确定所述K种参数格式一一对应的K个格式标识;
根据所述K个格式标识生成第一标识表达式,其中,所述第一业务接口的攻击检测规则包括所述第一标识表达式。
16.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~14中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~14中任一项所述的方法。
CN202310368582.8A 2023-04-10 2023-04-10 攻击检测方法、装置、设备、介质和程序产品 Active CN116108438B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310368582.8A CN116108438B (zh) 2023-04-10 2023-04-10 攻击检测方法、装置、设备、介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310368582.8A CN116108438B (zh) 2023-04-10 2023-04-10 攻击检测方法、装置、设备、介质和程序产品

Publications (2)

Publication Number Publication Date
CN116108438A CN116108438A (zh) 2023-05-12
CN116108438B true CN116108438B (zh) 2023-06-23

Family

ID=86256416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310368582.8A Active CN116108438B (zh) 2023-04-10 2023-04-10 攻击检测方法、装置、设备、介质和程序产品

Country Status (1)

Country Link
CN (1) CN116108438B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961245A (zh) * 2021-10-28 2022-01-21 绿盟科技集团股份有限公司 一种基于微服务应用的安全防护系统、方法及介质
CN114826639A (zh) * 2021-11-01 2022-07-29 中国工商银行股份有限公司 基于函数调用链跟踪的应用攻击检测方法及装置
CN115348086A (zh) * 2022-08-15 2022-11-15 中国电信股份有限公司 一种攻击防护方法及装置、存储介质及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613699B2 (en) * 2001-08-03 2009-11-03 Itt Manufacturing Enterprises, Inc. Apparatus and method for resolving security association database update coherency in high-speed systems having multiple security channels
CN107888554B (zh) * 2016-09-30 2020-09-01 腾讯科技(深圳)有限公司 服务器攻击的检测方法和装置
CN107948172B (zh) * 2017-11-30 2021-05-25 恒安嘉新(北京)科技股份公司 一种基于人工智能行为分析的车联网入侵攻击检测方法和系统
CN115694866A (zh) * 2022-07-20 2023-02-03 中国工商银行股份有限公司 交互式攻击确认方法、装置、系统、设备和介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961245A (zh) * 2021-10-28 2022-01-21 绿盟科技集团股份有限公司 一种基于微服务应用的安全防护系统、方法及介质
CN114826639A (zh) * 2021-11-01 2022-07-29 中国工商银行股份有限公司 基于函数调用链跟踪的应用攻击检测方法及装置
CN115348086A (zh) * 2022-08-15 2022-11-15 中国电信股份有限公司 一种攻击防护方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN116108438A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US11297088B2 (en) System and method for comprehensive data loss prevention and compliance management
Wang et al. Detecting android malware leveraging text semantics of network flows
US20200412767A1 (en) Hybrid system for the protection and secure data transportation of convergent operational technology and informational technology networks
CN108780485B (zh) 基于模式匹配的数据集提取
US10609079B2 (en) Application of advanced cybersecurity threat mitigation to rogue devices, privilege escalation, and risk-based vulnerability and patch management
US20200389495A1 (en) Secure policy-controlled processing and auditing on regulated data sets
US20220377093A1 (en) System and method for data compliance and prevention with threat detection and response
US10558807B2 (en) Method and device for providing access page
US20180013771A1 (en) Advanced cybersecurity threat mitigation for inter-bank financial transactions
US11218510B2 (en) Advanced cybersecurity threat mitigation using software supply chain analysis
US10356101B2 (en) Utilizing transport layer security (TLS) fingerprints to determine agents and operating systems
IL275042A (en) Security monitoring Level of application programming programming with self-adaptation
CN112468520B (zh) 一种数据检测方法、装置、设备及可读存储介质
US11582251B2 (en) Identifying patterns in computing attacks through an automated traffic variance finder
CN111163095B (zh) 网络攻击分析方法、网络攻击分析装置、计算设备和介质
US11258806B1 (en) System and method for automatically associating cybersecurity intelligence to cyberthreat actors
CN113452656A (zh) 用于识别异常行为的方法和装置
US20230291758A1 (en) Malware Detection Using Document Object Model Inspection
EP3655878A1 (en) Advanced cybersecurity threat mitigation using behavioral and deep analytics
CN114218561A (zh) 一种弱口令检测方法、终端设备及存储介质
CN116108438B (zh) 攻击检测方法、装置、设备、介质和程序产品
CN115883078A (zh) 文件加密方法、文件解密方法、装置、设备及存储介质
CN113037746A (zh) 客户端指纹提取、身份识别和网络安全检测的方法及装置
Ussath et al. Insights into Encrypted Network Connections: Analyzing Remote Desktop Protocol Traffic
CN114598546B (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