CN107645503B - 一种基于规则的恶意域名所属dga家族的检测方法 - Google Patents

一种基于规则的恶意域名所属dga家族的检测方法 Download PDF

Info

Publication number
CN107645503B
CN107645503B CN201710855704.0A CN201710855704A CN107645503B CN 107645503 B CN107645503 B CN 107645503B CN 201710855704 A CN201710855704 A CN 201710855704A CN 107645503 B CN107645503 B CN 107645503B
Authority
CN
China
Prior art keywords
domain name
dga
algorithm
sample
rule
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
Application number
CN201710855704.0A
Other languages
English (en)
Other versions
CN107645503A (zh
Inventor
程华才
范渊
李凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dbappsecurity Technology Co Ltd
Original Assignee
Hangzhou Dbappsecurity Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dbappsecurity Technology Co Ltd filed Critical Hangzhou Dbappsecurity Technology Co Ltd
Priority to CN201710855704.0A priority Critical patent/CN107645503B/zh
Publication of CN107645503A publication Critical patent/CN107645503A/zh
Application granted granted Critical
Publication of CN107645503B publication Critical patent/CN107645503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及网络安全APT检测领域,旨在提供一种基于规则的恶意域名所属DGA家族的检测方法。该种基于规则的恶意域名所属DGA家族的检测方法,用于对恶意域名进行分析与检测,识别网络中被攻击的计算机设备所感染病毒的DGA家族。本发明通过对僵尸程序短时间里大量请求的异常域名的特征计算,将计算结果与已知的DGA算法生成的域名特征规则进行匹配,快速地识别当前网络里的某一计算机设备感染的僵尸程序相关的DGA家族类型,有利于后续的网络攻击的追踪溯源和僵尸程序的清除工作、补救措施的开展。

Description

一种基于规则的恶意域名所属DGA家族的检测方法
技术领域
本发明是关于网络安全APT(Advanced Persistent Threat,高级持续性威胁)检测领域,特别涉及一种基于规则的恶意域名所属DGA家族的检测方法。
背景技术
域名***(Domain Name System,DNS),互联网业务的重要基础设施之一,作为域名和IP地址相互映射的一个分布式数据库,使用户更加方便的连接、访问互联网,而不用去记住能够被机器直接读取的IP地址数字串。当前大多数互联网应用在开展具体的业务前,都需要利用域名***完成从域名到IP地址的寻址转换。
作为网络安全领域研究方向之一的Botnet(僵尸网络,是指采用一种或多种传播手段,将大量主机感染bot程序(僵尸程序,属于恶意程序,例如:蠕虫或者木马病毒等),从而在控制者和被感染主机之间所形成的一个可一对多控制的网络),大部分还是在利用DNS进行资源获取、进行服务器定位、接收指令等。为了提高自身的生存能力,以及达到更好的隐藏和灵活效果,延长生存时间,这些Botnet利用了一些逃避检测技术:DGA域名生成算法(Domain Generation Algorithm,通常也叫作DGA算法),常用于僵尸程序与其控制者的C&C服务器(Command&Control,命令与控制)通讯,一般是使用一个私有的随机字符串生成算法,使用日期或者其他可变参数作为随机种子(即算法的输入参数),每个周期内(例如:每天、每周、每10天等)生成一些随机字符串,然后攻击者利用其中的一部分注册为C&C服务器域名(称为恶意域名或者DGA域名),在恶意程序里面也按照同样的算法生成这些随机域名,然后恶意程序尝试发起DNS域名解析请求,当请求解析某一域名返回成功后,恶意程序会继续尝试与域名解析返回的IP地址进行通信,若通信成功,则表示恶意程序找到了控制自己的C&C服务器,进一步执行其他操作,例如:从C&C服务器接收后续任务的指令,上传已经获取的内部网络信息到C&C服务器等。
由于僵尸网络有多种(通过DGA算法生成的域名进行通信的僵尸网络也叫作DGA家族,一个DGA家族通常对应一个DGA算法,或者一组相似的DGA算法),相应地,DGA算法也有多种,例如:conficker、virut、simda、mirai等等,生成的域名的特征也就不同,但是对同一个DGA域名生成算法生成的域名,在词法方面会表现出相同或者相近的特征:SLD(SecondLevel Domain,二级域名)的长度(例如:是固定的一个长度,还是一个区间范围)、SLD取值使用的字符集(即包含哪些可能的字母字符与数字字符)、TLD(Top Level Domain,一级域名)的取值范围(例如,是一个固定的一级域名,还是多个可选的一级域名,或者是不确定的,由算法的输入参数决定)等。
在检测到网络中可能被感染蠕虫或者木马病毒后,技术人员将进行网络攻击溯源,最终识别与清除病毒以及可能与其相关的僵尸网络,采取可能的补救措施。不同的病毒,清除方法和补救措施可能不同,因此,识别网络中的计算机设备被感染的病毒的DGA家族种类在整个网络攻击追踪溯源过程中是非常重要的一步。
发明内容
本发明的主要目的在于克服现有技术中的不足,提供一种基于规则的恶意域名所属DGA家族的检测方法。为解决上述技术问题,本发明的解决方案是:提供一种基于规则的恶意域名所属DGA家族的检测方法,用于对恶意域名进行分析与检测,识别网络中被攻击的计算机设备所感染病毒的DGA家族(通过DGA算法生成的域名进行通信的僵尸网络也叫作DGA家族,一个DGA家族通常对应一个DGA算法,或者一组相似的DGA算法)的种类,所述基于规则的恶意域名所属DGA家族的检测方法包括下述步骤:
步骤一:在互联网上收集DGA算法相关的资料,以及获得由这些DGA算法生成的域名样例;
步骤二:对每个DGA算法,选取将要分析的域名集合特征,最终形成一个总的特征列表,对每一种DGA算法选择至少一个训练样本,对特征列表里的每一个特征,计算和归纳出训练样本对应的特征值,最终形成一个特征矩阵,具体包括下述子步骤:
步骤(2A):将步骤一中每一个DGA算法在一个一天或者一周等的时间段里生成的域名集合(例如,proslikefan算法每天生成的100个域名),作为一个样本,即一个域名集合作为一个样本,列出需要分析的域名特征;
需要分析的域名特征是指能将该域名集合里的域名与普通域名以及其他DGA算法生成的域名区别开来的一个或者多个特征,例如:SLD长度、SLD字符串里是否含有元音字母字符、SLD中元音字母字符占有的最小比率和最大比率、SLD中是否含有数字字符、算法在一个时间周期里生成的域名个数、TLD列表等;
步骤(2B):通过步骤(2A)获得每个样本需要分析的域名特征(即对每一个DGA算法,选择一个样本,列出样本需要分析的域名特征,假如在步骤一中,能搜集到50个DGA算法,则选择50个样本,对每一个样本都列出需要分析的域名特征),然后对这些域名特征做并集操作,最后得到一个特征列表;
例如,对DGA算法pykspa生成的域名样本,需要分析的域名特征为:
TLD列表:TLD,即Top Level Domain,表示一级域名;TLD列表表示该DGA算法生成的域名可能会采用哪些一级域名;
SLD长度范围:SLD,即Second Level Domain,表示二级域名,SLD长度范围是指该DGA算法生成的域名,二级域名部分的长度的范围是多少;
SLD字符取值范围:即二级域名可能是有哪些字母组成的;
算法生成域名的时间周期:即此算法每隔多长时间生成一个不同的域名集合,在这个时间周期内,使用该算法的恶意程序请求解析的域名均属于这个集合;
算法在生成域名的一个时间周期里生成的域名的个数:即该算法在一个生成域名的时间周期里,生成的域名个数;
SLD里含有元音字母的最小比率:即DGA算法pykspa生成的域名,至少有百分之多少的SLD里含有元音字母字符;
例如,对DGA算法qadars生成的域名样本,需要分析的域名特征为:
TLD列表;
SLD长度范围;
SLD字符取值范围;
算法生成域名的时间周期;
算法在生成域名的一个时间周期里生成的域名的个数,前面这五个特征与算法pykspa需要分析的域名特征相同;
SLD是否有字母字符与数字字符切换的情况:即二级域名里,字母字符与数字字符相互切换,例如域名:05qj09mf4d2b.com;
对这两个DGA算法生成的域名样本,需要分析的域名特征做并集操作,形成含有七个特征的特征列表:
TLD列表、SLD长度范围、SLD字符取值来源、算法生成域名的时间周期、算法在生成域名的时间周期里生成的域名的个数、SLD里含有元音字母的最小比率、SLD是否有字母字符与数字字符切换的情况;
步骤(2C):对每一个DGA算法生成的至少两个域名集合(即对每一个DGA算法选择多个样本,至少选择两个样本),划分为两部分:一部分作为训练样本,用于创建规则,设训练样本的样本个数为M;另一部分作为测试样本,用于测试规则的识别准确率;
针对M个训练样本,分别计算特征的值(参照步骤(2B)得到的特征列表里的每一个特征,或者通过样本里的域名,经过归纳得到特征的值),设步骤(2B)得到的特征列表里有N个特征,则对每一个样本计算或者归纳这N个特征的值,再加上每一个样本所归属的DGA家族类型,M个训练样本经过计算后,形成一个M行N+1列的特征矩阵;其中,M、N为大于零的自然数;
例如,假设步骤(2B)得到的特征列表如下,在具体的实施例里,特征列表可能包含几十个特征:TLD列表、SLD长度范围、SLD的字符取值来源、算法生成域名的时间周期、算法在生成域名的时间周期里生成的域名的个数、SLD里含有元音字母的最小比率、SLD是否有字母字符与数字字符切换的情况;
以下举例,根据特征列表,计算和归纳出算法pykspa和qadars的各个特征的值:
算法pykspa每天生成的域名有800个,以下举例4个:
hrxzdi.net,llwfnz.info,tknutifsxwh.com,kqcmxjplngd.org
对800个域名,经过计算和归纳,得到的特征值如下,字符‘:’左边可以看作是特征名称,右边为特征的值:
TLD列表:com,net,org,info;即该算法生成的域名,一级域名可能为这四种;
SLD长度范围:6~12;即该算法生成的域名,二级域名的长度范围为6~12;
SLD的字符取值范围:a~z;即该算法生成的域名,二级域名的字符来源是a~z,26个字母字符;
算法生成域名的时间周期:天;即该算法每天生成一个域名集合;
算法在生成域名的时间周期里生成的域名的个数:800;即该算法每天生成的域名集合里有800个域名;
SLD里含有元音字母的最小比率:70%;即该算法生成的域名,至少有70%的二级域名里含有元音字母字符;
SLD是否有字母字符与数字字符切换的情况:否;即该算法生成的域名,不存在字母字符与数字字符切换的情况;
DGA家族类型:pykspa
算法qadars每周生成的域名有1800个,以下举例4个:
7wpyj01ijol2.org,k9ijkhiz8hy7.org,jkhu7w123whu.net,1if05u3gtevs.com
对1800个域名经过计算和归纳,得到的特征值如下:
TLD列表:com,net,org;即该算法生成的域名,一级域名可能为这三种;
SLD长度范围:12;即该算法生成的域名,二级域名的长度位固定的,12位字符;
SLD的字符取值范围:a~z,0~9;即该算法生成的域名,二级域名的字符来源是a~z和0~9;
算法生成域名的时间周期:周;即该算法每周生成一个域名集合;
算法在生成域名的时间周期里生成的域名的个数:1800;即该算法每周生成的域名集合里有1800个域名;
SLD里含有元音字母的最小比率:95%;即该算法生成的域名,至少有95%的二级域名里含有元音字母字符;
SLD是否有字母字符与数字字符切换的情况:是;即该算法生成域名,存在字母字符与数字字符切换的情况;
DGA家族类型:qadars
以上的举例,可以得到一个两行(即两个DGA算法)八列(即七个特征的值加上DGA家族类型一列)的特征矩阵,该特征矩阵可以看作是样本的数据化描述;
步骤三:规则创建功能根据训练样本的特征矩阵,创建DGA家族类型分类规则;DGA家族类型分类规则是指将步骤2C的输出结果(M行N+1列的特征矩阵),经过决策树C4.5算法、K-近邻算法等机器学习算法处理,创建出的分类规则,该分类规则能将某一域名集合所属的DGA家族类型识别出来;
创建好DGA家族类型分类规则之后,将DGA家族类型分类规则保存在配置文件或者关系数据库里,由检测模块进行加载和使用;所述检测模块用于检测某一个具体的域名集合样本的DGA家族类型;
比如,将某台计算机设备在一个30分钟等的时间段内访问的多个域名看作为一个域名集合,即一个样本,计算和归纳出该样本的特征(即步骤2B最终得到的特征列表里的每一个特征)的值,将该样本的特征的值作为检测模块的输入;
所述检测模块,即为具有DGA家族类型检测功能的程序,是指可以检测某一个具体的域名集合样本的DGA家族类型的程序;对于输入的一个域名集合样本的特征的值,检测模块将依据创建好的DGA家族类型分类规则,判断出该域名集合样本的DGA家族类型,或者是其他情况;例如,是普通的正常域名,即该域名集合里的域名不是由某一个DGA算法生成,可查看步骤八的描述;
对于DGA家族类型分类规则,下文第4点提出了两种创建方式,其中说明书附图3为本发明中提出的使用决策树创建DGA家族分类规则的一个示范模型,模型里仅包含pykspa、madmax、shifu、qadars、mirai、rovnix以及murfet这7种DGA家族类型,且使用的特征仅包含SLD长度范围、TLD列表、SLD字符取值范围这3种特征;在具体实施例中,DGA家族类型会达到几十种,使用的特征也会达到10多种以上;对于输入的一个域名集合样本的特征,检测模块会根据具体的特征的值,一级一级从树根向下查找特征匹配的分支,直到找到具体的DGA家族类型,或者得到一个“未知”的结果(表示查找失败,即没有找到特征匹配的DGA家族类型,在步骤八里有相应的描述);另一种为使用配置规则的方式在下文第4点方式(3B)中有描述;
步骤四:采集模块采集DNS协议流量、HTTP协议流量,获得原始流量数据;
所述采集模块用于网络流量采集,能直接从网卡上采集数据,也能直接接收其他***发送过来的流量数据;
所述DNS协议流量是指计算机设备为了获取域名对应的IP地址,向DNS服务器发送的解析域名对应的IP地址的请求以及DNS服务器返回的域名解析结果;通过收集需要保护的计算机设备的DNS协议流量(即需要保护的计算机设备发送和接收的与域名解析相关的流量),并检测这些计算机请求解析的域名,是否为某个DGA算法生成的,来判断这些计算机设备是否被感染了病毒、木马等恶意程序,以及与恶意程序相关的DGA家族类型;
所述HTTP协议流量用于记录检测到恶意程序在请求解析恶意域名返回成功后,进一步可能请求的HTTP操作(例如,下载恶意程序自身的更新版本,上传已经搜集的敏感信息到C&C服务器),方便后续的风险检测;
步骤五:协议解析模块根据协议规范解析DNS协议流量、HTTP协议流量,还原原始网络行为信息,获得后续功能模块能够处理的流量数据,即源IP、目的IP、源端口、目的端口、请求解析的域名、域名解析的结果、请求时间、HTTP请求操作和返回信息等;
所述协议解析模块能依据协议规范,从网络流量数据里解析出通信双方的信息,包括源IP、目的IP、源端口、目的端口、请求内容和响应信息;
步骤六:协议解析模块对需要保护的计算机设备(即为本检测方法所保护的企业内部网络里的计算机设备)请求解析的域名,使用域名白名单库进行过滤,如果在域名白名单库里能够找到,则认为是正常普通的域名,不再检测该域名所属的DGA家族类型,继续处理下一个域名;如果在域名白名单库里没有找到,则需要将该域名以及请求解析该域名的计算机IP地址发送给检测模块,进入步骤七处理;
域名白名单库是指将一些常用的,明确没有威胁的、无恶意的域名保存在一个文件里或者是关系数据库里,对于计算机设备请求解析的域名,如果属于域名白名单库,则认为是正常的行为;
步骤七:检测模块根据规则检测DGA家族类型,具体包括下述子步骤:
步骤(7A):检测模块加载和使用步骤三创建好的DGA家族类型分类规则,接收步骤六发送过来的计算机(即为本检测方法所保护的企业内部网络里的计算机设备)IP和该计算机请求解析的域名,检测模块将该计算机在一段10分钟或者半个小时等的时间里请求解析的多个域名作为一个域名集合样本(如果企业内部网络里有多台计算机,则对每一台计算机在一个时间段里请求解析的多个域名分别作为一个样本,然后依次处理这些样本),结合步骤(2B)得到的特征列表,计算和归纳出该域名集合样本的特征,即在特征列表里的特征:TLD列表是什么、SLD长度范围是什么、SLD字符取值范围是什么的......;
步骤(7B):使用步骤(7A)计算得到的样本特征,去匹配检测模块已经加载的DGA家族类型分类规则;
如果匹配成功,则说明该域名集合样本里包括的域名是由与该DGA家族相关的恶意程序请求解析的,即该恶意程序请求解析域名,以达到与C&C服务器通信的目的,进一步说明该计算机(即为本检测方法所保护的企业内部网络里的计算机设备)感染了恶意程序;如果匹配失败,则继续执行步骤八;
步骤八:如果根据请求解析的域名,没有找到特征匹配的DGA家族类型,则分为下述两种情况(如何判断域名是否为正常的,或者是恶意的:可以通过搜索引擎在互联网上搜索该域名,查看该域名的注册信息、备案信息和信息变更记录,在安全网站上查询该域名,是否有与网络攻击、病毒相关的信息;也可以使用第三方安全检测工具来检测域名是否为安全的):
(1)请求解析的域名是正常的域名,则补充、更新域名白名单库;
(2)请求解析的域名为恶意域名,分为三种情形:
A、这是一种已经存在的病毒程序,但是它请求的域名特征不在已经创建的规则里;
B、这是一个已经存在的病毒程序的新的变种,或者是病毒程序对原先已经存在的DGA算法使用了不同的输入参数,导致输出的域名集合的特征变化很大;
C、这是一个全新的病毒程序,它请求解析的域名特征在在网络上还没有完整的资料。
对上面三种情形,网络安全相关的研究人员可以经过对计算机设备上感染的恶意程序进行逆向分析来确定,但没有简便的方法可以直接判断出来属于哪一种,需要经常性地关注网络安全方面的资讯或者网络安全企业的网站的更新信息,比如蠕虫、木马、僵尸网络相关的信息;如果是情形C,即出现新的病毒或者木马类型,且其使用不同于已有的DGA算法来生成恶意域名时,则需要对该种类的DGA算法重复步骤一至步骤三来处理:查找相关的算法或者病毒样本,运行算法,或者将病毒样本提交到沙箱进行模拟运行,同时采集网络流量,获取该病毒样本请求解析的域名,得到该病毒样本调用的DGA算法生成的域名集合,作为样本,选取样本特征,重新创建规则。
在本发明中,所述步骤一具体包括下述子步骤:
步骤(1A):在网络上查找某一DGA算法相关的资料,包括用来生成域名的程序代码(某一具体计算机程序设计语言的代码)、描述算法的伪代码;
若在网络上查找到该DGA算法相关的代码,则:
对于得到的用来生成域名的程序代码,运行该程序代码后,得到程序输出的域名;
对于得到的描述算法的伪代码,使用具体的计算机程序设计语言编写成能够执行的代码再运行获得输出的域名,或者根据算法的描述推测出该算法在实际执行时,输出的域名;
然后跳到步骤(1D)执行;
若在网络上没有找到该DGA算法相关的代码,则继续执行步骤(1B);
步骤(1B):查找由该DGA算法生成的域名样例,域名样例要能表现出该DGA算法生成的域名的主要特征;
若查找到该DGA算法生成的域名样例,跳到步骤(1D)执行;
若没有查找到该DGA算法生成的域名样例,则继续执行步骤(1C);
步骤(1C):从病毒检测网站或者网络安全的网站上下载到该DGA算法相关的恶意程序样本,然后将该恶意程序样本放到沙箱里运行,在运行过程中,使用网络嗅探器(例如tcpdump、wireshark等网络流量采集工具)抓取网络流量,得到该恶意程序样本在运行过程中请求解析的域名,采集得到域名样例,并通过该恶意程序样在沙箱里运行多次,得到该恶意程序样本请求解析的域名的主要特征;
沙箱,又叫作沙盘,即是一个虚拟***程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除;它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响;其为一个独立的虚拟环境,可用以测试不受信任的应用程序或上网行为;
步骤(1D):检查是否还有已知的DGA算法没有得到与其相关的域名集合样本,若有,则从步骤1A开始重复执行;直到当前所有已知的DGA算法,都已得到域名集合样本,停止循环。
在本发明中,所述步骤一中,当前典型的DGA家族类型包括但不限于这些(按字母排序,以下DGA家族类型名称信息来源于互联网):bamital、banjori、blackhole、chinad、conficker、cryptolocker、dircrypt、dyre、emotet、fobber、gameover、gspy、locky、madmax、matsnu、mirai、murofet、necurs、nymaim、proslikefan、pykspa、qadars、ramnit、ranbyus、rovnix、shifu、simda、suppobox、symmi、tempedreve、tinba、tofsee、vawtrak、vidro、virut。
在本发明中,所述步骤三中,规则创建具体包括下述两种方式:
方式(3A):选择分类算法;例如可以选择决策树C4.5算法,决策树算法:决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系,树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值;决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出;数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测,从数据产生决策树的机器学习技术叫做决策树学习,通俗说就是决策树,决策树算法又分为多个版本,ID3、C4.5、Cart等;
学习步骤(2C)中计算得到的特征矩阵,输出分类模型,该模型就是最终需要的DGA家族类型分类规则;比如决策树算法根据特征矩阵创建的决策树模型;
为了使模型(即分类规则)更加准确,能通过准备多组训练样本(即在步骤2C中准备的训练样本),进行多次训练(即由分类算法多次学习不同的训练样本),得到多个模型,然后分别利用这些模型对测试样本(即在步骤2C中准备的测试样本)进行测试,最后选择经过测试对DGA家族类型识别准确率最高的模型;
方式(3B):将步骤(2C)中得到的特征矩阵,转换为能配置的方式,即将每一个步骤(2B)最终得到的特征列表里的特征作为一个能够配置的属性,对每一种类型的DGA算法配置一个规则,即作为DGA家族类型分类规则;
例如,针对在步骤(2C)中举例的算法qadars,可以配置以下规则(以下规则中,字符‘#’表示在当前行其后面的文字为注释,字符‘:’左边的配置可以看作是特征名称,即一个可以配置的属性,字符‘:’右边为特征的值):
TLD:com,net,org#对应特征TLD列表
SLD SIZE:12#对应特征SLD长度范围
VALUE SOURCE:a~z,0~9#对应特征SLD的字符取值来源
ALPHA DIGIT SWITCH:1#对应特征SLD是否有字母字符与数字字符切换的情况,
#此处配置为1,表示有字母与数字字符切换的情况
MIN VOWEL RATIO:95#SLD里含有元音字母的最小比率
COUNT:1800/W#该类型的算法,每周生成1800个不同的域名,W:表示生成域名的时间周期为一周(week)
...:......#在实施例中,根据需要配置其他可能的特征
...:......#在实施例中,根据需要配置其他可能的特征
DGA:qadars#规则对应的DGA家族的类型
创建好规则之后,使用步骤(2C)准备的测试样本进行测试,测试已经创建的规则对实际样本进行分类的准确率;如果准确率没有达到预期设定的效果阈值,则分析原因并相应处理;根据具体原因确定是否需要重新选取特征,是否需要重新选择训练样本等;如果准确率达到预期设定的效果阈值,例如,对测试样本识别DGA家族类型的准确率达到95%,则表示规则创建成功。
在本发明中,所述步骤(7B)中的匹配方法具体如下:
如果DGA家族类型分类规则是一棵决策树,匹配规则后,如果匹配成功会得到一个输出值,这个输出值就是DGA家族的类型,否则即匹配失败;
如果DGA家族类型分类规则没有使用决策树模型,则检测模块使用样本特征,去匹配所有的规则(即使用方式(3B)配置的规则),在匹配的过程中,计算匹配程度(比如用分值来表示匹配程度),逐个淘汰特征不匹配的规则:若至少有一个规则的匹配程度超过匹配度阈值,则选择匹配程度最高的规则,即与该域名集合特征(即在步骤(7A)计算得到的样本特征)最匹配的DGA家族类型;若没有一个规则的匹配程度超过匹配度阈值,则匹配失败;这里的匹配程度,根据测试的经验,设置有一个阈值,例如,即使是匹配程度最高的规则,也要求待检测的域名集合里至少需要有90%的域名匹配该规则描述的特征。
本发明的工作原理:每一种典型的僵尸网络都有它特有的DGA算法,来生成域名,用于控制端(C&C服务器)与被感染主机上的僵尸程序进行通信,DGA算法不同,算法执行后输出的域名集合也就有各自不同的特征。僵尸程序在与控制端通信之前,通常在短时间内,大量请求解析与普通域名有明显区别的恶意域名,如果在网络的出入口,采集到某一计算机设备请求解析的(通过IP地址来标识)这些域名,将这些域名作为一个域名集合,计算其特征,然后将特征与已知DGA算法生成的域名的特征进行匹配,则该计算机设备感染的僵尸程序相关的DGA家族类型很可能就是匹配程度最高的一个,这将有利于后续的网络攻击的追踪溯源和僵尸程序的清除工作。
与现有技术相比,本发明的有益效果是:
本发明通过对僵尸程序短时间里大量请求的异常域名的特征计算,将计算结果与已知的DGA算法生成的域名特征规则进行匹配,快速地识别当前网络里的某一计算机设备感染的僵尸程序相关的DGA家族类型,有利于后续的网络攻击的追踪溯源和僵尸程序的清除工作、补救措施的开展。
附图说明
图1为本发明中创建DGA家族类型分类规则的流程图。
图2为本发明中检测可疑恶意域名所属DGA家族类型的流程图。
图3为本发明中提出的使用决策树创建的DGA家族分类规则的一个示范模型。
具体实施方式
首先需要说明的是,本发明所涉及的恶意域名所属DGA家族的检测方法,是计算机技术在信息安全技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,不存在无法理解或无法再现的可能性。前述软件功能模块包括但不限于:网络流量采集模块、网络流量协议解析模块,DGA家族类型分类规则创建模块和DGA家族类型检测模块等,其具体实现方式可以有很多种,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
本发明中使用的域名白名单库,可以使用文本文件保存,也可以使用采用MySQL、Oracle等关系型数据库管理***(RDBMS)保存。
本发明中创建好的DGA家族类型分类规则可以使用文本文件保存,也可以使用采用MySQL、Oracle等关系型数据库管理***保存。
本发明中所述的决策树C4.5分类算法,是一种可选的分类算法,具体实施时,如果使用分类算法来创建规则,可以根据实际情况,选择其他分类算法。
协议解析的结果(原始网络行为信息,源IP地址、源端口、目的IP地址、目的端口、请求解析的域名名称和请求时间、域名解析结果、HTTP请求操作、请求时间和返回信息等),以及恶意域名所属DGA家族类型等信息,可以采用MySQL、Oracle等关系型数据库管理***保存,也可以使用基于NoSQL的分布式计算框架的非关系型数据库来保存。
下面结合附图与具体实施方式对本发明作进一步详细描述:
如图1、图2所示的一种基于规则的恶意域名所属DGA家族检测方法,用于快速地检测出网络里的某一计算机设备感染的僵尸程序相关的DGA家族类型,有利于后续的网络攻击的追踪溯源和僵尸程序的清除工作、补救措施的开展。检测方法具体包括下述步骤:
步骤一:在互联网上搜集一些DGA算法相关的资料:
(1)在网络上查找DGA算法相关的资料,以及获得由这些DGA算法生成的域名样例。
(2)运行第(1)步得到的程序代码(如果需要,添加输入参数),运行程序后得到程序输出的域名。如果第(1)步得到的是算法的伪代码,则需要使用具体的计算机程序设计语言来编写实现可以执行的代码。或者根据算法的描述推测出该算法在实际执行时,输出的域名。
(3)如果没有找到DGA算法相关的代码,则需要查找由该DGA算法生成的域名样例(样例需要尽可能的可以表现出该DGA算法生成的域名的主要特征)。
(4)如果第(2)和第(3)步没有得到该DGA算法生成的域名样例。则需要尝试从病毒检测网站或者网络安全的网站上下载到该DGA算法相关的恶意程序样本,然后将该恶意程序样本放到沙箱里运行,在运行过程中,使用网络嗅探器(例如tcpdump、wireshark等网络流量采集工具)抓取网络流量,得到该样本在运行过程中可能请求解析的域名。因为DGA算法在不同的日期生成的域名可能不同,如果在沙箱里运行一次,采集到的域名样例很少,则需要将该样本在沙箱里运行多次,以反映出该恶意程序样本请求解析的域名的主要特征。
(5)重复以上步骤,得到包括但不限于以下DGA家族类型的域名样例(按字母排序,以下DGA家族类型名称信息来源于互联网):bamital,banjori,blackhole,chinad,conficker,cryptolocker,dircrypt,dyre,emotet,fobber,gameover,gspy,locky,madmax,matsnu,mirai,murofet,necurs,nymaim,proslikefan,pykspa,qadars,ramnit,ranbyus,rovnix,shifu,simda,suppobox,symmi,tempedreve,tinba,tofsee,vawtrak,vidro,virut.
步骤二:选取将要分析的域名集合特征:
(6)对第(5)步每一个DGA算法生成的域名集合(例如,proslikefan算法每天生成的100个域名),作为一个样本(即一个域名集合作为一个样本),列出可能需要分析的域名集合特征,即由这些特征可以将该样本集合里的域名与普通域名以及其他DGA算法生成的域名区别开来,可以包括但不限于以下特征:
SLD长度取值范围;例如:是一个固定长度,或者是多个可能的固定长度,或者是一个区间范围;
SLD字符串里的字符取值范围;例如,是26个字母,或者某几个固定的字母字符地随意顺序组合且包含数字字符‘0’~‘9’中的任意一个,或者只包含16进制字符‘0’~‘9’和‘a'~‘f’;
SLD中是否包括元音字母字符;
SLD中元音字母字符占有的最小比率和最大比率;
SLD中是否包含数字字符;
SLD中数字字符占有的最小比率和最大比率;
SLD中是否有公共字符串;如果有,公共字符串的值是否是确定不变的,还是由算法的输入参数来确定,公共字符串在SLD中的位置是否是固定的;
SLD中是否存在字母字符和数字字符频繁切换的情况;如果有,最小切换次数和最大切换次数各是多少,或者切换次数与SLD长度的比值,最小值和最大值各是多少;
样本集合里至少含有一个元音字母的SLD的个数与样本里总的域名个数最小的比例是多少;
TLD的取值;是一个固定的取值,或者是从几个固定的TLD中随机选择一个,或者是不确定的,由算法的输入参数来确定;
算法在一个时间周期里生成的域名个数;
算法生成域名的时间周期。
(7)重复第(6)步,对每个DGA算法列出的一个到多个特征做集合并集操作,最终形成一个特征列表。
(8)使用第(7)步得到的特征列表对每一个DGA算法生成的多个域名集合(即对每一个DGA算法选择多个样本,至少选择两个样本),划分为两部分,一部分作为训练样本,用于创建规则,另一部分作为测试样本,用于测试规则的识别准确率。参照步骤(2B)最后得到的特征列表里的每一个特征,针对训练样本计算或者归纳出特征的值,假如特征列表里有N个特征,则对每一个域名集合计算或者归纳这N个特征的值。加上每一个域名集合所归属的DGA家族类型,M个训练样本经过计算后,形成M行N+1列的特征矩阵。
步骤三:规则创建功能根据训练样本的特征矩阵创建DGA家族类型分类规则:
(9)选择分类算法,例如可以选择决策树C4.5算法,学习第(8)步计算得到的特征数据,决策树算法根据特征数据创建的决策树模型,就是最终需要的DGA家族类型分类规则。为了使模型更加准确,可以多准备一些样本,进行多次训练和测试。最后选择经过测试识别准确率最高的规则。
如果没有采用决策树之类的分类算法,则也可以将第(8)步得到的特征矩阵,转换为可以配置的方式。将每一个特征作为一个可以配置的属性,对每一种类型的DGA算法配置一个规则。这种创建规则的方式,同样需要使用测试样本对创建后的规则进行准确性测试,对部分属性的阈值进行调整,在具体实施中,可以使用类似下面的语法来描述规则(以下规则中,字符‘#’表示在当前行其后面的文字为注释,字符‘:’左边的配置可以看作是特征名称,即一个可以配置的属性,字符‘:’右边为特征的值):
DGA:bamital#DGA家族的类型
TLD:co.cc,cz.cc,info,org#TLD的取值范围,该算法输出的域名的TLD的取值为这四种TLD当中的一个
SLD SIZE:32#域名SLD部分的长度是固定的,为32个字符
COUNT:104/D#该类型的算法,每天生成104个不同的域名,D:表示生成域名的时间周期为一天
ALPHA DIGIT SWITCH:1#SLD里,字母和数字字符是频繁切换的
VALUE SOURCE:HASH#SLD的取值里带有hash字符(即字符‘0’~‘9’以及‘a’~‘f’)
HASH POS:0#SLD里hash字符串的开始位置,0:表示从SLD的第一个字符开始
HASH LENGTH:32#SLD里hash字符串的长度
......#在实施例中,根据需要配置其他可能的特征
......#在实施例中,根据需要配置其他可能的特征
EXP:51bdc61022f0108b7053c5518ae87761.cz.cc,b7422ac536814a6bc6af0cf574e5d60d.info,00c58006323de055d35ef57ff97f8036.co.cc,9bbf4817211f069df3befe28af3e0ebf.org#域名样例
创建好规则之后,将规则保存在配置文件里或者是关系数据库里,由检测模块进行加载和使用。
(10)创建好规则之后,使用第(8)步准备的测试样本进行测试,以测试已经创建的规则对实际样本进行分类的准确率。如果准确率没有达到预期的效果,则要分析原因,根据具体原因确定是否需要重新选取特征,是否需要重新选择训练样本等。如果准确率达到预期的效果,例如,对测试样本识别DGA家族类型的准确率达到95%,则表示规则创建成功。
步骤四:采集模块采集DNS协议、HTTP协议流量,获得原始流量数据。
DNS流量用于收集本检测方法所保护的计算机设备发送和接收的与域名解析相关的流量,通过检测这些计算机请求解析的域名,是否为某个DGA算法生成的,来判断这些计算机设备是否被感染了恶意程序(即病毒、木马),以及与恶意程序相关的DGA家族类型,HTTP流量用于记录检测到恶意程序在请求解析恶意域名返回成功后,进一步可能请求的HTTP操作(例如,下载恶意程序自身的更新版本,上传已经搜集的敏感信息到C&C服务器),有利于后续的风险检测。
步骤五:协议解析模块根据协议规范解析DNS协议流量、HTTP协议流量,生成原始网络行为信息,获得后续功能模块可以处理的流量数据,即源IP、目的IP、源端口、目的端口、请求解析的域名、域名解析的结果、请求时间、HTTP请求操作和返回信息等。
步骤六:协议解析模块对企业内部计算机设备请求解析的域名,使用域名白名单库进行过滤,即企业内部计算机设备请求解析的域名,如果在域名白名单库里可以找到,则认为是正常普通的域名,不再检测其所属的DGA家族类型。
步骤七:检测模块根据规则检测DGA家族类型:
(11)经过步骤三,规则创建好之后,由检测模块进行加载和使用。当检测模块检测到实际流量中某一计算机频繁请求解析可疑的域名时,检测程序将该计算机在10分钟或者半个小时等的一段时间里,请求解析的这些域名作为一个样本,结合第(7)步得到的特征列表,计算该样本的特征。
(12)使用第(11)步计算得到的样本特征,去匹配已经加载的规则。
如果分类规则是一棵决策树,匹配规则后,会得到一个输出值,这个输出值就是DGA家族的类型。或者匹配失败,进入步骤八。
如果分类规则没有使用决策树模型,则检测程序可以使用样本特征,去匹配所有的规则,在匹配的过程中,计算匹配程度,比如用分值来表示匹配程度,逐个淘汰特征不匹配的规则,最终选择匹配程度最高的规则,即与该域名集合特征最匹配的DGA家族类型。这里说的匹配程度,可以根据测试的经验,设置一个阈值,例如,即使是匹配程度最高的规则,也要求待检测的域名集合里至少需要有90%的域名匹配该规则描述的特征。
步骤八:没有检测到DGA家族类型情况的处理。
如果根据请求解析的域名,没有找到特征匹配的DGA家族类型,则可能是下面两种情况:
(13)请求解析的域名是正常的域名,则需要补充、更新域名白名单库。
(14)请求解析的域名为恶意域名,分为三种情况:
A.这是一种已经存在的病毒程序,但是它请求的域名特征不在已经创建的规则里。
B.这是一个已经存在的病毒程序的新的变种,或者是病毒程序对原先已经存在的DGA算法使用了不同的输入参数,导致输出的域名集合的特征变化很大。
C.这是一个全新的病毒程序,它请求解析的域名特征在在网络上还没有完整的资料。
对上面三种情况,需要经常性的关注网络安全方面的资讯或者网络安全企业的网站的更新信息(蠕虫、木马、僵尸网络相关的信息)。如果出现新的病毒或者木马类型,且其使用不同于已有的DGA算法来生成恶意域名时,则需要对该种类的DGA算法按照上述的(1)~(10)步骤来处理:查找相关的算法或者病毒样本,运行算法,或者将病毒样本提交到沙箱进行模拟运行(同时采集网络流量,获取该病毒样本请求解析的域名),得到该病毒样本调用的DGA算法生成的域名集合,作为样本,选取样本特征,重新创建规则。
在上述检测方式中,所述步骤一到步骤三,需要数据分析人员的参与:样本(域名集合)相关资料的收集、获取样本、特征选取、使用训练样本训练、使用测试样本进行测试。所述步骤一和步骤八,需要从事网络安全研究的人员参与,涉及到对网络攻击追踪溯源,分析恶意程序样本的工作。
基于上述检测恶意域名所属DGA家族类型方法的功能可以部署成某种网络安全检测***的一个功能模块或者子***,例如APT入侵检测***,通常部署在企业网络的进出口,监控与分析整个企业的网络流量。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。

Claims (5)

1.一种基于规则的恶意域名所属DGA家族的检测方法,用于对恶意域名进行分析与检测,识别网络中被攻击的计算机设备所感染病毒的DGA家族的种类,其特征在于,所述基于规则的恶意域名所属DGA家族的检测方法包括下述步骤:
步骤一:在互联网上收集DGA算法相关的资料,以及获得由这些DGA算法生成的域名样例;
步骤二:对每个DGA算法,选取将要分析的域名集合特征,最终形成一个总的特征列表,对每一种DGA算法选择至少一个训练样本,对特征列表里的每一个特征,计算和归纳出训练样本对应的特征值,最终形成一个特征矩阵,具体包括下述子步骤:
步骤(2A):将步骤一中每一个DGA算法在一个时间段里生成的域名集合,作为一个样本,列出需要分析的域名特征;
步骤(2B):通过步骤(2A)获得每个样本需要分析的域名特征,然后对这些域名特征做并集操作,最后得到一个特征列表;
步骤(2C):对每一个DGA算法生成的至少两个域名集合,划分为两部分:一部分作为训练样本,设训练样本的样本个数为M;另一部分作为测试样本;
针对M个训练样本,分别计算特征的值,设步骤(2B)得到的特征列表里有N个特征,则对每一个样本计算这N个特征的值,再加上每一个样本所归属的DGA家族类型,M个训练样本经过计算后,形成一个M行N+1列的特征矩阵;其中,M、N为大于零的自然数;
步骤三:规则创建功能根据训练样本的特征矩阵,创建DGA家族类型分类规则;
创建好DGA家族类型分类规则之后,将DGA家族类型分类规则保存在配置文件或者关系数据库里,由检测模块进行加载和使用;所述检测模块用于检测某一个具体的域名集合样本的DGA家族类型;
所述检测模块,即为具有DGA家族类型检测功能的程序,是指可以检测某一个具体的域名集合样本的DGA家族类型的程序;对于输入的一个域名集合样本的特征的值,检测模块将依据创建好的DGA家族类型分类规则,判断出该域名集合样本的DGA家族类型,或者是其他情况;所述其他情况是指请求解析的域名没有找到特征匹配的DGA家族类型,该域名是正常的域名或恶意域名;
步骤四:采集模块采集DNS协议流量、HTTP协议流量,获得原始流量数据;
所述采集模块用于网络流量采集,能直接从网卡上采集数据,也能直接接收其他***发送过来的流量数据;
所述DNS协议流量是指计算机设备为了获取域名对应的IP地址,向DNS服务器发送的解析域名对应的IP地址的请求以及DNS服务器返回的域名解析结果;通过收集需要保护的计算机设备的DNS协议流量,并检测这些计算机请求解析的域名,是否为某个DGA算法生成的,来判断这些计算机设备是否被感染了恶意程序,以及与恶意程序相关的DGA家族类型;
所述HTTP协议流量用于记录检测到恶意程序在请求解析恶意域名返回成功后,进一步可能请求的HTTP操作,方便后续的风险检测;
步骤五:协议解析模块根据协议规范解析DNS协议流量、HTTP协议流量,还原原始网络行为信息,获得后续功能模块能够处理的流量数据;
所述协议解析模块能依据协议规范,从网络流量数据里解析出通信双方的信息,包括源IP、目的IP、源端口、目的端口、请求内容和响应信息;
步骤六:协议解析模块对需要保护的计算机设备请求解析的域名,使用域名白名单库进行过滤,如果在域名白名单库里能够找到,则认为是正常普通的域名,不再检测该域名所属的DGA家族类型,继续处理下一个域名;如果在域名白名单库里没有找到,则需要将该域名以及请求解析该域名的计算机IP地址发送给检测模块,进入步骤七处理;
步骤七:检测模块根据规则检测DGA家族类型,具体包括下述子步骤:
步骤(7A):检测模块加载和使用步骤三创建好的DGA家族类型分类规则,接收步骤六发送过来的计算机IP和该计算机请求解析的域名,检测模块将该计算机在一段时间里请求解析的多个域名作为一个域名集合样本,结合步骤(2B)得到的特征列表,计算和归纳出该域名集合样本的特征;用于形成域名集合样本的所述一段时间,根据网络内部的情况和需求进行预先确定;
步骤(7B):使用步骤(7A)计算得到的样本特征,去匹配检测模块已经加载的DGA家族类型分类规则;
如果匹配成功,则说明该域名集合样本里包括的域名是由与该DGA家族相关的恶意程序请求解析的,进一步说明该计算机感染了恶意程序;如果匹配失败,则继续执行步骤八;
步骤八:如果根据请求解析的域名,没有找到特征匹配的DGA家族类型,则分为下述两种情况:
(1)请求解析的域名是正常的域名,则补充、更新域名白名单库;
(2)请求解析的域名为恶意域名,分为三种情形:
A、这是一种已经存在的病毒程序,但是它请求的域名特征不在已经创建的规则里;
B、这是一个已经存在的病毒程序的新的变种,或者是病毒程序对原先已经存在的DGA算法使用了不同的输入参数,导致输出的域名集合的特征变化很大;
C、这是一个全新的病毒程序,它请求解析的域名特征在在网络上还没有完整的资料。
2.根据权利要求1所述的一种基于规则的恶意域名所属DGA家族的检测方法,其特征在于,所述步骤一具体包括下述子步骤:
步骤(1A):在网络上查找某一DGA算法相关的资料,包括用来生成域名的程序代码、描述算法的伪代码;
若在网络上查找到该DGA算法相关的代码,则:
对于得到的用来生成域名的程序代码,运行该程序代码后,得到程序输出的域名;
对于得到的描述算法的伪代码,使用具体的计算机程序设计语言编写成能够执行的代码再运行获得输出的域名,或者根据算法的描述推测出该算法在实际执行时,输出的域名;
然后跳到步骤(1D)执行;
若在网络上没有找到该DGA算法相关的代码,则继续执行步骤(1B);
步骤(1B):查找由该DGA算法生成的域名样例;
若查找到该DGA算法生成的域名样例,跳到步骤(1D)执行;
若没有查找到该DGA算法生成的域名样例,则继续执行步骤(1C);
步骤(1C):从病毒检测网站或者网络安全的网站上下载到该DGA算法相关的恶意程序样本,然后将该恶意程序样本放到沙箱里运行,在运行过程中,使用网络嗅探器抓取网络流量,得到该恶意程序样本在运行过程中请求解析的域名,采集得到域名样例,并通过该恶意程序样在沙箱里运行多次,得到该恶意程序样本请求解析的域名的主要特征;
步骤(1D):检查是否还有已知的DGA算法没有得到与其相关的域名集合样本,若有,则从步骤1A开始重复执行;直到当前所有已知的DGA算法,都已得到域名集合样本,停止循环。
3.根据权利要求1所述的一种基于规则的恶意域名所属DGA家族的检测方法,其特征在于,所述步骤一中,当前典型的DGA家族类型包括:bamital、banjori、blackhole、chinad、conficker、cryptolocker、dircrypt、dyre、emotet、fobber、gameover、gspy、locky、madmax、matsnu、mirai、murofet、necurs、nymaim、proslikefan、pykspa、qadars、ramnit、ranbyus、rovnix、shifu、simda、suppobox、symmi、tempedreve、tinba、tofsee、vawtrak、vidro、virut。
4.根据权利要求1所述的一种基于规则的恶意域名所属DGA家族的检测方法,其特征在于,所述步骤三中,规则创建具体包括下述两种方式:
方式(3A):选择分类算法,学习步骤(2C)中计算得到的特征矩阵,输出分类模型,该模型就是最终需要的DGA家族类型分类规则;
为了使模型更加准确,能通过准备多组训练样本,进行多次训练,得到多个模型,然后分别利用这些模型对测试样本进行测试,最后选择经过测试对DGA家族类型识别准确率最高的模型;
方式(3B):将步骤(2C)中得到的特征矩阵,转换为能配置的方式,即将每一个步骤(2B)最终得到的特征列表里的特征作为一个能够配置的属性,对每一种类型的DGA算法配置一个规则,即作为DGA家族类型分类规则;
创建好规则之后,使用步骤(2C)准备的测试样本进行测试,测试已经创建的规则对实际样本进行分类的准确率;如果准确率没有达到预期设定的效果阈值,则分析原因并相应处理;如果准确率达到预期设定的效果阈值,则表示规则创建成功。
5.根据权利要求1所述的一种基于规则的恶意域名所属DGA家族的检测方法,其特征在于,所述步骤(7B)中的匹配方法具体如下:
如果DGA家族类型分类规则是一棵决策树,匹配规则后,如果匹配成功会得到一个输出值,这个输出值就是DGA家族的类型,否则即匹配失败;
如果DGA家族类型分类规则没有使用决策树模型,则检测模块使用样本特征,去匹配所有的规则,在匹配的过程中,计算匹配程度,逐个淘汰特征不匹配的规则:若至少有一个规则的匹配程度超过匹配度阈值,则选择匹配程度最高的规则,即与该域名集合特征最匹配的DGA家族类型;若没有一个规则的匹配程度超过匹配度阈值,则匹配失败。
CN201710855704.0A 2017-09-20 2017-09-20 一种基于规则的恶意域名所属dga家族的检测方法 Active CN107645503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710855704.0A CN107645503B (zh) 2017-09-20 2017-09-20 一种基于规则的恶意域名所属dga家族的检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710855704.0A CN107645503B (zh) 2017-09-20 2017-09-20 一种基于规则的恶意域名所属dga家族的检测方法

Publications (2)

Publication Number Publication Date
CN107645503A CN107645503A (zh) 2018-01-30
CN107645503B true CN107645503B (zh) 2020-01-24

Family

ID=61112668

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710855704.0A Active CN107645503B (zh) 2017-09-20 2017-09-20 一种基于规则的恶意域名所属dga家族的检测方法

Country Status (1)

Country Link
CN (1) CN107645503B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600200B (zh) * 2018-04-08 2021-06-11 腾讯科技(深圳)有限公司 域名检测方法、装置、计算机设备及存储介质
CN110602020A (zh) * 2018-06-12 2019-12-20 蓝盾信息安全技术有限公司 一种基于dga域名和周期性网络连接会话行为的僵尸网络检测技术
CN108848102B (zh) * 2018-07-02 2021-04-13 北京网藤科技有限公司 一种apt攻击预警***及其预警方法
CN109120733B (zh) * 2018-07-20 2021-06-01 杭州安恒信息技术股份有限公司 一种利用dns进行通信的检测方法
CN109246083B (zh) * 2018-08-09 2021-08-03 奇安信科技集团股份有限公司 一种dga域名的检测方法及装置
US10764246B2 (en) * 2018-08-14 2020-09-01 Didi Research America, Llc System and method for detecting generated domain
CN109784049B (zh) * 2018-12-21 2021-04-09 奇安信科技集团股份有限公司 威胁数据处理的方法、设备、***和介质
CN110535820A (zh) * 2019-04-18 2019-12-03 国家计算机网络与信息安全管理中心 针对恶意域名的分类方法、装置、电子设备及介质
CN110730175B (zh) * 2019-10-16 2022-12-06 杭州安恒信息技术股份有限公司 一种基于威胁情报的僵尸网络检测方法及检测***
CN111125700B (zh) * 2019-12-11 2023-02-07 中山大学 一种基于主机关联性的dga家族分类方法
CN111147459B (zh) * 2019-12-12 2021-11-30 北京网思科平科技有限公司 一种基于dns请求数据的c&c域名检测方法及装置
CN113259303B (zh) * 2020-02-12 2023-01-20 网宿科技股份有限公司 一种基于机器学习技术的白名单自学习方法和装置
CN111327632B (zh) * 2020-03-06 2022-08-09 深信服科技股份有限公司 一种僵尸主机检测方法、***、设备及存储介质
US11645566B2 (en) * 2020-03-09 2023-05-09 International Business Machines Corporation Methods and systems for graph computing with hybrid reasoning
CN111800404B (zh) * 2020-06-29 2023-03-24 深信服科技股份有限公司 一种对恶意域名的识别方法、装置以及存储介质
CN111935097B (zh) * 2020-07-16 2022-07-19 上海斗象信息科技有限公司 一种检测dga域名的方法
US11743272B2 (en) * 2020-08-10 2023-08-29 International Business Machines Corporation Low-latency identification of network-device properties
CN112543238B (zh) * 2020-12-08 2022-06-14 光通天下网络科技股份有限公司 域名过白名单优化方法、装置、设备及介质
CN113238934B (zh) * 2021-04-30 2024-04-05 西南电子技术研究所(中国电子科技集团公司第十研究所) 自动判定测试***采集数据结果的方法
CN113612727B (zh) * 2021-06-24 2023-04-18 北京华云安信息技术有限公司 攻击ip识别方法、装置、设备和计算机可读存储介质
CN113746952B (zh) * 2021-09-14 2024-04-16 京东科技信息技术有限公司 Dga域名检测方法、装置、电子设备及计算机存储介质
CN114826679B (zh) * 2022-03-30 2023-03-24 西安电子科技大学 面向物联网设备的分布式dga域名检测方法及***

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523311A (zh) * 2011-11-25 2012-06-27 中国科学院计算机网络信息中心 非法域名识别方法及装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN105024969A (zh) * 2014-04-17 2015-11-04 北京启明星辰信息安全技术有限公司 一种实现恶意域名识别的方法及装置
CN105072214A (zh) * 2015-08-28 2015-11-18 携程计算机技术(上海)有限公司 基于域名特征的c&c域名识别方法
CN105262722A (zh) * 2015-09-07 2016-01-20 深信服网络科技(深圳)有限公司 终端恶意流量规则更新方法、云端服务器和安全网关
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
CN105610830A (zh) * 2015-12-30 2016-05-25 山石网科通信技术有限公司 域名的检测方法及装置
CN106230867A (zh) * 2016-09-29 2016-12-14 北京知道创宇信息技术有限公司 预测域名是否恶意的方法、***及其模型训练方法、***
CN106713312A (zh) * 2016-12-21 2017-05-24 深圳市深信服电子科技有限公司 检测非法域名的方法及装置
CN106992969A (zh) * 2017-03-03 2017-07-28 南京理工大学 基于域名字符串统计特征的dga生成域名的检测方法
CN107070897A (zh) * 2017-03-16 2017-08-18 杭州安恒信息技术有限公司 入侵检测***中基于多属性哈希去重的网络日志存储方法
CN107612911A (zh) * 2017-09-20 2018-01-19 杭州安恒信息技术有限公司 基于dns流量检测受感染主机和c&c服务器的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079846B2 (en) * 2015-06-04 2018-09-18 Cisco Technology, Inc. Domain name system (DNS) based anomaly detection

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523311A (zh) * 2011-11-25 2012-06-27 中国科学院计算机网络信息中心 非法域名识别方法及装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN105024969A (zh) * 2014-04-17 2015-11-04 北京启明星辰信息安全技术有限公司 一种实现恶意域名识别的方法及装置
CN105072214A (zh) * 2015-08-28 2015-11-18 携程计算机技术(上海)有限公司 基于域名特征的c&c域名识别方法
CN105262722A (zh) * 2015-09-07 2016-01-20 深信服网络科技(深圳)有限公司 终端恶意流量规则更新方法、云端服务器和安全网关
CN105577660A (zh) * 2015-12-22 2016-05-11 国家电网公司 基于随机森林的dga域名检测方法
CN105610830A (zh) * 2015-12-30 2016-05-25 山石网科通信技术有限公司 域名的检测方法及装置
CN106230867A (zh) * 2016-09-29 2016-12-14 北京知道创宇信息技术有限公司 预测域名是否恶意的方法、***及其模型训练方法、***
CN106713312A (zh) * 2016-12-21 2017-05-24 深圳市深信服电子科技有限公司 检测非法域名的方法及装置
CN106992969A (zh) * 2017-03-03 2017-07-28 南京理工大学 基于域名字符串统计特征的dga生成域名的检测方法
CN107070897A (zh) * 2017-03-16 2017-08-18 杭州安恒信息技术有限公司 入侵检测***中基于多属性哈希去重的网络日志存储方法
CN107612911A (zh) * 2017-09-20 2018-01-19 杭州安恒信息技术有限公司 基于dns流量检测受感染主机和c&c服务器的方法

Also Published As

Publication number Publication date
CN107645503A (zh) 2018-01-30

Similar Documents

Publication Publication Date Title
CN107645503B (zh) 一种基于规则的恶意域名所属dga家族的检测方法
Shibahara et al. Efficient dynamic malware analysis based on network behavior using deep learning
US10178107B2 (en) Detection of malicious domains using recurring patterns in domain names
Van Ede et al. Deepcase: Semi-supervised contextual analysis of security events
CN103679031B (zh) 一种文件病毒免疫的方法和装置
JP6397932B2 (ja) エンドポイントからのネットワークリクエストに言語分析を適用するマルウェアに感染しているマシンを識別するためのシステム
CN112866023B (zh) 网络检测、模型训练方法、装置、设备及存储介质
Kyaw et al. Dictionary attack on Wordpress: Security and forensic analysis
CN110431817A (zh) 识别恶意网络设备
US11544575B2 (en) Machine-learning based approach for malware sample clustering
CN112492059A (zh) Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质
KR101859562B1 (ko) 취약점 정보 분석 방법 및 장치
CN106713335B (zh) 恶意软件的识别方法及装置
KR102362516B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
CN113886829B (zh) 一种失陷主机检测方法、装置、电子设备及存储介质
US20200372085A1 (en) Classification apparatus, classification method, and classification program
US20240054210A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
EP3722974B1 (en) Collecting apparatus, collection method, and collection program
US20230048076A1 (en) Cyber threat information processing apparatus, cyber threat information processing method, and storage medium storing cyber threat information processing program
KR102411383B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
KR101863569B1 (ko) 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치
TWI667587B (zh) 資訊安全防護方法
Lee et al. DGA-based malware detection using DNS traffic analysis
KR101893029B1 (ko) 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치
Hughes et al. Performance measures of behavior-based signatures: an anti-malware solution for platforms with limited computing resource

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
CB02 Change of applicant information

Address after: 310051 No. 188 Lianhui Street, Xixing Street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Annan information technology Limited by Share Ltd

Address before: Zhejiang Zhongcai Building No. 68 Binjiang District road Hangzhou City, Zhejiang Province, the 310051 and 15 layer

Applicant before: Dbappsecurity Co.,ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant