DGA域名
域名生成算法(Domain Generation Algorithm, DGA) 是一项古老但一直活跃的技术, 是中心结构僵尸网络赖以生存的关键武器, 该技术给打击和关闭该类型僵尸网络造成了不小的麻烦。 研究人员需要快速掌握域名生成算法和输入, 以便对生成的域名及时进行处置。
DGA依赖时间、 字典和硬编码的常量动态生成域名。典型的DGA算法实现如下:
def rand(r, seed):return (seed - 1043968403*r) & 0x7FFFFFFF
def dga(date, seed):charset = string.ascii_lowercase + string.digitstlds = [".net", ".org", ".top"]unix = int(time.mktime(date.timetuple()))b = 7*24*3600c = 4*24*3600r = ((unix//b)*b + c)for i in range(200):domain = ""for _ in range(12):r = rand(r, seed)domain += charset[r % len(charset)]r = rand(r, seed)tld = tlds[r % 3]domain += tld