一种APT攻击检测方法和装置与流程

文档序号:15624968发布日期:2018-10-09 22:45阅读:199来源:国知局

本发明涉及通信领域,尤其涉及一种apt(advancedpersistentthreat,高级持续性威胁)攻击检测方法和装置。



背景技术:

apt攻击与传统网络攻击在攻击方式和目的上有显著的区别。apt攻击的攻击技术更加复杂、攻击手段更加隐蔽,并且其目的在于窃取目标系统中的机密信息而非破坏目标系统。apt攻击利用目标系统的未知漏洞,定制专门的木马进行远程控制,通过隐蔽通道、加密数据进行通信以避免网络行为被检测,同时攻击持续数月甚至数年时间。

传统的安全防御系统无法通过对数据的集中分析快速定位威胁,实现apt安全事件预警、处置和跟踪。传统的入侵检测系统采用基于单主机、单时间点的检测方式,难以应对apt攻击的持续性、以及其不断渗透的特性,因而无法对apt攻击进行有效的发现和追踪。



技术实现要素:

本发明提供一种apt攻击检测方法和装置,用以解决现有技术中无法对apt攻击进行有效的发现和追踪的问题。

依据本发明的一个方面,提供一种apt攻击检测方法,包括:

获取待检测数据报文;

按设定的分类标准,对所述待检测数据报文进行分类;

对每类数据报文,进行特征项可疑性分析;所述特征项可疑性分析包括如下项目中的一个或多个:周期性分析、数据统计异常分析、协议解析异常分析和平均负载异常分析;

根据各类数据报文的特征项可疑性分析结果,确定apt攻击检测结果。

依据本发明的另一个方面,提供一种apt攻击检测装置,包括:

报文获取模块,用于获取待检测数据报文;

报文分类模块,用于按设定的分类标准,对所述待检测数据报文进行分类;

特征分析模块,用于对每类数据报文,进行特征项可疑性分析;所述特征项可疑性分析包括如下项目中的一个或多个:周期性分析、数据统计异常分析、协议解析异常分析和平均负载异常分析;

检测模块,用于根据各类数据报文的特征项可疑性分析结果,确定apt攻击检测结果。

本发明有益效果如下:

本发明所述apt攻击检测方法和装置,通过采集的数据报文进行多个特征项可疑性分析,并根据可疑性分析结果对apt攻击进行综合判定,实现了通过对数据报文进行集中分析,有效的发现和追踪apt攻击。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明第一实施例提供的一种apt攻击检测方法的流程图;

图2为本发明第二实施例提供的一种apt攻击检测方法的流程图;

图3为本发明第三实施例提供的一种apt攻击检测中tcp数据处理方法流程图;

图4为本发明第四实施例提供的一种apt攻击检测中dns数据处理方法流程图;

图5为本发明第五实施例提供的一种apt攻击检测装置的结构框图。

具体实施方式

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

本发明实施例提供一种apt攻击检测方法和装置,本发明实施例所述方案考虑到apt在整个攻击过程中总会暴露一些攻击点,而这些攻击点之间的通信特征成为了本发明实施例检测的突破口,由此以点牵面,回溯历史上的数据,进行关联分析,查找出攻击者的攻击路径以及明确其攻击目标。下面通过几个具体实施例对本发明的具体实施过程进行详细阐述。

在本发明第一实施例中,提供一种apt攻击检测方法,如图1所示,包括如下步骤:

步骤s101,获取待检测数据报文;

本实施例中,主要对流经网络适配器的流量进行捕获和存储。本发明支持对数据进行在线的实时分析,或者对存储的本地数据进行离线分析。

步骤s102,按设定的分类标准,对所述待检测数据报文进行分类;

在本发明的一个具体实施例中,按照传输层协议和端口号对获取的数据报文进行分类,得到tcp数据报文和dns数据报文;其中,dns数据报文包括tcp53端口的tcp数据报文和udp53端口的udp数据报文。

步骤s103,对每类数据报文,进行特征项可疑性分析;所述特征项可疑性分析包括如下项目中的一个或多个:周期性分析、数据统计异常分析、协议解析异常分析和平均负载异常分析;

具体的,本实施例中,当将数据报文分为tcp数据报文和dns数据报文时:

对于tcp数据报文,进行特征项可疑性分析时,包括如下特征项中的一个或多个:对tcpsyn报文进行周期性分析、对tcppsh及ack报文进行周期性分析、以及对tcppsh及ack报文进行数据统计异常分析;

对于dns数据报文,进行特征项可疑性分析时,包括如下特征项中的一个或多个:对dns数据报文进行协议解析异常分析、周期性分析、以及平均负载大小异常分析。

在本发明的一个具体实施例中,对tcpsyn报文进行周期性分析,包括:

对报文进行特征提取;其中,提取的特征包括:时间戳、原宿ip地址、目的端口号和报文的负载净荷大小;

将提取的时间戳按照原宿ip地址、目的端口号以及负载净荷大小这四元组进行聚类保存;

在设定的时间窗口ts之内,检测是否相同四元组的连续ns个tcpsyn报文满足其任两个连续报文时间间隔差均大于设定值ts1,以及这些连续的时间间隔差的差值在设定的时间ts之内,若是,则判定为具有周期性,否则,不具有周期性。

在本发明的一个具体实施例中,对tcppsh及ack报文进行周期性分析,包括:

对报文进行特征提取;其中,提取的特征包括:时间戳、原宿ip地址、原宿端口号和报文的负载净荷大小;

将提取的时间戳按照原宿ip地址、原宿端口号以及负载净荷大小这五元组进行聚类保存;

在设定的时间窗口tp之内,检测是否相同五元组的连续np个tcppsh及ack报文满足其任两个连续报文时间间隔差均大于设定值tp1,且这些连续的时间间隔差的差值在设定的时间tp之内,若是,则判定为具有周期性,否则,不具有周期性。

在本发明的一个具体实施例中,对tcppshack报文进行数据统计异常分析,包括:

计算设定的tpa时间内tcppsh及ack报文计数是否大于设定阈值npa,若大于,则判定为数据统计异常,否则,判定为数据统计未有异常。

在本发明的一个具体实施例中,对dns数据报文进行周期性分析,包括:

检测dns数据报文是否为dns查询报文且查询数为1,并在是的情况下,对dns查询报文的时间戳按照原ip地址和域名对进行聚类保存,并每过设定的t时间记录每个聚类条目的dns查询报文数量;

在每个t时间内记录同一聚类条目的查询次数,则在t时间内得到n个数据记录,形成每个聚类条目的dns查询报文序列;其中,t=n*t;

基于所述dns查询报文序列,利用设定的周期算法,得到各聚类条目下的dns查询报文序列的周期性强弱指数,判断各所述周期性强弱指数是否大于设定阈值,若是,则判定具有周期性,否则,判定为不具有周期性。

在本发明的一个具体实施例中,对dns数据报文进行平均负载大小异常分析,包括:

将所述dns数据报文的应用层协议负载大小按照原宿ip地址对进行聚类保存,并计算设定的时间窗口tdns内同一聚类条目的双向dns数据报文的平均负载字节数;

判断平均负载字节数是否超过设定的ndns字节,若是,则判定为平均负载大小异常;否则,判定为平均负载大小未有异常。

步骤s104,根据各类数据报文的特征项可疑性分析结果,确定apt攻击检测结果。

具体的,本实施例中,对每个特征项的可疑性分析结果进行赋值,例如,周期性分析结果为具有周期性,赋值为1,不具有周期性,赋值为0;数据统计异常分析结果为异常,赋值为1,否则,赋值为0,以此类推。并为每个特征项设定权值。

这样,在得到各类数据报文的特征项可疑性分析结果后,就可通过将各类数据报文的各特征项的可疑性分析结果进行加权求和,进行apt攻击判定。具体的,本实施例中,将各类数据报文的各特征项的可疑性分析结果进行加权求和,判断所述加权求和结果是否大于设定的阈值,并在是的情况下,判定出apt攻击检测结果异常,否则,判定apt攻击检测结果未有异常。

综上可知,本实施例所述方法,通过采集的数据报文进行多个特征项可疑性分析,并根据可疑性分析结果对apt攻击进行综合判定,实现了通过对数据报文进行集中分析,有效的发现和追踪apt攻击。

在本发明第二实施例中,提供一种apt攻击检测方法,如图2所示,包括如下步骤:

步骤s201,数据报文采集;

具体的,本实施例中,通过配置文件进行在线/离线检测模式设置,并设置需要监控主机的ip地址进行数据报文采集。如果检测采用的是在线模式,则此步骤对所配置的监控ip进行数据报文采集,并将采集到的原始数据报文保存在本地。如果检测采用的是离线模式,则此模块将对本地保存的离线数据报文进行读取、分析。

