CN115563587A - 一种接口保护方法、装置及应用 - Google Patents

一种接口保护方法、装置及应用 Download PDF

Info

Publication number
CN115563587A
CN115563587A CN202211296490.5A CN202211296490A CN115563587A CN 115563587 A CN115563587 A CN 115563587A CN 202211296490 A CN202211296490 A CN 202211296490A CN 115563587 A CN115563587 A CN 115563587A
Authority
CN
China
Prior art keywords
interface
information
calling
request
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211296490.5A
Other languages
English (en)
Inventor
刘仿
董佳磊
刘进山
陶肖寅
杜鹏鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCI China Co Ltd
Original Assignee
CCI China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CCI China Co Ltd filed Critical CCI China Co Ltd
Priority to CN202211296490.5A priority Critical patent/CN115563587A/zh
Publication of CN115563587A publication Critical patent/CN115563587A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本方案提出了一种接口保护方法、装置及应用,包括以下步骤:将接口在Kong网关中进行注册并开发对应的日志API,调用所述日志API记录其请求信息;训练一个预测模型,使用预测模型请求信息进行预测,得到预测结果表;监控Kong网关中接口的请求信息得到监测信息,将同一时间范围的监测信息与预测结果表中的信息进行比对判断,若比对判断结果认为接口存在安全风险,则将该时间范围内的监测信息发送到Rabbitmq的异常队列中,再对所述异常队列中的信息进行分析检测,排除安全风险。本方案通过模型对接口的安全问题进行识别,相比于人工极大提高了效率,并发明一种资源分配策略,以保证接口的安全系数。

Description

