一种IoC自动抽取与挖掘方法与系统与流程

文档序号:25482091发布日期:2021-06-15 21:41阅读:462来源:国知局
一种IoC自动抽取与挖掘方法与系统与流程

本发明涉及计算机网络安全领域,尤其涉及一种ioc(攻击指标,indicatorofcompromise)自动抽取与挖掘方法与系统。



背景技术:

近年来,随着网络技术的快速发展,网络上的安全威胁也在增加。网络安全专家和分析师们通过积极地在公共平台上交换威胁情报来跟进对这些威胁的研究和防范。威胁情报是基于证据的知识,它是围绕着现存的或者即将对资产发生威胁和危害的信息,包括了上下文、机制、指标、含义或者以行动为中心的建议。这种情报可用于告知受害对象,让他们能够针对这样的威胁和危害进行决策。这些威胁情报大多为描述性文本包涵了关键信息(例如,僵尸网络ip,恶意软件的签名等)。这些信息通过文章、博文或是白皮书的形式呈现出来。更进一步,这些信息能够被转化成结构化信息,即攻击指标(ioc,indicatorofcompromise),参照openioc(openindicatorofcompromise)标准、stix(structuredthreatinformationexpression)标准等。这有利于计算机进行分析,并且基于此快速开发出应对威胁的方案。

随着计算机应用领域的不断扩大,自然语言处理受到了人们的高度重视。机器翻译、语音识别以及信息检索等应用需求对计算机的自然语言处理能力提出了越来越高的要求。为了使计算机能够处理自然语言,首先需要对自然语言进行建模。自然语言建模方法经历了从基于规则的方法到基于统计方法的转变。

在对统计语言模型进行研究的背景下,google公司在2013年开放了word2vec这一款用于训练词向量的软件工具。word2vec可以根据给定的语料库,通过优化后的训练模型快速有效地将一个词语表达成向量形式。word2vec依赖skip-grams或连续词袋(cbow)来建立神经词嵌入。skip-gram模型是在给出目标单词(中心单词)的情况下,预测它的上下文单词出现的概率。

循环神经网络(recurrentneuralnetwork,rnn)在自然语言处理(naturallanguageprocessing,nlp)的文本处理上取得了很大的成功,但rnn是单向的,是根据前面的信息推出后面的,但有时候只看前面的词是不够的,不仅要看上文,还需要看下文。bi-lstm,即双向lstm(longshort-termmemory),较单向的lstm,能更好地捕获句子中上下文的信息,从而使得分类效果更佳。

由于海量的非结构化威胁情报在各个平台上由若干专业人士上传,这些信息通常是描述性的语言。由于专业的分析专家精力和时间的限制,这些数量庞大的信息和报告无法被立即获得和分析,获得后也要耗费时间对其可信度进行判断,就延误了对威胁的处理和进一步的应对,如此便可能造成被攻击的潜在目标的损失。

因此,本领域的技术人员致力于开发一种ioc自动抽取与挖掘方法与系统,基于人工智能对ioc进行自动抽取与挖掘。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是是收集和提取威胁报告文本中的ioc,从而帮助分析员对海量威胁情报进行收集、处理和提取关键信息,提高安全事件分析员的分析效率和对于安全事件的洞察力。

为实现上述目的,本发明提供了一种ioc自动抽取与挖掘方法,包括词嵌入层、序列表示层、全连接层;

词嵌入层将输入词语转换为词向量;

序列表示层为双向lstm(longshort-termmemory)结构;

全连接层对词嵌入层和序列表示层的输出进行综合,输出表示是否为有效ioc。

进一步地,词嵌入层采用word2vec中的skip-gram算法进行训练。

进一步地,序列表示层还包括注意力机制。

进一步地,序列表示层还包括上下文特征。

进一步地,序列表示层在每个句子输入之前,对双向lstm结构中的隐藏层的权值置零。

本发明还提供了一种ioc自动抽取与挖掘系统,采用以上方法,包括文本自动获取模块、非结构化文本预处理模块、iocterm匹配库、ioc提取模块、ioc数据库;

文本自动获取模块收集ioc文本信息;

非结构化文本预处理模块对ioc文本信息进行清洗;

iocterm(ioc短语)匹配库存储iocterm;

ioc提取模块提取ioc;

ioc数据库存储ioc提取模块提取到的ioc。

进一步地,ioc提取模块包括正则表达式匹配模块、ioc有效性判断模块。

进一步地,正则表达式匹配模块通过正则表达式匹配有效ioc。

进一步地,正则表达式匹配模块包括两类正则表达式,分别匹配规则严整的ioc和结构化特征不明显的语句中的ioc。

进一步地,ioc有效性判断模块对ioc进行有效性分类,识别出有效ioc。

