CN111147459B - 一种基于dns请求数据的c&c域名检测方法及装置 - Google Patents
一种基于dns请求数据的c&c域名检测方法及装置 Download PDFInfo
- Publication number
- CN111147459B CN111147459B CN201911288784.1A CN201911288784A CN111147459B CN 111147459 B CN111147459 B CN 111147459B CN 201911288784 A CN201911288784 A CN 201911288784A CN 111147459 B CN111147459 B CN 111147459B
- Authority
- CN
- China
- Prior art keywords
- domain name
- group
- dns
- data
- periodic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种基于DNS请求数据的C&C域名检测方法及装置,该方法包括:获取目标环境中的待检测DNS数据;提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组;对N个所述DNS数据组进行周期性检测,得到周期性域名组;对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名,能够全面长期的检测出C&C服务器域名与具体通讯行为,有效的保证计算机通讯安全。
Description
技术领域
本发明实施例涉及网络信息安全技术领域,具体涉及一种基于DNS请求数据的C&C域名检测方法及装置。
背景技术
C&C服务器(Command&Control Server),一般是指挥控制僵尸网络的主控服务器,用来和僵尸网络的每个感染了恶意软件(malware)的宿主机进行通讯并指挥它们的攻击行为。检测C&C服务器域名一直是网络安全研究的重要部分。
目前对于C&C域名的检测,现有的技术实现方案手段如下:
一种是基于域名特征的C&C域名识别方案,把由DGA算法(域名生成算法)生成的C&C域名和Alexa排名(网站的世界排名)前10万的合法域名作为正反例,生成可以有效识别两类域名的量化指标,并使用机器学习模型对域名类别进行判断。此种方法弊端主要是由DGA算法生成的C&C域名包括的域名种类单一,因此模型对实际域名适用性差,且不能描述出具体的C&C通讯行为。
另一种是基于周期性检测的恶意软件域名检测方案,将所有域名数据进行黑白名单过滤,对每个域名计算相邻请求时间间隔,统计每个时间间隔出现的次数,形成时间间隔集合,构成时间间隔直方图。比较当前直方图与预设周期性直方图的相似性,由此判断域名周期性,再通过合法与非法域名的分类器,对结果进行筛选。此种方法的弊端主要是只能检测单个域名的周期性,忽视了以C&C域名组的方式进行通讯的行为;而且周期性判断方法过分依赖预设模板,适用性差。
因此,如何提供一种C&C域名检测方案,能够全面、长期的检测出C&C服务器域名与具体通讯行为,有效的保证计算机通讯安全,是本领域技术人员亟待解决的技术问题。
发明内容
为此,本发明实施例提供一种基于DNS请求数据的C&C域名检测方法及装置,能够全面、长期的检测出C&C服务器域名与具体通讯行为,有效的保证计算机通讯安全。
为了实现上述目的,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种基于DNS请求数据的C&C域名检测方法,包括:
获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
对N个所述DNS数据组进行周期性检测,得到周期性域名组;
对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
优选地,所述获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名,包括:
收集目标环境内各主机的DNS流量数据,按照DNS协议规范进行解析,得到DNS信息;
对所述DNS信息进行处理,得到第一数据集,所述第一数据集的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
对所述第一数据集利用白名单过滤筛选掉,得到待检测DNS数据,所述待检测DNS数据的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名。
优选地,所述域名文本特征包括:顶级域名、元音字母比例、域名3-gram频率均值、二级域名、连续数字的比例、域名1-gram频率标准差、域名长度、连续辅音字母的比例、域名2-gram频率标准差、含有“.”的个数、重复字母的比例、域名2-gram马尔可夫转移概率和、含有“-”的个数、域名信息熵、二级域名信息熵对应的区间索引、含有数字的个数、域名1-gram频率均值、二级域名2-gram频率排名对应的区间索引、数字比例、域名2-gram频率均值、域名高级发音域特征中的至少一个。
优选地,所述利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数,包括:
在所述待检测DNS数据筛选具有二级域名以上的域名数据;
依次比较所述域名数据的主机IP地址、顶级域名、二级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数,将具有相同特征值的域名,分入同一组;对于只有二级的域名数据,依次根据其主机IP地址、顶级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数;
将域名文本特征具有相同特征值的组内域名数据分入同一组,得到N个DNS数据组。
优选地,所述对N个所述DNS数据组进行周期性检测,得到周期性域名组,包括:
对N个所述DNS数据组设置用于观察的时间窗口;
从每组数据的第一次请求开始,将时间窗口依次向后平移,每次平移一个单位的时间窗口;
标记时间窗口序号,统计每个时间窗口内的请求次数,得到时间窗口对应序号与请求次数的对应关系字典;
如果时间窗口对应的次数大于1,则利用DBSCAN算法,对字典索引进行聚类,并对聚类后的索引求均值,得到每段请求的时间段中心,以此计算相邻时间段中心的时间间隔,对每组数据,计算相邻请求的时间间隔;
按照最大时间间隔进行区间划分,统计时间间隔在每个区间内出现的次数,形成时间间隔及对应次数的集合;
获取次数最多的时间间隔区间,并添加时间抖动,得到新的区间;
计算时间间隔集合在该区间内的总数,以得到所述时间间隔集合所占比例;如果所述比例大于预设比例阈值,则确认所述DNS数据组为周期性域名组。
优选地,所述对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差,包括:
获取由DGA算法生成的C&C域名和Alexa排名前100万的合法域名作为正反例;
将所述正反例生成文本特征,所述文本特征包括域名长度、数字比例、元音字母比例、连续数字的比例、连续辅音字母的比例、重复字母的比例、域名信息熵、域名1-gram频率均值、域名2-gram频率均值、域名3-gram频率均值、域名1-gram频率标准差、域名2-gram频率标准差、域名3-gram频率标准差、域名2-gram马尔可夫转移概率和、域名高级发音域特征中的至少一种;
利用所述正反例的文本特征训练lightgbm分类模型,得到域名分类器;
利用所述域名分类器对所述周期性域名组进行DGA域名识别,得到所述周期性域名组的组内域名分类成DGA域名的概率;
统计周期性域名组的组内域名DGA概率的均值和标准差。
优选地,所述获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名,包括:
获取域名的互联网信息特征,所述互联网信息特征包括域名TTL值、域名资源类型记录特征;
判断所述周期性域名组是否同时满足以下条件:
所述周期性域名组组内DGA概率均值满足第一预设阈值范围且标准差满足第二预设范围;
所述域名TTL值满足第三预设阈值范围且域名资源类型记录特征中的MX_type、NS_type、TXT_type、PTR_type四个特征中两个或两个以上特征值;
如果所述周期性域名组同时满足以上条件,则判断所述周期性域名组的组内域名为C&C域名;如果所述周期性域名组不同时满足以上条件,则判断所述周期性域名组的组内域名为非C&C域名。
第二方面,本发明实施例提供一种基于DNS请求数据的C&C域名检测装置,包括:
DNS数据获取模块,用于获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
文本特征提取模块,用于提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
域名分组模块,用于利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
周期检测模块,用于对N个所述DNS数据组进行周期性检测,得到周期性域名组;
分类识别模块,用于对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
C&C域名判定模块,用于获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
第三方面,本发明实施例提供一种基于DNS请求数据的C&C域名检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述第一方面任一种所述基于DNS请求数据的C&C域名检测方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一种所述基于DNS请求数据的C&C域名检测方法的步骤。
本发明实施例提供一种基于DNS请求数据的C&C域名检测方法,包括:获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;对N个所述DNS数据组进行周期性检测,得到周期性域名组;对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名,能够全面、长期的检测出C&C服务器域名与具体通讯行为,有效的保证计算机通讯安全。
本发明实施例提供一种基于DNS请求数据的C&C域名检测方法及装置具有相同的上述有益效果,在此不再一一赘述。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的流程图;
图2本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的待检测数据获取流程图;
图3本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的数据分组流程图;
图4本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的周期检测流程图;
图5本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的DGA分类识别流程图;
图6本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的域名判定流程图;
图7本发明实施例提供的一种基于DNS请求数据的C&C域名检测装置的组成示意图;
图8为本发明一种具体实施方式提供的基于DNS请求数据的C&C域名检测设备的结构示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1、图2、图3、图4、图5、图6,图1本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的流程图;图2本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的待检测数据获取流程图;图3本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的数据分组流程图;图4本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的周期检测流程图;图5本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的DGA分类识别流程图;图6本发明实施例提供一种基于DNS请求数据的C&C域名检测方法的域名判定流程图。
在本发明实施例中,本发明实施例提供一种基于DNS请求数据的C&C域名检测方法,包括:
步骤S11:获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
步骤S12:提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
步骤S13:利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
步骤S14:对N个所述DNS数据组进行周期性检测,得到周期性域名组;
步骤S15:对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
步骤S16:获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
首先,在本发明中,需要获取到目标环境中的待检测DNS数据,例如,在一种实施例中,为了获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名,可以具体实施以下步骤:
步骤S21:收集目标环境内各主机的DNS流量数据,按照DNS协议规范进行解析,得到DNS信息;
步骤S22:对所述DNS信息进行处理,得到第一数据集,所述第一数据集的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
步骤S23:对所述第一数据集利用白名单过滤筛选掉,得到待检测DNS数据,所述待检测DNS数据的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名。
也就是说,具体地可以收集目标环境内各主机的DNS流量,按照DNS协议规范进行解析,得到DNS信息;对收集的DNS信息进行处理,处理后的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名,得到数据集一;对数据集一的数据利用白名单过滤筛选掉非目标数据得到数据集二,数据集包括字段:DNS请求发起时间、主机IP、目标IP、请求的域名;数据集二极为待检测DNS数据,当然,也可以采用其他的方式对原始的目标环境中的网络数据进行获取和处理。白名单包括Alexa网站排名前一万的数据,以及top.chinaz.com网站排名前一万的数据。
在获取到待检测DNS数据后,可以对数据集二,也就是待检测DNS数据进行处理,提取文本特征,得到数据集三,数据集三包括DNS请求发起时间、主机IP、目标IP、请求的域名,以及下表1中的文本特征字段;
表1-域名文本特征表
也就是说域名文本特征可以包括:顶级域名、元音字母比例、域名3-gram频率均值、二级域名、连续数字的比例、域名1-gram频率标准差、域名长度、连续辅音字母的比例、域名2-gram频率标准差、含有“.”的个数、重复字母的比例、域名2-gram马尔可夫转移概率和、含有“-”的个数、域名信息熵、二级域名信息熵对应的区间索引、含有数字的个数、域名1-gram频率均值、二级域名2-gram频率排名对应的区间索引、数字比例、域名2-gram频率均值、域名高级发音域特征中的至少一个。当然,也可以时其他的域名文本特征,本实施例只是对可能的域名文本特征进行举例,并不对域名文本特征的外延进行限定。
进一步地,为了利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数,可以进行以下步骤:
步骤S31:在所述待检测DNS数据筛选具有二级域名以上的域名数据;
步骤S32:依次比较所述域名数据的主机IP地址、顶级域名、二级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数,将具有相同特征值的域名,分入同一组;对于只有二级的域名数据,依次根据其主机IP地址、顶级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数;
步骤S33:将域名文本特征具有相同特征值的组内域名数据分入同一组,得到N个DNS数据组。
进一步地,为了对N个所述DNS数据组进行周期性检测,得到周期性域名组,包括:
步骤S41:对N个所述DNS数据组设置用于观察的时间窗口;
步骤S42:从每组数据的第一次请求开始,将时间窗口依次向后平移,每次平移一个单位的时间窗口;
步骤S43:标记时间窗口序号,统计每个时间窗口内的请求次数,得到时间窗口对应序号与请求次数的对应关系字典;
步骤S44:如果时间窗口对应的次数大于1,则利用DBSCAN算法,对字典索引进行聚类,并对聚类后的索引求均值,得到每段请求的时间段中心,以此计算相邻时间段中心的时间间隔,对每组数据,计算相邻请求的时间间隔;
步骤S45:按照最大时间间隔进行区间划分,统计时间间隔在每个区间内出现的次数,形成时间间隔及对应次数的集合;
步骤S46:获取次数最多的时间间隔区间,并添加时间抖动,得到新的区间;
步骤S47:计算时间间隔集合在该区间内的总数,以得到所述时间间隔集合所占比例;如果所述比例大于预设比例阈值,则确认所述DNS数据组为周期性域名组。
也就是说对每组DNS数据组,设置观察时间窗口大小,可设置为1分钟、30分钟、1小时等,可依据具体的数据时间跨度进行选择;也可设置多个时间窗口大小,用来综合判断结果。从每组数据的第一次请求开始,将时间窗口依次向后平移,每次平移一个单位的时间窗口,相当于每次向后平移一个小时,标记时间窗口序号,直至数据完结。统计每个时间窗口内的请求次数,得到(时间窗口对应序号,次数)的对应关系字典。如果每个时间窗口的对应次数一直为1或0,表示DNS单次请求之间可能存在周期性;如果时间窗口的对应次数大于1,表示在一个窗口内有多次DNS请求,即一段请求与另一段请求可能存在周期性。
只要有时间窗口对应的次数大于1,则利用DBSCAN算法,对字典索引进行聚类,并对聚类后的索引求均值,得到每段请求的时间段中心,以此计算相邻时间段中心的时间间隔;否则对每组数据,计算相邻请求的时间间隔。按照最大时间间隔进行区间划分,统计时间间隔在每个区间内出现的次数,形成时间间隔及对应次数的集合。获取次数最多的时间间隔区间,并添加时间抖动,得到新的区间。时间抖动定义为时间间隔区间两边端点值的均值的10%。计算时间间隔集合在该区间内的总数,并得到所占比例,比例大于80%(当然,也可以设置其他的比例阈值),则认为满足周期性。
更进一步地,可以利用现有的C&C域名和合法域名对分类模型进行训练,并且利用训练后形成的域名分类器对本发明实施例中的待检测DNS数据进行检测,具体地,为了对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差,可以进行以下步骤:
步骤S51:获取由DGA算法生成的C&C域名和Alexa排名前100万的合法域名作为正反例;
步骤S52:将所述正反例生成文本特征,所述文本特征包括域名长度、数字比例、元音字母比例、连续数字的比例、连续辅音字母的比例、重复字母的比例、域名信息熵、域名1-gram频率均值、域名2-gram频率均值、域名3-gram频率均值、域名1-gram频率标准差、域名2-gram频率标准差、域名3-gram频率标准差、域名2-gram马尔可夫转移概率和、域名高级发音域特征中的至少一种;
步骤S53:利用所述正反例的文本特征训练lightgbm分类模型,得到域名分类器;
步骤S54:利用所述域名分类器对所述周期性域名组进行DGA域名识别,得到所述周期性域名组的组内域名分类成DGA域名的概率;
步骤S55:统计周期性域名组的组内域名DGA概率的均值和标准差。
也就是说,把由DGA算法生成的C&C域名(netlab 360数据集)和Alexa排名前100万的合法域名作为正反例,生成文本特征,包括域名长度、数字比例、元音字母比例、连续数字的比例、连续辅音字母的比例、重复字母的比例、域名信息熵、域名1-gram频率均值、域名2-gram频率均值、域名3-gram频率均值、域名1-gram频率标准差、域名2-gram频率标准差、域名3-gram频率标准差、域名2-gram马尔可夫转移概率和、域名高级发音域特征,利用这些特征训练lightgbm分类模型,并对步骤5输出的周期性域名组进行DGA域名识别,得到分类成DGA域名的概率;统计判断为周期性域名组的组内域名DGA概率的均值和标准差。
值得说明的是,为了利用已经判定的周期性结果进行进一步的验证,可以获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名,具体可以实施以下步骤:
步骤S61:获取域名的互联网信息特征,所述互联网信息特征包括域名TTL值、域名资源类型记录特征;
步骤S62:判断所述周期性域名组是否同时满足以下条件:
所述周期性域名组组内DGA概率均值满足第一预设阈值范围且标准差满足第二预设范围;
所述域名TTL值满足第三预设阈值范围且域名资源类型记录特征中的MX_type、NS_type、TXT_type、PTR_type四个特征中两个或两个以上特征值;
步骤S63:如果所述周期性域名组同时满足以上条件,则判断所述周期性域名组的组内域名为C&C域名;如果所述周期性域名组不同时满足以上条件,则判断所述周期性域名组的组内域名为非C&C域名。
具体地,可以进一步获取域名的互联网信息特征,包括域名TTL值、域名资源类型记录特征。结合周期性结果、组内域名DGA概率均值与标准差、域名TTL值、域名资源类型记录特征进行最终结果判断。结合域名的DGA概率特征和域名的互联网信息特征进行误报消除。如果组内DGA概率均值满足预设阈值范围(如小于0.7)且标准差满足预设预定范围(如小于0.2)、TTL值满足预设阈值范围(如大于500)、资源类型记录中MX_type/NS_type/TXT_type/PTR_type四个特征中两个或两个以上特征值,则判断为误报,对结果进行误报消除,并保存最终结果。
本发明实施例提供一种基于DNS请求数据的C&C域名检测方法,结合了域名文本特征和域名请求周期性这两个特点进行检测,首先是使用域名的文本特征进行域名分组,然后针对分组内的域名进行周期性的行为检测;针对域名进行了三种类型的特征提取,分别是域名文本特征、域名互联网信息特征、域名DGA概率特征,其中域名文本特征是用于检测前的分组,域名的互联网信息特征和域名DGA概率特征用于周期性检测结果的进一步误报消除,能够全面、长期的检测出C&C服务器域名与具体通讯行为,有效的保证计算机通讯安全。
请参考图7,图7本发明实施例提供的一种基于DNS请求数据的C&C域名检测装置的组成示意图。
在本发明又一实施方式中,本发明实施例提供一种基于DNS请求数据的C&C域名检测装置700,包括:
DNS数据获取模块710,用于获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
文本特征提取模块720,用于提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
域名分组模块730,用于利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
周期检测模块740,用于对N个所述DNS数据组进行周期性检测,得到周期性域名组;
分类识别模块750,用于对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
C&C域名判定模块760,用于获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
请参考图8,图8为本发明一种具体实施方式提供的基于DNS请求数据的C&C域名检测设备的结构示意图。
本发明实施例提供一种基于DNS请求数据的C&C域名检测设备800,包括:
存储器810,用于存储计算机程序;
处理器820,用于执行所述计算机程序时实现如上述任一种实施例所述的基于DNS请求数据的C&C域名检测方法的步骤。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种实施例所述的基于DNS请求数据的C&C域名检测方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种基于DNS请求数据的C&C域名检测方法,其特征在于,包括:
获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
对N个所述DNS数据组进行周期性检测,得到周期性域名组;
对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
2.根据权利要求1所述的C&C域名检测方法,其特征在于,
所述获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名,包括:
收集目标环境内各主机的DNS流量数据,按照DNS协议规范进行解析,得到DNS信息;
对所述DNS信息进行处理,得到第一数据集,所述第一数据集的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
对所述第一数据集利用白名单过滤筛选掉,得到待检测DNS数据,所述待检测DNS数据的数据字段包括:DNS请求发起时间、主机IP、目标IP、请求的域名。
3.根据权利要求1所述的C&C域名检测方法,其特征在于,
所述域名文本特征包括:顶级域名、元音字母比例、域名3-gram频率均值、二级域名、连续数字的比例、域名1-gram频率标准差、域名长度、连续辅音字母的比例、域名2-gram频率标准差、含有“.”的个数、重复字母的比例、域名2-gram马尔可夫转移概率和、含有“-”的个数、域名信息熵、二级域名信息熵对应的区间索引、含有数字的个数、域名1-gram频率均值、二级域名2-gram频率排名对应的区间索引、数字比例、域名2-gram频率均值、域名高级发音域特征中的至少一个。
4.根据权利要求3所述的C&C域名检测方法,其特征在于,
所述利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数,包括:
在所述待检测DNS数据筛选具有二级域名以上的域名数据;
依次比较所述域名数据的主机IP地址、顶级域名、二级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数,将具有相同特征值的域名,分入同一组;对于只有二级的域名数据,依次根据其主机IP地址、顶级域名、域名长度、二级域名信息熵对应的区间索引、二级域名2-gram频率排名对应的区间索引、域名含有“.”的个数、域名含有特殊字符“-”的个数、域名含有数字的个数;
将域名文本特征具有相同特征值的组内域名数据分入同一组,得到N个DNS数据组。
5.根据权利要求1所述的C&C域名检测方法,其特征在于,
所述对N个所述DNS数据组进行周期性检测,得到周期性域名组,包括:
对N个所述DNS数据组设置用于观察的时间窗口;
从每组数据的第一次请求开始,将时间窗口依次向后平移,每次平移一个单位的时间窗口;
标记时间窗口序号,统计每个时间窗口内的请求次数,得到时间窗口对应序号与请求次数的对应关系字典;
如果时间窗口对应的次数大于1,则利用DBSCAN算法,对字典索引进行聚类,并对聚类后的索引求均值,得到每段请求的时间段中心,以此计算相邻时间段中心的时间间隔,对每组数据,计算相邻请求的时间间隔;
按照最大时间间隔进行区间划分,统计时间间隔在每个区间内出现的次数,形成时间间隔及对应次数的集合;
获取次数最多的时间间隔区间,并添加时间抖动,得到新的区间;
计算时间间隔集合在该区间内的总数,以得到所述时间间隔集合所占比例;如果所述比例大于预设比例阈值,则确认所述DNS数据组为周期性域名组。
6.根据权利要求1至5任一项所述的C&C域名检测方法,其特征在于,
所述对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差,包括:
获取由DGA算法生成的C&C域名和Alexa排名前100万的合法域名作为正反例;
将所述正反例生成文本特征,所述文本特征包括域名长度、数字比例、元音字母比例、连续数字的比例、连续辅音字母的比例、重复字母的比例、域名信息熵、域名1-gram频率均值、域名2-gram频率均值、域名3-gram频率均值、域名1-gram频率标准差、域名2-gram频率标准差、域名3-gram频率标准差、域名2-gram马尔可夫转移概率和、域名高级发音域特征中的至少一种;
利用所述正反例的文本特征训练lightgbm分类模型,得到域名分类器;
利用所述域名分类器对所述周期性域名组进行DGA域名识别,得到所述周期性域名组的组内域名分类成DGA域名的概率;
统计周期性域名组的组内域名DGA概率的均值和标准差。
7.根据权利要求6所述的C&C域名检测方法,其特征在于,
所述获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名,包括:
获取域名的互联网信息特征,所述互联网信息特征包括域名TTL值、域名资源类型记录特征;
判断所述周期性域名组是否同时满足以下条件:
所述周期性域名组组内DGA概率均值满足第一预设阈值范围且标准差满足第二预设范围;
所述域名TTL值满足第三预设阈值范围且域名资源类型记录特征中的MX_type、NS_type、TXT_type、PTR_type四个特征中两个或两个以上特征值;
如果所述周期性域名组同时满足以上条件,则判断所述周期性域名组的组内域名为C&C域名;如果所述周期性域名组不同时满足以上条件,则判断所述周期性域名组的组内域名为非C&C域名。
8.一种基于DNS请求数据的C&C域名检测装置,其特征在于,包括:
DNS数据获取模块,用于获取目标环境中的待检测DNS数据,所述待检测DNS数据包括:DNS请求发起时间、主机IP、目标IP、请求的域名;
文本特征提取模块,用于提取所述待检测DNS数据中的域名文本特征,得到所述待检测DNS数据与域名文本特征的对应关系;
域名分组模块,用于利用所述域名文本特征对所述待检测DNS数据进行分组,得到N个DNS数据组,其中N为正整数;
周期检测模块,用于对N个所述DNS数据组进行周期性检测,得到周期性域名组;
分类识别模块,用于对所述周期性域名组进行DGA域名分类识别,得到周期性域名组的组内域名的DGA概率均值和标准差;
C&C域名判定模块,用于获取所述周期性域名组的互联网信息特征,并利用所述DGA概率均值和所述标准差、所述互联网信息特征确定所述周期性域名组的组内域名是否为C&C域名。
9.一种基于DNS请求数据的C&C域名检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述基于DNS请求数据的C&C域名检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于DNS请求数据的C&C域名检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911288784.1A CN111147459B (zh) | 2019-12-12 | 2019-12-12 | 一种基于dns请求数据的c&c域名检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911288784.1A CN111147459B (zh) | 2019-12-12 | 2019-12-12 | 一种基于dns请求数据的c&c域名检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111147459A CN111147459A (zh) | 2020-05-12 |
CN111147459B true CN111147459B (zh) | 2021-11-30 |
Family
ID=70518284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911288784.1A Active CN111147459B (zh) | 2019-12-12 | 2019-12-12 | 一种基于dns请求数据的c&c域名检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147459B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111818050B (zh) * | 2020-07-08 | 2024-01-19 | 腾讯科技(深圳)有限公司 | 目标访问行为检测方法、系统、装置、设备及存储介质 |
CN111935097B (zh) * | 2020-07-16 | 2022-07-19 | 上海斗象信息科技有限公司 | 一种检测dga域名的方法 |
CN111885086B (zh) * | 2020-08-05 | 2022-10-21 | 杭州安恒信息技术股份有限公司 | 恶意软件心跳检测方法、装置、设备及可读存储介质 |
CN114285587B (zh) * | 2020-09-17 | 2023-10-10 | 中国电信股份有限公司 | 域名鉴别方法和装置、域名分类模型的获取方法和装置 |
CN112261004B (zh) * | 2020-09-27 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种Domain Flux数据流的检测方法及装置 |
CN112583827B (zh) * | 2020-12-11 | 2023-06-13 | 北京天融信网络安全技术有限公司 | 一种数据泄露检测方法及装置 |
CN114416972B (zh) * | 2021-12-10 | 2022-10-14 | 厦门市世纪网通网络服务有限公司 | 一种基于密度改善不平衡样本的dga域名检测方法 |
CN115333850B (zh) * | 2022-08-26 | 2024-04-23 | 中国电信股份有限公司 | 域名检测方法、系统及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375345A (zh) * | 2016-10-28 | 2017-02-01 | 中国科学院信息工程研究所 | 一种基于周期性检测的恶意软件域名检测方法及系统 |
CN107645503A (zh) * | 2017-09-20 | 2018-01-30 | 杭州安恒信息技术有限公司 | 一种基于规则的恶意域名所属dga家族的检测方法 |
CN107682348A (zh) * | 2017-10-19 | 2018-02-09 | 杭州安恒信息技术有限公司 | 基于机器学习的dga域名快速判别方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10594724B2 (en) * | 2017-07-19 | 2020-03-17 | Cisco Technology, Inc. | Network security user interface for domain query volume time series with custom signal modifications |
-
2019
- 2019-12-12 CN CN201911288784.1A patent/CN111147459B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375345A (zh) * | 2016-10-28 | 2017-02-01 | 中国科学院信息工程研究所 | 一种基于周期性检测的恶意软件域名检测方法及系统 |
CN107645503A (zh) * | 2017-09-20 | 2018-01-30 | 杭州安恒信息技术有限公司 | 一种基于规则的恶意域名所属dga家族的检测方法 |
CN107682348A (zh) * | 2017-10-19 | 2018-02-09 | 杭州安恒信息技术有限公司 | 基于机器学习的dga域名快速判别方法及装置 |
Non-Patent Citations (2)
Title |
---|
Detecting bot-infected machines based on analyzing the similar periodic DNS queries;Truong Dinh Tu等;《2015 International Conference on Communications, Management and Telecommunications (ComManTel)》;20160208;第35-10页 * |
基于DNS流量组评分的僵尸网络拓扑发现;邓熙;《科技创新导报》;20181122(第24期);第143-147页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111147459A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111147459B (zh) | 一种基于dns请求数据的c&c域名检测方法及装置 | |
CN107707545B (zh) | 一种异常网页访问片段检测方法、装置、设备及存储介质 | |
CN108200054B (zh) | 一种基于dns解析的恶意域名检测方法及装置 | |
US9479524B1 (en) | Determining string similarity using syntactic edit distance | |
EP2803031B1 (en) | Machine-learning based classification of user accounts based on email addresses and other account information | |
CN109460455B (zh) | 一种文本检测方法及装置 | |
CN106992969A (zh) | 基于域名字符串统计特征的dga生成域名的检测方法 | |
CN111131260B (zh) | 一种海量网络恶意域名识别和分类方法及系统 | |
CN108363701B (zh) | 命名实体识别方法及系统 | |
CN113656807B (zh) | 一种漏洞管理方法、装置、设备及存储介质 | |
CN111031026A (zh) | 一种dga恶意软件感染主机检测方法 | |
CN106372202B (zh) | 文本相似度计算方法及装置 | |
CN112839012B (zh) | 僵尸程序域名识别方法、装置、设备及存储介质 | |
CN106850338B (zh) | 一种基于语义分析的r+1类应用层协议识别方法与装置 | |
CN113469366A (zh) | 一种加密流量的识别方法、装置及设备 | |
CN106470204A (zh) | 基于请求行为特征的用户识别方法、装置、设备及系统 | |
CN105072214A (zh) | 基于域名特征的c&c域名识别方法 | |
CN109600382B (zh) | webshell检测方法及装置、HMM模型训练方法及装置 | |
CN114389834B (zh) | 一种api网关异常调用识别的方法、装置、设备及产品 | |
CN110705250A (zh) | 一种用于识别聊天记录中目标内容的方法与系统 | |
CN106878242B (zh) | 一种确定用户身份类别的方法及装置 | |
CN110545284A (zh) | 一种对抗性网络的域名检测方法及系统 | |
CN114024761B (zh) | 网络威胁数据的检测方法、装置、存储介质及电子设备 | |
CN113746952B (zh) | Dga域名检测方法、装置、电子设备及计算机存储介质 | |
KR20200063067A (ko) | 자가 증식된 비윤리 텍스트의 유효성 검증 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |