SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
为什么采用机器学习技术
       机器学习检测FastFlux域名




.

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

                     尼志强

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


                  June 12, 2012




                                      .   .   .   .   .   .

                  尼志强     anti-ffsn
为什么采用机器学习技术
             机器学习检测FastFlux域名




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



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




                                            .   .   .   .   .   .

                        尼志强     anti-ffsn
为什么采用机器学习技术
             机器学习检测FastFlux域名



. Fast Flux恶意域名


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

                                            .   .   .   .   .   .

                        尼志强     anti-ffsn
为什么采用机器学习技术
                            机器学习检测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 CV
   densitytrim.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    Embratel
   densitytrim.net. 1800        IN       A   189.105.17.229   Telecomunicacoes da Bahia S.A.




                                                                          .      .      .      .      .       .

                                             尼志强         anti-ffsn
为什么采用机器学习技术
                    机器学习检测FastFlux域名



. Fast Flux域名的特征

   .
   .                域名的IP地址列表经常发生变化
   ;; ANSWER SECTION:
   densitytrim.net. 1800    IN     A    201.158.79.143
   densitytrim.net. 1800    IN     A    91.120.97.114
   densitytrim.net. 1800    IN     A    186.136.85.116
   densitytrim.net. 1800    IN     A    189.87.103.16
   densitytrim.net. 1800    IN     A    189.105.17.229


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



                                                   .     .   .   .   .   .

                                 尼志强   anti-ffsn
为什么采用机器学习技术
               机器学习检测FastFlux域名



. 检测的困难
  .
  Fast Flux域名的特点
  .
       每次查询返回多个IP地址
      DNS应答记录的生命周期(TTL)很短
      应答的IP地址列表会发生变动
    应答的IP地址可能属于不同的运营商
  .
  .
  实际情况
  .
    采用循环DNS(Round-robin DNS)的网站也返回多个IP
      Alexa Top500的网站中,33%网站采用循环DNS机制,43%域
      名响应TTL<=1800s
      采用全球服务器负载均衡(Global Server Load Balancing, GSLB)
      或CDN(Content Delivery Network,内容分发网络)技术的网
      站返回的地址也可能属于不同的运营商和国家
  .                                           .   .   .   .   .   .

                          尼志强     anti-ffsn
为什么采用机器学习技术
              机器学习检测FastFlux域名



. 一组样本数据




  总计178个站点
    Fast Flux域名14个
    正常的站点164个
  5个测量指标




                                             .   .   .   .   .   .

                         尼志强     anti-ffsn
为什么采用机器学习技术
            机器学习检测FastFlux域名



. Fast Flux域名无法克服的问题
  .
  RRDNS、CDN、GSLB域名
  .
     服务有保证
        IP变动的频率较低
        IP地址的连通性好
      服务器的类型单一
  .
  .
  Fast Flux域名
  .
       服务没有保障
        IP地址的连通性差
        IP变动的频率较高
      域名地址池的IP和服务器类型多种多样
        服务器–同一个域名可能有Windows也可能有Linux
        甚至ADSL拨号上网的电脑
  .
                                           .   .   .   .   .   .

                       尼志强     anti-ffsn
为什么采用机器学习技术
            机器学习检测FastFlux域名



. 为什么采用机器学习技术
  .
  难以找出直接的判断规则
  .
    Fast Flux服务网络的特征与其它技术的存在交叉
    即使没有交叉,也难以将人的经验转换为自动检测的规则
        IP地址属于多个运营商是FF(人的经验) VS 究竟是几个(自动
        检测)
        IP地址列表经常发生变化(人的经验) VS 多长时间变动多少次
        (自动检测)
  .
  .
  机器学习不存在上述问题
  .
    合理的分类算法能够有效解决特征交叉的问题
      我们可以根据样本数据训练生成检测模型
      如果效果比较差,可以重新取样训练生成新的检测模型
  .
                                           .   .   .   .   .   .

                       尼志强     anti-ffsn
为什么采用机器学习技术        数据集
          机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                             算法二-k-NN算法



. 什么是机器学习




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




                                         .   .   .   .   .   .

                     尼志强     anti-ffsn
为什么采用机器学习技术        数据集
         机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                            算法二-k-NN算法



. 机器学习的基本流程




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

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

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




                                        .   .   .   .   .   .

                    尼志强     anti-ffsn
