一种识别报文所属组件的方法和计算设备与流程

文档序号:11215570阅读:429来源:国知局
一种识别报文所属组件的方法和计算设备与流程

本发明涉及网络安全技术领域,尤其涉及一种识别报文所属组件的方法和计算设备。



背景技术:

随着网络通信技术的迅速发展、所承载信息的日益丰富,互联网已成为人类社会重要的基础设施,越来越多的企业或者个人通过网络服务器以及服务器的各种组件向用户提供网络内容和服务。

网络服务器的各种组件在给人们的生活带来各种方便的同时,也给网络安全管理带来一些严峻的问题,例如组件可能携带安全漏洞、病毒、木马等,造成用户隐私泄露、网络安全隐患。因此对组件进行识别十分关键。

通常地,可以通过识别报文来确定其所属组件,但目前这一过程主要由人工完成,需要由识别人员从报文中提取有效的关键字段,再借助搜索引擎判断组件类型、所属公司和型号,由于报文种类繁多,复杂度较高,整个过程耗费极大的人力和时间。

因此,迫切需要一种更先进的识别报文所属组件的方案。



技术实现要素:

为此,本发明提供一种识别报文所属组件的方案,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种识别报文所属组件的方法,适于在计算设备中执行,该方法包括步骤:从待识别报文中提取至少一个关键字段;对于所提取的一个关键字段,利用搜索引擎查询该关键字段,以得到多个包含有该关键字段的报文、以及返回该报文的ip地址;分别获取查询到的每个ip地址指向的网络内容的截图;根据所获取的多个网络内容的截图来判断该关键字段是否有效;对于基于有效的关键字段而获取的每个网络内容截图,计算查询到的、指向该网络内容的ip地址返回的报文与待识别报文的相似度;选取其中相似度最高的报文所对应的网络内容的截图,根据该截图,采用预先建立的深度学习模型来获取待识别报文的组件信息;以及根据该组件信息确定待识别报文所属的组件。

根据本发明的另一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的识别报文所属组件的方法中的任一方法的指令。

根据本发明的还有一个方面,提供了一种存储程序的可读存储介质,程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本发明的识别报文所属组件的方法中的任一方法。

根据本发明的识别报文所属组件的方案,通过获取其报文包含有从待识别报文中提取的关键字段的多个报文,并利用深度学习模型来获取待识别报文的组件信息,最后根据组件信息确定组件,实现了报文所属组件的自动化识别,极大地节省了人力和时间成本。

其中,还根据返回所获取的报文的多个ip地址指向的网络内容的截图来判断关键字段是否有效,从而避免了利用无效关键字段进行识别的冗余流程,提高了识别效率。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明的一个示例性实施方式的计算设备100的结构框图;

图2示出了根据本发明的一个示例性实施方式的识别报文所属组件的方法200的流程图;以及

图3示出了根据本发明一个示例性实施方式的网络空间搜索引擎的查询结果的页面截图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个示例性实施例的计算设备100的结构框图。该计算设备100可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和网络服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。此外,计算设备100还可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(pda)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。

