DGA特征挖掘

简介:

摘自:https://paper.seebug.org/papers/Archive/drops2/%E7%94%A8%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E8%AF%86%E5%88%AB%E9%9A%8F%E6%9C%BA%E7%94%9F%E6%88%90%E7%9A%84C%26amp%3BC%E5%9F%9F%E5%90%8D.html

0x00 前言


本文用识别由域名生成算法Domain Generation Algorithm: DGA生成的C&C域名作为例子,目的是给白帽安全专家们介绍一下机器学习在安全领域的应用,演示一下机器学习模型的一般流程。机器的力量可以用来辅助白帽专家们更有效率的工作。

本文用到的演示数据集和python演示代码请参见 https://github.com/phunterlau/dga_classifier 关于编码和行文风格过于仓促的问题,请不要在意这些细节,如果有相关问题可以微博上@phunter_lau,大家互相交流进步。

0x02 数据收集


分类的任务需要告诉机器他用来学习的正例(positive samples)和反例(negative samples),在这里正例就是C&C域名,反例就是正常的合法域名。

正例和反例的涵盖范围和具体问题有关,具体到本文的例子,我选择Conficker(ABC三种混合)当作正例,Alexa前10万当作反例。Conficker的算法早在多年前公开。

0x03 特征工程


这几乎是整个文章最有值得读的部分。如果能把人类的经验用数量化表达给机器,机器就能学习到人类的经验,而特征(feature)就是人类经验的数量化。特征工程是个反复循环的过程,一开始我们找到基线特征,用分类算法计算并评价结果,如果结果不能达到预期,再回头来加入新的特征帮助更好的分类。

基本特征:随机性和熵

Shannon熵可以很好的判别fryjntzfvti.bizgoogle.com/qq.com之间的区别,因为前者用了很多不重复字母而qq.com的重复字幕比较多。但是很多合法域名的熵值和C&C域名之间的并非是绝对差距,比如baidu.com也是五个不重复的字母,这单个特征不足以最终决策,我们还一些其他高级的特征。

高级特征:还有什么能表达随机性呢

合法域名一般比较好念出来,C&C域名不好念

思考一下合法域名和C&C域名的目的,就可以想到:合法域名为了让人类记住会选一些好念(pronounceable)的域名,比如 google yahoo baidu等等有元音字母之类好念的,而C&C域名为了随机性就不太好念,比如fryjntzfvti.biz。域名里元音字母占的比重可以是个很好的特征。

“好念“这个概念也可以有另外一个高级一些的特征,叫做gibberish detection,判断一个字符串是不是能用人类的语言念出来,比如google就不是一个英文单词但是朗朗上口。这背后是一个基于马尔可夫链的模型,具体细节可以参见 https://github.com/rrenaud/Gibberish-Detector

连续 vs 分散

通过进一步观察我们可以发现,C&C域名的随机性也表现在连续出现的字母和数字上。一般随机生成的域名都不会出现大段连续的数字或者连续出现相同的字母。同时因为英文字母分布里辅音字母远多于元音字母,C&C更可能连续反复出现辅音字母,而合法域名为了好念多是元音辅音交替。这些都是不容易想到但是容易计算的特征,代码并不复杂。

还有什么?n-gram 的平均排名!

这是我个人认为比较巧妙的想法。

对于字符串文本的机器学习,n-gram (unigram(单字)bigram(相邻双字)trigram(相邻三字))常常能提供重要的特征。举例来说,fryjntzfvti.biz的域名的bigram分解是以下12个:

^f,fr,ry,yj,jn,nt,tz,zf,fv,vt,ti,i$

这里^$代表字符串的开头和结尾。观众朋友可以自行计算trigram当作练习。bigram/trigram本身出现的频率也可以当作特征,但是对这个问题来说,bigram本身可能有 (26+2)^2=784种组合,trigram就有21952种组合,特征向量的长度太长而我们的数据约有25万组,如果把他们本身当作特征,模型训练的速度很慢。(比较熟悉机器学习的观众朋友可能会提示用PCA等降维方法,我实际实验表明降维到20维左右效果也不错,在此不当作本文内容,请有兴趣的观众朋友自己实验一下。)

C&C域名的随机算法产生的bigram和trigram比较分散,而合法域名喜欢用比较好念好见的组合。如果把正例反例出现的bigram按照出现频率进行排序会发现,合法域名的bigram在频率排序里的位置比较靠前,而随机C&C域名产生的比较分散的bigram/trigram基本上频率都很低,所以bigram/trigram的平均排名也可以很好的区分C&C和合法域名。

扯一些额外内容。n-gram的分析方法也常用于malware的代码和二进制码的自动分析,比如ASM里面每个指令当作一个gram,指令的组合可能对应于一些可疑行为。靠人工找这些可能可疑行为对应的指令组合十分麻烦,但是机器就适合做这些繁琐的事情啊,只要把所有n-gram扔给机器做分类,最后机器会给出特定组合的权重,就能找到这些对应的指令对了。二进制代码的分析也有类似方法,参见最近Kaggle的malware分类比赛的获胜报告(参考文献3)。有白帽专家可能会问,有些可疑指令对可能距离比较远怎么办?这种情况就是skip-gram分析,建议谷歌搜索相关关键词,这里就不多说撑篇幅了。

究竟还能再挖出来什么特征呢?

特征工程就好像Taylor Swift的胸一样,你只要需要,用力挤努力挤还是有的。如果按照反例Alexa前10万名训练隐含马尔可夫链,计算一下从A_iA_i+1转换的概率。这个转换概率的分布对于正例有一些区别,也可以用来帮助区分。具体关于马尔可夫链相关知识请参见http://en.wikipedia.org/wiki/Markov_chain (解释起来背后的原因篇幅比较大,就只贴一下这个特征的分布图,但是不要害怕,看示例代码里的实现其实很简单,只是计算转移矩阵而已)

