21
. . . . . . 为什么采用机器学习技术 机器学习检测FastFlux域名 . . 利用机器学习技术检测FastFlux域名 尼志强 国和信诚(北京)信息安全技术服务中心 June 12, 2012 尼志强 anti-ffsn

Fast flux domain detection

Embed Size (px)

DESCRIPTION

检测FastFlux域名

Citation preview

Page 1: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.

...... 利用机器学习技术检测FastFlux域名

尼志强

国和信诚(北京)信息安全技术服务中心

June 12, 2012

尼志强 anti-ffsn

Page 2: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

...1 为什么采用机器学习技术

...2 机器学习检测FastFlux域名数据集算法一-朴素贝叶斯算法算法二-k-NN算法

尼志强 anti-ffsn

Page 3: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. Fast Flux恶意域名

Fast-flux的目的是为一个合法域名分配多个(几百个甚至几千个)IP地址通过一个滚动的IP地址资源库快速变换域名对应的IP地址是很多大规模网络犯罪行为的重要环节能够有效规避IP地址过滤提高恶意网站服务器的可用性和隐蔽性

尼志强 anti-ffsn

Page 4: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. Fast Flux域名的特征

.

...... 域名查询返回的地址比较分散,经常属于不同的运营商

;; QUESTION SECTION:;densitytrim.net. IN A

;; ANSWER SECTION:densitytrim.net. 1800 IN A 201.158.79.143 CABLEVISION DE SALTILLO SA DE CVdensitytrim.net. 1800 IN A 91.120.97.114 GTS-DATANET-AS DataNet Telecommunication Ltd.densitytrim.net. 1800 IN A 186.136.85.116 CABLEVISION S.A.densitytrim.net. 1800 IN A 189.87.103.16 Embrateldensitytrim.net. 1800 IN A 189.105.17.229 Telecomunicacoes da Bahia S.A.

尼志强 anti-ffsn

Page 5: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. Fast Flux域名的特征

.

...... 域名的IP地址列表经常发生变化

;; ANSWER SECTION:densitytrim.net. 1800 IN A 201.158.79.143densitytrim.net. 1800 IN A 91.120.97.114densitytrim.net. 1800 IN A 186.136.85.116densitytrim.net. 1800 IN A 189.87.103.16densitytrim.net. 1800 IN A 189.105.17.229

;; ANSWER SECTION:densitytrim.net. 1790 IN A 122.55.141.132densitytrim.net. 1790 IN A 124.122.237.62densitytrim.net. 1790 IN A 186.136.85.116densitytrim.net. 1790 IN A 189.105.17.229densitytrim.net. 1790 IN A 91.120.97.114

尼志强 anti-ffsn

Page 6: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. 检测的困难.Fast Flux域名的特点..

......

每次查询返回多个IP地址DNS应答记录的生命周期(TTL)很短应答的IP地址列表会发生变动应答的IP地址可能属于不同的运营商

.实际情况..

......

采用循环DNS(Round-robin DNS)的网站也返回多个IPAlexa Top500的网站中,33%网站采用循环DNS机制,43%域名响应TTL<=1800s采用全球服务器负载均衡(Global Server Load Balancing, GSLB)或CDN(Content Delivery Network,内容分发网络)技术的网站返回的地址也可能属于不同的运营商和国家

尼志强 anti-ffsn

Page 7: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. 一组样本数据

总计178个站点Fast Flux域名14个正常的站点164个

5个测量指标

尼志强 anti-ffsn

Page 8: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. Fast Flux域名无法克服的问题.RRDNS、CDN、GSLB域名..

......

服务有保证IP变动的频率较低IP地址的连通性好

服务器的类型单一

.Fast Flux域名..

......

服务没有保障IP地址的连通性差IP变动的频率较高

域名地址池的IP和服务器类型多种多样服务器–同一个域名可能有Windows也可能有Linux甚至ADSL拨号上网的电脑

尼志强 anti-ffsn

Page 9: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

.. 为什么采用机器学习技术

.难以找出直接的判断规则..

......

Fast Flux服务网络的特征与其它技术的存在交叉即使没有交叉,也难以将人的经验转换为自动检测的规则

IP地址属于多个运营商是FF(人的经验) VS究竟是几个(自动检测)IP地址列表经常发生变化(人的经验) VS多长时间变动多少次(自动检测)

.机器学习不存在上述问题..

......

合理的分类算法能够有效解决特征交叉的问题我们可以根据样本数据训练生成检测模型如果效果比较差,可以重新取样训练生成新的检测模型

尼志强 anti-ffsn

Page 10: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 什么是机器学习

通常的叫法是数据挖掘与机器学习机器学习是人工智能领域与算法相关的领域几乎所有的非随机数据都存在内在规律,即模式(pattern)这些数据存在的模式可以利用某种算法进行归纳

尼志强 anti-ffsn

Page 11: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 机器学习的基本流程

...1 将一组数据传递给某个算法

...2 算法根据数据计算出与属性相关的信息(即生成模型)

