本发明涉及网络安全技术领域,特别是涉及一种基于DNS异常挖掘的Fast Flux僵尸网络检测方法。
背景技术:
传统的基于规则的僵尸网络检测技术,无法应对Fast Flux僵尸网络域名和IP地址的快速变化,且已有技术无法区分CDN正常访问。该专利提出了一种基于DNS异常挖掘的Fast Flux僵尸网络检测技术,基于DGA检测、CDN域名分析、DNS流量与协议异常挖掘技术,实现从DNS访问流量中自动挖掘和发现Fast Flux僵尸网络。
随着全球信息一体化的迅猛发展,互联网规模不断扩大,信息量呈几何级数增长。网络高级持续性威胁(advanced persistent threat,APT)层出不穷,安全态势严峻,需要从海量网络数据中挖掘分析异常行为。由于网络异常行为行踪隐蔽,常隐藏于正常的网络流量中,难于检测和分析,而且其形式变化多样,种类逐渐增多,内部结构复杂,需要基于大数据和关联挖掘分析进行建模和分析。
僵尸网络是网络攻击感染的系统集合,攻击者可以控制僵尸网络,进行入侵、攻击和数据窃取等异常行为。攻击者通过命令与控制通道对僵尸网络进行控制,由于基于固定IP地址或单一DNS域名的僵尸网络容易被发现和禁用,Fast Flux技术被僵尸网络利用,基于快速转换的C&C域名列表,利用僵尸网络节点作DNS解析。由于Fast Flux与用户访问CDN网络具有较大的相似性,检测难度较大。基于规则、传统的访问特征的机器学习算法存在明显的不足:通常需要黑名单才能完成检测;单纯利用单个僵尸主机行为相似性的方法容易出现误判;无法区分Fast Flux与CDN正常访问。
技术实现要素:
为解决上述问题,本发明提供了一种基于DNS异常挖掘的Fast Flux僵尸网络检测方法,包括如下步骤:
步骤一:预先建立域名白名单,所述白名单内保存有正常网址的二级域名。
步骤二:根据域名白名单、DNS查询响应数据的TTL值、域名对应的IP地址相似程度、域名对应的IP数量,域名是否采用CDN加速,进行数据过滤,提取出可疑的网络流量。
步骤三:对可疑的网络流量进行DGA检测、基于协议特征的检测、基于流量特征的检测。
步骤四:根据步骤三的三个检测结果进行告警融合,最终判定可疑的网络流量是否为恶意攻击。
进一步的,所述步骤二具体为:
步骤2.1:预先定义DNS查询响应数据的TTL值阈值、域名对应的IP地址相似程度的阈值、域名对应的IP数量的阈值。
步骤2.2:判断请求网址是否为可疑的网络流量,当所请求域名的二级域名不存在于白名单中以及DNS查询响应数据的TTL值小于TTL阈值以及域名对应的IP数大于IP数阈值以及IP地址相似程度大于相似程度阈值时,判断为可疑的网络流量。
进一步的,步骤2.3中,IP地址相似程度的技术公式为其中,sim(I)表示IP地址相似程度,P表示IP地址用点划分的8位,R表示一条DNS请求对应的IP数目。
进一步的,步骤三具体为:
步骤3.1:预先建立基于协议特征的分类模型、基于流量特征的分类模型,所述基于协议特征的分类模型采用的特征为v1={IP数、TTL值、域名长度、域名层级、请求类型、非权威应答数},基于流量特征的分类模型采用的特征为v2={总流量、包数、包大小方差、上行包量、会话时长、包间隔时间}。
步骤3.2:将请求进行DAG检测过滤、基于协议特征的分类模型过滤、基于流量特征的分类模型过滤。
进一步的,步骤三中,进行DAG检测需要基于随机性的特征、基于统计的特征、基于高级特征。
进一步的,随机性的特征包括熵、长度、加权熵,统计的特征包括元音字母的比例、数字比例、重复字母比例、连续数字段比例、连续辅音字母段比例,高级特征包括一元组平均排名、二元组平均排名、三元组平均排名、一元组排名标准差、二元组排名标准差、三元组排名标准差、Hmm转移概率、gibberish值。
本发明的技术效果为:
本发明从DNS协议和流量两个方向着手对网络流量包进行分析,相比于传统的单纯用稳定性的方法检测率更高,误报率较低。本发明前期通过域名白名单、IP地址数、DNS查询相应数据的TTL平均值、DNS查询响应IP相似度等条件进行网络流量过滤模块,避免了对正常网络流量参与后期检测,大大减少了后期的计算成本,提高了效率。
附图说明
图1为本发明示意图。
具体实施方式
本发明的设计构思为:提出一种基于DNS异常挖掘的Fast Flux僵尸网络检测方法,本方法首先挖掘网络攻击特征,过滤正常网络流量,然后把流量特征与协议特征相结合,利用机器学习的方法建立检测模型。
下面结合图1对本方法进行详细说明。
步骤一:预先建立域名白名单,所述白名单内为正常网址的二级域名。
域名白名单的建立是方便将对常见正常访问网址请求进行过滤。名单内应该尽可能的包含正常网址的二级域名,如baidu、google等,以方便对网络流量进行第一次的过滤,过滤掉正常的网络流量。
步骤二:根据域名白名单、DNS查询响应数据的TTL值、域名对应的IP地址相似程度、域名对应的IP数量,域名是否采用CDN加速,进行数据过滤,提取出可疑的网络流量。
更具体的,本步骤包括可细分如下两步:
步骤2.1:预先定义DNS查询响应数据的TTL值阈值、域名对应的IP地址相似程度的阈值、域名对应的IP数量的阈值。
步骤2.2:判断请求网址是否为可疑的网络流量,当所请求域名的二级域名不存在于白名单中以及DNS查询响应数据的TTL值小于TTL阈值以及域名对应的IP数大于IP数阈值以及IP地址相似程度大于相似程度阈值时,判断为可疑的网络流量,对可疑的网络流量执行下一步。
本步骤中,将一条DNS的数据表示为D(q),其中q表示DNS的请求域名,D(q)作为过滤模块的输入。如果D(q)满足以下条件则为可疑网络流量:
(1)A≠f(q)cdn
(2)I≥θI
(3)λ≤θttl
(4)sim(I)≥θsim
由于僵尸网络一般不采取CDN加速,因此将其CDN加速过滤条件设置为A≠f(q)cdn,其中A表示域名q是否采取CDN加速技术的特征,f(q)CDN表示q属于域名白名单时的CDN属性。A≠f(q)cdn表示A不属于域名白名单。I表示域名对应的IP地址数。λ表示DNS查询响应数据的TTL平均值。θI、θttl、θsim分别为IP地址数阈值、TTL阈值、IP相似度阈值。阈值是检测人员预先从数据集里经过计算提取出来的。为了确保真正的恶意网络流量不被过滤掉,本实施例优选θI=3、θttl=30秒、θsim=20。sim(I)表示DNS查询响应IP的相似度。
这里P表示IP地址用点划分的8位,R表示一条DNS请求对应的IP数目。例如响应IP列表中第一个IP为10.11.13.6,第二个IP为121.111.130.60,那么P11=10,P12=11,P13=13,P14=6。P21=121,P22=111,P23=130,P24=60。那么这两个IP地址的相似度就可以计算为:相比于CDN加速的域名,僵尸网络对应的IP地址集,应为IP比较分散,而CDN厂商一般域名是连续申请的,因此sim(I)值越大表示该域名潜在的威胁就越大。
步骤三:对可疑的网络流量进行DGA检测、基于协议信息的检测、基于流量特征的检测。
DGA域名是指由域名生成算法Domain Generation Algorithm生成,为了达到某种命令和控制Command and Control目的的域名,又称C&C域名。为了提高隐蔽性,僵尸网络一般不会使用固定IP与C&C服务器通信,而是采用域名解析系统DNS。如conficker采用“domain flux”,使用特定的规则作为种子生成大量备选域名,然后选取部分注册作为C&C域名发起攻击。本发明中DGA检测采用的特征包括基于随机性的特征、基于统计的特征、高级特征。如表1:
在僵尸网络整个生命周期中,总是存在一组IP查询同一域名,如果存在多个不同的僵尸网络,那就也存在着一组域名查询同一IP,而且是持续不断的间歇性群组行为。要对DNS数据集进行分类,就必须把数据已向量的形式表现出来,本发明通过分析僵尸网络的一系列特点,根据协议信息把具体的单条DNS查询信息表示为:
v1={IP数、TTL值、域名长度、域名层级、请求类型、非权威应答数}
根据DNS会话信息把单条流量信息表示为:
v2={总流量、包数、包大小方差、上行包量、会话时长、包间隔时间}
根据以上两种不同的表达方式,运用SVM分类算法分别训练出基于协议特征的分类模型和基于流量特征的分类模型。
步骤四:根据步骤三的三个检测结果进行告警融合,最终判定可疑的网络流量是否为恶意攻击。