一种安全运营中心反向连接下级平台的方法及系统与流程

文档序号:36238875发布日期:2023-12-01 22:31阅读:35来源:国知局
一种安全运营中心反向连接下级平台的方法及系统与流程

本技术涉及网络安全及系统架构,尤其涉及一种安全运营中心反向连接下级平台的方法及系统。


背景技术:

1、安全运营中心(soc)是以资产为核心,以安全事件管理为关键流程,采用安全域划分的思想,建立一套实时的资产风险模型,协助管理员进行事件及风险分析、预警管理、应急响应的集中安全管理系统。soc强调安全和运营两部分,以保障业务安全为目标,将人、技术、流程进行统筹管理,通过持续发现问题、分析问题、解决问题和不断进行自身优化的机制,对政企行业整体安全能力进行融合和提升。

2、soc支持接入态势感知平台、安全大脑、网站安全监测、流量探针、安全网关等平台及设备;还支持分级部署,云端部署0级运营平台,在渠道、客户侧部署1级运营平台,如有分公司需要则部署2级运营平台。要求上下级平台之间可进行数据联动、运营支撑、协同管理。

3、下级平台需要向上级平台上报数据,如上报安全事件、提交工单流转等;同时,上级平台也需要反向连接至下级平台,包括:调用下级平台接口同步消息,如同步工单处理进展、反馈工单处理结果等;免密登录下级平台,如访问态势感知平台进行策略配置、访问下级安全运营平台进行安全事件分析等。

4、上级平台反向连接至下级平台,一般的解决方案,是将下级平台和上级平台部署在同一个局域网环境,或将下级平台部署在公网环境,提供公网域名(或ip)和端口,开放api供上级平台调用,或以iframe的方式供上级平台嵌入页面,但是这类解决方案不适用于soc平台,因为无论是态势感知等平台,还是下级运营平台,都是和上级平台异地(非局域网环境)部署,并且出于安全、成本、管理等角度,一般不支持公网部署,即上级平台无法直接访问。

5、即现有技术中当安全运营中心和部署在不同网络环境中的下级平台联动时,安全运营中心无法直接访问下级平台。


技术实现思路

1、为至少在一定程度上克服相关技术中即现有技术中当安全运营中心和部署在不同网络环境中的下级平台联动时,安全运营中心无法直接访问下级平台的问题,本技术提供一种安全运营中心反向连接下级平台的方法及系统。

2、本技术的方案如下:

3、第一方面,本技术提供一种安全运营中心反向连接下级平台的方法,所述方法包括:

4、利用预先定义的云通道服务,由下级平台向上级平台发起https注册;其中,所述云通道服务用于和上、下级平台建立并维长连接;

5、若所述https注册成功,则切换websocket协议,通过云通道服务在下级平台和上级平台间建立并维持websocket长连接;

6、利用下级平台和上级平台间建立并维持websocket长连接,当上级平台发出反向连接下级平台的请求时,node服务或业务微服务将下级平台待访问资源的请求信息封装为wsmessage实例,并将下级平台唯一标识、wsmessage实例传入云通道服务;其中,node服务既作为web容器,又作为bff中间件,业务微服务为安全运营中心的业务模块,请求信息,包括:下级平台待访问资源的请求路径、请求方法、请求头、请求体;

7、上级平台云通道服务根据下级平台唯一标识,获取对应下级平台的websocket会话实例,发送websocket消息;

8、下级平台云通道服务接收到websocket消息后,解析出待访问资源的请求路径、请求方法、请求头、请求体参数,构造http消息,向同级平台的node服务发起http请求,接收到http响应后,解析响应头、响应体,在原websocket消息基础上,更新响应头、响应体,再将websocket消息发送回上级平台的云通道服务;

9、上级平台的云通道服务接收到websocket响应消息后,解析出响应头、响应体参数,还原为http响应消息,返回至node服务或业务微服务。

10、进一步地,所述利用预先定义的云通道服务,由下级平台向上级平台发起https注册,包括:

11、利用预先定义的云通道服务,由下级平台向上级平台发起https注册,所述https注册中携带预先得到的下级平台唯一标识及请求参数签名;

12、通过预先定义的签名校验过滤器,校验所述https注册;其中,所述预先定义的签名校验过滤器用于过滤指定格式的请求信息;

13、若所述https注册符合所述签名校验过滤器指定格式的请求信息,则解析所述请求中的请求体;

14、判断所述请求体中是否包含平台唯一标识、请求参数签名、时间戳,若不存在,提示请求参数有误;

15、否则,判断请求体中的地址,若所述地址以"/openapi/super"为前缀,表示安全运营中心接口供下级平台调用,则从下级平台表中,根据平台唯一标识查询是否存在相应记录,若不存在,提示请求参数有误;其中,下级平台表,用于记录下级平台的基本信息;

16、若存在,获取平台密钥;

17、若以"/openapi/sub"为前缀,表示下级平台接口供上级平台反向调用,则从字典表中查询平台唯一标识,比较查询出的平台唯一标识和请求体中的平台唯一标识是否一致,若不一致,请求参数有误;其中,所述字典表用于记录当前平台联动参数信息;

18、若一致,获取平台密钥;

19、按照预设的第一签名算法,使用平台密钥、请求体中的时间戳对请求参数进行签名,判断签名结果和请求体中解析出的请求参数签名是否一致,若不一致,签名有误;

20、若一致,进而判断缓存中是否存在请求参数签名,若存在,该请求存在重放嫌疑,则拒绝请求;

21、若不存在,获取服务端当前时间戳,和请求参数中的时间戳进行比较,若间隔超过60秒,该请求存在重放嫌疑,拒绝请求;

22、若未超过,缓存请求参数签名,有效期设为60秒,通过签名校验;

23、若通过所述签名校验,则利用连接频率校验算法判断一定时间内,下级平台调用上级平台注册接口的次数是否超出上级平台设定的上限,若超出,则校验失败,提示注册失败;

24、若未超出,则表示https注册成功;

25、其中,所述连接频率校验的校验过程,包括:将下级平台唯一标识id、预先得到的平台模块名称、预先得到的客户端ip按照一定格式拼接,作为缓存的key值,将注册次数作为缓存的value值;

26、在预设的有效期内,从缓存中根据key值获取对应value值,判断所述value值是否存在;

27、若所述value值不存在,则设定value的默认值为1,设置缓存有效期;

28、若所述value值存在,则value值累加1;

29、判断value值是否超出注册次数的上限值,若超出,拒绝连接;

30、若未超出,通过频率校验。

31、进一步地,所述若所述https注册成功,则切换websocket协议,通过云通道服务在下级平台和上级平台间建立并维持websocket长连接,包括:

32、若所述https注册成功,则通过上级平台云通道服务中的websocket服务端对所述https注册进行连接校验;其中,云通道服务包含长连接模块,用于和上、下级平台建立并维持websocket长连接,收发websocket消息,当和上级平台连接,则作为websocket客户端,当和下级平台连接,则作为websocket服务端;

33、其中,所述连接校验,用于判断https注册中是否携带下级平台唯一标识且缓存中是否包含下级平台的ip,否则,拒绝连接;

34、若均包含,则进行连接频率校验,校验通过后,允许下级平台建立连接;否则,拒绝连接;

35、若通过所述连接校验,则利用下级平台唯一标识在idandwsmap散列表中查询websocket实例,若不存在与所述平台唯一标识对应的websocket实例,则新增下级平台唯一标识和websocket实例的映射关系;

36、若存在,判断idandwsmap散列表中存在的websocket实例和下级平台向上级平台建立websocket连接中的websocket实例是否相同;

37、若不相同,关闭已有的websocket实例,新增下级平台唯一标识和websocket实例的映射关系,通过云通道服务在下级平台和上级平台间建立并维持websocket长连接;

38、利用下级平台云通道服务的websocket客户端,传入websocket服务端的地址和当前平台唯一标识;

39、判断缓存中的websocket会话是否已连接,若已连接,则断开缓存会话的当前连接;

40、若未连接,则将websocket服务端的地址和当前平台唯一标识的字符拼接串作为服务端连接地址,新建websocket客户端,向上级平台发起连接;

41、若连接成功,缓存websocket会话及服务端连接地址,并通过云通道服务在上下级平台间互发心跳包维持长连接。

42、进一步地,所述利用下级平台和上级平台间建立并维持websocket长连接,当上级平台发出反向连接下级平台的请求时,node服务或业务微服务将下级平台待访问资源的请求信息封装为wsmessage实例,并将下级平台唯一标识、wsmessage实例传入云通道服务,包括:

43、从预先获取的请求路径中解析出下级平台唯一标识、待访问的资源请求路径;

44、从上级平台发出反向连接下级平台的请求中解析出待访问的资源请求方法、请求头、请求体;

45、根据请求路径判断待访问的资源请求是否为静态文件;

46、若为静态文件,调用同级平台业务微服务的下载缓存资源接口,传入所述下级平台唯一标识、所述待访问的资源请求路径;

47、判断是否存在缓存资源,若存在,直接下载并返回缓存资源至浏览器;

48、若不存在,或待访问的资源不是静态资源,将待访问的资源请求路径、请求方法、请求头、请求体封装为wsmessage实例,调用云通道服务下的反向登录下级平台接口,传入下级平台唯一标识和wsmessage实例;

49、其中,所述调用云通道服务下的反向登录下级平台接口,传入下级平台唯一标识和wsmessage实例,包括:

50、生成uuid作为wsmessage实例的消息唯一标识,判断wsmessage实例中的请求路径是否为免密登录接口;

