微信号:ai-front

介绍:面向AI爱好者、开发者和科学家,提供最新最全AI领域技术资讯、一线业界实践案例、搜罗整理业界技术分享干货、最新AI论文解读。每周一节技术分享公开课,助力你全面拥抱人工智能技术。

病毒安全女博士:基于深度学习的DGA恶意域名分类算法

2017-12-26 17:00 深度学习

编辑|Emily
AI 前线导读: 近本文整理自瀚思科技曾凤在上海 ICAMIT201 上的演讲《基于深度学习的 DGA 恶意域名分类算法》。瀚思科技是中国第一家大数据安全公司。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
今天演讲主要分为五大部分:
  • 关于背景:僵尸网络(BotNet)以及 C2 服务器;

  • 域名生成算法(简称 DGA)介绍以及技术挑战;

  • 深度学习简介;

  • 我们的模型:基于词嵌入以及迁移学习

  • 实验结果。

一、背景说明

僵尸网络(BotNet)是指采用一种或多种传播手段,将大量僵尸主机(Bot)感染病毒,从而在主控者(Botmaster)和被感染主机之间,通过命令与控制服务器(Command and Control Server,C2 Server),形成的一个可一对多控制的网络。目的是尽可能地感染更多的机器。可以看出,不论是对网络安全运行还是用户数据安全的保护来说,僵尸网络都是极具威胁的隐患。

目前,攻击者操纵僵尸网络通常会使用多个域名的方式来连接至 C2 服务器,从而达到操控受害者机器的目的。这些域名通常会被编码在恶意程序中,这也使得攻击者具有了很大的灵活性,他们可以轻松地更改这些域名以及 IP。该连接方式最大的优势是用极为简单的代码便可实现,劣势是其极易被政府检测。所以就有了域名生成算法(Domain Generation Algorithms,DGA),通过 DGA,攻击者可以在短时间内自动产生成千上万的域名,这样就可有效地避开黑名单列表以及政府的检测。

二、 域名生成算法(简称 DGA)介绍以及技术挑战

DGA 到底是什么?简而言之,其通过输入一些种子,包含字符串、数字以及日期,利用加密算法,比如异或操作等,从而产生一系列的伪随机字符创,即域名。例如前段时间风靡全球的勒索病毒 Cryptolocker,它以邮件附件形式分发,感染计算机并加密近百种格式文件(包括电子表格、数据库、图片等),从而对用户进行勒索。我们对其输入一个日期 2014 年 2 月 7 号,采用 DGA 算法会产生新的域名 

www.intgmxdeadnxuyla.com。

安全人员可以通过收集样本以及对 DGA 进行逆向,来预测哪些域将来会被生成和预注册并将它们列入黑名单中。但 DGA 可以在短时间内生成成千上万的域,这是一个相当庞大的数量,我们不可能每天都重复收集和更新我们的列表。

所以我们需要实现的是对 DGA 产生的恶意域名进行实时检测。

为实现该目标,首先需要了解当前流行的检测方法以及所面临的技术难点。经典的检测技术主要分为两个阶段,特征工程和分类算法。如下图所示,特征工程主要从两个方面入手:

  1. 基于过滤的方法,采用 Alex 前 100 万个网站和黑名单对域名进行检测;

  2. 基于统计特征的方法,例如长度、二元语法、信息熵和生存周期等。

在这之后,需要对采取的特征进行分类,这其中常见的机器学习算法有随机森林、隐马尔科夫模型、贝叶斯方法等。

在整个检测过程中,特征工作最为繁琐,且以上工作流有如下的 缺点:

  1. 过度依赖人工特征工程,较难实现;

  2. 偏低的检测率以及偏高误报率;

  3. 速度慢,不能实时检测。

那么,我们该如何解决上述挑战?又为何选择深度学习?

因为深度学习有如下的 优点:

  1. 学习特征可自动提取特征,完全脱离人工特征;

  2. 较高的检测率以及较低的误报率;

  3. 速度快,能并行处理大规模数据。

三、深度学习简介

深度学习究竟是什么?

深度学习的概念源于人工神经网络的研究,是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络。它通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

即寻求最优的权重 w 使得与 y 值之间的距离最小。

