CN111294345B - 一种漏洞检测方法、装置及设备 - Google Patents

一种漏洞检测方法、装置及设备 Download PDF

Info

Publication number
CN111294345B
CN111294345B CN202010066225.2A CN202010066225A CN111294345B CN 111294345 B CN111294345 B CN 111294345B CN 202010066225 A CN202010066225 A CN 202010066225A CN 111294345 B CN111294345 B CN 111294345B
Authority
CN
China
Prior art keywords
data
testable
tested
flow
determining
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
CN202010066225.2A
Other languages
English (en)
Other versions
CN111294345A (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202010066225.2A priority Critical patent/CN111294345B/zh
Publication of CN111294345A publication Critical patent/CN111294345A/zh
Application granted granted Critical
Publication of CN111294345B publication Critical patent/CN111294345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/1416Event detection, e.g. attack signature detection
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本说明书实施例提供一种漏洞检测方法、装置及设备。方案包括:从移动网关的流量日志中获取流量数据,确定流量数据中的可测试数据,并根据可测试数据中的流量参数,确定对应的攻击载荷;用攻击载荷来替换流量参数,得到替换后的可测试数据;然后按照远程过程调用协议要求的数据格式进行转换,得到符合远程过程调用协议的格式的待测试数据,并发送至移动网关,并接收移动网关针对待测试数据返回的响应结果,最后根据响应结果判断待测试数据中是否存在漏洞,从而完成移动网关的漏洞检测。

Description

一种漏洞检测方法、装置及设备
技术领域
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种漏洞检测方法、装置及设备。
背景技术
随着互联网在人们生活中的日益普及,安全问题和安全隐患也随之愈来愈严重。目前,植入恶意代码进行网络犯罪的事件呈增长趋势,随着软件规模和复杂性的扩大,其中隐藏的安全漏洞不断增加,受到攻击而遭受损失的威胁也不断增加。因此,及早检测并发现移动网关的漏洞对设备运行的整体安全非常重要。
现有技术中,由于网站服务器请求的输入方法主要是通过超文本传输协议(HyperText Transfer Protocol,简称HTTP)的GET或者POST方法,因此,传统的漏洞检测方法,是基于HTTP或HTTPS协议来进行测试,而移动终端对于流量的请求与接收是通过远程过程调用协议(Remote Procedure Call Protocol,简称RPC)进行的,因此,传统的漏洞检测方法无法基于RPC协议对移动网关进行漏洞检测。
因此,需要提供一种更可靠的漏洞检测方案来实现对基于RPC协议的移动网关进行漏洞检测。
发明内容
有鉴于此,本说明书一个或多个实施例提供了一种漏洞检测方法、装置及设备,用于对移动网关进行漏洞检测。
为解决上述技术问题,本说明书实施例是这样实现的:
本说明书实施例提供的一种漏洞检测方法,包括:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞。
本说明书实施例提供的一种漏洞检测装置,包括:
流量数据获取模块,用于从移动网关的流量日志中获取流量数据;
可测试数据确定模块,用于确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
攻击载荷确定模块,用于根据所述流量参数,确定所述可测试数据对应的攻击载荷;
替换模块,用于将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
数据格式转换模块,用于将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
数据发送模块,用于将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
漏洞判断模块,用于根据所述响应结果判断所述待测试数据中是否存在漏洞。
本说明书实施例提供的一种漏洞检测设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞。
本说明书实施例提供的一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现一种漏洞检测方法。
本说明书一个实施例实现了能够达到以下有益效果:通过从移动网关的流量日志中获取流量数据进行漏洞检测,能够保证漏洞检测覆盖所有的网关业务接口;从流量数据中确定出可测试数据,并根据可测试数据中的流量参数来确定所述流量参数对应的攻击载荷,将流量参数替换为攻击载荷,将替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据,从而将所述待测试数据发送至所述移动网关,解决了传统漏洞扫描方法无法对移动网关的数据进行数据重放的难点;接收移动网关针对待测试数据返回的响应结果,并根据响应结果判断待测试数据中是否存在漏洞,以此来实现对移动网关的漏洞进行检测;基于移动网关的远程过程调用协议的特性来进行漏洞检测,解决了传统漏洞扫描方法无法对移动终端网关进行漏洞扫描的问题。
附图说明
此处所说明的附图用来提供对本说明书一个或多个实施例的进一步理解,构成本说明书一个或多个实施例的一部分,本说明书的示意性实施例及其说明用于解释本说明书一个或多个实施例,并不构成对本说明书一个或多个实施例的不当限定。在附图中:
图1为本说明书实施例中一种漏洞检测方法的整体框架流程示意图;
图2为本说明书实施例提供的一种漏洞检测方法的流程示意图;
图3为本说明书实施例提供的对应于图2的一种漏洞检测装置的结构示意图;
图4为本说明书实施例提供的对应于图2的一种漏洞检测设备的结构示意图。
具体实施方式
为使本说明书一个或多个实施例的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书一个或多个实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书一个或多个实施例保护的范围。
传统的漏洞检测方法,大多都是基于服务端地址,如https://xxx.com,将攻击载荷payload通过POST或GET请求的参数提交到服务端,并通过获取请求延时、服务端的反馈结果,来判断payload是否攻击生效。另外,现有的漏洞检测往往是单一的服务器对目标测试服务器的请求测试,比如,扫描百度,主要通过扫描域名下的超文本标记语言(英语:HyperText Markup Language,简称:HTML),不存在移动签名或者加密,都是针对域名下的HTML地址来检测漏洞。而在移动终端的网关中,需要依赖客户端构造的数据签名,因此,传统的漏洞检测在远程过程调用协议下无法通过签名校验,不能扫描和测试网关背后服务器集群的业务服务。
本说明书实施例提供的移动网关漏洞检测方法,可以完成对Json格式以及序列化框架(Protocol Buffers,简称Protobuf)格式的适配,从而达到对基于RPC协议的移动网关进行漏洞测试的效果。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书实施例中一种漏洞检测方法的整体框架流程示意图。如图1所示,从移动网关101层面获取流量日志,流量日志中包括移动网关101所有接口对应的流量数据。首先采用流量预处理模块1011对流量日志进行预处理,具体可以包括:从流量日志中进行数据抽样。此时,可以按照预设比例(比如:5%-10%)进行流量数据抽样,然后将抽取到的流量数据放入判断器中进行判断。这里提到的判断器,可以存在多种判断规则,用于判断抽取的流量数据中是否存在可测试数据,当判断器完成判断,并确定可测试数据后,需要根据可测试数据返回对应类型的攻击载荷(payload)。之后,可以采用流量重放模块1012将数据发送到移动网关101,具体地,先将攻击载荷按照可测试数据的格式进行转换,用转换后的攻击载荷替换可测试数据中对应位置处的流量参数,得到替换后的可测试数据,完成数据重构,将完成数据重构的可测试数据进行签名构造,利用重放器将完成签名构造的数据发送到网关,完成流量重放过程,采用监听器1013对漏洞利用结果进行监听,监听器中包括同步过滤器和异步过滤器,当监听到漏洞攻击成功的信息后,进行攻击告警。其中,移动网关在进行异常检测时,如果检测到正常业务链路,则会返回成功的结果,当检测到异常业务链路时,无论检测到何种异常,都会返回统一的错误码。当攻击的服务端执行了payload之后,会触发具有payload特征的异常事件:包括但不限于如下异常事件:如请求了不存在的域名系统(Domain Name System,简称DNS)地址,执行了完全不正确的结构化查询语言(Structured Query Language,简称SQL)比较操作,读取了不存在的路径以及文件等。而这些操作会通过异常的服务器日志记录下来,监听器会通过定时任务去判断异常日志中是否存在执行payload的特征,若监听到对应的payload,会根据payload的特征来判断属于什么类型的漏洞,从而触发攻击报警,完成漏洞检测的整个过程。
接下来,将针对说明书实施例提供的一种证件识别方法结合附图进行具体说明:
图2为本说明书实施例提供的一种漏洞检测方法的流程示意图。从程序角度而言,流程的执行主体可以为搭载于应用服务器的程序或应用客户端。
如图2所示,该流程可以包括以下步骤:
步骤202:从移动网关的流量日志中获取流量数据。
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是网络互连设备,仅用于两个高层协议不同的网络互连。网关可以理解为一个网络连接到另一个网络的“关口”,是一个网络通向其他网络的IP地址。
网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备可以有路由器、启用了路由协议的服务器、代理服务器等,可以充当转换重任的计算机系统或设备。
流量日志可以理解为移动网关层面所有端口(或接口)对应的流量数据记录,流量日志面向移动网关的所有端口,可以包含用户行为数据,服务器响应数据等众多流量数据。
步骤204:确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能。
可测试数据可以理解为可能会被注入漏洞的数据,比如:在身份认证系统中,黑客可能会通过修改用户的账户名、密码或者登录信息等参数来盗取用户身份,从而进行其他不法活动,此时,流量数据中包含的账户参数、密码参数或者登录信息参数可以被理解为可测试的流量参数(以下简称“流量参数”),携带有这些流量参数的数据可以理解为可测试数据。或者现有技术中,通常会通过修改HTTP响应头来恶意修改网页地址,当用户点击修改后的网页地址时,终端会收到漏洞攻击,此时,HTTP响应头可以理解为流量参数,携带HTTP响应头的数据可以理解为可测试数据。
具体地,在确定可测试数据时,可以通过多种判断原则来进行判断,例如:服务器端请求伪造(Server-Side Request Forgery,简称SSRF)判断规则,包含了对请求中是否具有HTTPS/HTTP参数的请求,此时,流量数据中的HTTPS/HTTP参数就是流量参数。再比如结构化查询语言(Structured Query Language,简称SQL)注入判断规则中,可以判断参数中是否具有可注入的参数,可注入的参数就是流量参数。这些规则可以通过可扩展的脚本,加入到对应的数据库中,当流量抽样完成后,会自动对已有的判断规则进行运行,从而确定获取的流量数据中是否有需要进行测试的流量数据,以及需要测试的流量数据对应的流量参数的名称和所在位置。
步骤206:根据所述流量参数,确定所述可测试数据对应的攻击载荷。
payload:攻击载荷,可以是漏洞挖掘过程中在流量中注入的特征字符,这类特征字符在应用程序执行过程中,可能会触发系统的某种异常,导致漏洞攻击成功。
步骤204中提到的判断规则可以有多种,不同的流量参数可以对应不同的攻击载荷(在后续说明中,可以直接用payload进行说明)。即根据不同的流量参数可以确定不同类型的payload。
步骤208:将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据。
将可测试数据中的流量参数替换为payload,得到替换后的可测试数据。
步骤210:将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据。
远程过程调用协议(Remote Procedure Call Protocol,简称RPC),可以是移动终端设备对于流量的请求与接收采用的私有协议。RPC的主要目的可以是获取由远程机器上的程序所执行的结果。服务之间的远程调用通常可以有两种方式:基于TCP的远程调用和基于HTTP的远程调用。
由于移动网关使用的是基于传输控制协议(Transmission Control Protocol,简称TCP)的远程调用,因此,在检测移动网关的漏洞过程中,需要将替换后的可测试数据按照RPC协议的格式来进行转换,才能将包含了攻击载荷的待测试数据发送到移动网关。
步骤212:将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果。
将包含payload的可测试数据转换为符合远程过程调用协议的格式的待测试数据之后,可以将待测试数据发送至移动网关,移动网关执行了payload之后,会返回相应的响应结果。
其中,将待测试数据发送至移动网关这一过程也可以叫做流量重放。
步骤214:根据所述响应结果判断所述待测试数据中是否存在漏洞。
在实际应用中,可以根据实际情况分析响应结果,通过分析响应结果,可以确定待测试数据中是否存在漏洞。
在实际应用中,由于移动设备的网络请求对于流量的重放门槛比较高,需要完成对端内签名的自动化构造和数据流量的重放,且移动终端网关针对所有异常只会返回统一的错误码,无法得知具体的异常类型以及导致异常的漏洞类型,且移动终端网关没有URL,没有路径,也无法基于爬虫式的安全扫描,因此,本说明书实施例提供了上述图2中的方法步骤。具体地,通过从移动网关的流量日志中获取流量数据进行漏洞检测,能够保证漏洞检测覆盖所有的网关业务接口。从流量数据中确定出可测试数据,并根据可测试数据中的流量参数来确定所述流量参数对应的攻击载荷,将流量参数替换为攻击载荷,将替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据,从而将所述待测试数据发送至所述移动网关,解决了传统漏洞扫描方法无法对移动网关的数据进行数据重放的难点。接收移动网关针对待测试数据返回的响应结果,并根据响应结果判断待测试数据中是否存在漏洞,以此来实现对移动网关的漏洞进行检测。基于移动网关的远程过程调用协议的特性来进行漏洞检测,解决了传统漏洞扫描方法无法对移动终端网关进行漏洞扫描的问题。
基于图2的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
所述从移动网关的流量日志中获取流量数据,具体可以包括:
从移动网关的流量日志中按照预设比例对数据进行抽样,得到预设比例的流量数据。
在网关层面对流量日志进行抽样,在进行抽样时,具体地,可以按照预设比例进行抽样,预设比例可以根据实际应用场景的需求来进行设定,本申请对此不进行限定。预设比例可以是5%-10%的流量,即从流量日志中抽取5%-10%的流量数据,这些流量数据中,可以包括流量请求的必要参数、流量数据对应的接口名称和服务端响应结果等。
上述方法,由于流量日志中包含移动网关所有接口对应的流量数据,因此,能够保证在进行漏洞检测的过程中,可以覆盖移动网关所有的业务接口;通过抽样获取流量数据,可以提高流量数据重放的效率。
在实际应用中,在从流量日志中抽取得到预设比例的流量数据之后,需要判断抽取的流量数据中是否存在可测试的数据,如果存在,才可以进一步实现漏洞检测,若不存在,则可以认为抽取的流量数据不存在漏洞风险,不需要进行漏洞检测。具体地,从流量数据中确定可测试数据,具体可以包括:
根据预设规则判断所述流量数据中是否存在可测试特征,得到第一判断结果;
当所述第一判断结果表示所述流量数据中存在可测试特征时,获取包含所述可测试特征的可测试数据。
需要说明的是,可测试特征可以是具有触发漏洞导致异常的功能的特征,比如:密码参数,密码是互联网领域中为了保证安全所设置的,如果密码被破解甚至被修改,网络或者系统会产生不同程度的风险,因此,密码参数具有的特征可以是可测试特征。其中,密码的特征可以是包括的数据类型,比如:文字、字母、数字等等,也可以是密码的长度设置或者安全等级设置等等。
预设规则可以是预先存储在系统中的判断规则,这些判断规则可以是系统根据历史收集的异常记录数据进行总结得到的,比如:提取异常事件中的异常参数特征,根据相应的算法或者规则确定异常参数对应的判断规则。一般情况下,可以在移动网关对应的漏洞检测系统中添加尽可能多的判断规则,以保证漏洞检测的准确性。
可测试数据中可以包括流量参数以及流量参数所在的位置信息,此处的流量参数可以是具有触发漏洞的可能的参数。不同的漏洞类型会对应不同的流量参数,比如:在敏感信息泄露可能造成安全异常的情况下,各种敏感信息(用户名、密码等)可以是流量参数。再比如:一些情况下,攻击者会通过软件解析截获后的数据包的IP包头信息,再根据这些信息了解具体的IP地址,完后进行漏洞攻击,导致系统异常,此时,IP地址可以是流量参数。
针对一种应用场景,可以采用一种判断规则,也可以采用多种判断规则,不同的应用场景维度下,可以采用不同的判断规则,也可以采用相同的判断规则。比如:可以同时采用SSRF判断规则、SQL判断规则以及一些其他规则来同时判断流量数据中是否具有可测试数据。当判断得到流量数据中存在可测试数据时,可以进一步确定可测试数据中的流量参数以及流量参数所在的位置。
上述方法,通过采用预设判断规则判断流量数据中是否存在可测试数据,并在存在可测试数据时,确定可测试数据,可以更有针对性地确定payload,以便后续采用相应的payload替换可测试数据中的可测试参数,从而提高检测漏洞的效率。
在确定出可测试数据之后,可以根据可测试数据中的可测试参数确定用于触发异常的payload。具体地,可以采用如下方法:
所述根据所述流量参数,确定所述可测试数据对应的攻击载荷,具体可以包括:
根据所述流量参数,确定所述可测试数据对应的漏洞类型;
根据所述漏洞类型确定所述可测试数据对应的攻击载荷。
漏洞类型可以包括:SQL注入漏洞、跨站脚本漏洞、弱口令漏洞、HTTP报头追踪漏洞、框架钓鱼(注入)漏洞、文件上传漏洞、私有IP地址泄露漏洞、未加密登录请求以及敏感信息泄露漏洞等等。一种漏洞类型可以包括一种或多种攻击载荷。
根据流量参数,可以先确定出可测试数据对应的漏洞类型,比如:确定可测试数据A对应的漏洞类型为跨站脚本攻击(Cross-site scripting,简称XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击,此时,漏洞类型XXS可能对应多个payload,也可能仅对应一个payload,可以根据漏洞类型进一步分析确定流量参数对应的payload。
上述方法,根据流量参数确定对应类型的攻击载荷,可以提高漏洞利用的准确率,进一步提高漏洞检测的准确率。
找到流量参数对应的攻击载荷之后,需要用攻击载荷替换流量参数,具体替换时,可以采用以下方法:
所述将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据,具体可以包括:
将所述攻击载荷按照所述流量参数的数据格式进行转换;
根据流量参数所在位置,将所述流量参数替换为进行数据格式转换后的攻击载荷。
在替换流量参数时,需要保证攻击载荷的数据格式与流量参数的数据格式相同,因此,需要对攻击载荷的数据格式进行转换。
由于可测试数据中包括流量参数以及流量参数的所在位置,因此,在进行流量参数替换时,可以根据流量参数所在的位置,将流量参数替换为攻击载荷。比如:可测试数据为数据X,数据X中包括流量参数A和流量参数B,确定流量参数A对应的payload为a,流量参数B对应的payload为b,将a的数据格式转换成与流量参数A相同的数据格式,将b的数据格式转换成与流量参数B相同的数据格式,然后用a替换A,用b替换B,得到替换后的可测试数据X’,X’中包含a和b。
需要说明的是,采用payload替换流量参数的过程可以理解为数据重构的过程,可以获取可测试数据的接口的请求、返回的响应结果、测试的漏洞类型、替换的参数名称、对应替换的payload等等。如SSRF的判断器规则判断存在需要注入的可测试数据,此时,可以自动从payload注入器中获取SSRF的payload,并按照原有请求的格式,将进行数据格式转换后的payload对流量参数进行替换。
完成数据重构之后,需要对重构后的数据按照远程过程调用协议要求的数据格式进行转换,具体地,可以采用以下方法:
所述将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据,具体可以包括:
对所述替换后的可测试数据进行签名构造,得到完成签名构造后的待测试数据,所述签名构造表示按照远程过程调用协议要求的数据格式对所述替换后的可测试数据进行数据签名。
在实际应用中,签名构造可以用于对业务请求参数通过特定的加密算法进行摘要计算,生成一个长度固定的摘要,常见的加密算法包括但不限于:SHA256、RSA2048等,服务端接收到请求后,会通过同样的算法和对应的密钥,将生成的摘要与请求的摘要进行比对,对数据完整性进行校验。
在进行签名构造时,可以按照远程过程调用协议要求的数据格式对所述可测试数据进行数据签名。
签名构造有两种方法实现签名内容的构造,具体如下:
方法一、对所述替换后的可测试数据进行签名构造,具体可以包括:
确定所述替换后的可测试数据对应的签名接口信息;
根据所述签名接口信息,确定所述替换后的可测试数据对应的签名接口地址;
从所述签名接口地址调用签名函数对所述替换后的可测试数据进行签名构造。
需要说明的是,上述方法步骤具体可以通过向应用程序注入动态库装置,在移动设备上开启一个监听端口获取外部需要构造签名的数据,通过反射调用的方法,将数据发送到程序中的签名接口,来获取数据签名结果。
这里提到的动态库装置可以是一段移动端中的二进制程序,可以用于监听端口,在需要时被调用。
反射调用,在应用程序中,可以指的是一种在运行时通过字符串查找函数调用地址,并通过地址执行函数逻辑的方法,来达到函数动态调用的能力的调用方法。其中,反射调用对应的字符串可以采用以下例子进行理解,比如:想调用一个签名(加密/解密)接口的地址,此时的字符串就是该签名接口对应的字符串。
在进行签名构造时,主要是需要确定可以对可测试数据进行签名的签名接口地址,通过从确定的签名接口地址调用签名函数,从而采用签名函数对可测试数据完成签名构造。其中,确定签名接口地址并调用签名函数对可测试数据进行签名这一过程,可以通过反射调用的方法进行实现,当然,在实际应用场景中,也可以根据实际需求采用其他方法进行实现,对此,本说明书实施例对此不进行限定。
方法二、通过端内加密算法完成签名构造。
所述对所述待测试数据进行签名构造,具体可以包括:
获取所述替换后的可测试数据对应的端内的加密算法;
通过调用所述端内的加密算法,对所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行加密,完成签名构造。
端内的加密算法可以是开发人员在开发应用程序时所采用的加密算法,当能够获取到端内的加密算法时,可以直接采用该加密算法对可测试数据按照远程过程调用协议要求的数据格式进行加密,完成签名构造。
通过上述两种方法,可以按照远程过程调用协议要求的数据格式构造包含攻击载荷的攻击包数据(即完成签名构造的待测试数据),以便于进行数据重放,为完成漏洞检测提供准确的攻击包数据,提高移动网关的漏洞检测效率。
进一步地,拥有了完整构造好的攻击数据包之后,可通过以下两种方法进行数据流量的重放:
方法一、通过向网关唯一的统一资源定位符(Uniform Resource Locator,简称URL)地址发送对应序列化的流量,来进行流量的重放。
需要说明的是,远程过程调用(RPC)的远程调用原理可以采用以下例子进行说明:比如,A(客户端)调用B(服务端)提供的远程算法(remoteAdd)的方法:首先A与B之间建立一个TCP连接;然后A把需要调用的方法名(这里可以理解为remoteAdd)以及方法参数(10,20)序列化成字节流发送出去;B接收A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用,比如:可以是本地方法(localAdd),并把结果30返回;A接收远程调用结果,输出30。这里提到的服务端可以理解为本方案中的移动网关。
通过上述远程过程调用的原理,可以将序列化理解为将数据分解成字节流,以便存储在文件中或在网络上传输。序列化的方法可以包括不限于:RPC、Protobuf等。
方法二、通过向应用程序注入动态库装置,在移动设备上开启一个监听端口获取外部需要发送的数据,通过反射调用的方法,将数据发送到应用程序的数据发送接口,来完成在移动设备上进行数据的发送。具体可以采用以下方法:
所述将所述待测试数据发送至所述移动网关,具体可以包括:
确定所述待测试数据对应的网关发送接口信息;
根据所述网关发送接口信息,确定所述待测试数据对应的网关接口地址;
将所述待测试数据发送到所述网关接口地址对应的网关接口。
需要说明的是,将待测试数据进行数据重放可以理解为将待测试数据发送至移动网关,具体地,只需要确定网关接口地址对应的网关接口地址,就可以将待测试数据按照网关接口地址发送至网关接口。
通过上述方法,解决了传统扫描器执行移动设备流量重放的难点,以及实现了针对不同业务接口的流量重放,提高了流量数据重放的效率。
在实际应用中,移动终端将需要调用的数据序列化成字节流发送至移动网关;移动网关接收移动终端发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用,并把响应结果返回,此时,需要根据响应结果判断待测试数据中是否存在漏洞,具体可以采用以下两种方法进行实现:
方法一、采用同步过滤器实现当流量重放装置在流量重放成功之后,将所获取的服务端内容提交给监听器时,进行漏洞的利用成功与否的判断。
所述根据所述响应结果判断所述待测试数据中是否存在漏洞,具体可以包括:
监听所述网关针对所述待测试数据返回的响应结果;
将所述响应结果与所述待测试数据进行比对,得到比对结果;
根据比对结果确定所述待测试数据中是否存在漏洞。
采用同步过滤器具体可以检测出水平权限漏洞、垂直权限漏洞以及敏感信息泄漏等类型的漏洞。具体地,水平权限漏洞是指Web应用程序接收到用户请求时,没有判断数据的所属人,或者在判断数据所属人时是从用户提交的参数中获取了用户标识符(userid),导致攻击者可以自行修改不属于自己的数据;垂直权限漏洞是指Web应用没有做权限控制,或仅仅在菜单上做了权限控制,导致恶意用户只要猜到了其他页面的URL。
采用同步过滤器可以直接根据移动网关返回的响应结果进行判断,在判断时,具体可以采用多种方法,例如:可以判断返回的响应结果与重放前的流量数据是否一致,可以判断返回的响应结果中是否包含敏感信息等。
在不同的应用场景下的判断原则可以不相同,比如:在防止篡改的应用场景中,比如:商品购物平台中,商品的价格只能由商家来进行修改,此时,所有用户在购买该商品时,对应的商品价格都是一致的,假设在商家未修改价格的情况下,存在不一致的商品价格成交,可以判定存在漏洞。即假设此时返回的响应结果与重放前的流量数据不一致,则可以判定存在漏洞。需要注意的是,上面举的例子仅用于解释当响应结果与待测试数据一致时,存在漏洞的情况,并不对本方案实施例的保护范围造成影响。
再比如:商品购物平台中,不同的用户购买同一种商品时,成交的订单单号都是不一样的,此时,假设不同用户购买同一商品成交订单相同时,可以判定存在漏洞。即假设此时返回的响应结果与重放前的流量数据一致,则可以判定存在漏洞。需要注意的是,上面举的例子仅用于解释当响应结果与待测试数据不一致时,存在漏洞的情况,并不对本方案实施例的保护范围造成影响。
方法二、采用异步过滤器定时任务去判断异常日志中是否存在执行payload的漏洞。
所述根据所述响应结果判断所述待测试数据中是否存在漏洞,具体可以包括:
定时获取所述移动网关的异常日志;所述异常日志中记录有多个所述响应结果;
对所述异常日志进行解析,得到异常日志中的异常参数;
判断所述异常参数中是否包含所述攻击载荷,得到第二判断结果;
当所述第二判断结果表示所述异常参数中包含所述攻击载荷时,触发漏洞告警。
在实际应用场景中,当移动网关的服务端执行了攻击的payload之后,会触发具有payload的异常事件:包括但不限于如下异常事件:如请求了不存在的域名系统(DomainName System简称DNS)地址,执行了完全不正确的sql比较操作,读取了不存在的路径以及文件等等。而这些操作会通过异常的服务器日志记录下来,监听器会通过定时任务去判断异常日志中是否存在执行Payload对应的漏洞,若过滤到对应的payload,会根据payload的特征来判断属于什么类型的漏洞,从而触发攻击报警。其中,基于异步过滤器的被动式响应方法,可以判断但不限于SQL注入、任意文件读写、SSRF、远程命令执行等漏洞。
通过上述方法,可以更加准确快速地根据响应结果判断出待测试数据中是否存在漏洞,以便于更好地保证系统信息安全。
另外,假设判断出待测试数据中具有漏洞,即接收到同步/异步过滤器执行成功且返回攻击成功结果时,可以暂时关闭相应的业务处理流程,根据具体的漏洞类型进行自动修复,或者也可以向用户发送存在漏洞的提示信息,以保证信息安全。
通过上述判断漏洞的方法,实现了对移动设备网关的漏洞利用结果的判断。
通过上述实施例中的方法,打破了传统扫描器对移动终端网关、业务接口,在扫描能力无法覆盖的问题,实现了对移动设备网关,尤其是移动私有协议模式下的网关,100%网关接口覆盖能力,100%漏洞类型覆盖,从而达到对移动终端网关的漏洞自动化挖掘能力。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置。图3为本说明书实施例提供的对应于图2的一种漏洞检测装置的结构示意图。如图3所示,该装置可以包括:
流量数据获取模块302,用于从移动网关的流量日志中获取流量数据;
可测试数据确定模块304,用于确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
攻击载荷确定模块306,用于根据所述流量参数,确定所述可测试数据对应的攻击载荷;
替换模块308,用于将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
数据格式转换模块310,用于将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
数据发送模块312,用于将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
漏洞判断模块314,用于根据所述响应结果判断所述待测试数据中是否存在漏洞。
可选的,所述流量数据获取模块302,具体可以包括:
抽样单元,用于从移动网关的流量日志中按照预设比例对数据进行抽样,得到预设比例的流量数据。
可选的,所述可测试数据确定模块304,具体可以包括:
可测试特征确定单元,用于根据预设规则判断所述流量数据中是否存在可测试特征,得到第一判断结果;
可测试数据确定单元,用于当所述第一判断结果表示所述流量数据中存在可测试特征时,获取包含所述可测试特征的可测试数据。
可选的,所述攻击载荷确定模块306,具体可以包括:
漏洞类型确定单元,用于根据所述流量参数,确定所述可测试数据对应的漏洞类型;
攻击载荷确定单元,用于根据所述漏洞类型确定所述可测试数据对应的攻击载荷。
可选的,所述替换模块308,具体可以用于:
将所述攻击载荷按照所述流量参数的数据格式进行转换;
根据流量参数所在位置,将所述流量参数替换为进行数据格式转换后的攻击载荷。
可选的,所述数据格式转换模块310,具体可以包括:
签名构造单元,用于对所述替换后的可测试数据进行签名构造,得到完成签名构造后的待测试数据,所述签名构造表示按照远程过程调用协议要求的数据格式对所述替换后的可测试数据进行数据签名。
可选的,所述签名构造单元,具体可以包括:
签名接口信息确定子单元,用于确定所述替换后的可测试数据对应的签名接口信息;
签名接口地址确定子单元,用于根据所述签名接口信息,确定所述替换后的可测试数据对应的签名接口地址;
签名构造子单元,用于从所述签名接口地址调用签名函数对所述替换后的可测试数据进行签名构造。
可选的,所述签名构造单元,具体可以包括:
加密算法获取子单元,用于获取所述替换后的可测试数据对应的端内的加密算法;
加密子单元,用于通过调用所述端内的加密算法,对所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行加密,完成签名构造。
可选的,所述数据发送模块312,具体可以包括:
网关发送接口信息确定单元,用于确定所述待测试数据对应的网关发送接口信息;
网关接口地址确定单元,用于根据所述网关发送接口信息,确定所述待测试数据对应的网关接口地址;
数据发送单元,用于将所述待测试数据发送到所述网关接口地址对应的网关接口。
可选的,所述漏洞判断模块314,具体可以包括:
响应结果监听单元,用于监听所述网关针对所述待测试数据返回的响应结果;
比对单元,用于将所述响应结果与所述待测试数据进行比对,得到比对结果;
漏洞判断单元,用于根据比对结果确定所述待测试数据中是否存在漏洞。
可选的,所述漏洞判断模块314,具体可以包括:
异常日志定时获取单元,用于定时获取所述移动网关的异常日志;所述异常日志中记录有多个所述响应结果;
异常参数解析单元,用于对所述异常日志进行解析,得到异常日志中的异常参数;
判断单元,用于判断所述异常参数中是否包含所述攻击载荷,得到判断结果;
漏洞告警触发单元,用于当所述判断结果表示所述异常参数中包含所述攻击载荷时,触发漏洞告警。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备。图4为本说明书实施例提供的对应于图2的一种漏洞检测设备的结构示意图。如图4所示,设备400可以包括:
至少一个处理器410;以及,
与所述至少一个处理器通信连接的存储器430;其中,
所述存储器430存储有可被所述至少一个处理器410执行的指令420,所述指令被所述至少一个处理器410执行。
所述指令可以使所述至少一个处理器410能够:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞。
基于同样的思路,本说明书实施例还提供了上述方法对应的计算机可读介质。计算机可读介质上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现以下方法:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例是参照根据本说明书一个或多个实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的权利要求范围之内。

Claims (19)

1.一种漏洞检测方法,包括:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞;
所述根据所述流量参数,确定所述可测试数据对应的攻击载荷,具体包括:
根据所述流量参数,确定所述可测试数据对应的漏洞类型;
根据所述漏洞类型确定所述可测试数据对应的攻击载荷。
2.如权利要求1所述的方法,所述从移动网关的流量日志中获取流量数据,具体包括:
从移动网关的流量日志中按照预设比例对数据进行抽样,得到预设比例的流量数据。
3.如权利要求1所述的方法,所述确定所述流量数据中的可测试数据,具体包括:
根据预设规则判断所述流量数据中是否存在可测试特征,得到第一判断结果;
当所述第一判断结果表示所述流量数据中存在可测试特征时,获取包含所述可测试特征的可测试数据。
4.如权利要求1所述的方法,所述将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据,具体包括:
将所述攻击载荷按照所述流量参数的数据格式进行转换;
根据流量参数所在位置,将所述流量参数替换为进行数据格式转换后的攻击载荷。
5.如权利要求1所述的方法,所述将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据,具体包括:
对所述替换后的可测试数据进行签名构造,得到完成签名构造后的待测试数据,所述签名构造表示按照远程过程调用协议要求的数据格式对所述替换后的可测试数据进行数据签名。
6.如权利要求5所述的方法,所述对所述替换后的可测试数据进行签名构造,具体包括:
确定所述替换后的可测试数据对应的签名接口信息;
根据所述签名接口信息,确定所述替换后的可测试数据对应的签名接口地址;
从所述签名接口地址调用签名函数对所述替换后的可测试数据进行签名构造。
7.如权利要求5所述的方法,所述对所述替换后的可测试数据进行签名构造,具体包括:
获取所述替换后的可测试数据对应的端内的加密算法;
通过调用所述端内的加密算法,对所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行加密,完成签名构造。
8.如权利要求1所述的方法,所述将所述待测试数据发送至所述移动网关,具体包括:
确定所述待测试数据对应的网关发送接口信息;
根据所述网关发送接口信息,确定所述待测试数据对应的网关接口地址;
将所述待测试数据发送到所述网关接口地址对应的网关接口。
9.如权利要求1所述的方法,所述根据所述响应结果判断所述待测试数据中是否存在漏洞,具体包括:
监听所述网关针对所述待测试数据返回的响应结果;
将所述响应结果与所述待测试数据进行比对,得到比对结果;
根据比对结果确定所述待测试数据中是否存在漏洞。
10.如权利要求1所述的方法,所述根据所述响应结果判断所述待测试数据中是否存在漏洞,具体包括:
定时获取所述移动网关的异常日志;所述异常日志中记录有多个所述响应结果;
对所述异常日志进行解析,得到异常日志中的异常参数;
判断所述异常参数中是否包含所述攻击载荷,得到第二判断结果;
当所述第二判断结果表示所述异常参数中包含所述攻击载荷时,触发漏洞告警。
11.一种漏洞检测装置,包括:
流量数据获取模块,用于从移动网关的流量日志中获取流量数据;
可测试数据确定模块,用于确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
攻击载荷确定模块,用于根据所述流量参数,确定所述可测试数据对应的攻击载荷;
替换模块,用于将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
数据格式转换模块,用于将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
数据发送模块,用于将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
漏洞判断模块,用于根据所述响应结果判断所述待测试数据中是否存在漏洞;
所述攻击载荷确定模块,具体用于:
根据所述流量参数,确定所述可测试数据对应的漏洞类型;
根据所述漏洞类型确定所述可测试数据对应的攻击载荷。
12.如权利要求11所述的装置,所述数据格式转换模块,具体包括:
签名构造单元,用于对所述替换后的可测试数据进行签名构造,得到完成签名构造后的待测试数据,所述签名构造表示按照远程过程调用协议要求的数据格式对所述替换后的可测试数据进行数据签名。
13.如权利要求12所述的装置,所述签名构造单元,具体包括:
签名接口信息确定子单元,用于确定所述替换后的可测试数据对应的签名接口信息;
签名接口地址确定子单元,用于根据所述签名接口信息,确定所述替换后的可测试数据对应的签名接口地址;
签名构造子单元,用于从所述签名接口地址调用签名函数对所述替换后的可测试数据进行签名构造。
14.如权利要求12所述的装置,所述签名构造单元,具体包括:
加密算法获取子单元,用于获取所述替换后的可测试数据对应的端内的加密算法;
加密子单元,用于通过调用所述端内的加密算法,对所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行加密,完成签名构造。
15.如权利要求11所述的装置,所述数据发送模块,具体包括:
网关发送接口信息确定单元,用于确定所述待测试数据对应的网关发送接口信息;
网关接口地址确定单元,用于根据所述网关发送接口信息,确定所述待测试数据对应的网关接口地址;
数据发送单元,用于将所述待测试数据发送到所述网关接口地址对应的网关接口。
16.如权利要求11所述的装置,所述漏洞判断模块,具体包括:
响应结果监听单元,用于监听所述网关针对所述待测试数据返回的响应结果;
比对单元,用于将所述响应结果与所述待测试数据进行比对,得到比对结果;
漏洞判断单元,用于根据比对结果确定所述待测试数据中是否存在漏洞。
17.如权利要求11所述的装置,所述漏洞判断模块,具体包括:
异常日志定时获取单元,用于定时获取所述移动网关的异常日志;所述异常日志中记录有多个所述响应结果;
异常参数解析单元,用于对所述异常日志进行解析,得到异常日志中的异常参数;
判断单元,用于判断所述异常参数中是否包含所述攻击载荷,得到判断结果;
漏洞告警触发单元,用于当所述判断结果表示所述异常参数中包含所述攻击载荷时,触发漏洞告警。
18.一种漏洞检测设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
从移动网关的流量日志中获取流量数据;
确定所述流量数据中的可测试数据,所述可测试数据中包括流量参数,所述流量参数具有触发漏洞的可能;
根据所述流量参数,确定所述可测试数据对应的攻击载荷;
将所述流量参数替换为所述攻击载荷,得到替换后的可测试数据;
将所述替换后的可测试数据按照远程过程调用协议要求的数据格式进行转换,得到符合所述远程过程调用协议的格式的待测试数据;
将所述待测试数据发送至所述移动网关,并接收所述移动网关针对所述待测试数据返回的响应结果;
根据所述响应结果判断所述待测试数据中是否存在漏洞;
所述根据所述流量参数,确定所述可测试数据对应的攻击载荷,具体包括:
根据所述流量参数,确定所述可测试数据对应的漏洞类型;
根据所述漏洞类型确定所述可测试数据对应的攻击载荷。
19.一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现权利要求1至10中任一项所述的漏洞检测方法。
CN202010066225.2A 2020-01-20 2020-01-20 一种漏洞检测方法、装置及设备 Active CN111294345B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010066225.2A CN111294345B (zh) 2020-01-20 2020-01-20 一种漏洞检测方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010066225.2A CN111294345B (zh) 2020-01-20 2020-01-20 一种漏洞检测方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111294345A CN111294345A (zh) 2020-06-16
CN111294345B true CN111294345B (zh) 2022-03-25

Family

ID=71024278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010066225.2A Active CN111294345B (zh) 2020-01-20 2020-01-20 一种漏洞检测方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111294345B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111770079B (zh) * 2020-06-24 2022-09-02 绿盟科技集团股份有限公司 一种web框架注入漏洞检测方法及装置
CN111901327B (zh) * 2020-07-21 2022-07-26 平安科技(深圳)有限公司 云网络漏洞挖掘方法、装置、电子设备及介质
CN114257389B (zh) * 2020-09-22 2024-08-02 北京基调网络股份有限公司 一种基于语法分析的反射型xss检测方法及装置
CN112149137B (zh) * 2020-09-30 2023-12-05 深圳前海微众银行股份有限公司 漏洞检测方法、装置、电子设备及计算机可读存储介质
CN114584330A (zh) * 2020-11-16 2022-06-03 华为技术有限公司 漏洞测试方法及装置
CN112134905B (zh) * 2020-11-20 2021-02-09 深圳市房多多网络科技有限公司 基于安卓系统的签名方法、装置以及设备
CN112929365B (zh) * 2021-02-05 2023-05-16 深信服科技股份有限公司 一种远程命令检测方法、装置及电子设备
CN113157583B (zh) * 2021-04-28 2024-04-26 中国工商银行股份有限公司 一种测试方法、装置及设备
CN113569255A (zh) * 2021-07-29 2021-10-29 中国工商银行股份有限公司 基于后台rpc接口的漏洞检测方法及装置
CN114189360B (zh) * 2021-11-19 2023-09-29 上海纽盾科技股份有限公司 态势感知的网络漏洞防御方法、装置及系统
CN114301673A (zh) * 2021-12-28 2022-04-08 上海识装信息科技有限公司 一种漏洞检测方法、装置、电子设备及存储介质
CN114726876B (zh) * 2022-02-24 2024-06-11 腾讯科技(深圳)有限公司 一种数据检测方法、装置、设备和存储介质
CN115314281A (zh) * 2022-08-04 2022-11-08 北京天融信网络安全技术有限公司 一种流量攻击检测方法及装置
CN118246031B (zh) * 2024-05-20 2024-08-27 中汽智联技术有限公司 一种车载信息安全测试方法、装置、介质及电子设备
CN118631586A (zh) * 2024-08-06 2024-09-10 中国人民解放军国防科技大学 一种基于载荷自动生成的域名系统安全测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480531A (zh) * 2017-07-18 2017-12-15 北京计算机技术及应用研究所 基于漏洞库的自动化软件漏洞验证系统及方法
CN110113311A (zh) * 2019-03-05 2019-08-09 北京丁牛科技有限公司 跨站脚本攻击xss漏洞检测方法及装置
CN110472414A (zh) * 2019-07-23 2019-11-19 中国平安人寿保险股份有限公司 系统漏洞的检测方法、装置、终端设备及介质
CN110647474A (zh) * 2019-09-29 2020-01-03 江苏满运软件科技有限公司 自动化回归测试的抗干扰方法、装置、计算机设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112240B2 (en) * 2005-04-29 2012-02-07 Abbott Diabetes Care Inc. Method and apparatus for providing leak detection in data monitoring and management systems
US9135405B2 (en) * 2011-05-26 2015-09-15 Carnegie Mellon University Automated exploit generation
CN106487813A (zh) * 2016-12-13 2017-03-08 北京匡恩网络科技有限责任公司 工控网络安全检测系统及检测方法
CN110348225A (zh) * 2019-07-09 2019-10-18 中国工商银行股份有限公司 针对应用程序接口的安全漏洞确定方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480531A (zh) * 2017-07-18 2017-12-15 北京计算机技术及应用研究所 基于漏洞库的自动化软件漏洞验证系统及方法
CN110113311A (zh) * 2019-03-05 2019-08-09 北京丁牛科技有限公司 跨站脚本攻击xss漏洞检测方法及装置
CN110472414A (zh) * 2019-07-23 2019-11-19 中国平安人寿保险股份有限公司 系统漏洞的检测方法、装置、终端设备及介质
CN110647474A (zh) * 2019-09-29 2020-01-03 江苏满运软件科技有限公司 自动化回归测试的抗干扰方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于动态分析的XSS漏洞检测模型;谷家腾,辛阳;《计算机工程》;20181030;34-41 *

Also Published As

Publication number Publication date
CN111294345A (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
CN111294345B (zh) 一种漏洞检测方法、装置及设备
CA2966408C (en) A system and method for network intrusion detection of covert channels based on off-line network traffic
Malik et al. CREDROID: Android malware detection by network traffic analysis
Liu et al. On manually reverse engineering communication protocols of linux-based iot systems
CN111783096B (zh) 检测安全漏洞的方法和装置
Bojjagani et al. Stamba: Security testing for Android mobile banking apps
CN111400722A (zh) 扫描小程序的方法、装置、计算机设备和存储介质
Lala et al. Secure web development using owasp guidelines
CN110968872A (zh) 文件漏洞的检测处理方法、装置、电子设备及存储介质
Nagpal et al. SECSIX: security engine for CSRF, SQL injection and XSS attacks
CN112671605B (zh) 一种测试方法、装置及电子设备
Huang et al. Fuzzing the android applications with http/https network data
Wang et al. One Size Does Not Fit All: Uncovering and Exploiting Cross Platform Discrepant {APIs} in {WeChat}
Ahmad et al. Issues of clinical identity verification for healthcare applications over mobile terminal platform
Atapour et al. Modeling Advanced Persistent Threats to enhance anomaly detection techniques
Qin et al. UCRF: Static analyzing firmware to generate under-constrained seed for fuzzing SOHO router
Mazmudar et al. Mitigator: Privacy policy compliance using trusted hardware
Tang et al. Ssldetecter: detecting SSL security vulnerabilities of android applications based on a novel automatic traversal method
Liu et al. An automatically vetting mechanism for SSL error-handling vulnerability in android hybrid Web apps
Chughtai et al. Deep learning trends and future perspectives of web security and vulnerabilities
Khodayari et al. The Great Request Robbery: An Empirical Study of Client-side Request Hijacking Vulnerabilities on the Web
Ellahi et al. Analyzing 2FA phishing attacks and their prevention techniques
Sharma et al. Smartphone security and forensic analysis
Chen et al. Toward discovering and exploiting private server-side web apis
Riesch et al. Audit based privacy preservation for the OpenID authentication protocol

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