...3 算法根据模型,对未来的数据进行预测

尼志强 anti-ffsn

Page 12: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 机器学习的方式

.

...... 按照人工干预的程度分为三种

无监督学习又称聚类(clustering)发现数据属性和类别属性的关系

监督学习又称分类(classification)根据过去的数据,判断未来的数据

部分监督学习与监督学习的不同点是,历史数据无须全部标标注

尼志强 anti-ffsn

Page 13: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 聚类分析

.

......

事先不知道类别的个数与结构分析数据之间的相似性和差异性将数据相似性强的对象归为一类

尼志强 anti-ffsn

Page 14: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 分类流程

...1 取样从历史数据中获得数据集对历史数据的类别进行标注将数据分为多份–用于训练和校验

...2 训练选择合适的算法,优化其参数将数据输入机器学习引擎进行训练训练完成输出分类模型

...3 校验利用得到的分类模型对校验数据进行分类如果效果理想,就可以使用分类模型进行分类检测如果效果不理想,重新进行数据取样、训练

开始

取样

训练

分类模型

校验

结束

尼志强 anti-ffsn

Page 15: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 检测FastFlux域名的数据集

Na:每个DNS查询得到的IP地址(A记录)数量。Nns:域名服务器(NS记录)数目。Ncname:CNAME记录的数目。Nasn:IP地址(A记录)所属运营商(自治系统编号)的数量。Fluxiness:描述IP地址变化情况的迁移指数。

尼志强 anti-ffsn

Page 16: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. 概率的基本概念

.条件概率..

...... P(A ∩ B) = P(A|B)P(B) = P(B|A)P(A) = P(A)P(B)

.先验概率和后验概率..

......

假设A和B是两个事件...1 P(A)是A的先验概率或边缘概率. 之所以称为先验是因为不考虑任何B方面的因素.

...2 P(A|B)是已知B发生后A的条件概率,由于得自B的取值而被称作A的后验概率.

...3 P(B|A)是已知A发生后B的条件概率,由于得自A的取值而被称作B的后验概率.

...4 P(B)是B的先验概率或边缘概率.

尼志强 anti-ffsn

Page 17: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. Bayes定理

贝叶斯定理(Bayes theorem)是关于随机事件A和B的条件概率和边缘概率的一则定理.Theorem..

......

设B1,B2, ...是样本空间Ω的一个划分,A为任一事件,则

P(Bi|A) =P(BiA)P(A)

=P(A|Bi)P(Bi)∑∞j=1 P(Bj)P(A|Bj)

.如果只有A,B两种事件..

......P(B|A) = P(A|B)P(B)

P(A)

尼志强 anti-ffsn

Page 18: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. Naïve Bayes分类

Bayes分类是就贝叶斯定理的概率分类方法Naïve是指强独立性假设

.Naïve Bayes概率模型..

......

假设F(f1, f2, . . . , fn)的特征完全独立,则

P(C|f1, f2, . . . , fn) =P(C)P(f1, f2, . . . , fn)P(f1, f2, . . . , fn)

=1

ZP(C)

n∏i=1

P(fi|C)

.Naïve Bayes分类器..

......

选择几率最大的类别,作为待分类样本的最终分类

classify(f1, f2, ..., fn) = argmaxcP(C = c)

n∏i=1

P(Fi = fi|C = c)

尼志强 anti-ffsn

Page 19: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. k-NN算法

k-NN(k-Nearest Neighbor)是一种惰性学习方法不需要从训练数据中得到模型通过计算待分类数据与训练数据的距离进行分类欧氏距离(Euclidean Distance),马氏距离(Mahalanobisdistance),. . .

.欧氏距离(Euclidean Distance)..

......

假设p = (p1, p2, . . . , pn)和q = (q1, q2, . . . , qn)是欧氏空间的两个点,则p,q之间的欧氏距离为

d(p, q) =

√√√√ n∑i=1

(pi − qi)2

尼志强 anti-ffsn

Page 20: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. k-NN算法

?

绿点表示的待分类样本XA类训练数据用蓝色正方形表示B类训练数据用红色三角形表示以k为半径画圆,以圆形区域中的样本数决定X属于哪一类

if k==3 区域中有2个三角形,1个正方形,所以X属于B类if k==5 区域中有2个三角形,3个正方形,所以X属于A类

尼志强 anti-ffsn

Page 21: Fast flux domain detection

. . . . . .

为什么采用机器学习技术机器学习检测FastFlux域名

数据集算法一-朴素贝叶斯算法算法二-k-NN算法

.. k-NN算法

最关键的是选择合理的k值k值得越大

噪音数据的影响越小敏感度也越弱

k值得越小噪音数据的影响越大敏感度也越强

根据我们的实验k=5是比较适合的数据

#Neighbors

bo

ot

resa

mp

led

tra

inin

g a

ccu

racy

0.935

0.940

0.945

0.950

5 6 7 8 9

尼志强 anti-ffsn