学习笔记(十):使用支持向量机区分僵尸网络DGA家族

本文介绍了使用支持向量机(SVM)来区分僵尸网络DGA(域生成算法)家族的方法。首先,通过数据搜集和清洗,收集了包括cryptolocker和post-tovar-goz在内的DGA域名以及alexa前1000域名。接着,进行了特征化处理,如计算元音字母个数比例、去重后字母数字与域名长度比例、平均Jaccard系数以及HMM系数。通过这些特征,可以发现正常域名与DGA域名之间的差异。最后,利用SVM模型进行验证,以实现对DGA家族的有效区分。
摘要由CSDN通过智能技术生成

1.数据搜集和数据清洗

      ·1000个cryptolocker域名

      ·1000个post-tovar-goz域名

      ·alexa前1000域名

       从DGA文件中提取域名数据:

def load_dga(filename):
    domain_list = []
    with open(filename) as f:
        for line in f:
            domain = line.split(",")[0]
            if domain >= MIN_LEN:
                domain_list.append(domain)
    return domain_list

     alexa文件使用CSV格式保存域名的排名以及域名,提取方式:

def load_alexa(filename):
    domain_list=[]
    csv_reader = csv_reader(open(filename))
    for row in csv_reader:
        domain = row[1]
        if domain >= MIN_LEN:
            domain_list.append(domain)
    return domain_list

2.特征化

     1)元音字母个数

           正常人在取域名的时候,通常会偏向取”好读“的几个字母组合,这使英文的元音字母比例会比较高。DGA生成域名的时候是随机的,所以元音字母这方面的特征不明显,我们可以通过这个差异来验证我们的想法。

        读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值