51、若为免密登录接口,查询平台联动参数中的平台代号,为wsmessage实例中的请求体中的平台代号添加属性值,调用云通道服务下的websocket服务端同步接口发送消息,传入下级平台唯一标识和wsmessage对象。

52、进一步地,所述上级平台云通道服务根据下级平台唯一标识,获取对应下级平台的websocket会话实例,通过websocket服务端发送websocket消息,包括:

53、利用下级平台唯一标识,从缓存中获取最近一次通信的时间戳,进行websocket连接存活校验;

54、判断websocket的设定时间与当前的时间差是否超出设定的websocket保活时间;

55、若超出,认为websocket连接已断开,删除缓存中下级平台唯一标识和当前时间戳的映射关系,提示消息发送失败;

56、若未超出,构造待发送的wsrequest实例,设置wsrequest实例的同步、异步状态、当前的请求时间戳、超时时间、消息体,再从idandwsmap散列表中,根据下级平台唯一标识,获取对应的websocket实例,向客户端发送websocket消息;

57、若请求状态为同步,将下级平台唯一标识、消息唯一标识、wsrequest实例三者的映射关系缓存至idandwsmsgcachemap散列表中,并根据当前的请求时间戳、超时时间计算响应截止时间,再进入while循环,判断当前时间是否超出响应截止时间;

58、若超出,跳出while循环,并删除缓存idandwsmsgcachemap散列表中下级平台唯一标识对应的消息唯一标识和wsrequest映射关系;

59、若未超出,从idandwsmsgcachemap散列表中根据下级平台唯一标识、预先得到的消息唯一标识获取实例,根据消息响应标识,判断websocket客户端是否响应了消息,若未响应,睡眠20毫秒后,重新进入while循环;

60、若有消息响应,删除缓存idandwsmsgcachemap散列表中下级平台唯一标识对应的消息唯一标识和wsrequest映射关系,跳出while循环,返回响应消息体wsmessage实例;

61、其中,idandwsmsgcachemap散列表的数据结构为map<string,map<string,wsrequest>>,key为下级平台唯一标识,value为消息唯一标识和wsrequest构成的映射关系,idandwsmap散列表用于记录下级平台唯一标识和websocket实例的映射关系。

62、进一步地,所述下级平台云通道服务接收到websocket消息后,解析出待访问资源的请求路径、请求方法、请求头、请求体参数,构造http消息,向同级平台的node服务发起http请求;接收到http响应后,解析响应头、响应体,在原websocket消息基础上,更新响应头、响应体,再将websocket消息发送回上级平台的云通道服务,包括:

63、接收websocket服务端发送的websocket消息,解析所述websocket消息,得到wsmessage实例中的请求路径请求方法、请求头、请求体;

64、获取同级平台的node服务url前缀,和请求路径拼接后,作为完整的资源访问路径;

65、利用完整的资源访问路径,构造restful客户端,向node服务发起http请求;

66、若响应成功,则获取http响应体,判断wsmessage实例中的消息类型;

67、若为反向调用,将wsmessage实例中的响应体设为http响应体,传入更新后的wsmessage实例,并将websocket消息发送回上级平台的云通道服务;

68、若为反向免密登录,将http响应体转化为文件,判断文件大小是否超出上限值;

69、若超出,获取wsmessage实例中的资源文件缓存接口路径,调用上级平台的资源文件缓存接口,传入当前平台唯一标识、响应体文件,返回缓存文件访问路径,并将wsmessage实例中bigfile字段更新为true;

70、若未超出,判断待访问资源是否为图片、压缩包文件资源,若是,将http响应体进行base64编码,并将wsmessage实例中的base64encoding字段更新为true;

71、若不是,直接将http响应体转化为字符串,并将缓存文件访问地址、base64编码或http响应字符串更新至wsmessage实例中的响应体,并将websocket消息发送回上级平台的云通道服务。

72、进一步地,所述上级平台的云通道服务接收到websocket响应消息后,解析出响应头、响应体参数,还原为http响应消息,返回至node服务或业务微服务,包括:

73、上级平台的云通道服务接收到websocket响应消息后,利用下级平台唯一标识与当前时间戳的映射关系在websocket服务端缓存中记录与websocket客户端最近一次的通信时间;

74、若当前不存在下级平台唯一标识与当前时间戳的映射关系,则新增缓存记录;

75、若存在,则更新缓存中的当前时间戳;

76、获取websocket响应消息中的消息类型,若所述消息类型为心跳包,则向客户端响应一个心跳应答包;

77、否则,调用处理websocket服务端接收消息接口,传入websocket响应消息中的下级平台唯一标识、wsmessage实例;

78、获取wsmessage实例中的消息唯一标识,从idandwsmsgcachemap散列表中根据平台唯一标识和消息唯一标识获取wsrequest实例;

