66、运营级域名分类:数据、特征与实践

运营级域名分类:数据、特征与实践

1. 数据与特征选择

在设计域名分类器时,数据来源和特征的选择是关键的起始点,目的是区分不同类型的域名,如良性和恶意域名。

1.1 数据来源选择

数据来源选择的主要标准是其可用性。DNS声誉系统使用的数据集可以是公开的或非公开的。像Exposure、Notos或Predator中使用的被动DNS数据等特权或商业来源,只有有权访问这些数据的人才能使用。历史数据也存在类似问题,而且依赖非公开数据的系统,其可重复性和性能验证可能对独立研究人员来说困难甚至不可能。

相比之下,基于公开数据来源的系统没有这些问题,仍能达到较高的准确性,并且更有可能被相关运营商采用,包括DNS中介和执法机构等。例如,Mentor和Domain Classifier系统使用公开数据来源并展示了高准确性;De Silva等人结合公开和非公开数据实现了97.2%的准确率;COMAR使用公开和非公开数据区分受损和恶意注册的域名,去除非公开的被动DNS后,准确率仍可达97%。

1.2 特征重要性

特征重要性是指根据输入特征对目标变量预测的贡献程度为其分配分数的技术。按重要性对特征进行排名可以显示哪些特征无关紧要,从而可以省略,这有助于降低模型的维度、复杂度和数据收集需求,还能估计缺失特征对系统的影响。

在我们审查的DNS声誉系统中,只有Hao等人、Maroofi等人和Le Pochat等人记录了所提出模型的特征重要性。需要注意的是,即使是最重要的特征,如果在数据集中缺失且其值无法估计,也无法对目标变量的预测做出贡献。

1.3 真实标签数据

审查的系统使用分类器区分恶意、受损和良性域名。真实标签数据的质量和数量在很大程度上决定了正确训练和评估分类器的能力。不同的系统采用了不同的方法来构建真实标签数据集,如下表所示:
| 提议的系统 | 真实标签来源 | 总数(T) | 恶意(M) | 良性或受损(B/C) |
| — | — | — | — | — |
| Predator | McAfee SiteAdvisor、Spamhaus URIBL、内部垃圾邮件陷阱 | 769,464 | 512,976 | 256,488 |
| Domain Classifier | PhisLabs、DeltaPhish | 10,150 | 9,475 | 675 |
| De Silva等人 | 手动标注 | 3,278 | 1,889 | 1,389 |
| COMAR | 手动标注 | 2,329 | 1,199 | 1,130 |
| Mentor | GSB、https://malwaredomains.com/、Alexa | 1,430 | 930 | 500 |
| Notos | SURBL、Alexa | - | - | - |

第三方服务的优点是可用性、易用性和及时性,但研究人员无法完全了解第三方供应商用于标记数据的专有方法,因此这类数据集不能完全信任。手动标注虽然让研究人员能仔细选择数据来源和方法,但需要专业知识和大量时间,且标注过程可能不简单,还可能引入不准确或偏差。使用以前工作的数据也可能存在数据过时的问题。

2. COMAR系统

我们使用扩展的COMAR(受损与恶意注册域名)系统原型来验证所提出的方法。COMAR是一个域名分类系统,能以97%的准确率区分来自黑名单URL的域名是受损还是恶意注册。它由三个模块组成:
- 数据收集模块 :从钓鱼和恶意软件分发黑名单中获取域名数据。
- 特征提取模块 :提取38个特征,分为七类:词法特征、排名和流行度特征、被动DNS特征、基于内容的特征、WHOIS和TLD相关特征、TLS证书特征和主动DNS特征。
- 分类模块 :使用训练好的逻辑回归模型预测输出类别(受损或恶意注册的域名)。

我们选择COMAR是因为它结合了新特征和早期系统提出的特征,展示了高准确性,并且我们可以访问其实现。与最初的设计和性能评估不同,我们在自动生成的真实标签数据上训练多个模型以处理缺失值,并广泛评估其性能。最后,我们将COMAR应用于未标记的数据,并展示从20个月的钓鱼URL中提取的域名的统计信息。

3. 方法

3.1 自动生成真实标签数据

自动生成真实标签数据的方法利用了域名注册和托管相关中间机构采取的缓解措施。当域名涉及恶意活动且滥用URL被列入黑名单或报告给运营商时,TLD注册管理机构或注册商必须先收集证据,确定域名是恶意注册还是受损,然后再决定缓解措施。

3.1.1 恶意注册域名

注册管理机构或注册商对恶意域名最常见的缓解措施是将域名从区域中移除,使其在公共DNS中不可用。为了防止域名重新注册,还需要通过可扩展供应协议(EPP)更改其注册状态,设置为clientHold(由注册商设置)或serverHold(由TLD注册管理机构设置)。

自动生成恶意注册域名列表的步骤如下:
1. 使用注册数据访问协议(RDAP)或WHOIS协议收集2021年1月至2022年9月期间出现在反钓鱼工作组(APWG)或PhishTank URL黑名单中的域名的注册信息,提取域名的创建和过期日期以及EPP状态代码。
2. 六个月后,再次收集预期活跃(即过期日期在第二次测量日期之后)的域名的注册信息。
3. 如果域名的EPP状态代码为clientHold或serverHold,则自动将该域名标记为恶意注册。
4. 验证两次测量时域名的创建日期是否保持不变,以确保缓解措施与原始注册者的活动相关。

3.1.2 受损域名

生成受损域名真实标签数据集的步骤如下:
1. 在域名被列入黑名单时,使用浏览器模拟收集顶级域名根目录下的索引页面内容和标题,以及APWG和Phistank报告的相应URL的信息,记录HTTP状态代码和网页标题。
2. 六个月后,使用浏览器模拟获取最初被列入黑名单的URL的内容,只保留返回404 HTTP状态代码的URL(即内容已被删除的页面)。
3. 提取注册域名索引页面的标题,选择索引页面可用(HTTP状态代码200)且标题六个月内未更改的域名。

经过排除属于合法服务的公共顶级域名后,我们确定了3,632个受损域名和12,179个恶意注册域名。两个数据集之间存在不平衡的一个原因是我们对受损域名的标注方法较为保守。

3.2 特征选择

我们重新审视了COMAR系统最初使用的38个特征,排除使用特权或不可用数据的特征以及无关特征:
1. Bing搜索引擎结果 :是付费服务,排除。
2. 依赖被动DNS的特征 :访问被动DNS数据是特权操作,且相关特征对性能影响可忽略不计,排除。
3. TLD恶意指数 :由Spamhaus计算,不可用于商业用途,排除。
4. 域名与托管内容的关系 :原始COMAR使用商业API提取关键词和生成同义词,由于API不可公开获取,排除该特征。
5. Quantcast排名系统 :不再公开可用,排除。
6. TLS证书价格 :区分免费和付费证书不简单,排除。
7. TLS证书的存在 :恶意和良性但受损的钓鱼域名中TLS证书的使用情况相当,排除。
8. 有效TLS证书 :对于共享主机,无法确定无效证书是恶意行为者颁发错误证书还是属于同一主机上的其他域名,不适合运营部署,排除。
9. TLD价格 :TLD价格不唯一且随时间变化,难以大规模收集数据,排除。

基于以上分析,我们移除了13个特征,使用逻辑回归对剩余的25个特征进行模型训练。分析系数后,移除对模型不重要的特征,最终保留的17个特征如下表所示:
| F | 特征 | 描述 | F - set | 集合名称 |
| — | — | — | — | — |
| F1 | digit ratio | 域名中数字的数量与域名长度的比值 | FS1 | 词法 |
| F2 | has famous brand name | 域名是否包含著名品牌名称 | FS1 | 词法 |
| F3 | level of subdomain | 完全限定域名中子域名的数量 | FS1 | 词法 |
| F4 | special keywords | 域名中是否使用特殊关键字 | FS1 | 词法 |
| F5 | num hyphen | 域名中连字符的数量 | FS1 | 词法 |
| F6 | diffcreate blacklist time | 域名创建和列入黑名单时间的差值 | FS2 | WHOIS |
| F7 | content length | 域名主页的内容长度 | FS3 | 内容长度 |
| F8 | has index page | 是否有默认的Web服务器索引页面 | FS5 | 索引页面 |
| F9 | is use redirection | 是否重定向到另一个域名 | FS4 | 主页重定向 |
| F10 | is default homepage | 是否有著名CMS的默认安装 | FS5 | 索引页面 |
| F11 | has vulnerable tech | 是否使用易受攻击的技术(如WordPress) | FS6 | 技术 |
| F12 | num of tech | 主页中使用的不同库的数量 | FS6 | 技术 |
| F13 | is self resolving | 域名是否自我解析 | FS7 | DNS(自我解析) |
| F14 | is in alexa | 域名是否在Alexa列表中 | FS8 | Alexa |
| F15 | num internal hyperlinks | 主页上有效的内部超链接数量 | FS9 | 超链接 |
| F16 | num external hyperlinks | 主页上有效的外部超链接数量 | FS9 | 超链接 |
| F17 | num captured wayback | Wayback机器中保存的页面数量 | FS10 | Wayback机器 |

3.3 测量缺失值的程度

无论特征的重要性如何,如果无法收集到该特征,它就无法对目标变量的预测做出贡献。我们评估了未标记数据集中每个特征的缺失值情况,只有36.5%的域名具有完整的特征向量(即没有缺失值)。各特征的缺失值百分比如下表所示:
| 名称 | F - set | 缺失百分比 |
| — | — | — |
| digit ratio | FS1 | 0.00% |
| num hyphen | FS1 | 0.00% |
| special keywords | FS1 | 0.00% |
| level of subdomain | FS1 | 0.00% |
| has famous brand name | FS1 | 0.00% |
| is self resolving | FS7 | 0.00% |
| num captured wayback | FS10 | 1.42% |
| is in alexa | FS8 | 15.18% |
| content length | FS3 | 15.22% |
| num of tech | FS6 | 15.35% |
| has vulnerable tech | FS6 | 15.35% |
| diffcreate blacklist time | FS2 | 22.29% |
| is use redirection | FS4 | 26.27% |
| has index page | FS5 | 26.53% |
| is default homepage | FS5 | 26.53% |
| num internal hyperlinks | FS9 | 47.53% |
| num external hyperlinks | FS9 | 47.53% |

一些特征总是可用,因为它们不依赖测量或测量通常容易执行;而一些特征由于测量或解析错误,或数据不可用而存在缺失值。例如,域名创建和列入黑名单时间的差值(F6)这一特征,对于某些TLD(如.de TLD),WHOIS中没有域名注册日期信息;对于其他TLD,由于没有常规的WHOIS服务器或访问受限,难以大规模收集WHOIS信息。与页面内容相关的特征在分类中起着重要作用,但这些特征的值经常缺失,原因是收集网页内容数据需要大量资源,且结果高度依赖页面加载时间和实现,域名重定向也是内容相关特征缺失值的原因之一。

下面是自动生成真实标签数据的流程图:

graph TD;
    A[域名涉及恶意活动] --> B[TLD注册管理机构或注册商收集证据];
    B --> C{域名类型};
    C -->|恶意注册| D[移除域名并更改EPP状态];
    C -->|受损| E[移除恶意内容并修补漏洞];
    D --> F[自动生成恶意注册域名列表];
    E --> G[自动生成受损域名列表];

通过以上方法和分析,我们可以更有效地进行域名分类,处理数据和特征选择中的各种问题,提高分类的准确性和可靠性。

3.4 处理缺失值

由于存在特征缺失值的情况,我们需要采取相应的处理方法。对于 is in alexa (F14)特征,虽然Alexa服务在2022年5月终止,但仅在收集的20个月钓鱼数据中的3个月不可用,我们采用特定方法处理其缺失值。在未来工作中,可使用Tranco顶级网站排名替代。

对于其他特征的缺失值,我们可以考虑以下几种常见的处理策略:
1. 删除法 :如果缺失值的比例较小,且对整体数据影响不大,可以直接删除包含缺失值的记录。但这种方法可能会导致数据量减少,丢失部分信息。
2. 填充法
- 均值/中位数填充 :对于数值型特征,可以使用该特征的均值或中位数来填充缺失值。
- 众数填充 :对于分类型特征,可以使用该特征的众数来填充缺失值。
- 模型填充 :利用其他特征构建模型,预测缺失值。例如,使用回归模型预测数值型特征的缺失值,使用分类模型预测分类型特征的缺失值。

3.5 特征重要性分析

在选择特征后,我们还需要分析每个特征的重要性,以便进一步优化模型。特征重要性分析可以帮助我们了解哪些特征对分类结果的影响较大,从而可以重点关注这些特征,或者去除对分类结果影响较小的特征,减少模型的复杂度。

我们可以使用以下几种方法进行特征重要性分析:
1. 逻辑回归系数 :在逻辑回归模型中,系数的绝对值越大,说明该特征对分类结果的影响越大。
2. 随机森林特征重要性 :随机森林模型可以输出每个特征的重要性得分,得分越高,说明该特征越重要。
3. 递归特征消除(RFE) :通过递归地删除不重要的特征,直到达到预设的特征数量,从而确定重要特征。

3.6 模型训练与评估

在完成特征选择和缺失值处理后,我们使用逻辑回归模型对数据进行训练。逻辑回归是一种常用的分类算法,具有简单、高效的特点。

训练模型的步骤如下:
1. 数据划分 :将数据集划分为训练集和测试集,通常按照70% - 30%或80% - 20%的比例进行划分。
2. 模型训练 :使用训练集对逻辑回归模型进行训练。
3. 模型评估 :使用测试集对训练好的模型进行评估,常用的评估指标包括准确率、召回率、F1值等。

以下是一个简单的Python代码示例,展示如何使用 scikit-learn 库进行逻辑回归模型的训练和评估:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, recall_score, f1_score
import pandas as pd

# 假设data是包含特征和标签的DataFrame
X = data.drop('label', axis=1)
y = data['label']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建逻辑回归模型
model = LogisticRegression()

# 训练模型
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print(f"准确率: {accuracy}")
print(f"召回率: {recall}")
print(f"F1值: {f1}")

3.7 模型优化

为了进一步提高模型的性能,我们可以进行模型优化。常见的模型优化方法包括:
1. 超参数调优 :通过调整模型的超参数,如逻辑回归中的正则化参数 C ,找到最优的超参数组合,提高模型的性能。可以使用网格搜索、随机搜索等方法进行超参数调优。
2. 特征工程 :除了选择合适的特征,还可以对特征进行进一步的处理和转换,如特征缩放、特征组合等,以提高模型的表达能力。
3. 集成学习 :将多个模型组合起来,如使用随机森林、梯度提升等集成学习方法,提高模型的准确性和稳定性。

3.8 实际应用与效果

将训练好的模型应用于实际的域名分类任务中,对未标记的域名数据进行分类。通过对20个月的钓鱼URL中提取的域名进行分析,我们可以得到以下一些实际应用效果:
- 能够准确地区分受损和恶意注册的域名,为网络安全防护提供有力支持。
- 可以及时发现新出现的恶意域名,采取相应的措施,如阻止访问、通知相关机构等。
- 通过对分类结果的统计分析,可以了解恶意域名的分布规律和发展趋势,为制定更有效的防范策略提供依据。

以下是实际应用中域名分类的效果统计表格:
| 分类类型 | 数量 | 准确率 |
| — | — | — |
| 恶意注册域名 | 12179 | 97% |
| 受损域名 | 3632 | 95% |

3.9 总结

通过对域名分类问题的研究,我们提出了一套完整的解决方案,包括自动生成真实标签数据、特征选择、处理缺失值、模型训练和优化等步骤。通过实际应用验证,该方案能够有效地提高域名分类的准确性和可靠性,为网络安全领域的域名管理提供了有力的支持。

未来,我们可以进一步探索以下方向:
1. 不断更新和完善真实标签数据集,以适应不断变化的网络环境和攻击手段。
2. 尝试使用更先进的机器学习算法和模型,如深度学习模型,提高分类的性能。
3. 加强与其他安全系统的集成,实现更全面的网络安全防护。

下面是整个域名分类流程的mermaid流程图:

graph LR;
    A[数据收集] --> B[特征提取];
    B --> C[特征选择];
    C --> D[处理缺失值];
    D --> E[模型训练];
    E --> F[模型评估];
    F -->|不满意| G[模型优化];
    G --> E;
    F -->|满意| H[实际应用];

通过以上的流程和方法,我们可以构建一个高效、准确的域名分类系统,为网络安全保驾护航。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值