下面来看当前比较优秀的几个深度学习网络。

上图展示了从 1998 年到 2015 年深度学习的一个发展状况,这些网络,例如 LeNet, AlexNet, VGG,Inception 网络已经在计算机视觉、语音识别、图像分类以及自然语言处理等方面取得了重大成功。如大家所见,这些网络变得越来越复杂,越来越深。那为什么会越来越深?其中最主要的原因在于,越深的网络意味着能更多的非线性函数,即它能从越复杂的函数中提取筛选出更有用的特征表示。

值得一提的是,基于 ImageNet 数据集已经有了很多优秀的训练好的深度学习模型。Imagenet 数据集对深度学习的浪潮起了巨大的推动作用,它有 1400 多万幅图片,涵盖 2 万多个类别,其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。

四、我们的模型:基于词嵌入以及迁移学习

那么如何将 ImageNet 训练好的深度学习模型应用到恶意域名检测问题上?这其中两个难点在于:

  1. 我们需要分类的是域名(字符类型),它在内容上有别于 ImageNet 中的图片;

  2. 我们需要处理的是百万级的域名数据,这训练起来非常耗时。

针对难点 1,我们可采用词嵌入方法,将字符类型的域名转换成图片;

针对难点 2,我们期望跳过训练模型这一步,直接将已有的训练好的 ImageNe 模型运用到域名中进行检测,这需要迁移学习的理论。

接下来我将分别解释词嵌入和迁移学习。首先来看看什么是词嵌入(如下图)。

词嵌入是自然语言处理中的名词。从数学上定义为一个映射:从文档空间投影到一个低维的数字型向量空间(一般用的维度可以是几十到几千)。该映射为一个单射函数,即每个 Y 只有唯一的 X 对应,反之亦然。它能够将文档进行数值化处理,从而将文档分析问题转化成相对应的数值向量(或者矩阵)问题。它主要有如下的两个优点:


  1. 降维—更为有效的表征;

  2. 文本相似度—更为相近的表征。

接下来我将介绍迁移学习。如下图,左边我们有源数据、源模型以及源标签;右边是目标数据(域名)、目标模型以及目标标签;中间则是“迁移学习”,它将源模型和目标模型连接起来。源模型(比如基于 ImageNet 训练好的深度学习模型)通过训练得到权重,我们将这些“学好的”权重迁移到我们的新数据集 ---- 域名,这就是著名的“迁移学习”。

到此,我已经介绍完所有需要用到的预备理论。接下来我将为大家介绍,我们如何将这些理论是应用到 DGA 恶意域名检测中的。

  1. 对原始域名,采用词嵌入对其数值化;

  2. 对 1)中所得到的向量进行归一化;

  3. 输入到已训练好的 ImageNet 模型,并提取倒数第三层作为特征;

  4. 利用特征训练决策树模型,从而达到分类和预测的目的。

五、实验结果

表 1 总结了真阳性率,假阳性率和准确性,从这张表可以看出,最好的模型是 Inception V4,它能达到 99.86% 的假阳性率。

图一展示的是不同模型基于 CPU 和 GPU 的性能表现。如大家所见,最快的模型为 SqueezeNet。当采用只用一个 CPU 运行时,每天只能处理不到 100 万的数据;当采用 1 个 GPU 运行时,每天能处理 200 多万的数据;当采用 2 个 GPU 运行时,每天能处理大约 500 的数据量。


论文链接:

http://article.sciencepublishinggroup.com/pdf/10.11648.j.ijiis.20170606.11.pdf


 
AI前线 更多文章 TalkingData肖文峰:技术饱和、人本数据与数据工程平民化 不止Google vs. Nvidia:深度学习引领AI芯片大战 2018年跳槽指南:如何找到一份人工智能相关的工作? UC Berkeley提出新型分布式执行框架Ray:有望取代Spark 摩拜单车背后的人工智能二三事
猜您喜欢 【视频】| 信息安全大会RSA 2017 Keynote演讲 春节书单|美团点评大牛推荐给同学们的25本好书 支付宝AR红包在线破解 京东流量日志准实时抽取架构 文 | 日拱一卒 | 狸木匠