步骤s202,对数据报文按照tcp/ip协议规范,进行逐层协议解析,对于出错的报文进行过滤,并按照报文的传输层协议以及使用的端口号将数据分类,得到tcp数据报文和dns数据报文。

步骤s203,针对tcp数据报文,对tcp数据报文进行解析和进一步聚类处理,对报文数据的周期性进行分析、统计报文特征信息,并产生、存储相应的警告信息。

具体的,本实施例中,对tcpsyn报文和tcppsh、ack报文进行分别处理。对于tcpsyn报文,将提取报文时间戳并按照原宿ip地址对、目的端口号、净荷大小进行聚类,并对聚类后的数据定期采取周期性判定算法进行周期性判定,对于满足周期性判定的数据条目,将在用户界面上进行告警,并记录原宿ip地址对、目的端口号以及可疑类型于数据库中。

对于tcppsh、ack报文,将进行两部分处理:第一部分是将提取报文时间戳并按照原宿ip地址对、原宿端口号、净荷大小进行聚类,并对聚类后的数据定期采用周期性判定算法进行周期性判定,对于满足周期性判定的数据条目,将在用户界面上进行告警,并记录原宿ip地址对、原宿端口对以及可疑类型于数据库中;第二部分是记录每一个ip地址对、端口对四元组,在设定时间窗内传输的tcppsh、ack报文数,进行数据统计异常分析,对于数据统计异常的数据进行告警、记录ip地址对、原宿端口号及可疑类型。

步骤s204,针对dns数据报文(即53端口数据报文),对dns数据报文按照dns协议进行解析和进一步聚类处理,对报文数据的周期性进行分析、统计报文特征信息,并产生、存储相应的警告信息。

具体的,本实施例中,对dns数据报文按照dns协议规范进行协议解析,对于解析出错的数据将进行告警、记录相应的信息于数据库中。对于解析正确的数据,一部分将用于计算报文的平均大小,对于平均大小异常的报文将进行告警、记录对应信息于数据库中;另一部分处理是,将查询计数为1的查询报文按照原ip地址和查询的域名为条目进行统计,记录在特定时间窗口内的访问序列,并根据访问序列计算其周期性强弱指数,按照预设的阈值判断其周期性。对于满足周期性判定的数据进行告警,并记录对应信息于数据库中。

步骤s205,对步骤s203、s204产生的可疑数据进行告警,输出到用户界面。

步骤s206,对告警数据进行存储,存储的内容包括源ip、目的ip、原端口、目的端口以及可疑的类型。

步骤s207,对数据库保存的可疑数据信息和类型进行综合判定,根据各个模块结果,设置不同的权值,进行综合判定。

该步骤是指对数据库保存的数据进行筛选,对每个可疑数据类分配不同的权重,例如,假设本实施例一共给出tcpsyn周期性、tcppsh、ack周期性、tcppsh、ack数据统计异常、53端口协议解析异常、53端口数据周期性,一共5个特征项可疑类型,0代表相关检测结果正常,用1代表相关检测结果异常,那这五个检测结果可以用一个序列表示,如,10011,代表其syn数据含有周期性、且53端口数据含有周期性、53端口数据解析异常,其余检测结果正常,通过设置权值,如0.3,0.2,0.1,0.1,0.3,则上述结果最终表示为1*0.3+0*0.2+0*0.1+1*0.1+1*0.3=0.7,最终的检测结果综合为0.7,再通过设置阈值来对结果是否异常进行判断,如设置阈值为0.6,则上述检测结果判定为异常。

综上所述,本实施例所述方法,通过采集的数据报文进行多个特征项可疑性分析,并根据可疑性分析结果对apt攻击进行综合判定,实现了通过对数据报文进行集中分析,有效的发现和追踪apt攻击。并且可将可疑数据进行告警通报,从而提高了apt攻击检测的灵活性。

在本发明第三实施例中,提供一种apt攻击检测中tcp数据处理方法,本实施例是对步骤s203的详细阐述,具体的,如图3所示,包括如下步骤:

步骤s301,针对tcp数据报文,对于tcppsh、ack报文,执行步骤s302,对于tcpsyn报文执行步骤s306;

步骤s302,对tcppsh、ack报文进行特征提取,提取的特征主要有报文的源ip地址、目的ip地址、源端口、目的端口、报文的负载净荷大小、以及报文的时间戳;

步骤s303,对报文时间戳按照原宿ip地址、原宿端口号以及负载净荷这五个元组进行聚类保存;