markov example

领域特征:安全专家的领域知识

对于C&C域名,不只是随机性,其他白帽专家才知道的领域知识也会提供重要的特征。

比如域名所在的ccTLD可以当作特征。我们知道多数情况下.com的域名申请又贵又要审核,所以现在很多C&C不会选择.com,反而会选一些审核不严的比如.biz .info .ru .ws以及最近爆发的.xyz之类的ccTLD都是C&C重灾区。中国的白帽专家也可能知道.cn现在申请都得备案,所以C&C也不太可能用.cn的根域名当作C&C。值得提醒的是,这些情况并非100%确定,比如C&C可能找到一个cn域名的下级域名当C&C而主域名已备案,这些需要机器综合考虑其他特征来判断。ccTLD这样的类别特征(categorial feature)在使用的时候需要编码变成 is_biz=0/1, is_ws=0/1这样展开的0/1向量,这个方法叫做OneHotEncoder。实际的模型结果也显示出来.biz .info之类的ccTLD对C&C域名的判断占的重要性比重很大。

还有一些看似比较无聊但是很有价值的知识:比如C&C域名现在越来越长,因为短的域名都被抢光了,所以域名长度也可以是重要的特征。更多这些特征需要安全专家加入自己的领域知识来得到,专家的领域知识在机器学习里的重要程度几乎是第一位的。

 

见原文。。。
















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7640055.html,如需转载请自行联系原作者




相关文章
|
对象存储 云计算
AGS无服务化分析基因数据 - mutect2 肿瘤样本分析
通过调用AGS的远程任务,可以完成一序列的基因数据的二级分析,不需要申请和持有云计算资源,就可以完成对海量数据的批量处理,目前可以支持人类全基因组,外显子,基因比对,宏基因组比对,Somatic胚系变异发现等业务场景的加速和低成本处理。 通过AGS调用mutect2任务来检测体细胞短突变, 短突变包括单核苷酸(SNV)以及插入和缺失(Indel)的改变。本文介绍如何通过AGS分析肿瘤样本。
903 0
AGS无服务化分析基因数据 - mutect2 肿瘤样本分析
|
机器学习/深度学习 编解码
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法
Nature子刊 | 谭济民、夏波等提出基因组构象预测模型及高通量计算遗传筛选方法
117 0
|
10月前
|
机器学习/深度学习 算法 大数据
[ICLR 2024] 基于Pathways架构的自适应多尺度时间序列预测模型Pathformer
阿里云计算平台大数据基础工程技术团队主导,与华东师范大学数据科学与工程学院合作的论文《Pathformer: Multi-Scale Transformers With Adaptive Pathways For Time Series Forecasting》被ICLR 2024接收,该论文提出了基于Pathways架构的自适应多尺度时间序列预测模型Pathformer,它从时间分辨率和时间距离角度进行多尺度时序建模,同时进一步提出自适应Pathways来动态调整多尺度建模过程,基于两者,Pathformer在阿里云数据集和公开数据集上取得SOTA预测效果,并展现出不错的泛化性和迁移性。
【KDD20】多变量时间序列异常检测算法之USAD:对抗性训练AE
# 前言 ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/931dfc0b-23ac-4f8e-9d5c-8d6986c90147.png) KDD20的paper - 链接:https://dl.acm.org/doi/pdf/10.1145/3394486.3403392 - 代码链接:https://githu
544 1
【KDD20】多变量时间序列异常检测算法之USAD:对抗性训练AE
|
10月前
|
机器学习/深度学习
ICLR 2024:基于Pathways架构的自适应多尺度时间序列预测
【2月更文挑战第17天】ICLR 2024:基于Pathways架构的自适应多尺度时间序列预测
1340 1
ICLR 2024:基于Pathways架构的自适应多尺度时间序列预测
|
机器学习/深度学习 传感器 存储
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者(一)
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者(一)
447 0
|
机器学习/深度学习 算法 计算机视觉
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者(二)
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者(二)
291 0
|
机器学习/深度学习 传感器 存储
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者
1031 0
Pillar-Base | 超越SECOND、PointPillar等一系列3D目标检测,PillarNet=Pillar王者
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
揭示Transformer周期建模缺陷!北大提出新型神经网络FAN,填补周期性特征建模能力缺陷
北京大学研究团队发现,Transformer等主流神经网络在周期特征建模方面存在缺陷,如记忆数据模式而非理解内在规律,导致泛化能力受限。为此,团队提出基于傅里叶分析的Fourier Analysis Network(FAN),通过显式建模周期性特征,提升模型的理解和预测能力,减少参数和计算量,并在多个实验中验证其优越性。论文链接:https://arxiv.org/pdf/2410.02675.pdf
39 3
|
10月前
|
数据可视化 数据挖掘
singleCellNet(代码开源)|单细胞层面对细胞分类进行评估,褒贬不一,有胜于无
`singleCellNet`是一款用于单细胞数据分析的R包,主要功能是进行细胞分类评估。它支持多物种和多分组分析,并提供了一个名为`CellNet`的类似工具的示例数据集。用户可以通过安装R包并下载测试数据来运行demo。在demo中,首先加载查询和测试数据,然后训练分类器,接着进行评估,包括查看准确率和召回率的曲线图、分类热图和比例堆积图等。此外,`singleCellNet`还支持跨物种评估,将人类基因映射到小鼠直系同源物进行分析。整体而言,`singleCellNet`是一个用于单细胞分类评估的综合工具,适用于相关领域的研究。
133 6