DGA简介

计算机网络在给人们生活带来便利的同时,也遭受了恶意软件滥用带来的严重威胁。目前,恶意软件的数量和复杂度持续增长,已成为威胁网络安全的强敌。僵尸网络是恶意软件滥用的典型例子,它由大量的受控主机和一个或多个命令与控制服务器(C2)构成,C2服务器与受控主机相互通信传递命令。为了逃避域名黑名单的检测,恶意软件常利用DGA算法来产生大量域名,实现对受控主机的持续性控制

DGA即域名生成算法,是一种利用特定种子字符,结合加密算法,从而生成一系列伪随机恶意域名的方法。新型僵尸网络等利用DNS服务隐藏其命令与控制服务器(C2),提高生存性,其行为主要分为感染阶段攻击阶段

感染阶段

当受害者主机不小心下载了恶意代码,主机就会被感染。恶意代码会在被感染主机上不断产生大量的伪随机域名,并向DNS服务器发送大量的DNS查询请求。如果查询的某伪随机域名恰好是已经注册了的C2域名,那么被感染主机就会连接上该C2域名所对应的C2服务器。

攻击阶段

被感染主机集合接收了来自C2服务器的命令后,就会向受害主机发动攻击。

数据预处理

通过分析 DNS 流量检测出恶意代码所使用的DGA域名,识别其恶意行为。可采用分类算法对待检测DNS 流量包中的域名进行二分类,识别出恶意域名。并采用聚类算法对恶意域名进行家族聚类,聚集出各个家族的 DGA 域名。

训练样本数据预处理

在用分类算法进行模型训练之前,需要对训练样本进行数据预处理。可使用 Alexa的Top网站域名作为正样本,将360公开威胁情报DGA 域名作为负样本。并对正负样本打上标签,生成带标签的训练集。

待检测域名数据预处理

从DNS流量包中提取出DNS请求包,从请求包中提取出请求域名,再对请求域名进行去重及去特殊字符处理。最后将有效域名分别过一遍黑白名单(即正负样本),过滤掉已存在黑白名单中的已知域名,将剩下的未知域名作为待检测域名。

DGA域名识别

LSTM长短期记忆网络简述

循环神经网络算法RNN由于具有记忆能力,在处理字符序列上具有独到的优势。但是一旦前后关联信息相隔太远,RNN 则无法有效利用历史关联信息。LSTM长短期记忆网络是一种特殊的循环神经网络,它解决了循环神经网络中出现的长依赖问题,能记住较长的历史信息,这点在处理字符序列数据的时候非常有效。

模型训练

对于DGA域名的检测选用LSTM长短期记忆网络算法进行二分类。首先需要输入打好标签的正负训练样本作为待训练域名数据集合,并建立域名字符与数值的对应关系。然后根据字符与数值的对应关系和域名最大长度,将域名转换为固定长度的向量,并且对长度不够的域名进行自动补零,以此统一化向量。接着按照一定比例来划分训练集和测试集,并构建LSTM神经网络模型。模型包括嵌入层、LSTM层、Dropout层、Dense全连接层以及Sigmoid激活层。最后进行模型训练,并使用AUC分数评估训练效果。

DGA域名检测

首先将待检测域名按照同样的字符与数值对应关系进行转换,然后将转换后的数值向量输入训练好的LSTM检测模型进行检测,最后输出正常域名与恶意DGA域名。整体检测过程如下:

DGA家族聚类

特征提取

在分类完成后,需要将检测出来的恶意域名进行家族聚类。在进行聚类之前,最重要的步骤就是提取特征。通过 DGA 算法生成的域名进行通信的僵尸网络也叫作 DGA 家族,一个 DGA 家族通常对应一个 DGA 算法,或者一组相似的DGA 算法。DGA 算法有多种,不同的DGA算法生成的域名特征不同,但是同一个 DGA 算法生成的域名,在词法方面会表现出相同或相近的特征。DGA 生成的域名要么由随机英文字符组成,要么由全数字和数字、英文字符混合组成,甚至一些高级恶意代码使用的 DGA 可以生成一系列可读的域名(类似于英文单词)。因此从待聚类的恶意域名中分别提取以下特征:域名的 n-gram特征,字符熵值,数字特征,有意义字符所占百分比特征。

n-gram 特征

n-gram是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为n的滑动窗口操作,形成了长度是n的字节片段序列。当n=2时,称为bigram,n=3称trigram,利用bigram以及trigram的特性,可以用来区分域名的可读性。由于DGA算法生成的域名产生的bigram和trigram比较分散,并且不同DGA算法产生的域名的可读性不同,因此采用bigram以及 trigram作为特征,分别统计待检测域名的2级域以及3级域部分的相邻双字符以及相邻三字符在语料库中出现次数的平均值,方差以及中位数,以此来权衡各个家族域名的可读性

字符熵值特征

由于DGA生成算法产生的域名大多都是随机字符,具有无序性。而熵能度量随机字符串的无序性,字符串越无序,随机性越高,熵越大。反之,字符串越有序,随机性越低,熵越小。并且不同家族域名无序性不同,熵不同。因此用熵的特征可以量化不同家族域名字符串的随机性大小。

首先判断域名级别,然后分别求域名的二级域及三级域中出现的所有字符的熵的和。

数字特征

DGA 生成的域名一般由纯字符或者字符与数字混合的随机字符串构成。并且同一 DGA 生成的域名具有较高的相似性,因此基于这个特点,分别提取域名的总长度特征,2 级域及 3 级域的长度,n 级域 n 的取值以及 2 级域及 3 级域中数字字符所占的百分比特征。

有意义字符所占百分比特征

一些高级DGA为了提高抗逃逸能力,生成类似于人工生成的域名,与其他DGA相比具有可读性,基于这种现象,分别统计2级域以及 3级域字符串中有意义字符的百分比,并选取值最大的百分比。

将以上 4 种类别的特征进行特征融合,由于各个特征取值范围不同,因此需要将特征值缩放到相同区间,以便获取更好的聚类效果。可采用归一化或者标准化等方式对特征进行处理。

DBSCAN聚类算法简述

DBSCAN是基于密度空间的聚类算法,它不需要预先确定聚类的数量,而是直接根据数据本身的紧密程度来推测聚类的数目。算法思想为:首先任意选择一个没有被访问过的点,找出所有在其扫描半径之内的邻近点。如果邻近点的数量大于或者等于最小包含点数,则将当前点与其邻近点形成一个簇,并且将当前点标记为已访问,然后递归,用相同的方式处理该簇内所有未被标记为已访问的点,从而对簇进行扩展。如果邻近点的数量小于最小包含点数,则将当前点标记为噪声点。用同样的方法去处理未被访问过的点,直到所有的点都被标记为已访问。

聚类

由于提取特征较多,而DBSCAN 对于高维特征不敏感,因此需要将特征向量进行降维处理。并对降维后的特征进行聚类,通过反复调节扫描半径 eps及最小包含点数 MinPts等参数,根据CH 分数及轮廓系数等评价指标综合判断最佳聚类效果,从而得到各个家族的DGA域名。

总结

基于机器学习的DGA域名检测方法依赖训练样本的数量,需要对大量样本进行训练。并且不同DGA家族域名数量相差较大,会存在DGA样本数据分布不均衡,导致对各类DGA家族域名检测率存在差别。目前的DGA域名随机性较高,识别较为困难,还需进一步探索新的检测方法,DGA域名检测工作仍然任重道远。

基于机器学习的DGA域名检测相关推荐

  1. 毕业设计-基于机器学习的恶意域名检测系统

    目录 前言 课题背景和意义 实现技术思路 一.相关研究 二.恶意域名检测流程 三.特征分析 四.实验与检测效果分析 五.总结 实现效果图样例 最后 前言

  2. 机器学习DGA域名检测

    恶意域名 恶意域名是指黑客在攻击过程中或者对目标网络实施控制时,使用dga算法生成的域名,这种域名通常硬编码在恶意软件中.我们在做流量分析时不仅要通过流量的指纹特征识别威胁,也可以通过检测是否解析了恶 ...

  3. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...

    基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...

  4. 基于机器学习的DDos攻击检测

    2基于机器学习的DDoS攻击检测方法 环境:pycharm+python3.4 2.1数据分析与特征工程 2.1.1数据来源 kaggle 2.1.2数据大小 训练集:80万条 测试集:30万条 2. ...

  5. [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  6. 基于机器学习的KPI异常检测(当初的讲课课件)

    基于机器学习的KPI异常检测(当初的讲课课件)

  7. 基于机器学习的web异常检测(转)

    阿里聚安全 Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活 ...

  8. 基于机器学习的web异常检测

    Web防火墙是信息安全的第一道防线.随着网络技术的快速更新,新的黑客技术也层出不穷,为传统规则防火墙带来了挑战.传统web入侵检测技术通过维护规则集对入侵访问进行拦截.一方面,硬规则在灵活的黑客面前, ...

  9. python数据库开发 dga_利用Python实现DGA域名检测

    *本文原创作者:feiniao,本文属于 FreeBuf 原创奖励计划,未经许可禁止转载.前段时间爆发的利用永恒之蓝进行勒索及xshell等事件,各大厂家都站在不同的角度分析了相应的事件及程序,对于对 ...

  10. 毕业设计 : 基于机器学习的驾驶疲劳检测 - 开发记录

    文章目录 0 前言 1 总结 2 基于多视频窗口的疲劳驾驶监测系 3 基于近红外图像的疲劳驾驶检测 4 基于面部特征的全天候疲劳驾驶检测及预警 5 其他方法 最后 0 前言 最近在帮同一位同学研究基于 ...

最新文章

  1. 深度分析define预处理指令
  2. 展望下一代语言:Fortress, Chapel or X10(转)
  3. BZOJ 2434 阿狸的打字机
  4. [译文]Domain Driven Design Reference(五)—— 为战略设计的上下文映
  5. 【数据结构与算法】之深入解析“寻找峰值”的求解思路与算法示例
  6. Linux下怎么创建和进入带有空格的文件夹
  7. 计算机科学已发展成为一门,计算机前沿技术论文
  8. SQL 2008R2 安装失败问题
  9. 4.jenkins 添加一台 Linux 服务器
  10. 拓端tecdat|R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据
  11. 生成word_用Word生成员工信息表,单独生成独立文件,还能自动命名
  12. 高并发之——Guava Cache
  13. ISP之色差增益抑制(Chroma Gain Suppression)
  14. VC++ 6.0实现视频捕捉(VFW)
  15. Mac终端远程连接历史记录怎么清除
  16. Obsidian学习笔记(一):插件Excalidraw创建图表
  17. 浅析ERP系统--人资
  18. Angular +Ionic实现关注与取消关注
  19. 基于 HTML5 Canvas 的简易 2D 3D 编辑器
  20. QGIS基本功|5 QGIS图层进阶(二)- 连接属性表

热门文章

  1. android模拟器横屏显示,安卓模拟器bluestacks怎么横屏显示
  2. 学习PPT好帖子 分享之
  3. SAP PS 后台配置
  4. 计算机管理单元受到策略限制怎么解决,组策略编辑器管理单元无法打开
  5. 一个前端面试官的自白:Connecting the Dots
  6. python资本市场财务数据分析_不懂财务数据分析?教你一分钟看懂财务报表
  7. 机器人主流编程语言盘点 及优缺点分析
  8. word 制作流程图
  9. 人工智能AI对客户服务的影响正在形成
  10. python二元一次方程组用鸡兔同笼的思路来写编程_3应用二元一次方程组——鸡兔同笼教学设计...