一种接口保护方法、装置及应用
技术领域
本申请涉及接口安全领域,特别涉及一种接口保护方法、装置及应用。
背景技术
在应用程序开发过程中,API是一个会被经常提及的东西,它的全称是Application Programming Interface(应用程序接口),一般指的是Web API,即:采用HTTP通信协议的API或者是Web应用程序对外提供的API,API从狭义上可以理解为是一种服务能力,调用方可以利用API很便捷的得到一组相关数据,而在大型的软件系统中,API还可以作为不同应用程序之间的一种契约,通过它可以将应用程序进行组装,从而实现业务逻辑更为复杂的功能。
API中携带大量重要数据和认证信息,一旦攻击者成功突破API,可直达核心系统,因此,为防止攻击者从中窃取高价值的数据,还能破坏应用程序的正常运作,API的设计中应当着重安全性,并建立对应的安全防范机制。
现阶段接口可以通过网关实现鉴权、监控、限流等控制,调用者调用接口时需要按照约定的鉴权形式认证,同时接口管理者可以通过系统配置限流策略,由于接口被攻击的情况随时都会发生,全部交由管理者人工处理被攻击的接口过于滞后,缺乏一种接口安全问题自动处置的方法。
并且,接口安全问题的识别需要更多维度的特征,包含爬虫检测、ip限定、流量监控分析等,所以,需要一种可以结合多个维度,且更加合理、更加客观的方法来定性识别接口安全问题,智能处置的方法。
发明内容
本申请方案提供一种接口保护方法,可以通过各种插件获取接口的调用量以及其他请求信息,并通过模型进行调用量的实时预测,从而更高效地对接口资源进行调用,并提高接口安全性。
第一方面,本申请提出一种接口保护方法,包括:
在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
第二方面,本申请提出了一种接口保护装置,包括:
注册模块:在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建模块:构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
监控模块:持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
第三方面,本申请提供了一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种接口保护方法。
第四方面,本申请提供了一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种接口保护方法。
相较现有技术,本技术方案具有以下特点和有益效果:
本方案提供了一种接口保护方法,使用预训练模型对接口存在流量激增的接口的初筛判断,并对初筛判断存在流量激增的接口进行二次异常判断,且在二次判断时融合了多维度的比对参数,相比于人工判断,本方案的识别维度更高,且结合了预训练模型的好处在于处理速度变快且判断方式多样,通过二次判断的方式提高了接口异常性能识别的准确度;且本方案通过设置多种任务队列,使用插件对任务队列中的信息进行检测判断,具有实时性,可以暂时切断外界与存在异常请求接口的访问,当对异常请求进行处理后,再恢复该接口的访问;若出现虽然不是异常请求但出现流量激增的情况,本方案还可以对不常用的接口进行限流设置以释放资源,供出现流量激增的接口使用,在多种维度保障了接口的安全性。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种接口保护方法的流程图;
图2是根据本申请实施例的部分API参数的参数图;
图3是根据本申请实施例的部分User-Agent和蜘蛛IP的示意图;
图4是根据本申请实施例的一种接口保护装置的结构框图;
图5是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了方便理解本案,在此对本方案中出现的名字做出解释:
Kong:Kong是一款基于OpenResty(Nginx+Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。
Bot-Detection:机器人检查插件,主要是为了对发送请求的工具进行筛选的。这个插件针对的是机器人或者爬虫,因为网关可能在公网上发布API,或者作为OpenAPI平台运营API。这些爬虫不断循环请求服务,不遵守规范的低级爬虫会给服务带来很大的性能问题。
IP Restriction:IP控制插件,可以控制全局、服务、路由、消费方的IP地址,通过设置黑白名单,来限制访问的IP和IP段。
Request Termination:请求终止插件,此插件使用指定的状态代码和消息终止传入请求,这种方式一般用于(暂时)阻塞API或消费方。该插件的应用场景一般在某个消费方大量非正常调用的情况下,或者系统在做升级或者迁移的情况下临时的一个暂停请求的策略。
Rate Limiting:速率限制插件,速率限制主要用来控制接收的HTTP请求数量。速率限制插件用于限制消费端在给定的秒、分钟、小时、天、月或年时间内可以发出多少次HTTP请求。
Datadog:分析监控插件,能够及时、准确的监控接口调用情况,在每个请求响应周期从请求次数、请求大小、响应状态和延迟几个维度输出分析指标,既能满足快速迭代的周期性需求,又能够确保应用的稳定性和流畅性。
Redis:Redis(Remote Dictionary Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Rabbitmq:rabbitmq是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
实施例一
本申请方案提供了一种接口保护方法,参考图1,所述方法包括:
在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
在一些实施例中,在“在Kong网关中注册接口”步骤中,当接口在Kong网关中注册成功时,调用IP Restriction插件并初始化配置IP白名单,并对接口配置限流策略,将接口对应的应用信息和IP白名单缓存到Redis中。
具体的,本方案使用ccuap-gateway的服务来实现接口在Kong网关中的注册,在注册成功时会对接口进行初始化,在初始化过程中调用IP Restriction插件来配置一个IP白名单。
具体的,当调用方想要对接口进行调用请求时,会先通过lua脚本插件根据redis中的缓存信息对调用请求做IP白名单、限流策略配置和鉴权的前置校验,当校验通过后,对所述调用请求进行放行,使之调用请求可以作用到Kong网关中的对应接口。
对应的,在“当对Kong网关中注册的接口进行请求时”步骤中,使用lua脚本根据Redis中的缓存信息对所述请求信息进行校验,若满足校验条件则允许所述请求信息对Kong网关中的接口进行请求。这样做的好处在于可以提前判断请求信息的完整性,避免后续的无用计算。
具体的,对所述日志API进行参数设置,设置所述日志API对应的接口地址、调用方法等各种参数,并执行命令开启http-log插件以指定对应接口。并获取其请求信息。本方案中使用的参数如图2所示,其他方式本方案不一一举例说明。
另外,在日志API中配置请求指标,如需使用其他种类的指标,可自行在API参数中进行配置,以保证后续每次经过KONG的请求都会调用该日志API,并通过所述日志API配置的请求指标获取请求的请求信息。
在“开发对应的日志API”步骤中,配置日志API的参数并开启http-log插件以开发对应的日志API,且在所述日志API中配置需要记录的对应接口的请求信息的至少一请求指标。这样做的好处是可以根据用户的需求获取请求信息中的请求指标,且保证每一请求信息都被记录到日志中。
具体的,根据所述日志API的参数信息获取所述请求信息,所述请求信息包括识别该请求的基本指标,包括但不限于用户对该接口的相应时间、相应状态、请求IP、请求时间。当然,可以根据实际需求通过配置日志API参数的方式对请求信息内包括的基本指标进行重新配置。
在一些实施例中,在“基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表”步骤中,将所述请求信息进行序列化处理后发送到rabbitmq的interface_quene队列中,再对interface_quene队列中的请求信息进行消费处理后得到接口业务数据并存入接口调用记录表中,间隔时间段对所述接口调用记录表中每一接口的调用次数、失败次数进行统计得到接口调用信息并记录到时序统计表。
具体的,将所述请求信息存为JSON格式,并对其进行序列化处理后发送到rabbitmq的interface_quene队列中,再通过rabbitmq的消费端对interface_quene队列中的请求信息进行消费处理得到接口业务数据,将所述接口业务数据存入接口调用记录表中,所述interface_quene队列是用来存放接口请求信息的消息队列。
进一步的,通过rabbitmq的消费端进行消费处理可以将JSON格式的请求信息解析为接口业务数据,所述接口业务数据通过数据库接口存储在数据库中。
进一步的,本方案可设定定时任务以间隔时间段统计所述接口业务数据,所述定时任务是以第一时间段为间隔对所述接口业务数据进行时序化统计,得到第一时间段内所有接口的接口调用信息,并将所述接口调用信息录入到所述时序统计表中。所述接口调用信息包括但不限于接口调用成功次数以及接口调用失败次数。
具体的,当以第一时间段为间隔进行统计时,便可以得出第一时间段的开始时间和结束时间,以所述第一时间段的开始时间和结束时间作为参数,根据所述接口调用信息获取所述第一时间段内所有接口的调用次数、失败次数等请求信息,并将其录入到所述时序统计表中。示例性的,本方案以30分钟为第一时间段,若第一段的开始时间为9:00,则结束时间为9:30,第二段的开始时间则为9:30,结束时间为10:00,以此类推进行持续统计。
在一些实施例中,创建黑名单信息表,配置维护常出现的用户代理信息和蜘蛛IP信息并保存在黑名单信息表中,所述黑名单信息单独进行保存,且可以按需进行增删改查。
具体的,如图3所示为一些常用的User-Agent(用户代理)信息和蜘蛛IP信息,所述User-Agent一般为关键字常量信息,本方案通过是被User-Agent的关键字常量信息来判断是否为爬虫在对接口进行访问,所述蜘蛛IP是百度搜索引擎的一个自动程序,不同的蜘蛛IP具有不同的作用,本方案将一些有危险性的蜘蛛IP放入黑名单信息表中,以增加接口的安全性。
具体的,可以使用IP Restriction插件来创建一个黑名单信息表,用户代理信息和蜘蛛IP信息保存在IP Restriction插件所配置的黑名单信息表中。
在一些实施例中,每隔第二时间段对所述预训练模型进行一次训练,以第二时间段内获取的时序统计表内的时序信息和接口调用信息作为训练样本对所述预训练模型进行训练,得到预测模型。
示例性的,所述预训练模型可以使用LSTM模型,其训练集与数据集的比例为9:1,置信区间为95%,训练轮数为200,当训练的准确率达到90%时,则认为所述预训练模型训练完成,得到预测模型。
在一些具体实施例中,所述第二时间段可以为7天,经实际应用测试,若所述第二时间段小于7天,则训练样本不足,导致训练效果不好,若所述第二时间段大于7天,则预测模型的更新进度变长从而导致预测效果下降。
通过大量的时序信息和接口调用信息训练的预测模型可学习该接口的调用规律,进而预测该接口下一时刻的预测调用信息。所述预测调用信息预测对应的接口在下一时段内的预计的接口调用数量。
在一些实施例中,在“将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息”步骤中,所述下一时段为第三时间段,将所述第三时间段依次均匀分为多个第四时间段,在预测过程中以第四时间段为间隔进行分段综合预测,先根据所述训练样本预测首个第四时间段的数据,再将所述训练样本与首个第四时间段的预测结果结合预测下一第四时间段的数据,直至对所有的第四时间段预测完成,结束预测。
在一些具体实施例中,在对模型训练时,为了保证模型的训练结果更加精准,将所述第三时间间隔为一个小时,第四时间间隔为十五分钟,在进行预测时则将所述第四时间间隔设置为30分钟。
在一些实施例中,在“持续监控所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对”步骤中,以第五时间段为时间间隔获取所述时序统计表中的接口调用信息,将监听获取的接口调用信息与同一时间范围的预测结果表中的预测调用信息进行比对,若所述接口调用信息与所述预测调用信息的比值大于第一设定阈值,则认为该时间范围内存在安全风险。
由于预测调用信息预测是按照接口规律的理论上的接口调用量,而所述接口调用信息获取的是真实的接口调用量,故可通过所述接口调用信息和预测调用信息的比值来判断该接口是否出现了流量激增的问题。
在本方案的具体实施例中,本方案主要监控所述接口调用信息中的接口调用次数以及所述预测调用信息中的预测调用次数,也可以通过其他信息进行比对,本方案在此不进行限定。
在一些具体实施例中,将所述第五时间段设置为三十分钟,所述第一设定阈值设置为1.5,将监听到9:00到9:30时间范围的接口调用次数与所述预测结果表中9:00到9:30时间段的预测调用次数进行比值,若比值结果大于1.5,则说明9:00到9:30时间段内存在安全风险。
在一些实施例中,在“则并对所述预筛请求信息进行二次异常判断”步骤中,对所述预筛请求信息进行第一预筛条件和/或第二预筛条件的异常判断,若均未识别为异常请求则对所述预筛请求信息进行第三预筛条件的异常判断;
其中第一预筛条件为:将所述预筛请求信息的IP地址与所述黑名单信息表中的IP地址进行匹配,将匹配成功的预筛请求信息对应的预筛请求判定为异常请求;
第二预筛条件为:使用第一监听器对所述预筛请求信息进行拉取,并通过机器人插件对所述预筛请求信息的接口地址进行调用,若调用失败则判断所述预筛请求信息为异常请求;
第三预筛条件为:计算同一时间范围内的所述预筛请求信息的接口调用次数与所述预测结果表中的调用次数的比值,若比值大于第二设定阈值则将该时间范围内的预筛请求信息判定为异常请求。
具体的,所述异常请求的判断方法包括:
1.将预筛请求信息中的用户代理参数与黑名单信息的用户代理参数进行对比,若所述预筛其你去信息中的用户代理参数与黑名单中的用户代理参数相匹配,或所述预筛请求信息中的用户代理参数的值为空,则判定为异常请求;
2.将所述预筛请求信息中的IP信息与黑名单信息中持续维护的蜘蛛IP信息进行比对,若所述预筛请求信息中的IP信息与持续维护的蜘蛛IP信息相匹配,则将其判定为异常请求;
3.创建一个第一监听器获取所述预筛请求信息中的服务Id(serviceId),根据所述服务Id来开启Bot-Detection(机器人检查插件),使用所述Bot-Detection来对服务Id进行检查,若返回结果为‘403forbidden’(无权访问),则认为该服务Id对应的请求为异常请求;
4.若所述预筛请求信息中的请求次数与预测结果表中请求次数的比值大于第二设定阈值(在本方案第二设定阈值为3),则说明该时间段请求异常激增,将激增的请求判定为异常请求。
在一些实施例中,在Rabbitmq中创建异常队列并将所述异常请求发送Rabbitmq的异常队列中,在所述异常队列中设置第二监听器,所述第二监听器对存在异常请求的接口执行请求终止插件临时阻止对接口的访问。
具体的,将所述异常请求的ip地址、API地址、serviceId(服务ID)、routeId(路径ID)保存到接口异常调用记录表,并设置请求终止插件,在所述终止插件中将每一存在异常请求的接口的执行状态更改为未终止,再将所述异常调用记录表中的数据发送到rabbitmq创建的异常队列中。
具体的,所述第二监听器对所述异常队列信息中的异常请求进行监听,并获取所述异常请求API的serviceId,先根据所述异常请求的API的开放地址在所述异常调用记录表中进行查询,二次判断是否存在请求终止插件,若不存在请求终止插件,则通过RequestTermination插件来生成一个请求终止插件,并通过请求终止插件来临时阻止对接口的访问。
具体的,本方案通过第二监听器在异常队列中进行请求终止插件的使用,目的是保证本方案的实时性,确保第一时间对存在异常请求的接口进行终止。
具体的,当对所述异常请求进行终止处理后,根据所述异常调用表获取所述异常请求的serviceId和ip地址,执行IP Restriction插件,将所述异常请求的ip地址加入到黑名单信息表中,禁止该IP对接口的访问,并恢复对应接口的使用。
在一些实施例中,若不存在异常请求,则根据所述预测结果表判断低频接口,并通过Rate Limiting插件对低频接口进行限流设置,释放所述低频接口的资源供非异常接口调用,对所述判断模型进行重新训练。
具体的,所述限流策略包括Local、Cluster、Redis:
1.当使用Local策略时,使用nginx的缓存来当做计数器,当使用Local策略时只支持本地限流,无法跨服务计数;
2.当使用Cluster策略时,会将计数器保存在数据库中,本方案使用PostgreSQL数据库,Cluster策略支持集群模式,当设置了1000限流,此时存在3台服务器进入了集群模式,当3台服务器累计的调用次数达到1000时限流生效;
3.当使用Redis策略,将计数器存在redis中,redis同样支持集群模式,所有集群模式的服务器共用一个redis库以实现限流效果。
在一些具体实施例中,所述低频接口的判定标准包括但不限于:1.将所述时序统计表中的接口调用信息按照从多到少的顺序进行正序排列,排序结果为后百分之30的接口为低频接口;2.在所述预测结果表中,存在接口的下一时段的调用值小于该接口的同一时段的调用平均值,将这些接口认定为低频接口。
实施例二
基于相同构思,参考图4,本申请还提出了一种接口保护装置,包括:
注册模块:在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建模块:构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
监控模块:持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
实施例三
本实施例还提供了一种电子装置,参考图5,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任意一种接口保护方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种接口保护方法的实施过程。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是日志API的参数信息、训练样本等,输出的信息可以是预测模型的参数信息、异常请求的执行结果等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
S102、构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
S103、持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供非异常接口调用。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图5中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (14)

1.一种接口保护方法,其特征在于,包括:
在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
2.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在“在Kong网关中注册接口”步骤中,当接口在Kong网关中注册成功时,调用IP Restriction插件并初始化配置IP白名单,并对接口配置限流策略,将接口对应的应用信息和IP白名单缓存到Redis中。
3.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在“基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表”步骤中,将所述请求信息进行序列化处理后发送到rabbitmq的interface_quene队列中,再对interface_quene队列中的请求信息进行消费处理后得到接口业务数据并存入接口调用记录表中,间隔时间段对所述接口调用记录表中每一接口的调用次数、失败次数进行统计得到接口调用信息并记录到时序统计表。
4.根据权利要求3所述的一种接口保护方法,其特征在于,包括,以第一时间段为间隔对所述接口业务数据进行时序化统计,得到第一时间段内所有接口的接口调用信息,并将所述接口调用信息录入到所述时序统计表中,所述接口调用信息包括但不限于接口调用成功次数以及接口调用失败次数。
5.根据权利要求1所述的一种接口保护方法,其特征在于,包括,创建黑名单信息表,配置维护常出现的用户代理信息和蜘蛛IP信息并保存在黑名单信息表中。
6.根据权利要求1所述的一种接口保护方法,其特征在于,包括,每隔第二时间段对所述预训练模型进行一次训练,以第二时间段内获取的时序统计表内的时序信息和接口调用信息作为训练样本对所述预训练模型进行训练,得到预测模型。
7.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在“将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息”步骤中,所述下一时段为第三时间段,将所述第三时间段依次均匀分为多个第四时间段,在预测过程中以第四时间段为间隔进行分段综合预测,先根据所述训练样本预测首个第四时间段的数据,再将所述训练样本与首个第四时间段的预测结果结合预测下一第四时间段的数据,直至对所有的第四时间段预测完成,结束预测。
8.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在“持续监控所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对”步骤中,以第五时间段为时间间隔获取所述时序统计表中的接口调用信息,将监听获取的接口调用信息与同一时间范围的预测结果表中的预测调用信息进行比对,若所述接口调用信息与所述预测调用信息的比值大于第一设定阈值,则认为该时间范围内存在安全风险。
9.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在“则并对所述预筛请求信息进行二次异常判断”步骤中,对所述预筛请求信息进行第一预筛条件和/或第二预筛条件的异常判断,若均未识别为异常请求则对所述预筛请求信息进行第三预筛条件的异常判断;
其中第一预筛条件为:将所述预筛请求信息的IP地址与所述黑名单信息表中的IP地址进行匹配,将匹配成功的预筛请求信息对应的预筛请求判定为异常请求;
第二预筛条件为:使用第一监听器对所述预筛请求信息进行拉取,并通过机器人插件对所述预筛请求信息的接口地址进行调用,若调用失败则判断所述预筛请求信息为异常请求;
第三预筛条件为:计算同一时间范围内的所述预筛请求信息的接口调用次数与所述预测结果表中的调用次数的比值,若比值大于第二设定阈值则将该时间范围内的预筛请求信息判定为异常请求。
10.根据权利要求1所述的一种接口保护方法,其特征在于,包括,在Rabbitmq中创建异常队列并将所述异常请求发送Rabbitmq的异常队列中,在所述异常队列中设置第二监听器,所述第二监听器对存在异常请求的接口执行请求终止插件临时阻止对接口的访问。
11.根据权利要求9所述的一种接口保护方法,其特征在于,包括,若不存在异常请求,则根据所述预测结果表判断低频接口,并通过Rate Limiting插件对低频接口进行限流设置,释放所述低频接口的资源供存在安全风险的该接口调用,对所述预测模型进行重新训练。
12.一种接口保护装置,其特征在于,包括:
注册模块:在Kong网关中注册接口并开发对应的日志API,当对Kong网关中注册的接口进行请求时,调用所述日志API记录所述请求的请求信息,基于时序统计所述请求信息得到接口调用信息,将所述接口调用信息记录到时序统计表;
构建模块:构建一个预训练模型,依时序顺序定时调取所述时序统计表中的数据对所述预训练模型进行训练得到预测模型,将当前时刻输入到预测模型进行预测得到每一接口下一时段的预测调用信息,将所述预测调用信息基于时序保存到预测结果表;
监控模块:持续监听所述时序统计表中的接口调用信息,将同一时间范围的接口调用信息与预测结果表中的预测调用信息进行比对,若比对判断结果认为接口存在安全风险,则将该时间范围内的接口调用信息作为预筛请求信息发送到Rabbitmq的疑似异常队列中,并对所述预筛请求信息进行二次异常判断,若判断为异常请求的话则将所述预筛请求信息基于时序保存至接口异常调用记录表中并临时阻止对该接口的访问;若未判断为异常请求则根据所述预测结果表查询获取低频接口,释放所述低频接口的资源供存在安全风险的该接口调用。
13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1到11任一所述的一种接口保护方法。
14.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1到11任一所述的一种接口保护方法。
CN202211296490.5A 2022-10-21 2022-10-21 一种接口保护方法、装置及应用 Pending CN115563587A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211296490.5A CN115563587A (zh) 2022-10-21 2022-10-21 一种接口保护方法、装置及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211296490.5A CN115563587A (zh) 2022-10-21 2022-10-21 一种接口保护方法、装置及应用

Publications (1)

Publication Number Publication Date
CN115563587A true CN115563587A (zh) 2023-01-03

Family

ID=84746748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211296490.5A Pending CN115563587A (zh) 2022-10-21 2022-10-21 一种接口保护方法、装置及应用

Country Status (1)

Country Link
CN (1) CN115563587A (zh)

Similar Documents

Publication Publication Date Title
US11019114B2 (en) Method and system for application security evaluation
EP3607721B1 (en) System and method for detecting directed cyber-attacks targeting a particular set of cloud based machines
US10826931B1 (en) System and method for predicting and mitigating cybersecurity system misconfigurations
US10419274B2 (en) System facilitating prediction, detection and mitigation of network or device issues in communication systems
US20180124072A1 (en) Systems and methods for computer environment situational awareness
US10511615B2 (en) Non-protocol specific system and method for classifying suspect IP addresses as sources of non-targeted attacks on cloud based machines
US9916442B2 (en) Real-time recording and monitoring of mobile applications
CN112534432A (zh) 不熟悉威胁场景的实时缓解
US10320833B2 (en) System and method for detecting creation of malicious new user accounts by an attacker
US11805005B2 (en) Systems and methods for predictive assurance
US20130124924A1 (en) Program analyzing system and method
CN112544054B (zh) 通过众包安全性解决方案自动生成威胁修复步骤
US10936386B2 (en) Method, device and computer program product for monitoring access request
US11567756B2 (en) Causality determination of upgrade regressions via comparisons of telemetry data
CN113225339A (zh) 网络安全监测方法、装置、计算机设备及存储介质
CN109818972B (zh) 一种工业控制系统信息安全管理方法、装置及电子设备
CN108595323B (zh) 一种系统测试方法及相关装置
CN111078418B (zh) 操作同步方法、装置、电子设备及计算机可读存储介质
CN115563587A (zh) 一种接口保护方法、装置及应用
US20220292374A1 (en) Dynamic parameter collection tuning
US20210294635A1 (en) Recovery of state, configuration, and content for virtualized instances
CN115051867A (zh) 一种非法外联行为的检测方法、装置、电子设备及介质
CN109327433B (zh) 基于运行场景分析的威胁感知方法及系统
CN109714371B (zh) 一种工控网络安全检测系统
US20230385045A1 (en) Method, device, and computer program product for upgrading virtual system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination