异常邮件检测方法、装置、系统与计算机可读存储介质与流程

文档序号:31122770发布日期:2022-08-13 02:00阅读:44来源:国知局

1.本发明涉及计算机技术领域,尤其涉及异常邮件检测方法、装置、系统与计算机可读存储介质。


背景技术:

2.网络异常邮件攻击通常指攻击者通过向用户发送异常邮件来欺骗用户打开邮件中的链接,从而跳转至恶意网站以此骗取用户凭证或者自动下载恶意软件,或者诱使用户打开具有利用漏洞攻击的邮件附件的行为。
3.现有的网络异常邮件检测方法大多是逐条对邮件文本内容、邮件中的url和邮件附件中提取静态特征进行识别检测。从邮件中提取的部分静态特征信息通常是攻击者伪造的,基于伪造的静态特征的检测会导致检测的准确率较低。
4.因此,如何提高检测异常邮件的准确率,是急需解决的问题。


技术实现要素:

5.本发明的主要目的在于提出一种异常邮件检测方法、装置、系统与计算机可读存储介质,旨在解决如何提高检测异常邮件的准确率的问题。
6.为实现上述目的,本发明提供一种异常邮件检测方法,所述异常邮件检测方法包括如下步骤:获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据;根据所述邮件协议数据获取对应的邮件内容数据;根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据;根据所述网页内容数据确定脚本代码数据;将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码数据对应的邮件是否为异常邮件。
7.可选地,根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据的步骤包括:获取所述邮件内容数据中的第一资源定位符,并将所述第一资源定位符存储在存储系统中;获取所述超文本传输协议数据中的第二资源定位符,并将所述第二资源定位符与所述存储系统中所有第一资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第一资源定位符,则根据所述第二资源定位符获取对应的网页内容数据。
8.可选地,根据所述第二资源定位符获取对应的网页内容数据的步骤包括:根据所述第二资源定位符确定所述超文本传输协议数据中的第一标识请求响应字段;
根据所述标识请求响应字段确定所述超文本传输协议数据中的第一网页存储路径字段;根据所述第一网页存储路径字段获取对应的网页内容数据。
9.可选地,脚本代码数据包括脚本代码段和脚本代码文件,所述根据所述网页内容数据确定脚本代码数据的步骤包括:获取所述网页内容数据中预设类型的标签数据,并识别所述标签数据中是否存在预设字段;若所述标签数据中不存在预设字段,则根据所述标签数据确定所述脚本代码段;若所述标签数据中存在预设字段,则获取所述预设字段的第三资源定位符,并将所述第三资源定位符存储在存储系统中;将所述第二资源定位符与所述存储系统中所有第三资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第三资源定位符,则根据所述第二资源定位符获取所述脚本代码文件。
10.可选地,根据所述第二资源定位符获取所述脚本代码文件的步骤包括:根据所述第二资源定位符确定所述超文本传输协议数据中的第二标识请求响应字段;根据所述第二标识请求响应字段确定所述超文本传输协议数据中的第二网页存储路径字段;根据所述第二网页存储路径字段获取所述脚本代码文件。
11.可选地,将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码段对应的邮件是否为异常邮件的步骤包括:将所述脚本代码段输入所述检测模型,若通过所述检测模型确定所述脚本代码段对应的邮件为异常邮件,则发出告警信息;若所述通过所述检测模型确定所述脚本代码段对应的邮件不为异常邮件,则将所述脚本代码文件输入所述检测模型;若通过所述检测模型确定所述脚本代码文件对应的邮件为异常邮件,则发出告警信息。
12.可选地,获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据的步骤之前,包括:获取无标签历史脚本代码数据和有标签历史脚本代码数据;对所述无标签历史脚本代码数据进行预设操作,得到第一训练数据集;对所述有标签历史脚本代码数据进行预设操作,得到第二训练数据集和测试数据集;根据所述第一训练数据集和所述第二训练数据集确定令牌词向量集合;根据所述令牌词向量集合和所述第二训练数据集进行模型训练,得到深度学习模型;根据所述测试数据集对所述深度学习模型进行模型测试,以得到所述检测模型。
13.此外,为实现上述目的,本发明还提供一种异常邮件检测装置,所述异常邮件检测装置包括:
第一获取模块,用于获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据;第二获取模块,用于根据所述邮件协议数据获取对应的邮件内容数据;第三获取模块,用于根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据;确定模块,用于根据所述网页内容数据确定脚本代码数据;检测模块,用于将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码数据对应的邮件是否为异常邮件。
14.进一步地,所述第二获取模块还用于:获取所述邮件内容数据中的第一资源定位符,并将所述第一资源定位符存储在存储系统中;获取所述超文本传输协议数据中的第二资源定位符,并将所述第二资源定位符与所述存储系统中所有第一资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第一资源定位符,则根据所述第二资源定位符获取对应的网页内容数据。
15.进一步地,所述第二获取模块还用于:根据所述第二资源定位符确定所述超文本传输协议数据中的第一标识请求响应字段;根据所述标识请求响应字段确定所述超文本传输协议数据中的第一网页存储路径字段;根据所述第一网页存储路径字段获取对应的网页内容数据。
16.进一步地,所述确定模块还用于:获取所述网页内容数据中预设类型的标签数据,并识别所述标签数据中是否存在预设字段;若所述标签数据中不存在预设字段,则根据所述标签数据确定所述脚本代码段;若所述标签数据中存在预设字段,则获取所述预设字段的第三资源定位符,并将所述第三资源定位符存储在存储系统中;将所述第二资源定位符与所述存储系统中所有第三资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第三资源定位符,则根据所述第二资源定位符获取所述脚本代码文件。
17.进一步地,所述确定模块还用于:根据所述第二资源定位符确定所述超文本传输协议数据中的第二标识请求响应字段;根据所述第二标识请求响应字段确定所述超文本传输协议数据中的第二网页存储路径字段;根据所述第二网页存储路径字段获取所述脚本代码文件。
18.进一步地,所述检测模块还用于:将所述脚本代码段输入所述检测模型,若通过所述检测模型确定所述脚本代码段对应的邮件为异常邮件,则发出告警信息;
若所述通过所述检测模型确定所述脚本代码段对应的邮件不为异常邮件,则将所述脚本代码文件输入所述检测模型;若通过所述检测模型确定所述脚本代码文件对应的邮件为异常邮件,则发出告警信息。
19.进一步地,所述获取模块还包括训练模块,所述训练模块用于:获取无标签历史脚本代码数据和有标签历史脚本代码数据;对所述无标签历史脚本代码数据进行预设操作,得到第一训练数据集;对所述有标签历史脚本代码数据进行预设操作,得到第二训练数据集和测试数据集;根据所述第一训练数据集和所述第二训练数据集确定令牌词向量集合;根据所述令牌词向量集合和所述第二训练数据集进行模型训练,得到深度学习模型;根据所述测试数据集对所述深度学习模型进行模型测试,以得到所述检测模型。
20.此外,为实现上述目的,本发明还提供一种异常邮件检测系统,所述异常邮件检测系统包括:存储器、处理器及储存在所述存储器上并可在所述处理器上运行的异常邮件检测程序,所述异常邮件检测程序被所述处理器执行时实现如上所述的异常邮件检测方法的步骤。
21.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述可读储存介质为计算机可读存储介质,所述可读储存介质上储存有异常邮件检测程序,所述异常邮件检测程序被处理器执行时实现如上所述的异常邮件检测方法的步骤。
22.本发明提出的异常邮件检测方法,获取网络流量数据,并根据网络流量数据确定邮件协议数据和超文本传输协议数据;根据邮件协议数据获取对应的邮件内容数据;根据邮件内容数据和超文本传输协议数据获取对应的网页内容数据;根据网页内容数据确定脚本代码数据;将脚本代码数据输入预先创建的检测模型中,通过检测模型确定脚本代码数据对应的邮件是否为异常邮件;本发明根据邮件协议数据和超文本传输协议数据确定脚本代码数据,并通过检测模型对脚本代码数据进行检测,以确定脚本代码数据对应的邮件是否为异常邮件,提高了检测异常邮件的准确率。
附图说明
23.图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;图2为本发明异常邮件检测方法第一实施例的流程示意图;图3为本发明异常邮件检测方法第二实施例的流程示意图;图4为本发明异常邮件检测方法第三实施例的流程示意图;图5为本发明获取并检测脚本代码段的流程示意图;图6为本发明获取并检测脚本代码文件的流程示意图;图7为本发明检测模型训练流程示意图;图8为本发明检测模型的模型结构示意图。
24.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
25.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
26.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
27.本发明实施例设备可以是pc机或服务器设备。
28.如图1所示,该设备可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的储存装置。
29.本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
30.如图1所示,作为一种计算机储存介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及异常邮件检测程序。
31.其中,操作系统是管理和控制便携储存设备与软件资源的程序,支持网络通信模块、用户接口模块、异常邮件检测程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1002;用户接口模块用于管理和控制用户接口1003。
32.在图1所示的储存设备中,所述储存设备通过处理器1001调用存储器1005中储存的异常邮件检测程序,并执行下述异常邮件检测方法各个实施例中的操作。
33.基于上述硬件结构,提出本发明异常邮件检测方法实施例。
34.参照图2,图2为本发明异常邮件检测方法第一实施例的流程示意图,所述方法包括:步骤s10,获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据;步骤s20,根据所述邮件协议数据获取对应的邮件内容数据;步骤s30,根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据;步骤s40,根据所述网页内容数据确定脚本代码数据;步骤s50,将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码数据对应的邮件是否为异常邮件。
35.本实施例异常邮件检测方法运用于异常邮件检测系统中,该异常邮件检测系统可应用在pc设备、移动终端和其他智能终端上;为描述方便,以异常邮件检测系统为例进行描述,异常邮件检测系统在用户上网的过程中,通过流量探针获取网络流量数据,网络流量数据包括多种网络协议数据,并将网络数据进行储存,在接收到用户的检测指令或根据预设周期,在储存的网络流量数据中获取邮件协议数据和超文本传输协议数据;异常邮件检测系统获取邮件协议数据中的邮件存储路径字段,根据邮件存储路径字段获取对应的邮件内容数据;异常邮件检测系统获取邮件内容数据中的第一资源定位符,并将第一资源定位符存储在存储系统中;异常邮件检测系统获取超文本传输协议数据中的第二资源定位符,将
第二资源定位符与存储系统中所有第一资源定位符进行对比,若确定存储系统中存在有与第二资源定位符相同的第一资源定位符,则根据第二资源定位符获取对应的网页内容数据;异常邮件检测系统获取网页内容数据中预设类型的标签数据,并识别标签数据中是否存在预设字段,若标签数据中不存在预设字段,则根据标签数据确定脚本代码段;若标签数据中存在预设字段,则获取预设字段的第三资源定位符,并将第三资源定位符存储在存储系统中;异常邮件检测系统将第二资源定位符与存储系统中所有第三资源定位符进行对比;若确定存储系统中存在有与第二资源定位符相同的第三资源定位符,则根据第二资源定位符获取脚本代码文件;再将脚本代码段和脚本代码文件输入预先创建的检测模型中,通过检测模型确定脚本代码段和脚本代码文件对应的邮件是否为异常邮件。需要说明的是,邮件协议数据包括但不限于:源ip地址、源端口号、目的ip地址、目的端口号、协议信息、主机信息和uri(统一资源标志符(uniform resource identifier,缩写:uri,提供了一种识别资源的方法)等;超文本传输协议数据包括但不限于:源ip地址、源端口号、目的ip地址、目的端口号、协议信息、主机信息、uri和标识请求响应字段等;邮件内容数据即为邮件中包含的数据,网页内容数据即为网页中包含的数据,一般包括http响应数据、文件数据等;第一资源定位符、第二资源定位符、第三资源定位符都为url(uniform resource locator,缩写:url),是对资源的引用和访问该资源的方法,俗称网址,就是浏览器地址栏里面的;脚本代码数据一般为javascript脚本语言,攻击者将恶意的脚本代码数据注入网页以达到植入木马、主页篡改、网站劫持、传播病毒、网络钓鱼和获取秘密信息的目的。
36.本实施例的异常邮件检测方法,获取网络流量数据,并根据网络流量数据确定邮件协议数据和超文本传输协议数据;根据邮件协议数据获取对应的邮件内容数据;根据邮件内容数据和超文本传输协议数据获取对应的网页内容数据;根据网页内容数据确定脚本代码数据;将脚本代码数据输入预先创建的检测模型中,通过检测模型确定脚本代码数据对应的邮件是否为异常邮件;本发明根据邮件协议数据和超文本传输协议数据确定脚本代码数据,并通过检测模型对脚本代码数据进行检测,以确定脚本代码数据对应的邮件是否为异常邮件,提高了检测异常邮件的准确率。
37.以下将对各个步骤进行详细说明:步骤s10,获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据;在本实施例中,异常邮件检测系统在用户上网的过程中,通过流量探针获取网络数据,网络数据包括多种网络协议数据,并将网络数据进行储存,将邮件协议数据和超文本传输协议数据转换为netflow或sflow等格式的数据流储存到第一储存系统中,同时将邮件数据中的邮件内容数据和网页数据中的网页内容数据储存到第二储存系统中。需要说明的是,第一储存系统一般为kafka(kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据);第二储存系统一般为fastdfs(fastdfs是一个开源的轻量级分布式文件系统),进一步地,还可以使用其它数据库或文件存储系统代替,如minio、hbase、mongodb、mysql、mariadb、hdfs、fastdfs、gfs、lustre等。
38.步骤s20,根据所述邮件协议数据获取对应的邮件内容数据;步骤s30,根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据;
在本实施例中,在接收到用户的检测指令或根据预设周期,异常邮件检测系统通过sparkstreaming流式处理框架(spark平台),在第一储存系统中获取邮件协议数据,异常邮件检测系统在获取到邮件协议数据后,提取邮件协议数据中的邮件存储路径字段,并根据邮件存储路径字段获取在第二储存系统中获取对应的邮件内容数据;异常邮件检测系统在获得邮件内容数据后,通过spark平台,根据邮件内容数据和超文本传输协议数据在第二储存系统中获取对应的网页内容数据。需要说明的是,sparkstreaming流式处理框架(spark平台)是专为大规模数据处理而设计的快速通用的计算引擎。
39.在一可行的实施例中,假设预设周期为5分钟,异常邮件检测系统通过sparkstreaming流式处理框架(spark平台),每5分钟从第一储存系统中根据application_id(网络数据中的协议类型字段)获取smtp、pop3、imap 3种邮件协议的邮件协议数据,和获取http协议的超文本传输协议数据,并通过spark平台,对每一批邮件协议数据和超文本传输协议数据进行并行处理,转换成分布式数据格式;异常邮件检测系统在转换成分布式数据格式的邮件协议数据中提取的邮件存储路径字段(dfs_path字段),根据邮件存储路径字段在第二储存系统中获取对应的邮件内容数据,并根据邮件内容数据和转换成分布式数据格式的超文本传输协议数据在第二储存系统中获取对应的网页内容数据,进而提升获取网页内容数据的效率,有助于提高异常邮件的检测效率。
40.具体地,根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据的步骤包括:步骤a,获取所述邮件内容数据中的第一资源定位符,并将所述第一资源定位符存储在存储系统中;在该步骤中,异常邮件检测系统在获取到邮件内容数据后,获取邮件内容数据中的第一资源定位符,并将第一资源定位符存储在存储系统中;如:异常邮件检测系统基于spark平台,解析邮件内容数据,获取邮件内容数据中的第一资源定位符(url),具体的,邮件内容数据包括html格式和纯文本格式两种格式,针对html格式,异常邮件检测系统基于spark平台解析邮件内容数据中的a标签href字段得到对应的第一资源定位符,针对纯文本格式,异常邮件检测系统基于spark平台通过正则表达式解析邮件内容数据得到对应的第一资源定位符;异常邮件检测系统以第一资源定位符(url)为键,以ipv4_src_addr(流五元组源ip地址)、l4_src_port(流五元组源端口)、ipv4_dst_addr(流五元组目的ip地址)、l4_dst_port(流五元组目端口)、timestamp(数据流开始时间)为值的字典,存入到存储系统的mail_url_info表中;其中,存储系统可为redis、minio、hbase、mongodb、mysql、mariadb、hdfs、fastdfs、gfs、lustre等。
41.步骤b,获取所述超文本传输协议数据中的第二资源定位符,将所述第二资源定位符与所述存储系统中所有第一资源定位符进行对比;步骤c,若确定所述存储系统中存在有与所述第二资源定位符相同的第一资源定位符,则根据所述第二资源定位符获取对应的网页内容数据。
42.在步骤b至步骤c中,如图5所示,异常邮件检测系统基于spark平台从第一储存系统中获取该邮件对应的超文本传输协议数据中的netflow格式的application_host字段(主机字段)和application_desc字段(统一资源标志符,uri),根据application_host字段和application_desc字段得到第二资源定位符(url(http请求数据)),异常邮件检测系统
将第二资源定位符与存储系统中的mail_url_info表中的所有第一资源定位符进行对比,若确定mail_url_info表中存在有与第二资源定位符相同的第一资源定位符,则根据第二资源定位符确定超文本传输协议数据中的第一标识请求响应字段(group_id),并以group_id为键,application_host、application_desc、timestamp为值保存到存储系统的html_group_id_info表中,再根据html_group_id_info表获取对应的网页内容数据。
43.进一步地,根据所述第二资源定位符获取对应的网页内容数据的步骤包括:步骤c1,根据所述第二资源定位符确定所述超文本传输协议数据中的第一标识请求响应字段;步骤c2,根据所述第一标识请求响应字段确定所述超文本传输协议数据中的第一网页存储路径字段;步骤c3,根据所述网页存储路径字段获取对应的网页内容数据。
44.在步骤c1至步骤c3中,如图5所示,异常邮件检测系统根据第二资源定位符确定超文本传输协议数据中的第一标识请求响应字段,并将第一标识请求响应字段保存到存储系统的html_group_id_info表中后,异常邮件检测系统并基于spark平台在第一储存系统中获取该邮件对应的超文本传输协议数据中的netflow格式的第一标识请求响应字段(group_id)和第一网页存储路径字段(dfs_path),并检测存储系统中html_group_id_info表中是否存在对应的第一标识请求响应字段(group_id),若存在,则根据第一标识请求响应字段确定超文本传输协议数据中的第一网页存储路径字段,并根据第一网页存储路径字段在第二储存系统fastdfs中获取对应的网页内容数据,此网页内容数据为http响应数据,即html页面(网页中包含的内容)。
45.进一步地,异常邮件检测系统中能够设置定时器,定期检查存储系统中mail_url_info和html_group_id_info两个表中存储的数据,比较每条数据中存储时间戳(timestamp)的值与当前时间的差值,如果大于设定的阈值,则将该条数据删除。
46.步骤s40,根据所述网页内容数据确定脚本代码数据;在本实施例中,异常邮件检测系统在获取到网页内容数据后,根据网页内容数据确定脚本代码数据,确定脚本代码数据,其中,脚本代码数据包括脚本代码段和脚本代码文件。
47.步骤s50,将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码数据对应的邮件是否为异常邮件。
48.在本实施例中,异常邮件检测系统确定脚本代码数据后,将脚本代码数据输入预先创建的检测模型中,通过检测模型确定脚本代码数据对应的邮件是否为异常邮件。具体地,异常邮件检测系统在确定脚本代码数据时,可先确定脚本代码数据中的脚本代码段,先将脚本代码段输入检测模型中,通过检测模型确定脚本代码段对应的邮件是否为异常邮件,若检测模型确定脚本代码段对应的邮件不为异常邮件,则异常邮件检测系统再确定脚本代码数据中的脚本代码文件,将脚本代码段输入检测模型中,通过检测模型确定脚本代码文件对应的邮件是否为异常邮件,通过对对应邮件的脚本代码段和脚本代码文件分别进行检测,提高异常邮件检测的准确率。
49.具体地,将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码段对应的邮件是否为异常邮件的步骤包括:
步骤d,将所述脚本代码段输入所述检测模型,若通过所述检测模型确定所述脚本代码段对应的邮件为异常邮件,则发出告警信息;在该步骤中,异常邮件确定脚本代码段后,在检测模型对脚本代码段进行检测之前,异常邮件检测系统对脚本代码段进行预处理,为了更好地处理脚本代码段中的随机数值、ip地址、随机域名、日期、版本号等数值数据,对这些数值进行规范化处理,用

*’号取代数字,以消除相同(或几乎相同)的脚本代码段对后续处理的影响,从而提高检测的准确性;异常邮件检测系统将经过预处理的脚本代码段的前n个字符转换为one-hot编码格式,得到脚本代码段的字符级表示;异常邮件检测系统对经过预处理的脚本代码段使用多个特殊字符作为分隔符,将脚本代码段划分为token,其中只保留长度至少为2的token,因为单个字符本身没有意义,然后将token转换为小写,根据预训练模型得到脚本代码段的token级表示;异常邮件检测系统将预处理的脚本代码段转换为字符级表示和token级表示后,将字符级表示和token级表示输入检测模型,检测模型将字符级表示和token级表示分别输入卷积层、池化层和dropout层,然后将它们连接到输入到lstm层,最后输出检测结果,进而确定脚本代码段对应的邮件是否为异常邮件;如图5所示,异常邮件检测系统若通过检测模型确定脚本代码段对应的邮件为异常邮件,则发出告警信息,并将告警信息储存到第一储存系统kafka中。
50.步骤e,若所述通过所述检测模型确定所述脚本代码段对应的邮件不为异常邮件,则将所述脚本代码文件输入所述检测模型;步骤f,若通过所述检测模型确定所述脚本代码文件对应的邮件为异常邮件,则发出告警信息。
51.在步骤e至步骤f中,异常邮件检测系统若通过检测模型确定脚本代码段对应的邮件不为异常邮件,异常邮件检测系统则对脚本代码文件进行预处理,为了更好地处理脚本代码文件中的随机数值、ip地址、随机域名、日期、版本号等数值数据,对这些数值进行规范化处理,用

*’号取代数字,以消除相同(或几乎相同)的脚本代码文件对后续处理的影响,从而提高检测的准确性;异常邮件检测系统将经过预处理的脚本代码文件的前n个字符转换为one-hot编码格式,得到脚本代码文件的字符级表示;异常邮件检测系统对经过预处理的脚本代码文件使用多个特殊字符作为分隔符,将脚本代码文件划分为token,其中只保留长度至少为2的token,因为单个字符本身没有意义,然后将token转换为小写,根据预训练模型得到脚本代码文件的token级表示;异常邮件检测系统将预处理的脚本代码文件转换为字符级表示和token级表示后,将脚本代码文件的字符级表示和token级表示输入深度学习检测模型,深度学习检测模型将字符级表示和token级表示分别输入卷积层、池化层和dropout层,然后将它们连接到输入到lstm层,最后输出检测结果,进而确定脚本代码文件对应的邮件是否为异常邮件,如图6所示,异常邮件检测系统若确定脚本代码文件对应的邮件为异常邮件,则发出告警信息,并将告警信息储存到第一储存系统kafka中。
52.可以理解的是,异常邮件检测系统在获取到一个邮件对应的脚本代码段后,将脚本代码段处理得到的字符级表示和token级表示输入检测模型中,若通过确定检测模型确定脚本代码段对应的邮件为异常邮件,则发出告警信息,不需要进行检测该邮件的脚本代码文件的步骤;若通过确定检测模型确定脚本代码段对应的邮件不为异常邮件,则获取该邮件对应的脚本代码文件,将脚本代码文件处理得到的字符级表示和token级表示输入检
测模型中,若确定脚本代码文件对应的邮件为异常邮件,则发出告警信息,并将告警信息储存到第一储存系统中;若确定脚本代码文件对应的邮件不为异常邮件,此时便可确定该邮件不为异常邮件。
53.进一步地,异常邮件检测系统还可以先确定并检测脚本代码数据中的脚本代码文件,再检测脚本代码段,检测过程与上述先确定并检测脚本代码数据中的脚本代码段,再检测脚本代码文件的过程相似,在此便不一一赘述。
54.本实施例的异常邮件检测系统获取网络流量数据,并根据网络流量数据确定邮件协议数据和超文本传输协议数据;根据邮件协议数据获取对应的邮件内容数据;根据邮件内容数据和超文本传输协议数据获取对应的网页内容数据;根据网页内容数据确定脚本代码数据;将脚本代码数据输入预先创建的检测模型中,通过检测模型确定脚本代码数据对应的邮件是否为异常邮件;本发明根据邮件协议数据和超文本传输协议数据确定脚本代码数据,并通过检测模型对脚本代码数据进行检测,以确定脚本代码数据对应的邮件是否为异常邮件,提高了检测异常邮件的准确率。
55.进一步地,基于本发明异常邮件检测方法第一实施例,提出本发明异常邮件检测方法第二实施例。
56.异常邮件检测方法的第二实施例与异常邮件检测方法的第一实施例的区别在于,步骤s40包括:步骤g,获取所述网页内容数据中预设类型的标签数据,并识别所述标签数据中是否存在预设字段;步骤h,若所述标签数据中不存在预设字段,则根据所述标签数据确定所述脚本代码段;步骤i,若所述标签数据中存在预设字段,则获取所述预设字段的第三资源定位符,并将所述第三资源定位符存储在存储系统中;步骤j,将所述第二资源定位符与所述存储系统中所有第三资源定位符进行对比;步骤k,若确定所述存储系统中存在有与所述第二资源定位符相同的第三资源定位符,则根据所述第二资源定位符获取所述脚本代码文件。
57.在本实施中,异常邮件检测系统在获取到网页内容数据后,获取网页内容数据中预设类型的标签数据,并识别标签数据中是否存在预设字段;若标签数据中不存在预设字段,则根据标签数据确定脚本代码段;若标签数据中存在预设字段,则获取预设字段的第三资源定位符,并将第三资源定位符存储在存储系统中;将第二资源定位符与存储系统中所有第三资源定位符进行对比;若确定存储系统中存在有与第二资源定位符相同的第三资源定位符,则根据第二资源定位符确定超文本传输协议数据中的第二标识请求响应字段;根据标识请求响应字段确定超文本传输协议数据中的第二网页存储路径字段;根据第二网页存储路径字段获取所述脚本代码文件。
58.在步骤g至步骤i中,如图5所示,图5为获取并检测脚本代码段的流程示意图,异常邮件检测系统在获取到网页内容数据后,获取网页内容数据中预设类型的标签数据,并识别标签数据中是否存在预设字段;若标签数据中存在预设字段,则获取预设字段的第三资源定位符(url),以url为键,ipv4_src_addr、l4_src_port、ipv4_dst_addr、l4_dst_port、timestamp为值存入存储系统的html_url_info表中;若标签数据中不存在预设字段,则对
标签数据中的html页面进行解析,从html页面中提取《script》标签,并获取《script》标签中的内容(content),此内容即为一段嵌入到html中的javascript代码,即脚本代码段。
59.在步骤j至步骤k中,如图6所示,图6为获取并检测脚本代码文件的流程示意图,异常邮件检测系统基于spark平台从第一储存系统中获取该邮件对应的超文本传输协议数据中的netflow格式的application_host字段(主机字段)和application_desc字段(统一资源标志符,uri),根据application_host字段和application_desc字段得到第二资源定位符(url(http请求数据)),将第二资源定位符分别与存储系统中的html_url_info表中的每个第三资源定位符进行对比,如果确定存储系统的html_url_info表中存在与第二资源定位符相同的第三资源定位符,则根据第二资源定位符获取脚本代码文件。
60.进一步地,根据所述第二资源定位符获取所述脚本代码文件的步骤包括:步骤k1,根据所述第二资源定位符确定所述超文本传输协议数据中的第二标识请求响应字段;步骤k2,根据所述第二标识请求响应字段确定所述超文本传输协议数据中的第二网页存储路径字段;步骤k3,根据所述第二网页存储路径字段获取所述脚本代码文件。
61.在步骤k1至步骤k2中,如图6所示,异常邮件检测系统若确定如果确定存储系统中的html_url_info表中存在与第二资源定位符相同的第三资源定位符,则根据第二资源定位符获取超文本传输协议数据中的第二标识请求响应字段(group_id),并以group_id为键,application_host、application_desc、timestamp为值的字典格式保存到存储系统的js_group_id_info表中,并基于spark平台在第一储存系统中获取该邮件对应的超文本传输协议数据中的netflow格式的第二标识请求响应字段(group_id)和第二网页存储路径字段(dfs_path),并检测存储系统中js_group_id_info表中是否存在对应的第二标识请求响应字段(group_id),若存在,则根据第二标识请求响应字段确定超文本传输协议数据中的第二网页存储路径字段,并根据第二网页存储路径字段(dfs_path)在第二储存系统fastdfs中获取对应的网页内容数据,该网页内容数据即为脚本代码文件;进一步地,异常邮件检测系统中能够设置定时器,定期检查存储系统中html_url_info和js_group_id_info两个表中存储的数据,比较每条数据中存储时间戳(timestamp)的值与当前时间的差值,如果大于设定的阈值,则将该条数据删除。
62.本实施例中异常邮件检测系统若通过检测模型确定脚本代码段对应的邮件为异常邮件,则发出告警信息;若通过所述检测模型确定脚本代码段对应的邮件不为异常邮件,则获取网页内容数据中预设后缀的脚本代码文件,并将脚本代码文件输入预先创建的检测模型中,通过检测模型确定脚本代码文件对应的邮件是否为异常邮件。通过分别对邮件对应网页内容数据中的脚本代码段和脚本代码文件输入检测模型进行检测,以确定脚本代码段和脚本代码文件对应的邮件是否为异常邮件,提高了异常邮件检测的准确率。
63.进一步地,基于本发明异常邮件检测方法第一实施例和第二实施例,提出本发明异常邮件检测方法第三实施例。
64.异常邮件检测方法的第三实施例与异常邮件检测方法的第一实施例和第二实施例的区别在于,在步骤s10之前,所述异常邮件检测方法包括:步骤l,获取无标签历史脚本代码数据和有标签历史脚本代码数据;
步骤m,对所述无标签历史脚本代码数据进行预设操作,得到第一训练数据集;步骤n,对所述有标签历史脚本代码数据进行预设操作,得到第二训练数据集和测试数据集;步骤o,根据所述第一训练数据集和所述第二训练数据集确定令牌词向量集合;步骤p,根据所述令牌词向量集合和所述第二训练数据集进行模型训练,得到深度学习模型;步骤q,根据所述测试数据集对所述深度学习模型进行模型测试,以得到所述检测模型。
65.在步骤l至步骤n中,异常邮件检测系统在进行异常邮件检测之前,需要先训练检测模型,异常邮件检测系统获取无标签历史脚本代码数据和有标签历史脚本代码数据,其中,无标签历史脚本代码数据包括无标签脚本代码段以及无标签脚本代码文件,有标签历史脚本代码数据包括有标签脚本代码段以及有标签脚本代码文件,该标签为脚本代码段和脚本代码文件对应的邮件是否为异常邮件;异常邮件检测系统对无标签脚本代码段和无标签脚本代码文件进行预设操作,得到第一训练数据集,并对有标签脚本代码段和有标签脚本代码文件进行预设操作,得到第二训练数据集和测试数据集,具体地,异常邮件检测系统分别对脚本代码段和脚本代码文件进行预处理,为了更好地处理脚本代码段和脚本代码文件中的随机数值、ip地址、随机域名、日期、版本号等数值数据,对这些数值进行规范化处理,用

*’号取代数字,以消除相同(或几乎相同)的脚本代码段和脚本代码文件对后续处理的影响,从而提高检测的准确性;异常邮件检测系统将经过预处理的脚本代码段和脚本代码文件的前n个字符转换为one-hot编码格式,分别得到脚本代码段和脚本代码文件的字符级表示;异常邮件检测系统对经过预处理的脚本代码段和脚本代码文件使用多个特殊字符作为分隔符,分别将脚本代码段和脚本代码文件划分为token,其中只保留长度至少为2的token,因为单个字符本身没有意义,然后将token转换为小写,分别得到脚本代码段和脚本代码文件的token级表示;异常邮件检测系统无标签脚本代码段和无标签脚本代码文件对应的字符级表示和token级表示作为第一训练数据集,将部分有标签脚本代码段和有标签脚本代码文件对应的字符级表示和token级表示作为第二训练数据集,将部分有标签脚本代码段和有标签脚本代码文件对应的字符级表示和token级表示作为测试数据集;在步骤o至步骤q中,异常邮件检测系统根据第一训练数据集和所述第二训练数据集确定令牌词向量集合;异常邮件检测系统根据令牌词向量集合和第二训练数据集对预训练模型进行模型训练,得到深度学习模型,并根据测试数据集对深度学习模型进行模型测试,以得到检测模型。需要说明的是,深度学习模型采用的深度学习框架为keras,类似地,可采用其他深度学习框架例如tensorflow、pytorch等。
66.具体地,如图7所示,图7为检测模型训练流程示意图,无标签数据集中包括:根据无标签脚本代码段以及无标签脚本代码文件确定的第一训练数据集;训练集中包括:根据有标签脚本代码段以及有标签脚本代码文件确定的第二训练数据集;在第一阶段,异常邮件检测系统使用无标签数据集中的第一训练数据集和训练集中的第二训练数据集进行预训练,获得令牌词向量集合。在第二阶段,异常邮件检测系统根据令牌词向量集合获得训练集中的第二训练数据集对应的tokens embedding(token级表示编码),同时获得训练集中的第二训练数据集对应characters embedding(字符级表示编码),根据tokens embedding
(token级表示编码)和characters embedding(字符级表示编码)进行模型训练,然后是多层 cnn 和 lstm-rnn 神经网络单元训练,得到深度学习模型,再根据测试数据集对深度学习模型进行模型测试,以得到检测模型。需要说明的是,得到的检测模型的模型结构如图8所示,该模型结构将输入的脚本代码数据进行token级表示编码和字符级one-hot表示编码,得到token级表示和字符级表示,并分别将token级表示和字符级表示输入卷积层、池化层和dropout层(丢弃层),然后将通过连接层将它们连接输入到双向的lstm层,最后输出预测结果。
67.本实施例中异常邮件检测系统获取无标签脚本代码段和无标签脚本代码文件,并对无标签脚本代码段和无标签脚本代码文件进行预设操作,得到第一训练数据集;获取有标签脚本代码段和有标签脚本代码文件,并对有标签脚本代码段和有标签脚本代码文件进行预设操作,得到第二训练数据集和测试数据集;根据第一训练数据集和第二训练数据集进行模型训练,并根据测试数据集进行模型测试,以得到检测模型。通过有标签和无标签的脚本代码段和脚本代码文件训练得到检测模型,有助于提高检测模型对异常邮件的检测准确性,进而提高异常邮件检测系统的检测准确性。
68.本发明还提供一种异常邮件检测装置。本发明异常邮件检测装置包括:第一获取模块,用于获取网络流量数据,并根据所述网络流量数据确定邮件协议数据和超文本传输协议数据;第二获取模块,用于根据所述邮件协议数据获取对应的邮件内容数据;第三获取模块,用于根据所述邮件内容数据和所述超文本传输协议数据获取对应的网页内容数据;确定模块,用于根据所述网页内容数据确定脚本代码数据;检测模块,用于将所述脚本代码数据输入预先创建的检测模型中,通过所述检测模型确定所述脚本代码数据对应的邮件是否为异常邮件。
69.进一步地,所述第二获取模块还用于:获取所述邮件内容数据中的第一资源定位符,并将所述第一资源定位符存储在存储系统中;获取所述超文本传输协议数据中的第二资源定位符,并将所述第二资源定位符与所述存储系统中所有第一资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第一资源定位符,则根据所述第二资源定位符获取对应的网页内容数据。
70.进一步地,所述第二获取模块还用于:根据所述第二资源定位符确定所述超文本传输协议数据中的第一标识请求响应字段;根据所述标识请求响应字段确定所述超文本传输协议数据中的第一网页存储路径字段;根据所述第一网页存储路径字段获取对应的网页内容数据。
71.进一步地,所述确定模块还用于:获取所述网页内容数据中预设类型的标签数据,并识别所述标签数据中是否存在预设字段;
若所述标签数据中不存在预设字段,则根据所述标签数据确定所述脚本代码段;若所述标签数据中存在预设字段,则获取所述预设字段的第三资源定位符,并将所述第三资源定位符存储在存储系统中;将所述第二资源定位符与所述存储系统中所有第三资源定位符进行对比;若确定所述存储系统中存在有与所述第二资源定位符相同的第三资源定位符,则根据所述第二资源定位符获取所述脚本代码文件。
72.进一步地,所述确定模块还用于:根据所述第二资源定位符确定所述超文本传输协议数据中的第二标识请求响应字段;根据所述第二标识请求响应字段确定所述超文本传输协议数据中的第二网页存储路径字段;根据所述第二网页存储路径字段获取所述脚本代码文件。
73.进一步地,所述检测模块还用于:将所述脚本代码段输入所述检测模型,若通过所述检测模型确定所述脚本代码段对应的邮件为异常邮件,则发出告警信息;若所述通过所述检测模型确定所述脚本代码段对应的邮件不为异常邮件,则将所述脚本代码文件输入所述检测模型;若通过所述检测模型确定所述脚本代码文件对应的邮件为异常邮件,则发出告警信息。
74.进一步地,所述获取模块还包括训练模块,所述训练模块用于:获取无标签历史脚本代码数据和有标签历史脚本代码数据;对所述无标签历史脚本代码数据进行预设操作,得到第一训练数据集;对所述有标签历史脚本代码数据进行预设操作,得到第二训练数据集和测试数据集;根据所述第一训练数据集和所述第二训练数据集确定令牌词向量集合;根据所述令牌词向量集合和所述第二训练数据集进行模型训练,得到深度学习模型;根据所述测试数据集对所述深度学习模型进行模型测试,以得到所述检测模型。
75.本发明还提供一种异常邮件检测系统。
76.异常邮件检测系统包括:存储器、处理器及储存在所述存储器上并可在所述处理器上运行的异常邮件检测程序,所述异常邮件检测程序被所述处理器执行时实现如上所述的异常邮件检测方法的步骤。
77.其中,在所述处理器上运行的异常邮件检测程序被执行时所实现的方法可参照本发明异常邮件检测方法各个实施例,此处不再赘述。
78.本发明还提供一种计算机可读存储介质。
79.该计算机可读存储介质上储存有异常邮件检测程序,所述异常邮件检测程序被处理器执行时实现如上所述的异常邮件检测方法的步骤。
80.其中,在所述处理器上运行的异常邮件检测程序被执行时所实现的方法可参照本发明异常邮件检测方法各个实施例,此处不再赘述。
81.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
82.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
83.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品储存在如上所述的一个储存介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
84.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书与附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1