20200809 -

引言

DGA算法是一种生成域名的算法:以时间或者一些特定字符串作为种子,然后利用一定的算法(例如加密算法),来生成随机域名的方式。
恶意软件的制作者通过这种方式来迷惑安全工作者,传统的恶意软件利用硬编码的方式将CC域名保存在程序中,安全工作者可以对这部分域名进行封堵实现截断通信的过程。在DGA算法的帮助下,恶意程序会发出大量DNS请求(包含DGA生成的域名),而制作者利用同样的算法和同样的种子生成同样的列表,从中挑选任意个在DNS厂商进行注册,以此躲避封堵。

而针对DGA的研究,可以有以下几点:正常域名与DGA域名的分类,DGA域名的家族分类等。本篇文章将记录一些研究DGA的文章或者思路,还有自己的实验;为其他研究者提供一些思路,同时给自己做备忘。

文章及数据资源

  1. 样本数据(DGA域名、正常域名)
  2. Domain提取的第三方库
  3. 不错的文章

1. 样本数据(DGA域名、正常域名)

DGA域名获取的资源有很多,这里仅记录360 netlab的地址。

  • 360 DGA

正常域名可以从AWS上获取。

  • 正常域名(TOP-1M)

上述资源应该是随着时间更新的,如果有时候分析效果不一样,可能是因为时间不一致。
同时github上一位研究者收集了很多DGA家族生成算法的脚本,可以自己利用种子以及时间来生成大量样本[2]。

2. Domain提取的第三方库

关于域名的结构,专门的讲解,后续补充上。之前提取顶级域名,或者提取域名的时候都是自己用Python的split(’.’)分解。但是这种方法其实是很弱,无法应对复杂的情况。后来找到了一个库tldextract;这个库[1]可以帮助提取这部分信息。

>>> import tldextract
>>> tldextract.extract('http://forums.news.cnn.com/')
ExtractResult(subdomain='forums.news', domain='cnn', suffix='com')
>>> tldextract.extract('http://forums.bbc.co.uk/') # United Kingdom
ExtractResult(subdomain='forums', domain='bbc', suffix='co.uk')
>>> tldextract.extract('http://www.worldbank.org.kg/') # Kyrgyzstan
ExtractResult(subdomain='www', domain='worldbank', suffix='org.kg')
>>> ext = tldextract.extract('http://forums.bbc.co.uk')
>>> (ext.subdomain, ext.domain, ext.suffix)
('forums', 'bbc', 'co.uk')

以上代码是从他pypi的网站上复制过来。按照他的提取结果,分为三个部分子域名,域名,后缀
后续研究也将按照这种方式来分析,就不按照什么三级域名、二级域名来说明了。

3. 不错的文章

3.1 Getting Started with DGA Domain Detection Research

该篇文章算是一个入门的文章,介绍了很多基础的内容;本篇博客前面的内容很多就是抽取了这部分信息。

3.2 使用生成对抗网络(GAN)生成DGA

这篇文章通过训练GAN来生成正常的域名,我之前的时候是思考能不能生成DGA域名,但是仔细想了想,还是这篇文章的意思对。如果是生成DGA域名,本身这种域名就具备一定的随机性,那么你生活生成的域名还是带有一定的随机性,这个没办法判断。特别是,如果模型学习的时候也学习了一种随机性,那么这个肯定能骗过GAN的判别器。
那么是不是说明,假设你完全用随机的字符串来生成域名,也算是DGA呢?
不过,我反过来想象,虽然他生成域名的时候是具备一定随机性的,但是实际上,根据你的种子,他每次生成的是时候,都是决定性的序列。所以,你想学习的是这种序列模式,如果从这个角度来思考就能理解了。

参考文章

[1]tldextract
[2]baderj/domain_generation_algorithms

