System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于通信,具体涉及一种应用程序接口拦截方法及系统。
技术介绍
1、本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
2、应用程序接口(api:application program interface)作为各种应用程序和服务直接进行数据交换和功能集成的主要方式,主要基于网络通信实现数据交互。目前实现网络通信拦截及api拦截的方式主要方式包括对传输控制协议(tcp,transmission controlprotocol)会话拦截及在服务器网卡拦截。
3、据专利技术人了解,目前的api拦截主要包括以下三种方案。第一种方案如图1所示,主要利用tcp链接中rst标志位的特性来实现会话的拦截,通过抓取网络包获取tcp连接的关键信息,包括源宿ip端口、请求方向及应答方向的tcp序列号后,生成对应方向的rst包实现对tcp会话链的强制断开。但是这种方案对rst报文的发送及时性要求较高:rst报文需优先于真实响应报文到达请求端,因此,该方法对请求报文的解析效率及网络延迟均有较高要求。而且,在互联网环境中,为防止ip地址欺骗或伪造的攻击,运营商通常会开启源ip保护机制。在此机制下,该种tcp拦截手段将无法到达目的机器。另外,在使用tcp rst手段进行阻断后,在目的端可通过抓包或界面查看(如浏览器访问报错)的方式直接检测到通信异常,暴露风险相对较大。
4、第二种方案如图2所示,使用xdp技术实现对特定ip的信息拦截,具体为使用xdp获取登录动作触发的网络五元组信息,并关联
5、第三种方案如图3所示,也是使用xdp技术进行内容拦截,但该方案具体为使用xdp拦截网卡中所有的网络数据包并使用hyperscan库对数据包内容进行正则匹配以判断是否存在安全风险。若存在安全风险则进行报文丢弃,否则放行至内核协议栈。这种方案存在hyperscan无法在内核态运行的问题,若需要实现上述方案则需将数据包从网卡驱动层拷贝到用户态方可进行正则匹配,该操作及后续的正则匹配均会占用cpu资源,造成一定的cpu性能消耗,特别是高并发场景下的性能消耗问题将更突出。另外,该方案的丢包操作需在内核态进行,若在用户态中完成正则匹配后再进入内核态,则存在一定的报文延迟,高并发场景下可能影响后续报文处理速度,造成整体的报文延迟。
6、综上,现有的api拦截方案均存在一定的缺陷,在性能、速度和准确度上存在一定的问题。
技术实现思路
1、本专利技术为了解决上述问题,提出了一种应用程序接口拦截方法及系统,可根据实际需求定制拦截策略及拦截内容,灵活应对api拦截的多种需求场景,提升api调用的安全性、合规性,提升准确度和速度。
2、根据一些实施例,本专利技术采用如下技术方案:
3、一种应用程序接口拦截方法,包括以下步骤:
4、获取预设的拦截策略,同步所述拦截策略至api拦截的用户态;
5、若拦截策略为阻断,通过bpf map将用户态中的策略同步至api拦截的内核态中,在内核态进行阻断;
6、若拦截策略为篡改,使用af_xdp socket在用户态完成报文内容篡改及发送。
7、作为可选择的实施方式,所述拦截策略包含动作和规则,所述动作包括阻断或内容篡改,所述规则包含拦截规则和篡改规则,所述拦截规则支持拦截指定ip、端口和协议类型,支持拦截特定的报文内容,支持多条件组合拦截;所述篡改规则支持修改ip、端口、mac及数据内容。
8、作为可选择的实施方式,将用户态中的策略同步至api拦截的内核态中,在内核态进行阻断的具体过程包括当数据包到达后,由快速数据路径xdp获取该数据包原始内容;
9、在快速数据路径内部完成数据解析,得到网络接口层、网络层、传输层和应用层偏移位及相应的ip、端口、协议类型和数据内容;
10、获取数据包的相关规则;
11、通过比对规则判断当前数据包是否需要丢弃;
12、当为丢弃时,数据包将直接被丢弃不进入后续的内核协议栈;否则,正常进入协议栈供后续用户态应用程序读取。
13、作为进一步的实施方式,在网卡驱动挂载快速数据路径钩子,以确定数据包是否到达。
14、作为可选择的实施方式,使用af_xdp socket在用户态完成报文内容篡改及发送的具体过程包括:
15、在内核态创建xsk映射;
16、在用户态创建af_xdp类型的socket,注册对应的rx/tx环,并绑定socket;
17、用户态创建用户内存并注册到af_xdp socket;
18、将socket存储到xsk映射上;
19、判断当前报文是否属于af_xdp socket队列,若是转发至用户态rx环;
20、读取rx环中的报文并解析,根据已有的篡改策略匹配到目标信息后对报文进行修改;
21、将修改完成的报文放回tx环,等待xdp完成报文发送。
22、作为进一步的实施方式,绑定socket时,将socket绑定到指定网卡的指定队列。
23、作为进一步的实施方式,用户态创建用户内存并注册到af_xdp socket时,还包括创建用户内存的fill ring和completion ring并映射到用户态。
24、一种应用程序接口拦截系统,包括:
25、策略管理模块,被配置为获取预设的拦截策略,同步所述拦截策略至api拦截的用户态;
26、阻断模块,被配置为若拦截策略为阻断,通过bpf map将用户态中的策略同步至api拦截的内核态中,在内核态进行阻断;
27、篡改模块,被配置为若拦截策略为篡改,使用af_xdp socket在用户态完成报文内容篡改及发送。
28、一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成上述方法中的步骤。
29、一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成上述方法中的步骤。
30、与现有技术相比,本专利技术的有益效果为:
31、本专利技术直接在服务器侧对api实施拦截,排除了api拦截手段在网络通信环节中受到的各种干扰,提升api拦截成功率,降低网络环境因素带来的拦截干扰。
32、本专利技术根据策略的不同,提出了阻断和篡改两种api拦截手段,阻断手段不涉及内核态与用户态之间的数据切换,处理效率较现有方案更有优势,且支持自定义报文丢弃策略,可根据ip、端口、报文内容等多种条件或组合条件达到定制化的报文丢弃效果。此外,api发起方对阻断动作基本无感知且不可追踪。篡改手段可纠正报文的请本文档来自技高网...
【技术保护点】
1.一种应用程序接口拦截方法,其特征是,包括以下步骤:
2.如权利要求1所述的一种应用程序接口拦截方法,其特征是,所述拦截策略包含动作和规则,所述动作包括阻断或内容篡改,所述规则包含拦截规则和篡改规则,所述拦截规则支持拦截指定ip、端口和协议类型,支持拦截特定的报文内容,支持多条件组合拦截;所述篡改规则支持修改ip、端口、mac及数据内容。
3.如权利要求1所述的一种应用程序接口拦截方法,其特征是,将用户态中的策略同步至API拦截的内核态中,在内核态进行阻断的具体过程包括当数据包到达后,由快速数据路径获取该数据包原始内容;
4.如权利要求3所述的一种应用程序接口拦截方法,其特征是,在网卡驱动挂载快速数据路径钩子,以确定数据包是否到达。
5.如权利要求1所述的一种应用程序接口拦截方法,其特征是,使用AF_XDP socket在用户态完成报文内容篡改及发送的具体过程包括:
6.如权利要求5所述的一种应用程序接口拦截方法,其特征是,绑定socket时,将socket绑定到指定网卡的指定队列。
7.如权利要求5所述的
8.一种应用程序接口拦截系统,其特征是,包括:
9.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-7中任一项所述的方法中的步骤。
10.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-7中任一项所述的方法中的步骤。
...【技术特征摘要】
1.一种应用程序接口拦截方法,其特征是,包括以下步骤:
2.如权利要求1所述的一种应用程序接口拦截方法,其特征是,所述拦截策略包含动作和规则,所述动作包括阻断或内容篡改,所述规则包含拦截规则和篡改规则,所述拦截规则支持拦截指定ip、端口和协议类型,支持拦截特定的报文内容,支持多条件组合拦截;所述篡改规则支持修改ip、端口、mac及数据内容。
3.如权利要求1所述的一种应用程序接口拦截方法,其特征是,将用户态中的策略同步至api拦截的内核态中,在内核态进行阻断的具体过程包括当数据包到达后,由快速数据路径获取该数据包原始内容;
4.如权利要求3所述的一种应用程序接口拦截方法,其特征是,在网卡驱动挂载快速数据路径钩子,以确定数据包是否到达。
5.如权利要求1所述的一种应用程序接口拦截方法,其特征是,使用af_xdp socket在用...
【专利技术属性】
技术研发人员:陆佳,高伟,
申请(专利权)人:南京中孚信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。