基于Snort的Botnet网络检测系统设计研究

2023-09-28 02:30
中国新技术新产品 2023年16期
关键词:误报率域名集上

曾 斯

(湖南环境生物职业技术学院,湖南 衡阳 421005)

Botnet网络是一种采用多种传播手段使主机感染病毒,从而在控制者与被感染主机间形成的一个可以一对多控制的网络[1]。与木马、蠕虫等恶意软件相比,其优势是可以通过独立命令与攻击者进行通信,Botnet网络可以利用各类通信协议配置通信信道,使通信信道更具隐蔽性。随着时代发展,Botnet网络迅速壮大,例如DDOS攻击、窃取信息、发送垃圾邮件以及攻击基础设施等,给当前网络安全带来了巨大威胁。Snort是一种开源入侵防御系统,其适应多类平台,具有源代码开放、计算要求低等特点[2]。为了更好地应对Botnet网络的威胁,该文设计了一种基于Snort的Botnet网络检测系统,其将流量分析方法作为识别工具,准确性较高,能够有效检测大规模恶意Botnet网络流量。

1 系统架构

系统采用C/S架构,在这种结构下,通过浏览器显示工作界面,通过服务器、前端实现事物逻辑。如图1所示,系统分为界面层、逻辑层、通信层以及数据层等4层架构。其中,界面层包括系统管理、Botnet网络流量监测以及系统升级等,该层与用户直接交互,用户可以有效使用界面操作系统,并根据检测结果评估事件对系统的威胁程度,从而采取最优的解决策略;逻辑层是系统核心部分,主要负责处理系统软硬件的业务逻辑、数据访问等工作,起到了数据交换的承上启下作用;通信层主要负责客户端与服务器之间的通信;数据层包括Snort规则和MariaDB数据库,Snort规则是基于文本的轻量级语言描述,数据库负责检测流量特征、可疑行为等信息。

图1 系统架构

2 硬件设计

系统硬件设计如图2所示,主要包括协议分析仪、解码器、流量识别器以及输出管理器等部件。

2.1 协议分析仪

协议分析仪是检测系统最基础的数据监视硬件设备,既可以用于合法网络管理,也可以用于网络数据窃取。该系统采用BEX400协议分析仪,能够识别以太网、令牌环以及TCP/IP等高层协议,其具体工作流程如下:网络适配卡捕获网络数据包,随后以原始形态传递给解码器,以对数据链路层中的原始数据包进行深度解码,解码器从不同接口获取包后完成解码过程。

2.2 解码器

在系统接收数据包后,无法直接将其上传至流量识别器,必须进行部分处理,并利用环境定义描述统一采集的数据。该系统采用XL-DS1/DD1高速解码器,该设备提供软件开发SDK及设备管理控制通信协议,便于与第三方软件系统集成,其具体工作流程如下:对数据进行归类、去冗等操作,将主机数据、网络数据、行为数据以及通信数据结合,以整体视角对各事件进行关联分析,创建元数据与操作集间的依赖关系,配合流量识别器完成数据处理工作。

2.3 流量识别器

流量识别器是系统核心硬件,除使用Snort自有的监测机制外,还可以选用Cubro流量探针作为系统流量识别器,该设备根据聚类结果进行网络流量类型识别,准确率较高,其具体工作包括加密识别、虚拟构建。其中,加密识别通过计算随机数据来识别数据流是否被加密,虚拟构建则通过Renode模拟器来模拟Botnet运行环境,并根据其行为来判断是否为恶意流量。

2.3.1 加密识别

Cubro流量探针能够对加密流量进行有效识别。根据加密原理,加密后的数据与随机数据较相似,由信息论可知,数据随机性越大,不确定性就越高,熵值也随之增加。因此,可以通过数据熵值来识别加密数据。

2.3.2 虚拟构建

使用Renode模拟器进行虚拟构建,按照监控配置与数据流进行逻辑分析,标记相关数据,并对可疑程序API拦截记录、污点记录进行深度分析[3]。将网络中获得的数据包解码后,将其放于特定数据结构内,由此完成识别、过滤以及解码数据包流,随后将数据表流上传至Cubro流量探针,以此探测数据包中是否存在入侵行为。

2.4 输出管理器

输出管理器负责将报警与日志通过更灵活的格式、形式呈现给管理员,这些信息被记录于文本文件与数据库内。该系统采用MUX-10F输出管理器,其记录方式见表1。

表1 MUX-10F记录方式

3 软件设计

为了提高系统检测性能,软件设计主要完成的工作包括NXDomain过滤、聚类分析以及交集分析。

3.1 域名过滤

在特定周期内,与正常主机相比,Botnet感染主机会访问域名,其中多为NXDomain,如果观察到的源IP是NAT后的IP地址,那么NXDomain访问量可能更大[4]。因此,在聚类分析前可通过限度值l过滤NXDomain访问较少的记录。当l为0时,被过滤掉的访问域名数仅占总域名数的0.1%;当l为100时,被过滤掉的访问域名数约占总域名数的5%。由此可知,l值越大,过滤掉的域名数越多,能够降低误检率,但是漏检率也会提高。作为软件设计的辅助检测,该步骤主要考虑降低漏检率,因此l值为1。过滤后根据域名字符特征、行为特征进行聚类分析。

3.2 聚类分析