为什么采用机器学习技术        数据集
              机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                                 算法二-k-NN算法



. 机器学习的方式

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

      无监督学习
        又称聚类(clustering)
        发现数据属性和类别属性的关系
      监督学习
        又称分类(classification)
        根据过去的数据,判断未来的数据
      部分监督学习
        与监督学习的不同点是,历史数据无须全部标标注



                                             .   .   .   .   .   .

                         尼志强     anti-ffsn
为什么采用机器学习技术        数据集
           机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                              算法二-k-NN算法



. 聚类分析




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


                                          .   .   .   .   .   .

                      尼志强     anti-ffsn
为什么采用机器学习技术        数据集
          机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                             算法二-k-NN算法



. 分类流程
                                                     开始

 .
 1 取样

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

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

 . 校验
 3

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

                                         .   .   .    .     .   .

                     尼志强     anti-ffsn
为什么采用机器学习技术        数据集
           机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                              算法二-k-NN算法



. 检测FastFlux域名的数据集




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




                                          .   .   .   .   .   .

                      尼志强     anti-ffsn
为什么采用机器学习技术        数据集
               机器学习检测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方面的因素.
    . P(A|B)是已知B发生后A的条件概率,由于得自B的取值而被称
    2

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

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

                          尼志强     anti-ffsn
为什么采用机器学习技术          数据集
               机器学习检测FastFlux域名     算法一-朴素贝叶斯算法
                                    算法二-k-NN算法



. Bayes定理

   贝叶斯定理(Bayes theorem)是关于随机事件A和B的条件概率和边
   缘概率的一则定理
   .
   Theorem
   .
   设B1 , B2 , ...是样本空间Ω的一个划分,A为任一事件,则

                         P(Bi A)     P(A|Bi )P(Bi )
            P(Bi |A) =           = ∑∞
                          P(A)      j=1 P(Bj )P(A|Bj )
   .
   .
   如果只有A,B两种事件
   .
                                  P(A|B)P(B)
                     P(B|A) =
   .                                 P(A)


                                                .   .    .   .   .   .

                            尼志强     anti-ffsn
为什么采用机器学习技术              数据集
                          机器学习检测FastFlux域名         算法一-朴素贝叶斯算法
                                                   算法二-k-NN算法



. Naïve Bayes分类
         Bayes分类是就贝叶斯定理的概率分类方法
         Naïve是指强独立性假设
   .
   Naïve Bayes概率模型
   .
   假设F(f1 , f2 , . . . , fn )的特征完全独立,则

                                      P(C)P(f1 , f2 , . . . , fn )  1     ∏      n
       P(C|f1 , f2 , . . . , fn ) =                                = P(C)   P(fi |C)
                                        P(f1 , f2 , . . . , fn )    Z
   .                                                                        i=1

   .
   Naïve Bayes分类器
   .
   选择几率最大的类别,作为待分类样本的最终分类
                                                               ∏
                                                               n
        classify(f1 , f2 , ..., fn ) = arg max P(C = c)              P(Fi = fi |C = c)
                                              c
   .                                                           i=1
                                                                 .      .    .       .   .   .

                                          尼志强      anti-ffsn
为什么采用机器学习技术         数据集
                   机器学习检测FastFlux域名    算法一-朴素贝叶斯算法
                                       算法二-k-NN算法



. k-NN算法

       k-NN(k-Nearest Neighbor)是一种惰性学习方法
       不需要从训练数据中得到模型
       通过计算待分类数据与训练数据的距离进行分类
       欧氏距离(Euclidean Distance),马氏距离(Mahalanobis
       distance),. . .
   .
   欧氏距离(Euclidean Distance)
   .
   假设p = (p1 , p2 , . . . , pn )和q = (q1 , q2 , . . . , qn )是欧氏 空间的两个
   点,则p,q之间的欧氏距离为

                                      ∑
                                      n
                        d(p, q) =           (pi − qi )2
                                      i=1
   .
                                                      .   .   .   .   .   .

                              尼志强      anti-ffsn
为什么采用机器学习技术         数据集
           机器学习检测FastFlux域名    算法一-朴素贝叶斯算法
                               算法二-k-NN算法



