13.7.2 挖掘域名潜在联系

黑产通常会注册大量的域名用于C&C服务器、钓鱼等,注册域名时会登记注册人的邮箱信息,通过关联IP、注册邮箱、域名可以挖掘潜在的关联关系。我们使用脱敏的测试数据来挖掘域名之间潜在联系的原理。测试样本记录了若干组IP、注册邮箱、域名的对应关系:


mail=mail1,domain=domain1,ip=ip1
mail=mail1,domain=domain3,ip=ip2
mail=mail2,domain=domain2,ip=ip1
mail=mail2,domain=domain4,ip=ip2
mail=mail2,domain=domain5,ip=ip3

字段含义分别为:

·mail,注册邮箱;

·domain,注册域名;

·ip,注册域名对应的IP。

逻辑上对应的拓扑结构如图13-27所示。

图13-27 域名潜在关系示意图

从拓扑图可以看出,邮箱mail1和mail2分别注册了域名domain1、domain3和domain2、domain4、domain5,其中domain1和domain2都指向同一个ip1,domain3和domain4都指向同一个ip2,初步怀疑邮箱mail1和mail2被同一黑产团体控制,domain1~domain4均疑似黑产同时控制,并很可能是同一用途,比如C&C服务器或者钓鱼网站。

逐行处理样本文件,获取对应的mail,domain,ip:


with open("../data/KnowledgeGraph/sample5.txt") as f:
    for line in f:
        line=line.strip('\n')
        mail,domain,ip=line.split(',')

以mail为中心,添加对应的domain节点:


G.add_edge(mail, domain)

以domain为中心,添加对应的ip节点:


G.add_edge(domain, ip)

可视化知识图谱:


nx.draw(G, with_labels=True, node_size=600)
plt.show()

对应知识图谱如图13-28所示。

图13-28 域名潜在关系的知识图谱