CN114024701A - 域名检测方法、装置及通信系统 - Google Patents
域名检测方法、装置及通信系统 Download PDFInfo
- Publication number
- CN114024701A CN114024701A CN202010694113.1A CN202010694113A CN114024701A CN 114024701 A CN114024701 A CN 114024701A CN 202010694113 A CN202010694113 A CN 202010694113A CN 114024701 A CN114024701 A CN 114024701A
- Authority
- CN
- China
- Prior art keywords
- domain name
- segment
- characters
- name segment
- domain
- 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 67
- 238000004891 communication Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 110
- 230000002159 abnormal effect Effects 0.000 claims abstract description 101
- 239000013598 vector Substances 0.000 claims description 31
- 238000007781 pre-processing Methods 0.000 claims description 23
- 230000015654 memory Effects 0.000 claims description 20
- 230000008520 organization Effects 0.000 claims description 13
- 238000000926 separation method Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 238000007477 logistic regression Methods 0.000 claims description 9
- 238000007637 random forest analysis Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000006403 short-term memory Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims 2
- 230000037430 deletion Effects 0.000 claims 2
- 239000000523 sample Substances 0.000 description 86
- 230000008569 process Effects 0.000 description 62
- 238000012549 training Methods 0.000 description 46
- 230000002829 reductive effect Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 230000007246 mechanism Effects 0.000 description 15
- 239000000284 extract Substances 0.000 description 14
- 230000005641 tunneling Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 12
- 238000013136 deep learning model Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000003550 marker Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 230000002547 anomalous effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- UXHQLGLGLZKHTC-CUNXSJBXSA-N 4-[(3s,3ar)-3-cyclopentyl-7-(4-hydroxypiperidine-1-carbonyl)-3,3a,4,5-tetrahydropyrazolo[3,4-f]quinolin-2-yl]-2-chlorobenzonitrile Chemical compound C1CC(O)CCN1C(=O)C1=CC=C(C=2[C@@H]([C@H](C3CCCC3)N(N=2)C=2C=C(Cl)C(C#N)=CC=2)CC2)C2=N1 UXHQLGLGLZKHTC-CUNXSJBXSA-N 0.000 description 2
- 241000735552 Erythroxylum Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 235000008957 cocaer Nutrition 0.000 description 2
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000287828 Gallus gallus Species 0.000 description 1
- 241001386813 Kraken Species 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 235000013550 pizza Nutrition 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3346—Query execution using probabilistic model
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种域名检测方法、装置及通信系统,属于互联网技术领域。所述方法包括:从域名中确定多个域名段;在确定该多个域名段中存在异常的域名段后,将该域名确定为恶意域名。本申请能够提高恶意域名的识别准确性。本申请用于恶意域名的识别。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种域名检测方法、装置及通信系统。
背景技术
恶意域名,是黑客在网络攻击时,生成的非法域名。基于该恶意域名,黑客所控制的主控机与安装有恶意软件的僵尸机建立直接或间接的通信连接。安全设备通过识别恶意域名,可以降低主控机与僵尸机建立连接的概率,从而降低僵尸机被控制的概率。
目前,安全设备在获取域名后,将获取的域名输入机器学习模型,由机器学习模型识别输入的域名是否为恶意域名。
但是,目前的机器学习模型对恶意域名的识别准确性较低。
发明内容
本申请实施例提供了一种域名检测方法、装置及通信系统。该技术方案如下:
第一方面,提供了一种域名检测方法,该方法包括:
从域名中确定多个域名段;
在确定该多个域名段中存在异常的域名段后,将该域名确定为恶意域名。
本申请实施例提供的域名检测方法,通过从域名中获取多个域名段,通过检测域名段是否为异常域名段来确定域名是否为恶意域名,相对于相关技术,不再采用域名整体作为识别单位,以域名段为异常识别单位,降低了各个域名段相互之间的干扰,提高了恶意域名的识别准确性。
可选地,该方法还包括:在该域名段满足预设规则时,确定该域名段为异常的域名段;其中,该预设规则为如下三种规则中的任一种或多种:
第一种规则、基于该域名段通过分类器识别出异常的域名段;示例的,该分类器包括神经网络模型,如循环神经网络(Recurrent Neural Network,RNN)模型、卷积神经网络(Convolutional Neural Networks,CNN)模型和/或长短期记忆(Long Short TermMemory,LSTM)模型等深度学习模型。或者,基于该域名段的特征向量通过分类器识别出异常的域名段。示例的,该分类器包括机器学习模型,如逻辑回归模型,和/或随机森林模型。前述分类器还可以包括其他模型,例如支持向量机(Support Vector Machine,SVM)。
本申请实施例中分类器通常有至少两个,如此,由至少两个分类器组合得到一个精度更高的分类器,比单一的分类器具有更好的泛化能力,从而更准确适配现网的域名数据,进一步提高确定的异常的域名段的精确度。当分类器有至少两种时,最终的分类结果为至少两种分类器的分类结果的加权和,或加权平均值。例如,该至少两种分类器分别输出包括至少两个分类结果,每个分类结果包括一个分数值,最终的分类结果为至少两个分数值的加权和,或加权平均值。
其中该特征向量为包括n个特征的n维特征向量,n为正整数,该n个特征包括如下的任一种或多种:域名段包括的连字符在域名段包括的字符中的个数占比;域名段包括的数字在域名段包括的字符中的个数占比;域名段的长度;域名段包括的字符种类数与域名段的字符总数之比;域名段包括的数字种类数与域名段的字符总数之比;域名段的香农熵;域名段包括的连续重复字母的出现次数与域名段的字符总数之比;域名段包括的元音字母在域名段中的个数占比;域名段包括的数字在域名段包括的字符中的个数占比;域名段包括的连续字母的出现次数x1与第一字符数y1之比,该第一字符数y1为域名段的字符总数y与连续字母的出现次数x1之差;域名段包括的连续辅音字母的出现次数x2与第二字符数y2之比,该第二字符数y2为域名段的字符总数y与连续辅音字母的出现次数x2之差;域名段包括的连续数字的出现次数x3与第三字符数y3之比,该第三字符数y3为域名段的字符总数y与连续数字的出现次数x3之差;域名段中数字和字母切换的次数与域名段的字符总数之比;可读性得分,该可读性得分用于指示域名段的可读性;可靠性得分,该可靠性得分用于指示域名段的可靠性;域名段包括的单词的个数与域名段的字符总数之比;域名段包括的单词数量;二元数据排序特征,该二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号确定的特征,该多个二元数据中每个该二元数据由域名段中连续的两个字符组成;三元数据排序特征,该三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号确定的特征,该多个三元数据中每个该三元数据由域名段中连续的三个字符组成。
可选地,该n个特征满足如下的一种或多种:当该n个特征满包括可读性得分时,该可读性得分为采用指定单词库训练得到的马尔科夫模型所输出的域名段对应的得分;当该n个特征满包括可靠性得分时,该可靠性得分为采用域名段正样本集合训练得到的马尔科夫模型所输出的域名段对应的得分;当该n个特征满包括二元数据排序特征时,该二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数、平均值或方差;当该n个特征满包括二元数据排序特征时,该三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数、平均值或方差。
或者,第二种规则、该域名段包括的元音字母的个数在该域名段包的字符总数的比值小于比值阈值。通过设置该比例阈值,可以有效筛选出随机生成的域名段,从而识别得到异常的域名段。尤其对于基于DGA生成的域名中的域名段的识别准确性较高。
或者,第三种规则、该域名段包括异常词条。可选地,域名段中的词条可以由艾侯-科拉西克自动机(Aho-Corasick automaton,AC自动机)识别得到。该识别过程包括:基于AC自动机的词库从每个域名段分析出域名段中包括的词条,该AC自动机的词库包括单词、拼音、机构名(和/或组织名、单位名、公司名)或词根中的一种或多种。进一步的,该AC自动机的词库还可以包括其他内容,例如指定网站中的词条。
示例的,该异常的域名段中的词条的并集所包括的字符数大于字符数量阈值;和/或,该异常词条为在指定时长内,出现的次数大于次数阈值,和/或出现在不同域名段的同一位置的概率大于概率阈值的词条。示例的,该指定时长可以为1至7天,例如5天。
本申请实施例中,将指定时长内出现的次数大于次数阈值的词条确定为异常词条,可以针对基于单词型DGA所生成的域名的生成原理,将在指定时长内多次出现的词条确定为异常词条,从而准确识别得到异常词条。
本申请实施例中,将出现在不同域名段的同一位置的概率大于概率阈值的词条确定为异常词条,可以针对基于混淆型DGA所生成的域名的生成原理,将指定时长内经常出现在域名段同一位置的词条确定为异常词条,从而准确识别得到异常词条。
在本申请实施例中,可以通过构建词条对应的二元组(tuple)来确定异常词条。示例的,该过程包括:为第一域名集合中每个域名中每个词条构建一个二元组,该二元组包括对应词条包括的字符串(即词条的内容)以及对应词条在所在域名段包括的词条中出现的次序。可选地,该次序可以由序号表示。当第一域名集合中某一词条w对应的二元组与目标二元组共同出现的次数大于共现次数阈值时,确定该某一词条w为异常词条。其中,目标二元组为第一域名集合中包括的除该某一词条w之外的词条对应的二元组,且目标二元组与某一词条w对应的二元组的距离小于距离阈值(或相似度大于相似度阈值)。
可选地,前述每两个二元组之间的距离可以采用杰卡德距离(Jaccard Distance)公式计算。
可选地,在获取多个域名段后,可以删除多个域名段中的一个或多个域名段,以得到更新后的多个域名段。示例的,该更新过程包括:在确定该域名中的指定位置的域名段属于与该指定位置对应的域名段集合后,删除该多个域名段中的该指定位置的域名段,来得到更新后的多个域名段,该域名段集合包括一个或多个域名段。
本申请实施例以以下几种情况为例,对前述多个域名段的更新过程进行说明:
第一种情况,在确定该域名中的第一个域名段属于包括“www”的域名段集合后,删除该多个域名段中的第一个域名段,来得到更新后的多个域名段;
第二种情况,在确定该域名中的倒数第二个域名段属于顶级域名集合,且该倒数第二个域名段的字符总数小于第一数量阈值后,删除该多个域名段中的倒数第二个域名段,来得到更新后的多个域名段,该顶级域名集合包括一个或多个顶级域名;
第三种情况,在确定该域名中的最后一个域名段属于顶级域名集合后,删除该多个域名段中的最后一个域名段,来得到更新后的多个域名段。
其中,前述第二种情况和第三种情况中,顶级域名集合的获取方式可以有多种,在本申请实施例中,可以收集现网中所有顶级域名,得到顶级域名集合。
前述三种情况所对应的多个域名段的更新过程,可以根据实际场景单独执行或组合执行,也即是多个域名段的更新过程包括前述三种情况所对应的更新过程的任一种或多种。
在一种可选示例中,该方法包括:在该恶意域名被一次或多次访问,输出用于该访问的IP地址。如此可以定位到僵尸机,从而确定被控制的计算机设备,以实现计算机设备的安全防护,实现恶意攻击的预防。
可选地,在该恶意域名被一次或多次访问,且该访问不存在地址记录时,输出用于该访问的IP地址。如此可以更准确地定位僵尸机,提高僵尸机的定位精度。
在另一种可选示例中,该方法包括:输出异常的机构域名或者主机域名,该机构域名或者该主机域名为该恶意域名中的部分字符串或者全部字符串。其中,机构域名用于标识恶意域名所来源的机构,主机域名用于标识恶意域名所来源的主机。通过识别并输出恶意域名所对应的标志域名,可以定位恶意域名来源的机构或主机,实现DNS隧道画像。
前述该从域名中确定多个域名段的过程可以包括:对该域名进行预处理;从预处理后的该域名中确定该多个域名段。
其中,该对该域名进行预处理的过程,包括:检测该域名中字符的合法性,将字符合法的域名作为预处理后的该域名,该过程称为字符合法性检验处理;和/或,检测该域名是否为指定用途的域名,将不是该指定用途的该域名作为预处理后的该域名,该过程称为用途检测处理;和/或,采用该域名查询字典树,该字典树基于域名黑名单和/或域名白名单建立,将不包括该字典树中域名的域名作为预处理后的该域名,该过程称为字典树查询处理。
通过字符合法性检验处理,服务器可以将非法域名进行过滤,不进行处理,保留合法域名作为预处理后的域名,如此可以减少运算代价。
通过用途检测处理,若域名为指定用途的域名,可以对该域名进行过滤,不进行处理,保留不是指定用途的域名作为预处理后的域名,如此可以减少运算代价,减低恶意域名的误识别概率。
通过查字典树查询处理可以减少后续处理的域名的个数,减少运算代价。
示例的,该域名为DNS流量日志中记载的域名。例如,该DNS流量日志用于记录DNS请求,该DNS请求中包括域名,服务器可以在该DNS请求中提取域名。
由于域名由分隔点进行级别划分,本申请实施例中,服务器可以将域名按照分隔点划分为多个域名段。这种划分方式可以与前述域名分级方式兼容,通过识别分隔点可以快速划分域名段,提高域名段的划分效率,降低域名段的划分复杂度。
前述域名检测方法可以由服务器提供的如下几种产品形态实现:
第一种产品形态,网络防火墙。服务器提供的网络防火墙对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录网络流量。
第二种产品形态,主机防火墙。服务器提供的主机防火墙对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录主机发起的DNS请求。
第三种产品形态,网站应用防护系统(Web Application Firewall,WAF)。示例的,服务器为应用服务器,其提供的WAF对DNS流量日志的DNS请求进行提取,得到域名,该DNS流量日志用于对经过WAF的DNS连接进行记录,该DNS连接包括DNS请求,还可以包括DNS响应。
第四种产品形态,态势感知平台。示例的,服务器为应用服务器,其提供的态势感知平台利用探针对指定站点的网络流量进行采集得到DNS流量日志,然后对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录指定站点的网络流量。
第五种产品形态,云WAF。示例的,针对应用服务器的DNS请求被应用服务器引流至服务器提供的云WAF,云WAF生成DNS流量日志,该DNS流量日志记录云WAF接收的DNS请求,云WAF对DNS流量日志中的DNS请求进行提取,得到域名。在服务器提供的云WAF对域名进行分析之后,可以将分析结果和DNS请求返回给应用服务器。可选地,提供云WAF的服务器可以为应用服务器,也可以为除应用服务器之外的服务器。
第二方面,本申请提供一种域名检测装置,该域名检测装置可以包括至少一个模块,该至少一个模块可以用于实现上述第一方面或者第一方面的各种可能实现提供的该域名检测方法。
第三方面,本申请提供一种计算机设备,该计算机设备包括处理器和存储器。该存储器存储计算机指令;该处理器执行该存储器存储的计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可能实现提供的方法,使得该计算机设备部署上述第二方面或者第二方面的各种可能实现提供的该域名检测装置。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令指示该计算机设备执行上述第一方面或者第一方面的各种可能实现提供的方法,或者该计算机指令指示该计算机设备部署上述第二方面或者第二方面的各种可能实现提供的域名检测装置。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可能实现提供的方法,使得该计算机设备部署上述第二方面或者第二方面的各种可能实现提供的域名检测装置。
第六方面,提供一种芯片,该芯片可以包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现如第一方面任一该的域名检测方法。
第七方面,提供一种通信系统,包括:服务器以及至少两个计算机设备,所述服务器包括如上述第二方面或者第二方面的各种可能实现提供的域名检测装置。
本申请实施例通过从域名中获取多个域名段,通过检测域名段是否为异常域名段来确定域名是否为恶意域名,相对于相关技术,不再采用域名整体作为识别单位,以域名段为异常识别单位,降低了各个域名段相互之间的干扰,提高了恶意域名的识别准确性。
本申请实施例中,所采用的训练样本集包括域名段正样本集合和域名段负样本集合,或者,所采用的训练样本集为对域名段正样本集合和域名段负样本集合进行特征提取得到的特征向量的集合。该训练样本集更贴近现网真实数据,训练得到的分类器的误报率较低。
本申请实施例中,通过从DNS流量日志提取域名,利用字典树、预设规则、AC自动机、A记录查询等一种或多种技术,对域名中的域名段进行分析,能够输出恶意域名,还能够输出访问恶意域名的IP地址和/或异常的机构域名或者主机域名。为安全监控人员提供全方位的恶意域名告警。
附图说明
图1是本申请实施例提供的一种恶意域名的应用环境示意图;
图2是本申请实施例提供的另一种恶意域名的应用环境示意图;
图3是本申请实施例提供的一种域名识别方法的流程示意图;
图4是本申请实施例提供的一种示意性的训练过程流程图;
图5是本申请一示意性实施例所提供的一种服务器的结构示意图;
图6是本申请实施例提供的一种域名检测装置的框图;
图7是本申请实施例提供的一种域名检测装置的框图;
图8是本申请实施例提供的一种域名检测装置的框图;
图9是本申请实施例提供的一种域名检测装置的框图;
图10是本申请实施例提供的一种域名检测装置的框图;
图11是本申请实施例提供的一种域名检测装置的框图;
图12是本申请实施例提供的计算机设备的一种可能的基本硬件架构。
具体实施方式
为使本申请的原理和技术方案更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
域名(domain name),又称网域,其由一串用分隔点(也称点号或点)“.”分隔的字符串组成,用于标识互联网上某一台计算机或计算机组等,可以在数据传输时对计算机进行定位。示例的,该字符串包括美国信息交换标准代码(American Standard Code forInformation Interchange,ASCII)和/或各国语言字符。
黑客在进行网络攻击时需要与安装有恶意软件的僵尸机(也称肉鸡)进行通信。为了躲避安全设备(如防火墙)的检测,僵尸机会通过恶意域名,与黑客所控制的主控机建立直接或间接的通信连接。图1和图2分别为两种恶意域名的应用环境示意图。图1和图2所示的通信系统支持域名系统(Domain Name System,DNS)协议,该通信系统包括:主控机101、僵尸机102和服务器103,其中,主控机101和僵尸机102均可以为计算机设备,如手机、电脑或笔记本电脑等;服务器103可以为域名系统(Domain Name System,DNS)服务器,也称命令与控制(Command and Control,C2)服务器。
图1中,僵尸机102通过恶意域名与主控机101建立直接的通信连接。该通信连接的建立过程包括:
在僵尸机102侧,恶意软件定期通过随机生成算法(Domain GenerationAlgorithm,DGA)生成大量备选域名,并且在服务器103中查询;在主控机101侧(也称攻击者侧),黑客运行与僵尸机102侧相同的一套DGA,也生成大量备选域名。当黑客需要控制僵尸机102发动攻击的时候,黑客选择备选域名中的少量域名进行注册,并将注册后的域名映射到主控机101的互联网协议(Internet Protocol,IP)地址上(即建立域名与IP地址的映射关系)。相应的,主控机101解析注册后的域名到主控机101。僵尸机102在服务器103中查询到属于自身生成的备选域名且已注册的域名后,基于查询到的域名以及前述映射关系,获取对应的IP地址,僵尸机102基于该IP地址与主控机101之间可以建立直接的通信连接,进而主控机102便可以通过恶意软件控制僵尸机102进行网络攻击。其中,前述已注册的域名和备选域名均为恶意域名,示例的,图1中恶意域名包括“ks44qnbtmsn1mhyp.biz”。
当主控机101与僵尸机102之间由于访问控制(如受到访问控制列表(AccessControl Lists,ACL)的限制)等原因无法建立直接的通信连接时,若主控机101与僵尸机102的DNS不受限,则主控机101与僵尸机102可以通过DNS隧道(tunnel)技术建立间接的通信连接。DNS隧道技术指的是将数据、其他协议帧或包进行重新封装后通过DNS隧道发送的技术。黑客往往利用DNS隧道来进行非法代理、数据窃取或C2通信等恶意活动。如图2所示,该通信连接的建立过程包括:
在通过DNS隧道通信时,僵尸机102采用DNS隧道技术对实际需要传输的数据执行重组和/或切分操作(该操作过程称为数据转换),将重组和/或切分操作后的数据作为DNS隧道的载荷(payload)封装进域名中。例如,域名“yrbh1o.example.com”的payload是“yrbh1o”。僵尸机102安装有隧道应用的客户端,通过运行该隧道应用(即该客户端)定期将生成的域名发送至服务器103;在主控机101侧,主控机安装有隧道应用的服务器端,当黑客需要获取僵尸机102的信息时,黑客运行隧道应用(即该服务器端),将域名进行注册,并将注册后的域名映射到主控机101的IP地址上(即建立域名与IP地址的映射关系)。服务器103基于该映射关系,将僵尸机102发送的域名转发至主控机103,主控机103基于DNS隧道技术提取获取的域名中封装的payload,并且将提取的payload进行前述重组和/或切分操作的反操作,得到实际传输的数据。其中,前述注册的域名和封装有payload的域名均为恶意域名。示例的,图2中恶意域名为包括“example.com”的域名,payload中封装的实际数据为“This is a test(这是一个测试)”。
传统的基于DGA生成的恶意域名通常随机性较强。如图1所示的应用环境中的恶意域名,其基于DGA生成,该恶意域名往往不具有可读性,很容易被识别出来,也较容易被安全设备检测出来,例如chinad家族(一种恶意域名集合)包括的一个示例性恶意域名为:“mzqqoc3s68tewsdr.net”。
相关技术中,在对如图1所示的应用环境中的恶意域名进行识别时,将获取的域名输入机器学习模型,由机器学习模型识别出恶意域名。
为了躲避安全设备的检测,在传统的DGA的基础上,又出现了混淆型DGA和单词型DGA。其中,基于混淆型DGA生成的域名包含一部分随机生成的字符串,和一部分固定的字符串。例如,banjori家族(一种恶意域名集合)的域名基于混淆型DGA生成,如该banjori家族包括的一种示意性恶意域名为:“oehuestnessbiophysicalohax.com”,该域名中只有从左至右的前4个字符是随机生成的,其余字符是固定的字符,随机生成的字符在域名所包含的字符中的占比非常少,这样更容易躲避安全设备的检测,如此导致机器学习模型对基于混淆型DGA生成的域名的识别准确度较低。
基于单词型DGA生成的域名包含一部分单词级的随机的字符串。例如,pizd家族(一种恶意域名集合)的域名基于单词型DGA生成,该域名利用预先指定的词典,通过随机挑选其中的单词并进行组合得到。如该pizd家族包括的一种示意性恶意域名为“companylabor.net”,这种域名具有更强的隐蔽性,更容易躲避安全设备的检测,前述机器学习模型对基于混淆型DGA生成的域名的识别准确度较低。
如图2所示的应用环境中的恶意域名,基于DNS隧道技术生成的恶意域名的payload部分通常随机性较强,如域名:“yrbh1o.example.com”中的payload部分为随机字符串“yrbh1o”。相关技术中,在对如图2所示的应用环境中的恶意域名进行识别时,将获取的域名输入深度学习模型,由深度学习模型识别出恶意域名。但是,基于DNS隧道技术生成的恶意域名的payload部分有可能出现在域名中从右至左的多级域名之后,如恶意域名yrbh1o.example3.example2.example1.example.com的payload:“yrbh1o”位于从右至左的第五级域名之后。这种情况下,不可读的字符在域名所包含的字符中的占比非常少,通过深度学习模型恶意域名的识别准确度较低。
本申请实施例提供一种域名检测方法,其可以提高域名识别的准确度。该域名检测方法可以应用于图1或图2所示的应用环境中,示例的,该域名检测方法可以由前述服务器102执行,如图3所示,方法包括:
S301、获取域名。
本申请实施例中,执行该域名检测方法的服务器可以为不同产品形态,在不同的产品形态中,服务器均可以获取DNS流量日志(log),并从该DNS流量日志中提取域名,该DNS流量日志用于记录DNS相关的数据。例如,该DNS流量日志用于记录DNS请求,该DNS请求中包括域名,服务器可以在该DNS请求中提取域名。可选地,该DNS流量日志还用于记录DNS响应和/或日志记录类型等等,本申请实施例对DNS流量日志的内容不做限定,其至少包括域名。
为了便于读者理解,下面以服务器提供如下几种产品形态为例,对域名的获取过程进行说明:
第一种产品形态,网络防火墙。服务器提供的网络防火墙对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录网络流量(其至少包括DNS请求)。
第二种产品形态,主机防火墙。服务器提供的主机防火墙对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录主机发起的DNS请求。
第三种产品形态,网站应用防护系统(Web Application Firewall,WAF)。示例的,服务器为应用服务器,其提供的WAF对DNS流量日志的DNS请求进行提取,得到域名,该DNS流量日志用于对经过WAF的DNS连接进行记录,该DNS连接包括DNS请求,还可以包括DNS响应。
第四种产品形态,态势感知平台。示例的,服务器为应用服务器,其提供的态势感知平台利用探针对指定站点的网络流量进行采集得到DNS流量日志,然后对DNS流量日志中的DNS请求进行提取,得到域名,该DNS流量日志用于记录指定站点的网络流量(其至少包括DNS请求)。
第五种产品形态,云WAF。示例的,针对应用服务器的DNS请求被应用服务器引流至服务器提供的云WAF,云WAF生成DNS流量日志,该DNS流量日志记录云WAF接收的DNS请求,云WAF对DNS流量日志中的DNS请求进行提取,得到域名。在服务器提供的云WAF对域名进行分析之后,可以将分析结果和DNS请求返回给应用服务器。可选地,提供云WAF的服务器可以为应用服务器,也可以为除应用服务器之外的服务器。
根据应用场景的不同,服务器提供的前述五种产品形态,获取的DNS流量日志所记录的DNS请求可以为不同类别的DNS请求。例如,该DNS流量日志所记录的DNS请求为指定网络中的计算机设备发起的DNS请求,该指定网络可以为企业内网(如企业办公网或企业生产网);又例如,该DNS流量日志所记录的DNS请求为云平台侧发起的DNS请求;再例如,该DNS流量日志所记录的DNS请求为租户侧(也称用户侧或用户设备侧)发起的DNS请求;还例如,该DNS流量日志所记录的DNS请求为数据中心发起的DNS请求。
服务器可以从DNS流量日志中获取多个域名,为了便于读者理解,后续S302至S305以一个域名为例进行说明,其他域名的处理方式可以参考该域名的处理方式。
S302、从域名中确定多个域名段。
域名为包括多个字符的字符串,其通常由两组或两组以上的字符构成,各组字符间由分隔点“.”分隔开,域名按照从右到左的顺序进行域名的级别划分,位于最右边的一组字符称为顶级域名(top-level domains,TLD)或一级域名,位于右边的第二组字符(即从左到右的倒数第二组字符)称为二级域名,位于右边的第三组字符(即从左到右的倒数第三组字符)称为为三级域名,以此类推。
在本申请实施例中,可以按照预先设定的规则从域名中确定多个域名段,每个域名段为域名中的一部分,每个域名段为包括域名中连续的至少两个字符的字符串,如此实现域名的进一步细分。由于域名由分隔点进行级别划分,本申请实施例中,服务器可以将域名按照分隔点划分为多个域名段。这种划分方式可以与前述域名分级方式兼容,通过识别分隔点可以快速划分域名段,提高域名段的划分效率,降低域名段的划分复杂度。例如,域名:“example1.example.com.cn”包括“example1”、“example”、“com”、“cn”共4个域名段。
可选地,在S301获取域名后,可以先对域名进行预处理;再从预处理后的域名中确定多个域名段,确定多个域名段的过程可以参考前述S302的过程。通过预处理可以对域名进行筛选过滤,减少对一些域名的处理过程,从而降低运算代价。本申请实施例以以下几种预处理的可选方式为例进行说明:
在第一种可选方式中,预处理包括字符合法性检验处理。该处理过程包括:服务器检测域名中字符的合法性,将字符合法的域名作为预处理后的域名。
域名中的字符的类别和/或排列方式需要符合预设的字符规则,不符合该字符规则的字符所组成的域名不是合法域名,也即是非法域名,服务器可以将非法域名进行过滤,不进行处理,保留合法域名作为预处理后的域名,如此可以减少运算代价。示例的,该字符规则包括如下的任一种或多种:
第一种、每一级域名中的字符串不能仅由英文字符、数字或连字符(也称连接符)“-”组成;
第二种、相邻两级域名之间不能以连字符“-”连接;
第三种、连字符“-”不能连续出现;
第四种、连字符“-”不能出现在域名的开头;
第五种、连字符“-”不能出现在域名的结尾;
第六种、域名包括的字符总数(即域名的长度)不超过63。
值得说明的是,前述字符规则还可以包括其他规则,该字符规则可以根据具体应用场景进行更新,本申请实施例对此不做限定。
在第二种可选方式中,预处理包括用途检测处理。该处理过程包括:服务器检测域名是否为指定用途的域名,将不是指定用途的域名作为预处理后的域名。
对于一些指定用途的域名,其用途已经决定该域名不为恶意域名,因此,若域名为指定用途的域名,可以对该域名进行过滤,不进行处理,保留不是指定用途的域名作为预处理后的域名,如此可以减少运算代价。示例的,该指定用途的域名可以为大数据组件域名,例如阿帕网(Advanced Research Projects Agency Network,arpa)反查域名或卡夫卡(kafka)域名。还可以为本地域名或其他预设的特殊域名。
相关技术中,由于指定用途的域名与正常域名的差距比较大,若采用机器学习模型或深度学习模型对该指定用途的域名进行识别,可能将其误识别为恶意域名。而本申请实施例中,将指定用途的域名进行预先滤除,可以有效减少后续过程中恶意域名的误识别概率。
其中,服务器可以采用正则表达式(regular expression)检测域名是否为指定用途的域名。
在第三种可选方式中,预处理包括字典树(Trie树)查询处理。该处理过程包括:服务器采用获取的域名查询字典树,将不包括字典树中域名的域名作为预处理后的域名。
其中,字典树又称单词查找树或前缀树,其为一种树型结构。在一种可选实现方式中,该字典树中每个节点的后代(也称子节点)存在共同的前缀。例如,“exampl”是“example”的前缀。本申请实施例中,该字典树基于域名黑名单(black list)和/或域名白名单(white list)建立。其中,域名黑名单用于记录恶意域名,域名白名单用于记录非恶意域名,也即是正常域名。通过查询该字典树可以确定获取的域名中是否存在域名黑名单和/或域名白名单中的域名。当获取的域名中存在域名黑名单中的域名,则确定获取的域名为恶意域名,可以直接执行后续S306,输出该恶意域名;当获取的域名中存在域名白名单中的域名,则确定获取的域名为非恶意域名,可以对该域名进行过滤,不进行处理。最终,将不包括字典树中域名的域名作为预处理后的域名,从而进行后续处理,如执行S303至S308的过程。若字典树基于域名黑名单建立,则预处理后的域名不包括域名黑名单中的域名;若字典树基于域名白名单建立,则预处理后的域名不包括域名白名单中的域名;若字典树基于域名黑名单和域名白名单建立,则预处理后的域名既不包括域名白名单中的域名,又不包括域名黑名单中的域名。如此,通过查询字典树可以减少后续处理的域名的个数,减少运算代价。
示例的,该字典树中根节点不包含字符,除根节点外每一个节点都只包含一个字符;从根节点到某一节点g,路径上经过的字符连接起来,为该某一节点g对应的字符串;每个节点的所有子节点包含的字符互不相同。
其中,字典树中根节点可以包括指示符,该指示符指示该根节点所在路径上的字符串来源于域名黑名单或域名白名单,例如该指示符通过颜色指示字符串来源于域名黑名单或域名白名单,该指示符为黑色时,指示字符串来源于域名黑名单,该指示符为白色时,指示字符串来源于域名白名单。字典树中的各个字符串均来源于域名黑名单和/或域名白名单。
传统的域名检测方法中,若采用域名黑名单进行域名的预处理,仅能将与域名黑名单中的域名完全相同的域名确定为恶意域名,该过程称为域名黑名单过滤;若采用域名白名单进行域名的预处理,仅能将与域名白名单中的域名完全相同的域名确定为非恶意域名,该过程称为域名白名单过滤。
本申请实施例中,不同于传统的域名黑名单和域名白名单的过滤,当获取的域名包括字典树中源于域名黑名单的域名,则将该获取的域名确定为恶意域名;当获取的域名包括字典树中源于域名白名单的域名,则将该获取的域名确定为非恶意域名。
其中,字典树可以做前缀过滤,也可以做后缀过滤。示例的,假设字典树做前缀过滤,服务器采用获取的域名,按照从右至左的顺序以字符为单位查询该字典树,从而实现字典树对域名的头部匹配(即从右侧开始的匹配)。例如,某一域名如:example.com在字典树中根节点为黑色,则按照从左至右的顺序任何以该某一域名:example.com结尾(即按照从右至左的顺序以example.com开始)的域名都被识别为黑色,服务器将被识别为黑色的域名确定为恶意域名。例如某一域名,如:example1.com在字典树中根节点为白色,则任何以该某一域名:example1.com结尾的域名都被识别为白色,服务器将被识别为白色的域名确定为非恶意域名。
服务器通过采用域名黑名单和/或域名白名单建立字典树,将不包括字典树中域名的域名作为预处理后的域名,实现快速过滤包括字典树中域名的域名,相较于传统的域名黑名单和域名白名单的过滤方式,滤除的域名更多,进行域名滤除的时间更短,效率更高。
本申请实施例中,域名黑名单可以包括从预先获取的威胁情报信息中提取的域名,也可以包括由专家输入的域名或者预先收集的基于DNS隧道技术生成的恶意域名。域名白名单可以包括从指定域名排名网站(如发布网站世界排名的网站)提取的排名前m个域名(m为正整数,例如m=5000),也可以包括其他方式获取的安全域名,如提取现网(即当前阶段的网络,如近一周、近一个月或近一年的网络)的常见安全域名或者由专家输入安全域名。本申请实施例对域名黑名单和域名白名单的获取方式不做限定。
S303、获取更新后的多个域名段。
可选地,在获取多个域名段后,可以删除多个域名段中的一个或多个域名段,以得到更新后的多个域名段。该过程可以包括:检测域名中指定位置的域名段是否属于该指定位置对应的域名段集合;在确定域名中的指定位置的域名段属于与指定位置对应的域名段集合后,删除多个域名段中的该指定位置的域名段,来得到更新后的多个域名段。其中,域名段集合包括一个或多个域名段。
本申请实施例以以下几种情况为例,对前述多个域名段的更新过程进行说明:
第一种情况,域名中指定位置的域名段为域名中从左至右的第一个域名段,对应的域名段集合包括域名段:“www”。则在确定域名中的指定位置的域名段属于与指定位置对应的域名段集合后,删除多个域名段中的指定位置的域名段,来得到更新后的多个域名段的过程包括:在确定域名中的第一个域名段属于包括“www”的域名段集合后,删除多个域名段中的第一个域名段,来得到更新后的多个域名段。
第二种情况,域名中指定位置的域名段为域名中从左至右的倒数第二个域名段,对应的域名段集合为顶级域名集合,该顶级域名集合包括一个或多个顶级域名。则在确定域名中的指定位置的域名段属于与指定位置对应的域名段集合后,删除多个域名段中的指定位置的域名段,来得到更新后的多个域名段的过程包括:
在一种可选方式中,在确定域名中的倒数第二个域名段属于顶级域名集合后,直接删除多个域名段中的倒数第二个域名段,来得到更新后的多个域名段。
在另一种可选方式中,在确定域名中的倒数第二个域名段属于顶级域名集合,且倒数第二个域名段的字符总数小于第一数量阈值后,删除多个域名段中的倒数第二个域名段,来得到更新后的多个域名段。示例的,该第一数量阈值为4。由于在倒数第二个域名段的字符总数小于第一数量阈值时,即使该域名段属于顶级域名集合,其具有实际含义的概率也较低,其为异常的域名段的概率也较低,因此,通过将该倒数第二个域名段删除,可以减少不必要的计算,从而降低运算代价。
第三种情况,域名中指定位置的域名段为域名中从左至右的最后一个域名段,对应的域名段集合为顶级域名集合,该顶级域名集合包括一个或多个顶级域名。则在确定域名中的指定位置的域名段属于与指定位置对应的域名段集合后,删除多个域名段中的指定位置的域名段,来得到更新后的多个域名段的过程包括:在确定域名中的最后一个域名段属于顶级域名集合后,删除多个域名段中的最后一个域名段,来得到更新后的多个域名段。该顶级域名集合包括一个或多个顶级域名。
其中,前述第二种情况和第三种情况中,顶级域名集合的获取方式可以有多种,在本申请实施例中,可以收集现网中所有顶级域名,得到顶级域名集合。示例的,该顶级域名集合包括:“.xyz”、“.top”、“.com”或“.cn”等。
前述三种情况中,若前述域名段由分隔点划分得到,每个域名段通常不带有分隔点“.”。前述域名段集合中的域名段可以带有分隔点“.”,也可以不带有分隔点“.”。例如,第一个域名段对应的域名段集合包括域名段:“www”或“www.”;顶级域名集合中的顶级域名可以带有分隔点“.”,也可以不带有分隔点“.”,如“.xyz”或“top”。对于某一指定位置的域名段x,该域名段x属于指定位置对应的域名段集合指的是该域名段集合中的域名段包括该域名段x。例如,假设最后一个域名段为:“cn”,其属于“.cn”,也属于“cn”。
需要说明的是,前述三种情况所对应的多个域名段的更新过程,可以根据实际场景单独执行或组合执行,也即是多个域名段的更新过程包括前述三种情况所对应的更新过程的任一种或多种。
S304、在域名段满足预设规则时,确定域名段为异常的域名段。其中,预设规则包括如下第一种规则至第三种规则中的任一种或多种:
第一种规则、基于域名段或者域名段的特征向量通过分类器识别出异常的域名段。
在一种可选方式中,将域名段输入分类器,以由分类器识别出异常的域名段。可选地,域名段以字符为粒度输入分类器,分类器对域名段进行识别后,输出分类结果,该分类结果用于指示域名段是否为异常的域名段。示例的,该分类结果包括分数值,该分数值用于反映域名段为异常的域名段的概率。示例的,该分类器包括神经网络模型,如循环神经网络(Recurrent Neural Network,RNN)模型、卷积神经网络(Convolutional NeuralNetworks,CNN)模型和/或长短期记忆(Long Short Term Memory,LSTM)模型等深度学习模型。
在另一种可选方式中,将域名段的特征向量输入分类器,以由分类器识别出异常的域名段。示例的,该分类器包括机器学习模型,如逻辑回归模型,和/或随机森林模型。前述分类器还可以包括其他模型,例如支持向量机(Support Vector Machine,SVM),本申请实施例对分类器的类型不做限定。
前述域名段的特征向量是由从域名段中提取的特征所组成的向量,用于反映域名段的属性(也称特性),分类器在接收到特征向量后,对特征向量进行识别,输出分类结果,该分类结果指示特征向量对应的域名段是否为异常的域名段。示例的,该分类结果包括分数值,该分数值用于反映域名段为异常的域名段的概率。示例的。特征向量为包括n个特征的n维特征向量,n为正整数,该n个特征包括如下的一种或多种:
第一种特征、域名段包括的连字符“-”在域名段包括的字符中的个数占比。域名段包括的字符总数即为域名段的长度,假设域名段为“example-1”,则域名段包括的连字符“-”的个数为1,域名段的长度为9,域名段包括的连字符“-”在域名段包括的字符中的个数占比为1/9。
第二种特征、域名段包括的数字在域名段包括的字符中的个数占比。假设域名段为“example-1”,则域名段包括的数字的个数为1,域名段的长度为9,域名段包括的数字在域名段包括的字符中的个数占比为1/9。
第三种特征、域名段的长度。假设域名段为“example-1”,则域名段的长度为9。
第四种特征、域名段包括的字符种类数与域名段的字符总数之比。字符种类是预先设定的。在一种示例中,域名段的字符种类包括数字、字母和连字符“-”中的一种或多种。则假设域名段为“example-1”,则域名段包括的数字、字母和连字符共3种字符,即域名段包括的字符种类数为3,域名段的长度为9,域名段包括的字符种类数与域名段的字符总数之比为1/3。在另一种示例中,域名段中互不相同的字符分别为不同种类的字符。则假设域名段为“example-1”,则域名段包括“e”、“x”、“a”、“m”、“p”、“l”、“-”、“1”共8种字符,域名段包括的字符种类数为8,域名段的长度为9,域名段包括的字符种类数与域名段的字符总数之比为8/9。
第五种特征、域名段包括的数字种类数与域名段的字符总数之比。域名段中互不相同的数字分别为不同种类的数字。则假设域名段为“example-12”,则域名段包括“1”和“2”共2种数字,即域名段包括的数字种类数为2,域名段的长度为10,域名段包括的数字种类数与域名段的字符总数之比为1/5。
第六种特征、域名段的香农熵(也称信息熵,entropy)。域名段的香农熵即为该域名段包括的字符串的香农熵。
第七种特征、域名段包括的连续重复字母的出现次数与域名段的字符总数之比。其中,两个相同的字母相邻出现为出现一次连续重复字母。例如,假设域名段为“examplee-1”,则连续重复字母为“ee”,即连续重复字母的出现次数为1,域名段的长度为10,域名段包括的连续重复的字母在域名段中的个数占比为1/10;又例如,假设域名段为“exampleee-1”,则连续重复字母为两组相邻的“ee”,即连续重复字母的出现次数为2,域名段的长度为10,域名段包括的连续重复的字母在域名段中的个数占比为1/5。
第八种特征、域名段包括的元音字母在域名段中的个数占比。元音字母有5个,分别是:a、e、i、o、u。例如,假设域名段为“example-1”,则元音字母分别为“e”、“a”、“e”,即域名段包括3个元音字母,域名段的长度为9,域名段包括的元音字母在域名段中的个数占比为1/3。
第九种特征、域名段包括的数字在域名段包括的字符中的个数占比。假设域名段为“example-1”,则域名段包括“1”共1个数字,即域名段包括的数字的个数为1,域名段的长度为9,域名段包括的数字在域名段包括的字符中的个数占比为1/9。
第十种特征、域名段包括的连续字母的出现次数x1与第一字符数y1之比,第一字符数y1为域名段的字符总数y与连续字母的出现次数x1之差。其中,两个字母相邻出现为出现一次连续字母。例如,假设域名段为“example-1”,则连续字母包括“ex”、“xa”、“am”、“mp”、“pl”和“le”,共出现6次连续字母,则x1=6,字符总数y即字符长度为9,第一字符数y1=y-x1=9-6=3,则域名段包括的连续字母的出现次数x1与第一字符数y1之比为6/3=2。
第十一种特征、域名段包括的连续辅音字母的出现次数x2与第二字符数y2之比,第二字符数y2为域名段的字符总数y与连续辅音字母的出现次数x2之差。辅音字母有21个,分别:b、c、d、f、g、h、j、k、l、m、n、p、q、r、s、t、v、w、x、y、z。两个辅音字母相邻出现为出现一次连续辅音字母。例如,假设域名段为“example-1”,则连续辅音字母包括:“mp”和“pl”,共出现2次连续辅音字母,x2=2,域名段的长度为9,第二字符数y2=y-x2=9-2=7,域名段包括的连续字母的出现次数x1与第一字符数y1之比为2/7。
第十二种特征、域名段包括的连续数字的出现次数x3与第三字符数y3之比,第三字符数y3为域名段的字符总数y与连续数字的出现次数x3之差。两个数字相邻出现为出现一次连续数字。例如,假设域名段为“example-12”,则连续数字包括:“12”,共出现1次连续数字,x3=1,域名段的长度为10,第三字符数y3=y-x3=10-1=9,域名段包括的连续字母的出现次数x1与第一字符数y1之比为1/9。
第十三种特征、域名段中数字和字母切换的次数与域名段的字符总数之比。一个数字和一个字母相邻出现为出现一次数字和字母切换。例如“8a”或“e9”为数字和字母切换的情况,假设域名段为“example1”,则数字和字母切换的情况为“e1”,共出现1次数字和字母切换,域名段的长度为8,则域名段的长度为10为1/8。
第十四种特征、可读性得分,可读性得分用于指示域名段的可读性。示例的,可读性得分为采用指定单词库训练得到的马尔科夫模型所输出的域名段对应的得分。例如,该指定单词库为美国当代英语语料库(Corpus of Contemporary American English,COCA)。
第十五种特征、可靠性得分,可靠性得分用于指示域名段的可靠性。示例的,可靠性得分为采用域名段正样本集合训练得到的马尔科夫模型所输出的域名段对应的得分。该域名段正样本集合为基于域名正样本集合获取的域名段样本集合,该域名段样本集合包括一个或多个域名段。域名正样本集合包括一个或多个域名。示例的,域名正样本集合可以包括从指定域名排名网站(如发布网站世界排名的网站)提取的排名前d个域名(d为正整数,例如d为100万)。其中,基于域名正样本集合获取的域名段样本集合的过程包括:对于域名正样本集合中的每个域名,从域名中确定多个域名段,该过程可以参考S302;可选地,还可以获取更新后的多个域名段,该过程可以参考S303。可选地,还可以对域名进行预处理,该预处理过程参考前述S302中的预处理过程。
第十六种特征、域名段包括的单词的个数与域名段的字符总数之比。例如,假设域名段为“example-1”,则单词为“example”,即单词的个数为1,域名段的长度为9,域名段包括的单词的个数与域名段的字符总数之比为1/9。
第十七种特征、域名段包括的单词数量。例如,假设域名段为“example-1”,则单词为“example”,即单词的个数为1。
第十八种特征、二元(bigram)数据排序特征,二元数据排序特征为基于域名段包括的多个二元数据按照出现频率(该出现频率为在域名段中出现的频率)排序后的序号确定的特征,多个二元数据中每个二元数据由域名段中连续的两个字符组成。示例的,该多个二元数据可以通过滑窗机制获取。可选地,二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数、平均值或方差。例如,假设域名段为“examplex”,采用滑窗机制划分得到的多个二元数据分别为:“ex”、“xa”、“am”、“mp”、“pl”、“le”和“ex”,一共7组二元数据,其中,“ex”、“xa”、“am”、“mp”、“pl”和“le”出现的频率分别为2/7、1/7、1/7、1/7、1/7和1/7,按照出现频率排序后的序号分别为1、2、2、2、2、2,假设二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数,则该二元数据排序特征为(1+2+2+2+2+2)/6=11/6。
第十九种特征、三元(trigram)数据排序特征,三元数据排序特征为基于域名段包括的多个三元数据按照出现频率(该出现频率为在域名段中出现的频率)排序后的序号确定的特征,多个三元数据中每个三元数据由域名段中连续的三个字符组成。示例的,该多个三元数据可以通过滑窗机制获取。可选地,三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数、平均值或方差。例如,假设域名段为“examplex”,采用滑窗机制划分得到的多个三元数据分别为:“exa”、“xam”、“amp”、“mpl”、“ple”和“lex”,一共6组三元数据,其中,“exa”、“xam”、“amp”、“mpl”、“ple”和“lex”出现的频率分别为1/6、1/6、1/6、1/6、1/6和1/6,按照出现频率排序后的序号分别为1、1、1、1、1、1,假设三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数,则该三元数据排序特征为(1+1+1+1+1+1)/6=6/6=1。
前述19种特征只是示意性说明,本申请实施例在实际实现时,还可以提取域名段的其他特征,示例的,该n个特征还包括如下的一种或多种:
第二十种特征、域名段包括的连续重复字母的出现次数x4与第四字符数y4之比,第四字符数y4为域名段的字符总数y与连续重复字母的出现次数x4之差。
第二十一种特征、域名段包括的连续字母的出现次数x1与域名段的字符总数y之比。
第二十二种特征、域名段包括的连续辅音字母的出现次数x2与域名段的字符总数y之比。
第二十三种特征、域名段包括的连续数字的出现次数x3与域名段的字符总数y之比。
可选地,前述n个特征还可以根据实际情况进行删除、变化或替换,例如,第七种特征替换为前述第二十种特征;和/或,第十种特征替换为前述第二十一种特征;和/或,第十一种特征替换为前述第二十二种特征;和/或,第十二种特征替换为前述第二十三种特征。通过前述n个特征,可以反映域名段的部分或整体的属性,从而实现分类器对异常的域名段的准确识别。
基于不同的应用场景,第一种规则中的前述两种可选方式可以组合执行,也可以分别执行。
本申请实施例中分类器通常有至少两个,如此,由至少两个分类器组合得到一个精度更高的分类器,比单一的分类器具有更好的泛化能力,从而更准确适配现网的域名数据,进一步提高确定的异常的域名段的精确度。当分类器有至少两种时,最终的分类结果为至少两种分类器的分类结果的加权和,或加权平均值。例如,该至少两种分类器分别输出包括至少两个分类结果,每个分类结果包括一个分数值,最终的分类结果为至少两个分数值的加权和,或加权平均值。示例的,各个分类结果的权值为1。
第二种规则、域名段包括的元音字母的个数在域名段包的字符总数的比值小于比值阈值。示例的,该比例阈值为0.2。由于英文字母中,元音字母与辅音字母的比例是5:21,则元音字母在所有字母中的比例为5:26,若域名段是随机生成的,如采用DGA生成,域名段中元音字母的个数在域名段包括的字符的个数总数的占比在5:26左右,小于0.2。而实际应用中,非恶意域名中各个字母的出现的概率按照语言使用场景中字母出现的频率设置,例如在一些常见的正常域名中,元音字母和辅音字母出现的比例为1:1,如此,在实际的语言使用场景中,元音字母在所有字母中的出现比例在1:2左右,远远大于0.2。通过设置该比例阈值,可以有效筛选出随机生成的域名段,从而识别得到异常的域名段。尤其对于基于DGA生成的域名中的域名段的识别准确性较高。
第三种规则、域名段包括异常词条。其中,词条(token)是按照预设的词条划分规则确定的,每个词条包括一个或多个字符,通常每个词条包括至少两个字符,且具有具体含义。
可选地,域名段中的词条可以由AC自动机(Aho-Corasick automaton)识别得到。该识别过程包括:基于AC自动机的词库从每个域名段分析出域名段中包括的词条,该AC自动机的词库包括单词、拼音、机构名(和/或组织名、单位名、公司名)或词根中的一种或多种。进一步的,该AC自动机的词库还可以包括其他内容,例如指定网站中的词条。示例的,该指定网站为维基百科或百度百科。例如,将域名包括的多个域名段分别输入AC自动机,由AC自动机进行输入的域名段与词库的匹配,输出与每个域名段中与词库中词条匹配的词条,如此实现域名段中词条的识别。
示例的,异常词条是在指定时长内,出现的次数大于次数阈值,和/或出现在不同域名段的同一位置的概率大于概率阈值的词条。示例的,该指定时长可以为1至7天,例如5天。
如前所述,基于单词型DGA生成的域名包含一部分单词级的随机的字符串,而由于该部分单词来源于固定的词典。因此,在一段时长内,该类型的域名中的单词重复的概率较高。本申请实施例中,将指定时长内出现的次数大于次数阈值的词条确定为异常词条,可以针对基于单词型DGA所生成的域名的生成原理,将在指定时长内多次出现的词条确定为异常词条,从而准确识别得到异常词条。
基于混淆型DGA生成的域名包含一部分随机生成的字符串,和一部分固定的字符串,而该随机生成的字符串在不同域名段中的位置通常较为固定。因此,在一段时长内,该类型的域名中在不同域名段中同一位置出现固定的字符串的概率较高。本申请实施例中,将出现在不同域名段的同一位置的概率大于概率阈值的词条确定为异常词条,可以针对基于混淆型DGA所生成的域名的生成原理,将指定时长内经常出现在域名段的同一位置的词条确定为异常词条,从而准确识别得到异常词条。
在本申请实施例中,可以通过构建词条对应的二元组(tuple)来确定异常词条。示例的,该过程包括:
A1、为第一域名集合中每个域名中每个词条构建一个二元组,该二元组包括对应词条包括的字符串(即词条的内容)以及对应词条在所在域名段包括的词条中出现的次序。可选地,该次序可以由序号表示。
在第一种可选示例中,第一域名集合包括指定时长内获取的域名。在第二种可选示例中,第一域名集合包括指定时长内获取的域名中包括的词条数量大于数量阈值的域名。示例的,数量阈值为1或2。由于正常域名通常至多包括1个词条,因此基于域名所包括的词条数量对指定时长内获取的域名进行筛选,可以滤除正常域名,从而减少对正常域名的计算,降低运算代价。
例如,指定时长为5天,服务器共获取了一万个域名,将一万个域名获取为第一域名集合,或者将一万个域名中包括的词条数量大于数量阈值的域名获取为第一域名集合。分别为第一域名集合中每个域名中的每个词条构建一个二元组。假设某一域名段为“companylabor”,其包含两个词条,分别为“company”和“labor”,两个词条对应的二元组分别为(company,1)和(labor,2)。
A2、当第一域名集合中某一词条w对应的二元组与目标二元组共同出现的次数大于共现次数阈值时,确定该某一词条w为异常词条。其中,目标二元组为第一域名集合中包括的除该某一词条w之外的词条对应的二元组,且目标二元组与某一词条w对应的二元组的距离小于距离阈值(或相似度大于相似度阈值)。该某一词条w可以为第一域名集合中的任意一个词条。可选地,共现次数阈值为前述次数阈值与1之差。例如共现次数阈值为5。
示例的,服务器可以计算第一域名集合中域名的各个词条对应的二元组两两之间的距离,对于某一词条w对应的二元组,当除该某一词条w之外的词条对应的二元组中任一二元组与该某一词条w对应的二元组的距离小于距离阈值,将该任一二元组确定为目标二元组,计算该某一词条w对应二元组与所有目标二元组共同出现的次数,当该共同出现的次数大于共现次数阈值时,确定该某一词条w为异常词条。
可选地,前述每两个二元组之间的距离可以采用杰卡德距离(Jaccard Distance)公式计算。
本申请实施例在实际实现时,服务器可以获取第一域名集合中每个词条对应的二元组,得到二元组序列,基于二元组序列构建共现矩阵,该共现矩阵包括p行p列元素,其中,第i行第j列的元素表示二元组序列中第i个二元组和第j个二元组之间的距离。1≤i≤p,1≤j≤p,p为二元组序列中包括的二元组个数。基于该共现矩阵,可以迅速检索到每个二元组与其对应的目标二元组共同出现的次数,从而识别到异常词条。
需要说明的是,由于正常域名中各个域名段的词条的个数通常较少,而恶意域名中词条是随机挑选的,可能出现在一个域名段中有多个词条的情况。因此,在一种可选方式中,对于每个域名段,还可以将词条的并集所包括的字符数大于字符数量阈值的域名段识别为异常的域名段。也即是,异常的域名段中的词条的并集所包括的字符数大于字符数量阈值。例如该字符数量阈值为9。例如,域名段为“companylabor”,词条包括单词,通过识别得到该域名段包括“company”和“labor”,两个单词的并集“companylabor”所包括的字符数为12,大于字符数量阈值9,则可以将域名段识别为异常的域名段。在另一种可选方式中,对于每个域名段,当该域名段包括异常词条,且词条的并集所包括的字符数大于字符数量阈值的域名段时,将该域名段识别为异常的域名段,如此可以提高异常的域名段的识别准确性。
如前所述,预设规则包括第一种规则至第三种规则中的任一种或多种,当预设规则包括第一种规则至第三种规则中的多种时,对于每个域名段,可以分别判断域名段是否满足多种规则中的每一种,基于判断结果,确定域名段是否为异常的域名段。例如,基于判断结果,生成异常分数值,当异常分数值大于分数阈值,确定域名段为异常的域名段;当异常分数值不大于分数阈值,确定域名段不为异常的域名段。示例的,异常分数值的初始值为0,当域名段满足一个规则时,与该规则对应的分数值为1,当域名段不满足一个规则时,与该规则对应的分数值为0,最后将域名段满足的规则所对应的分数值之和确定为异常分数值,当该异常分数值超过分数阈值时,确定域名段为异常的域名段,当该异常分数值不超过分数阈值时,确定域名段不为异常的域名段。假设分数阈值为2,则当域名段满足3个规则时,异常分数值为3,确定域名段为异常的域名段。
进一步的,由于前述第一种规则涉及一种或多种分类器,当第一种规则涉及至少两种分类器时,可以将至少两种分类器的分类结果的加权和,或加权平均值转化得到第一种规则对应的分数值,例如加权和或加权平均值大于指定值,与第一种规则对应的分数值为1;加权和或加权平均值不大于指定值,与第一种规则对应的分数值为0。或者,可以将至少两种分类器的分类结果的加权和,或加权平均值转化得到异常分数值直接作为该第一种规则对应的分数值。本申请实施例对前述异常分数值的确定方式不做限定。
S305、在确定域名对应的多个域名段中存在异常的域名段后,将域名确定为恶意域名。
例如,当域名对应的多个域名段中任一域名段为异常的域名段时,将该多个域名段所在域名确定为恶意域名。
如前所述,相关技术中通过机器学习模型对域名整体进行分析来识别基于DGA生成的恶意域名,通过深度学习模型对域名整体进行分析来识别基于DNS隧道技术生成的恶意域名,但是一方面恶意域名识别的准确性较低,另一方面无法同时识别基于DGA生成的恶意域名和基于DNS隧道技术生成的恶意域名。
本申请实施例中,通过将域名细化为域名段,检测域名段是否为异常域名段来确定域名是否为恶意域名,提高了恶意域名识别的准确性。并且,尽管基于DGA生成的恶意域名与基于DNS隧道技术生成的恶意域名在生成原理上有所不同,但在形态上基于DGA生成的恶意域名中的字符串(如mzqqoc3s68tewsdr),以及基于DNS隧道技术生成的恶意域名中payload部分(如yrbh1o)都具有很强的随机性和不可读性,通过识别这些随机和不可读的域名段,可以同时识别基于DGA生成的恶意域名和基于DNS隧道技术生成的恶意域名,从而实现恶意域名的统一检测,对恶意域名的识别效率较高。
进一步的,相关技术中,由于基于混淆型DGA和单词型DGA生成的域名中,随机生成的字符在整个域名所包含的字符中的占比非常少,基于DNS隧道技术生成的恶意域名的payload部分封装在多级域名之后,不可读的字符在域名所包含的字符中的占比非常少,因此,这三种类型的恶意域名从形态上与正常域名较为接近,仅局部存在问题,相关技术中对这三种类型恶意域名的识别准确度较低。
而本申请实施例中,只要域名中有一个域名段为异常的域名段,便可以定位到恶意域名,对于前述三种类型的恶意域名,即使随机生成或不可读的字符在整个域名中占比较少(即域名仅有局部出现问题),也能通过异常的域名段识别到恶意域名,从而提高恶意域名的识别准确度。
S306、输出恶意域名。
服务器可以在每识别得到一个恶意域名后,输出该恶意域名,也可以在识别得到的恶意域名达到指定数量阈值后,再输出所有识别得到的恶意域名,还可以周期性进行恶意域名的识别,在每个识别周期输出一次恶意域名识别结果,该恶意域名识别结果包括在该识别周期识别得到的恶意域名。其中,恶意域名可以通过服务器的用户界面或者服务器连接的其他设备输出。
S307、在恶意域名被一次或多次访问,输出用于该访问的IP地址。
参考图1所示的应用环境,僵尸机102与主控机101建立直接的通信连接时,需要生成大量的备选域名,这些域名均为恶意域名,正常的计算机设备通常是不会访问这些恶意域名的,而僵尸机102需要访问这些恶意域名,来完成通信连接的建立。本申请实施例中,将访问恶意域名的IP地址输出,该IP地址实质为僵尸机的IP地址,如此可以定位到僵尸机,从而确定被控制的计算机设备,以实现计算机设备的安全防护,实现恶意攻击的预防。
由于在图1所示的应用环境中,仅有少量的备选域名会被注册,因此有大量的恶意域名未被注册,不存在对应的IP地址,僵尸机102为了和主控机101建立连接,会一次或多次访问这些恶意域名,由于这些恶意域名不存在对应的IP地址,因此相应的访问不会产生地址(address)记录(也称A记录)。可选地,服务器在恶意域名被一次或多次访问,且访问不存在地址记录时,输出用于该访问的IP地址。如此可以更为准确地定位到僵尸机,提高识别僵尸机的准确率。需要说明的是,服务器在恶意域名被一次或多次访问后,也可以不查询该访问是否存在地址记录,直接输出用于该访问的IP地址,如此可以减少查询复杂度,降低服务器负载。
可选地,服务器可以在每识别得到一个访问恶意域名的IP地址后,输出该IP地址,也可以在识别得到的访问恶意域名的IP地址达到指定数量阈值后,再输出所有识别得到的访问恶意域名的IP地址,还可以周期性进行访问恶意域名的IP地址的识别,在每个识别周期输出一次访问恶意域名的IP地址识别结果,该访问恶意域名的IP地址识别结果包括在该识别周期识别得到的访问恶意域名的IP地址。其中,访问恶意域名的IP地址可以通过服务器的用户界面或者服务器连接的其他设备输出。前述识别周期可以为5天。
其中,前述访问恶意域名的IP地址可以和恶意域名对应输出,也可以分别输出。示例的,由于采用ADS建立直接通信连接时,僵尸机会在短时间内生成大量的恶意域名,但是多数都不存在IP地址,本申请实施例中,在周期性地进行访问恶意域名的IP地址识别时,可以将一个识别周期内被相同IP地址的计算机设备访问的恶意域名获取为恶意域名集合,与该相同的IP地址关联输出,如此可以反映该识别周期中的访问恶意域名的IP地址与恶意域名的关联关系,更便于安全监控人员观看和定位到访问恶意域名的IP地址。其中,S306和S307中的识别周期可以相同也可以不同。
值得说明的是,在前述S301中,服务器可以通过在DNS流量日志中提取包括域名的三元组,该三元组包括:域名、DNS请求的请求时刻以及请求者的IP地址(即访问域名的IP地址)。如此在S307时,可以基于包括该恶意域名的三元组快速确定当前识别周期内访问恶意域名的请求者的IP地址。
S308、输出异常的机构域名或者主机域名,该机构域名或者主机域名为恶意域名中的部分字符串或者全部字符串。
参考图2所示的应用环境,僵尸机102采用DNS隧道技术对实际需要传输的数据进行数据转换得到载荷,并将载荷封装在DNS隧道的域名中,而黑客实际注册的域名是未携带载荷的域名,该域名用于标识机构或主机,在本申请实施例中,将未携带载荷的域名称为标志域名,该标志域名为机构域名(或组织名、单位名、公司名)或主机域名,其中,机构域名用于标识恶意域名所来源的机构,主机域名用于标识恶意域名所来源的主机。通过识别并输出恶意域名所对应的标志域名,可以定位恶意域名来源的机构或主机,实现DNS隧道画像。
按照DNS隧道技术中域名的生成规则,按照从左到右的顺序,标志域名通常仅包括恶意域名的最后两个域名段,少数情况下包括恶意域名的最后三个域名段。基于该生成原理,本申请实施例中,标志域名满足如下任一种规则:
第一种规则,标志域名包括恶意域名中的最后三个域名段(即按照从左到右顺序的最后三个域名段),其中,恶意域名中倒数第二个域名段属于顶级域名集合,且恶意域名中倒数第二个域名段的字符总数小于第二数量阈值,顶级域名集合记录有多个顶级域名。示例的,该第二数量阈值为4。由于倒数第二个域名段属于顶级域名集合,且字符总数小于第二数量阈值时,其通常作为机构或主机的标识的一部分,和前一级域名段以及后一级域名段组合标识机构或主机,因此,在这种场景下,将恶意域名中包括最后三个域名段的部分确定为标志域名。例如,恶意域名“yrbh1o.example.com.cn”的标志域名为“example.com.cn”。
第二种规则,标志域名包括恶意域名中的最后两个域名段,其中,恶意域名中倒数第二个域名段不属于顶级域名集合,或者恶意域名中倒数第二个域名段的字符总数不小于第二数量阈值。例如,恶意域名“yrbh1o.example.com”的标志域名为“example.com”。
服务器在识别标志域名时,可以先检测恶意域名中的倒数第二个域名段是否属于顶级域名集合,并检测恶意域名中倒数第二个域名段的字符总数是否小于第二数量阈值;当倒数第二个域名段属于顶级域名集合,且倒数第二个域名段的字符总数小于第二数量阈值,将恶意域名中包括最后三个域名段的部分确定为标志域名;当倒数第二个域名段不属于顶级域名集合,或倒数第二个域名段的字符总数小于第二数量阈值,将恶意域名中包括最后两个域名段的部分确定为标志域名。
示例的,前述恶意域名中包括最后三个域名段的部分指的是恶意域名中的最后三个域名段,以及每两个域名段之间的间隔点或者每个域名段之前的间隔点,如“example.com.cn”或“.example.com.cn”;前述恶意域名中包括最后两个域名段的部分指的是恶意域名中的最后两个域名段,以及每两个域名段之间的间隔点或者每个域名段之前的间隔点,如“example.com”或“.example.com”。如此,输出的标志域名与恶意域名的后半部分相同,便于安全监控人员观看,便于进行DNS隧道画像。
可选地,服务器可以在每识别得到一个标志域名后,输出该标志域名,也可以在识别得到的标志域名达到指定数量阈值后,再输出所有识别得到的标志域名,还可以周期性进行标志域名的识别,在每个识别周期输出一次标志域名识别结果,该标志域名识别结果包括在该识别周期识别得到的标志域名。其中,标志域名可以通过服务器的用户界面或者服务器连接的其他设备输出。前述识别周期可以为5天。
其中,前述标志域名可以和恶意域名对应输出,也可以分别输出。示例的,由于采用DNS隧道技术建立间接通信连接时,僵尸机会在短时间内生成大量的恶意域名,以实现载荷的传输,本申请实施例中,在进行周期性地标志域名识别时,可以将一个识别周期内标志域名相同的恶意域名获取为恶意域名集合,与该标志域名关联输出,如此可以反映该识别周期中的标志域名与恶意域名的关联关系,更便于安全监控人员观看和定位到标志域名。值得说明的是,S306和S308中的识别周期可以相同也可以不同。
综上所述,本申请实施例通过从域名中获取多个域名段,通过检测域名段是否为异常域名段来确定域名是否为恶意域名,相对于相关技术,不再采用域名整体作为识别单位,以域名段为异常识别单位,降低了各个域名段相互之间的干扰,提高了恶意域名的识别准确性。
进一步的,本申请实施例通过以下一种或多种技术:采用至少两个分类器组合得到的分类器进行异常的域名段的识别、对域名进行预处理以及如S307的IP地址定位,可以有效降低恶意域名的误识别概率,为安全监控人员提供全方位的恶意域名告警。
需要说明的是,本申请实施例提供的域名检测方法先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,例如,在执行S302之后可以直接执行S304,前述S303、S307和/或S308可以删除,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
值得说明的是,在前述S304中,若采用分类器进行异常的域名段的识别,在S304之前,还需要对分类器进行训练。该训练过程包括:
B1、获取训练样本集。
需要训练得到的分类器不同,采用的训练样本集也不同。与前述304的第一种规则对应的,本申请实施例的训练样本集获取方式包括以下两种示意性方式:
第一种获取方式,与前述304的第一种规则中的第一种可选方式对应的,训练样本集包括一个或多个域名段。示例的,该训练样本集包括域名段正样本集合和域名段负样本集合。其中,该域名段正样本集合为基于域名正样本集合获取的域名段样本集合。域名正样本集合包括一个或多个域名。示例的,域名正样本集合可以包括从指定域名排名网站(如发布网站世界排名的网站)提取的排名前u个域名(u为正整数,例如u为100万)。其中,基于域名正样本集合获取的域名段正样本集合的过程包括:对于域名正样本集合中的每个域名,从域名中确定多个域名段得到域名段正样本集合,该过程可以参考S302;可选地,还可以获取更新后的多个域名段得到更新后的域名段正样本集合,该过程可以参考S303。可选地,还可以对域名进行预处理,该预处理过程参考前述S302中的预处理过程。
其中,该域名段负样本集合为基于域名负样本集合获取的域名段样本集合。域名负样本集合包括一个或多个域名。其中,基于域名负样本集合获取的域名段样本集合的过程包括:对于域名负样本集合中的每个域名,从域名中确定多个域名段得到域名段负样本集合,该过程可以参考S302;可选地,还可以获取更新后的多个域名段得到更新后的域名段负样本集合,该过程可以参考S303。可选地,还可以对域名进行预处理,该预处理过程参考前述S302中的预处理过程。
示例的,域名负样本集合可以包括当前常见的DGA家族中的域名和/或采用常见的DGA生成的域名。例如,当前常见的DGA家族包括如下多个DGA家族:Bamital、Banjori、Bebloh/urlzone、Bedep、Beebone、Chinad、Corebot、Cryptolocker、Dircrypt、Dnschanger、Dromedan、Dyre、Fobber、G01、Geodo、Gozi、Hesperbot、Kraken、Locky、Madmax、Matsnu、Mirai、Murofet、Mydoom、Necurs、Newgoz、Nymaim、P2p goz、Padcrypt、Pandabanker、Pitou、Pizd、Proslikefan、Pt goz/new goz、Pushdo、Pykspa、Pykspaimproved、Pykspaprecursor、Qadars、Qakbot、Ramdo、Ramnit、Ranbyus、Shifu、Shiotob、Simda、Sisron、Sphinx、Suppobox、Symmi、Tempedreve、Tinba/tinybanker、Tinynuke、Tofsee、Vawtrak、Vidro、Virut、Volatile cedar/explosive。例如,采用常见的DGA生成的域名可以有100万个。
第二种获取方式,与前述304的第一种规则中的第二种可选方式对应的,训练样本集包括一个或多个特征向量,训练样本集中每个特征向量与一个域名段对应,每个特征向量是对对应的域名段进行特征提取得到的。示例的,该训练样本集包括对域名段正样本集合中的域名段和域名段负样本集合中的域名段进行特征提取得到的特征向量的集合。其中,域名段正样本集合和域名段负样本集合的获取方式参考前述第一种获取方式。每个特征向量可以为包括n个特征的n维特征向量,该n个特征的提取方式与前述304的第一种规则中的第二种可选方式中的n个特征的提取方式相同,因此训练阶段的n个特征的提取方式可以参考前述304的第一种规则中的第二种可选方式中的对应说明,本申请实施例对此不做赘述。
B2、采用训练样本集对初始分类器进行训练得到分类器。
将训练样本集中的训练样本输入初始分类器,以对初始分类器进行训练得到分类器。例如,当训练样本集采用前述B1中的第一种获取方式获取,则将训练样本集中的域名段以字符为粒度分批次输入初始分类器,直至损失函数的损失值收敛在预设范围内,得到训练完成的分类器;当训练样本集采用前述B1中的第二种获取方式获取,则将训练样本集中的特征向量分批次输入初始分类器,直至损失函数的损失值收敛在预设范围内,得到训练完成的分类器。
相关技术中,对机器学习模型或深度学习模型进行训练时,所采用的训练样本集为较为干净的训练样本集,例如Alexa、Chinad、Banjori等家族的域名数据集,但训练样本集与现网真实数据存在一定的差异,如此训练得到的机器学习模型或深度学习模型的误报率较高。
本申请实施例中,所采用的训练样本集包括域名段正样本集合和域名段负样本集合,或者,所采用的训练样本集为对域名段正样本集合和域名段负样本集合进行特征提取得到的特征向量的集合。该训练样本集更贴近现网真实数据,训练得到的分类器的误报率较低。
图4是本申请实施例提供的一种示意性的训练过程流程图。如图4所示,假设需要训练得到的分类器包括LSTM模型、逻辑回归模型和随机森林模型。则从指定域名排名网站提取的排名前u个域名得到域名正样本集合;获取当前常见的多个DGA家族得到域名负样本集合。基于域名正样本集合和域名负样本集合获取域名段样本集合,该过程可以参考S302;可选地,还可以获取更新后的多个域名段得到更新后的域名段样本集合,该过程可以参考S303,图4假设基于域名段:“www”以及顶级域名集合获取更新后的多个域名段得到更新后的域名段样本集合,具体过程可以参考S303中的第一至第三种情况。采用域名段样本集合作为训练样本集训练初始的LSTM模型得到LSTM模型;对域名段样本集合中的域名段进行特征提取得到的特征向量的集合,将该特征向量的集合作为训练样本集分别训练初始的逻辑回归模型和初始的随机森林模型,得到逻辑回归模型和随机森林模型。
可选地,前述S306至S308所输出的域名识别结果,可以发送至管理设备,由管理人员进行人工确认,通过人工确认可以提高域名识别结果的精度,减少误识别的概率。
进一步的,服务器在接收到确认结果后,可以基于确认结果更新域名正样本集合和/或域名负样本集合,进一步更新域名段正样本集合和/或域名段负样本集合。相应的,训练样本集也进行更新,服务器可以采用更新后的训练样本集进行分类器的增量训练,从而得到新的分类器,该新的分类器随着训练样本集的更新而更新,更适应于现网的域名变化,保证恶意域名的稳定识别。
图5是本申请一示意性实施例所提供的一种服务器的结构示意图,该服务器包括数据源501、预处理模块502、算法分析模块503以及IP地址定位模块504、DNS隧道画像模块505以及恶意域名告警模块506。
其中,数据源501用于存储用于训练或预处理的数据。示例的,数据源501可以存储多个DGA家族的恶意域名、发布网站世界排名的网站中的前d个域名、收集的基于DNS隧道技术生成的恶意域名以及指定单词库如COCA。
预处理模块502用于对域名进行预处理,该预处理过程包括前述字符合法性检验处理、用途检测处理或字典树查询处理中的一种或多种。
算法分析模块503用于执行前述S304,例如,该算法分析模块503安装有AC自动机、LSTM模型、逻辑回归模型和随机森林模型。各个模型的训练和工作过程参考前述实施例。
IP地址定位模块504用于进行IP地址定位,如执行前述S307;DNS隧道画像模块505用于执行前述S308;恶意域名告警模块506用于执行前述S306。
图6是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60可以应用于服务器中,该装置60包括:
第一确定模块601,用于从域名中确定多个域名段;第二确定模块602,用于在确定该多个域名段中存在异常的域名段后,将该域名确定为恶意域名。
综上所述,本申请实施例中,第一确定模块通过从域名中获取多个域名段,第二确定模块通过检测域名段是否为异常域名段来确定域名是否为恶意域名,相对于相关技术,不再采用域名整体作为识别单位,以域名段为异常识别单位,降低了各个域名段相互之间的干扰,提高了恶意域名的识别准确性。
图7是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60还包括:
第三确定模块603,用于在该域名段满足预设规则时,确定该域名段为异常的域名段;
其中,该预设规则为如下任一种或多种:基于该域名段或者该域名段的特征向量通过分类器识别出异常的域名段;或者,该域名段包括的元音字母的个数在该域名段包的字符总数的比值小于比值阈值;或者,该域名段包括异常词条。
在一种可选示例中,该特征向量为包括n个特征的n维特征向量,n为正整数,该n个特征包括如下的任一种或多种:域名段包括的连字符在域名段包括的字符中的个数占比;域名段包括的数字在域名段包括的字符中的个数占比;域名段的长度;域名段包括的字符种类数与域名段的字符总数之比;域名段包括的数字种类数与域名段的字符总数之比;域名段的香农熵;域名段包括的连续重复字母的出现次数与域名段的字符总数之比;域名段包括的元音字母在域名段中的个数占比;域名段包括的数字在域名段包括的字符中的个数占比;域名段包括的连续字母的出现次数x1与第一字符数y1之比,该第一字符数y1为域名段的字符总数y与连续字母的出现次数x1之差;域名段包括的连续辅音字母的出现次数x2与第二字符数y2之比,该第二字符数y2为域名段的字符总数y与连续辅音字母的出现次数x2之差;域名段包括的连续数字的出现次数x3与第三字符数y3之比,该第三字符数y3为域名段的字符总数y与连续数字的出现次数x3之差;域名段中数字和字母切换的次数与域名段的字符总数之比;可读性得分,该可读性得分用于指示域名段的可读性;可靠性得分,该可靠性得分用于指示域名段的可靠性;域名段包括的单词的个数与域名段的字符总数之比;域名段包括的单词数量;二元数据排序特征,该二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号确定的特征,该多个二元数据中每个该二元数据由域名段中连续的两个字符组成;三元数据排序特征,该三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号确定的特征,该多个三元数据中每个该三元数据由域名段中连续的三个字符组成。
在一种可选示例中,该n个特征满足如下的一种或多种:当该n个特征满包括可读性得分时,该可读性得分为采用指定单词库训练得到的马尔科夫模型所输出的域名段对应的得分;当该n个特征满包括可靠性得分时,该可靠性得分为采用域名段正样本集合训练得到的马尔科夫模型所输出的域名段对应的得分;当该n个特征满包括二元数据排序特征时,该二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数、平均值或方差;当该n个特征满包括二元数据排序特征时,该三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数、平均值或方差。
在一种可选示例中,该分类器包括如下的一种或多种:逻辑回归模型;或者,随机森林模型;或者,长短期记忆LSTM模型。
在一种可选示例中,该异常的域名段中的词条的并集所包括的字符数大于字符数量阈值;和/或,该异常词条为在指定时长内,出现的次数大于次数阈值,和/或出现在不同域名段的同一位置的概率大于概率阈值的词条。
图8是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60还包括:分析模块604,用于基于AC自动机的词库从该每个域名段分析出该域名段中包括的词条,该AC自动机的词库包括单词、拼音、机构名或词根中的一种或多种。
图9是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60还包括:删除模块605,用于在确定该域名中的指定位置的域名段属于与该指定位置对应的域名段集合后,删除该多个域名段中的该指定位置的域名段,来得到更新后的多个域名段,该域名段集合包括一个或多个域名段。
可选地,删除模块605,用于在确定该域名中的第一个域名段属于包括“www”的域名段集合后,删除该多个域名段中的第一个域名段,来得到更新后的多个域名段;和/或,在确定该域名中的倒数第二个域名段属于顶级域名集合,且该倒数第二个域名段的字符总数小于第一数量阈值后,删除该多个域名段中的倒数第二个域名段,来得到更新后的多个域名段,该顶级域名集合包括一个或多个顶级域名;和/或,在确定该域名中的最后一个域名段属于顶级域名集合后,删除该多个域名段中的最后一个域名段,来得到更新后的多个域名段。
图10是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60还包括:第一输出模块606,用于在该恶意域名被一次或多次访问,且该访问不存在地址记录时,输出用于该访问的互联网协议IP地址。
图11是本申请实施例提供的一种域名检测装置60的框图,该域名检测装置60还包括:第二输出模块607,用于输出异常的机构域名或者主机域名,该机构域名或者该主机域名为该恶意域名中的部分字符串或者全部字符串。
在一种可选示例中,该第一确定模块601,用于:对该域名进行预处理;从预处理后的该域名中确定该多个域名段。
可选地,第一确定模块601,用于:检测该域名中字符的合法性,将字符合法的域名作为预处理后的该域名;和/或,检测该域名是否为指定用途的域名,将不是该指定用途的该域名作为预处理后的该域名;和/或,采用该域名查询字典树,该字典树基于域名黑名单和/或域名白名单建立,将不包括该字典树中域名的域名作为预处理后的该域名。
可选地,该域名为DNS流量日志中记载的域名。
在一种可选示例中,该第一确定模块601,用于:将该域名按照分隔点划分为该多个域名段。
可选地,该装置应用于如下的任一种:网络防火墙;或者,主机防火墙;或者,应用服务器的网站应用防护系统WAF;或者,态势感知平台;或者,云WAF。
值得说明的是,当该域名识别装置集成在图5所示的服务器中时,前述第一确定模块601、第二确定模块602、第三确定模块603、分析模块604和删除模块605中的一个或多个可以集成在前述算法分析模块503中;第一输出模块606可以集成在IP地址定位模块504中;第二输出模块607可以集成在DNS隧道画像模块505中。
可选地,图12是本申请实施例提供的计算机设备的一种可能的基本硬件架构。该计算机设备可以为服务器。
参见图12,计算机设备700包括处理器701、存储器702、通信接口703和总线704。
计算机设备700中,处理器701的数量可以是一个或多个,图12仅示意了其中一个处理器701。可选地,处理器701,可以是中央处理器(central processing unit,CPU)。如果计算机设备700具有多个处理器701,多个处理器701的类型可以不同,或者可以相同。可选地,计算机设备700的多个处理器701还可以集成为多核处理器。
存储器702存储计算机指令和数据;存储器702可以存储实现本申请提供的域名检测方法所需的计算机指令和数据,例如,存储器702存储用于实现域名检测方法的步骤的指令。存储器702可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(ROM)、固态硬盘(SSD)、硬盘(HDD)、光盘),易失性存储器。
通信接口703可以是以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
通信接口703用于计算机设备700与其它计算机设备或者终端进行数据通信。
总线704可以将处理器701与存储器702和通信接口703连接。这样,通过总线704,处理器701可以访问存储器702,还可以利用通信接口703与其它计算机设备或者终端进行数据交互。
在本申请中,计算机设备700执行存储器702中的计算机指令,使得计算机设备700实现本申请提供的域名检测方法,或者使得计算机设备700部署域名检测装置。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由服务器的处理器执行以完成本申请各个实施例所示的域名检测方法。例如,该非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例提供一种通信系统,包括:服务器以及至少两个计算机设备,该服务器包括本申请实施例提供的域名检测装置,如前述域名检测装置60,或者该服务器为图5所示的服务器。该至少两个计算机设备可以建立直接或间接的通信连接,示例的,该至少两个计算机设备包括主控机和僵尸机。该通信系统的结构可以参考前述图1和图2所示的通信系统的结构。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
在本申请中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”表示1个或多个,术语“多个”指两个或两个以上,除非另有明确的限定;“/”表示或。A参考B,指的是A与B相同或者A为B的简单变形。
需要说明的是:上述实施例提供的域名检测装置在执行该域名检测方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的域名检测装置、通信系统与域名检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (35)
1.一种域名检测方法,其特征在于,所述方法包括:
从域名中确定多个域名段;
在确定所述多个域名段中存在异常的域名段后,将所述域名确定为恶意域名。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述域名段满足预设规则时,确定所述域名段为异常的域名段;
其中,所述预设规则为如下任一种或多种:
基于所述域名段或者所述域名段的特征向量通过分类器识别出异常的域名段;或者,
所述域名段包括的元音字母的个数在所述域名段包的字符总数的比值小于比值阈值;或者,
所述域名段包括异常词条。
3.根据权利要求2所述的方法,其特征在于,所述特征向量为包括n个特征的n维特征向量,n为正整数,所述n个特征包括如下的任一种或多种:
域名段包括的连字符在域名段包括的字符中的个数占比;
域名段包括的数字在域名段包括的字符中的个数占比;
域名段的长度;
域名段包括的字符种类数与域名段的字符总数之比;
域名段包括的数字种类数与域名段的字符总数之比;
域名段的香农熵;
域名段包括的连续重复字母的出现次数与域名段的字符总数之比;
域名段包括的元音字母在域名段中的个数占比;
域名段包括的数字在域名段包括的字符中的个数占比;
域名段包括的连续字母的出现次数x1与第一字符数y1之比,所述第一字符数y1为域名段的字符总数y与连续字母的出现次数x1之差;
域名段包括的连续辅音字母的出现次数x2与第二字符数y2之比,所述第二字符数y2为域名段的字符总数y与连续辅音字母的出现次数x2之差;
域名段包括的连续数字的出现次数x3与第三字符数y3之比,所述第三字符数y3为域名段的字符总数y与连续数字的出现次数x3之差;
域名段中数字和字母切换的次数与域名段的字符总数之比;
可读性得分,所述可读性得分用于指示域名段的可读性;
可靠性得分,所述可靠性得分用于指示域名段的可靠性;
域名段包括的单词的个数与域名段的字符总数之比;
域名段包括的单词数量;
二元数据排序特征,所述二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号确定的特征,所述多个二元数据中每个所述二元数据由域名段中连续的两个字符组成;
三元数据排序特征,所述三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号确定的特征,所述多个三元数据中每个所述三元数据由域名段中连续的三个字符组成。
4.根据权利要求3所述的方法,其特征在于,所述n个特征满足如下的一种或多种:
当所述n个特征满包括可读性得分时,所述可读性得分为采用指定单词库训练得到的马尔科夫模型所输出的域名段对应的得分;
当所述n个特征满包括可靠性得分时,所述可靠性得分为采用域名段正样本集合训练得到的马尔科夫模型所输出的域名段对应的得分;
当所述n个特征满包括二元数据排序特征时,所述二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数、平均值或方差;
当所述n个特征满包括二元数据排序特征时,所述三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数、平均值或方差。
5.根据权利要求2至4任一所述的方法,其特征在于,所述分类器包括如下的一种或多种:逻辑回归模型;
或者,随机森林模型;
或者,长短期记忆LSTM模型。
6.根据权利要求2至5任一所述的方法,其特征在于,所述异常的域名段中的词条的并集所包括的字符数大于字符数量阈值;
和/或,所述异常词条为在指定时长内,出现的次数大于次数阈值,和/或出现在不同域名段的同一位置的概率大于概率阈值的词条。
7.根据权利要求2至6任一所述的方法,其特征在于,所述方法还包括:
基于AC自动机的词库从所述每个域名段分析出所述域名段中包括的词条,所述AC自动机的词库包括单词、拼音、机构名或词根中的一种或多种。
8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:
在确定所述域名中的指定位置的域名段属于与所述指定位置对应的域名段集合后,删除所述多个域名段中的所述指定位置的域名段,来得到更新后的多个域名段,所述域名段集合包括一个或多个域名段。
9.根据权利要求8所述的方法,其特征在于,所述在确定所述域名中的指定位置的域名段属于与所述指定位置对应的域名段集合时后,删除所述多个域名段中的所述指定位置的域名段,来得到更新后的多个域名段,包括:
在确定所述域名中的第一个域名段属于包括“www”的域名段集合后,删除所述多个域名段中的第一个域名段,来得到更新后的多个域名段;
和/或,在确定所述域名中的倒数第二个域名段属于顶级域名集合,且所述倒数第二个域名段的字符总数小于第一数量阈值后,删除所述多个域名段中的倒数第二个域名段,来得到更新后的多个域名段,所述顶级域名集合包括一个或多个顶级域名;
和/或,在确定所述域名中的最后一个域名段属于顶级域名集合后,删除所述多个域名段中的最后一个域名段,来得到更新后的多个域名段。
10.根据权利要求1至9任一所述的方法,其特征在于,所述方法包括:
在所述恶意域名被一次或多次访问,输出用于所述访问的互联网协议IP地址。
11.根据权利要求1至9任一所述的方法,其特征在于,所述方法包括:
输出异常的机构域名或者主机域名,所述机构域名或者所述主机域名为所述恶意域名中的部分字符串或者全部字符串。
12.根据权利要求1至11任一所述的方法,其特征在于,所述从域名中确定多个域名段,包括:
对所述域名进行预处理;
从预处理后的所述域名中确定所述多个域名段。
13.根据权利要求12所述的方法,其特征在于,所述对所述域名进行预处理,包括:
检测所述域名中字符的合法性,将字符合法的域名作为预处理后的所述域名;
和/或,检测所述域名是否为指定用途的域名,将不是所述指定用途的所述域名作为预处理后的所述域名;
和/或,采用所述域名查询字典树,所述字典树基于域名黑名单和/或域名白名单建立,将不包括所述字典树中域名的域名作为预处理后的所述域名。
14.根据权利要求1至13任一所述的方法,其特征在于,所述域名为域名系统DNS流量日志中记载的域名。
15.根据权利要求1至14任一所述的方法,其特征在于,所述从域名中确定多个域名段,包括:将所述域名按照分隔点划分为所述多个域名段。
16.根据权利要求1至15任一所述的方法,其特征在于,所述方法应用于如下的任一种:
网络防火墙;或者,
主机防火墙;或者,
应用服务器的网站应用防护系统WAF;或者,
态势感知平台;或者,
云WAF。
17.一种域名检测装置,其特征在于,所述装置包括:
第一确定模块,用于从域名中确定多个域名段;
第二确定模块,用于在确定所述多个域名段中存在异常的域名段后,将所述域名确定为恶意域名。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
第三确定模块,用于在所述域名段满足预设规则时,确定所述域名段为异常的域名段;
其中,所述预设规则为如下任一种或多种:
基于所述域名段或者所述域名段的特征向量通过分类器识别出异常的域名段;或者,
所述域名段包括的元音字母的个数在所述域名段包的字符总数的比值小于比值阈值;或者,
所述域名段包括异常词条。
19.根据权利要求18所述的装置,其特征在于,所述特征向量为包括n个特征的n维特征向量,n为正整数,所述n个特征包括如下的任一种或多种:
域名段包括的连字符在域名段包括的字符中的个数占比;
域名段包括的数字在域名段包括的字符中的个数占比;
域名段的长度;
域名段包括的字符种类数与域名段的字符总数之比;
域名段包括的数字种类数与域名段的字符总数之比;
域名段的香农熵;
域名段包括的连续重复字母的出现次数与域名段的字符总数之比;
域名段包括的元音字母在域名段中的个数占比;
域名段包括的数字在域名段包括的字符中的个数占比;
域名段包括的连续字母的出现次数x1与第一字符数y1之比,所述第一字符数y1为域名段的字符总数y与连续字母的出现次数x1之差;
域名段包括的连续辅音字母的出现次数x2与第二字符数y2之比,所述第二字符数y2为域名段的字符总数y与连续辅音字母的出现次数x2之差;
域名段包括的连续数字的出现次数x3与第三字符数y3之比,所述第三字符数y3为域名段的字符总数y与连续数字的出现次数x3之差;
域名段中数字和字母切换的次数与域名段的字符总数之比;
可读性得分,所述可读性得分用于指示域名段的可读性;
可靠性得分,所述可靠性得分用于指示域名段的可靠性;
域名段包括的单词的个数与域名段的字符总数之比;
域名段包括的单词数量;
二元数据排序特征,所述二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号确定的特征,所述多个二元数据中每个所述二元数据由域名段中连续的两个字符组成;
三元数据排序特征,所述三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号确定的特征,所述多个三元数据中每个所述三元数据由域名段中连续的三个字符组成。
20.根据权利要求19所述的装置,其特征在于,所述n个特征满足如下的一种或多种:
当所述n个特征满包括可读性得分时,所述可读性得分为采用指定单词库训练得到的马尔科夫模型所输出的域名段对应的得分;
当所述n个特征满包括可靠性得分时,所述可靠性得分为采用域名段正样本集合训练得到的马尔科夫模型所输出的域名段对应的得分;
当所述n个特征满包括二元数据排序特征时,所述二元数据排序特征为基于域名段包括的多个二元数据按照出现频率排序后的序号的中位数、平均值或方差;
当所述n个特征满包括二元数据排序特征时,所述三元数据排序特征为基于域名段包括的多个三元数据按照出现频率排序后的序号的中位数、平均值或方差。
21.根据权利要求18至20任一所述的装置,其特征在于,所述分类器包括如下的一种或多种:逻辑回归模型;
或者,随机森林模型;
或者,长短期记忆LSTM模型。
22.根据权利要求18至21任一所述的装置,其特征在于,所述异常的域名段中的词条的并集所包括的字符数大于字符数量阈值;
和/或,所述异常词条为在指定时长内,出现的次数大于次数阈值,和/或出现在不同域名段的同一位置的概率大于概率阈值的词条。
23.根据权利要求18至22任一所述的装置,其特征在于,所述装置还包括:
分析模块,用于基于AC自动机的词库从所述每个域名段分析出所述域名段中包括的词条,所述AC自动机的词库包括单词、拼音、机构名或词根中的一种或多种。
24.根据权利要求17至23任一所述的装置,其特征在于,所述装置还包括:
删除模块,用于在确定所述域名中的指定位置的域名段属于与所述指定位置对应的域名段集合后,删除所述多个域名段中的所述指定位置的域名段,来得到更新后的多个域名段,所述域名段集合包括一个或多个域名段。
25.根据权利要求24所述的装置,其特征在于,所述删除模块,用于:
在确定所述域名中的第一个域名段属于包括“www”的域名段集合后,删除所述多个域名段中的第一个域名段,来得到更新后的多个域名段;
和/或,在确定所述域名中的倒数第二个域名段属于顶级域名集合,且所述倒数第二个域名段的字符总数小于第一数量阈值后,删除所述多个域名段中的倒数第二个域名段,来得到更新后的多个域名段,所述顶级域名集合包括一个或多个顶级域名;
和/或,在确定所述域名中的最后一个域名段属于顶级域名集合后,删除所述多个域名段中的最后一个域名段,来得到更新后的多个域名段。
26.根据权利要求17至25任一所述的装置,其特征在于,所述装置包括:
第一输出模块,用于在所述恶意域名被一次或多次访问,输出用于所述访问的互联网协议IP地址。
27.根据权利要求17至25任一所述的装置,其特征在于,所述装置包括:
第二输出模块,用于输出异常的机构域名或者主机域名,所述机构域名或者所述主机域名为所述恶意域名中的部分字符串或者全部字符串。
28.根据权利要求17至27任一所述的装置,其特征在于,所述第一确定模块,用于:
对所述域名进行预处理;
从预处理后的所述域名中确定所述多个域名段。
29.根据权利要求28所述的装置,其特征在于,所述第一确定模块,用于:
检测所述域名中字符的合法性,将字符合法的域名作为预处理后的所述域名;
和/或,检测所述域名是否为指定用途的域名,将不是所述指定用途的所述域名作为预处理后的所述域名;
和/或,采用所述域名查询字典树,所述字典树基于域名黑名单和/或域名白名单建立,将不包括所述字典树中域名的域名作为预处理后的所述域名。
30.根据权利要求17至29任一所述的装置,其特征在于,所述域名为域名系统DNS流量日志中记载的域名。
31.根据权利要求17至30任一所述的装置,其特征在于,所述第一确定模块,用于:将所述域名按照分隔点划分为所述多个域名段。
32.根据权利要求17至31任一所述的装置,其特征在于,所述装置应用于如下的任一种:
网络防火墙;或者,
主机防火墙;或者,
应用服务器的网站应用防护系统WAF;或者,
态势感知平台;或者,
云WAF。
33.一种计算机设备,其特征在于,包括:
处理器和存储器;
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述存储器存储的计算机指令,使得所述计算机设备执行权利要求1至16任一所述的域名检测方法。
34.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机指令,所述计算机指令指示计算机设备执行权利要求1至16任一所述的域名检测方法。
35.一种通信系统,其特征在于,包括:服务器以及至少两个计算机设备,所述服务器包括如权利要求17至32任一所述的域名检测装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694113.1A CN114024701A (zh) | 2020-07-17 | 2020-07-17 | 域名检测方法、装置及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010694113.1A CN114024701A (zh) | 2020-07-17 | 2020-07-17 | 域名检测方法、装置及通信系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114024701A true CN114024701A (zh) | 2022-02-08 |
Family
ID=80053832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010694113.1A Pending CN114024701A (zh) | 2020-07-17 | 2020-07-17 | 域名检测方法、装置及通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114024701A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611076A (zh) * | 2023-07-20 | 2023-08-18 | 北京微步在线科技有限公司 | 一种域名匹配方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180205753A1 (en) * | 2017-01-19 | 2018-07-19 | Hewlett Packard Enterprise Development Lp | Time-based detection of malware communications |
CN108632227A (zh) * | 2017-03-23 | 2018-10-09 | 中国移动通信集团广东有限公司 | 一种恶意域名检测处理方法及装置 |
US20190068550A1 (en) * | 2017-08-24 | 2019-02-28 | Verisign, Inc. | System for and method of ranking domain names based on user properties |
CN110768929A (zh) * | 2018-07-26 | 2020-02-07 | 中国电信股份有限公司 | 域名检测方法和装置、计算机可读存储介质 |
CN110855635A (zh) * | 2019-10-25 | 2020-02-28 | 新华三信息安全技术有限公司 | Url识别方法、装置及数据处理设备 |
CN111131260A (zh) * | 2019-12-24 | 2020-05-08 | 邑客得(上海)信息技术有限公司 | 一种海量网络恶意域名识别和分类方法及系统 |
CN111353109A (zh) * | 2020-03-04 | 2020-06-30 | 深信服科技股份有限公司 | 一种恶意域名的识别方法及系统 |
-
2020
- 2020-07-17 CN CN202010694113.1A patent/CN114024701A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180205753A1 (en) * | 2017-01-19 | 2018-07-19 | Hewlett Packard Enterprise Development Lp | Time-based detection of malware communications |
CN108632227A (zh) * | 2017-03-23 | 2018-10-09 | 中国移动通信集团广东有限公司 | 一种恶意域名检测处理方法及装置 |
US20190068550A1 (en) * | 2017-08-24 | 2019-02-28 | Verisign, Inc. | System for and method of ranking domain names based on user properties |
CN110768929A (zh) * | 2018-07-26 | 2020-02-07 | 中国电信股份有限公司 | 域名检测方法和装置、计算机可读存储介质 |
CN110855635A (zh) * | 2019-10-25 | 2020-02-28 | 新华三信息安全技术有限公司 | Url识别方法、装置及数据处理设备 |
CN111131260A (zh) * | 2019-12-24 | 2020-05-08 | 邑客得(上海)信息技术有限公司 | 一种海量网络恶意域名识别和分类方法及系统 |
CN111353109A (zh) * | 2020-03-04 | 2020-06-30 | 深信服科技股份有限公司 | 一种恶意域名的识别方法及系统 |
Non-Patent Citations (1)
Title |
---|
张维维: "基于DNS活动的恶意服务检测及其威胁评估", 信息科技, no. 12, 15 December 2018 (2018-12-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116611076A (zh) * | 2023-07-20 | 2023-08-18 | 北京微步在线科技有限公司 | 一种域名匹配方法、装置、电子设备及存储介质 |
CN116611076B (zh) * | 2023-07-20 | 2023-10-27 | 北京微步在线科技有限公司 | 一种域名匹配方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11496509B2 (en) | Malicious software detection in a computing system | |
CN107645503B (zh) | 一种基于规则的恶意域名所属dga家族的检测方法 | |
US10178107B2 (en) | Detection of malicious domains using recurring patterns in domain names | |
CN110099059B (zh) | 一种域名识别方法、装置及存储介质 | |
CN104982011B (zh) | 使用多尺度文本指纹的文档分类 | |
US9514246B2 (en) | Anchored patterns | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
US11212297B2 (en) | Access classification device, access classification method, and recording medium | |
WO2019014527A1 (en) | SYSTEM AND METHOD FOR DETECTION OF HOMOGLYPHE ATTACKS USING A SIAMOIS CONVOLUTIVE NEURAL NETWORK | |
CN113785289B (zh) | 动态生成一组api端点的系统和方法 | |
CN110785979B (zh) | 用于域名假冒检测的系统、方法和域名令牌化 | |
He et al. | Malicious domain detection via domain relationship and graph models | |
CN114050912B (zh) | 一种基于深度强化学习的恶意域名检测方法和装置 | |
CN114024701A (zh) | 域名检测方法、装置及通信系统 | |
KR101863569B1 (ko) | 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치 | |
KR101893029B1 (ko) | 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치 | |
US11647046B2 (en) | Fuzzy inclusion based impersonation detection | |
CN112583827A (zh) | 一种数据泄露检测方法及装置 | |
Yan et al. | Pontus: A linguistics-based DGA detection system | |
CN110851828A (zh) | 基于多维度特征的恶意url监测方法、装置和电子设备 | |
Upadhyay et al. | Feature extraction approach to unearth domain generating algorithms (DGAS) | |
US20230112092A1 (en) | Detecting visual similarity between dns fully qualified domain names | |
CN114338058B (zh) | 一种信息处理方法、装置和存储介质 | |
JP7140268B2 (ja) | 警告装置、制御方法、及びプログラム | |
CN117201194B (zh) | 一种基于字符串相似性计算的url分类方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220221 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |