2. 江苏省计算机网络重点实验室, 江苏 南京 210096
2. Jiangsu Provincial Key Laboratory of Computer Network Technology, Nanjing 210096, China
DNS作为互联网的重要基础设施,承载着域名与IP地址间相互映射的重任,网络中各种应用活动都与其密切相关,如电子邮件、网站服务、及时通信、微博等.与此同时,域名解析服务也成为各类互联网安全威胁的重要工具,如僵尸网络在其扩散与通信中使用DNS技术定位C&C(命令控制服务器),网络钓鱼和恶意代码下载等通过频繁变更域名对应的IP地址或NS记录隐匿背后真实的服务器.
目前,检测僵尸网络、钓鱼网站和恶意软件下载等恶意服务最主要的手段还是基于黑名单.但是黑名单在维护和更新上存在开销大和及时性差的缺陷,且攻击者常常使用算法自动生成大量的随机域名来躲避检测.如Conficker[1,2]/Kraken[3]/Torpig[4]等新型僵尸网络,为增强其C&C的可靠性和存活性,使用Domain-Fluxing技术.僵尸通过DGA(域名生成算法)随机产生大量域名,只要其中一个域名能够被解析,就可以与C&C进行通信;此外,垃圾邮件发送者也会在其垃圾邮件中随机生成域名来避免黑名单过滤.
为了弥补黑名单方法的不足,基于DNS活动特征的实时检测方法得到了广泛地研究.该类算法需要对网络中的DNS交互报文进行实时或准实时的DPI检测,通过挖掘恶意域名有别于合法域名的活动特征以发现恶意服务.相关工作有:Chatzis等人依据邮件蠕虫感染主机的DNS MX流量行为在传播地址和流量特征方面具有高度相似性这一稳定特征提出了一系列的邮件蠕虫检测方法[5-8];Caglayan根据域名对应的IP地址频繁变更这一基本特征,选取TTL值、A记录数目及其离散程度三方面测度检测Fast-Flux服务网络[9];Choi等人观测域名查询请求者的群体活动特性(即,大量僵尸主机在很短的时间间隔内集中访问某个域名),实现对僵尸网络及其域名的检测[10-12];Antonakakis在2011年基于从顶级域名服务器获取的DNS交互报文,通过统计域名查询请求者的离散程度以及解析IP地址的信誉值,检测恶意域名[13];2012年,又基于同一个僵尸网络的僵尸主机会产生相似的NXDomain流量(失效的DNS查询请求),通过观察域名的字符组成及其查询请求者的相似性来聚类和检测僵尸网络使用的域名[14];Bilge通过统计域名查询请求的时间分布、域名映射IP地址的空间分布、TTL时间长短以及域名字面特征,发现恶意域名[15].
但是,网络中实际使用的域名数量巨大.通过监测流经JSERNET(中国教育科研网江苏省网)边界的DNS交互报文,两个月(2013年10月16日~12月15日)共观察到1 400万个不重复域名,且平均每天新增域名20万个.面对如此庞大的域名集合,若对所有域名使用DPI技术进行实时流量监测,则开销过大.一个合理的解决思路是:设计轻量级的检测算法来快速锁定监测目标,以便有针对性地使用更为复杂和更为准确的检测算法.轻量级算法需要在有限的系统资源和计算时间内,尽可能多地检测出可疑域名,因此,算法设计优先考虑空间开销和计算复杂度,而检测精度可以由更为复杂和更为准确的后续算法去保证.
域名自身字符串包含丰富的词法特征,无论从空间开销、计算复杂度,还是从检测方法的时效性以及数据获取的难易程度看,都适合作为轻量级算法的检测依据.现有的域名字面分析技术,主要是通过机器学习方法统计字符串的词法特征(如字符串长度、字母数目、数字数目以及n元组频率分布等).相关工作可以追溯到Ma等人通过统计URL长度、主机名长度、点的数目以及相应的主机特征,检测钓鱼网站和邮件广告使用的恶意URL[16, 17];Prakash设计实现的PhishNet,为了提高URL黑名单对钓鱼网站的检测效率,一方面通过构造新的恶意URL来扩展黑名单,另一方面,将精确匹配改成近似匹配以提高匹配度[18];其中最具代表性的工作是Yadav等人基于算法生成的域名不会使用可读性的语言文字,从而显现出不同于合法域名的字频分布特征这一观测发现,按照是否拥有相同的二层域名或解析IP地址分组域名,统计每组域名所含二元组(即连续的两个字母或者数字)的频率分布特征,然后借助KL等距离测度检测算法自动生成的域名[19-20].此外,Khaitan和Srinivasan等人引入自然语言模型研究面向域名的word切割方法[21-22];Marchal基于黑名单中已有的钓鱼域名,借助word切割技术提取和重组域名中的关键字,预测可能出现的新钓鱼域名[23];Schiavoni扩展语言学特征(域名所含单词的字符比重以及所含n元组在字典中的总出现频率)识别算法自动生成的域名,再结合解析IP地址集合间的相似性聚类域名,分离僵尸网络域名组,研究僵尸网络的演变行为[24].对于上述提及的两类域名字面分析方法,基于词法特征统计的机器学习方法虽然具有较小的空间开销和计算复杂度,但是攻击者在生成域名时很容易通过事先相应的特征统计逃避检测;而借助自然语言领域的word切割技术从语义层面统计单词特征,可以缓解这种逃逸策略,提高检测的准确率,但是需要依赖庞大的语料库(牛津字典和维基百科字典共有52万个词头,且一个单词还可能拥有多种时态和复数形式),具有较高的空间开销和计算复杂度,不满足轻量级算法要求.此外,在进行语义分析时也没有考虑中文拼音形式的域名.
为此,本文考虑单词内在组成结构,选取构词学中最小的有意义的语言单位“词素”[25]作为统计域名语言学特征的基本单元.收集Alex中连续3次排名前1万的域名[26]以及僵尸网络[1-4, 27-30]、钓鱼网站[31]、垃圾邮件[32]和恶意软件[29-30]使用过的域名,引入自然语言领域中的word切割技术,以词素作为字符串切分的最小单元,变长切分域名.在此基础上,以二层域名标签作为对象,统计其所有三层域名标签中含有词素的平均比重,即,出现在词素中的字符个数占所辖三层域名标签总字符数的比例.此外,由于域名越普及,使用越广,其为合法域名的可能性越大,因此,将Alex排名靠前的域名看作合法域名.如图 1所示,各个点(x,y)表示含词素平均比重超过x的对象数目占总体的比例为y.实际观测发现:
· 47.2%的Alex合法域名,其三层域名标签含词素平均比重超过95%;
· 只有23.5%的僵尸网络域名、17.2%的钓鱼网站域名、34.2%的垃圾邮件域名和17.1%的恶意软件域名的三层域名标签中含相同比重的词素;
· 而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签中含词素平均比重均低于70%.
综上所述,与恶意服务使用的非法域名相比,正常服务使用的合法域名更可能使用词素命名其字符串.词素作为单词最基本的组成成分,一方面能够延续单词所拥有的刻画域名语言学特征的能力,用于区分合法域名和恶意域名;另一方面,相比庞大的单词库,词素库相对较小(英文常用词根1 240个左右,词缀490个左右,中文拼音409个),满足轻量级算法的性能要求.
本文依据最小的语言学单位——词素,设计启发式字符串切割算法快速切分域名,并在二层域名标签聚类的基础上,通过统计域名所含词素的比重、均长和频率分布熵等特征测度,应用有监督的机器学习方法检测恶意服务使用的非法域名.为验证算法的可行性,本文基于统一的标准域名集,比较词素特征与已有n元组频率分布以及单词特征的检测能力.实验结果表明:词素特征能够有效地刻画域名字面的语言学特征,与n元组频率分布特征相比,可以提高检测准确率,降低假阳性,有效抵挡攻击者借助事前相应特征统计的逃避策略以及借助字典或Kwyjibo工具的随机域名生成策略;与单词特征相比,在保证检测准确率的同时,较小的词素集可以保证算法具有较低的计算复杂度和存储开销.最后,实际应用该轻量级算法对中国教育科研网江苏省网边界采集到的域名集进行检测,结果表明:该算法具有较高的检测准确率(87.2%)、较低的内存开销(80.14MB的临时内存,2.71MB的常驻内存开销)和计算复杂度(运行时间196.1s).
1 基于词素特征的轻量级检测算法面对庞大的待测域名集合,本文基于合法域名比恶意域名更可能使用词素命名其字符串的观测发现,以域名字符串为分析对象,通过挖掘其字面包含的词素特征(英语中的词根和词缀、中文拼音以及特殊缩写),提出一种轻量级域名检测算法,能够快速锁定恶意服务使用的可疑域名,以便后续有针对性地对DNS交互报文进行实时DPI检测,从而最大限度地降低系统资源开销.如图 2所示,从总体架构看,该轻量级域名检测算法主要包括4个部分:首先,通过聚类算法将待处理的标准域名集和实测域名集各自划分成组;其次,基于所构建的词素库,设计启发式字符串切分算法快速切分域名;然后,提出一组基于词素的特征测度,针对每一组域名,分别统计测度集合中的每一个测度;最后,应用有监督的机器学习方法,通过标准域名集的训练学习,检测实测域名集中出现的恶意域名.
1.1 域名聚类算法
从形式上看,域名是由点分隔的一组标签构造而成,这些标签具有分层结构的特点.为后面叙述的方便,此处统一顶层域名标签、二层域名标签和三层域名标签的概念.顶层域名标签,指域名字符串最后的通用域名后缀以及国家后缀(如com,cn,edu.cn等);二层域名标签,指右边紧挨着顶层域名标签的域名标签;三层域名标签,指右边紧挨着二层域名标签的域名标签.如baike.baidu.com,com是顶层域名标签,baidu是二层域名标签,baike是三层域名标签.
攻击者出于经济利益的考虑,通常只注册一个或若干个二级域名,在此之下,使用域名生成算法自动生成成批的子域名.这些域名具有相同的二层域名标签、不同的三层域名标签.因此,本文依据是否具有相同的二层域名标签将域名聚类成组,通过分析组内各三层域名标签中包含的词素特征,以组为单位进行检测.这有别于Yadav等人提出的基于相同二层域名分组域名的想法[19, 20],二层域名包括二层域名标签和后面的常用域名后缀.考虑到无论是算法还是人工方式生成的域名都会使用公共的域名后缀,去掉后更能显现出算法生成域名的随意性;同时在实际观察中发现,很多恶意域名具有相同的二层域名标签、不同的域名后缀.如,钓鱼网站pay-datensynchronisierung对应.biz,.com,.net等8个常用域名后缀.此外,考虑单个或者小量三层域名标签,其包含的少量词素特征难以用于区分合法域名和恶意域名,因此,本文只关注组内三层域名标签数超过一定阈值(≥5)的二层域名标签.
1.2 启发式字符串切分算法基于词素的域名语言学特征统计,首先需要从域名字符串中最大限度的切分出词素.关于词素切割问题,需要重点考虑如下3个方面:① 词素定义,框定词素的范围;② 词素匹配算法,快速确定一段字符序列是否是一个词素;③ 最优切分问题,从域名字符串所有可能的切分结果中,寻找挖掘词素最多的域名切分结果.
1.2.1 词素定义本文延用英语中的概念,把不可再分的最小的有意义的语言单元定义为词素[25].由于人工命名合法域名时通常会使用英语单词、中文拼音和特定名词缩写,分别定义英语词素、拼音词素和缩写词素.英语单词最基本的词素是词根、前缀和后缀.汉语拼音由声母、韵母和声调构成,由于域名字符集不存在声调这一特殊字符,因此域名中出现的是无声调拼音.而组织机构、专有名词、项目名称等特定名词缩写,通常没有内部结构,所以将整个字符串定义为一个缩写词素,见表 1.经统计,维基百科字典中拥有超过32万个非英文单词词头,为此本文提出两条策略以减小词素库规模:① 若一个词素,可以分解为词素库中的若干个词素,则将该词素从库中去除;② 在策略1基础上,考虑长度较短的词素碰巧出现在算法生成域名中的概率较大,而长度较长的词素碰巧撞到的概率较小,本文只保留长度在[3, 5]范围内的词素.经过简化处理,目前词素库中剩余87 600个词素,通过构词学扩展,可以囊括原先牛津字典和维基百科字典52万个词头的96.25%.
1.2.2 词素匹配与切分
一旦框定词素范围,词素匹配的关键在于选用合适的数据结构存储词素库,保证最快速率的字符串匹配.考虑词素库规模有限,设计数据结构时优先考虑查询速率,即,查询时间优于内存开销.本文使用哈希表结构存储词素库,由于算法只考虑长度介于3和5之间的词素,可以保证最糟糕情况下的查询速度.经过统计:当取词素前4个字母c1,c2,c3和c4对应下标作为哈希的key值时(key值的具体计算见公式(1),当词素长度只有3时,默认取c4=‘a’+26),哈希表具有最优的查询速度和相对小的内存开销,此时,哈希桶利用率为11.7%,其中,80.5%的桶长≤1,98.5%的桶长≤5.
$key=({{c}_{1}}-'a')\acute{\ }{{27}^{3}}+({{c}_{2}}-'a')\acute{\ }{{27}^{2}}+({{c}_{3}}-'a')\acute{\ }27+({{c}_{4}}-'a')$ | (1) |
一个域名字符串通常会有多种切分结果,如何寻找最优结果,传统解决策略依据自然语言特征选取评分标准,寻找得分最高的全局最优解.但是面对庞大的语言库,若再考虑词素的上下文环境,这种全局最优解会达到指数级别的计算复杂度.考虑本文的实际需求,轻量级检测算法要求相对简捷的计算复杂度,且其最终的检测精度还依赖于域名切分之后的测度选取和机器分类算法.本文采用启发式方法,用局部最优解代替全局最优解.恶意服务使用的非法域名,其字符串具有较大的随意性,碰巧撞到词素的概率很小,且词素越长,碰撞概率越小,因此,启发式切分策略应该优先匹配最长词素.实际操作中发现:若不考虑上下文环境,单个词素的最长优先匹配常常会破坏两个连续的词素.如鲜果网域名xianguo.com,优先切分xiang会破坏紧跟其后的拼音guo.为此,在切分当前词素时,需要考虑其与接下来n个词素之间的关系.本文为保证算法的简捷性,只关注连续两个词素的情形,即,保证二元词素最长者优先切分.
1.3 分类测度选择域名检测本质上是域名的二元分类问题,即,判定一个域名是正常服务使用的合法域名,还是恶意服务使用的非法域名,关键在于找到区分二者的特征测度.
· 合法域名,通常遵循语言学特征,使用自然语言词素.
DNS最初出现,主要是因为IP地址不便于记忆和使用,从而引入一个名字来方便使用和流行推广.一个组织机构或者单位,注册和正常使用的域名数量有限(一个或几个),一般采用人工方式直接命名一些简洁、易读和易记的字符串.一方面考虑到一般人的工作记忆能力仅7个、8个字元,超过8个字元的域名很难被记忆[33];另一方面,由于域名的广泛使用,短域名基本上消耗殆尽,只能注册稍长的域名.为了兼顾记忆,注册者通常遵循其所使用的自然语言习惯来命名域名.如internetdownloadmanager.com,虽然有23个字母,但是由于其使用了自然语言internet download manager,实际记忆只需要3个字元.
· 恶意域名,字符串具有较大随意性.
僵尸网络、钓鱼网站、垃圾邮件和恶意软件等为了躲避黑名单方法的检测,需要在短时间内生成一定数量规模的域名.为此,攻击者通常依赖随机字符串生成算法自动生成成批的随机域名.
如gugiaueqzmzizlvovohmjojkfx.com,由于不遵循语言学特征,一般人很难直接记忆这26个字母.在定义测度之前,为了形式化描述的方便,首先给出本文的数学模型.
· 二层域名标签集合S={s1,s2,s3,…,sM},包含M个二层域名标签sm(1≤m≤M);
· 三层域名标签集合
· 三层域名标签含词素集合
定义1(词素平均比重). 对某个二层域名标签对象,统计其所有三层标签字符串内出现在词素中的字母个数占所有三层标签总字母数的比重:
$morpheme\_ratio({{s}_{m}})=\frac{\sum\limits_{k=1}^{{{K}_{m}}}{(len({{c}_{mk}})\times {{f}_{mk}})}}{\sum\limits_{n=1}^{{{N}_{m}}}{clen({{t}_{mn}})}}$ | (2) |
本节开头的理论分析结论和图 1所示的实际观测结果,都表明合法域名字符串比恶意域名字符串中更可能出现词素.因此,词素平均比重可以作为检测恶意域名的特征测度,且词素平均比重越低,该域名属于恶意域名的概率越大.
1.3.2 词素平均相对个数定义2(词素平均相对个数). 对某个二层域名标签对象,统计其所有三层标签字符串中包含的词素个数相对于所有三层标签字母总长度(即,包含26个英文字母a~z的总数目)的比值:
$morpheme\_ralative\_num({{s}_{m}})=\frac{\sum\limits_{k=1}^{{{K}_{m}}}{{{f}_{mk}}}}{\sum\limits_{n=1}^{{{N}_{m}}}{clen({{t}_{mn}})}}$ | (3) |
理论分析表明:恶意域名比合法域名拥有的标签长度更长,词素比重更小.由于较长的恶意域名很可能比较短的合法域名含更多词素,因此,本文在考虑域名标签长度的基础上计算词素相对个数,即,词素数目比上三层域名标签字母长度.理论推导可知,恶意域名比合法域名包含更少的词素相对个数.图 3中,72.5%的合法域名,其三层域名标签中含词素平均相对个数超过0.25;只有35.3%的僵尸网络域名、44.5%的钓鱼网站域名、46.7%的垃圾邮件域名和54.3%的恶意软件域名的三层域名标签中含相同相对个数的词素;而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签中含词素平均相对个数均小于0.25.因此,本文选取词素平均相对个数作为分类测度,且词素平均相对个数越少,该域名属于恶意域名的概率越大.
1.3.3 词素平均长度
定义3(词素平均长度). 对某个二层域名标签对象,统计其所有三层标签字符串中包含词素的平均长度:
$morpheme\_len({{s}_{m}})=\frac{\sum\limits_{k=1}^{{{K}_{m}}}{(len({{c}_{mk}})\times {{f}_{mk}})}}{\sum\limits_{k=1}^{{{K}_{m}}}{{{f}_{mk}}}}$ | (4) |
如图 4所示:86.8%的合法域名和88.2%的僵尸网络域名,其三层域名标签中含词素平均长度超过3.3;只有57.9%的钓鱼网站域名、58.1%的垃圾邮件域名和74.3%的恶意软件域名的三层域名标签中含有同样长度的词素;而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签中含词素平均长度均小于3.1.进一步观察发现:21.8%的合法域名的三层域名标签中含词素平均长度超过3.7,而只有11.8%的僵尸网络域名含相同长度的词素.上述统计结果表明:与合法域名相比,恶意域名字符串中包含的词素都相对较短.这符合理论情形,合法域名字符串会使用自然语言中的单词和词素,而恶意域名字符串 具有较大的随意性,其碰巧撞到词素的概率很小,且词素越长,碰撞概率越小.因此,词素平均长度也可以作为检测恶意域名的特征测度,且词素平均长度越短,该域名属于恶意域名的概率越大.
1.3.4 非词素字母平均个数
定义4(非词素字母平均个数). 对某个二层域名标签对象,统计其所有三层标签字符串中除词素外,剩余字母的平均个数:
$remain\_clen({{s}_{m}})=\frac{\sum\limits_{n=1}^{{{N}_{m}}}{clen({{t}_{mn}})}-\sum\limits_{k=1}^{{{K}_{m}}}{(len({{c}_{mk}})\times {{f}_{mk}})}}{{{N}_{m}}}$ | (5) |
由理论分析可知:恶意域名比合法域名具有更长的标签长度,含有更小的词素比重.进一步推论可知,恶意域名应该包含更多的非词素字母数.为了验证推论的合理性,本文继续统计各类二层域名标签按其三层域名标签所含非词素字母平均个数的累积分布.如图 5所示:66.9%的合法域名,其三层域名标签中剩余非词素字母的平均个数低于0.5;只有23.5%的僵尸网络域名、18.7%的钓鱼网站域名、45.9%的垃圾邮件域名和22.9%的恶意软件域名,其三层域名标签中剩余相同个数的非词素字母;而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签中剩余非词素字母的平均个数均超过3.因此,本文选取非词素字母平均个数作为检测恶意域名的测度,且非词素字母平均个数越多,该域名属于恶意域名的概率越大.
1.3.5 平均记忆字元数
定义5(平均记忆字元数). 对某二层域名标签对象,统计其所有三层标签字符串中包含记忆字元的平均个数:
$remember\_len({{s}_{m}})=\frac{\sum\limits_{n=1}^{{{N}_{m}}}{len({{t}_{mn}})}-\sum\limits_{k=1}^{{{K}_{m}}}{((len({{c}_{mk}})-1)\times {{f}_{mk}})}}{{{N}_{m}}}$ | (6) |
一般人记忆字符串时,会将其中常用的单词或短语看作一个记忆字元,以此来增加记忆的长度.为此,本文将域名字符串中包含的单个词素、单独的一个字母或者数字都看成一个记忆字元.理论分析表明,恶意域名比合法域名具有相对更多的记忆字元数.实际统计各类二层域名标签按其三层域名标签平均记忆字元数的累积分布,如图 6所示,发现:79.0%的合法域名,其三层域名标签的平均记忆字元数小于3;只有23.5%的僵尸网络域名、18.2%的钓鱼网站域名、53.5%的垃圾邮件域名和22.9%的恶意软件域名的三层域名标签具有相同数目的记忆字元;而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签的平均记忆字元数均超过5.综合理论分析和实际观测结果,选取平均记忆字元数作为区分恶意域名和合法域名的测度,且平均记忆字元数目越多,该域名属于恶意域名的概率越大.
1.3.6 词素频率分布熵
定义6(词素频率分布熵). 对某个二层域名标签对象,统计其所有三层标签字符串中出现的各个词素的频率分布的熵值:
$morpheme\_entropy({{s}_{m}})=-\sum\limits_{{k}'=1}^{{{K}_{m}}}{\left( \frac{{{f}_{m{k}'}}}{\sum\limits_{k=1}^{{{K}_{m}}}{{{f}_{mk}}}}\times {{\log }_{2}}\left( \frac{{{f}_{m{k}'}}}{\sum\limits_{k=1}^{{{K}_{m}}}{{{f}_{mk}}}} \right) \right)}$ | (7) |
人工命名合法域名时,一方面为了使用和推广的方便,通常会使用一些好记的单词或缩写;另一方面,出于管理和语义关联的需要,常常会在同一个二层域名标签下的一组三层域名标签中使用相近的字符串.因此,合法域名中的某些词素出现的频率会远远超过其他词素.而恶意域名字符串具有较大的随意性,其碰巧撞到同一个词素的概率很小,即,恶意域名中的词素通常只出现一次.因此,理论上,恶意域名比合法域名的三层域名标签中所包含的词素频率分布更加均匀,熵值更大.如图 7所示:47.8%的合法域名和52.1%的垃圾邮件域名,其三层域名标签中词素频率分布的熵值低于4.4;只有11.8%的僵尸网络域名、38.3%的钓鱼网站域名和34.3%的恶意软件域名的三层域名标签具有相同的熵值;而使用Domain-Flux技术的新型僵尸网络域名,其三层域名标签的词素频率分布的熵值均超过8.若不考虑垃圾邮件域名的干扰,其余各类恶意域名的词素频率分布的熵值都相对比合法域名大,这符合理论分析结果.本文也选取词素频率分布的熵值用于检测恶意域名,且词素频率分布的熵值越大,域名属于恶意域名的概率越大.
1.4 分类算法
现有的机器学习分类算法种类众多,本节基于Kotsiantis等人[34]的比较研究结果(见文献[35]中的表 4),针对域名属性集的特性和轻量级算法的性能要求,讨论算法选择问题.首先,用于域名分类的6个特征测度都是连续型数据变量,而朴素贝叶斯和基于关联规则的算法倾向于非连续型属性变量,且前者检测精度低,后者难以应对噪音数据;其次,轻量级算法要求最小的性能开销和适中的检测精度,K-临近算法在学习和分类两个阶段都需要较大的内存开销且分类速度慢,而神经网络和支持向量机方法在学习阶段时间开销大且复杂的参数调整也降低了可用性.因此,本文针对域名的二元分类问题(0合法域名;1恶意域名),最终选取决策树方法中经典的C4.5[36]算法,能够处理连续型属性,具有较快的学习速度和分类速度,在数据不完整或存在噪音情形下也能够保证适中的检测精度,无需调整参数且直观易懂.分类算法整个工作流程如图 8所示.
① 收集黑名单和Alex排名前1万的域名,生成恶意域名集M和合法域名集G,具体见实验部分;
② 对M和G中的域名,分别按照二层域名标签聚类成组,过滤出组内三层域名标签数超过一定阈值(≥5)的二层域名标签.在此基础上,以这些二层域名标签为对象,应用启发式算法切分其所有三层域名标签字符串,统计上述6个词素特征测度;
③ 每个二层域名标签样本,可用一个包含7项属性的向量(A1,A2,A3,A4,A5,A6,C)T来表示,其中,Ai(1≤i≤6)是上个步骤统计的6个词素特征测度,C是域名所属类别.合并域名集M和G,生成训练样本集T={(A1,A2,A3,A4,A5,A6,C)T},其中,来自域名集G的样本类别为0,而来自M的样本类别为1;
④ C4.5算法通过学习训练集T中的样本,采用递归思想自上而下构造决策树分类模型.当分枝中所有样本属于同一类别c(0或1)时,递归终止,生成叶节点并将其标记为c类别;否则,对每个连续型属性Ai(1≤i≤6),选取最佳分割阈值ti(1≤i≤6),并计算利用该属性划分训练集T的信息增益率(公式(8));新建分枝节点,选取信息增益率最大的属性Au作为该节点的测试属性,将T划分成两个子集T1={Au≤tu}和T2={Au>tu},分别递归构造子树.此外,为了消除噪声和孤立点等因素的影响,还需对决策树进行剪枝处理:
$gain\_ratio=\frac{\begin{align} & -p(C=0)\times {{\log }_{2}}(p(C=0))-p(C=1)\times {{\log }_{2}}(p(C=1))+ \\ & p({{A}_{i}}\le {{t}_{i}},C=0)\times {{\log }_{2}}\left( \frac{p({{A}_{i}}\le {{t}_{i}},C=0)}{p({{A}_{i}}\le {{t}_{i}})} \right)+p({{A}_{i}}\le {{t}_{i}},C=1)\times {{\log }_{2}}\left( \frac{p({{A}_{i}}\le {{t}_{i}},C=1)}{p({{A}_{i}}\le {{t}_{i}})} \right)+ \\ & p({{A}_{i}}>{{t}_{i}},C=0)\times {{\log }_{2}}\left( \frac{p({{A}_{i}}>{{t}_{i}},C=0)}{p({{A}_{i}}>{{t}_{i}})} \right)+p({{A}_{i}}>{{t}_{i}},C=1)\times {{\log }_{2}}\left( \frac{p({{A}_{i}}>{{t}_{i}},C=1)}{p({{A}_{i}}>{{t}_{i}})} \right) \\ \end{align}}{-p({{A}_{i}}\le {{t}_{i}})\times {{\log }_{2}}(p({{A}_{i}}\le {{t}_{i}}))-p({{A}_{i}}>{{t}_{i}})\times {{\log }_{2}}(p({{A}_{i}}>{{t}_{i}}))}$ | (8) |
其中,p(C=0)是T中类别为0的样本数占总体比例,p(Ai≤ti)是T中属性Ai不超过阈值ti的样本数占总体比例,p(Ai≤ti,C=0)是T中属性Ai不超过阈值ti且类别为0的样本数占总体比例,其余类推.
⑤ 对DNS交互报文中实际观测到的域名集J,执行步骤②中相同的数据处理操作,得到数据集D={(A1,A2,A3,A4,A5,A6)T},然后利用生成的决策树模型,从根节点开始向下逐步测试属性,分类域名.
2 算法评估 2.1 数据集 2.1.1 实测数据集(1) 实测域名集JS_Domain_Set:从2013年10月16日~12月15日,在中国教育科研网江苏省网边界一个接入点上,观测到的DNS交互报文中能够正确解析的域名集合.两个月共观察到1 400万个不重复域名.
2.1.2 标准样本集(2) 合法域名集Good_Domain_Set:考虑到越普及通用的域名,其为合法域名的可能性越大,本文选取Alex[26]网站连续3次排名前1万的域名(每隔一个月观测一次Alex网站排名,连续3次的排名结果一定程度上可以保证域名排名的稳定性),并去除曾经在黑名单[1-4, 27-31, 32]中出现过的域名.此外,由于Alex网站只提供二层域名,为了获取完整的域名字符串,本文从实测域名集JS_Domain_Set中划分出与上述二层域名具有相同二层域名标签的所有域名构成该样本集.
(3) 恶意域名集Malicious_Domain_Set:选取僵尸网络[1-4, 27-30]、钓鱼网站[31]、垃圾邮件[32]和恶意软件[29, 30]黑名单中曾经出现过的域名,并从实测域名集JS_Domain_Set中划分出与上述域名具有相同二层域名标签的所有域名一起构成该样本集.为保证恶意样本集的干净,进一步删除Alex[26]网站3次排名前100万的域名.
2.1.3 随机数据集(4) 随机域名集Random_Domain_Set:事先统计合法域名集Good_Domain_Set中所有域名的词法特征(包括域名长度分布、首字母分布、二元组频率分布等),而后基于马尔科夫模型,自动生成符合合法域名的二元组频率分布特征的域名集合.
(5) 随机域名集Dict_Domain_Set:为迷惑用户,攻击者在生成域名时常常使用英语单词,有时也在后面加上数字串,为此,本文构建一组形如“dogcat123.animal.com”的随机域名.
(6) 随机域名集Kwyjibo_Domain_Set:使用单词随机生成域名时,很可能直接得到合法域名.为此,攻击者常常使用Kwyjibo[35]工具生成一组域名字符串,形似单词且具有很好的可读性,如“fiertabendado12.gufy.com”.
(7) 随机域名集Pop_Domain_Set:由于本文的检测算法只分析三层域名标签,并不关注二层域名标签,攻击者很可能直接替换知名域名的二层标签,保留或者重构其三层标签来生成新域名.如,通过替换二层域名“baidu.com”生成形如“baike.xxx.com”,“news.xxx.com”的随机域名.
各域名数据集大小见表 2.
2.2 准确率 2.2.1 准确率评估和比较
· M1算法:在统计二元组(连续的两个字母或者数字)频率分布基础上,分别计算待测域名组与合法域名集以及与恶意域名集间的KL距离,根据距离远近分类合法域名和恶意域名[19, 20].当二层域名标签所辖三层域名标签数目较小时,KL距离比Jaccard系数具有相对较低的假阳性,因此选用KL距离作为分类测度;
· M2算法:本文提出的基于词素特征的轻量级域名检测算法.在以词素为单元变长切分域名的基础上,通过统计6个词素特征测度,并应用现有的C4.5算法分类合法域名和恶意域名.
· M3算法:为了说明以词素为单元的域名字面特征能够保留以单词为单元的域名语言学特征,这里将M2算法所依赖的词素库换成单词库,其余所有操作不变.
本文基于合法域名集Good_Domain_Set和恶意域名集Malicious_Domain_Set,使用十字交叉验证法,从检测准确率、假阳性(合法域名检测为恶意域名)和假阴性(恶意域名检测为合法域名)等3个方面,评估并比较上述3种基于字面特征的轻量级域名检测算法.如图 9所示.
· 基于二元组频率分布统计的M1算法具有最低的检测准确率51.7%、最高的假阳性43.2%和最低的假阴性5.1%;进一步分析M1算法在两个样本集上各自的检测准确率,发现其对于恶意域名样本集的检测可以达到89.8%,而对于合法域名样本集的检测仅为13.7%;
· 基于单词特征的M3算法具有最高的检测准确率71.7%、最低的假阳性14.2%和较低的假阴性14.1%,且该算法在两个样本集上表现出相似的准确率(前者71.7%,后者71.8%);
· 基于词素特征的M2算法,其三方面的评估结果(69.9%检测准确率、16.4%假阳性和13.7%假阴性)稍逊于M3算法(准确率相对偏低2.5%,假阳性相对偏高15.5%,假阴性却相对偏低2.8%),但明显优于M1算法(准确率相对高35.2%,假阳性相对低62.0%,假阴性却相对高168.6%),且其对两个样本集也具有相近的检测准确率(合法域名样本集67.3%,恶意域名样本集72.5%).
综上所述:一方面,M2算法具有与M3算法相似的检测准确率,证明以词素为单元的域名字面特征能够保留以单词为单元的域名语言学特征;另一方面,M2算法比M1算法提高1/3的准确率,说明域名内含的词素特征比二元组频率分布特征更能刻画域名的语言学特征,可以更有效地作为特征测度用于分类合法域名和恶意域名.
2.2.2 准确率影响因素本文提出的6个分类测度,都是建立在一定数量的三层域名标签基础上,对其内部所含词素数目、长度等的数量统计.就数学统计方法本身而言,随机抽取的样本容量越大,用样本估计出的总体特性就越接近真实.因此,二层域名标签所辖的三层域名标签数作为关键因子,会直接影响检测算法最终的准确率.本文针对基于词素特征的轻量级域名检测算法M2,分别选取所辖三层域名标签数在[5,10)范围内的4 140个二层域名标签对象、在[10,30)范围内的2 800个二层域名标签对象和在[30,+∞)范围内的1 820个二层域名标签对象,仍从检测准确率、假阳性和假阴性这3个方面,评估三 层域名标签数对M2检测算法准确率的影响.
如图 10所示:随着所辖三层域名标签数的增加,M2算法的准确率有很大程度的上升,从63.9%上升到68.3%(相对上升6.9%),再上升到74.6%(相对上升16.5%);假阳性和假阴性也有明显的下降,假阳性从20.0%下降到17.2%(相对下降19.0%),再下降到11.5%(相对下降42.5%);假阴性也从16.1%下降到14.5%(相对下降9.9%),再下降到13.9%(相对下降13.7%).
虽然随着三层域名标签数的增加,M2算法的准确率有显著的提高,但是恶意域名集中的样本数量也会显著地减少,从而影响抽样样本对总体的估计.本文权衡两方面,选取三层域名标签数超过5的二层域名标签集,作为算法介绍和评估比较时统一使用的样本空间.
2.3 抗逃避能力传统的基于域名字符串长度、所含字母数目、数字数目等字面特征的词法分析方法,很容易被攻击者借助事前相应的特征统计来逃避.为此,本节以合法域名集Good_Domain_Set和恶意域名集Malicious_Domain_Set为训练集,以算法自动生成的随机域名集Random_Domain_Set,Dict_Domain_Set,Kwyjibo_Domain_Set和Pop_Domain_Set为测试集,从准确率角度评估比较上述3种算法的抗逃避能力.由于恶意域名样本集中缺少Dict_Domain_Set和Kwyjibo_Domain_Set中的随机域名样本,因此在恶意域名集中分别增加400组随机域名.此外,对恶意域名集的检测不存在假阳性,即,准确率和假阴性此消彼长,评估时只需关注准确率一个方面.如图 11所示.
· 针对随机域名集Random_Domain_Set(域名符合合法域名的二元组频率分布特征),M1算法基本失效(准确率仅为1.23%),但M2和M3算法基本上能完全检测(前者准确率98.0%,后者100%);
· 针对随机域名集Dict_Domain_Set(域名直接使用英语单词构成,同时,在其尾部增加随机数字串),M1和M3算法能够完全检测,M2算法也具有99.2%的准确率;
· 针对域名集Kwyjibo_Domain_Set(使用Kwyjibo工具生成的形似单词的域名,同时,也在其尾部增加随机数字串),M1算法能够完全检测,M2和M3算法也基本上能完全检测(前者准确率99.4%,后者99.1%);
· 而对于Pop_Domain_Set(替换知名域名的二层标签,保留或重构其三层标签),M2和M3算法都具有较低的准确率(前者32.8%,后者28.3%),但是M1算法由于误报较高,反而拥有86.3%的检测准确率.
综上所述,基于二元组频率分布统计的检测算法,在面对攻击者事前经过二元组频率分布统计后生成的域名时基本失效.而本文提出的基于词素特征的检测算法,能够同时抗拒攻击者通过事前特征统计的逃避策略以及借助字典或Kwyjibo工具的随机域名生成策略.但是对于重用知名域名三层标签的逃避策略,基于词素特征和单词特征的检测算法都表现出较低的检测能力.
2.4 系统开销作为轻量级域名检测算法,首先需要保证其具有较低的内存开销和计算复杂度,以便能在有限的系统资源和计算时间内尽可能多地检测出可疑域名.本节选取合法域名样本集Good_Domain_Set和恶意域名样本集Malicious_Domain_Set作为训练集,在普通PC机上(Intel(R) Xeon(R)单核cpu,频率2.00GHz,内存2G,Linux系统版本2.6.15-23-386),分别使用上述3种域名字面检测算法对实测域名集JS_Domain_Set进行检测,并在此过程中,从理论和实际两个角度分析其运行所需的内存和时间开销.
表 3中,
· 基于二元组频率分布统计的M1算法具有最低的内存开销和计算复杂度;
· 与M1算法相比,基于词素特征的M2算法则具有相对较大的内存开销(临时内存空间增加27.82MB,相对增长53.2%,常驻内存空间相对增加2.69MB)和计算复杂度(理论计算操作次数增加66.5倍,实际运行时间增长21.5倍);
· 而基于单词特征的M3算法,其与M2算法相比具有相同的临时内存开销,常驻内存增加2.25MB,相对增长83.0%,理论计算复杂度增加1.8倍,实际运行时间增长33.0%.
2.5 实用测试
运用本文提出的基于词素特征的域名字面检测算法M2,通过合法域名集Good_Domain_Set和恶意域名集Malicious_Domain_Set的训练学习,对从中国教育科研网江苏省网边界实际采集的域名集JS_Domain_Set进行检测,共发现745个可疑二层域名标签及其子域名.进一步分析发现,其中199个二层域名所辖子域名中含有黑名单中出现过的恶意域名,13个二层域名未经注册,118个二层域名包含色情、赌博、虚假婚介、恶意销售等内容,65个二层域名所辖网站无效、过期或筹建中,58个二层域名包含合法的政府、学校和公司网站,另外292个二层域名无法通过网站直接访问.综上所述,除去无法确认的292个二层域名,剩余453个二层域名中,能够确认395个为恶意二层域名,58个为合法二层域名,即:基于词素特征的域名字面检测算法的实际检测准确率为87.2%,假阳性为12.8%.
3 总 结网络安全监测需要在最短的时间内尽可能多地检测出可疑域名.面对网络中实际使用的庞大域名对象,传统基于DNS交互报文的DPI检测技术由于资源开销过大,难以满足现实的性能需求.
本文基于域名自身字面特征,提出一种轻量级的检测算法,能够快速感知和标识恶意服务使用的可疑域名,以便有针对性地使用现有的更为复杂和更为准确的算法.该轻量级域名检测算法选取自然语言中最小的语义单元词素,设计启发式字符串切割算法来快速挖掘域名中蕴含的语言学特征,并在二层域名标签聚类的基础上,提出一组基于词素特征的检测测度,用于C4.5算法以实现合法域名和恶意域名的分类.
实验结果表明:本文提出的词素特征比n元组频率分布特征具有更高的检测准确率(准确率相对增长35.2%,假阳性相对降低62.0%),且能够有效地抵挡攻击者借助事前相应特征统计的逃避策略(几乎能够完全检测符合合法域名二元组频率分布特征的域名以及借助字典或者Kwyjibo工具自动产生的随机域名).但是在面对重用知名域名三层标签的逃避策略时,表现出较低的检测能力,准确率只有32.8%.进一步应用该算法对中国教育科研网江苏省网边界实际采集到的域名集进行检测,实测结果表明,该算法具有较高的检测准确率(87.2%)、较低的内存开销(80.14MB的临时内存,2.71MB的常驻内存开销)和计算复杂度(运行时间196.1s).此外,本文还比较了基于词素和基于单词的两种字面特征检测方法,单词特征虽然具有略高的检测准确率(准确率相对偏高2.7%,假阳性相对偏低13.8%,假阴性却相对偏高2.7%),但是其常驻内存开销和计算复杂度均明显高于词素特征(常驻内存空间相对增加83.0%,理论计算复杂度相对增加1.8倍).
因此,本文提出的基于词素特征的域名字面检测算法能够替代现有基于n元组频率分布特征和基于单词特征的检测算法,同时满足轻量级算法对系统开销和检测准确率的需求.
[1] | Porras P,Saidi H,Yegneswaran V.A foray into Conficker’s logic and rendezvous points.In:Lee W,ed.Proc.of the 2nd USENIX Conf.on Large-Scale Exploits and Emergent Threats:Botnets,Spyware,Worms,and More (LEET 2009).Boston:USENIX,2009. |
[2] | Conficker C Analysis.2009.http://mtc.sri.com/Conficker/addendumC |
[3] | Royal P.Analysis of the Kraken Botnet.2008.https://www.damballa.com/downloads/r_pubs/KrakenWhitepaper.pdf |
[4] | Stone-Gross B,Cova M,Cavallaro L.Your botnet is my botnet:analysis of a botnet takeover.In:Al-Shaer E,Jha S,Keromytis AD,eds.Proc.of the 16th ACM Conf.on Computer and Communications Security (CCS 2009).Chicago:ACM Press,2009.635-647.[doi:10.1145/1653662.1653738] |
[5] | Chatzis N,Popescu-Zeletin R.Flow level data mining of DNS query streams for email worm detection.In:Corchado E,Zunino R,Gastaldo P,Herrero A,eds.Proc.of the Int’l Workshop on Computational Intelligence in Security for Information Systems (CISIS 2008).Berlin,Heidelberg:Springer-Verlag,2009.186-194.[doi:10.1007/978-3-540-88181-0_24] |
[6] | Chatzis N, Popescu-Zeletin R. Detection of email worm-infected machines on the local name servers using time series analysis. Journal of Information Assurance and Security, 2009, 4 (3) :292–300. |
[7] | Chatzis N,Popescu-Zeletin R,Brownlee N.Email worm detection by wavelet analysis of DNS query streams.In:Dasgupta D,Zhan J,eds.Proc.of the IEEE Symp.on Computational Intelligence in Cyber Security (CICS 2009).Nashville:IEEE,2009.53-60.[doi:10.1109/CICYBS.2009.4925090] |
[8] | Chatzis N, Brownlee N. Similarity search over DNS query streams for email worm detection.In:Awan I,ed.Proc.of the 2009 Int’l Conf.on Advanced Information Networking and Applications (AINA 2009). Bradford:IEEE, 2009 :588–595. [doi:10.1109/AINA.2009.132] |
[9] | Caglayan A,Toothaker M,Drapeau D,Burke D,Eaton G.Real-Time detection of fast flux service networks.In:Walter E,ed.Proc.of the 2009 Cybersecurity Applications&Technology Conf.for Homeland Security (CATCH 2009).Washington:IEEE,2009.285-292.[doi:10.1109/CATCH.2009.44] |
[10] | Choi H,Lee H,Kim H.Botnet detection by monitoring group activities in DNS traffic.In:Wei D,ed.Proc.of the 7th IEEE Int’l Conf.on Computer and Information Technology (CIT 2007).Fukushima:IEEE,2007.715-720. |
[11] | Choi H,Lee H,Kim H.BotGAD:Detecting botnets by capturing group activities in network traffic.In:Bosch J,Clarke S,eds.Proc.of the 4th Int’l ICST Conf.on Communication System Software and Middleware (COMSWARE 2009).Dublin:ACM Press,2009.[doi:10.1145/1621890.1621893] |
[12] | Choi H, Lee H. Identifying botnets by capturing group activities in DNS traffic. Computer Networks:The Int’l Journal of Computer and Telecommunications Networking, 2012, 56 (1) :20–33. [doi:10.1016/j.comnet.2011.07.018] |
[13] | Antonakakis M,Perdisci R,Lee W,Vasiloglou N,Dagon D.Detecting malware domains at the upper DNS hierarchy.In:Wagner D,ed.Proc.of the 20th USENIX Conf.on Security (SEC 2011).San Francisco:USENIX,2011. |
[14] | Antonakakis M,Perdisci R,Nadji Y,Vasiloglou N,Abu-Nimeh S,Lee W,Dagon D.From throw-away traffic to bots:Detecting the rise of DGA-based malware.In:Kohno T,ed.Proc.of the 21st USENIX Conf.on Security Symp.(Security 2012).Bellevue:USENIX,2012.491-506. |
[15] | Bilge L, Sen S, Balzarotti D, Kirda E, Kruegel C. Exposure:A passive DNS analysis service to detect and report malicious domains. on Information and System Security (TISSEC), 2014, 16 (4) . [doi:10.1145/2584679] |
[16] | Ma J,Saul LK,Savage S,Voelker GM.Beyond blacklists:Learning to detect malicious web sites from suspicious URLs.In:Elder J,Fogelman FS,Flach P,Zaki M,eds.Proc.of the 15th ACM SIGKDD Int’l Conf.on Knowledge Discovery and Data Mining (KDD 2009).Paris:ACM Press,2009.1245-1254.[doi:10.1145/1557019.1557153] |
[17] | Ma J, Saul LK, Savage S, Voelker GM. Learning to detect malicious URLs.ACM Trans. on Intelligent Systems and Technology (TIST), 2011, 2 (3) :493–500. [doi:10.1145/1961189.1961202] |
[18] | Prakash P,Kumar M,Kompella RR,Gupta M.PhishNet:Predictive blacklisting to detect phishing attacks.In:Mandyam G,Westphal C,eds.Proc.of the 29th Conf.on Information Communications (INFOCOM 2010).San Diego:IEEE,2010.346-350.[doi:10.1109/INFCOM.2010.5462216] |
[19] | Yadav S,Reddy AKK,Reddy ALN,Ranjan S.Detecting algorithmically generated malicious domain names.In:Allman M,ed.Proc.of the 10th ACM SIGCOMM Conf.on Internet Measurement (IMC 2010).Melbourne:ACM Press,2010.48-61.[doi:10.1145/1879141.1879148] |
[20] | Yadav S, Reddy AKK, Reddy ALN, Ranjan S. Detecting algorithmically generated domain-flux attacks with DNS traffic analysis. IEEE/ACM Trans.on Networking (TON), 2012, 20 (5) :1663–1677. [doi:10.1109/TNET.2012.2184552] |
[21] | Khaitan S, Das A, Gain S, Sampath A. Data-Driven compound splitting method for English compounds in domain names.In:Cheung D,Song IY,Chu W,Hu XH,Lin J,eds.Proc.of the 18th ACM Conf.on Information and Knowledge Management (CIKM 2009). Hong Kong:ACM Press, 2009 :207–214. [doi:10.1145/1645953.1645982] |
[22] | Srinivasan S, Bhattacharya S, Chakraborty R. Segmenting Web-domains and hashtags using length specific models.In:Chen XW,Lebanon G,Wang HX,Zaki MJ,eds.Proc.of the 21st ACM Int’l Conf.on Information and Knowledge Management (CIKM 2012). Maui Hawaii:ACM Press, 2012 :1113–1122. [doi:10.1145/2396761.2398410] |
[23] | Marchal S,Francois J,State R,Engel T.Proactive discovery of phishing related domain names.In:Stolfo SJ,Stavrou A,Wright CV,eds.Proc.of the Research in Attacks,Intrusions,and Defenses.Berlin,Heidelberg:Springer-Verlag,2012.190-209.[doi:10.1007/978-3-642-33338-5_10] |
[24] | Schiavoni S, Maggi F, Cavallaro L, Zanero S. Tracking and characterizing botnets using automatically generated domains. CoRR, 2013 . |
[25] | Plag I. Word-Formation in English. Cambridge:Cambridge University Press, 2002 . |
[26] | Alexa.2014.http://www.alexa.com/topsites/ |
[27] | Palevo tracker.2014.https://palevotracker.abuse.ch/ |
[28] | Zeus tracker.2014.https://zeustracker.abuse.ch/ |
[29] | DNS-BH-Malware domain blocklist.2014.http://www.malwaredomains.com/ |
[30] | Malware domain list.2009.http://www.malwaredomainlist.com |
[31] | PhishTank.2014.http://www.phishtank.com/ |
[32] | Blacklist provided by joewein.net (JWSDB).2014.http://joewein.net/spam/blacklist.htm |
[33] | Baddeley A, Della Sala S. Working memory and executive control. Philosophical Trans.of the Royal Society of London Series B-Biological Sciences, 1996, 351 (1346) :1397–1403. |
[34] | Kotsiantis SB.Supervised machine learning:A review of classification techniques.In:Maglogiannis I,Karpouzis K,Wallace M,Soldatos J,eds.Proc.of the 2007 Conf.on Emerging Artificial Intelligence Applications in Computer Engineering:Real Word AI Systems with Applications in eHealth,HCI,Information Retrieval and Pervasive Technologies.Amsterdam:IOS Press,2007.3-24. |
[35] | Crawford H, Aycock J. Kwyjibo:Automatic domain name generation. Software Practice and Experience, 2008, 38 (14) :1561–1567. [doi:10.1002/spe.885] |
[36] | Quinlan JR. C4.5:Programs for Machine Learning. San Francisco:Morgan Kaufmann Publishers Inc, 1993 . |