黑产通常会注册大量的域名用于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 域名潜在关系的知识图谱