本发明针对非结构化的文本利用正则匹配和双向长短期记忆网络的组合算法,结合注意力机制和上下文内容特征,提升对上下文的特征提取能力,提升对含义不确定的ioc数据的判别效果,在数据集上的分类效果能达到92%的正确率。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的组成示意图;

图2是本发明的一个较佳实施例的基于深度学习的ioc抽取模型框架示意图;

图3是本发明的一个较佳实施例的ioc有效性判定模块工作流程示意图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方适当夸大了部件的厚度。

如图1所示,本发明的一个较佳实施例,由文本自动获取模块、非结构化文本预处理模块、ioc提取模块、ioc数据库和iocterm匹配库组成。本发明的功能是在获取相关威胁情报的基础上,从非结构化的文本中抽取ioc,形成ioc数据库,并通过网页界面进行输出。

1)文本自动获取模块:收集网络安全厂商和网络安全网站提供的威胁报告链接,运用python的request-html库爬取与ioc相关的文本信息;

2)非结构化文本预处理模块:使用python库编程,实现对位于上下文环境中、无结构化特征的ioc相关文本的清洗;

3)iocterm匹配库:利用现有的ioceditor开源软件,对ioc中出现频率较高的特征词进行收集和管理,同时对目前收集到的包含有效ioc的语句进行了分析,提取了出现了频率较高的ioc短语(term)放入匹配库中作为特征;

4)ioc提取模块:针对非结构化的文本利用正则匹配和双向lstm的组合算法,包括正则表达式匹配模块和ioc有效性判断模块两个子模块。前者在正则表达式的应用方面,进一步修改匹配式,设计了两类正则表达式,分别匹配规则严整的ioc和结构化特征不明显的语句中的ioc,能够识别出经过人工混淆的ip地址、url、domain、hash、文件名等ioc数据;后者基于深度学习的ioc有效性判别算法,运用深度学习技术,结合注意力机制和上下文内容特征,提升对上下文的特征提取能力,同时提升对含义不确定的ioc数据的判别效果,识别出有效的ioc;

5)ioc数据库:将经过提取模块处理得到的ioc存入sqlite数据库中,最终输出到运用flask开发的网页上。

如图2所示,基于深度学习的ioc抽取模型包括以下三个部分:词嵌入层、序列表示层和全连接层。

1)词嵌入层:针对收集到并且处理好的语料库进行word2vec中的skip-gram算法的训练,得到每个字的词向量。词嵌入层将输入词语转换为对应的词向量。在词向量层,给定了输入词序列,通过查找词典向量表转换为对应的输出;

2)序列表示层:主要包括双向lstm结构、注意力机制和上下文特征三部分。

在命名实体识别的任务当中,我们获取对输入特征过去的和未来的相关特征。因此,我们基于时间的反向传播机制,训练并搭建了一个双向lstm的网络结构。这个lstm网络包括一个隐藏层h、一个输入层x和一个输出层y。在命名实体识别的文本当中,x代表了输入特征,y代表了输出的标签。一个在时刻t的输入层代表了一组输入特征。这些特征的形式可以是对一个词特征的独特编码,也可以是一个向量特征。输入层维度和特征维度是相同的。输出层代表了在t时刻输出标签的概率分布。它和标签的维度是相同的。对比前向传播网络,循环神经网络引入了一个新的机制,这个机制在过去的隐藏层和目前的隐藏层之间建立了联系。如此,这个循环层的权重就能记录历史信息。如此在同一时刻,通过前向传递层,我们可以提取到过去的特征;通过后向传递层,我们可以提取到未来特征。

在训练神经网络的过程中,因为我们将一个完整的句子作为每次的输入,所以只需要在每个句子输入之前对隐藏层的权值置零。

同时,本发明运用批处理技术,使得若干句子可以一起得到处理。

网络威胁报告中通常有大量的ioc,并且这些ioc通常以列表或是在依托于前后文的关系存在,因此本发明在设计中加入了注意力机制以及环境特征。

注意力机制的提出是为了解决在长序列到定长向量转化而造成的信息损失。其思想和人类阅读文章类似,将注意力都集中在关键部分,对应到ioc识别与抽取中,是在ioc识别与抽取中,将注意力放置于ioc块上。

环境特征即上下文特征,是指:每次输入一个句子,计算iocterm在句中的次数以及该词语离ioc的距离。对词向量做识别,若是出现在iocterm库中的词语时,则将iocterm的频率值提高。由此,生成了序列表示层的输出向量。

3)全连接层:对词嵌入层和序列表示层的输出进行综合,输出表示是否为有效ioc。

如图3所示,ioc有效性判定子模块的工作流程包括:首先,模块对候选含有ioc的句子利用word2vec进行向量嵌入。同时,模块对句中的其他单词在iocterm匹配库中进行自动化的查询。若其符合上下文特征,通过字典嵌入向量;若不符合则嵌入相应维数的0向量。将lstm序列向量和上下文特征组合,输入全连接层。模型输出表示是否为有效ioc。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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