DGA - 研究内容整理相关推荐

  1. 数据挖掘技术的来源、历史、研究内容及常用技术

    数据挖掘技术的来源.历史.研究内容及常用技术 1 数据挖掘技术的由来 1.1网络之后的下一个技术热点 我们现在已经生活在一个网络化的时代,通信.计算机和网络技术正改变着整个人类和社会.如果用芯片集成度 ...

  2. 自然语言处理常见应用领域及研究内容

    自然语言处理研究的内容包括但不限于如下分支领域:文本分类.信息抽取.自动摘要.智能问答.话题推荐.机器翻译.主题词识别.知识库构建.深度文本表示.命名实体识别.文本生成.文本分析(词法.句法.语法). ...

  3. Google C++ 风格指南内容整理

    之前一直没有全面的看过Google C++风格指南,现在很多公司进行C++开发都要求按照Google C++风格.在这个网站 http://zh-google-styleguide.readthedo ...

  4. 最新【独家沙龙内容整理】机器女友?—百度微软讯飞等顶级专家谈人机对话黑科技及未来 ——by中科院孢子创客空间

    最新[独家沙龙内容整理]机器女友?-百度微软讯飞等顶级专家谈人机对话黑科技及未来 --by中科院孢子创客空间 1.写在前面 非常非常感谢[公众号:机器学习研究会 ]举办的这次沙龙.赞赞赞.以下内容皆来 ...

  5. 小学生python游戏开发pygame--设置内容整理

    游戏开发,相关设置内容单独放在一个文件中 如长宽,大小,颜色等起名shezhi.py,如下: # _*_ coding: UTF-8 _*_ # 开发团队: 信息化未来 # 开发人员: Adminis ...

  6. 人工智能导论第一次作业(人工智能有哪些研究途径与方法?它们的关系如何?人工智能有哪些研究内容?人工智能领域有哪些分支领域和研究方向?现在人工智能有哪些学派?它们的认知观是什么?......)

    人工智能有哪些研究途径与方法?它们的关系如何? (1)研究途径与方法 "心理模拟.符号推演" 心理学派.逻辑学派和符号主义的基于"心理模拟和符号推演"的人工智能 ...

  7. 01_01 python机器学习_第一章学习内容整理_加载样本数据绘制散点图

    第一章学习内容整理_加载样本数据&绘制散点图 01 常用包说明 python可以解决很多问题,相应解决方案使用的包也很多,不太好记忆. 为了便于记忆,用大白话简单描述一下各个包的功能. # 科 ...

  8. 人工智能/云原生/数据科学/计算等方向内容整理志愿者招募了!

    持续招募内容整理志愿者!云原生.数据科学.AI.低代码.计算等方向,有意愿的小伙伴,欢迎识别二维码提前报名哦.我们将持续为爱学习.有时间的小伙伴,提供多重福利! 要求: 1. 你需要具备一定学术背景, ...

  9. 不止Markov决策过程,全景式分析强化学习研究内容

    作者 | 肖智清 编辑 | 刘静 来源 | CSDN(ID:CSDNnews) 强化学习作为通用人工智能的希望,吸引了很多人工智能爱好者学习和研究.Markov决策过程是最知名的强化学习模型,强化学习 ...

最新文章

  1. 电脑显示没有被指定在上运行_win10系统运行程序提示“dll没有被指定在windows上运行”的办法...
  2. picf509c语言程序,樊媛媛c语言程序设计09编译预处理.pptx
  3. 并行流 线程池_使用自定义线程池处理并行数据库流
  4. Thread.join()
  5. 铺地毯(信息学奥赛一本通-T1118)
  6. WAMP下解决localhost可以访问但IP地址无法访问的问题
  7. Python 第一章 基础知识
  8. linux 离线 svn插件安装,Eclipse离线安装svn插件
  9. .Net更改代码生成不生效
  10. MATLAB三阶导怎么输入,三阶样条插值(一阶导数边界条件) matlab程序
  11. dell的boot设置
  12. eova常用前端组件介绍
  13. 阅读 SICP 感想(0. 关于前言和序言)
  14. 开关为什么要过零检测?内附带代码
  15. 坐禅修行木鱼诵经流量主小程序开发
  16. 微信小程序云开发——图片展示,视频播放案例
  17. 【人工智能】人工智能是什么?如何入门人工智能?我们为什么要学人工智能?
  18. Why Functional Programming Matters 函数式程序设计为什么至关重要
  19. WIN7、WIN10下更换磁盘图标
  20. Mac平台直播推流搭建

热门文章

  1. python pyserial 使用大全
  2. geotools 的书籍
  3. 用较新版本的Android Studio Chipmunk编译旧版本的Android 21的Sample
  4. USM Appliance 部署和用户文档
  5. 561. 数组拆分 I(javascript)561. Array Partition I
  6. HDOJ 2080 数学
  7. LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意
  8. 华为光亮计算机有哪些优势,华为亮出5G十大优势:62家运营商拿下41家
  9. 计算机主机系统管理员口令,电脑管理员密码忘了怎么办_忘记了电脑管理员密码怎么办...
  10. 网络知识点之-关于web