. k-NN算法


                              绿点表示的待分类样本X
                              A类训练数据用蓝色正方形表示
                              B类训练数据用红色三角形表示
       ?                      以k为半径画圆,以圆形区域中的样
                              本数决定X属于哪一类
                                    if k==3 区域中有2个三角形,1个正
                                    方形,所以X属于B类
                                    if k==5 区域中有2个三角形,3个正
                                    方形,所以X属于A类




                                           .   .   .   .   .   .

                      尼志强      anti-ffsn
为什么采用机器学习技术        数据集
           机器学习检测FastFlux域名   算法一-朴素贝叶斯算法
                              算法二-k-NN算法



. k-NN算法

                                                                                 q


                                                                         0.950


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




                                      boot resampled training accuracy
      噪音数据的影响越小                                                          0.945



      敏感度也越弱
   k值得越小                                                                 0.940

      噪音数据的影响越大                                                                                       q



      敏感度也越强
   根据我们的实验k=5是比较适合的                                                      0.935



   数据                                                                                                                     q




                                                                                 5           6        7           8       9

                                                                                                 #Neighbors


                                                                                     .   .        .           .       .       .

                      尼志强     anti-ffsn

Weitere ähnliche Inhalte

Andere mochten auch

冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展hdhappy001
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDKShuduo Sang
 
Zejia_CV_final
Zejia_CV_finalZejia_CV_final
Zejia_CV_finalZJ Zheng
 
Research Park: Year in Review 2014
Research Park: Year in Review 2014Research Park: Year in Review 2014
Research Park: Year in Review 2014UIResearchPark
 
Wei_Zhao_Resume
Wei_Zhao_ResumeWei_Zhao_Resume
Wei_Zhao_ResumeWei Zhao
 
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli Ma
 
Resume_Yilun Chong_EN
Resume_Yilun Chong_ENResume_Yilun Chong_EN
Resume_Yilun Chong_ENYilun Chong
 
前端规范(初稿)
前端规范(初稿)前端规范(初稿)
前端规范(初稿)EnLei-Cai
 
CVLinkedIn
CVLinkedInCVLinkedIn
CVLinkedInJun Ma
 
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, YongDpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yongharryvanhaaren
 
Cheng_Wang_resume
Cheng_Wang_resumeCheng_Wang_resume
Cheng_Wang_resumeCheng Wang
 

Andere mochten auch (16)

冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展冯宏华:H base在小米的应用与扩展
冯宏华:H base在小米的应用与扩展
 
Paradigm Shifts
Paradigm ShiftsParadigm Shifts
Paradigm Shifts
 
Introducing Ubuntu SDK
Introducing Ubuntu SDKIntroducing Ubuntu SDK
Introducing Ubuntu SDK
 
Zejia_CV_final
Zejia_CV_finalZejia_CV_final
Zejia_CV_final
 
Lichang Wang_CV
Lichang Wang_CVLichang Wang_CV
Lichang Wang_CV
 
Research Park: Year in Review 2014
Research Park: Year in Review 2014Research Park: Year in Review 2014
Research Park: Year in Review 2014
 
Wei_Zhao_Resume
Wei_Zhao_ResumeWei_Zhao_Resume
Wei_Zhao_Resume
 
Xiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resumeXiaoli_Ma_developer_resume
Xiaoli_Ma_developer_resume
 
Resume_Yilun Chong_EN
Resume_Yilun Chong_ENResume_Yilun Chong_EN
Resume_Yilun Chong_EN
 
前端规范(初稿)
前端规范(初稿)前端规范(初稿)
前端规范(初稿)
 
CVLinkedIn
CVLinkedInCVLinkedIn
CVLinkedIn
 
Dpdk Validation - Liu, Yong
Dpdk Validation - Liu, YongDpdk Validation - Liu, Yong
Dpdk Validation - Liu, Yong
 
dpdp
dpdpdpdp
dpdp
 
Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet Hung DO-DUY - Spikenet
Hung DO-DUY - Spikenet
 
Cheng_Wang_resume
Cheng_Wang_resumeCheng_Wang_resume
Cheng_Wang_resume
 
Cv 12112015
Cv 12112015Cv 12112015
Cv 12112015
 

Ähnlich wie Fast flux domain detection

200701011
200701011200701011
2007010115045033
 
微博实时搜索
微博实时搜索微博实时搜索
微博实时搜索亚军 汪
 
OpenStack Network Planning
OpenStack Network PlanningOpenStack Network Planning
OpenStack Network PlanningHui Cheng
 
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统Jerry Wen
 
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for AgricultureJazz Yao-Tsung Wang
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
分布式索引系统调研
分布式索引系统调研分布式索引系统调研
分布式索引系统调研zijingyeshao
 
网站运维与监控
网站运维与监控网站运维与监控
网站运维与监控yunhaozou
 
海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOX海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOXaleafs
 
realtime-twitter-search
realtime-twitter-searchrealtime-twitter-search
realtime-twitter-search亚军 汪
 
异常检测在苏宁的实践
异常检测在苏宁的实践异常检测在苏宁的实践
异常检测在苏宁的实践Leo Zhou
 
App+protocol+analysis
App+protocol+analysisApp+protocol+analysis
App+protocol+analysisSunny Summer
 
App+protocol+analysis (1)
App+protocol+analysis (1)App+protocol+analysis (1)
App+protocol+analysis (1)Sunny Summer
 
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Community
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobaoterryice
 
赛诺朗基全局事件管理
赛诺朗基全局事件管理赛诺朗基全局事件管理
赛诺朗基全局事件管理Mktg
 

Ähnlich wie Fast flux domain detection (20)

200701011
200701011200701011
200701011
 
Openstack网络规划
Openstack网络规划Openstack网络规划
Openstack网络规划
 
微博实时搜索
微博实时搜索微博实时搜索
微博实时搜索
 
OpenStack Network Planning
OpenStack Network PlanningOpenStack Network Planning
OpenStack Network Planning
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
BDTC2015 南京大学-黄宜华-octopus(大章鱼):基于r语言的跨平台大数据机器学习与数据分析系统
 
2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture2006-11-16 RFID and OSS for Agriculture
2006-11-16 RFID and OSS for Agriculture
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
分布式索引系统调研
分布式索引系统调研分布式索引系统调研
分布式索引系统调研
 
网站运维与监控
网站运维与监控网站运维与监控
网站运维与监控
 
Cdc@ganji.com
Cdc@ganji.comCdc@ganji.com
Cdc@ganji.com
 
儲存三二話
儲存三二話儲存三二話
儲存三二話
 
海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOX海量统计数据的分布式MySQL集群——MyFOX
海量统计数据的分布式MySQL集群——MyFOX
 
realtime-twitter-search
realtime-twitter-searchrealtime-twitter-search
realtime-twitter-search
 
异常检测在苏宁的实践
异常检测在苏宁的实践异常检测在苏宁的实践
异常检测在苏宁的实践
 
App+protocol+analysis
App+protocol+analysisApp+protocol+analysis
App+protocol+analysis
 
App+protocol+analysis (1)
App+protocol+analysis (1)App+protocol+analysis (1)
App+protocol+analysis (1)
 
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom LabsCeph Day Shanghai - Ceph in Chinau Unicom Labs
Ceph Day Shanghai - Ceph in Chinau Unicom Labs
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
 
赛诺朗基全局事件管理
赛诺朗基全局事件管理赛诺朗基全局事件管理
赛诺朗基全局事件管理
 