在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器((μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器218可以是处理器104的一个内部部分。

取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个程序122以及程序数据124。在一些实施方式中,程序122可以被配置为在操作系统上由一个或者多个处理器104利用程序数据124执行指令。

计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个a/v端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个i/o端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

其中,计算设备100的一个或多个程序122包括用于执行根据本发明的识别报文所属组件的方法中任一方法的指令。根据本发明的识别报文所属组件的方法,通过获取其报文包含有从待识别报文中提取的关键字段的多个报文,并利用深度学习模型来获取待识别报文的组件信息,最后根据组件信息确定组件,实现了报文所属组件的自动化识别,极大地节省了人力和时间成本。

图2示出了根据本发明一个示例性实施方式的识别报文所属组件的方法200的流程图。识别报文所属组件的方法200适于在计算设备100中执行,并始于步骤s210。

在步骤s210中,从待识别报文中提取至少一个关键字段。具体地,可以根据预置的关键字集合,在待识别的报文中通过字符串匹配得到至少一个关键字段。例如,待识别的报文可以如下:

预置的关键字集合可以为server:|www-authenticate:basicrealm=|location=|<title>,那么根据该关键字集合,最后得到的关键字段为www-authenticate:basicrealm="camera_authenticate1"。

通常地,提取到的关键字段为多个,那么接着对于所提取的其中一个关键字段,在步骤s220中,利用搜索引擎查询该关键字段,以得到多个包含有该关键字段的报文、以及返回该报文的ip地址。

这里的搜索引擎可以是诸如zoomeye和shadon之类的网络空间搜索引擎,多个可以是诸如5个之类的固定数目。图3示出了根据本发明一个示例性实施方式的网络空间搜索引擎的查询结果的页面截图,在如图3所示的实施例中,在网络空间搜索引擎zoomeye中以serverapache为搜索词进行查询,返回的查询结果包括多个包含有serverapache的报文、以及返回该报文的ip地址。可以在其中随机抽取更新时间较新的固定数目个报文和返回该报文的ip地址,以进行后续处理。

在步骤s230中,分别获取查询到的每个ip地址指向的网络内容的截图。具体地,经由浏览器访问每个查询到的ip地址,并将显示在浏览器上的网络内容截图。

获取截图之后,在步骤s240中,根据所获取的多个网络内容的截图来判断该关键字段是否有效。具体地,对于所获取的多个网络内容的截图,判断其中每两个网络内容的截图是否相似,例如,所获取的多个网络内容的截图为截图1~3,则分别判断其中截图1和截图2、截图1和截图3、截图2和截图3是否相似。

根据本发明的一个实施例,可以使用sift算法来判断两个截图是否相似。具体地,可以使用sift算法分别提取两个截图的sift特征,通过对两个截图的sift特征进行匹配,来判断两个截图是否相似。其中,可以通过特征匹配对数量是否超过预定的相似比例来确定两个截图是否相似。

对每两个网络内容的截图进行相似判断后,可以得到多个判断结果。若所得到的多个判断结果中不相似的数目没有超过预定比例,则确定该关键字段有效,若多个判断结果中不相似的数目超过预定比例确定该关键字段无效。例如,所获取的多个网络内容的截图为截图1~3,截图1和截图2、截图1和截图3、截图2和截图3的判断结果分别为不相似、不相似、相似,其中不相似的数目占比为2/3,超过了预定比例1/2,因此确定对应的关键字段无效。这样,就避免了利用无效关键字段进行识别的冗余流程,提高了识别效率。

可以理解地,网络内容截图是否相似可以反映其对应的报文是否相似,因此当查询某个关键字段得到的多个报文多数都相似时,那么可以认为包含该关键字段的所有报文存在一定规律,那么待识别报文也自然与这些报文相似,因此通过这些报文提取出的组件信息可以认为是待识别报文的组件信息。

而当查询某个关键字段得到的多个报文彼此之间多数都不相似时,可以认为包含该关键字段的报文不存在规律,无法通过这些报文提取出具有典型性的、通用的组件信息,因而可以认为该关键字段无效。

在确定一个关键字段无效之后,还需要继续对所提取的其他的无效字段重复上述查询、获取、判断该关键字段是否有效的步骤,直至确定某个关键字段有效、或者全部关键字段无效为止。若全部关键字段均为无效,则可以认为该待识别报文为无法识别的报文,不再对其进行识别。

若确定一个关键字段有效,则在步骤s250中,对于基于该有效的关键字段而获取的每个包含有该关键字段的报文,均计算该报文与待识别报文的相似差值。

具体地,可以删除两个报文所包含的时间信息,再利用levenshtein算法计算两个报文之间的相似差值。

假设,待识别报文如下:

http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox551dwprinter-cv037a;serialnumber:cn584kj0c2;built:frijan09,201502:58:26pm{bzp1cn1502ar}

将其删除时间信息后如下:

http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox551dwprinter-cv037a;serialnumber:cn584kj0c2;built:{bzp1cn1502ar}

又假设,查询到的报文如下:

http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox476dwmfp-cn461a;serialnumber:cn45kik01v;built:tuenov24,201503:37:44pm{lwp1cn1548ar}

将其删除时间信息后如下:

http/1.1505httpversionnotsupported\nserver:hphttpserver;hphpofficejetprox476dwmfp-cn461a;serialnumber:cn45kik01v;built:{lwp1cn1548ar}

最后,利用levenshtein算法计算得到的两个报文之间的相似差值为26,即待识别报文变换到查询到的报文所需要修改的字数。

在步骤s260中,选取其中相似差值最小的预定数目个报文(即与待识别报文最相似的报文),并根据这些报文采用预先建立的深度学习模型来获取待识别报文的组件信息。这样,可以进一步提高最后识别出的组件的准确度。

具体地,可将所选取的预定数目个报文输入至该深度学习神经网络中,以得到其输出的组件信息。其中,深度学习模型为深度学习神经网络,根据本发明的一个实施例,可以通过tensorflow框架构建深度学习神经网络,根据输入信息的情况,将深度学习神经网络的层数设置为5~9层,每一层均为卷积层,每一层的具体参数在训练过程中需要调整。在每一层卷积层计算结束后,利用elu函数作为激活函数,将最后一层卷积层激活后接入全连接层,并输入到softmax函数进行处理,从而构建出第一深度学习神经网络和第二深度学习神经网络。在后续训练过程中,将softmax函数的预测结果和真实的标签值作为输入,利用cross-entropy算法计算对应的loss值,将loss值输入到momentum优化方法计算梯度,并更新深度学习神经网络的模型参数。另外,可以采用属于相同组件的预定数目个不同报文和共同的组件信息作为样本对该深度学习神经网络进行训练。

例如,一个待识别报文如下:

提取出的有效的关键字段如下:

<title>bitnami:opensource.simplified</title>

在网络空间搜索引擎查询到的相似差值最小的3个报文如下:

将这3个报文输入深度学习模型后,可以得到输出的组件信息为:bitnami。得到组件信息之后,最后在步骤s270中,可以根据该组件信息确定待识别报文所属的组件。例如,得到的组件信息为tomcat,根据该领域的常识性经验,可以判断组件为apache。还可以利用诸如google、baidu之类的搜索引擎搜索tomcat,从而根据返回的搜索结果确定组件。

应当理解,这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、cd-rom、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被该机器执行时,该机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的该程序代码中的指令,执行本发明的各种方法。

以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

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