本申请涉及数据处理技术领域,具体而言,涉及一种信息提取的方法及装置、可读存储介质。
背景技术:
随着通信技术的发展,电子邮件已经成为一种较为便利且安全性较高的通信方式。
正是由于电子邮件传输的便利性,网络上的许多人常常滥用电子邮件的这种便利,产生大量的安全邮件,给人们的生活和工作中使用电子邮件带来不便。为了避免这种安全邮件的大量产生,可通过分析邮件正文中的内容来判断是否为此类邮件。因此,对邮件正文中可用于判断是否为安全邮件的信息的提取尤其重要,在现有技术中,通常基于正则表达式提取邮件正文中的url(uniformresourcelocator,统一资源定位符)和ip(internetprotocol,互联网协议)地址信息,但是,基于正则表达式提取的效率不高,且提取到的不一定是有效的信息。
因此,现有技术中从邮件正文中提取url和ip地址的有效性和效率较低。
技术实现要素:
本申请实施例的目的在于提供一种信息提取的方法及装置、可读存储介质,用以提高邮件正文内容中信息提取的有效性和效率。
第一方面,本申请实施例提供一种信息提取的方法,包括:获取邮件正文内容;对所述邮件正文内容进行模拟点击操作;若基于所述模拟点击操作产生http请求时,获取所述http请求中的url、ip地址以及基于所述http请求返回的状态码;根据所述状态码判断所述url和所述ip地址是否有效;当所述url和所述ip地址有效时,存储所述url和所述ip地址。
在本申请实施例中,在获取到邮件正文内容后,对邮件正文内容进行模拟点击操作,若基于模拟点击操作产生http(hypertexttransferprotocol,超文本传输协议)请求,获取http请求中的url、ip地址以及基于http请求返回的状态码,再根据状态码判断url和ip地址是否有效,当判断为有效时,才存储获取到的url和ip地址。与现有技术相比,一方面,不再采用正则表达式,而是通过模拟点击操作,当产生http请求时,获取对应的url和ip地址,提高了信息提取的效率;另一方面,当基于产生的http请求获取到url和ip地址以后,还会根据状态码判断其有效性,当确定为有效时,才存储获取到的url和ip地址,提高了信息提取的有效性。
作为一种可能的实现方式,获取邮件正文内容,包括:基于采集到的网络流量获取邮件数据包;对所述邮件数据包进行解析,得到所述邮件正文内容。
在本申请实施例中,通过采集到的网络流量自动获取邮件数据包,再对邮件数据包进行解析,便能得到邮件正文内容,实现了自动获取邮件,进而可以快速的获取到邮件正文内容。
作为一种可能的实现方式,对所述邮件数据包进行解析,得到所述邮件正文内容,包括:根据所述邮件数据包的传输协议确定所述邮件数据包的协议规则;根据所述协议规则对所述邮件数据包进行解析,得到所述邮件正文内容。
在本申请实施例中,在对邮件数据包进行解析时,可根据其协议先确定协议规则,然后按照协议规则对数据包进行解析,提高邮件解析的准确性和效率。
作为一种可能的实现方式,在基于采集到的网络流量获取邮件数据包之前,所述方法还包括:获取预先设置的旁路监听网络设备采集的所述网络流量。
在本申请实施例中,通过旁路监听网络设备采集网络流量,在不影响原有通信线路的前提下,对所有通过的网络流量实现全量捕获。
作为一种可能的实现方式,对所述邮件正文内容进行模拟点击操作,包括:通过模拟的浏览器对所述邮件正文内容依次进行点击操作。
在本申请实施例中,通过模拟浏览器进行点击操作,若是邮件正文内容中有与url和ip地址相关的内容,能够快速的产生http请求,便于进行后续的判断操作,进而实现准确的获取url和ip地址。
作为一种可能的实现方式,对所述邮件正文内容进行模拟点击操作,包括:确定所述邮件正文内容中近似的url和ip地址;对所述近似的url和ip地址进行模拟点击操作。
在本申请实施例中,还可以先从邮件正文内容中先找到近似的url和ip地址,然后直接基于近似的url和ip地址进行模拟点击,能够提高信息提取的效率。
作为一种可能的实现方式,根据所述url和所述ip地址判断所述邮件正文内容对应的邮件是否为安全邮件。
在本申请实施例中,可以根据存储的url和ip地址判断对应的邮件是否为安全邮件,提高判断安全邮件的准确性。
第二方面,本申请实施例提供一种信息提取的装置,所述装置包括用于实现第一方面以及第一方面任意一种可能的实现方式中所述的方法的功能模块。
第三方面,本申请实施例提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被计算机运行时执行如第一方面以及第一方面任意一种可能的实现方式中所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的信息提取的方法的流程图;
图2为本申请实施例提供的信息提取的装置的功能结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在介绍本申请实施例的技术方案之前,先对本申请涉及到的相关术语进行介绍。
url:在网络上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫url(uniformresourcelocator,统一资源定位符),它是网络的统一资源定位标志,就是指网络地址。
ip地址:ip是internetprotocol(网际互连协议)的缩写,是tcp(transmissioncontrolprotocol,传输控制)/ip体系中的网络层协议。ip地址是用来识别网络上的设备,因此,ip地址是由网络地址与主机地址两部分所组成。网络地址可用来识别设备所在的网络,网络地址位于ip地址的前段。当组织或企业申请ip地址时,所获得的并非ip地址,而是取得一个唯一的、能够识别的网络地址。同一网络上的所有设备,都有相同的网络地址。ip路由的功能是根据ip地址中的网络地址,决定要将ip信息包送至所指明的那个网络。主机地址位于ip地址的后段,可用来识别网络上设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。
通过对邮件正文中的url和ip地址信息进行提取,可以用于检测邮件是否为安全邮件,url可用于检测链接式的不安全邮件,ip地址可以用于检测非链接式的不安全邮件。
此外,本申请实施例所提供的信息提取的方法可应用于监控主机或者监控设备上,在这种应用场景下,由监控主机或者监控设备对电子邮件的安全性进行监控和检测。当然,也可以应用于电子邮件的接收设备以及发送设备,如电脑端、手机端等电子设备,在这种应用场景下,由接收或者发送邮件的设备对电子邮件的安全性进行检测。总之,该信息提取的方法可以应用于各种需要对电子邮件进行安全检测或者监控的应用场景,在此不作限定。
接下来请参照图1,图1为本申请实施例提供的信息提取的方法的流程图,如图1所示,该方法包括:
步骤101:获取邮件正文内容。
步骤102:对邮件正文内容进行模拟点击操作。
步骤103:若基于模拟点击操作产生http请求时,获取http请求中的url、ip地址以及基于http请求返回的状态码。
步骤104:根据状态码判断url和ip地址是否有效。
步骤105:当url和ip地址有效时,存储url和ip地址。
通过步骤101-步骤105,与现有技术相比,一方面,不再采用正则表达式,而是通过模拟点击操作,当产生http请求时,获取对应的url和ip地址,提高了信息提取的效率;另一方面,当基于产生的http请求获取到url和ip地址以后,还会根据状态码判断其有效性,当确定为有效时,才存储获取到的url和ip地址,提高了信息提取的有效性。
接下来对步骤101-步骤105的实施流程作介绍。
对于步骤101,一种可选的实施方式:基于采集到的网络流量获取邮件数据包;对邮件数据包进行解析,得到邮件正文内容。
其中,对于网络流量的采集,一种可选的实施方式:通过预先设置的旁路监听网络设备采集网络流量。旁路监听网络设备是旁路监控模式中进行监控的网络设备,“旁路监控模式”一般是指通过交换机等网络设备的“端口镜像”功能来实现监控,在此模式下,监控设备只需要连接到交换机的指定镜像端口,所以可称之为“旁路监控”。因此,将主机或者设备连接到交换机等网络设备的镜像端口,便能够获取到网络设备采集到的网络流量,这些网络流量中包含有邮件数据包。且旁路监听模式不会影响现有的网络结构,也就是在不影响原有通信线路的情况下,对所有通过的流量进行全量捕获。
除了旁路监听模式,还可以采用串联监控模式,串联监控模式一般是通过网关、网桥或者代理服务器的模式来进行监控,由于监控设备作为网关或者网桥串联在网络中,所以称之为“串联监控模式”。若采用串联监控模式,需要对监控设备进行配置,将其串联在整个网络中,便能实现网络流量的采集。采用串联监控模式不需要硬件设备的支持,利用windows自带的“网关”、“网桥”功能即可实现。
上述两种模式,可根据实际需求进行选择,例如当硬件设备(交换机等网络设备)的条件允许的情况下,可采用旁路监听模式;当硬件设备的条件不允许时,可采用串联监控模式。
进一步的,在采集到网络流量后,基于采集到的网络流量进行邮件解析。作为一种实施方式,对邮件数据包进行解析,得到邮件正文内容,包括:根据邮件数据包的传输协议确定邮件数据包的协议规则;根据协议规则对邮件数据包进行解析,得到所述邮件正文内容。
电子邮件的传送主要包括发送、传输和接收三个阶段。其中,发送阶段是用户通过在邮件客户端将编辑好的电子邮件发送到邮件发送服务器;传输阶段是根据邮件发送服务器接收到的电子邮件的目的地址,依照规定的传输协议将电子邮件发送到目的地址对应的邮件接收服务器,且该阶段中,邮件发送服务器和邮件接收服务器之间还可能包括一个或多个中转服务器;接收阶段是邮件接收服务器将目的地址为本域的电子邮件接收过来,并提供给用户。其中,电子邮件的传输协议有多种,如http(hypertexttransferprotocol,超文本传输协议)、smtp(simplemailtransferprotocol,简单邮件传输协议)、pop3(postofficeprotocol-version3,邮局协议版本3)、imap(internetmailaccessprotocol,交互邮件访问协议)等,不同的传输协议对应有不同的协议规则,该协议规则是用于将邮件正文内容打包为可传输的数据,同样的该协议规则也可以将邮件内容进行还原,因此,在知道邮件数据的传输协议后,便可以确定对应的协议规则,再按照规则进行解析。对于邮件数据包,根据其数据包格式例如数据包头、名称等便可直接确定其对应的传输协议。
对于根据规则解析邮件正文,以传输协议为http协议为例,根据其对应的规则,通过解析还原所有与邮件相关的http通信会话文件,提取邮件正文内容。通过分析数据包获取关键字特征,每种邮件分散到各个数据包中,需要通过关键字列表来区分每一种邮件类型,这也是后面还原组合的基础:比如:在每一次http会话中就会还原出一部分文件内容,包括:邮件头、正文、附件等信息,然后通过里面的cookie、五元组(源/目的ip,源/目的端口,传输协议)、关键字来还原出一封完整的邮件内容。
对于smtp、pop3、imap协议:可根据协议特征直接还原邮件正文内容。邮件协议是属于应用层协议,在还原出来的应用层数据的首部包括:received、message-id、from、data、reply-to等字段。这些邮件协议是都可以通过程序去解析判断还原出来的。
在本申请实施例中,在对邮件数据包进行解析时,可根据其协议先确定协议规则,然后按照协议规则对数据包进行解析,提高邮件解析的准确性和效率。
进一步的,在步骤101中获取到邮件正文内容后,可以执行步骤102,即对邮件正文内容进行模拟点击操作。步骤102的一种可选的实施方式:通过模拟的浏览器对邮件正文内容依次进行点击操作。此处的模拟的浏览器可以通过python程序实现,在模拟出浏览器后,浏览器依次对邮件正文内容进行点击,当点击到的内容能够触发网页请求时,说明该内容可能与url或者ip地址有关。其中,邮件正文内容有多种,例如文本、数字、链接等,对于链接,如果是正确的链接,那么是肯定能触发网页请求的;还存在一种超链接,即在内容上是以文本形式体现,但点击依然能够触发其链接到的链接地址,触发网页请求。因此,可以依次的进行点击操作。
当然,在实际情况中,电子邮件中采用超链接的形式的情况不多,如果想要提高提取的效率,可以先找到邮件正文内容中的近似url和ip地址,然后基于该近似的url和ip地址进行模拟点击操作,可以加快效率。因此,作为一种可选的实施方式,对邮件正文内容进行模拟点击操作,包括:确定邮件正文内容中近似的url和ip地址;对近似的url和ip地址进行模拟点击操作。
其中,确定近似的url和ip地址可以通过遍历邮件正文实现,从文本起始位置开始,逐字逐行进行遍历,遍历规则包括html(hypertextmarkuplanguage,超级文本标记语言)标签,url正则匹配,ip地址匹配,当查找到对应匹配规则的文本时,可确定为近似的url和ip地址。需要注意的是,这里的近似的url和ip地址并非url和ip地址本身,而是代表与url和ip地址可能有关的信息。
在本申请实施例中,通过模拟浏览器进行点击操作,若是邮件正文内容中有与url和ip地址相关的内容,能够快速的产生http请求,便于进行后续的判断操作,进而实现准确的获取url和ip地址。还可以先从邮件正文内容中先找到近似的url和ip地址,然后直接基于近似的url和ip地址进行模拟点击,能够提高信息提取的效率。
在步骤102中,不管是基于全部的邮件正文内容进行点击操作,还是基于近似的url和ip地址进行点击操作,若当前的模拟点击操作没有产生http请求时,直接对下一个对象进行点击操作,或者执行步骤103,即若基于模拟点击操作产生http请求时,获取http请求中的url、ip地址以及基于http请求返回的状态码。
在步骤103中,当产生http请求时,说明访问到了有效的地址链接,此时直接获取产生的http请求中的url和ip地址,这里获取到的url和ip地址为真实的信息。可以理解,若在邮件正文内容中的某个链接可能是一个经过处理的假链接,经过该假链接产生http请求,此时产生的http请求才是假链接对应的真实链接,那么该真实链接中对应的url和ip地址才是真实的信息。或者在邮件正文内容中采用的是超链接形式,只有产生http请求后,所对应体现的才是真实的信息。进一步的,获取产生的http请求中的头部信息,包括:url和ip地址等信息。此外,除了此类信息,基于http请求还会返回一个状态码,该状态码可以用于判断url和ip地址等信息的有效性。
进一步的,在步骤103后,执行步骤104,根据状态码判断url和ip地址是否有效。作为一种可选的实施方式,当状态码为1**、2**或3**时,表示url和ip地址存活有效,该url和ip地址为有效。若是其他状态码就代表url和ip地址无效,不作进一步处理。
若判断结果是url和ip地址为有效,可以执行步骤105:当url和ip地址有效时,存储url和ip地址。
在步骤105中存储的url和ip地址可以有多种用途,一种可选的实施方式,根据url和ip地址判断邮件正文内容对应的邮件是否为安全邮件。在这种实施方式中,相当于直接根据提取的信息对邮件的安全性进行判断。判断的方式可以是例如:对于ip地址,可以判断获取到的ip地址是否为黑名单中限制的ip地址,是则确定电子邮件为不安全邮件,结束对邮件的处理,直接给出为不安全邮件的提示。其中,黑名单中限制的ip地址为预先设置的ip地址,可认定这些ip地址的邮件发送服务器发送来的电子邮件均为垃圾邮件。同样,对于url,也可以判断获取到的url是否为敏感url,是则确定电子邮件为不安全邮件,结束对邮件的处理,直接给出为不安全邮件的提示。其中,敏感url为预先设置的敏感url,可认定包含有这些敏感url的电子邮件均为垃圾邮件。
此外,除了在步骤105存储获取到的url和ip地址后,再判断邮件正文内容对应的邮件是否为安全邮件外,还可以在判断获取到的url和ip地址为有效后,就根据url和ip地址判断邮件正文内容对应的邮件是否为安全邮件,即根据url和ip地址判断邮件正文内容对应的邮件是否为安全邮件该步骤可以在步骤105之后执行,也可以在步骤104后就执行。其中涉及到的判断的具体方式与前述实施例中的判断方式相同,在此不再重复介绍。
作为另一种可选的实施方式,在步骤105中除了存储获取到的url和ip地址,还将邮件正文内容对应的邮件也一并存储。将有效提取的url和ip地址与关联的邮件存入数据库中,存入数据库可以形成一个邮件检测url和ip地址库及存档,用于后续的界面展示或其它后续功能模块的应用:如恶意url检测等。
结合获取到的url和ip地址的应用来看,在实际应用中,对于每次获取到的url和ip地址,一方面是可以直接给出当前邮件的一个判断结果;另一方面是可以进行存档,用于后续的批量数据的分析,可以借此完善恶意url和ip地址库,进而能够逐渐提高邮件检测的准确率,使用户使用电子邮件进行通信时,安全性更高。
基于同一发明构思,请参照图2,本申请实施例中还提供一种信息提取的装置200,包括:获取模块201、模拟模块202、判断模块203以及存储模块204。
获取模块201,用于获取邮件正文内容。模拟模块202,用于对所述邮件正文内容进行模拟点击操作。获取模块201还用于:若基于所述模拟点击操作产生http请求时,获取所述http请求中的url、ip地址以及基于所述http请求返回的状态码。判断模块203,用于根据所述状态码判断所述url和所述ip地址是否有效。存储模块204,用于当所述url和所述ip地址有效时,存储所述url和所述ip地址。
可选的,获取模块201还用于:基于采集到的网络流量获取邮件数据包;对所述邮件数据包进行解析,得到所述邮件正文内容。
可选的,获取模块201还用于:根据所述邮件数据包的传输协议确定所述邮件数据包的协议规则;根据所述协议规则对所述邮件数据包进行解析,得到所述邮件正文内容。
可选的,获取模块201还用于:获取预先设置的旁路监听网络设备采集的所述网络流量。
可选的,模拟模块202还用于:通过模拟的浏览器对所述邮件正文内容依次进行点击操作。
可选的,模拟模块202还用于:确定所述邮件正文内容中近似的url和ip地址;对所述近似的url和ip地址进行模拟点击操作。
可选的,判断模块203还用于:根据所述url和所述ip地址判断所述邮件正文内容对应的邮件是否为安全邮件。
前述实施例中的信息提取的方法中的各实施方式和具体实例同样适用于图2的装置,通过前述对信息提取的方法的详细描述,本领域技术人员可以清楚的知道图2中的信息提取的装置的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本申请实施例还提供一种设备,包括:存储器和处理器,所述存储器和所述处理器连接,本申请实施例所提供的信息提取的方法可以应用于该设备。
存储器可以存储各种软件程序以及模块,如本申请实施例提供的信息提取的方法及装置对应的程序指令/模块。处理器通过运行存储在存储器中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本申请实施例中的信息提取的方法。
存储器可以包括但不限于ram(randomaccessmemory,随机存取存储器),rom(readonlymemory,只读存储器),prom(programmableread-onlymemory,可编程只读存储器),eprom(erasableprogrammableread-onlymemory,可擦除只读存储器),eeprom(electricerasableprogrammableread-onlymemory,电可擦除只读存储器)等。
处理器可以是一种集成电路芯片,具有信号处理能力。可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
基于同一发明构思,本申请实施例还提供了一种可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时执行上述任一实施方式的信息提取的方法中的步骤。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。