一种商业银行开放API接口异常监测方法和装置与流程

文档序号:28961001发布日期:2022-02-19 13:04阅读:235来源:国知局
一种商业银行开放API接口异常监测方法和装置与流程
一种商业银行开放api接口异常监测方法和装置
技术领域
1.本发明涉及计算机信息安全技术领域,具体而言,涉及一种商业银行开放api接口异常监测方法和装置。


背景技术:

2.伴随着商业银行数字化转型的进程,银行业务呈现出更加开放的特性,通过api接口开放,银行可以通过互联网向开发者开放数据、产品目录、业务渠道或其它业务资产,面向第三方企业机构提供对银行业务功能的访问权限,商业银行也将自身的金融服务变成社会公共服务平台。开放api的落地,将推动银行完成业务和it的进一步融合,并促进银行走出去,构建自身业务场景洞见和生态资源整合的核心能力。
3.安全是开放的基本前提,在银行开放api接口落地运营的过程中,api接口安全性问题主要存在以下安全性考量:1.开放api接口请求来源是否合规,是否存在第三方恶意调用api接口的情况;2.开放api接口在业务数据交互过程中,是否存在请求头/查询字符串/返回内容在传输过程被恶意篡改的情况,带来资金交易风险;3.开放api接口在业务数据交互过程中,是否存在请求数据被截获,延迟重放或多次数据包重放带来的业务风险;4.开放api接口是否存在被恶意调用,恶意修改返回包数据进行流程绕过,开放接口是否存在截获用户登录请求,截获到账号、密码、用户身份标识等个人敏感信息,从而带来据信息泄漏的风险。
4.目前,开放api接口主要存在如下问题:(1)传统规则库安全检测完整性不高;(2)由于响应体数据为加密加签名方式,无法读取到完整有效的数据报文;(3)无法利用传统安全报文规则库进行恶意报文字段匹配;(4)api接口访问行为无行为基线,无法准确判断恶意行为。


技术实现要素:

