1.本发明涉及数据安全技术领域,尤其涉及一种基于动态标签的接口数据暴露探测方法。
背景技术:2.有资料显示,绝大多数app、小程序及网站的数据对外输出形式为基于http的api接口,接口传输的数据包含用户id、性别、地理位置、账号、昵称、账号与手机信息的绑定关系等个人敏感数据。如果接口数据未脱敏直接暴露在公网,则存在巨大的数据安全隐患,如被灰黑产利用则可能导致百万、千万、甚至亿级个人信息泄漏。而实际情况是,承载数据交互的api接口往往由于其“不可见”的特点,其安全问题易被忽略。app运营者及监管部门普遍关注数据库数据安全,从数据库权限控制和数据审计角度避免数据暴露,鲜有基于api接口数据安全管控、评估的方案及系统。
3.中国专利文献cn113986222a公开了一种“云计算的api接口翻译系统”。采用了主要针对开发方向,将接口编排系统用于在应用开发的需求下对接口进行自动编排或者手动编排,在自动或手动选择所需接口之后生成接口访问的路由,并将所有选择的接口按照应用所需的传输协议统一形成一个对外暴露的接口交由接口访问管理系统进行管理;接口访问管理系统用于对编排完成的接口进行集中化管理、监控以及访问优化,可针对不同平台实现的功能的不同,对接口进行编排,按需暴露接口,转换接口数据协议,统一数据协议,减少应用开发难度。上述技术方案采用统一格式管理,缺少针对性,对于结果难以实现高效查找和应用。
技术实现要素:4.本发明主要解决原有的技术方案采用统一格式管理,缺少针对性,对于结果难以实现高效查找和应用的技术问题,提供一种基于动态标签的接口数据暴露探测方法,针对app、小程序及网站的数据对外输出的api接口数据的安全探测,基于核心语料库,定义标签库中不同类型的标签后将给出从语料中挖掘并构建标签库,实现更为准确的接口数据安全监测,并可作为app运营者或电信监管部门接口数据安全方面支撑。
5.本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明包括以下步骤:
6.s1从外部语料中提取数据安全相关的关键字作为标签写入标签库;
7.s2标签库为敏感标签匹配模块提供匹配模式;
8.s3敏感标签匹配模块进行风险接口识别;
9.s4标签库评估标签风险系数;
10.s5依据各标签的风险系数评估接口的数据安全暴露风险系数。
11.风险接口并不意味着存在敏感数据暴露行为,取决于接口数据是否脱敏,而数据脱敏判定不在本专利考虑范围内。
12.作为优选,所述的步骤s1中标签具备数据安全隐患相关特征,通过数据挖掘的手段不断从增量语料中提炼标签并不断更新标签库。数据库来源包括维基百科和数据安全领域文件,数据安全领域文件包含由国家工信部、网信办、司法部门、行业领头企业发布的数据安全白皮书、法律法规、政策、技术标准、指导、倡导性文件等。
13.作为优选,所述的步骤s3具体包括,数据请求方通过app运营的企业、组织提供的数据查询接口获取流量,系统接入网络流量后,首先需要对网络流量进行还原、解析形成接口数据,接口数据是标签匹配的对象,如果接口数据与标签匹配,则接口被判定为数据暴露风险接口。
14.作为优选,所述的对网络流量进行还原、解析形成接口数据具体包括,流量解析模块将不可读的二进制流还原为可读的字符串或文本,将api接口数据还原为请求和响应数据,被还原数据均为受检对象。针对不同的场景本系统提供两种接入方案:镜像app运营方的出口网络流量;镜像监管部门的入口网络流量。
15.绝对大多数数据接口采用http协议传输数据,网络流量即特指符合http传输协议标准的二进制数据流。请求数据还原为“请求行-通用信息头-请求头-实体头-报文主体“的形式,响应数据被还原为“状态行-通用信息头-响应头-实体头-报文主体”的形式。其中,“请求行”与“报文主体”是标签匹配的对象。
16.作为优选,所述的标签包括:
17.元标签:从包括法律法规的重要文件中挖掘出的关键字,元标签不与接口数据匹配;
18.强标签:从非法律法规类的语料中挖掘出的与元标签关联性强的关键字;如果接口数据与强标签匹配,则意味着接口具有较高数据暴露风险。
19.弱标签:从语料中挖掘出的与强标签关联性不强的关键字,即强标签的衍生标签。如果接口内容与弱标签匹配,则意味着接口存在较低数据暴露风险。
20.作为优选,所述的关键字提取方法采用无监督的方法,不需要人工标注的语料,直接利用算法发现文本中重要的词作为标签关键字提取方法。
21.还包括有监督和半监督:
22.有监督的关键词抽取算法是将关键词抽取算法看作是二分类问题,判断文档中的词或者短语是或者不是关键词;既然是分类问题,就需要提供已经标注好的训练语料,利用训练语料训练关键词提取模型,根据模型对需要抽取关键词的文档进行关键词抽取。
23.半监督的关键词提取算法只需要少量的训练数据,利用这些训练数据构建关键词抽取模型,然后使用模型对新的文本进行关键词提取,对于这些关键词进行人工过滤,将过滤得到的关键词加入训练集,重新训练模型。
24.无监督意味着系统不需要专家意见或领域经验,只需要相关语料就能够提取出标签。而监督或半监督的方式都需要一定的领域知识支撑标签提取。避免了数据暴露风险判定需要数据安全领域专家高度干预的问题,并且能够克服领域专家干预模式(由领域专家给定数据标签、特征或指纹)下判定特征不完备、特征动态维护难度大、代价昂贵的问题。
25.本专利的核心是利用无监督数据挖掘算法抽取语料中的关键字构建标签库,避免了数据暴露风险判定需要数据安全领域专家高度干预的问题,并且能够克服领域专家干预模式(由领域专家给定数据标签、特征或指纹)下判定特征不完备、特征动态维护难度大、代
价昂贵的问题。标签挖掘即提取数据安全领域相关的特征关键字,依赖自然语言处理中数据挖掘算法。在自然语言处理领域,无论是对于长文本还是短文本语料,往往可以通过几个关键词窥探整个文本的主题或特征。不管是基于文本的推荐还是基于文本的分类,对于文本关键词的依赖都很大,关键词提取的准确程度直接关系到文本分类的最终效果。
26.作为优选,采用word2vec算法进行文本关键字提取的目标计算:
27.p(s|wi)
28.其中s是文本,wi是文本中的词,如果wi是文本的关键词,那么应该使得上式概率最大,因此只需对文本中所有的词计算上述概率,然后降序排列,即可提取关键词,使用朴素贝叶斯假设,如果s由n个词w1,w2,
…
,wn组成,那么
[0029][0030]
这样,只需要估算词与词之间的转移概率p(wk|wi),转移概率表征词与词之间的关联性,通过转移概率得到条件概率p(s|wi),从而完成关键词的提取。
[0031]
word2vec的skip-gram模型是一个nlp工具,它的特点是能够将单词转化为向量来表示,这样词与词之间就可以定量的去度量他们之间的关系,即计算p(wk|wi)。word2vec的模型本质上是只具有一个隐含层的神经网络。
[0032]
它的输入是采用one-hot编码的词汇表向量,它的输出也是one-hot编码的词汇表向量。使用所有的样本,训练这个神经元网络,等到收敛之后,从输入层到隐含层的那些权重,便是每一个词的采用distributed representation的词向量。这样就把原本维数为v的词向量变成了维数为n的词向量(n远小于v),并且词向量间保留了一定的相关关系。
[0033]
作为优选,采用fp growth算法从word2vec算法产生的大量关键字中提取元标签,具体包括:算法输入为数据集合d,支持度阈值α,输出最大的频繁k项集,算法核心步骤如下:
[0034]
1)扫描数据,得到所有频繁1项集的计数。然后删除支持度低于阈值α的项,将1项频繁集放入fp tree项头表,并按照支持度降序排列;
[0035]
2)扫描数据,将读到的原始数据剔除非频繁1项集,并按照支持度降序排列;
[0036]
3)读入排序后的数据集,按照排序后的顺序插入fp tree,排序靠前的节点是祖先节点,而靠后的是子孙节点,如果有共用的祖先,则对应的公用祖先节点计数加1,插入后,如果有新节点出现,则项头表对应的节点会通过节点链表链接上新节点,直到所有的数据都插入到fp tree后,fp tree的建立完成;
[0037]
4)从项头表的底部项依次向上找到项头表项对应的条件模式基,从条件模式基递归挖掘得到项头表项的频繁项集;
[0038]
5)如果不限制频繁项集的项数,则返回步骤4)所有的频繁项集,否则只返回满足项数要求的频繁k项集。
[0039]
fp growth算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,fp growth算法是在apriori算法基础上引入fp tree数据结构,解决其时间服务读问题。
[0040]
作为优选,所述的步骤s5探测接口是否存在数据暴露风险的方式是:使用hyperscan正则引擎进行标签匹配,判定接口的请求和响应数据是否含有强标签和弱标签,
避免性能问题,常规基于nfa/dfa正则引擎匹配时间复杂度为o(n),当待匹配的标签数量为m时,标签库匹配的复杂度为m*o(n),标签匹配的时间复杂度随标签数量线性增长。随着构建标签体系的语料不断丰富,标签数量会不断增长,意味着标签匹配的时间开销不断线性增长,这将导致匹配时间开销不可控。
[0041]
作为优选,所述的步骤s5对接口数据暴露风险系数进行量化,接口数据暴露风险的量化取决于接口匹配结果中的强标签和弱标签的风险系数,计算方式定义为:(强标签风险系数最大值+弱标签风险系数的均值),保证强标签为接口风险量化的主要因素,同时兼顾弱标签对风险评估的影响。
[0042]
本发明的有益效果是:针对app、小程序及网站的数据对外输出的api接口数据的安全探测,基于核心语料库,定义标签库中不同类型的标签后将给出从语料中挖掘并构建标签库,实现更为准确的接口数据安全监测,并可作为app运营者或电信监管部门接口数据安全方面支撑。
附图说明
[0043]
图1是本发明的一种流程图。
[0044]
图2是本发明的一种工作原理图。
具体实施方式
[0045]
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0046]
实施例:本实施例的一种基于动态标签的接口数据暴露探测方法,如图1所示,包括以下步骤:
[0047]
s1从外部语料中提取数据安全相关的关键字作为标签写入标签库。如图2所示,标签具备数据安全隐患相关特征,通过数据挖掘的手段不断从增量语料中提炼标签并不断更新标签库。
[0048]
标签体系的重点是从语料库中不断挖掘标签构建、更新标签库,同时为标签分类并评估风险系数。
[0049]
系统将对标签进行分类,这些类别包含:
[0050]
元标签:从法律法规等重要文件中挖掘出的关键字,元标签不接口数据匹配;
[0051]
强标签:从语料中(非法律法规类)挖掘出的与元标签关联性极强的关键字。如果接口数据与强标签匹配,则意味着接口具有较高数据暴露风险;
[0052]
弱标签:从语料中挖掘出的与强标签关联性较高的关键字,即强标签的衍生标签。如果接口内容与弱标签匹配,则意味着接口存在较低数据暴露风险;
[0053]
本专利的核心是利用无监督数据挖掘算法抽取语料中的关键字构建标签库,避免了数据暴露风险判定需要数据安全领域专家高度干预的问题,并且能够克服领域专家干预模式(由领域专家给定数据标签、特征或指纹)下判定特征不完备、特征动态维护难度大、代价昂贵的问题。
[0054]
标签挖掘
[0055]
标签挖掘即提取数据安全领域相关的特征关键字,依赖自然语言处理中数据挖掘算法。在自然语言处理领域,无论是对于长文本还是短文本语料,往往可以通过几个关键词
窥探整个文本的主题或特征。不管是基于文本的推荐还是基于文本的分类,对于文本关键词的依赖都很大,关键词提取的准确程度直接关系到文本分类的最终效果。
[0056]
因此,关键词提取在文本挖掘领域是一个很重要的部分。关于文本的关键词提取方法分为有监督、半监督和无监督三种:
[0057]
有监督的关键词抽取算法是将关键词抽取算法看作是二分类问题,判断文档中的词或者短语是或者不是关键词。既然是分类问题,就需要提供已经标注好的训练语料,利用训练语料训练关键词提取模型,根据模型对需要抽取关键词的文档进行关键词抽取。
[0058]
半监督的关键词提取算法只需要少量的训练数据,利用这些训练数据构建关键词抽取模型,然后使用模型对新的文本进行关键词提取,对于这些关键词进行人工过滤,将过滤得到的关键词加入训练集,重新训练模型。
[0059]
无监督的方法不需要人工标注的语料,利用算法发现文本中比较重要的词作为标签。
[0060]
实现无监督的思想是利用相关算法建立标签库,利用标签库进行匹配(在不基于数据挖掘的解决方案中,这个标签库需要专家提供,系统使用标签做匹配)。
[0061]
算法核心思想是利用bayes+word2vec提取元标签,元标签的含义:如果所有预料中绝大多数词都与词a关联,那么词a就是元标签。强标签是再次使用word2vec获取与元标签关联程度最高的关键字。弱标签是使用word2vec获取与强标签关联度高的最高的关键字。fp算法用于是整理word2vec算法的结果,抓取元标签和强标签、强标签和弱标签之间关联性最高的标签集合。
[0062]
元标签
[0063]
元标签是标签体系中价值最高的标签,其他类型标签均由元标签直接或间接通过关联分析得到。本节以《个人信息保护法》作为示例语料,说明如何使用word2vec和fp growth算法提取元标签。
[0064]
第一步,对《个人信息保护法》进行分词处理记为文本s。本专利采用jieba分词工具按词性进行分词,分词结果仅保留名词,分词作为nlp基础技术不在此赘述。以《个人信息保护法》第一条作为分词示例:“为了保护个人信息权益,规范个人信息处理活动,促进个人信息合理利用,根据宪法,制定本法”,其分词的结果:个人信息权益规范个人信息处理个人信息利用宪法本法。
[0065]
第二步,通过语料计算“词与词”的先验相关性。这里的最佳语料为维基百科,但是理论上可以使用任何语料作为文本训练集。从wiki爬取语料作为word2vec的训练数据集,爬虫模块使用scrapy框架,自动抽取结构和半结构数据。本专利使用开源爬虫工scrapy_for_zh_wiki爬取中卫维基中“信息安全”条目下的相关页面并提取为txt纯文本文件。爬虫提取的每个文本文件作为算法的一个输入样本si,根据word2vec算法概述对word2vec算法的说明,si输入算法后将得到词向量,词向量表征“词与词”的相关性。以下使用维基百科“数据泄露”页面(https://zh.wikipedia.org/wiki/数据泄漏)作为输入样本进行解释说明。首先对样本重复第一步的分词操作,然后使用算法训练样本,最后输出训练模型中与“个人信息”关联程度最高的关键字,核心步骤如下:
[0066]
cut('数据泄漏_wiki.txt','数据泄漏_wiki分词.txt')
[0067]
train('数据泄漏_wiki分词.txt')
[0068]
print(model.wv.most_similar('个人信息',topn=20)
[0069]
输出数据形式:(关键字,关键字与“个人信息”的相关系数),结果如下:
[0070]
('网站',0.999011218547821),('姓名',0.9989246726036072),
[0071]
('机密',0.9988574385643005),('国家',0.9988412857055664),
[0072]
('账户',0.9988037347793579),('用户',0.9988016486167908),
[0073]
('医保',0.9987966418266296),('密码',0.9986749291419983),
[0074]
('苹果',0.9986098408699036),('雇员',0.9986026287078857),
[0075]
('公司',0.9985162615776062),('报告',0.9984658360481262),
[0076]
('信用卡',0.998325765132904),('记录',0.9981973171234131),
[0077]
('档案',0.9981496067899481),('客户',0.9978189468383789),
[0078]
('事故',0.9977312684059143),('员工',0.9975725412368774),
[0079]
('个人',0.9975405335426331),('数据',0.9974167943000793)]。
[0080]
从结果不难发现,“姓名”、“用户”、“密码”、“账户”、“信用卡”、“医保”、“档案”等关键字表现为与“个人信息”强相关。相关系数即word2vec算法概述描述的词与词之间的转移概率p(wk|wi),对于结果(
‘
密码’,0.9986749291419983)为:
[0081]
wk=“密码”[0082]
wi=“个人信息”[0083]
p(wk|wi)=0.9986749291419983
[0084]
第三步,根据word2vec算法概述使用转移概率p(wk|wi)计算条件概率p(s|wi)完成基于语料si的文本s关键字提取,其中文本s为第一步《个人信息保护法》分词结果。基于语料si,预测《个人信息保护法》的关键字和关键字与语料的相关系数co(s|wi)如下:
[0085]
(信息,-1557.665167272091)
[0086]
(跨境,-1559.3179305195808)
[0087]
(个人信息,-1560.9807907044888)
[0088]
(医疗,-1561.887493789196)
[0089]
(姓名,-1564.6877086758614)
[0090]
(国家,-1566.2985190153122)
[0091]
(账户,-1568.50256639719)
[0092]
(泄露,-1569.2311087548733)
[0093]
第四步,假设爬虫从wiki页面提取了n个文本,每个文本si通过第三步提取了《个人信息保护法》中的m个关键字,共计m*n个关键字,本步使用频繁项集挖掘算法fp growth从m*n个关键字提取频繁k项集作为最终的元标签。
[0094]
元标签与特定语料(《个人信息保护法》)的相关系数取频繁项相关系数的均值。
[0095]
元标签包含两个部分,标签和相关系数,相关系数越高则标签与《个人信息保护法》语料关联性越强。元标签不参与接口匹配,下文的强标签和弱标签均由元标签通过算法间接获取。
[0096]
强标签
[0097]
强标签即与元标签相关性极强的关键字,强标签的提取属于元标签提取的逆向过程,区别在于处理的语料不同。在元标签的第二步中提到可以通过word2vec训练出的模型
获取与“个人信息”强相关的关键字,假设“个人信息”为元标签,则这组强相关的关键字即为强标签,强标签与元标签的相关系数为p(wk|wi)。
[0098]
通过足够语料收集到大量强标签后,仍然需要使用fp growth算法进行频繁项集挖掘,去掉重复标签,约减与元标签相关性较弱的标签。
[0099]
强标签和弱标签是接口数据标签匹配的主体,参与接口匹配与接口数据暴露风险量化。强标签的风险系数定义为:元标签与语料的相关系数*强标签与元标签的相关系数,对应于元标签第二、三步的示例,强标签的风险系数riski=co(s|wi)*p(s|wi)。
[0100]
弱标签
[0101]
在实践中发现强标签存在如下问题:对于元标签“个人信息”存在强标签“密码”,使用强标签“密码”确实能够匹配接口数据,但是在对接口数据安全进行量化评估时会出现问题。例如,某系统存在两个接口,分别包含“账户密码”和“银行卡密码”,它们都能够匹配强标签“密码”,如果仅依靠强标签量化接口风险则两接口评分一致,但实际上暴露“银行卡密码”的接口评分应高于暴露“账户密码”的评分。以上问题源自中文分词工具的普遍缺陷,“银行卡密码”会被分为“银行卡”、“密码”、“银行卡密码”三个词,而“密码”极大概率会被作为三者中的最大频繁项归于强标签,导致“银行卡”属性丢失。
[0102]
针对上述问题,需要使用word2vec算法从语料中提取出与强标签关联的一组关键字,作为强标签衍生出的弱标签,同时得到弱标签与强标签的相关系数p(ws|wk)。最后仍需要使用fp tree算法约减弱标签。弱标签的风险系数定义为:强标签的风险系数*强标签与弱标签的相关系数,即对于弱标签j及与之关联的强标签i,弱标签j的风险系数:
[0103]
riskj=riski*p(ws|wk)=co(s|wi)*p(s|wi)*p(ws|wk)
[0104]
word2vec算法概述
[0105]
文本关键字提取的目标可用如下概率表示:
[0106]
p(s|wi)
[0107]
其中s是文本,wi是文本中的词,如果wi是文本的关键词,那么应该使得上式概率最大,因此只需对文本中所有的词计算上述概率,然后降序排列,即可提取关键词。使用朴素贝叶斯假设,如果s由n个词w1,w2,
…
,wn组成,那么
[0108][0109]
这样,只需要估算词与词之间的转移概率p(wk|wi),它表征词与词之间的关联性,通过它就可以得到条件概率p(s|wi),从而完成关键词的提取,但估算p(wk|wi),需要对大量的文本进行统计。
[0110]
word2vec的skip-gram模型是一个nlp工具,它的特点是能够将单词转化为向量来表示,这样词与词之间就可以定量的去度量他们之间的关系,即计算p(wk|wi)。
[0111]
word2vec的模型本质上是只具有一个隐含层的神经网络。
[0112]
它的输入是采用one-hot编码的词汇表向量,它的输出也是one-hot编码的词汇表向量。使用所有的样本,训练这个神经元网络,等到收敛之后,从输入层到隐含层的那些权重,便是每一个词的采用distributed representation的词向量。这样就把原本维数为v的词向量变成了维数为n的词向量(n远小于v),并且词向量间保留了一定的相关关系。
[0113]
fp growth算法概述
[0114]
fp growth算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,在本文中用于从word2vec算法产生的大量关键字中提取元标签。
[0115]
fp growth算法是在apriori算法基础上引入fp tree数据结构,解决其时间服务读问题。算法输入为数据集合d,支持度阈值α,输出最大的频繁k项集。算法核心步骤如下:
[0116]
1)扫描数据,得到所有频繁1项集的计数。然后删除支持度低于阈值α的项,将1项频繁集放入fp tree项头表,并按照支持度降序排列;
[0117]
2)扫描数据,将读到的原始数据剔除非频繁1项集,并按照支持度降序排列;
[0118]
3)读入排序后的数据集,按照排序后的顺序插入fp tree,排序靠前的节点是祖先节点,而靠后的是子孙节点。如果有共用的祖先,则对应的公用祖先节点计数加1。插入后,如果有新节点出现,则项头表对应的节点会通过节点链表链接上新节点。直到所有的数据都插入到fp tree后,fp tree的建立完成。
[0119]
4)从项头表的底部项依次向上找到项头表项对应的条件模式基。从条件模式基递归挖掘得到项头表项的频繁项集。
[0120]
5)如果不限制频繁项集的项数,则返回步骤4所有的频繁项集,否则只返回满足项数要求的频繁k项集。
[0121]
s2标签库为敏感标签匹配模块提供匹配模式;
[0122]
s3敏感标签匹配模块进行风险接口识别,具体包括,数据请求方通过app运营的企业、组织提供的数据查询接口获取感兴趣的数据,系统接入网络流量后,首先需要对网络流量进行还原、解析形成接口数据,接口数据是标签匹配的对象,如果接口数据与标签匹配,则接口被判定为数据暴露风险接口。
[0123]
数据请求方通过app运营的企业、组织提供的数据查询接口获取感兴趣的数据。针对不同的场景本系统提供两种接入方案:
[0124]
(1)镜像app运营方的出口网络流量;
[0125]
(2)镜像监管部门的入口网络流量。
[0126]
系统接入网络流量后,首先需要对网络流量进行还原、解析形成接口数据,
[0127]
接口数据是标签匹配的对象,如果接口数据与标签匹配,则接口被判定为数据暴露风险接口。
[0128]
绝对大多数数据接口采用http协议传输数据,网络流量即特指符合http传输协议标准的二进制数据流。流量解析模块的核心功能是将不可读的二进制流还原为可读的字符串或文本。
[0129]
api接口数据将被还原为请求和响应数据,它们均为受检对象。请求数据还原为“请求行-通用信息头-请求头-实体头-报文主体”的形式,响应数据被还原为“状态行-通用信息头-响应头-实体头-报文主体”的形式。其中,“请求行”与“报文主体”是标签匹配的对象。
[0130]
s4标签库评估标签风险系数。
[0131]
s5依据各标签的风险系数评估接口的数据安全暴露风险系数。
[0132]
探测接口是否存在数据暴露风险的方式是:判定接口的请求和响应数据是否含有强标签和弱标签。
[0133]
标签匹配的普遍做法是使用正则表达式,常规基于nfa/dfa正则引擎匹配时间复
杂度为o(n),当待匹配的标签数量为m时,标签库匹配的复杂度为m*o(n),标签匹配的时间复杂度随标签数量线性增长。随着构建标签体系的语料不断丰富,标签数量会不断增长,意味着标签匹配的时间开销不断线性增长,这将导致匹配时间开销不可控。
[0134]
标签体系的匹配在文本分析领域可以归为多模式文本匹配问题,在实际工程问题中通常采用的算法是aho-corasick自动机,它能够保证在标签规模不断增长情况下,克服标签匹配时间开销随标签数量线性增长问题,保持o(n)的时间复杂度。但本专利未直接采用ac算法处理标签匹配,而是使用hyperscan正则引擎,hyperscan的匹配算法实现与ac算法不尽相同,但是都能够将问题降至o(n)时间复杂度。hyperscan的优势在于,它针对服务器硬件架构及操作系统进行了优化,而不是局限于算法层面。
[0135]
接口数据暴露风险的量化取决于接口匹配结果中的强标签和弱标签的风险系数,计算方式定义为:(强标签风险系数最大值+弱标签风险系数的均值),保证强标签为接口风险量化的主要因素,同时兼顾弱标签对风险评估的影响。