79、若存在所述wsrequest实例,表示为应答类消息,将wsrequest实例的消息响应标识设为true,并将wsrequest实例中的消息体更新为wsmessage实例;

80、若不存在,表示为非应答类消息,获取wsmessage实例中的消息类型,采取相应的处理逻辑。

81、进一步地,所述方法还包括:

82、当websocket连接断开时,websocket服务端根据下级平台唯一标识,删除缓存散列表中的对应记录,并关闭websocket连接,记录下级平台下线信息。

83、进一步地,所述方法还包括:

84、定时检测下级平台在线状态,遍历下级平台表中所有下级平台记录,进行websocket连接存活校验;

85、若连接已断开且上下线历史表中该平台的最新状态为上线,调用记录下级平台下线信息接口,记录下级平台的下线信息;

86、若连接存活且上下线历史表中该平台的最新状态为下线,调用记录下级平台上线信息接口,记录下级平台的上线信息;

87、其中,下级平台下线信息接口用于记录下级平台的下线信息;下级平台上线信息接口用于记录下级平台的上线信息。

88、第二方面,本技术提供一种安全运营中心反向连接下级平台的系统,所述系统包括:

89、注册模块,用于利用预先定义的云通道服务,由下级平台向上级平台发起https注册;其中,所述云通道服务用于和上、下级平台建立并维长连接;

90、第一数据处理模块,用于若所述https注册成功,则切换websocket协议,通过云通道服务在下级平台和上级平台间建立并维持websocket长连接;

91、第二数据处理模块,用于利用下级平台和上级平台间建立并维持websocket长连接,当上级平台发出反向连接下级平台的请求时,node服务或业务微服务将下级平台待访问资源的请求信息封装为wsmessage实例,并将下级平台唯一标识、wsmessage实例传入云通道服务;其中,node服务既作为web容器,又作为bff中间件,业务微服务为安全运营中心的业务模块,请求信息,包括:下级平台待访问资源的请求路径、请求方法、请求头、请求体;

92、第三数据处理模块,用于上级平台云通道服务根据下级平台唯一标识,获取对应下级平台的websocket会话实例,发送websocket消息;

93、第四数据处理模块,用于下级平台云通道服务接收到websocket消息后,解析出待访问资源的请求路径、请求方法、请求头、请求体参数,构造http消息,向同级平台的node服务发起http请求,接收到http响应后,解析响应头、响应体,在原websocket消息基础上,更新响应头、响应体,再将websocket消息发送回上级平台的云通道服务;

94、第五数据处理模块,用于上级平台的云通道服务接收到websocket响应消息后,解析出响应头、响应体参数,还原为http响应消息,返回至node服务或业务微服务。

95、本技术提供的技术方案可以包括以下有益效果:

96、本技术包括:利用预先定义的云通道服务,由下级平台向上级平台发起https注册;其中,所述云通道服务用于和上、下级平台建立并维长连接;若所述https注册成功,则切换websocket协议,通过云通道服务在下级平台和上级平台间建立并维持websocket长连接,通过定义云通道服务,注册成功后,在上下级平台间建立websocket长连接,将http请求及响应转化为websocket消息,实现反向连接,和业务服务解耦,支持独立部署,弹性扩容;利用下级平台和上级平台间建立并维持websocket长连接,当上级平台发出反向连接下级平台的请求时,node服务或业务微服务将下级平台待访问资源的请求信息封装为wsmessage实例,并将下级平台唯一标识、wsmessage实例传入云通道服务;其中,node服务既作为web容器,又作为bff(backend for frontend)中间件,主要用于将前端vue应用访问的接口请求反向代理至后端业务微服务,以及调用云通道服务(tunnel)的“反向调用下级平台接口”、“反向登录下级平台”api,实现上级平台反向连接至下级平台;业务微服务为安全运营中心的业务模块,请求信息,包括:下级平台待访问资源的请求路径、请求方法、请求头、请求体;上级平台云通道服务根据下级平台唯一标识,获取对应下级平台的websocket会话实例,发送websocket消息;下级平台云通道服务接收到websocket消息后,解析出待访问资源的请求路径、请求方法、请求头、请求体参数,构造http消息,向同级平台的node服务发起http请求;接收到http响应后,解析响应头、响应体,在原websocket消息基础上,更新响应头、响应体,再将websocket消息发送回上级平台的云通道服务;上级平台的云通道服务接收到websocket响应消息后,解析出响应头、响应体参数,还原为http响应消息,返回至node服务或业务微服务,当安全运营中心和部署在不同网络环境即非同一个局域网中的下级平台联动时,只需将安全运营中心部署在公网环境中,无需将下级平台也部署在公网环境,下级平台通过和安全运营中心建立websocket长连接,即可实现安全运营中心反向连接下级平台。

97、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1