5.鉴于上述问题,本发明提供了一种商业银行开放api接口异常监测方法和装置,利用模型统计分析建立多维度访问基线和api威胁建模,识别异常访问行为,避免恶意攻击造成的业务损失。
6.为解决上述技术问题,本发明采用的技术方案是:一种商业银行开放api接口异常监测方法,包括如下步骤:接收互联网出口访问流量,从中识别并拆分出api接口流量,构建api接口资产表;根据所述api接口资产表对网络层报文进行解析,周期性统计解析后的网络访问信息,形成网络访问统计表;根据所述网络访问统计表和非正态分布下的3σ原则,构建访问行为分布模型,输出异常网络访问行为;根据所述api接口资产表对应用层报文进行解析,对解析后的http请求报文进行字段拆分,读取并记录拆分字段,形成请求参数统计表;根据所述请求参数统计表,周期性统计各拆分字段的有效性,构建请求参数合规模型,输出异常请求参数;根据所述api接口资产表对应用层报文进行解析,对解析后的http响应报文进行字段拆分,读取并记录拆分字段,形成响应参数统计表;根据所述响应参数统计
表,周期性统计各拆分字段的有效性,构建响应参数合规模型,输出异常响应参数。
7.作为优选方案,所述api接口流量包括网络层流量和应用层流量,则所述构建api接口资产表,包括:拆分并读取所述网络层流量中网络访问链接的源地址和目的地址;基于所述目的地址构建原始资产表,及与所述原始资产表动态复制的原始资产中间表,所述原始资产中间表包括具有唯一性约束的目的ip;拆分所述应用层流量中的http请求报文和http响应报文,获得所述http响应报文中的响应头标;对所述响应头标的字段进行判断,若不包含content-type字段或者content-type字段值不为application/json,则在所述原始资产中间表中剔除与目的ip相对应的行信息,形成api接口资产表。
8.作为优选方案,所述构建访问行为分布模型,包括:依据时间节点周期性计数生成统计量,所述网络访问统计表中的统计量呈单峰分布;在单峰分布下,若统计量数值分布在(μ-3σ,μ+3σ)区间内,则为正常值,若超出(μ-3σ,μ+3σ)区间,则为异常值,其中,μ为平均值,σ为标准差。
9.作为优选方案,所述构建访问行为分布模型,还包括:在同一时间节点统计与所述异常值对应的各源ip和目的ip的访问行为数据,若统计数值分布在(μ-σ,μ+σ)区间内,则判定为异常网络访问行为。
10.作为优选方案,所述请求参数统计表中的字段根据是否可以进行量值偏移分为固定量和可变量,所述固定量包括非统计指标和统计指标,所述统计指标包括请求uri字段,其约束值为统计区间,则所述构建请求参数合规模型,包括:将http响应状态码作为参照值进行周期统计并记录,形成请求uri统计表;将正常行为下记录的所述请求uri统计表作为基线使用,对所述请求参数统计表产生调校基准;以请求uri字段作为外键进行表间关联查询,对所述请求参数统计表中的请求uri字段无法关联请求uri统计表的行信息,判定为异常请求参数,进行删除处理。
11.作为优选方案,所述非统计指标包括请求方法、http协议及版本、accept字段,则所述构建请求参数合规模型,包括:在设定周期完成后,依照非统计指标约束值对请求参数统计表进行调校基准,对所述请求参数统计表中与非统计指标约束值不匹配的行信息,判定为异常请求参数,进行删除处理。
12.作为优选方案,所述可变量为user-agent字段,则所述构建请求参数合规模型,包括:将user-agent字段的参数值转换为长度值,建立可变量特征集;采用正态分布或近正态分布下的3σ原则,对可变量特征集进行处理,若长度值分布在(μ-3σ,μ+3σ)区间内,则判定为正常参数值,反之,判定为异常参数值,其中,μ为平均值,σ为标准差;将判定为正常的参数值记录在user-agent统计表中,并将所述user-agent统计表作为参数值基线使用,对所述请求参数统计表产生调校基准;以user-agent字段作为外键进行表间关联查询,对所述请求参数统计表中的user-agent字段无法关联user-agent统计表的行信息,判定为异常请求参数,进行删除处理。
13.作为优选方案,所述响应参数统计表中的字段根据是否可以进行量值偏移分为固定量和可变量,所述固定量包括http版本、响应代码、响应描述、content-type,则所述构建响应参数合规模型,包括:在设定周期完成后,依照固定量约束值对响应参数统计表进行调校基准,对所述响应参数统计表中与固定量约束值不匹配的行信息,判定为异常请求参数,进行删除处理。
14.作为优选方案,所述可变量为content-length字段,则所述构建响应参数合规模型,包括:根据content-length字段的参数值,建立可变量特征集;采用非正态分布下的3σ原则,对可变量特征集进行处理,若长度值分布在(μ-3σ,μ+3σ)区间内,则判定为正常参数值,反之,判定为异常参数值,其中,μ为平均值,σ为标准差;将判定为正常的参数值记录在content-length统计表中,并将所述content-length统计表作为参数值基线使用,对所述响应参数统计表产生调校基准;以content-length字段作为外键进行表间关联查询,对所述响应参数统计表中的content-length字段无法关联content-length统计表的行信息,判定为异常响应参数,进行删除处理。
15.本发明还公开了一种商业银行开放api接口异常监测装置,包括:资产表模块,用于接收互联网出口访问流量,从中识别并拆分出api接口流量,构建api接口资产表;网络访问统计表模块,用于根据所述api接口资产表对网络层报文进行解析,周期性统计解析后的网络访问信息,形成网络访问统计表;访问行为模块,用于根据所述网络访问统计表和非正态分布下的3σ原则,构建访问行为分布模型,输出异常网络访问行为;请求参数统计表模块,用于根据所述api接口资产表对应用层报文进行解析,对解析后的http请求报文进行字段拆分,读取并记录拆分字段,形成请求参数统计表;请求参数模块,用于根据所述请求参数统计表,周期性统计各拆分字段的有效性,构建请求参数合规模型,输出异常请求参数;响应参数统计表模块,用于根据所述api接口资产表对应用层报文进行解析,对解析后的http响应报文进行字段拆分,读取并记录拆分字段,形成响应参数统计表;响应参数模块,用于根据所述响应参数统计表,周期性统计各拆分字段的有效性,构建响应参数合规模型,输出异常响应参数。
16.与现有技术相比,本发明的有益效果包括:通过识别restapi数据流量,在构建开放api接口资产池的基础上,对restapi数据流量进行分层解析,以网络层流量分析、应用层流量分析为2大类操作,规划需要进行异常监测的参数值,拆分出“固定量”和“可变量”进行正常行为识别,以机器学习的方式加载概率区间分布算法进行异常行为判定,最终多维度的识别异常行为。
17.本发明实现了开放api接口访问行为合规性判断,能够识别异常的访问源、异常时间段访问、异常访问频率等;实现了开放api接口在业务交互过程中的http请求头/查询字符串/返回内容合规性判断,能够识别数据报文篡改、恶意代码添加、web攻击行为等安全风险;能够有效监测开放api接口在业务交互过程中的恶意调用,恶意修改返回包数据进行流程绕过,能够有效识别开放接口是否存在截获用户登录请求,截获到账号、密码、用户身份标识等个人敏感信息,从而带来据信息泄漏的风险问题。
18.本发明以开放api接口为资产树,构建请求参数合规模型、访问行为分布模型、响应参数合规模型,从访问来源、访问连接、网络流量、请求参数、数据安全等方面,利用模型统计分析建立多维度访问基线和api威胁建模,规律性参数可调整的异常状态检测机制,以高效率、高准确性的方法,检测、识别异常行为,避免恶意攻击造成的业务损失。
附图说明
19.参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:
图1为本发明实施例的开放api接口异常监测方法的流程示意图;图2为本发明实施例的开放api接口异常监测装置的结构示意图。
具体实施方式
20.容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。
21.根据本发明的一实施方式结合图1示出。一种商业银行开放api接口异常监测方法,包括如下步骤:s101,接收互联网出口访问流量,从中识别并拆分出api接口流量,构建api接口资产表。
22.从技术原理来看,restapi接口流量数据返回报文的content-type字段值为xml或者json类型。本发明实施例中,基于实际系统开发规则,规定数据返回报文的content-type字段值为application/json的数据包,即依此来识别开放api接口的业务交互流量。但是由于content-type字段为数据包响应头标,即http响应头的标识,其位于api接口异常监测模型的最后一层,为了提高模型的运行效率,引用瀑布模型的构建思想,按照网络层流量、应用层流量进行拆分。
23.上述api接口流量包括网络层流量和应用层流量,则构建api接口资产表,包括如下步骤:(1)拆分并读取网络层流量中网络访问链接的源地址和目的地址。
24.(2)基于目的地址构建原始资产表,及与原始资产表动态复制的原始资产中间表。原始资产中间表如下表所示:因为行内资源与应用系统的唯一性,一个目的ip地址的访问请求对应唯一的资产,故原始资产中间表中目的ip字段为唯一性约束条件,表中不允许重复存在。
25.(3)拆分应用层流量中的http请求报文和http响应报文,获得http响应报文中的响应头标。
26.(4)对响应头标的字段进行判断,若不包含content-type字段或者content-type字段值不为application/json,则在原始资产中间表中剔除与目的ip相对应的行信息,形成api接口资产表。api接口资产表如下所示:原始资产表处于动态变化的过程中,状态为动态增加,原始资产中间表处于动态变化的过程中,状态为动态减少,api接口资产表处于动态变化的过程中,状态为动态增加。
27.至此,我们完成了识别restapi数据流量与构建资产池工作,这是开放api接口异常监测的第一步,资产池的构建将有助于识别行内存在多少开放api接口的应用资产,优化对于开放api接口应用资产的上线、下线、变更管理,完成api接口资产的有序互联网开放。
28.s102,根据api接口资产表对网络层报文进行解析,周期性统计解析后的网络访问信息,形成网络访问统计表。网络访问统计表如下所示:网络访问参数入库的记录信息源为api接口资产表中的api资产ip,即在网络层报文解析时,仅对匹配中api接口资产表中的api资产ip进行网络层报文解析,并统计相关信息。
29.其中,周期(t)统计学习的时间节点,为网络访问统计表中的时间字段,该时间为每1h周期性计数。
30.s103,根据网络访问统计表和非正态分布下的3σ原则,构建访问行为分布模型,输出异常网络访问行为。
31.具体的,上述构建访问行为分布模型,包括:(1)依据时间节点周期性计数生成统计量,网络访问统计表中的统计量呈单峰分布。即以时间伴随的总连接数统计或以时间伴随的总访问流量统计,呈现出单峰分布(unimodaldistributions)趋势。
32.(2)在单峰分布下,若统计量数值分布在(μ-3σ,μ+3σ)区间内,则为正常值,若超出(μ-3σ,μ+3σ)区间,则为异常值。
33.详细的,在单峰分布的情形下,正负三个标准差内的机率至少有95%,即数值分布在(μ-3σ,μ+3σ)中的概率为0.95,其中,μ为平均值,σ为标准差。所以一般可以认为数据的取值大部分全部集中在(μ-3σ,μ+3σ)区间内,超出该范围的数据可以认为是异常值。
34.进一步的,在同一时间节点统计与异常值对应的各源ip和目的ip的访问行为数据,若统计数值分布在(μ-σ,μ+σ)区间内,则判定为异常网络访问行为。统计结果如下表所示:s104,根据api接口资产表对应用层报文进行解析,对解析后的http请求报文进行字段拆分,读取并记录拆分字段,形成请求参数统计表。
35.http请求参数入库的记录信息源为api接口资产表中的api资产ip,即在应用层报文解析时,仅对匹配中api接口资产表中的api资产ip进行应用层报文解析,拆分http请求报文。对http请求报文的请求行+请求头进行字段拆分,包括请求方法、请求uri、http协议及版本、accept类型、user-agent字段。请求参数统计表如下表所示:
请求参数统计表中的字段根据是否可以进行量值偏移分为固定量和可变量。其中,固定量包括非统计指标和统计指标,可变量为user-agent字段。统计指标包括请求uri字段,其约束值为统计区间,非统计指标包括请求方法、http协议及版本、accept字段。
36.非统计指标约束值如下:请求方法:get、post、head;http协议及版本:http/1.0、http/1.1;accept:application/json。
37.s105,根据请求参数统计表,周期性统计各拆分字段的有效性,构建请求参数合规模型,输出异常请求参数。
38.(1)基于统计指标,则构建请求参数合规模型,包括如下步骤:a.将http响应状态码作为参照值进行周期统计并记录,形成请求uri统计表。例如:在http响应状态码为200ok对应的请求uri,判定为银行预先定义完成对外提供开放的uri请求路径,进行入库记录,形成“请求uri统计表”。请求uri统计表如下所示:b.将正常行为下记录的请求uri统计表作为基线使用,对请求参数统计表产生调校基准。调校基准即不断优化基准,以准确形成基准范围。
39.c.以请求uri字段作为外键进行表间关联查询,对请求参数统计表中的请求uri字段无法关联请求uri统计表的行信息,判定为异常请求参数,进行删除处理。
40.表间关联查询即对2个表之间的某一值进行对比,具体为:以某一条用户请求uri字段记录在请求参数统计表中,对请求参数统计表中的该条记录对应在请求uri统计表中进行查询,即比对关联,查看是否有相关记录。
41.(2)基于非统计指标,则构建请求参数合规模型,包括:在设定周期完成后,依照非统计指标约束值对请求参数统计表进行调校基准,对请求参数统计表中与非统计指标约束值不匹配的行信息,判定为异常请求参数,进行删除处理。
42.(3)基于可变量,该可变量为user-agent字段,则构建请求参数合规模型,包括如下步骤:a.将user-agent字段的参数值转换为长度值,建立可变量特征集。
43.b.采用正态分布或近正态分布下的3σ原则,对可变量特征集进行处理,若长度值分布在(μ-3σ,μ+3σ)区间内,则判定为正常参数值,反之,判定为异常参数值,其中,μ为平均值,σ为标准差。
44.3σ原则(拉依达原则)是最常使用的一种处理数据异常值的方法,数值分布在(μ-σ,μ+σ)中的概率为0.6827,数值分布在(μ-2σ,μ+2σ)中的概率为0.9545,数值分布在(μ-3σ,
μ+3σ)中的概率为0.9973,其中,μ为平均值,σ为标准差,所以一般可以认为数据y的取值几乎全部集中在(μ-3σ,μ+3σ)区间内,超出这个范围的可能性仅占不到0.3%,这些超出该范围的数据可以认为是异常值。
45.c.将判定为正常的参数值记录在user-agent统计表中,并将user-agent统计表作为参数值基线使用,对请求参数统计表产生调校基准。user-agent统计表如下所示:d.以user-agent字段作为外键进行表间关联查询,对请求参数统计表中的user-agent字段无法关联user-agent统计表的行信息,判定为异常请求参数,进行删除处理。
46.s106,根据api接口资产表对应用层报文进行解析,对解析后的http响应报文进行字段拆分,读取并记录拆分字段,形成响应参数统计表。
47.http响应参数入库的记录信息源为api接口资产表中的api资产ip,即在应用层报文解析时,仅对匹配中api接口资产表中的api资产ip进行应用层报文解析,拆分http响应报文。
48.对于商业银行开放api接口的http响应数据而言,可分为响应行+响应头+响应体三部分,其中响应体可展示服务器真实反馈的报文数据,但是基于银行的实际业务环境,http响应体数据为加密加签名方式,无法读取到完整有效的数据报文,无法完成可用率较高的异常检测机制,故此处进行api接口的应用层报文解析,对http响应报文的响应行+响应头进行字段拆分,从侧面来反应http响应体数据的有效性,拆分后包括http版本、响应代码、响应描述、content-length、content-type字段,对各类型的拆分字段进行读取并入库记录,形成响应参数统计表。
49.响应参数统计表如下所示:响应参数统计表中的字段根据是否可以进行量值偏移分为固定量和可变量,固定量为已知的参数值范围,不可进行量值偏移;可变量为随机性的参数值,可在一定区间内进行量值偏移,基于偏移量进行异常判定。可变量为content-length字段。
50.固定量包括http版本、响应代码、响应描述、content-type。
51.固定量约束值如下:http版本:http/1.0、http/1.1;响应代码:200;响应描述:ok;content-type:application/json。
52.s107,根据响应参数统计表,周期性统计各拆分字段的有效性,构建响应参数合规模型,输出异常响应参数。
53.(1)基于固定量,则构建响应参数合规模型,包括:
在设定周期完成后,依照固定量约束值对响应参数统计表进行调校基准,对响应参数统计表中与固定量约束值不匹配的行信息,判定为异常请求参数,进行删除处理。
54.(2)基于可变量,该可变量为content-length字段,则构建响应参数合规模型,包括如下步骤:a.根据content-length字段的参数值,建立可变量特征集。
55.b.采用非正态分布下的3σ原则,对可变量特征集进行处理,若长度值分布在(μ-3σ,μ+3σ)区间内,则判定为正常参数值,反之,判定为异常参数值,其中,μ为平均值,σ为标准差。
56.由于content-length参数值规律性不符合标准或近似正态分布,所以对于异常值的处理,可以使用在非正态分布的情形下的3σ原则。依照切比雪夫不等式,即使是在非正态分布的情形下,至少会有88.8%的机率会在正负三个标准差的范围内,即数值分布在(μ-3σ,μ+3σ)中的概率为0.888,其中,μ为平均值,σ为标准差,所以一般可以认为数据y的取值大部分全部集中在(μ-3σ,μ+3σ)区间内,这些超出该范围的数据可以认为是异常值。
57.c.将判定为正常的参数值记录在content-length统计表中,并将content-length统计表作为参数值基线使用,对响应参数统计表产生调校基准。content-length统计表如下所示:d.以content-length字段作为外键进行表间关联查询,对响应参数统计表中的content-length字段无法关联content-length统计表的行信息,判定为异常响应参数,进行删除处理。
58.本发明实施例中,使用python来实现基于三西格马定律(three-sigmaruleofthumb)的动态检测算法引擎,只需要调整异常值的检测识别区间,即可完成开放api接口的不同场景下的异常值识别。具体代码如下所示:importnumpyimportpandasfromscipyimportstats#数据输入data=[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x]df=pandas.dataframe(data,columns=['value'])#均值计算μ=df['value'].mean()#标准差计算std=df['value'].std()print(stats.kstest(df,'norm',(u,std)))print('均值为:%.3f,标准差为:%.3f'%(u,std))print('
‑‑‑‑‑‑‑‑
')#识别区间异常值可调整
error=df[numpy.abs(df['value']-u)》3*std]#识别区间正常值可调整data_t=df[numpy.abs(df['value']-u)《=3*std]#输出正常值print(data_t)#输出异常值print(error)参见图2,本发明还公开了一种商业银行开放api接口异常监测装置,包括:资产表模块101,用于接收互联网出口访问流量,从中识别并拆分出api接口流量,构建api接口资产表。
[0059]
网络访问统计表模块102,用于根据api接口资产表对网络层报文进行解析,周期性统计解析后的网络访问信息,形成网络访问统计表。
[0060]
访问行为模块103,用于根据网络访问统计表和非正态分布下的3σ原则,构建访问行为分布模型,输出异常网络访问行为。
[0061]
请求参数统计表模块104,用于根据api接口资产表对应用层报文进行解析,对解析后的http请求报文进行字段拆分,读取并记录拆分字段,形成请求参数统计表。
[0062]
请求参数模块105,用于根据请求参数统计表,周期性统计各拆分字段的有效性,构建请求参数合规模型,输出异常请求参数。
[0063]
响应参数统计表模块106,用于根据api接口资产表对应用层报文进行解析,对解析后的http响应报文进行字段拆分,读取并记录拆分字段,形成响应参数统计表。
[0064]
响应参数模块107,用于根据响应参数统计表,周期性统计各拆分字段的有效性,构建响应参数合规模型,输出异常响应参数。
[0065]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0066]
综上所述,本发明的有益效果包括:通过识别restapi数据流量,在构建开放api接口资产池的基础上,对restapi数据流量进行分层解析,以网络层流量分析、应用层流量分析为2大类操作,规划需要进行异常监测的参数值,拆分出“固定量”和“可变量”进行正常行为识别,以机器学习的方式加载概率区间分布算法进行异常行为判定,最终多维度的识别异常行为。
[0067]
本发明实现了开放api接口访问行为合规性判断,能够识别异常的访问源、异常时间段访问、异常访问频率等;实现了开放api接口在业务交互过程中的http请求头/查询字符串/返回内容合规性判断,能够识别数据报文篡改、恶意代码添加、web攻击行为等安全风险;能够有效监测开放api接口在业务交互过程中的恶意调用,恶意修改返回包数据进行流程绕过,能够有效识别开放接口是否存在截获用户登录请求,截获到账号、密码、用户身份标识等个人敏感信息,从而带来据信息泄漏的风险问题。
[0068]
本发明以开放api接口为资产树,构建请求参数合规模型、访问行为分布模型、响应参数合规模型,从访问来源、访问连接、网络流量、请求参数、数据安全等方面,利用模型统计分析建立多维度访问基线和api威胁建模,规律性参数可调整的异常状态检测机制,以高效率、高准确性的方法,检测、识别异常行为,避免恶意攻击造成的业务损失。
[0069]
应理解,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0070]
本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1