CN117354024A - 基于大数据的dns恶意域名检测系统及方法 - Google Patents
基于大数据的dns恶意域名检测系统及方法 Download PDFInfo
- Publication number
- CN117354024A CN117354024A CN202311392602.1A CN202311392602A CN117354024A CN 117354024 A CN117354024 A CN 117354024A CN 202311392602 A CN202311392602 A CN 202311392602A CN 117354024 A CN117354024 A CN 117354024A
- Authority
- CN
- China
- Prior art keywords
- domain name
- dns
- character
- detected
- log
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000005856 abnormality Effects 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000012706 support-vector machine Methods 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 238000012360 testing method Methods 0.000 claims description 7
- 230000001186 cumulative effect Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 6
- 238000013145 classification model Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 4
- 230000001681 protective effect Effects 0.000 claims description 4
- 239000012634 fragment Substances 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 11
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 229910052740 iodine Inorganic materials 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- PNDPGZBMCMUPRI-UHFFFAOYSA-N iodine Chemical compound II PNDPGZBMCMUPRI-UHFFFAOYSA-N 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
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/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- 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/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- 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]
-
- 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/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于大数据的DNS恶意域名检测系统及方法,检测系统包括日志大数据采集模块、检测引擎模块、异常报警模块,日志大数据采集模块用于利用Kafka分布式消息转发订阅框架构建;检测引擎模块包括多种检测模型,用于处理由日志大数据采集模块产生的会话组;所述检测模型包括隧道检测模型、DGA检测模型和高仿域名检测模型;高仿域名检测模型:定义保护域名,对应于待检测域名;域名数据进行域名拆分处理,根据得到的注册域名前缀字符串和待检测注册域名前缀字符串分别转化多份待编码图像,并计算对应图片特征的相似度最高值,相似度最高值高于设定阈值时,提示可能存在高仿域名。本发明能够综合应对各类网络威胁,且检测效率高。
Description
技术领域
本发明涉及恶意域名检测技术领域,具体为一种基于大数据的DNS恶意域名检测系统及方法。
背景技术
由于互联网大多数网络应用都会经过DNS(Domain Name Syste域名系统)进行通信,使得DNS成为攻击者利用的一个重要途径。攻击者采用DNS隐蔽通道手段规避恶意软件检测,利用DGA域名(Domain Generation Algorithm领域生成算法)规避黑名单封锁,传统DNS威胁检测方式对网络攻击覆盖不足,难以应对隐蔽性强、更新频率高得新型DNS网络攻击,因此急需一种检测系统用于DDI(DNS、DHCP、IP)服务部署中DNS的安全监测。
恶意域名检测常见手段有DNS服务器日志检测、基于威胁情报检测、基于黑白名单比对检测等。但黑名单库存储的恶意域名有限,不足以应对多变的恶意域名攻击,目前针对域名检测主要存在以下问题:
1)存量恶意域名数据库只能基于现有策略发现恶意域名,缺乏发现未知恶意域名的能力。如DGA域名、高仿域名等。
2)在DNS隧道中,恶意域名可能分布在共享同一名称服务器的多次查询中。这提供了额外的隐秘性和弹性,针对单条域名查询记录的检测会失效。
DGA域名是一种用于生成恶意软件控制服务器域名的算法。恶意软件作者使用DGA来创建大量的随机域名,这些域名被用作恶意软件的通信通道,使得检测和阻止变得更加困难。
高仿域名(Typosquatting Domain)是指意图混淆用户的域名,通常通过使用与目标域名类似但稍有不同的拼写、错别字或其他变体来实现。黑客和网络攻击者可能会注册这些高仿域名,以便引导用户误输入,从而进行钓鱼攻击、恶意软件传播等。这种策略的目标是利用用户的疏忽,使他们相信他们正在与合法的网站进行交互。
现有检测是方案情况如下:
(1)采集原始数据
采集原始数据的方法要么为的全流量分析(如IDS、DPI)从流量的层面,经过协议解析,提取字段再进行检测,这种方式性能开销很大,在高流量节点的服务器中在带宽、数据处理、存储方面都会占用大量成本。但是鉴于网络流量中DNS流量通常只占约1%,且DNS协议单一,专用的日志服务一般接入了监控设备,用于记录DNS查询的日志。
采集的日志内容包括以下:客户端ip,客户端端口,服务端ip,服务端端口,DNS协议中的字段信息(协议id,响应域名,响应answer),网络协议的信息(请求的设备id);
通过导入日志的方式,获取网络内DNS流量的一些原始信息,在此基础上进行DNS请求/响应的分析和检测。
(2)待检测信息预处理
1)域名拆分
针对过滤后的域名数据进行域名拆分处理,这是后续分组检测的关键步骤。传统检测中一般根据域名的来进行拆分,例如a.taobao.com则拆分为a,taobao.com,com三段,并认为taobao.com是注册域名,a是其子域名,这种拆分模式在如a.taobao.cn.com场景下则会出现问题,则产生不会认定taobao.cn.com是一个注册域名的问题,导致后续聚合计算出现问题。
2)DNS请求聚合
在数据分析平台中,创建自定义时间窗口,默认窗口为30分钟,即针对30分钟内的所有数据在一个窗口内进行下面的聚合计算。可选地支持窗口周期的调整。上述处理后数据继续进入聚合分组流程,默认根据主机UUID、父进程路径、子进程路径、注册域名分组,可选地支持修改或增加自定义分组条件。即默认的同一个主机,同一个父进程路径,同一个子进程路径,同一个注册域名的数据会被分到同一个组内。实际分组条件不止这种,本质是获得日志的上下关联,方便对恶意行为分布在多个DNS请求的情况下的时候,对整个组进行判断。
3)黑白名单过滤
通过现有的域名黑名单数据,或者结合威胁情报中恶意域名的一些数据,对已知规则的恶意域名进行匹配。
4)算法、模型检测
一般对象包括典型的如恶意僵木蠕进程利用DGA来和僵尸网络通信、DNS实现的隐蔽通信隧道等场景。
1)对检测对象进行提取特征;
2)加权特征;
3)机器学习方法进行检测分类;
4)得到结果。
恶意DNS的综合性检测中,现有方法对一部分已知信息的检测确实有一定效果,大部分仅仅是传统的依靠黑白名单加威胁情报判断。但是恶意域名中高仿域名的覆盖不足,例如已公开专利恶意域名检测方法及装置、电子设备和存储介质(CN113596016A)中,将待检测域名转换为域名图像;根据域名图像,生成待检测域名的域名编码;根据域名编码,在预设多个参考编码中确定出比较编码;根据域名编码和所述比较编码,确定待检测域名是否为恶意域名。该方案并没有考虑色彩信息,和带图案背景对视觉欺骗的影响,仅采用灰度提取排除色彩信息的感染,仅以文本内容与非恶意域名进行比较。
并且当数据量过大的情况下,直接采用DNS服务器分光的方式或者其他方式,额外接入DNS服务器的设备会不但可能影响性能,导致检测跟不上效率。
发明内容
针对上述问题,本发明的目的在于提供一种基于大数据的DNS恶意域名检测系统及方法,能够综合应对各类网络威胁,包括但不限于DGA域名攻击、隐蔽通道传输和高仿域名,能够有效的实现网络安全检测。技术方案如下:
一种基于大数据的DNS恶意域名检测系统,包括日志大数据采集模块、检测引擎模块、异常报警模块;
日志大数据采集模块用于利用Kafka分布式消息转发订阅框架构建;其包括数据采集层和数据转发层;数据采集层通过编写程序记录服务器DNS查询记录的日志,每条记录的日志信息包括源IP地址、目的IP地址(DNS服务地址)、查询的域名、记录类型、应答的结果查询的时间等;数据转发层使用Kafka的消费者功能,编写程序预处理从数据采集层发送过来的DNS日志数据;数据转发层处理后的多组待处理的DNS会话组被发送到Flink中进行实时计算;
检测引擎模块包括多种检测模型,用于处理由日志大数据采集模块产生的会话组;所述检测模型包括隧道检测模型、DGA检测模型和高仿域名检测模型;
所述隧道检测模型:提取每一组待处理的DNS日志数据的日志特征并分类,对于聚合后的同组DNS日志记录计算总分,总分大于预设阈值时,则触发异常报警模块产生报警数据,提示可能存在DNS隧道;
所述DGA检测模型:根据提取DGA域名样本和正常域名样本的域名特征,训练SVM分类器,建立DGA域名和正常域名之间的分类模型,对未知的域名样本进行DGA检测,若被分类为DGA域名,则触发异常报警模块产生报警数据,提示可能存在DGA域名;
所述高仿域名检测模型:定义包括保护名单中的保护域名,使其对应于待检测日志中的查询结果中的域名字段;将保护域名拆分为注册域名前缀字符串和注册域名,将待检测域名拆分为待检测注册域名前缀字符和待检测域名的注册域名;根据得到的注册域名前缀字符串和待检测注册域名前缀字符串分别转化多份待编码图像,并计算对应图片特征的相似度最高值,相似度最高值高于设定阈值时,触发异常报警模块产生报警数据,提示可能存在高仿域名。
一种基于大数据的DNS恶意域名检测方法,包括采用的基于机器学习的DNS隧道检测方法,包括以下步骤:
S1.1:通过日志大数据采集模块处理得到待检测的DNS日志数据,经过对于每一组待处理的待检测的DNS日志数据,确定多个日志特征;
S1.2:根据所述日志特征,使用支持向量机分类器进行特征提取和分类,并通过调整核函数和惩罚参数,得到分类预测模型;
S1.3:当待检测的DNS日志数据进入检测引擎模块后,基于Flink按日志大数据采集模块中的数据转发层,对原本分别属于不同时间段、随机顺序的待检测的DNS日志数据进行聚合后,得到重整顺序后的待检测DNS日志记录,作为一组待检测数据;
S1.4:对于聚合后的同组DNS日志记录计算总分,若判定该对应组的总分大于预设阈值,将触发异常报警模块产生报警数据,提示可能存在DNS隧道。
进一步的,所述日志特征包括:子域名、数据包大小、子域名长度、记录类型、时间间隔、字符熵以及字频斜率;
所述子域名直接从DNS请求中获取;
所述数据包大小为从DNS请求中获取数据包的长度;
所述子域名长度为计算得到的子域名字符串中字符的个数;
所述记录类型为从DNS请求中获取记录类型;
所述时间间隔为当前DNS请求的时间戳与上一个具有聚合关系的同组DNS请求的时间戳相减得到的时间间隔;
所述字符熵用于衡量字符串中信息复杂性的指标;计算时通过函数统计子域名中每个字符的频次,再根据频次计算信息熵,从而得到字符熵Entropy;公式如下:
Entropy=-Σ(P(xi)*log2(P(xi)))
式中,xi为各个字符的在字符串中出现的频次,P(xi)表示字符串中出现的字频频率;
所述字频斜率用于衡量字符在字符串中出现的频次变化趋势;计算时首先通过函数统计子域名中每个字符的频次,然后计算字符频次的累积均值,并将字符频次与均值进行差值,最终计算均值的平均累积斜率,即为字频斜率。
更进一步的,所述计算总分具体为:提取同组样本中每一个日志的子域名长度、记录类型、时间间隔、字符熵和字频斜率作为特征,计算特征值矩阵,经过预训练的模型预测,得到预训练的模型预测结果,即可疑日志占全组样本的比率,再根据连续分布情况,即可疑日志在时间上的分布情况,将可疑日志过滤为单独分组后,出现和隧道流量样本相符合的分布情况,对产生的比率进行加权乘法,得到最终评分:
P=X/(1-(1-X)*w)
其中,X代表模型得到的最初比率,w为根据不同隧道场景预设的加权系数,P为最终评分。
一种基于大数据的DNS恶意域名检测方法,包括基于SVM算法的DGA检测方法,包括以下步骤:
S2.1:收集若干个已知DGA家族的DGA域名,根据开源的DGA算法生成DGA域名样本和根据alexa排名得到的正常域名样本,并通过流量口抓取正常域名日志,根据得到的所有的域名样本构建训练数据集和测试数据集;
S2.2:对所述域名样本进行数据预处理后进行域名特征提取,以区分DGA域名和正常域名;
S2.3:采用训练数据集,对SVM分类器进行训练,建立DGA域名和正常域名之间的分类模型,并通过交叉验证和网格搜索优化超参数,提高模型的准确性和泛化能力;
S2.4:使用训练好的SVM分类器对采用测试数据集中未知的域名样本进行DGA检测,若被分类为DGA域名,则触发异常报警模块产生报警数据,提示可能存在DGA域名。
进一步的,所述域名特征包括:
Suffix域:用于判断给定域名是否属于主流域名后缀;它将域名拆分为子域和顶级域,并检查顶级域是否在预定义的主流后缀列表中;若为主流后缀,则返回1,否则返回0;
number域:用于计算给定域名中的数字字符数量;它将域名拆分为子域,并逐个字符检查是否为数字字符,并返回数字字符的总数;
numberratio域:用于计算给定域名中数字字符的比率;它使用number域函数计算数字字符的数量,并将其除以域名中总字符的数量得到比率;
consecutivenumber域:用于计算给定域名中连续数字字符的最大长度;它将域名拆分为子域,并迭代地检查连续数字字符的最大长度;
consecutivechar域:用于计算给定域名中连续字母字符的最大长度;它将域名拆分为子域,并迭代地检查连续字母字符的最大长度;
consecutivesamecha域:用于计算给定域名中连续相同字母字符的最大长度;它将域名拆分为子域,并迭代地检查连续相同字母字符的最大长度;
mvd域:用于计算给定域名中最长元音距;它将域名拆分为子域,并找到其中元音字符的位置索引,然后计算最长元音字符之间的距离;
entropy域:用于计算给定域名的信息熵;它将域名拆分为子域,并统计字母字符和数字字符的频次,然后计算信息熵;
HMM域:用于记录英文文本中字符彼此相邻出现的频率,并在完成训练数据的阅读后,对计数进行归一化。
一种基于大数据的DNS恶意域名检测方法,包括高仿域名检测方法,包括以下步骤:
S3.1:定义保护名单,定义保护名单中的保护域名a.b,对应于待检测日志中的查询结果中的域名字段;将待检测域名记作A.B;
S3.2:对经过S3.1中保护名单过滤后的域名数据进行域名拆分处理,保护域名a.b拆分后得到注册域名前缀字符串a和注册域名b;待检测域名A.B拆分后得到待检测注册域名前缀字符A和待检测域名的注册域名B;
S3.3:将处理后得到的注册域名前缀字符串a片段转化为常用字体的字符图像,并叠加视觉欺骗场景背景图像生成多份待编码图像:a1,a2,a3,a4……;将处理后得到的待检测注册域名前缀字符串A片段转化为常用字体的字符图像,得到多份待编码图像:A1,A2,A3,A4……;
S3.4:将待编码图像经过SITF算法提取图片特征判断相似度:F(a1-A1),F(a2-A2)…;取相似度最高值F(a-A);
S3.5:当相似度最高值F(a-A)高于设定阈值时,判定待检测域名与保护域名视觉相似度足够高,并触发异常报警模块产生报警数据,提示可能存在高仿域名。
进一步的,针对键盘空间误差的高仿域名,根据误输入的空间临近关系,对字符变换效率进行加权,对根据最短路径算法计算得到高仿域名中变化字符的字符变换距离进行处理,得到保护域名的有可能的变体情况。
更进一步的,步骤S3.5具体为:将不在统一域名服务器登记,域名相似度高于设定阈值的待检测域名地址,初步定义为风险地址;判断为风险地址后再通过模糊哈希、网站指纹识别待检测域名和白名单域名所提供服务的HTML文件内容;若风险地址和白名单地址所提供服务的HTML文件的模糊哈希相似度再次高于设定阈值,则确定待检测域名是高仿域名,将触发告警并进行展示,提示可能存在高仿域名。
本发明的有益效果是:
本发明可以不依赖DNS流量,通过DNS日志,综合应对各类网络威胁,包括但不限于DGA域名攻击、隐蔽通道传输和、高仿域名.可以在大数据量级下处理DNS乱序日志,并还原其中网络威胁,且提供了一种针对视觉背景的高仿域名的检测方法,提高了了传统分析方法中只能靠字符相似度检测高仿域名等特殊场景的不足性。
附图说明
图1为本发明基于大数据的DNS恶意域名检测系统的结构图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明提供了基于大数据的DNS恶意域名检测系统包括日志大数据采集模块、检测引擎模块、异常报警模块。
(1)日志大数据采集模块:用于利用Kafka分布式消息转发订阅框架构建;包括数据采集层和数据转发层。
a)数据采集层:数据采集层通过编写程序生成DNS服务器的日志信息,生成单条DNS查询记录的的日志,日志包括:
客户端ip,客户端端口,服务端ip,服务端端口,DNS协议中的字段信息(协议id,响应域名,响应answer),网络协议的信息(请求的设备id),请求时间。
b)数据转发层使用Kafka的消费者功能,编写程序实时消费从数据采集层发送过来的DNS日志数据。在消费过程中,应用特定的实时计算逻辑来将无序的DNS日志数据按照特征进行聚合,生成多组待处理的DNS会话组。
数据转发层处理后的多组待处理的DNS会话组被发送到Flink中进行实时计算。Flink的实时计算逻辑将进一步处理这些DNS会话组,可能包括对DNS会话组进行统计、聚合、过滤等操作。根据业务需求,Flink可以根据时间间隔、请求地址等信息对DNS会话组进行更深入的分析。
(2)检测引擎模块包括多种基于检测模型的检测方法,处理由日志采集模块产生的会话组。检测模型包括隧道检测模型、DGA检测模型和高仿域名检测模型。
1)隧道检测模型
本发明提供了一种基于机器学习的DNS隧道检测方法,数据集来自dns2tcp、dnscat2、iodine、ozymandns、dnscapy,dns benign,dns exfiltrator,dnslivery的DNS隧道利用程序的抓包流量。通过流量重发的方式,通过日志大数据采集模块处理得到待检测日志,经过对于每一组待处理的DNS日志数据,本发明抽多个日志特征。这些日志特征包括子域名、数据包大小、子域名长度、记录类型、时间间隔、字符熵以及字频斜率等。
a)子域名(domain):直接从DNS请求中获取。
b)数据包大小(size):从DNS请求中获取数据包的长度。
c)子域名长度(length):计算子域名的长度,即子域名字符串中字符的个数。
d)记录类型(RRtype):从DNS请求中获取记录类型。
e)时间间隔(time_interval):计算当前DNS请求与上一个DNS请求的时间间隔。在代码中,获取当前DNS请求的时间戳,上一个具有聚合关系的同组DNS请求的时间戳相减得到时间间隔。
f)字符熵(entropy):使用编程方式计算子域名的字符熵。字符熵是一种衡量字符串中信息复杂性的指标,它反映了字符串中字符出现的不确定性。函数首先统计子域名中每个字符的频次,然后根据频次计算信息熵。
Entropy=-Σ(P(xi)*log2(P(xi)))
其中,xi为各个字符的在字符串中出现的频次,P(xi)表示字符串中出现的字频频率。
g)字频斜率(K,meanSlope):使用编程计算子域名中字符的字频斜率。字频斜率用于衡量字符在字符串中出现的频次变化趋势。函数中,首先统计子域名中每个字符的频次,然后计算字符频次的累积均值,并将字符频次与均值进行差值,最终计算均值的平均累积斜率。
根据以上特征本方法提供了一种使用支持向量机(SVM)分类器进行特征提取和分类的有效途径。通过调整核函数和惩罚参数,得到分类预测模型。
当待检测日志进入检测模块后,基于上面的流程中Flink按日志大数据采集模块中的数据转发层,对不同时间段,随机顺序的DNS查询日志,进行聚合后的同组DNS日志记录,作为一组待检测数据,对于聚合后的同组DNS日志记录计算总分,若判定该对应组的总分大于预设阈值,将触发告警并进行展示,提示可能存在DNS隧道。
其中,聚合是指:依据五元组(五元组就是一个网络数据包的五个基本属性,包括源IP地址、目的IP地址、源端口号、目的端口号和传输协议)。会话中的数据包通常具有相同的源IP地址和目标IP地址。这意味着发现一组数据包具有相同的IP地址对,那么很可能属于同一个会话。会话中的数据包通常在一段时间内连续传输,因此根据时间戳将DNS日志关联在一起。检查DNS日志之间的时间差,如果它们的时间戳在一定的时间范围内,那么它们可能属于同一个会话。将其聚合为一组样本进行后续处理。
计算总分具体为:提取同组样本中每一个日志的子域名长度、记录类型、时间间隔、字符熵和字频斜率作为特征,计算特征值矩阵,经过预训练的模型预测,得到预训练的模型预测结果,即可疑日志占全组样本的比率,再根据连续分布情况,即可疑日志在时间上的分布情况;将可疑日志过滤为单独分组后,出现和隧道流量样本相符合的分布情况,例如,这一组可疑日志中的时间间隔和子域名大小两项特征符合一般隧道应用场景中传输上行下行流量的分布情况。就对之前产生的比率进行一个加权乘法,得到最终评分为:
P=X/(1-(1-X)*w)
其中,X代表模型得到的最初比率,w为根据不同隧道场景预设的加权系数,P为最终评分。
2)DGA检测模型
本发明提供了一种基于SVM算法的DGA检测方法,旨在解决传统检测方法在识别DGA域名时的不足之处。
首先,通过收集53个已知DGA家族的DGA域名作为样本,并根据开源的DGA算法生成DGA样本和根据alexa排名中的正常域名,以及流量口抓取的正常域名日志构建训练数据集和测试数据集。
接着,对这些域名样本进行域名特征提取,包括子域名长度、字符频率、域名长度等关键特征,以区分DGA域名和正常域名。进行数据预处理,包括标准化、归一化等操作,确保特征数据的一致性和质量。
然后,使用SVM分类器进行训练,建立DGA域名和正常域名之间的分类模型,并通过交叉验证和网格搜索优化超参数,提高模型的准确性和泛化能力。使用训练好的SVM分类器对未知的域名样本进行DGA检测,若被分类为DGA域名,将触发告警并进行展示,提示可能存在DGA域名。
域名特征值包括:
a)suffix(domain):用于判断给定域名是否属于主流域名后缀。它将域名拆分为子域和顶级域,并检查顶级域是否在预定义的主流后缀列表中。如果是主流后缀,则返回1,否则返回0。
b)number(domain):用于计算给定域名中的数字字符数量。它将域名拆分为子域,并逐个字符检查是否为数字字符。返回数字字符的总数。
c)numberratio(domain):用于计算给定域名中数字字符的比率。它使用number(domain)函数计算数字字符的数量,并将其除以域名中总字符的数量得到比率。
d)consecutivenumber(domain):用于计算给定域名中连续数字字符的最大长度。它将域名拆分为子域,并迭代地检查连续数字字符的最大长度。
e)consecutivechar(domain):用于计算给定域名中连续字母字符的最大长度。它将域名拆分为子域,并迭代地检查连续字母字符的最大长度。
f)consecutivesamechar(domain):用于计算给定域名中连续相同字母字符的最大长度。它将域名拆分为子域,并迭代地检查连续相同字母字符的最大长度。
g)mvd(domain):用于计算给定域名中最长元音距。它将域名拆分为子域,并找到其中元音字符的位置索引,然后计算最长元音字符之间的距离。
h)entropy(domain)::用于计算给定域名的信息熵。它将域名拆分为子域,并统计字母字符和数字字符的频次,然后计算信息熵。
i)HMM(domain):马尔可夫链首先“训练”或“研究”几MB的英文文本,记录字符彼此相邻出现的频率。例如,给定文本“Rob likes hacking”,它看到Ro,ob,o[space],[space]l,...它只计算这些对。在它完成训练数据的阅读后,它对计数进行归一化。然后每个字符在给定的首字母之后有27个后续字符(26个字母+空格)的概率分布。
当待检测日志进入检测模块后,基于上面的流程中flink按日志数据采集模块中的数据转发层,若判定该对应组的分类为DGA域名,将触发告警并进行展示。
3)高仿域名检测模型
本发明还涉及一种高仿域名检测的方法,该方法用于识别网络中的高仿域名,即与正常域名非常相似,很难被普通用户轻易辨别的恶意域名。高仿域名往往是用于网络钓鱼攻击或者水坑攻击的的常见手段之一,用于进行钓鱼、网络钓鱼、网络诈骗等违法活动。
系统内定义了保护名单,(来源为alexa排名网站,以及正常在网络DNS设备中抓包得到的正常名单,以及预设白名单)。假设保护名单中存在保护域名a.b(a为注册域名前缀字符串,b为注册域名),对应于待检测日志中的查询结果中的域名字段。待检测域名为A.B(A为待检测注册域名前缀字符串,B为待检测域名的注册域名)
针对过滤后的域名数据进行域名拆分处理,本发明中,根据内置所有可注册顶级域名列表集合,如:’.xyz’,′.yachts′,′.yahoo′,′.yamaxun′,′.yandex′,′.ye′,′.yodobashi′,′.yoga′,’.cn.com’,’.com’,’.cn’等等。日志中的domain会根据该列表中由长到短进行匹配,例如’.cn.com’(长度2),’.com’(长度1),则数据cc.a.taobao.cn.com会被拆分为注册域名taobao.cn.com,注册域名前缀为cc.a;如cc.test.com则会被拆分为注册域名test.com,注册域名前缀为cc,按照以上逻辑将域名拆分为多个片段。
例如,拆分后a为注册域名前缀字符串,b为注册域名,A为待检测注册域名前缀字符串,B为待检测域名的注册域名。
将处理后的注册域名前缀字符串a片段转化为常用字体的字符图像,并叠加常用视觉欺骗场景背景图像,包括不限于叠加聊天软件文字窗体默认背景,网站链接背景,下划线背景等,生成多份待编码图像:a1,a2,a3,a4……。同样的流程处理待检测注册域名前缀字符串A,得到多份待编码图像A1,A2,A3,A4……。
将待编码图像经过SITF算法提取图片特征判断相似度:F(a1-A1),F(a2-A2)…;取相似度最高值F(a-A);
当相似度最高值F(a-A)高于设定阈值时,判定待检测域名与保护域名视觉相似度较高,待检测域名有可能利用外观的相似度来误导用户点击的域名。
在另一种情况中针对键盘空间误差的高仿域名中,例如在qwert键盘分布情况下用户输入字符过程中存在误输入的情况:′1′:′2q′,′2′:′3wq1′,′3′:′4ew2′,′4′:′5re3′,′5′:′6tr4′。根据误输入的空间临近关系,对字符变换效率进行加权,针对键盘空间误差的高仿域名,根据误输入的空间临近关系,对字符变换效率进行加权,对根据最短路径算法计算得到高仿域名中变化字符的字符变换距离进行处理,得到保护名单域名的有可能的变体情况。例如baidy,和baidu,在感知哈希的角度相似性并不高,但是基于输入误差的可能性,依旧存在待检测域名有可能利用输入的相似度来捕获用户错误输入的域名。
需要额外注意的是,因为DNS日志服务器中,域名查询都用小写表达,在有可能的情况下,服务器收到是域名查询为bilibiii.com,但是诱导用户发起域名请求的域名在实际视角下为bilibiIi,而用户实际需要访问的是bilibili,攻击者使用注册的bilibiii.org域名对用户发起恶意行为。使用需要针对类似(i,I)(l,L)是有可能的字符进行大小写逆变化。基于这种情况在处理待检测注册域名前缀字符串A,得到多份待编码图像A1,A2,A3,A4……的时候,根据A1,A2等图像中有可能造成大小写误判的情况进行细化处理,生成类似bilibiIi的A5图像,再结合经过IP地址和域名服务器,结合外部信息(包括whois数据,DNS服务器数据),的信息联合对比。
例如:archive.org域名服务器为ns-global.kjsl.com,待检测样本archive3.org域名服务器为alt1.aspmx.l.google.com,不在统一域名服务器登记,域名高度相似,初步定义为风险地址。
判断为风险地址后再通过模糊哈希、网站指纹识别待检测域名和白名单域名所提供服务的HTML文件内容;再次高于设定阈值,确定待检测域名是高仿域名,将触发告警并进行展示,提示可能存在高仿域名。
综合以上三种方法,本发明提供了一种大数据下DNS日志检测系统,本发明能够综合应对各类网络威胁,包括但不限于DGA域名攻击、隐蔽通道传输和高仿域名作为网络安全检测。
Claims (9)
1.一种基于大数据的DNS恶意域名检测系统,其特征在于,包括日志大数据采集模块、检测引擎模块、异常报警模块;
日志大数据采集模块用于利用Kafka分布式消息转发订阅框架构建;其包括数据采集层和数据转发层;数据采集层通过编写程序记录服务器DNS查询记录的日志,每条记录的日志信息包括源IP地址、目的IP地址、查询的域名、记录类型和应答的结果查询的时间;数据转发层使用Kafka的消费者功能,编写程序预处理从数据采集层发送过来的DNS日志数据;数据转发层处理后的多组待处理的DNS会话组被发送到Flink中进行实时计算;
检测引擎模块包括多种检测模型,用于处理由日志大数据采集模块产生的会话组;所述检测模型包括隧道检测模型、DGA检测模型和高仿域名检测模型;
所述隧道检测模型:提取每一组待处理的DNS日志数据的日志特征并分类,对于聚合后的同组DNS日志记录计算总分,总分大于预设阈值时,则触发异常报警模块产生报警数据,提示可能存在DNS隧道;
所述DGA检测模型:根据提取DGA域名样本和正常域名样本的域名特征,训练SVM分类器,建立DGA域名和正常域名之间的分类模型,对未知的域名样本进行DGA检测,若被分类为DGA域名,则触发异常报警模块产生报警数据,提示可能存在DGA域名;所述高仿域名检测模型:定义包括保护名单中的保护域名,使其对应于待检测日志中的查询结果中的域名字段;将保护域名拆分为注册域名前缀字符串和注册域名,将待检测域名拆分为待检测注册域名前缀字符和待检测域名的注册域名;将得到的注册域名前缀字符串和待检测注册域名前缀字符串各自分别转化多份待编码图像,并计算对应图片特征的相似度最高值,相似度最高值高于设定阈值时,触发异常报警模块产生报警数据,提示可能存在高仿域名。
2.一种应用于权利要求1所述的基于大数据的DNS恶意域名检测系统的检测方法,其特征在于,包括采用的基于机器学习的DNS隧道检测方法,包括以下步骤:
S1.1:通过日志大数据采集模块处理得到待检测的DNS日志数据,经过对于每一组待处理的待检测的DNS日志数据,确定多个日志特征;
S1.2:根据所述日志特征,使用支持向量机分类器进行特征提取和分类,并通过调整核函数和惩罚参数,得到分类预测模型;
S1.3:当待检测的DNS日志数据进入检测引擎模块后,基于Flink按日志大数据采集模块中的数据转发层,对原本分别属于不同时间段、随机顺序的待检测的DNS日志数据进行聚合后,得到重整顺序后的待检测DNS日志记录,作为一组待检测数据;
S1.4:对于聚合后的同组DNS日志记录计算总分,若判定该对应组的总分大于预设阈值,将触发异常报警模块产生报警数据,提示可能存在DNS隧道。
3.根据权利要求2所述的检测方法,其特征在于,所述日志特征包括:子域名、数据包大小、子域名长度、记录类型、时间间隔、字符熵以及字频斜率;
所述子域名直接从DNS请求中获取;
所述数据包大小为从DNS请求中获取数据包的长度;
所述子域名长度为计算得到的子域名字符串中字符的个数;
所述记录类型为从DNS请求中获取记录类型;
所述时间间隔为当前DNS请求的时间戳与上一个具有聚合关系的同组DNS请求的时间戳相减得到的时间间隔;
所述字符熵用于衡量字符串中信息复杂性的指标;计算时通过函数统计子域名中每个字符的频次,再根据频次计算信息熵,从而得到字符熵Entropy;公式如下:
Entropy=-Σ(P(xi)*log2(P(xi)))
式中,xi为各个字符的在字符串中出现的频次,P(xi)表示字符串中出现的字频频率;
所述字频斜率用于衡量字符在字符串中出现的频次变化趋势;计算时首先通过函数统计子域名中每个字符的频次,然后计算字符频次的累积均值,并将字符频次与均值进行差值,最终计算均值的平均累积斜率,即为字频斜率。
4.根据权利要求2所述的检测方法,其特征在于,所述计算总分具体为:提取同组样本中每一个日志的子域名长度、记录类型、时间间隔、字符熵和字频斜率作为特征,计算特征值矩阵,经过预训练的模型预测,得到预训练的模型预测结果,即可疑日志占全组样本的比率,再根据连续分布情况,即可疑日志在时间上的分布情况,将可疑日志过滤为单独分组后,出现和隧道流量样本相符合的分布情况,对产生的比率进行加权乘法,得到最终评分:
P=X/(1-(1-X)*w)
其中,X代表模型得到的最初比率,w为根据不同隧道场景预设的加权系数,P为最终评分。
5.一种应用于权利要求1所述的基于大数据的DNS恶意域名检测系统的检测方法,其特征在于,包括基于SVM算法的DGA检测方法,包括以下步骤:
S2.1:收集若干个已知DGA家族的DGA域名,根据开源的DGA算法生成DGA域名样本和根据alexa排名得到的正常域名样本,并通过流量口抓取正常域名日志,根据得到的所有的域名样本构建训练数据集和测试数据集;
S2.2:对所述域名样本进行数据预处理后进行域名特征提取,以区分DGA域名和正常域名;
S2.3:采用训练数据集,对SVM分类器进行训练,建立DGA域名和正常域名之间的分类模型,并通过交叉验证和网格搜索优化超参数,提高模型的准确性和泛化能力;
S2.4:使用训练好的SVM分类器对采用测试数据集中未知的域名样本进行DGA检测,若被分类为DGA域名,则触发异常报警模块产生报警数据,提示可能存在DGA域名。
6.根据权利要求5所述的检测方法,其特征在于,所述域名特征包括:
Suffix域:用于判断给定域名是否属于主流域名后缀;它将域名拆分为子域和顶级域,并检查顶级域是否在预定义的主流后缀列表中;若为主流后缀,则返回1,否则返回0;
number域:用于计算给定域名中的数字字符数量;它将域名拆分为子域,并逐个字符检查是否为数字字符,并返回数字字符的总数;
numberratio域:用于计算给定域名中数字字符的比率;它使用number域函数计算数字字符的数量,并将其除以域名中总字符的数量得到比率;
consecutivenumber域:用于计算给定域名中连续数字字符的最大长度;它将域名拆分为子域,并迭代地检查连续数字字符的最大长度;
consecutivechar域:用于计算给定域名中连续字母字符的最大长度;它将域名拆分为子域,并迭代地检查连续字母字符的最大长度;
consecutivesamecha域:用于计算给定域名中连续相同字母字符的最大长度;它将域名拆分为子域,并迭代地检查连续相同字母字符的最大长度;
mvd域:用于计算给定域名中最长元音距;它将域名拆分为子域,并找到其中元音字符的位置索引,然后计算最长元音字符之间的距离;
entropy域:用于计算给定域名的信息熵;它将域名拆分为子域,并统计字母字符和数字字符的频次,然后计算信息熵;
HMM域:用于记录英文文本中字符彼此相邻出现的频率,并在完成训练数据的阅读后,对计数进行归一化。
7.一种应用于权利要求1所述的基于大数据的DNS恶意域名检测系统的检测方法,其特征在于,包括高仿域名检测方法,包括以下步骤:
S3.1:定义保护名单,定义保护名单中的保护域名a.b,对应于待检测日志中的查询结果中的域名字段;将待检测域名记作A.B;
S3.2:对经过S3.1中保护名单过滤后的域名数据进行域名拆分处理,保护域名a.b拆分后得到注册域名前缀字符串a和注册域名b;待检测域名A.B拆分后得到待检测注册域名前缀字符A和待检测域名的注册域名B;
S3.3:将处理后得到的注册域名前缀字符串a片段转化为常用字体的字符图像,并叠加视觉欺骗场景背景图像生成多份待编码图像:a1,a2,a3,a4……;将处理后得到的待检测注册域名前缀字符串A片段转化为常用字体的字符图像,得到多份待编码图像:A1,A2,
A3,A4……;
S3.4:将待编码图像经过SITF算法提取图片特征判断相似度:F(a1-A1),F(a2-A2)…;
取相似度最高值F(a-A);
S3.5:当相似度最高值F(a-A)高于设定阈值时,判定待检测域名与保护域名视觉相似度足够高,并触发异常报警模块产生报警数据,提示可能存在高仿域名。
8.根据权利要求7所述的检测方法,其特征在于,针对键盘空间误差的高仿域名,根据误输入的空间临近关系,对字符变换效率进行加权,对根据最短路径算法计算得到高仿域名中变化字符的字符变换距离进行处理,得到保护域名的有可能的变体情况。
9.根据权利要求7所述的检测方法,其特征在于,S3.5具体为:将不在统一域名服务器登记,域名相似度高于设定阈值的待检测域名地址,初步定义为风险地址;判断为风险地址后再通过模糊哈希、网站指纹识别待检测域名和白名单域名所提供服务的HTML文件内容;若风险地址和白名单地址所提供服务的HTML文件的模糊哈希相似度再次高于设定阈值,则确定待检测域名是高仿域名,将触发告警并进行展示,提示可能存在高仿域名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311392602.1A CN117354024A (zh) | 2023-10-25 | 2023-10-25 | 基于大数据的dns恶意域名检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311392602.1A CN117354024A (zh) | 2023-10-25 | 2023-10-25 | 基于大数据的dns恶意域名检测系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354024A true CN117354024A (zh) | 2024-01-05 |
Family
ID=89366447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311392602.1A Pending CN117354024A (zh) | 2023-10-25 | 2023-10-25 | 基于大数据的dns恶意域名检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354024A (zh) |
-
2023
- 2023-10-25 CN CN202311392602.1A patent/CN117354024A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106713371B (zh) | 一种基于DNS异常挖掘的Fast Flux僵尸网络检测方法 | |
Chen et al. | An efficient network intrusion detection | |
Niakanlahiji et al. | Phishmon: A machine learning framework for detecting phishing webpages | |
CN111131260B (zh) | 一种海量网络恶意域名识别和分类方法及系统 | |
US20140047543A1 (en) | Apparatus and method for detecting http botnet based on densities of web transactions | |
CN111818103B (zh) | 一种网络靶场中基于流量的溯源攻击路径方法 | |
CN112929390B (zh) | 一种基于多策略融合的网络智能监控方法 | |
CN110830490B (zh) | 基于带对抗训练深度网络的恶意域名检测方法及系统 | |
Krishnaveni et al. | Ensemble approach for network threat detection and classification on cloud computing | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN112543196A (zh) | 一种基于区块链智能合约的网络威胁情报共享平台 | |
CN111245784A (zh) | 多维度检测恶意域名的方法 | |
Sammour et al. | Dns tunneling: a review on features | |
CN110855716B (zh) | 一种面向仿冒域名的自适应安全威胁分析方法及系统 | |
CN114003903A (zh) | 一种网络攻击追踪溯源方法及装置 | |
Li et al. | A method based on statistical characteristics for detection malware requests in network traffic | |
Bao et al. | Using passive dns to detect malicious domain name | |
Zheng et al. | Preprocessing method for encrypted traffic based on semisupervised clustering | |
Rosenthal et al. | ARBA: Anomaly and reputation based approach for detecting infected IoT devices | |
CN113746804A (zh) | Dns隐蔽信道检测方法、装置、设备及存储介质 | |
Baich et al. | Machine Learning for IoT based networks intrusion detection: a comparative study | |
Aswani et al. | Topic modeling of SSH logs using latent dirichlet allocation for the application in cyber security | |
Niu et al. | Using XGBoost to discover infected hosts based on HTTP traffic | |
Marchal | DNS and semantic analysis for phishing detection | |
CN112261004B (zh) | 一种Domain Flux数据流的检测方法及装置 |
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 |