一种基于流量特征的API接口异常行为监测方法

文档序号:35528554发布日期:2023-09-21 04:54阅读:103来源:国知局
一种基于流量特征的API接口异常行为监测方法

本发明涉及数据安全,特别是一种基于流量特征的api接口异常行为监测方法。


背景技术:

1、目前随着互联网、物联网等快速发展,无论通过互联网访问网络资源或者通过物联网远程系统控制都会利用api接口。api接口不仅能连接服务,又能传输数据,因此api的安全防护至关重要也非常敏感。对api安全进行防护,既有利于用户安全的使用api所提供的服务,又能够为用户的隐私数据进行保驾护航。如何准确识别出api调用行为中的异常调用行为成为当前亟待解决的技术问题,为解决接口数据被篡改、重复利用导致信息泄露问题,目前api接口安全管控手段主要有限制源ip、token授权、时间戳超时、流控、加密传输等几个方面。api异常行为监测则是根据接口调用日志,通过定时运行预先配置的策略脚本进行分析,步骤如下:

2、1)获取日志:获取api接口日志对应库表、文件的权限,以获取分析所需日志信息;

3、2)配置策略:分析日志信息,根据监测要求配置策略脚本,例如:一定时间调用api接口总次数超过阈值、一定时间内api接口调用失败次数超过阈值、api接口调用无令牌申请记录等;

4、3)策略告警:定时自动运行策略脚本,如发现的异常行为则进行告警;

5、现有技术中,一种商业银行开放api接口异常监测方法和装置(cn114070656a),该方法包括如下步骤:构建api接口资产表;对网络层报文进行解析,形成网络访问统计表;根据网络访问统计表和3σ原则,构建访问行为分布模型;根据api接口资产表对应用层报文进行解析,形成请求参数统计表;根据请求参数统计表,周期性统计各拆分字段的有效性,构建请求参数合规模型;根据api接口资产表对应用层报文进行解析,形成响应参数统计表;根据响应参数统计表,周期性统计各拆分字段的有效性,构建响应参数合规模型。

6、现有技术中,一种api异常调用行为检测方法、装置、设备及存储介质(cn114329469a),通过接收到的api调用请求确定与该api调用请求对应的调用字段的字段特征信息以及需调用的api接口,基于该api接口以及预设的api接口与异常行为判定条件的对应关系,确定与该api接口对应的目标异常行为判定条件,根据api调用请求对应的字段特征信息以及目标异常行为判定条件,判断该api调用请求对应的api调用行为是否异常,实现了异常api调用行为的检测。

7、目前api接口异常行为监测方法存在如下问题:

8、1)信息不完整,经过规范化后记录成日志,未记录监测分析所需所有信息。

9、2)存在时差,从api接口调用到记录日志,存在一定时差,无法做到实时监测。

10、3)未考虑差异化,异常行为监测策略是根据阈值进行分析判定的,未考虑时间、账号、权限等差异情况。例如:不同时间业务需求量不相同,工作时间业务量比较大,非工作时间业务量比较少。


技术实现思路

1、为解决上述现有技术中的缺点,本发明提出一种方法,通过流量采集,从流量值、时间、源ip、目的ip、目的端口、频次等多维度进行聚类分析,实现高效全面的监测api接口异常行为。

2、本发明是基于大数据相关技术对流量采集,从流量值、时间、源ip、目的ip、目的端口、频次等多维度进行聚类分析,建立多种分析模型来对api接口异常行为进行发现与监测。

3、本发明的目的至少通过如下技术方案之一实现。

4、一种基于流量特征的api接口异常行为监测方法,包括如下步骤:

5、s1、通过镜像方式采集api接口流量;

6、s2、将api接口流量中的每个数据包解密并格式化成json后存储到elasticsearch(搜索服务器)集群;

7、s3、采用非监督机器学习算法(dpeak、dbscan、k-means、t-sne)从多个维度对用户调用api接口的流量进行聚类分析;

8、s4、采用有监督机器学习对聚类分析结果进行建模分析、验证和调整,完成api接口异常行为监测。

9、进一步地,步骤s2中,采集服务器多线程将api接口流量中每个数据包解密并格式化成json后存储到elasticsearch集群;

10、json包括源ip、目的ip、目的端口、时间戳、请求方式、请求参数、cookie(缓存文件)、响应状态、响应内容、响应耗时和响应类型;所述请求参数包括api路径、api参数、账号和token(记号);

11、elasticsearch提供了近实时的全文索引、搜索和分析功能,采用kibana为elasticsearch 中索引的数据提供搜索和数据可视化功能,帮助更高效地进行流量分析。所述kibana是一款开源的数据分析和可视化平台。

12、进一步地,步骤s3中,通过非监督机器学习算法从多个维度对用户调用api接口的流量进行聚类分析,具体方案如下:

13、s3.1、依据监测要求确定分析维度;

14、s3.2、将多个信息字段按照分析维度组合成向量,并确定聚类中心;

15、s3.3、进行聚类分析,根据实际业务情况将数据分类成多个类别。

16、进一步地,步骤s3.1中,所述分析维度包括账号每天每小时流量值、账号每天调用各接口次数、每天每小时各接口调用总次数、每天调用各接口的源ip范围和账号调用各api接口参数范围。

17、进一步地,步骤s3.2中,使用dpeak算法确定聚类中心。

18、进一步地,步骤s3.3中,使用dbscan或k-means算法进行聚类分析,根据实际业务情况将数据分类成多个类别。

19、进一步地,步骤s4中,通过有监督机器学习对聚类分析结果进行建模分析、验证和调整,从而进一步提高准确率,具体包括以下步骤:

20、s4.1、对步骤s3中的聚类结果进行人工验证,筛选出符合业务情况的多个类别的数据;

21、s4.2、将步骤s4.1得到的多个类别的数据按设定比例(8:2)从整体上划分成训练集和测试集;

22、s4.3、使用有监督机器学习算法lightgbm对训练数据进行迭代训练,保存训练好的模型;

23、s4.4、使用步骤s4.3训练好的模型对测试集进行测试;

24、s4.5、如果没有达到预期的测试效果,则通过增加训练数据、从训练数据提取特征和调整模型参数重复执行步骤s4.3~步骤s4.4,直到训练好的模型的效果达到预期效果。

25、进一步地,依据调整功能优化后聚类分析结果,各类别数据取平均值得到各维度各类别行为基准;依据优化后聚类分析得到的行为基准,设置多维度多种类别监测模型。

26、进一步地,步骤s3.1中,设置账号每天每小时流量值监测模型,若流量特征向量与原类别行为基准的偏差值大于阈值,则判定为异常行为,包括如下步骤:

27、s3.1.1、将通过聚类分析得到的流量数据按照类别、每天和每小时分组,得到每个用户每天24小时的流量数据;

28、s3.1.2、将各类别中所有用户每天24小时的流量数据求平均值,得到该类别每天24小时的流量的基准值;

29、s3.1.3、将用户的未知流量数据同对应类别的基准值进行计算,若偏离设定的阈值,则判定为异常流量。

30、进一步地,步骤s3.1中,采用3sigma模型监测流量。

31、相比于现有技术,本发明的优点在于:

32、1、对不同api进行聚类分析得到行为基准,进行api被访问异常行为监测,杜绝不同api行为基准不统一,人工配置无依据的问题;

33、2、对不同账号的访问行为进行聚类分析,得到账号调用api、调用频次基线,实现账号异常行为监测;

34、3、对api传输访问参数范围进行聚类分析,得到请求参数标准基线,实现异常参数传递的行为监测。

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