DGA - 研究内容整理
20200809 -
引言
DGA算法是一种生成域名的算法:以时间或者一些特定字符串作为种子,然后利用一定的算法(例如加密算法),来生成随机域名的方式。
恶意软件的制作者通过这种方式来迷惑安全工作者,传统的恶意软件利用硬编码的方式将CC域名保存在程序中,安全工作者可以对这部分域名进行封堵实现截断通信的过程。在DGA算法的帮助下,恶意程序会发出大量DNS请求(包含DGA生成的域名),而制作者利用同样的算法和同样的种子生成同样的列表,从中挑选任意个在DNS厂商进行注册,以此躲避封堵。
而针对DGA的研究,可以有以下几点:正常域名与DGA域名的分类,DGA域名的家族分类等。本篇文章将记录一些研究DGA的文章或者思路,还有自己的实验;为其他研究者提供一些思路,同时给自己做备忘。
文章及数据资源
- 样本数据(DGA域名、正常域名)
- Domain提取的第三方库
- 不错的文章
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
参考文章
[1]tldextract
[2]baderj/domain_generation_algorithms
DGA - 研究内容整理相关推荐
- 数据挖掘技术的来源、历史、研究内容及常用技术
数据挖掘技术的来源.历史.研究内容及常用技术 1 数据挖掘技术的由来 1.1网络之后的下一个技术热点 我们现在已经生活在一个网络化的时代,通信.计算机和网络技术正改变着整个人类和社会.如果用芯片集成度 ...
- 自然语言处理常见应用领域及研究内容
自然语言处理研究的内容包括但不限于如下分支领域:文本分类.信息抽取.自动摘要.智能问答.话题推荐.机器翻译.主题词识别.知识库构建.深度文本表示.命名实体识别.文本生成.文本分析(词法.句法.语法). ...
- Google C++ 风格指南内容整理
之前一直没有全面的看过Google C++风格指南,现在很多公司进行C++开发都要求按照Google C++风格.在这个网站 http://zh-google-styleguide.readthedo ...
- 最新【独家沙龙内容整理】机器女友?—百度微软讯飞等顶级专家谈人机对话黑科技及未来 ——by中科院孢子创客空间
最新[独家沙龙内容整理]机器女友?-百度微软讯飞等顶级专家谈人机对话黑科技及未来 --by中科院孢子创客空间 1.写在前面 非常非常感谢[公众号:机器学习研究会 ]举办的这次沙龙.赞赞赞.以下内容皆来 ...
- 小学生python游戏开发pygame--设置内容整理
游戏开发,相关设置内容单独放在一个文件中 如长宽,大小,颜色等起名shezhi.py,如下: # _*_ coding: UTF-8 _*_ # 开发团队: 信息化未来 # 开发人员: Adminis ...
- 人工智能导论第一次作业(人工智能有哪些研究途径与方法?它们的关系如何?人工智能有哪些研究内容?人工智能领域有哪些分支领域和研究方向?现在人工智能有哪些学派?它们的认知观是什么?......)
人工智能有哪些研究途径与方法?它们的关系如何? (1)研究途径与方法 "心理模拟.符号推演" 心理学派.逻辑学派和符号主义的基于"心理模拟和符号推演"的人工智能 ...
- 01_01 python机器学习_第一章学习内容整理_加载样本数据绘制散点图
第一章学习内容整理_加载样本数据&绘制散点图 01 常用包说明 python可以解决很多问题,相应解决方案使用的包也很多,不太好记忆. 为了便于记忆,用大白话简单描述一下各个包的功能. # 科 ...
- 人工智能/云原生/数据科学/计算等方向内容整理志愿者招募了!
持续招募内容整理志愿者!云原生.数据科学.AI.低代码.计算等方向,有意愿的小伙伴,欢迎识别二维码提前报名哦.我们将持续为爱学习.有时间的小伙伴,提供多重福利! 要求: 1. 你需要具备一定学术背景, ...
- 不止Markov决策过程,全景式分析强化学习研究内容
作者 | 肖智清 编辑 | 刘静 来源 | CSDN(ID:CSDNnews) 强化学习作为通用人工智能的希望,吸引了很多人工智能爱好者学习和研究.Markov决策过程是最知名的强化学习模型,强化学习 ...
最新文章
- 电脑显示没有被指定在上运行_win10系统运行程序提示“dll没有被指定在windows上运行”的办法...
- picf509c语言程序,樊媛媛c语言程序设计09编译预处理.pptx
- 并行流 线程池_使用自定义线程池处理并行数据库流
- Thread.join()
- 铺地毯(信息学奥赛一本通-T1118)
- WAMP下解决localhost可以访问但IP地址无法访问的问题
- Python 第一章 基础知识
- linux 离线 svn插件安装,Eclipse离线安装svn插件
- .Net更改代码生成不生效
- MATLAB三阶导怎么输入,三阶样条插值(一阶导数边界条件) matlab程序
- dell的boot设置
- eova常用前端组件介绍
- 阅读 SICP 感想(0. 关于前言和序言)
- 开关为什么要过零检测?内附带代码
- 坐禅修行木鱼诵经流量主小程序开发
- 微信小程序云开发——图片展示,视频播放案例
- 【人工智能】人工智能是什么?如何入门人工智能?我们为什么要学人工智能?
- Why Functional Programming Matters 函数式程序设计为什么至关重要
- WIN7、WIN10下更换磁盘图标
- Mac平台直播推流搭建
热门文章
- python pyserial 使用大全
- geotools 的书籍
- 用较新版本的Android Studio Chipmunk编译旧版本的Android 21的Sample
- USM Appliance 部署和用户文档
- 561. 数组拆分 I(javascript)561. Array Partition I
- HDOJ 2080 数学
- LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意
- 华为光亮计算机有哪些优势,华为亮出5G十大优势:62家运营商拿下41家
- 计算机主机系统管理员口令,电脑管理员密码忘了怎么办_忘记了电脑管理员密码怎么办...
- 网络知识点之-关于web