利用爬行和深度学习进行基于网络流的恶意软件检测

415 阅读4分钟

COVID-19大流行加快了社会各方面的数字化进程,导致越来越多的设备和个人连接到网络。然而,这种数字化的激增也导致了网络钓鱼攻击的增加,攻击者利用恶意网站等策略从毫无戒心的个人那里获取私人信息。

检测这些类型的恶意活动需要人类大量的专业知识和努力。此外,攻击者使用的模式往往隐藏在网络流量数据中,使人类操作者难以识别。

image.png

基于网络流量的恶意软件检测系统的方案

在这项研究中,我们提出了一种新颖的基于深度学习的方法,利用通过网络爬虫收集的数据来检测恶意软件,该爬虫系统地请求访问良性和恶意网站。我们的方法涉及分割网络流量,并从数据中提取高级特征,然后用来训练一个深度神经网络来区分良性和恶意流量。这个系统可以通过检测网络流量数据中客户-服务器互动的隐藏模式来识别恶意的流量。

为了评估我们提出的恶意软件检测方法的性能,我们使用了各种指标,如精度、召回率和f1得分。我们的实验结果表明,该系统可以有效地学习从网络流量中提取高水平的见解,并准确地识别恶意软件。

image.png

为了收集研究数据,我们部署了一个网络爬虫,访问了来自加拿大网络安全研究所的总共1400个良性URL和1400个恶意软件URL。网络爬虫系统性地向这些网站发送请求,使我们能够收集一个全面的数据集进行分析。

为了收集实时网络流量数据,我们部署了一个配备Tcpdump的工作站。该工作站负责收集和存储网络爬虫运行期间产生的网络流量数据。这些数据随后被用于进一步分析,作为我们提出的基于深度学习的检测恶意软件的方法的一部分。

image.png

在我们的研究中,我们利用了一个名为NFStream的流量分析工具来处理从局域网收集的数据包捕获。NFStream使我们能够根据网络接口、协议和IP/端口来源/目的地将数据包捕获转换为各种流量,从而形成网络流量的集合。然后,这些流量中的每一个都用一个12项特征向量来表示。

为了进一步完善我们的数据集,我们采用了另一个名为dpkt的工具来提取与爬行目标有关的流量。具体来说,我们选择了具有与我们数据集中的URL的IP地址相匹配的源IP地址或目的IP地址的流量。这个过程产生了一个由2472个良性特征向量和5109个恶意特征向量组成的特征数据集。

image.png

各种流量特征对模型推理结果的影响因素的可视化。

除了评估我们基于深度学习的恶意软件检测方法的性能外,我们还优先考虑了模型决策过程的可解释性。为了实现这一目标,我们从训练好的ANN模型中提取了第一层的权重,并计算了连接到输入层每个节点的权重的平均值。然后,我们使用影响因子函数将这些权重转换为影响因子,这代表了各种流量特征对ANN模型推理的影响。影响因子被可视化,观察到应用协议和目的端口的特征与其他特征相比对模型的推断有更大的影响。这种可解释性水平确保了我们模型的决策过程是透明和可解释的。

展望未来,我们计划将我们的努力扩展到一个合作计划,在这个计划中,网络可以在联合学习架构中分享对恶意软件检测的见解。这种方法有可能进一步提高我们模型的性能,并提供更强大的恶意软件检测能力。