一种基于威胁情报的僵尸网络检测方法及检测系统与流程

文档序号:19791909发布日期:2020-01-24 14:24阅读:297来源:国知局
一种基于威胁情报的僵尸网络检测方法及检测系统与流程

本发明涉及数字信息的传输,例如电报通信的技术领域,特别涉及一种以协议为特征的、基于威胁情报的僵尸网络检测方法及检测系统。



背景技术:

僵尸网络是互联网连接设备的集合,其中包括被常见类型的恶意文件感染和控制的pc、服务器、移动设备,或者物联网设备。

通常来说,用户不知道僵尸网络会感染他们的系统,在收到钓鱼邮件并打开含有恶意文件的附件、或被误导的情况下下载了恶意文件后,将致使他们的计算机感染僵尸程序,进而被网络犯罪分子控制,用户并不知道僵尸程序的网络行为;僵尸网络往往被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(ddos)、发送海量垃圾邮件、窃取主机敏感信息、挖矿等,同时黑客控制的这些计算机所保存的信息,譬如银行帐户的密码、社会安全号码等,也都可被黑客随意“取用”。

由于用户的计算机设备感染僵尸程序后,僵尸程序会与c&c服务器通信,c&c服务器会下发命令,对其进行远程控制,故不论是对网络安全运行还是用户数据安全的保护来说,僵尸网络都是极具威胁的隐患,破坏性影响很大。

现有技术中,专利申请号为201810615711.8的中国专利公开了一种僵尸网络的检测方法及装置,包括从网络上抓取第一待测网络数据包;按照预先训练的随机森林条件熵模型对第一待测网络数据包进行检验,滤掉由随机森林条件熵模型检测出的僵尸网络第一疑似数据包;按照预先训练的四元组模型和二元组模型,对滤掉僵尸网络第一疑似数据包后剩余的第二待测网络数据包进行检测,得到僵尸网络第二疑似数据包。此专利提高了对多样化的僵尸网络的检测效果。专利申请号为201610222674.5的中国专利公开了一种基于dns流量特征的僵尸网络检测方法,将合法主域名和非法主域名组合起来形成目标集合;处理提取长度大于6的域名作为研究对象;分别计算域名熵值、构词法特征、语音特征和分组特征;放入随机森林分类器得到训练模型。现有技术存在相同的缺点,即试错周期长,实施阶段漏报率和误报率不可控,需要长时间的优化并调整数据分析的判断细节,例如,熵值、构词法特征等,实际流量中数据包的多样性也需要大量的测试。



技术实现要素:

本发明解决了现有技术中,对于僵尸网络的检测普遍存在试错周期长,实施阶段漏报率和误报率不可控,需要长时间的优化并调整数据分析的判断细节,实际流量中数据包的多样性需要大量的测试的问题,提供了一种优化的基于威胁情报的僵尸网络检测方法及检测系统。

本发明所采用的技术方案是,一种基于威胁情报的僵尸网络检测方法,所述方法包括以下步骤:

步骤1:检测模块启动,加载本地更新的所有威胁情报至本地威胁情报库;

步骤2:若检测模块获得基于采集的网络流量的第一审计数据,则进行下一步,否则,重复步骤2;

步骤3:检测模块以第一审计数据与本地威胁情报库中的数据进行匹配,若匹配成功,则保存第一审计数据、风险数据到数据库,进行下一步,否则,保存第一审计数据,返回步骤2;

步骤4:获得当前第一审计数据的源ip在t时间内的第二审计数据;

步骤5:基于风险数据对威胁事件进行分类;

步骤6:将第一审计数据、第二审计数据和分类后的数据进行关联和分析,将网络请求行为的特征符合僵尸网络特征的所有ip确认为僵尸网络。

优选地,若情报更新模块从云端下载了更新的威胁情报数据,则情报更新模块发送通知给检测模块,检测模块增量加载最近更新的威胁情报数据。

优选地,所述第一审计数据和第二审计数据包括源ip、请求时间、目的地址、发送的请求信息、返回信息、返回码。

优选地,所述步骤3中,风险数据包括当前审计数据的域名的威胁程度、所属黑客组织、所属病毒家族、威胁类型、域名注册信息。

优选地,所述步骤4中,t为0.5~2小时。

优选地,所述步骤5包括以下步骤:

步骤5.1:基于风险数据对威胁事件分类至若干威胁类型;

步骤5.2:针对每个威胁类型,以目的ip和/或恶意域名聚类为若干子集;

步骤5.3:输出所有的子集。

优选地,所述步骤6包括以下步骤:

步骤6.1:取任一未处理的子集;

步骤6.2:若当前子集中存在至少1个源ip超过1次访问同一个目的ip和/或访问相同的恶意域名,则分析当前源ip的审计数据是否存在僵尸网络特征,若是,则判定这些ip对应的主机已经感染了僵尸程序,否则进行下一步;

步骤6.3:是否还存在未处理的子集,若是,返回步骤6.1,否则,输出确认的僵尸网络。

优选地,所述情报更新模块定期检查云端的威胁情报库更新的威胁情报数据,选择是否从云端更新威胁情报数据。

一种采用所述的基于威胁情报的僵尸网络检测方法的检测系统,所述检测系统包括:

一情报更新模块,用于定期检查云端威胁情报库最近的更新情况并确定是否需要从云端更新威胁情报数据;

一威胁情报库,用于将情报更新模块从云端下载的威胁情报数据保存到本地;

一网络流量采集与解析模块,用于获取网络流量数据并解析为审计数据;

一检测模块,用于加载威胁情报库并与网络流量采集与解析模块解析后的审计数据进行匹配得到风险数据;

一分析模块,用于对检测模块输出的结果进行分析。

优选地,所述云端包括:

一云端威胁情报库,用于保存全量威胁情报数据;

一情报查询和更新接口,用于与情报更新模块对接,提供威胁情报查询接口和情报更新接口。

本发明提供了一种优化的基于威胁情报的僵尸网络检测方法及检测系统,检测模块启动并加载本地更新的所有威胁情报至本地威胁情报库,当检测模块获得基于采集的网络流量的第一审计数据,则以第一审计数据与本地威胁情报库中的数据进行匹配,保存第一审计数据,若匹配成功,则同时保存风险数据到数据库,获得当前第一审计数据的源ip在t时间内的第二审计数据,基于风险数据对威胁事件进行分类,将第一审计数据、第二审计数据和分类后的数据进行关联,查找存在网络请求行为符合僵尸网络特征的若干个ip,确认为僵尸网络。

本发明基于威胁情报进行网络协议解析、威胁检测,进而识别僵尸网络的控制端和僵尸主机,检测得到僵尸网络,及时发现网络威胁,减少僵尸网络对个人用户或者企业造成的危害。

本发明的有益效果在于:

(1)基于精准的威胁情报检测,并且可以从云端实时更新下载威胁情报,误报率和漏报率低;

(2)先根据威胁情报检测到风险,再对发生风险的这些源ip进行网络行为分析,判断是否符合僵尸网络的行为特征,误报率和漏报率低。

附图说明

图1为本发明的方法流程图;

图2为本发明的系统结构示意图,其中,箭头表示数据传输的方向。

具体实施方式

下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。

本发明涉及一种基于威胁情报的僵尸网络检测方法,僵尸网络控制端为了躲避检测,僵尸主机(受控端)通常通过c&c域名去访问控制端,接收指令,而僵尸网络本身又具有群体性、持续性、周期性的行为特征,可以对dns协议的流量进行解析和检测,发现请求解析僵尸网络域名的主机,然后再对这些主机的网络行为进行分析和判定,最终发现僵尸网络。

所述方法包括以下步骤。

步骤1:检测模块启动,加载本地更新的所有威胁情报至本地威胁情报库。

若情报更新模块从云端下载了更新的威胁情报数据,则情报更新模块发送通知给检测模块,检测模块增量加载最近更新的威胁情报数据。

所述情报更新模块定期检查云端的威胁情报库更新的威胁情报数据,选择是否从云端更新威胁情报数据。

步骤2:若检测模块获得基于采集的网络流量的第一审计数据,则进行下一步,否则,重复步骤2。

所述第一审计数据和第二审计数据包括源ip、请求时间、目的地址、发送的请求信息、返回信息、返回码。

本发明中,网络流量可以直接从网卡上进行数据采集,一般来说,数据包采集工具包括但不限于libpcap、winpcap和pf_ring,不同的平台可以选择不同的采集工具,例如windows平台下可以选择winpcap,linux平台下可以选择libpcap、pf_ring,流量采集模块也可以直接接收其他系统发送的网络流量数据。

本发明中,审计数据通常为原始网络行为信息,由根据协议规范、解析网络流量获得的还原原始网络行为信息,使得后续功能模块能够对流量数据进行处理,一般情况下,解析后的信息存入数据库。

本发明中,目的地址包括目的ip和目的域名,视协议的不同而定,如果不是http协议或者dns协议,则没有域名,只有目的ip,如果是http协议,域名也会被解析为具体的目的ip,此为本领域常规技术。

本发明中,协议解析模块能依据协议规范,从网络流量数据里解析出通信双方的信息,主要包括源ip地址、目的ip地址、源端口、目的端口、请求时间、请求内容、响应码和具体响应内容。

步骤3:检测模块以第一审计数据与本地威胁情报库中的数据进行匹配,若匹配成功,则保存第一审计数据、风险数据到数据库,进行下一步,否则,保存第一审计数据,返回步骤2。

所述步骤3中,风险数据包括当前审计数据的域名的威胁程度、所属黑客组织、所属病毒家族、威胁类型、域名注册信息。

本发明中,匹配一般是指将情报数据加载为二叉树结构或者其他数据结构,以加载为二叉树结构为例,进行二叉树查找,若查找到,则认为匹配成功;也可以通过正则表达式匹配,若正则匹配成功,则认为匹配成功。本领域技术人员可以依据需求自行设置匹配方式。

步骤4:获得当前第一审计数据的源ip在t时间内的第二审计数据。

所述步骤4中,t为0.5~2小时。

本发明中,检测模块将解析后的网络流量的审计数据与威胁情报库进行匹配,以判断是否存在威胁风险,如果存在风险,则保存审计数据、风险数据到数据库,并将审计数据、风险数据传递到分析模块,同时将该源ip的后续一段时间t内的审计数据也传送给分析模块;如果没有检测到风险,则不再保存风险数据,只保存审计数据,也不用发送审计数据到分析模块。

本发明中,时间t用于分析访问了僵尸网络域名的源ip,在访问域名后的一段时间内的网络行为,一般情况下,t为1小时。

本发明中,举例来说,防护网络内的ip请求访问某个域名,将该域名与威胁情报库进行匹配,如果匹配上,则说明该域名存在风险,并且可以从威胁情报库中,查询到该域名的威胁程度,一般分为高危、中危、低危三种,同时还可以查询到所属黑客组织、所属病毒家族、威胁类型、域名注册信息等,其中,域名注册信息包括但不限于注册时间、注册邮箱、域名服务商、域名过期时间、与该域名通讯的恶意文件样本数量。

步骤5:基于风险数据对威胁事件进行分类。

所述步骤5包括以下步骤:

步骤5.1:基于风险数据对威胁事件分类至若干威胁类型;

步骤5.2:针对每个威胁类型,以目的ip和/或恶意域名聚类为若干子集;

步骤5.3:输出所有的子集。

本发明中,威胁情报是某种基于证据的知识,包括上下文、机制、标示、含义和能够执行的建议,这些知识与资产所面临的、已有的或酝酿中的威胁或危害相关,可用于资产相关主体对威胁或危害的响应或处理决策提供信息支持。事实上,绝大多数的威胁情报是狭义的威胁情报,其主要内容为用于识别和检测威胁的对象以及这些对象的归属标签,这些威胁的对象包括但不限于ip、域名、url、程序运行路径、注册表项、文件hash值,而归属标签包括威胁类型、属性、威胁级别等。

本发明中,威胁类型,是指威胁情报里对ip、域名、url、文件这些对象按照已经发生的网络攻击事件进行的分类,分类包括:钓鱼地址、垃圾邮件、僵尸网络、矿池、黑产ip、蠕虫、勒索软件、漏洞利用、恶意软件、ddos攻击、tor代理;当然,在具体实施时允许增加新的分类以满足不同的需求。

本发明中,将风险数据按照威胁类型进行分类,然后对同一个威胁类型,按照目的ip和/或恶意域名再次分类。举例来说,当前时间检测到防护网络内有多个源ip访问域名zssdxcq.yi.org,此域名在威胁情报库里的威胁类型属于kraken僵尸网络,则将这些源ip聚到一个子集中;诸如此类,构建1个或多个子集。

本发明中,步骤5.3输出的每个子集里至少包含一个源ip,这些源ip在相同的时间范围内访问了步骤5.2里的目的ip或者恶意域名。

步骤6:将第一审计数据、第二审计数据和分类后的数据进行关联和分析,将网络请求行为的特征符合僵尸网络特征的所有ip确认为僵尸网络。

所述步骤6包括以下步骤:

步骤6.1:取任一未处理的子集;

步骤6.2:若当前子集中存在至少1个源ip超过1次访问同一个目的ip和/或访问相同的恶意域名,则分析当前源ip的审计数据是否存在僵尸网络特征,若是,则判定这些ip对应的主机已经感染了僵尸程序,否则进行下一步;

步骤6.3:是否还存在未处理的子集,若是,返回步骤6.1,否则,输出确认的僵尸网络。

本发明中,将审计数据与分类之后的数据进行关联分析。举例来说,一个集合内的ip在最近t时间段内均访问了属于kraken僵尸网络的域名zssdxcq.yi.org,则分析最近t时间段内这些ip的审计数据是否有带周期性的、相似的行为,若是,则判定这些ip对应的主机已经感染了僵尸程序,已经被同一个c&c服务器控制。

本发明中,周期性的行为是指,僵尸程序和c&c服务器之间的通信是自动的、系统的、重复的、具有规则间隔的行为集合,对僵尸网络进行测试时发现,每个恶意软件家族都有类似的周期模式,这些周期模式甚至可以区分来自不同僵尸网络的流量。

本发明中,相同的行为是指,同一个僵尸程序如果感染多台计算机设备,则这些计算机设备可能在同一个时间段下载相同的文件,以升级自身的某个功能,或者他们同时对某个web服务器,频繁的发起httpget、post请求,进行web攻击,或者频繁的发送垃圾邮件,这些邮件具有相同的标题、发件人地址,或者向相同的服务端ip和端口发送相同的请求信息。

本发明中,步骤6.3输出的僵尸网络基于威胁情报库里对ip、域名这些数据按照威胁类型的分类,例如,zssdxcq.yi.org被标记为僵尸网络,僵尸网络名称为kraken,即该域名是僵尸网络kraken使用的域名。

本发明还涉及一种采用所述的基于威胁情报的僵尸网络检测方法的检测系统,所述检测系统包括:

一情报更新模块,用于定期检查云端威胁情报库最近的更新情况并确定是否需要从云端更新威胁情报数据;

一威胁情报库,用于将情报更新模块从云端下载的威胁情报数据保存到本地;

一网络流量采集与解析模块,用于获取网络流量数据并解析为审计数据;

一检测模块,用于加载威胁情报库并与网络流量采集与解析模块解析后的审计数据进行匹配得到风险数据;

一分析模块,用于对检测模块输出的结果进行分析。

本发明中,一般情况下,情报更新模块定期检查的时间周期可以配置为3分钟以内。

本发明中,也可以通过与云端之间发送心跳包,当有新的威胁情报数据更新时,云端通过心跳包通知网络防护设备进行下载操作。

本发明中,网络流量采集与解析模块获取网络流量数据包括从网卡上采集流量数据,也可以直接接收其他系统发送过来的网络流量数据。

本发明中,分析模块用于对检测模块输出的结果进行分析,以确认防护网络内是否存在僵尸网络;僵尸网络本身具有群体性、持续性、周期性的特征,如果在一个较短的时间范围,如半个小时,防护网络内有多台设备访问同一个域名,或者同一服务端ip,并且发送的请求内容具有相同或者相似性,则判定为僵尸网络。

所述云端包括:

一云端威胁情报库,用于保存全量威胁情报数据;

一情报查询和更新接口,用于与情报更新模块对接,提供威胁情报查询接口和情报更新接口。

本发明中,云端可以启动web服务,提供威胁情报查询接口和情报更新接口。对于查询接口,其他设备可以提供查询参数,例如:ip、域名、文件hash值、url,请求查询,然后云端这些请求参数相关的威胁情报信息;对于更新接口,初始运行时,全量下载一次威胁情报,后续每次请求更新之前,提供最后一次从云端更新威胁情报的时间,可以下载该时间以后,云端全量情报库里更新的数据,包括新增和修改的。

本发明的检测模块启动并加载本地更新的所有威胁情报至本地威胁情报库,当检测模块获得基于采集的网络流量的第一审计数据,则以第一审计数据与本地威胁情报库中的数据进行匹配,保存第一审计数据,若匹配成功,则同时保存风险数据到数据库,获得当前第一审计数据的源ip在t时间内的第二审计数据,基于风险数据对威胁事件进行分类,将第一审计数据、第二审计数据和分类后的数据进行关联,查找存在网络请求行为符合僵尸网络特征的若干个ip,确认为僵尸网络。

本发明基于威胁情报进行网络协议解析、威胁检测,进而识别僵尸网络的控制端和僵尸主机,检测得到僵尸网络,及时发现网络威胁,减少僵尸网络对个人用户或者企业造成的危害。本发明的有益效果在于基于精准的威胁情报检测,并且可以从云端实时更新下载威胁情报,误报率和漏报率低;先根据威胁情报检测到风险,再对发生风险的这些源ip进行网络行为分析,判断是否符合僵尸网络的行为特征,误报率和漏报率低。

多个进程并发运行时,可以由其中一个进程加载威胁情报数据到共享内存里,所有进程可以共享访问,不需要重复加载。

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