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生成域名的时候是随机的,所以元音字母这方面的特征不明显,我们可以通过这个差异来验证我们的想法。
读