Fast flux domain detection

  • 1. 为什么采用机器学习技术 机器学习检测FastFlux域名 . . 利用机器学习技术检测FastFlux域名 尼志强 国和信诚(北京)信息安全技术服务中心 June 12, 2012 . . . . . . 尼志强 anti-ffsn
  • 2. 为什么采用机器学习技术 机器学习检测FastFlux域名 1. 为什么采用机器学习技术 2. 机器学习检测FastFlux域名 数据集 算法一-朴素贝叶斯算法 算法二-k-NN算法 . . . . . . 尼志强 anti-ffsn
  • 3. 为什么采用机器学习技术 机器学习检测FastFlux域名 . Fast Flux恶意域名 Fast-flux的目的是为一个 合法域名分配多个(几百个 甚至几千个)IP地址 通过一个滚动的IP地址资 源库快速变换域名对应的 IP地址 是很多大规模网络犯罪行 为的重要环节 能够有效规避IP地址过滤 提高恶意网站服务器的可 用性和隐蔽性 . . . . . . 尼志强 anti-ffsn
  • 4. 为什么采用机器学习技术 机器学习检测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 CV densitytrim.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 Embratel densitytrim.net. 1800 IN A 189.105.17.229 Telecomunicacoes da Bahia S.A. . . . . . . 尼志强 anti-ffsn
  • 5. 为什么采用机器学习技术 机器学习检测FastFlux域名 . Fast Flux域名的特征 . . 域名的IP地址列表经常发生变化 ;; ANSWER SECTION: densitytrim.net. 1800 IN A 201.158.79.143 densitytrim.net. 1800 IN A 91.120.97.114 densitytrim.net. 1800 IN A 186.136.85.116 densitytrim.net. 1800 IN A 189.87.103.16 densitytrim.net. 1800 IN A 189.105.17.229 ;; ANSWER SECTION: densitytrim.net. 1790 IN A 122.55.141.132 densitytrim.net. 1790 IN A 124.122.237.62 densitytrim.net. 1790 IN A 186.136.85.116 densitytrim.net. 1790 IN A 189.105.17.229 densitytrim.net. 1790 IN A 91.120.97.114 . . . . . . 尼志强 anti-ffsn
  • 6. 为什么采用机器学习技术 机器学习检测FastFlux域名 . 检测的困难 . Fast Flux域名的特点 . 每次查询返回多个IP地址 DNS应答记录的生命周期(TTL)很短 应答的IP地址列表会发生变动 应答的IP地址可能属于不同的运营商 . . 实际情况 . 采用循环DNS(Round-robin DNS)的网站也返回多个IP Alexa Top500的网站中,33%网站采用循环DNS机制,43%域 名响应TTL<=1800s 采用全球服务器负载均衡(Global Server Load Balancing, GSLB) 或CDN(Content Delivery Network,内容分发网络)技术的网 站返回的地址也可能属于不同的运营商和国家 . . . . . . . 尼志强 anti-ffsn
  • 7. 为什么采用机器学习技术 机器学习检测FastFlux域名 . 一组样本数据 总计178个站点 Fast Flux域名14个 正常的站点164个 5个测量指标 . . . . . . 尼志强 anti-ffsn
  • 8. 为什么采用机器学习技术 机器学习检测FastFlux域名 . Fast Flux域名无法克服的问题 . RRDNS、CDN、GSLB域名 . 服务有保证 IP变动的频率较低 IP地址的连通性好 服务器的类型单一 . . Fast Flux域名 . 服务没有保障 IP地址的连通性差 IP变动的频率较高 域名地址池的IP和服务器类型多种多样 服务器–同一个域名可能有Windows也可能有Linux 甚至ADSL拨号上网的电脑 . . . . . . . 尼志强 anti-ffsn
  • 9. 为什么采用机器学习技术 机器学习检测FastFlux域名 . 为什么采用机器学习技术 . 难以找出直接的判断规则 . Fast Flux服务网络的特征与其它技术的存在交叉 即使没有交叉,也难以将人的经验转换为自动检测的规则 IP地址属于多个运营商是FF(人的经验) VS 究竟是几个(自动 检测) IP地址列表经常发生变化(人的经验) VS 多长时间变动多少次 (自动检测) . . 机器学习不存在上述问题 . 合理的分类算法能够有效解决特征交叉的问题 我们可以根据样本数据训练生成检测模型 如果效果比较差,可以重新取样训练生成新的检测模型 . . . . . . . 尼志强 anti-ffsn
  • 10. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 什么是机器学习 通常的叫法是数据挖掘与机器学习 机器学习是人工智能领域与算法相关的领域 几乎所有的非随机数据都存在内在规律,即模式(pattern) 这些数据存在的模式可以利用某种算法进行归纳 . . . . . . 尼志强 anti-ffsn
  • 11. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 机器学习的基本流程 . 将一组数据传递给某个算法 1 . 2 算法根据数据计算出与属性相关的信息(即生成模型) . 算法根据模型,对未来的数据进行预测 3 . . . . . . 尼志强 anti-ffsn
  • 12. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 机器学习的方式 . . 按照人工干预的程度分为三种 无监督学习 又称聚类(clustering) 发现数据属性和类别属性的关系 监督学习 又称分类(classification) 根据过去的数据,判断未来的数据 部分监督学习 与监督学习的不同点是,历史数据无须全部标标注 . . . . . . 尼志强 anti-ffsn
  • 13. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 聚类分析 . 事先不知道类别的个数与结构 分析数据之间的相似性和差异性 将数据相似性强的对象归为一类 . . . . . . . 尼志强 anti-ffsn
  • 14. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 分类流程 开始 . 1 取样 从历史数据中获得数据集 取样 对历史数据的类别进行标注 将数据分为多份–用于训练和校验 . 训练 2 训练 选择合适的算法,优化其参数 将数据输入机器学习引擎进行训练 训练完成输出分类模型 分类模型 . 校验 3 利用得到的分类模型对校验数据进行分类 校验 如果效果理想,就可以使用分类模型进行分类检测 如果效果不理想,重新进行数据取样、训练 结束 . . . . . . 尼志强 anti-ffsn
  • 15. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . 检测FastFlux域名的数据集 Na:每个DNS查询得到的IP地址(A记录)数量。 Nns:域名服务器(NS记录)数目。 Ncname:CNAME记录的数目。 Nasn:IP地址(A记录)所属运营商(自治系统编号)的数量。 Fluxiness:描述IP地址变化情况的迁移指数。 . . . . . . 尼志强 anti-ffsn
  • 16. 为什么采用机器学习技术 数据集 机器学习检测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方面的因素. . P(A|B)是已知B发生后A的条件概率,由于得自B的取值而被称 2 作A的后验概率. . 3 P(B|A)是已知A发生后B的条件概率,由于得自A的取值而被 称作B的后验概率. . P(B)是B的先验概率或边缘概率. 4 . . . . . . . 尼志强 anti-ffsn
  • 17. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . Bayes定理 贝叶斯定理(Bayes theorem)是关于随机事件A和B的条件概率和边 缘概率的一则定理 . Theorem . 设B1 , B2 , ...是样本空间Ω的一个划分,A为任一事件,则 P(Bi A) P(A|Bi )P(Bi ) P(Bi |A) = = ∑∞ P(A) j=1 P(Bj )P(A|Bj ) . . 如果只有A,B两种事件 . P(A|B)P(B) P(B|A) = . P(A) . . . . . . 尼志强 anti-ffsn
  • 18. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . Naïve Bayes分类 Bayes分类是就贝叶斯定理的概率分类方法 Naïve是指强独立性假设 . Naïve Bayes概率模型 . 假设F(f1 , f2 , . . . , fn )的特征完全独立,则 P(C)P(f1 , f2 , . . . , fn ) 1 ∏ n P(C|f1 , f2 , . . . , fn ) = = P(C) P(fi |C) P(f1 , f2 , . . . , fn ) Z . i=1 . Naïve Bayes分类器 . 选择几率最大的类别,作为待分类样本的最终分类 ∏ n classify(f1 , f2 , ..., fn ) = arg max P(C = c) P(Fi = fi |C = c) c . i=1 . . . . . . 尼志强 anti-ffsn
  • 19. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . k-NN算法 k-NN(k-Nearest Neighbor)是一种惰性学习方法 不需要从训练数据中得到模型 通过计算待分类数据与训练数据的距离进行分类 欧氏距离(Euclidean Distance),马氏距离(Mahalanobis distance),. . . . 欧氏距离(Euclidean Distance) . 假设p = (p1 , p2 , . . . , pn )和q = (q1 , q2 , . . . , qn )是欧氏 空间的两个 点,则p,q之间的欧氏距离为 ∑ n d(p, q) = (pi − qi )2 i=1 . . . . . . . 尼志强 anti-ffsn
  • 20. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . k-NN算法 绿点表示的待分类样本X A类训练数据用蓝色正方形表示 B类训练数据用红色三角形表示 ? 以k为半径画圆,以圆形区域中的样 本数决定X属于哪一类 if k==3 区域中有2个三角形,1个正 方形,所以X属于B类 if k==5 区域中有2个三角形,3个正 方形,所以X属于A类 . . . . . . 尼志强 anti-ffsn
  • 21. 为什么采用机器学习技术 数据集 机器学习检测FastFlux域名 算法一-朴素贝叶斯算法 算法二-k-NN算法 . k-NN算法 q 0.950 最关键的是选择合理的k值 k值得越大 boot resampled training accuracy 噪音数据的影响越小 0.945 敏感度也越弱 k值得越小 0.940 噪音数据的影响越大 q 敏感度也越强 根据我们的实验k=5是比较适合的 0.935 数据 q 5 6 7 8 9 #Neighbors . . . . . . 尼志强 anti-ffsn