转转来 發表於 2019-12-23 18:26:00

DGA域名检测

<h1>一、DGA域名原理</h1>
<ul>
<li><strong>僵尸网络(Botnet):</strong>互联网上在蠕虫、木马、后门工具等,传统恶意代码形态的基础上发展、融合而产生的一种新型攻击方法。</li>
<li><strong>DNS(Domain Name System) :</strong>基于 UDP 的应用层协议。主要用途是将一个域名解析成 IP 地址,这个过程叫做域名解析 (Name resolution)。</li>
<li><strong>域名生成算法(Domain Generation Algorithm):</strong>是一种利用随机字符来生成C&amp;C域名,从而逃避域名黑名单检测的技术手段。</li>
</ul>
<table style="height: 189px; width: 709px; float: left" border="0">
<tbody>
<tr>
<td>
<p style="text-align: left">  僵尸网络&amp;恶意软等程序,随着检测手段的更新(在早期,僵尸主机通产采用轮询的方法访问硬编码的C&amp;C域名或IP来访问服务器获取域名,但是这种方式在安全人员进行逆向之后会得到有效的屏蔽),黑客们也升级了肉鸡的C&amp;C手段;用DGA算法在终端生成大量备选域名,而攻击者与恶意软件运行同一套DGA算法,生成相同的备选域名列表。</p>
<p>  当需要发动攻击的时候,选择其中少量进行注册,便可以建立通信,并且可以对注册的域名应用速变IP技术,快速变换IP,从而域名和IP都可以进行快速变化。目前,黑客攻击者为了防止恶意域名被发现,会使用Domain Flux或者IP Flux来快速生成大量的恶意域名。(Domain Flux是通过不断变换域名,指向同一个IP,IP Flux是只有一个域名,不断变换IP,一个域名可以使用多个IP)。</p>
<p>  很显然,在这种方式下,传统基于黑名单的防护手段无法起作用,一方面,黑名单的更新速度远远赶不上DGA域名的生成速度,另一方面,防御者必须阻断所有的DGA域名才能阻断C2通信,因此,DGA域名的使用使得攻击容易,防守困难。</p>
</td>
</tr>
</tbody>
</table>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left"><img src="https://img2018.cnblogs.com/i-beta/1391561/201912/1391561-20191224162929539-253828948.png" alt="" width="591" height="341"></p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<h1 style="text-align: left">二、DGA分类</h1>
<p style="text-align: left">DGA算法由两部分构成,种子(算法输入)和算法,可以根据种子和算法对DGA域名进行分类</p>
<h2 style="text-align: left">种子分类:</h2>
<p style="text-align: left">1.基于时间的种子(Time dependence)。DGA算法将会使用时间信息作为输入,如:感染主机的系统时间,http响应的时间等。</p>
<p style="text-align: left">2.是否具有确定性(Determinism)。主流的DGA算法的输入是确定的,因此AGD可以被提前计算,但是也有一些DGA算法的输入是不确定的,如:Bedep以欧洲中央银行每天发布的外汇参考汇率作为种子,Torpig用twitter的关键词作为种子,只有在确定时间窗口内注册域名才能生效。</p>
<h2 style="text-align: left">算法分类:</h2>
<p style="text-align: left">现有DGA生成算法一般可以分为如下4类:</p>
<p style="text-align: left">1.基于算术。该类型算法会生成一组可用ASCII编码表示的值,从而构成DGA域名,流行度最高。</p>
<p style="text-align: left">2.基于哈希。用哈希值的16进制表示产生DGA域名,被使用的哈希算法常有:MD5,SHA256。</p>
<p style="text-align: left">3.基于词典。该方式会从专有词典中挑选单词进行组合,减少域名字符上的随机性,迷惑性更强,字典内嵌在恶意程序中或者从公有服务中提取。</p>
<p style="text-align: left">4.基于排列组合。对一个初始域名进行字符上的排列组合。</p>
<h1 style="text-align: left">三、检测方法</h1>
<p>&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left">【参考】:</p>
<p style="text-align: left">文献:</p>
<p style="text-align: left">https://www.hindawi.com/journals/scn/2021/8887881/</p>
<p style="text-align: left">https://www.secrss.com/articles/14369</p>
<p style="text-align: left">https://github.com/360netlab/DGA</p>
<p style="text-align: left">DGA数据:</p>
<p style="text-align: left">https://osint.bambenekconsulting.com/feeds/</p>
<p style="text-align: left">https://data.netlab.360.com/dga/</p>
<p style="text-align: left">http://s3.amazonaws.com/alexa-static/top-1m.csv.zip</p><br><br>
来源:https://www.cnblogs.com/shwang/p/12085281.html
頁: [1]
查看完整版本: DGA域名检测