其中,聚类保存指的是将时间戳按照ip地址对、端口对、净荷大小五个元组进行分类,形成条目(此过程成为聚类)。

步骤s304,对tcppsh、ack报文进行周期性判定,判定的准则为在时间窗口tp之内,计算同一个五元组聚类条目下,连续np个tcppsh、ack报文满足其任两个连续报文时间间隔差均大于tp1,且这些连续的时间间隔差的差值在tp之内,则判定为具有周期性。例如,当设置np=3,tp=3600s,tp1=100s,tp=0.5s,则如果在3600s内,有连续3个同一五元组的tcppsh、ack报文,其相对时间戳为100.1s、201.4s、302.3s,其连续报文时间间隔差值为td1=101.3s和td2=100.9s,且时间间隔差的差值为tdd1=0.4s,满足td1>tp1,td2>tp1且tdd1<tp,就判定其具有周期性,并进行告警。对于数值tp、np、tp1、tp将写入配置文件,具有动态可调特性。根据现实运行情况、目标网络的特性,进行动态调整,以获得更好的检测效果。

步骤s305,对tcp的pshack报文进行统计分析,计算tpa时间内pshack报文计数是否大于npa,并对满足条件的报文进行告警和存储。其中,tpa、npa也将作为可调参数,实现动态的调整,以获得更好的检测效果。

步骤s306,对tcpsyn报文进行特征提取,提取的特征主要有报文的源ip地址、目的ip地址、目的端口号、报文的负载净荷大小、报文的时间戳。

步骤s307,对报文时间戳按照原宿ip地址对、目的口号以及负载净荷这四个元组进行聚类保存。

步骤s308,对tcpsyn报文进行周期性判定,判定的准则为在时间窗口ts之内,计算同一ip地址对、相同目的端口以及相同净荷的连续ns个tcpsyn报文满足其任两个连续报文时间间隔差均大于ts1,且这些连续的时间间隔差的差值在ts之内,则判定为具有周期性。对于数值ts、ns、ts1、ts也可以根据目标网络特性,进行动态调整,以获得更好的检测效果。

在本发明第四实施例中,提供一种apt攻击检测中dns数据处理方法,本实施例是对步骤s204的详细阐述,本实施例中,dns数据为53端口tcp/udp数据,具体的,如图4所示,包括如下步骤:

步骤s401,对53端口的数据报文进行协议解析,按照dns的协议规范对数据包进行逐字段解析,对于解析出错的数据报文,执行步骤s402,对于解析正确的数据报文,分别执行步骤s403和s406。

步骤s402,对于解析错误的53端口数据报文将直接进行告警。

步骤s403,对于解析正确的数据报文,提取数据报文的ip地址对和应用层协议的负载大小。

步骤s404,将应用层协议负载大小按照原宿ip地址对来进行聚类,以进行特征统计。

步骤s405,在时间窗口tdns内,计算同一ip地址对的双向dns数据的平均负载字节数,对于平均负载大小超过ndns字节的数据进行告警。

步骤s406,将对解析正确且查询数为1的dns查询报文进行特征提取,提取的特征包括查询报文的域名信息、原ip地址以及查询报文的时间戳。

步骤s407,对dns查询报文的时间戳按照原ip地址和域名对进行聚类统计,每过t时间记录每个聚类条目的查询报文数量。

步骤s408,将总的记录时间t划分为n个时间窗口,每个时间窗口的大小为t,在每个t时间内记录某特定ip对特定域名查询的次数,则在t时间内一共会有n个数据记录形成一个序列。这个序列将用作后续的周期性判断。对于数值t、t可以根据目标网络特性,进行动态调整,以获得更好的检测效果。

步骤s409,对步骤s408获得的dns查询报文序列进行计算,根据循环自相关方法进行计算,得出其大致的周期值,并通过转换为0~1的小数,得出其周期性强弱指数。

其中,循环自相关方法公式如下:

其中,f(n)表示观测时间t内第n个时间窗口中聚类条目的计数值,f(n+k)表示将f(n)循环右移k个步长后所得值。步长k的变化,会使得r(k)的值呈现出周期性的变化,当k的取值为序列周期的整数倍的时候,r(k)将取得最大值。由此可估计出序列的大致周期。对于任意自然数k,都有:

r(k)≤r(0)(0≤k≤k-1,k∈n)(2)

且有:

通过公式(3)的计算,将r(k)的值转换为0到1小数。

步骤s410,对计算出的周期性强弱指数进行判定,对于周期性指数强于阈值a的数据将判定其查询报文具有周期性。参数a也将写入配置文件,针对目标不同的目标网络,进行动态调整,以获得更好的检测效果。

在本发明第四实施例中,提供一种apt攻击检测装置,如图5所示,包括:

报文获取模块510,用于获取待检测数据报文;

报文分类模块520,用于按设定的分类标准,对所述待检测数据报文进行分类;

特征分析模块530,用于对每类数据报文,进行特征项可疑性分析;所述特征项可疑性分析包括如下项目中的一个或多个:周期性分析、数据统计异常分析、协议解析异常分析和平均负载异常分析;

检测模块540,用于根据各类数据报文的特征项可疑性分析结果,确定apt攻击检测结果。

在本发明的一个具体实施例中,报文分类模块520,具体用于按照数据报文的传输层协议以及使用的端口号,将所述待检测数据报文分为传输控制协议tcp数据报文和域名系统dns数据报文。

特征分析模块530具体包括:

tcp数据处理单元,用于对所述tcp数据报文,进行特征项可疑性分析,包括如下分析中的一个或多个:对tcpsyn报文进行周期性分析、对tcppsh及ack报文进行周期性分析、以及对tcppsh及ack报文进行数据统计异常分析;

53端口数据处理单元,用于对所述dns数据报文,进行特征项可疑性分析,包括如下分析中的一个或多个:对dns数据报文进行协议解析异常分析、周期性分析、以及平均负载大小异常分析。

进一步地,本实施例中,tcp数据处理单元,具体用于对tcpsyn报文或对tcppsh及ack报文进行特征提取;其中,提取的特征包括:时间戳、ip地址信息、端口号信息和报文的负载净荷大小;将提取的时间戳按照ip地址信息、端口号信息以及负载净荷大小为聚类条目进行保存;在设定的时间窗口之内,检测是否相同聚类条目的连续n个tcpsyn报文或者tcppsh及ack报文满足其任两个连续报文时间间隔差均大于设定的时间间隔差阈值,以及这些连续的时间间隔差的差值在设定的差值阈值之内,若是,则判定tcpsyn报文或对tcppsh及ack报文具有周期性,否则,判定为不具有周期性。

进一步地,本实施例中,tcp数据处理单元,具体用于计算设定的tpa时间内tcppsh及ack报文计数是否大于设定阈值npa,若大于,则判定为数据统计异常,否则,判定为数据统计未有异常。

进一步地,本实施例中,53端口数据处理单元,具体用于检测dns数据报文是否为dns查询报文且查询数为1,并在是的情况下,对dns查询报文的时间戳按照原ip地址和域名对进行聚类保存,并每过设定的t时间记录每个聚类条目的dns查询报文数量;在每个t时间内记录同一聚类条目的查询次数,则在t时间内得到n个数据记录,形成每个聚类条目的dns查询报文序列;其中,t=n*t;基于所述dns查询报文序列,利用设定的周期算法,得到各聚类条目下的dns查询报文序列的周期性强弱指数,判断各所述周期性强弱指数是否大于设定阈值,若是,则判定具有周期性,否则,判定为不具有周期性。

进一步地,本实施例中,53端口数据处理单元,具体用于将所述dns数据报文的应用层协议负载大小按照原宿ip地址对进行聚类保存;计算设定的时间窗口tdns内同一聚类条目的双向dns数据报文的平均负载字节数;判断平均负载字节数是否超过设定的ndns字节,若是,则判定为平均负载大小异常;否则,判定为平均负载大小未有异常。

可选地,本发明实施例所述装置,还包括:

告警模块,用于在所述特征分析模块对每类数据报文进行特征项可疑性分析后,当分析的特征项可疑时,产生告警并输出告警信息。

在本发明的一个具体实施例中,检测模块540,具体用于将各类数据报文的各特征项的可疑性分析结果进行加权求和,判断所述加权求和结果是否大于设定的阈值,并在是的情况下,判定出apt攻击检测结果异常。

综上所述,本实施例所述装置,本发明所述apt攻击检测方法和装置,通过采集的数据报文进行多个特征项可疑性分析,并根据可疑性分析结果对apt攻击进行综合判定,实现了通过对数据报文进行集中分析,有效的发现和追踪apt攻击。并且可将可疑数据进行告警通报,从而提高了apt攻击检测的灵活性。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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