一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法转让专利

申请号 : CN202110577612.7

文献号 : CN113364750B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱添田刘雨豪陈铁明

申请人 : 浙江工业大学

摘要 :

本发明公开了一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,包括基于ATT&CK模型针对APT攻击的特征形成Snort规则;根据Snort规则采用Snort设备捕获待识别流量;将捕获的待识别流量传入OpenFlow交换机;基于OpenFlow交换机对传入的待识别流量进行识别区分为APT攻击流量或正常流量,并将所述APT攻击流量引入蜜罐。本发明主动将APT攻击引入蜜罐,提高对APT攻击的识别和处理速率。

权利要求 :

1.一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,其特征在于,所述基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,包括:步骤S1、基于ATT&CK模型针对APT攻击的特征形成Snort规则,包括:步骤S11、取ATT&CK模型中初始访问阶段和执行阶段的APT攻击的特征;

步骤S12、基于APT攻击的特征生成初始访问阶段和执行阶段中APT攻击使用的攻击手法;

步骤S13、根据生成的攻击手法形成初始访问阶段和执行阶段对应的Snort规则;

步骤S2、根据所述Snort规则采用Snort设备捕获待识别流量;

步骤S3、将捕获的待识别流量传入OpenFlow交换机;

步骤S4、基于OpenFlow交换机对传入的待识别流量进行识别区分为APT攻击流量或正常流量,并将所述APT攻击流量引入蜜罐,包括:步骤S41、采用TF‑IDF算法对传入OpenFlow交换机的待识别流量进行特征提取;

步骤S42、基于提取的特征,利用预训练的逻辑回归模型进行分类输出APT攻击流量或正常流量;

步骤S43、将所述正常流量引入真实主机,将所述APT攻击流量引入蜜罐。

2.如权利要求1所述的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,其特征在于,所述初始访问阶段的攻击手法包括:偷渡式劫持,面向公众的应用程序,外部远程服务,硬件添加,网络钓鱼,可移动介质复制,有效账户;

所述初始访问阶段与攻击手法一一对应的Snort规则包括:通过检测端点判断是否存在入侵的行为;

检测应用程序日志中是否存在异常行为;

收集身份验证日志并分析异常访问模式、活动窗口以及正常工作时间以外的访问;

结合资产管理系统检测网络上不应该存在的计算机系统或网络设备,建立网络访问控制策略,限制对网络的访问,限制硬件的安装;

对电子邮件中的URL检查;

监视可移动媒体上的文件访问,检测可移动介质安装后或用户启动后可移动介质执行的进程;

管理好信任关系中各方使用的账户和权限,在系统中查找可信账户的行为。

3.如权利要求1所述的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,其特征在于,所述执行阶段的攻击手法包括:命令和脚本解释器,利用客户端执行,进程间通讯,本机API,共享模块,软件部署工具,用户执行,Windows管理规范;

所述执行阶段与攻击手法一一对应的Snort规则包括:通过过滤非法命令行参数捕获非法命令行和脚本活动;

通过拦截浏览器或Office的进程的异常行为;

通过监视文件和命令中的字符串、已加载的DLL库、IPC机制滥用生成的进程;

通过监视DLL负载;

将DLL模块的加载限制在%SystemRoot%和%ProgramFiles%目录中,检测来自不安全路径的模块加载;

从注册表中反映出Windows服务的更改,监视异常命令行调用;

捕捉攻击者用来获取用户交互的访问权限的应用程序执行和命令行参数;

监视WMI连接的网络流量,执行过程监视捕获“wmic”的命令行参数,并检测用于远程行为的命令。

4.如权利要求1所述的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,其特征在于,所述逻辑回归模型的预训练包括:获取HTTP CSIC 2010数据集,所述HTTP CSIC 2010数据集中包含APT攻击流量和正常流量;

对HTTP CSIC 2010数据集进行格式化处理,保留HTTP CSIC 2010数据集中的各流量对应的HTTP方法、路径和参数;

利用TF‑IDF算法对格式化处理后的HTTP CSIC 2010数据集进行特征提取;

为格式化后的HTTP CSIC 2010数据集中的各流量添加相应标签,关联流量与其对应的特征后将流量划分为训练集和测试集;

取训练集对逻辑回归模型进行训练,并在训练时引入网格搜索法进行交叉验证得到逻辑回归模型的最优参数,完成对逻辑回归模型的预训练。

说明书 :

一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的