为了聚类相似域名,在过滤后通过域名字符特征、行为特征对域名进行聚类。在字符特征聚类中,提取2级域长度、2级域名数字占比、2级域名熵值、全域名熵值以及域名级别等域名字符特征组成聚类向量(见表2),随后通过聚类算法对向量进行聚类分析。聚类算法可以根据数据自动选择聚类数量,减少了因人为选择聚类而出现的误差。

表2 域名字符聚类特征

在域名访问行为特征聚类中,利用感染相同Botnet的主机也会有相似的访问模式特性,以小时为周期对域名进行统计,得出每日访问序列,从而对域名进行序列聚类[5]。域名行为聚类仍采用聚类算法,但是其无法有效处理时间序列的维度特征,因此应先进行特征提取,得到访问总量、均值、方差以及访问最大值等特征(见表3),随后再对特征进行聚类。

表3 域名行为聚类特征

3.3 交集分析

对上述软件设计结果进行交集分析,能够检测出高度可疑域名。具体方法如下:设置集合x={x1、x2,…,xn}为字符聚类结果,集合y={y1、y2,…,yn}为行为聚类结果,那么交集集合为Sxy,如果Sxy内域名数量过少,就认为该集合内域名是可疑域名的可能性较小,不考虑该分组,反之则将其作为高度可疑域名。

4 系统试验

4.1 试验标准

为了验证Snort检测Botnet网络性能,采用误差矩阵、正确率、精确率以及误报率等指标进行系统性能评估,误差矩阵见表4。

表4 误差矩阵

正确率Acy是指流量被正确检测出来的概率,如公式(1)所示。

精确率Pon是指Botnet网络被正确检测与被检测成Botnet网络的比值,如公式(2)所示。

误报率Fpr是指正常流量被错误检测为Botnet流量的概率,如公式(3)所示。

综上所述,一个良好的Botnet网络检测系统应具有较高的检测精度和极低的误报率。

4.2 试验环境

试验采用深度学习框架,架构灵活,不仅支持各类网络类型、结构,而且也支持学习率(Constant Warmup,CW)功能。试验计算机CPU为I5-13400F,内存为XPG 8G*23200 DDR4,显卡为RTX4070,未使用GPU加速。

4.3 试验分析

以Botnet网络数据集为基准,分别评估基于Snort的Botnet网络检测系统和传统Botnet网络检测系统的性能。为了训练较高的性能,选定隐藏节点分别为10、20、30、40和50,基于Snort的Botnet网络检测系统、传统Botnet网络检测系统分别在训练集和测试集上的正确率,结果见表5。

表5 正确率比较

由表5可知,当选择相同隐藏节点时,基于Snort的Botnet网络检测系统在训练集上的检测正确率比传统检测系统高。当隐藏节点数量为10~40时,基于Snort的Botnet网络检测系统在测试集上的检测正确率比传统检测系统该,表明Snort在高维特征模型方面具备更强的建模能力。随着隐藏节点数量不断增加,当隐藏节点数量为50时,基于Snort的Botnet网络检测系统在训练集上保持了较高的检测正确率,但是在测试集上的检测正确率开始降低。当隐藏节点数量为10时,基于Snort的Botnet网络检测系统在训练集、测试集上检测正确率最高,分别为81.15%、75.52%,此时误差矩阵见表6。

表6 基于Snort的Botnet网络检测系统在训练集、测试集上的误差矩阵

当隐藏节点数量为20时,传统检测系统在训练集、测试集上的检测正确率最高,分别为73.75%、71.97%。基于Snort的Botnet网络检测系统(隐藏节点数量为10个)和传统检测系统(隐藏节点数量为20个)在训练集上检测正确率的变化情况如图3所示。由试验可知,基于Snort的Botnet网络检测系统的检测正确率比传统检测系统高。

在精确率方面,处于不同隐藏节点条件下,基于Snort的Botnet网络检测系统和传统检测系统在训练集、测试集上的精确率见表7。结果表明,当选择相同隐藏节点时,基于Snort的Botnet网络检测系统在训练集、测试集上的检测精确率比传统检测系统高。

表7 精确率比较

在误报率方面,处于不同隐藏节点条件下,基于Snort的Botnet网络检测系统和传统检测系统在训练集、测试集上的误报率见表8。结果表明,当选择不同隐藏节点时,基于Snort的Botnet网络检测系统在测试集上的误报率比同等条件下传统检测系统的误报率低。在训练集上,当隐藏节点为20时,基于Snort的Botnet网络检测系统的误报率比同等条件下传统检测系统的误报率高。

表8 误报率比较

5 结语

综上所述,Botnet网络会对互联网安全造成严重威胁,关于其检测系统的研究也是当今网络安全领域的核心课题。Botnet网络通过多种传播手段使大量主机感染病毒,需要有效的检测方法对其进行防御,因此该文设计了一种基于Snort的Botnet网络检测系统。试验结果表明,与传统检测系统相比,该系统具有较高的检测率和较低的误报率,可以提高Botnet网络检测的正确率,能够实时检测恶意网络流量、攻击行为。在后续研究中,应改进系统的匹配算法,从而进一步提高检测精度。

猜你喜欢
误报率域名集上
原始数据动态观察窗法在火灾特征信号融合提取中的应用研究
家用燃气报警器误报原因及降低误报率的方法
钻杆管体超声波探伤误报分析及措施
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
Combosquatting域名抢注的测量研究
如何购买WordPress网站域名及绑定域名
复扇形指标集上的分布混沌
神经网络技术在网络入侵检测模型及系统中的应用
腾讯八百万美元收购域名