CN110990168A - 三层关联信息的生成方法、系统、电子设备及存储介质 - Google Patents

三层关联信息的生成方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN110990168A
CN110990168A CN201911184463.7A CN201911184463A CN110990168A CN 110990168 A CN110990168 A CN 110990168A CN 201911184463 A CN201911184463 A CN 201911184463A CN 110990168 A CN110990168 A CN 110990168A
Authority
CN
China
Prior art keywords
thread
web server
database
communication parameters
target api
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.)
Granted
Application number
CN201911184463.7A
Other languages
English (en)
Other versions
CN110990168B (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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201911184463.7A priority Critical patent/CN110990168B/zh
Publication of CN110990168A publication Critical patent/CN110990168A/zh
Application granted granted Critical
Publication of CN110990168B publication Critical patent/CN110990168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种三层关联信息的生成方法,所述生成方法包括根据Web服务器的操作系统类型向所述Web服务器注入目标API;当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。本申请能够提高三层关联信息的精度。本申请还公开了一种三层关联信息的生成系统、一种存储介质及一种电子设备,具有以上有益效果。

Description

三层关联信息的生成方法、系统、电子设备及存储介质
技术领域
本申请涉及数据审计技术领域,特别涉及一种三层关联信息的生成方法、系统、一种电子设备及一种存储介质。
背景技术
当前互联网行业蓬勃发展,绝大部分应用系统都是基于浏览器、Web服务器和数据库的三层部署架构。在这种部署方式中,对后台数据库的操作都是由浏览器(前端)发起,由Web应用服务器来执行。关联后台数据库的访问与前端发起者是数据安全审计所关心的问题。
为了实现三层关联,相关技术中通过模糊匹配的方式实现浏览器、Web服务器和数据库的三层关联,即审计系统通过多重机制获取后台数据库与前端访问者之间的通信内容,然后根据通信内容与数据库请求内容和返回内容进行模糊匹配以便实现三层关联。但是,实际应用中数据库的访问并发量很大,后台数据库的访问与前端访问者一对一的关联准确率较低。
因此,如何提高三层关联信息的精度是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种三层关联信息的生成方法、系统、一种存储介质及一种电子设备,能够提高三层关联信息的精度。
为解决上述技术问题,本申请提供一种三层关联信息的生成方法,该生成方法包括:
根据Web服务器的操作系统类型向所述Web服务器注入目标API;
当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;
利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;
记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。
可选的,当所述Web服务器的操作系统为Windows系统时,向所述Web服务器注入目标API包括:
利用远程线程接口在所述Web服务器中启动目标线程;
利用所述目标线程加载目标动态库以便向Web服务器注入目标API;其中,所述目标动态库包括用于发送数据包的函数和用于接收数据包的函数。
可选的,利用所述目标API获取所述数据包对应的线程ID包括:
利用所述目标API中的GetCurrentThreadId接口获取所述数据包对应的线程ID;
相应的,利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型包括:
利用所述目标API中的getpeername接口获取所述线程ID对应的前端通信参数和前端协议类型;
利用所述目标API中的getsockname接口获取所述线程ID对应的数据库通信参数和数据库协议类型。
可选的,当所述Web服务器的操作系统为Linux系统时,向所述Web服务器注入目标API包括:
利用注入工具将so库注入至所述Web服务器;其中,所述so库包括所述目标API。
可选的,还包括:
根据所述数据包对应的线程ID、所述数据包的接收时间和所述前端通信参数生成与所述关联关系唯一对应的三层关联ID;
将所述三层关联ID添加至所述三层关联信息。
可选的,所述前端通信参数包括访问所述Web服务器的原始IP地址和访问所述Web服务器的原始端口,所述数据库通信参数包括访问数据库的原始IP地址和访问所述数据库的原始端口。
可选的,还包括:
向数据分析设备发送所述三层关联信息;
当所述三层关联信息发送完毕时,向所述数据分析设备发送所述数据包。
可选的,包括:
本申请还提供了一种三层关联信息的生成系统,该生成系统包括:
API注入模块,用于根据Web服务器的操作系统类型向所述Web服务器注入目标API;
信息获取模块,用于当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID、前端通信参数、数据库通信参数和协议类型;
关联模块,用于记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并生成与所述关联关系唯一对应的三层关联ID;
三层关联信息生成模块,用于根据所述关联关系和所述三层关联ID生成三层关联信息。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述三层关联信息的生成方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述三层关联信息的生成方法执行的步骤。
本申请提供了一种三层关联信息的生成方法,包括根据Web服务器的操作系统类型向所述Web服务器注入目标API;当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。
本申请通过API注入技术将目标API注入至Web服务器,利用目标API获取数据包对应的线程ID,根据线程ID可以确定该数据包对应的前端通讯参数、数据库通信参数和协议类型,将线程ID与web访问数据包、数据库访问数据包和协议类型相关联,可以得到三层关联信息。在上述过程中得到的三层关联信息根据线程ID相关联,因此可以避免出现错误关联的情况,提升了三层关联信息的精度。本申请同时还提供了一种三层关联信息的生成系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例之所提供的一种三层部署架构的结构示意图;
图2为本申请实施例所提供的一种三层关联信息的生成方法的流程图;
图3为本申请实施例所提供的一种API注入方法的流程图;
图4为本申请实施例所提供的另一种API注入方法的流程图;
图5为本申请实施例所提供的一种三层关联信息的生成系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应用系统大多数采用基于前端、Web服务器、数据库服务器典型的三层部署架构。请参见图1,图1为本申请实施例之所提供的一种三层部署架构的结构示意图,在三层部署架构中,对后台的数据库服务器的操作都是由前端发起,由Web服务器来对数据库执行操作。在三层部署架构中,前端访问者发起一个HTTP访问,Web服务器接收该HTTP访问,然后Web服务器根据前端访问者提交的动作发出SQL命令去访问后台数据库服务器,后台数据库服务器再根据SQL命令执行相关操作。三层关联信息将后端数据库服务器访问与前端发起者进行一对一关联,根据三层关联信息可以查询到某个HTTP访问触发了哪个数据库访问及相关操作,也可以查询到某个后台数据库服务器访问及相关操作由哪个HTTP所触发。具体的,三层关联信息可以包括前端使用者的用户名、访问IP地址、访问时间、结束时间、Web服务器地址、Web服务器IP、SQL语句、数据库名、数据库表名、端口、执行结果等信息。相关技术中,生成三层关联信息的方式为:审计系统通过多重机制获取后台数据库与前端访问者之间的通信内容,然后通过访问开始时间、访问结束时间、URL(Uniform Resource Locator,统一资源定位符)模板、SQL(Structured Query Language,结构化查询语言)模板、Web请求内容和返回内容与数据库请求内容和返回内容的模糊匹配、自定义策略等方案进行关联。但是当访问并发量达到一定数量后,后台数据库的访问与前端访问者一对一的关联准确率会大幅度降低,上述相关技术无法准确做出关联。针对于上述相关技术的存在的种种缺陷,本申请通过以下几个实施例提供新的三层关联信息的生成方法,能够提高三层关联信息的精度。
下面请参见图2,图2为本申请实施例所提供的一种三层关联信息的生成方法的流程图。
具体步骤可以包括:
S101:根据Web服务器的操作系统类型向Web服务器注入目标API;
其中,本实施例可以用于获取准确的三层关联信息,根据三层关联信息能够确定前端提请的请求与数据库访问操作的对应关系,即:可以确定后台数据库访问与前端具体访问者的对应关系。本实施例的执行主体可以为与Web服务器连接的三层关联信息处理终端,在得到三层关联信息之后可以进行数据分析操作。Web服务器也称为WWW(WORLD WIDEWEB)服务器,可以向发出请求的前端浏览器提供信息浏览服务。
本实施例中的Web服务器可以为三层部署架构中的服务器,在三层部署架构包括前端发起者(如浏览器)、执行者(如Web服务器)和数据库(如数据库服务器)。Web服务器为多线程的架构,当接收到一个Web请求时,Web服务器就会启动一个线程,从线程池中获取一个新的线程来处理用户的请求。举例说明三层部署架构的工作原理,例如前端访问者发起HTTP(HyperText Transfer Protocol,超文本传输协议)访问,Web服务器接收该HTTP访问,Web服务器根据前端访问者提交的动作发出SQL命令去访问后台数据库服务器,后台数据库服务器根据SQL命令执行相关操作。通过确定浏览器、Web服务器与数据库服务器之间的三层关联信息,可以查询到某个HTTP访问触发了哪个数据库访问及相关操作,也可以查询到某个后台数据库服务器访问及相关操作由哪个HTTP所触发,从而将后台数据库访问与前台具体访问者进行一对一的关联。
本实施例不限定目标API(Application Programming Interface,应用程序编程接口)的种类与数量,针对不同操作系统的Web服务器可以存在不同的目标API和API注入方法。例如,当Web服务器的操作系统为Windows系统时可以采用远程注入的方式实现目标API的注入;当Web服务器的操作系统为Linux系统时可以采用ptrace-based的方式实现目标API的注入。
S102:当Web服务器接收到数据包时,利用目标API获取数据包对应的线程ID;
其中,本步骤建立在已经在Web服务器中注入目标API的基础上,由于本实施例使用API注入的技术将目标API注入到Web服务器,通过上述方式注入API获取线程ID时可以不用重启客户的web服务器,也可以不用重启客户的数据库服务器,可以避免出现客户业务终端或业务不稳定等情况。
本步骤中Web服务器接受到的数据包可以为Web服务器与浏览器进行交互的数据包,也可以为Web服务器与数据库服务器进行交互的数据包。当Web服务器接收到数据包时,可以利用目标API查询该数据包对应的线程并确定该线程对应的线程ID。若本步骤中所提到的数据包为Web服务器与浏览器进行交互的数据包时,可以确定该数据包对应进程为浏览器-Web服务器交互线程,利用目标API获取浏览器-Web服务器交互线程的线程ID;若本步骤中所提到的数据包为Web服务器与数据库服务器进行交互的数据包时,可以确定该数据包对应进程为Web服务器-数据库服务器交互线程,利用目标API获取Web服务器-数据库服务器交互线程的线程ID。线程ID即线程的标识,同一进程内任意两个线程的线程ID不相同,可以根据线程ID确定相应线程执行的操作或创建的事件。
S103:利用目标API确定线程ID对应的前端通信参数、数据库通信参数和协议类型;
其中,在三层部署架构中Web服务器可以接收前端访问者下发的HTTP请求,然后Web服务器根据前端访问者的HTTP请求对应的动作发出SQL命令去访问后台数据库服务器,在上述过程中由同一条线程完成。也就是说,Web服务器可以生成一条线程执行步骤1和步骤2,步骤1为接收HTTP请求,步骤2为继续利用该线程将HTTP请求对应的SQL命令发送至数据库服务器,上述步骤1和步骤2对应的线程ID不变。因此,在本步骤中确定的前端通信参数、数据库通信参数和协议类型为同一数据包对应的信息。
需要说明的是,所述前端通信参数包括访问所述Web服务器的原始IP地址和访问所述Web服务器的原始端口,所述数据库通信参数包括访问数据库的原始IP地址和访问所述数据库的原始端口。其中,访问所述Web服务器的原始IP地址指发送HTTP请求的前端发起者的IP地址,访问所述Web服务器的原始端口指发送HTTP请求的前端发起者的端口,访问数据库的原始IP地址为Web服务器发送SQL命令的IP地址,访问数据库的原始端口为Web服务器发送SQL命令的端口。
S104:记录线程ID、前端通信参数和数据库通信参数的关联关系,并根据关联关系生成三层关联信息。
其中,本步骤在得到线程ID、所述前端通信参数和所述数据库通信参数,记录线程ID、所述前端通信参数和所述数据库通信参数的关联关系,基于该关联关系生成三层关联信息。
作为一种可行的实施方式,在生成三层关联信息之后还可以根据所述数据包对应的线程ID、所述数据包的接收时间和所述前端通信参数生成与所述关联关系唯一对应的三层关联ID;将所述三层关联ID添加至所述三层关联信息。通过上述操作能够为每一条三层关联信息设置唯一对应的三层关联ID,当存在大量并发访问时,可以根据三层关联ID进行三层关联信息的查询。
在得到三层关联信息之后可以先向数据分析设备发送所述三层关联信息,当所述三层关联信息发送完毕时,向所述数据分析设备发送所述数据包。上述过程中发送三层关联信息,再发送数据包,所以在数据分析设备中不会造成因为线程ID和端口号等的重用导致的关联错误的情况。数据分析设备可以用于对三层部署架构中的后端访问操作和前端执行者进行分析,以便检测前端对于后端数据库的异常访问,有利于网络安全审计。进一步的,数据分析设备可以根据接收顺序将访问数据库的数据包关联到访问web服务器的数据包。
本实施例通过API注入技术将目标API注入至Web服务器,利用目标API获取数据包对应的线程ID,根据线程ID可以确定该数据包对应的前端通讯参数、数据库通信参数和协议类型,将线程ID与web访问数据包、数据库访问数据包和协议类型相关联,可以得到三层关联信息。在上述过程中得到的三层关联信息根据线程ID相关联,因此可以避免出现错误关联的情况,提升了三层关联信息的精度。
请参见图3,图3为本申请实施例所提供的一种API注入方法的流程图,本实施例对于当Web服务器的操作系统为Windows系统时的API注入方式进行了介绍,可以将本实施例与图2对应的实施例相结合得到进一步的实施方式,本实施例可以包括以下步骤:
S201:利用远程线程接口在Web服务器中启动目标线程;
S202:利用目标线程加载目标动态库以便向Web服务器注入目标API;其中,所述目标动态库包括用于发送数据包的函数和用于接收数据包的函数。
在上述实施例中,首先通过远程线程接口控制Web服务器启动目标线程,利用目标线程加载的目标动态库可以为detours库以便完成目标API注入操作。作为一种可行的实施方式,在加载目标动态库之前可以存在,修改目标动态库的加载函数的操作,例如可以包括修改recv、send、wsarecv、wsasend的调用地址,以便利用目标API获取Web服务器中的线程信息。也就是说,本实施例通过注入recv、send、wsarecv、wsasend等发送数据包和接收数据包的函数,获取到对应的线程ID,对应socket的原始IP地址,原始端口,目标IP地址,目标端口和协议类型。
上述处理过程可以解决稳定性和多版本windows操作系统的问题,并且无需重启Web服务器的应用程序。
在图3对应的实施例的基础上,本申请实施例还提供了一种更为具体的获取线程ID、前端通信参数、数据库通信参数和协议类型的方法,具体过程如下:利用所述目标API中的GetCurrentThreadId接口获取所述数据包对应的线程ID;利用所述目标API中的getpeername接口获取所述线程ID对应的前端通信参数和前端协议类型;利用所述目标API中的getsockname接口获取所述线程ID对应的数据库通信参数和数据库协议类型。
本申请实施例还提供了另一种可行的API注入方法,当所述Web服务器的操作系统为Linux系统时,向所述Web服务器注入目标API的操作具体可以为:利用注入工具将so库注入至所述Web服务器;其中,所述so库包括所述目标API。
本实施例相当于使用ptrace-based的方式进行API注入,其中上述过程提到的so库可以为使用工具linux-inject注入使用udis86编写的so库,在注入so库之前本实施例可以修改recv、send、wsarecv、wsasend四个函数的调用地址以便完成注入。上述API注入方式,无需重启客户的应用程序,能够不影响Web服务器的稳定性。
进一步的,当Web服务器的操作系统为Linux时,获取线程ID、前端通信参数、数据库通信参数和协议类型的具体过程如下:利用所述目标API中的GetCurrentThreadId接口获取所述数据包对应的线程ID;利用所述目标API中的getpeername接口获取所述线程ID对应的前端通信参数和前端协议类型;利用所述目标API中的getsockname接口获取所述线程ID对应的数据库通信参数和数据库协议类型。利用所述目标API中的gettid接口获取正在执行socket通信的线程ID,也可以使用syscall(__NR_gettid)来获取线程ID。利用所述目标API中的getpeername接口获取当前通信的socket的远程IP地址,远程端口,远程协议类型。利用所述目标API中的getsockname接口获取当前通信的socket的本地IP地址,本地端口,本地协议类型。其中,远程IP地址和远程端口为前端通信参数,本地IP地址和本地端口为数据库通信参数。
请参见图4,图4为本申请实施例所提供的另一种API注入方法的流程图,具体可以包括以下步骤:
S301:向Web服务器发送ping命令,以便Web服务器返回TTL值;
S302:根据接收到的TTL值判断Web服务器的操作系统是Windows系统还是Linux系统;若为Windows系统则进入S303;若为Linux系统则进入S305;
其中,ping(Packet Internet Groper,因特网包探索器)命令,可以用于测试网络连接量,TTL(Time To Live,生存期)值为传输的数据在网络上经过的路由器的最大个数。不同操作系统的Web服务器会返回的TTL值不相同,可以预先设置TTL值与操作系统类型的对应关系表,进而通过查表可以确定Web服务器的操作系统类型。例如若TTL值为128,Web服务器的操作系统为Windows NT系统、Windows 2K系统或Windows XP系统。若TTL值为32,Web服务器的操作系统为Windows 95系统。若TTL值为64,Web服务器的操作系统为Linux系统。
S303:利用远程线程接口在Web服务器中启动目标线程;
S304:利用目标线程加载目标动态库以便向Web服务器注入目标API;
S305:利用注入工具将so库注入至Web服务器;其中,所述so库包括所述目标API。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
首先通过注入API的方式向Web服务器注入recv、send、wsarecv和wsasend等用于发送数据包和接收数据包的函数。通过API获取到数据包的线程ID,数据包对应socket的原始IP,原始端口,目标IP,目标端口和协议类型。其次,根据线程ID将当前线程访问访问数据库的IP和端口跟客户端访问web的原始IP和端口进行关联。根据线程ID、访问时间、访问web的原始IP和端口计算出一个唯一的三层关联ID。三层关联信息可以包括:线程ID,访问web的原始IP,访问web的原始端口、访问数据库的原始IP、访问数据库的原始端口、协议类型和三层关联ID,可以将三层关联信息包装成与数据包的五元组类似的一个数据包发送到数据分析设备,然后再将对应的数据包发送到数据分析设备。然后在数据分析设备根据五元组来区分出来一个session,并将三层关联信息保存到session中,将三层关联信息写入到web访问日志或者数据库访问日志中。
在上述过程中仅仅获取下线程ID,远端的IP,远端的端口,本地的IP和本地的端口和根据端口过滤掉不需要的数据包,然后就经过不阻塞的socket发送到了服务器的其它进程中。由其它进程进行数据包的包装和发送到数据分析设备,对原始的web服务器没有任何的影响。
请参见图5,图5为本申请实施例所提供的一种三层关联信息的生成系统的结构示意图;
该系统可以包括:
API注入模块100,用于根据Web服务器的操作系统类型向所述Web服务器注入目标API;
线程ID获取模块200,用于当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;
参数获取模块300,用于利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;
三层关联信息生成模块400,用于记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。
本实施例通过API注入技术将目标API注入至Web服务器,利用目标API获取数据包对应的线程ID,根据线程ID可以确定该数据包对应的前端通讯参数、数据库通信参数和协议类型,将线程ID与web访问数据包、数据库访问数据包和协议类型相关联,可以得到三层关联信息。在上述过程中得到的三层关联信息根据线程ID相关联,因此可以避免出现错误关联的情况,提升了三层关联信息的精度。
进一步的,当所述Web服务器的操作系统为Windows系统时,API注入模块100包括:
远程线程启动单元,用于利用远程线程接口在所述Web服务器中启动目标线程;
远程注入单元,用于利用所述目标线程加载目标动态库以便向Web服务器注入目标API;其中,所述目标动态库包括用于发送数据包的函数和用于接收数据包的函数。
进一步的,线程ID获取模块200具体为用于利用所述目标API中的GetCurrentThreadID接口获取所述数据包对应的线程ID的模块;
进一步的,参数获取模块300包括:
第一获取单元,用于利用所述目标API中的getpeername接口获取所述线程ID对应的前端通信参数和前端协议类型;
第二获取单元,用于利用所述目标API中的getsockname接口获取所述线程ID对应的数据库通信参数和数据库协议类型。
进一步的,当所述Web服务器的操作系统为Linux系统时,API注入模块100具体为用于利用注入工具将so库注入至所述Web服务器;其中,所述so库包括所述目标API的模块。
进一步的,还包括:
ID生成模块,用于根据所述数据包对应的线程ID、所述数据包的接收时间和所述前端通信参数生成与所述关联关系唯一对应的三层关联ID;
ID添加模块,用于将所述三层关联ID添加至所述三层关联信息。
进一步的,所述前端通信参数包括访问所述Web服务器的原始IP地址和访问所述Web服务器的原始端口,所述数据库通信参数包括访问数据库的原始IP地址和访问所述数据库的原始端口。
进一步的,还包括:
三层关联信息发送模块,用于向数据分析设备发送所述三层关联信息;
数据包发送模块,用于当所述三层关联信息发送完毕时,向所述数据分析设备发送所述数据包。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种三层关联信息的生成方法,其特征在于,包括:
根据Web服务器的操作系统类型向所述Web服务器注入目标API;
当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;
利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;
记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。
2.根据权利要求1所述生成方法,其特征在于,当所述Web服务器的操作系统为Windows系统时,向所述Web服务器注入目标API包括:
利用远程线程接口在所述Web服务器中启动目标线程;
利用所述目标线程加载目标动态库以便向Web服务器注入目标API;其中,所述目标动态库包括用于发送数据包的函数和用于接收数据包的函数。
3.根据权利要求2所述生成方法,其特征在于,利用所述目标API获取所述数据包对应的线程ID包括:
利用所述目标API中的GetCurrentThreadId接口获取所述数据包对应的线程ID;
相应的,利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型包括:
利用所述目标API中的getpeername接口获取所述线程ID对应的前端通信参数和前端协议类型;
利用所述目标API中的getsockname接口获取所述线程ID对应的数据库通信参数和数据库协议类型。
4.根据权利要求1所述生成方法,其特征在于,当所述Web服务器的操作系统为Linux系统时,向所述Web服务器注入目标API包括:
利用注入工具将so库注入至所述Web服务器;其中,所述so库包括所述目标API。
5.根据权利要求1所述生成方法,其特征在于,还包括:
根据所述数据包对应的线程ID、所述数据包的接收时间和所述前端通信参数生成与所述关联关系唯一对应的三层关联ID;
将所述三层关联ID添加至所述三层关联信息。
6.根据权利要求1所述生成方法,其特征在于,所述前端通信参数包括访问所述Web服务器的原始IP地址和访问所述Web服务器的原始端口,所述数据库通信参数包括访问数据库的原始IP地址和访问所述数据库的原始端口。
7.根据权利要求1至6任一项所述生成方法,其特征在于,还包括:
向数据分析设备发送所述三层关联信息;
当所述三层关联信息发送完毕时,向所述数据分析设备发送所述数据包。
8.一种三层关联信息的生成系统,其特征在于,包括:
API注入模块,用于根据Web服务器的操作系统类型向所述Web服务器注入目标API;
线程ID获取模块,用于当所述Web服务器接收到数据包时,利用所述目标API获取所述数据包对应的线程ID;
参数获取模块,用于利用所述目标API确定所述线程ID对应的前端通信参数、数据库通信参数和协议类型;
三层关联信息生成模块,用于记录所述线程ID、所述前端通信参数和所述数据库通信参数的关联关系,并根据所述关联关系生成三层关联信息。
9.一种电子设备,其特征在于,包括存储器、处理器和FPGA,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述三层关联信息的生成方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述三层关联信息的生成方法的步骤。
CN201911184463.7A 2019-11-27 2019-11-27 三层关联信息的生成方法、系统、电子设备及存储介质 Active CN110990168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911184463.7A CN110990168B (zh) 2019-11-27 2019-11-27 三层关联信息的生成方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911184463.7A CN110990168B (zh) 2019-11-27 2019-11-27 三层关联信息的生成方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN110990168A true CN110990168A (zh) 2020-04-10
CN110990168B CN110990168B (zh) 2024-02-27

Family

ID=70087530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911184463.7A Active CN110990168B (zh) 2019-11-27 2019-11-27 三层关联信息的生成方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN110990168B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752727A (zh) * 2020-06-30 2020-10-09 上海观安信息技术股份有限公司 一种基于日志分析的数据库三层关联的识别方法
CN111752729A (zh) * 2020-06-30 2020-10-09 上海观安信息技术股份有限公司 一种构建三层关联关系模型的方法及三层关系识别方法
CN112199677A (zh) * 2020-11-03 2021-01-08 安徽中安睿御科技有限公司 一种数据处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182075B1 (en) * 1997-09-26 2001-01-30 International Business Machines Corporation Method and apparatus for discovery of databases in a client server network
CN105373603A (zh) * 2015-11-09 2016-03-02 杭州安恒信息技术有限公司 一种提高三层关联精准度的方法
CN105930427A (zh) * 2016-04-19 2016-09-07 深圳市深信服电子科技有限公司 数据库审计方法及装置
CN107911466A (zh) * 2017-11-29 2018-04-13 北京安华金和科技有限公司 一种多层架构下应用关联方法
CN109474669A (zh) * 2018-10-19 2019-03-15 杭州安恒信息技术股份有限公司 一种高准确率的互联网应用系统的关联方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182075B1 (en) * 1997-09-26 2001-01-30 International Business Machines Corporation Method and apparatus for discovery of databases in a client server network
CN105373603A (zh) * 2015-11-09 2016-03-02 杭州安恒信息技术有限公司 一种提高三层关联精准度的方法
CN105930427A (zh) * 2016-04-19 2016-09-07 深圳市深信服电子科技有限公司 数据库审计方法及装置
CN107911466A (zh) * 2017-11-29 2018-04-13 北京安华金和科技有限公司 一种多层架构下应用关联方法
CN109474669A (zh) * 2018-10-19 2019-03-15 杭州安恒信息技术股份有限公司 一种高准确率的互联网应用系统的关联方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
熊忠阳;张玉芳;吴中福;: "三层结构中的数据库访问技术" *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111752727A (zh) * 2020-06-30 2020-10-09 上海观安信息技术股份有限公司 一种基于日志分析的数据库三层关联的识别方法
CN111752729A (zh) * 2020-06-30 2020-10-09 上海观安信息技术股份有限公司 一种构建三层关联关系模型的方法及三层关系识别方法
CN111752727B (zh) * 2020-06-30 2023-06-20 上海观安信息技术股份有限公司 一种基于日志分析的数据库三层关联的识别方法
CN111752729B (zh) * 2020-06-30 2023-06-27 上海观安信息技术股份有限公司 一种构建三层关联关系模型的方法及三层关系识别方法
CN112199677A (zh) * 2020-11-03 2021-01-08 安徽中安睿御科技有限公司 一种数据处理方法和装置

Also Published As

Publication number Publication date
CN110990168B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
CN109766262B (zh) 接口数据处理方法、自动化测试方法、装置、设备和介质
EP2244418B1 (en) Database security monitoring method, device and system
CN110990168B (zh) 三层关联信息的生成方法、系统、电子设备及存储介质
CN107948203A (zh) 一种容器登录方法、应用服务器、系统及存储介质
CN108989355B (zh) 一种漏洞检测方法和装置
CN106484611B (zh) 基于自动化协议适配的模糊测试方法和装置
CN110781083B (zh) 一种h5客户端代码设置多环境测试方法和系统
US8489631B2 (en) Distributing a query
CN105635064A (zh) Csrf攻击检测方法及装置
CN110674427B (zh) 响应网页访问请求的方法、装置、设备及存储介质
CN110750443A (zh) 网页测试的方法、装置、计算机设备及存储介质
CN108234122B (zh) 令牌校验方法和装置
CN108089972B (zh) 接口测试方法及装置
CN110943876B (zh) Url状态检测方法、装置、设备和系统
CN112671574B (zh) 前后端联调方法、装置、代理设备及存储介质
CN110545335A (zh) 一种互联网协议地址获取方法、服务器和系统
CN110321711B (zh) 检测应用服务器sql注入点的方法及系统
CN111737629B (zh) 一种数据探测方法及装置
CN110515905A (zh) 一种路由的配置的方法、装置以及服务器
CN114844859B (zh) 域名配置方法、装置、电子设备及存储介质
CN113590572B (zh) 日志查看方法、装置、电子设备和可读存储介质
CN114760270B (zh) 一种生成用户设备指纹的方法及装置
CN118245514A (zh) 日志记录方法、装置、设备及存储介质
CN111581172A (zh) 运行日志的查询方法、系统、服务器及存储介质
CN113704592A (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