方法

技术领域

[0001] 本申请属于APT攻击检测、主动防御和蜜罐溯源取证领域,具体涉及一种利用Snort捕获攻击并用OpenFlow引流的方法,针对的流量日志内容主要用于APT攻击溯源取证。

背景技术

[0002] 近年来随着计算机、互联网、智能设备的迅速发展,信息安全这一遥不可及的词汇已经不再遥远。传统的保证网络和信息安全的手有如:防火墙、杀毒软件、入侵检测系统(Intrusion Detection System,IDS)、入侵防御系统(Intrusion Prevention System,IPS)等。在诸如此类的网络安全设备的保护下,攻击者并不像以前那样可以悄无声息的入侵。
[0003] 但现如今网络系统日新月异,各种应用软件不断升级,必定带来许多未知的安全漏洞。在这样的大背景下,一种新型的攻击手段问世,即APT(Advanced Persistent Threat)攻击。在计算机安全领域,术语APT最常用于表示黑客对政府、企业和政治活动家的持续攻击模式,可以将APT转移到关注攻击次数上。APT保证了在长期攻击中尽可能高的隐蔽性。面对这种潜伏性高、持续性长、目的性强的攻击,传统的网络安全防御体系不足以有效的抵御这种APT攻击。
[0004] 蜜罐(Honeypot)是一个人为设计的系统。它通过在计算机系统内的一些漏洞和“敏感”数据来引诱计算机入侵者入侵蜜罐系统,甚至计算机本身的计算能力也可以成为诱惑入侵者攻击的理由。通过事先设置的监控程序,观察记录入侵者在蜜罐系统内的行为动作,从而达到转移风险,减少损失,学习攻击行为,便于案件取证等作用。蜜罐技术相比于传统防御手段是更好的选择,但是传统像Honeyd、Dionea等蜜罐处在被动监听模式,无法及时有效引诱入侵者,同时存在可控性差和部署、维护成本高等问题。

发明内容

[0005] 本申请的目的在于提供一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,主动将APT攻击引入蜜罐,提高对APT攻击的识别和处理速率。
[0006] 为实现上述目的,本申请所采取的技术方案为:
[0007] 一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,所述基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,包括:
[0008] 步骤S1、基于ATT&CK模型针对APT攻击的特征形成Snort规则,包括:
[0009] 步骤S11、取ATT&CK模型中初始访问阶段和执行阶段的APT攻击的特征;
[0010] 步骤S12、基于APT攻击的特征生成初始访问阶段和执行阶段中APT攻击使用的攻击手法;
[0011] 步骤S13、根据生成的攻击手法形成初始访问阶段和执行阶段对应的Snort规则;
[0012] 步骤S2、根据所述Snort规则采用Snort设备捕获待识别流量;
[0013] 步骤S3、将捕获的待识别流量传入OpenFlow交换机;
[0014] 步骤S4、基于OpenFlow交换机对传入的待识别流量进行识别区分为APT攻击流量或正常流量,并将所述APT攻击流量引入蜜罐,包括:
[0015] 步骤S41、采用TF‑IDF算法对传入OpenFlow交换机的待识别流量进行特征提取;
[0016] 步骤S42、基于提取的特征,利用预训练的逻辑回归模型进行分类输出APT攻击流量或正常流量;
[0017] 步骤S43、将所述正常流量引入真实主机,将所述APT攻击流量引入蜜罐。
[0018] 以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
[0019] 作为优选,所述初始访问阶段的攻击手法包括:偷渡式劫持,面向公众的应用程序,外部远程服务,硬件添加,网络钓鱼,可移动介质复制,有效账户;
[0020] 所述初始访问阶段与攻击手法一一对应的Snort规则包括:
[0021] 通过检测端点判断是否存在入侵的行为;
[0022] 检测应用程序日志中是否存在异常行为;
[0023] 收集身份验证日志并分析异常访问模式、活动窗口以及正常工作时间以外的访问;
[0024] 结合资产管理系统检测网络上不应该存在的计算机系统或网络设备,建立网络访问控制策略,限制对网络的访问,限制硬件的安装;
[0025] 对电子邮件中的URL检查;
[0026] 监视可移动媒体上的文件访问,检测可移动介质安装后或用户启动后可移动介质执行的进程;
[0027] 管理好信任关系中各方使用的账户和权限,在系统中查找可信账户的行为。
[0028] 作为优选,所述执行阶段的攻击手法包括:命令和脚本解释器,利用客户端执行,进程间通讯,本机API,共享模块,软件部署工具,用户执行,Windows管理规范;
[0029] 所述执行阶段与攻击手法一一对应的Snort规则包括:
[0030] 通过过滤非法命令行参数捕获非法命令行和脚本活动;
[0031] 通过拦截浏览器或Office的进程的异常行为;
[0032] 通过监视文件和命令中的字符串、已加载的DLL库、IPC机制滥用生成的进程;
[0033] 通过监视DLL负载;
[0034] 将DLL模块的加载限制在%SystemRoot%和%ProgramFiles%目录中,检测来自不安全路径的模块加载;
[0035] 从注册表中反映出Windows服务的更改,监视异常命令行调用;
[0036] 捕捉攻击者用来获取用户交互的访问权限的应用程序执行和命令行参数;
[0037] 监视WMI连接的网络流量,执行过程监视捕获“wmic”的命令行参数,并检测用于远程行为的命令。
[0038] 作为优选,所述逻辑回归模型的预训练包括:
[0039] 获取HTTP CSIC 2010数据集,所述HTTP CSIC 2010数据集中包含APT攻击流量和正常流量;
[0040] 对HTTP CSIC 2010数据集进行格式化处理,保留HTTP CSIC 2010数据集中的各流量对应的HTTP方法、路径和参数;
[0041] 利用TF‑IDF算法对格式化处理后的HTTP CSIC 2010数据集进行特征提取;
[0042] 为格式化后的HTTP CSIC 2010数据集中的各流量添加相应标签,关联流量与其对应的特征后将流量划分为训练集和测试集;
[0043] 取训练集对逻辑回归模型进行训练,并在训练时引入网格搜索法进行交叉验证得到逻辑回归模型的最优参数,完成对逻辑回归模型的预训练。
[0044] 本申请提供的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,采用了Snort和OpenFlow结合的方法,将APT流量区分为攻击流量和正常流量。其中,在Snort初步捕获攻击上基于ATT&CK模型对APT攻击特征制定相应的规则,并使用OpenFlow控制器将流量分别引入主机和蜜罐,实现对攻击的主动引流。为了降低整个系统负载,使用TF‑IDF算法和逻辑回归算法进行建模分析对于降低简化检测APT攻击提供了很大的帮助,同时也能够减轻蜜罐取证分析的数据储存压力。

附图说明

[0045] 图1为本申请的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法的流程图;
[0046] 图2为本申请OpenFlow交换机的工作架构图。

具体实施方式

[0047] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0048] 除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本申请。
[0049] 其中一个实施例中,提供一种基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,用于捕获APT攻击并主动引入蜜罐(蜜罐系统)。
[0050] 如图1所示,本实施例的基于Snort和OpenFlow启发式诱导APT攻击引入蜜罐的方法,包括以下步骤:
[0051] 步骤S1、基于ATT&CK模型针对APT攻击的特征形成Snort规则。
[0052] 本实施例所采用的是ATT&CK模型中初始访问阶段和执行阶段的APT攻击特征,基于以上两个阶段中APT攻击中所包含的所有可能使用的攻击手法形成与之相对应的Snort规则,来增强Snort对APT攻击的检测效率。具体如下:
[0053] 步骤S11、取ATT&CK模型(Adversarial Tactics,Techniques,and Common Knowledges)中初始访问阶段和执行阶段的APT攻击的特征。
[0054] 步骤S12、基于APT攻击的特征生成初始访问阶段和执行阶段中APT攻击使用的攻击手法。
[0055] 步骤S13、根据生成的攻击手法形成初始访问阶段和执行阶段对应的Snort规则。
[0056] 其中,在初始访问阶段攻击者有9种攻击手法,分别为:
[0057] 1)偷渡式劫持:使受害者访问被控制的网站时将恶意代码注入到受害者浏览器。
[0058] 2)面向公众的应用程序:攻击者试图利用软件、数据、命令来利用面向Internet的计算机或者程序中的漏洞,这些应用程序可以是网站、数据库、标准服务以及Web服务器等。
[0059] 3)外部远程服务:攻击者通过利用VPN、Citrix等面向外部的远程服务来建立从外部到企业内部网络资源的连接获取敏感信息后留下后门。
[0060] 4)硬件添加:攻击者通过将计算机附件、或网络硬件引入系统或网络中,这些系统和网络可以用作获取访问权限的媒介。
[0061] 5)网络钓鱼:攻击者通过以电子方式结合社会工程学发送网络钓鱼信息来获取敏感信息或获得对受害者系统的访问权限。
[0062] 6)可移动介质复制:攻击者通过将恶意软件复制到可移动媒体并在媒体插入到系统中执行代码。
[0063] 7)供应链妥协:攻击者通过在消费者收到产品之前操纵产品或产品交付机制。
[0064] 8)信任关系:攻击者通过破坏或利用有权接触预期受害者的组织,通过受信任的第三方关系利用现有的连接。
[0065] 9)有效账户:攻击者通过获取并利用现有账户的凭据,以此获得初始访问权。
[0066] 由于初始访问阶段中供应链妥协和信任关系这两种攻击方法是利用第三方工具或物理的攻击,通过Snort并不能实现攻击捕捉,因此不针对这两种攻击手法建立Snort规则,因此本实施例中基于剩余的7种种攻击手法建立的Snort规则如表1所示:
[0067] 表1初始访问阶段的Snort规则
[0068]
[0069]
[0070] 其中,在执行阶段攻击者有10种攻击手法,分别是:
[0071] 1)命令和脚本解释器:攻击者使用来执行命令、脚本、二进制的文件对计算机系统进行控制和利用。
[0072] 2)利用客户端执行:攻击者基于浏览器和办公软件中的漏洞,实现能够在远程系统执行代码。
[0073] 3)进程间通讯:攻击者利用实现共享数据、互通、同步执行。
[0074] 4)本机API:攻击者利用可以直接与本机应用程序编程接口交互以执行命令。例如:Windows API CreateProcess()或fork()将允许程序和脚本启动其他进程。
[0075] 5)预定任务作业:攻击者利用计划任务功能使恶意代码初始化或重复执行。
[0076] 6)共享模块:攻击者通过执行恶意有效载荷,可以指示Windows模块加载程序从任意本地路径和任意通用命名约定网络路径加载DLL(Dynamic Link Library)。
[0077] 7)软件部署工具:攻击者通过访问并使用安装在企业网络中的第三方软件,例如:管理软件,进行网络横向移动。
[0078] 8)系统服务:攻击者通过与系统服务、守护程序的交互或创建服务来执行恶意内容。
[0079] 9)用户执行:攻击者利用被入侵的用户,例如打开恶意文档或链接来使通过不当操作执行恶意代码。
[0080] 10)Windows管理规范:攻击者利用Windows Management Instrumentation(WMI)来实现执行,WMI为Windows系统组件的本地和远程访问提供统一环境。
[0081] 由于执行阶段中的预定任务作业的攻击方法可以通过更改系统配置,增强管理员账户管理,限制用户账户权限的方式,因此与Snort无关。并且其中的软件部署工具是利用了第三方软件进行攻击,无法得知哪些第三方软件存在何种漏洞,因此无法制定相应的Snort规则。因此本实施例基于剩余的8种攻击手法建立的Snort规则如表2所示:
[0082] 表2执行阶段的Snort规则
[0083]
[0084]
[0085] 需要说明的是,本实施例在初始访问阶段和执行阶段均存在部分攻击手法无法建立Snort规则,但这并不影响本实施例对APT攻击的检测效率,或者说本实施例是更有针对性的APT攻击的检测。
[0086] 步骤S2、根据Snort规则采用Snort设备捕获待识别流量。
[0087] 本实施例在本地的Linux主机上安装Snort设备作为捕获APT攻击的工具。安装成功后,首先设置网卡的默认工作模式为混杂模式,以捕获除目的地址为自身MAC地址以外的所有流量。其中在Linux上安装Snort为现有技术,例如https://blog.csdn.net/yisosooo/article/details/78867025等文献中公开的步骤,本实施例中不再进行赘述,安装后即形成用于捕获的Snort设备。
[0088] 步骤S3、将捕获的待识别流量传入OpenFlow交换机。
[0089] 步骤S4、基于OpenFlow交换机对传入的待识别流量进行识别区分为APT攻击流量或正常流量,并将所述APT攻击流量引入蜜罐。
[0090] 步骤S41、采用TF‑IDF算法对传入OpenFlow交换机的待识别流量进行特征提取;
[0091] 步骤S42、基于提取的特征,利用预训练的逻辑回归模型进行分类输出APT攻击流量或正常流量;
[0092] 步骤S43、将正常流量引入真实主机(真实主机即为流量想要访问的对象),将APT攻击流量引入蜜罐。
[0093] 在网络安全层面,基于OpenFlow的SDN具有两大优势:(1)提供实时的流量管理与控制能力。能够实现智能化网络自我管理,很好的解决了应用程序动态化和高带宽问题,降低了管理和操作的复杂程度。(2)更好的感知网络故障与网络攻击。在多种粒度控制管理以及全局视图能力的支持下,能够较好的清洗流量、网络溯源、负载均衡、故障排除。
[0094] 总的来说,SDN网络的流量控制能力可以提供整个网络的全局视图,并能够对网络的流量实现集中管理,网络控制能力则使得SDN网络能够提供更加便捷的审核与监管机制,网络安全问题及时发现、分析并及时处理。当使用OpenFlow将区分好的攻击流量和正常流量重新计算路由,则可将攻击流量引入到蜜罐之中。
[0095] 如图2所示,当用户或者攻击者向网络发送请求或者攻击时,通过Snort进行流量的分析,并向OpenFlow交换机下发流表,根据OpenFlow协议通过控制器将正常流量引入到真实主机并返回真实信息,同时将攻击流量引入到事先设计好的蜜罐中,向攻击者返回预设的信息。并在系统设计中采用避免使用云端服务器将蜜罐部署在外网并在蜜罐前面部署一个与真实环境下匹配的操作系统同时设置蜜罐系统与真实环境匹配的端口,避免蜜罐返回信息单一,定期更改蜜罐内部返回报文信息等方法,提高对攻击流量的捕获和引流的有效性。
[0096] 其中本实施例对逻辑回归模型进行预训练的过程如下:
[0097] 1)训练数据整理
[0098] 11)采用TF‑IDF算法对流量进行清洗。当有大量攻击流量传入系统中将会拥有很大的负载,对整个系统的效率有很大影响,因此需要对数据进行优化以及提取流量特征来提高系统效能。由于攻击流量有明显的特征,因此TF‑IDF算法在整个攻击流量捕获中具有重要的作用。
[0099] 本实施例使用HTTP CSIC 2010数据集模拟攻击流量和正常流量,然后采用TF‑IDF算法进行特征提取。HTTP CSIC 2010数据集包含36000个正常请求和250000多个攻击请求。数据集中除HTTP方法、路径和参数外无任何攻击Payload,所以存在大量冗余信息,在对数据进行分类时会降低效率,因此需要将数据集进行格式化处理,仅保留HTTP方法、路径和参数。
[0100] 本实施例基于TF‑IDF算法针对HTTP CSIC 2010数据集提取出的特征向量与出现次数如表3所示,其中出现次数越多则表明特征向量在数据流量中越具有代表性。
[0101] 表3特性向量与出现次数
[0102]
[0103]
[0104] 12)对网络数据进行初步处理。由于Web攻击的成分有很好的结构化特征,因此可以将Web攻击进行分类,在采用逻辑回归算法进行数据分类前,首先需要对TF‑IDF算法提取数据进行整合、打标签。
[0105] 2)模型训练
[0106] 21)数据归一化处理。在模型训练开始之前使用Sklaern的StandardScaler方法对数据进行归一化处理。
[0107] 22)划分训练集和测试集,为了提高模型训练准确性,使用Sklaern的cross_val_score方法将数据集分成5种不同的训练集和测试集进行交叉验证。
[0108] 23)逻辑回归模型训练。由于是对正常流量和攻击流量的区分,逻辑回归算法在处理二分法问题上可解释性强易于理解,因此选择逻辑回归模型进行训练。在进行模型训练时采用网格搜索方法,对网格搜索参数做如下设置:正则化强度的倒数’C’:[0.1,1,3,5,7]、惩罚项penalty设置为[‘l1’,’l2’]。交叉验证训练结果如表4所示。
[0109] 表4交叉验证训练结果
[0110]训练时间 3’32s
最佳结果 ’C’:7’penalty’:’l2’
Gird_search.best_score_ 0.9690464440657187
测试集score 0.97972643 13627866
精准率 0.9972253738033524
召回率 0.940990623085181
Fl‑Score 0.968292212313286
[0111] 由表4可知,验证结果是当C为7,penalty为l2为最佳,同时测试集分数、精准率和召回率为较高水平。也就是该情况下逻辑回归模型具有最优参数。
[0112] 应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0113] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0114] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。