1.本发明实施例涉及通信技术领域,尤其涉及一种微服务流量检测系统和方法。
背景技术:
2.随着计算机技术的迅猛发展,微服务架构因其各服务之间耦合度低、与容器技术相结合运行稳定的优势,得到了广泛的应用。web(world wide web,全球广域网)服务微服务化后,仍然存在信息安全的问题。通过从web服务入口,伪造请求、编码请求参数、注入恶意攻击向量等方式入侵服务器。
3.为保护微服务器的安全,需要对流入微服务器的微服务流量进行检测。图1为一种现有技术中对微服务流量进行检测的检测示意图,如图1所示,现有技术采用了串行的方式,在访问各微服务器的数据流传输过程中必经的路由器、交换机等设备之间增加分析引擎,捕获请求访问各微服务器的所有数据流,然后对所有流量数据进行无差别分析以识别恶意行为,对恶意行为进行拦截以保证微服务器的安全,将安全的数据流传输至各对应服务。
4.但是,采用现有技术分析流量会影响整个网络的访问性能,一旦出现故障会导致整个网络不可用;且工作量大,工作效率低,只能按照同一的分析规则对不同数据流量进行分析,降低了分析结果的有效性和准确性。
技术实现要素:
5.本发明实施例提供了一种微服务流量检测系统和方法,实现了在每个容器组中均包含一个分析引擎容器,分担数据流量的检测工作,提高检测效率;且预先配置有分析规则,根据不同的服务请求可采用不同的分析规则进行风险检测,有利于提高分析结果的准确性和有效性。
6.第一方面,本发明实施例提供了一种微服务流量检测系统,可以包括:
7.至少一个容器组;每个所述容器组中包括微服务容器和与所述微服务容器通信连接的分析引擎容器,所述分析引擎容器包括数据分析单元;其中,
8.所述数据分析单元,用于基于接收到的请求访问所述微服务容器的服务请求,获取与所述服务请求对应的流量数据,按照预先配置的分析规则对所述流量数据进行风险检测,当检测到所述流量数据不存在风险时,将所述流量数据发送至与所述服务请求对应的微服务容器;
9.所述微服务容器,用于接收对应的所述数据分析单元发送的所述流量数据,以基于所述流量数据响应所述服务请求。
10.第二方面,本发明实施例还提供了一种微服务流量检测方法,应用于所述微服务流量检测系统,所述系统包括至少一个容器组;每个所述容器组中包括微服务容器和与所述微服务容器通信连接的分析引擎容器,所述分析引擎容器包括数据分析单元;所述方法包括:
11.通过所述数据分析单元基于接收到的请求访问所述微服务容器的服务请求获取与所述服务请求对应的流量数据,按照预先配置的分析规则对所述流量数据进行风险检测,当检测到所述流量数据不存在风险时,将所述流量数据发送至与所述服务请求对应的微服务容器;
12.通过所述微服务容器接收对应的所述数据分析单元发送的所述流量数据,以基于所述流量数据响应所述服务请求。
13.本发明实施例所提供的一种微服务流量检测系统,包括:至少一个容器组;每个容器组中包括微服务容器和与微服务容器通信连接的分析引擎容器,分析引擎容器包括数据分析单元;数据分析单元,用于基于接收到的请求访问微服务容器的服务请求,获取与服务请求对应的流量数据,按照预先配置的分析规则对流量数据进行风险检测,当检测到流量数据不存在风险时,将流量数据发送至与服务请求对应的微服务容器,从而确保发送至微服容器的数据流量为安全数据;微服务容器,用于接收对应的数据分析单元发送的流量数据,以基于流量数据响应服务请求,完成微服务容器的访问过程。由此可见,在每个容器组中均包含一个分析引擎容器,分担了数据流量的检测工作,提高了检测效率;且预先配置有分析规则,根据不同的服务请求可采用不同的分析规则进行风险检测,有利于提高分析结果的准确性和有效性。
14.此外,本发明所提供的一种微服务流量检测方法与上述系统对应,具有同样的有益效果。
附图说明
15.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为现有技术中对微服务流量进行检测的检测示意图;
17.图2为本发明实施例提供的一种微服务流量检测系统的结构图;
18.图3为本发明实施例提供的另一种微服务流量检测系统的结构图;
19.图4为本发明实施例提供的另一种微服务流量检测系统的结构图;
20.图5为本发明实施例提供的一种微服务流量检测方法的流程图。
具体实施方式
21.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
22.本发明的核心是提供一种微服务流量检测系统和方法,在每个容器组中均包含一个分析引擎容器,分担了数据流量的检测工作,提高了检测效率;且预先配置有分析规则,根据不同的服务请求可采用不同的分析规则进行风险检测,有利于提高分析结果的准确性和有效性。
23.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式
对本发明作进一步的详细说明。
24.实施例一
25.图2为本发明实施例提供的一种微服务流量检测系统的结构图。该系统用于执行本发明实施例提供的微服务流量检测方法。
26.如图2所示,本发明实施例提供的一种微服务流量检测系统,包括:至少一个容器组1;每个容器组中包括微服务容器10和与微服务容器10通信连接的分析引擎容器11,分析引擎容器11包括数据分析单元110;其中,
27.数据分析单元110,用于基于接收到的请求访问微服务容器10的服务请求,获取与服务请求对应的流量数据,按照预先配置的分析规则对流量数据进行风险检测,当检测到流量数据不存在风险时,将流量数据发送至与服务请求对应的微服务容器10;
28.微服务容器10,用于接收对应的数据分析单元110发送的流量数据,以基于流量数据响应服务请求。
29.需要说明的是,本发明实施例提供的容器组基于kubernetes机制下完成的部署,基于sidecar模式对各容器组中包含的容器进行配置,一个容器组中可部署至少一个容器,用于实现不同的功能。
30.在本发明实施例中,容器组1中包含有微服务容器10和与微服务容器10通信连接的分析引擎容器11。可选的,容器组1中的分析引擎容器11可对应于至少一个微服务容器10。
31.示例性的,当容器组1中仅包含一个微服务容器10和一个分析引擎容器11时,分析引擎容器11与微服务容器10通信连接。分析引擎容器11与容器组1外部的请求设备通信连接,接收请求设备发送的用于访问微服务容器10的服务请求,分析引擎容器11中的包含的数据分析单元110,基于接收到的服务请求获取与服务请求对应的流量数据,并按照预先配置的分析规则对流量数据进行风险检测。根据风险检测的结果确定流量数据是否存在风险,如果不存在风险,则可将流量数据发送至服务请求对应的微服务容器。
32.进一步的,当容器组1中仅包含一个微服务容器10时,可将不存在风险的流量数据直接发送至该微服务容器10;当容器组1中包含有两个或两个以上的微服务容器10时,则可基于服务请求中包含的请求访问的微服务容器10的地址、标识等容器信息,在容器组1中确定出该服务请求对应的微服务容器10,并将流量数据发送至该微服务容器10。
33.进一步的,当检测出流量数据存在风险时,则可删除该流量数据,并向与分析引擎容器11通信连接的请求设备发送访问请求失败的反馈信息。具体的,反馈信息中可包括与风险流量数据对应的服务请求的请求标识、请求类型等内容。
34.图3为本发明实施例提供的另一种微服务流量检测系统的结构图,如图3所示,本发明实施例提供的系统,还包括:与分析引擎容器11连接的引擎端口12和与微服务容器10连接的服务器端口13;
35.引擎端口12,用于接收请求访问微服务容器10的流量数据,并将流量数据发送至对应连接的分析引擎容器11;
36.服务器端口13,用于接收分析引擎容器11发送的流量数据,并将流量数据发送至微服务容器10。
37.在具体实施中,分析引擎容器11可通过监听与其连接的引擎端口12接收容器组1
外部的请求设备发送的服务请求。具体的,分析引擎容器11可采用实时监听引擎端口12的方式接收服务请求,也可采用定时监听引擎端口12的方式接收服务请求,本发明实施例对此不做限定。进一步的,分析引擎容器11对接收到的流量数据进行检测后,将不存在风险的流量数据发送至服务器端口13,通过服务器端口13将流量数据发送至微服务器10。示例性的,服务器端口13为80端口,引擎端口12为81端口。
38.本发明实施例所提供的一种微服务流量检测系统,包括:至少一个容器组;每个容器组中包括微服务容器和与微服务容器通信连接的分析引擎容器,分析引擎容器包括数据分析单元;数据分析单元,用于基于接收到的请求访问微服务容器的服务请求,获取与服务请求对应的流量数据,按照预先配置的分析规则对流量数据进行风险检测,当检测到流量数据不存在风险时,将流量数据发送至与服务请求对应的微服务容器,从而确保发送至微服容器的数据流量为安全数据;微服务容器,用于接收对应的数据分析单元发送的流量数据,以基于流量数据响应服务请求,完成微服务容器的访问过程。由此可见,在每个容器组中均包含一个分析引擎容器,分担了数据流量的检测工作,提高了检测效率;且预先配置有分析规则,根据不同的服务请求可采用不同的分析规则进行风险检测,有利于提高分析结果的准确性和有效性。
39.实施例二
40.图4为本发明实施例提供的另一种微服务流量检测系统的结构图;本实施例以上述各技术方案为基础进行优化。其中,与上述各实施例相同或相应的术语的解释在此不再赘述。
41.如图4所示,本发明实施例提供的系统,还包括:
42.中心管理器2,与各数据分析单元110连接,用于基于与数据分析单元110位于同一个容器组中的微服务容器10的服务类型为数据分析单元110配置分析规则。
43.可选的,中心管理器2可与各容器组中的数据分析单元110连接,用于为各数据分析单元110配置分析规则。具体的,可在各数据分析单元110接收到服务请求之前,基于与数据分析单元110位于同一个容器组中的微服务容器10的服务类型,为各数据分析单元110配置分析规则,从而使配置的分析规则能够更适合对应的微服务容器10,提高分析结果的准确性和有效性。
44.可选的,服务类型包括登录验证类型、提供存储表单类型和下载类型。中心管理器用于执行下述操作中的至少一项:
45.当服务类型为登录验证类型时,将分析规则配置为统计预设时间段内发送目标服务请求的协议地址的数量,当数量大于预设阈值时,确定目标服务请求对应的流量数据存在风险;或者,
46.当服务类型为提供存储表单类型时,将分析规则配置为若检测出目标服务请求对应的流量数据中存在预设标号或sql查询语句,则确定目标服务请求对应的流量数据存在风险;或者,
47.当服务类型为下载类型时,将分析规则配置为若目标服务请求中请求下载的文件路径中包含特殊路径符号,则确定目标服务请求对应的流量数据存在风险。
48.具体的,当服务类型为登录验证类型时,可统计预设时间内内发送目标服务请求的协议地址的数量,当数量大于预设阈值时,则说明当前存在暴利破解攻击的操作,确定该
目标服务请求对应的流量数据存在风险。
49.具体的,当服务类型为提供存储表单类型时,为防止出现利用sql注入攻击或xss注入攻击的情况,可检测目标服务请求对应的流量数据中是否出现预设标号或sql查询语句;若存在,则说明出现了sql注入或xss注入攻击的情况,该流量数据存在风险。进一步的,预设标号包括单引号、双引号和括号中的至少一种。本领域技术人员也可根据实际应用情况,更改预设标号,对此本发明实施例不做限定。
50.具体的,当服务类型为下载类型时,为防止出现任意下载文件的攻击情况,需要检测目标服务请求中请求下载的文件路径中包含特殊路径符号,特殊路径符号包括形式为"../"的符号,当文件路径中包含该符号时,则说明目标服务请求尝试任意下载文件,对应的流量数据存在风险。
51.如图4所示,本发明实施例提供的分析引擎容器11还包括:
52.解密单元111,用于当获取到的流量数据为加密数据时,对加密数据进行解密操作,将解密得到的流量数据发送至数据分析单元110。
53.具体的,为防止流量数据丢失,请求设备通常发送的流量数据为加密数据。当获取到的流量数据为加密数据时,可通过解密单元111对加密数据进行解密操作。示例性的,解密单元111可确定加密数据的加密类型,当数据流量为密钥类型的加密数据时,可通过预先存储的证书和私钥,对加密数据进行解密操作,并将解密后的流量数据发送至数据分析单元。
54.如图4所示,本发明实施例提供的分析引擎容器11还包括:
55.与数据分析单元110连接的风险记录单元112,其中,数据分析单元110,还用于当检测出流量数据存在风险时,则将流量数据发送给风险记录单元112;风险记录单元112,用于删除流量数据,并在系统日志中记录风险信息;其中,风险信息包括存在风险的流量数据的数据类型和风险协议地址。
56.具体的,数据分析单元110在检测流量数据时,若该流量数据存在风险,则直接将流量数据发送至于数据分析单元110连接的风险记录单元112;为了防止存在风险的流量数据输入至微服务容器10,风险记录单元112可删除该流量数据,达到拦截恶意请求的目的。进一步的,为便于后续溯源,风险记录单元112可确定流量数据的数据类型和风险协议地址,将数据类型和风险协议地址作为风险信息记录在系统日志中。
57.可选的,分析引擎容器11还包括:与风险记录单元112连接的警报单元113,其中,
58.警报单元113,用于获取风险信息,并基于预先存储的目标用户的联系方式,将风险信息通知目标用户。
59.具体的,警报单元113可申请从风险记录单元112中获取风险信息,也可设定为当风险记录单元112新添加了风险信息后,自动将风险信息发送至与风险记录单元112连接的警报单元113。进一步的,可设定为风险记录单元112定时将记录的风险信息发送至警报单元113。
60.具体的,警报单元113中预先存储了目标用户的联系方式,目标用户可为管理人员或运维人员;联系方式包括目标用户的电话号码、邮箱等信息,通过发送短信、邮件或电话留言的方式将风险信息通知目标用户,以使目标用户尽快了解到风险信息,便于及时管理。
61.可选的,分析引擎容器还包括:与数据分析单元110连接的统计单元114,其中,
62.统计单元114,用于统计系统日志中各风险协议地址出现的次数,当存在风险协议地址出现的次数大于预设次数时,则将风险协议地址确定为拦截协议地址,并将拦截协议地址的地址信息发送至数据分析单元110;
63.数据分析单元110,还用于基于接收到的地址信息,确定接收到的服务请求的协议地址是否为拦截协议地址,如果是,则将服务请求对应的流量数据确定为危险数据。
64.具体的,为提高检测效率,减小工作量。分析引擎容器还包括统计单元114,用于统计系统日志中风险协议地址出现的次数,当风险协议地址出现的次数大于预设次数时,说明该风险协议地址为发送的服务请求一般带有危险性,将该风险协议地址确定为拦截协议地址。从而,数据分析单元110再接收到该拦截协议地址发送的服务请求时,可确定服务请求对应的流量数据为危险数据,无需对流量数据进行检测可直接删除,减小检测时的工作量。
65.进一步的,数据分析单元110也可对拦截协议地址发送的服务请求对应的流量数据进一步进行检测操作,当检测结果为流量数据不存在风险时,可发送更新信息至统计单元114,统计单元114接收到更新信息后将更新信息中指定的协议地址确定为安全协议地址。
66.本发明实施例所提供的一种微服务流量检测系统,通过中心管理器对各数据分析单元进行统一管理,针对于不同的微服务容器配置不同的分析规则,有利于提高检测结果的准确性;并且,对于加密流量数据仍可检测和传输,对于有风险的流量数据可记录风险信息,依据风险信息进行警报处理,提高了微服务器访问的安全性。
67.实施例三
68.图5为本发明实施例提供的一种微服务流量检测方法的流程图。该方法应用于微服务流量检测系统,系统包括至少一个容器组;每个容器组中包括微服务容器和与微服务容器通信连接的分析引擎容器,分析引擎容器包括数据分析单元;如图5所示,该方法包括:
69.s101、通过数据分析单元基于接收到的请求访问微服务容器的服务请求获取与服务请求对应的流量数据,按照预先配置的分析规则对流量数据进行风险检测,当检测到流量数据不存在风险时,将流量数据发送至与服务请求对应的微服务容器;
70.s102、通过微服务容器接收对应的数据分析单元发送的流量数据,以基于流量数据响应服务请求。
71.在本发明实施例任一可选实施方案的基础上,该方法还包括:
72.通过与各数据分析单元连接的中心管理器,基于与数据分析单元位于同一个容器组中的微服务容器的服务类型为数据分析单元配置分析规则。
73.在本发明实施例任一可选实施方案的基础上,包括:
74.当服务类型为登录验证类型时,将分析规则配置为统计预设时间段内发送目标服务请求的协议地址的数量,当数量大于预设阈值时,确定目标服务请求对应的流量数据存在风险;或者,
75.当服务类型为提供存储表单类型时,将分析规则配置为若检测出目标服务请求对应的流量数据中存在预设标号或sql查询语句,则确定目标服务请求对应的流量数据存在风险;或者,
76.当服务类型为下载类型时,将分析规则配置为若目标服务请求中请求下载的文件
路径中包含特殊路径符号,则确定目标服务请求对应的流量数据存在风险。
77.在本发明实施例任一可选实施方案的基础上,该方法还包括:
78.通过解密单元,当获取到的流量数据为加密数据时,对加密数据进行解密操作,将解密得到的流量数据发送至数据分析单元。
79.在本发明实施例任一可选实施方案的基础上,该方法还包括:
80.通过与分析引擎容器连接的引擎端口,接收请求访问微服务容器的流量数据,并将流量数据发送至对应连接的分析引擎容器;
81.通过与微服务容器连接的服务器端,接收分析引擎容器发送的流量数据,并将流量数据发送至微服务容器。
82.在本发明实施例任一可选实施方案的基础上,该方法还包括:
83.通过数据分析单元,当检测出流量数据存在风险时,则将流量数据发送给风险记录单元;
84.通过与数据分析单元连接的风险记录单元,删除流量数据,并在系统日志中记录风险信息;其中,风险信息包括存在风险的流量数据的数据类型和风险协议地址。
85.在本发明实施例任一可选实施方案的基础上,该方法还包括:
86.通过与风险记录单元连接的警报单元,获取风险信息,并基于预先存储的目标用户的联系方式,将风险信息通知目标用户。
87.在本发明实施例任一可选实施方案的基础上,该方法还包括:
88.通过与数据分析单元连接的统计单元,统计系统日志中各风险协议地址出现的次数,当存在风险协议地址出现的次数大于预设次数时,则将风险协议地址确定为拦截协议地址,并将拦截协议地址的地址信息发送至数据分析单元;
89.通过数据分析单元,基于接收到的地址信息,确定接收到的服务请求的协议地址是否为拦截协议地址,如果是,则将服务请求对应的流量数据确定为危险数据。
90.在本发明实施例任一可选实施方案的基础上,包括:分析引擎容器对应于至少一个微服务容器。
91.本发明实施例所提供的一种微服务流量检测方法,通过数据分析单元基于接收到的请求访问微服务容器的服务请求获取与服务请求对应的流量数据,按照预先配置的分析规则对流量数据进行风险检测,当检测到流量数据不存在风险时,将流量数据发送至与服务请求对应的微服务容器;通过微服务容器接收对应的数据分析单元发送的流量数据,以基于流量数据响应服务请求。由此可见,在每个容器组中均包含一个分析引擎容器,分担了数据流量的检测工作,提高了检测效率;且预先配置有分析规则,根据不同的服务请求可采用不同的分析规则进行风险检测,有利于提高分析结果的准确性和有效性。
92.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
转载请注明原文地址:https://doc.8miu.com/read-1200379.html