01 · DGA的生成机理与算法解剖
1.1 为什么攻击者需要DGA
早期僵尸网络的C2采用硬编码域名或IP列表,防守方只需下架一个域名或封锁一个IP即可切断控制通道。DGA的本质是把"基础设施对抗"转化为"算法对抗":恶意软件与C2运营方共享同一段生成算法与种子(常见种子为当前日期,部分家族加入感染计数器),每天(或每小时)独立地算出同一组候选域名,运营方只需注册其中少数几个,即可实现"打不死"的C2接入层。静态黑名单面临的是每日数万量级的候选域,封禁成本被彻底摊薄。
1.2 算法组件的五元结构
对公开逆向成果(Plohmann等2016年覆盖的43个家族)的归纳表明,DGA实现普遍由五个组件构成:
| 组件 | 作用 | 公开实例 |
|---|---|---|
| 种子(Seed) | 保证双方独立生成一致序列的随机源 | 当前日期(Conficker、Kraken按周)、日期+感染计数器(部分银行木马) |
| 字符源 | 字母表、词表或混合表 | a-z纯字母表(Conficker);英文词表拼接(Matsnu、Suppobox) |
| 长度策略 | 固定长度或区间随机长度 | Conficker为8—11字符;词表型由两个单词长度决定 |
| TLD选择 | 限定或随机选择顶级域 | 部分家族固定.com/.net;部分从TLD池中随机 |
| 优先级/选取规则 | 从候选集中决定查询顺序或数量 | 公开分析显示Conficker.C每日生成约5万候选域名,仅随机抽取其中500个发起查询 |
Conficker.C的"每日5万候选、查询500"出自Conficker联合工作组(Conficker Working Group)与Honeynet Project等2009年的公开分析,为社区广泛引用的事实;本课题不臆造更细粒度数字。
1.3 两大生成范式:纯随机与词表拼接
纯随机范式以Conficker为代表:从固定字母表无放回或有放回抽取字符,输出呈现高熵、低可读性、元音辅音分布异常的特征。词表范式以Matsnu、Suppobox为代表:从数千个英文单词的词表中抽取两个单词拼接(如"cloudseven""basketmoon"),输出近似自然语言,单看字符熵几乎与正常域名不可区分——这正是Antonakakis等2012年提出"必须引入词法特征"的直接动机,也构成本课题检测框架设计的分水岭:特征工程必须同时覆盖两种范式。
可复现性说明:Plohmann等人公开了43个DGA家族的逆向实现与源码级描述(随USENIX Security 2016论文发布),安全社区据此构建了公开数据集与基准测试工具。本课题所有关于家族行为的描述均以这些公开资料为准,不依赖任何未公开样本。
02 · 家族谱系与公开测量事实
下表按公开文献记载整理代表性DGA家族的行为档案。家族是否采用DGA、DGA的生成范式均有公开出处可查:
| 家族 | 范式 | 生成周期/规模(公开口径) | 备注 |
|---|---|---|---|
| Conficker | 纯随机 | 每日生成约5万候选域名,随机查询其中500个(.C变种) | 2008—2009;DGA进入主流视野的标志性家族,催生了大规模sinkhole协作 |
| Kraken | 纯随机 | 按周生成,单组量级数千(公开逆向口径) | 2008;曾以"每周更换C2"著称 |
| Torpig | 纯随机 | 按周生成候选域 | 其域名曾长期作为DGA检测研究的基准样本 |
| Pushdo / Cutwail | 纯随机 | 按日生成 | 垃圾邮件僵尸网络基础设施 |
| Gameover Zeus | 纯随机 | 按日生成 | 银行木马;2014年国际联合执法行动(Operation Tovar)中DGA域名预注册是关键处置手段 |
| Matsnu | 词表拼接 | 两个英文单词拼接为双词复合域名 | 词表型DGA的代表,常作为词法模型检测的正面样本 |
| Suppobox | 词表拼接 | 同Matsnu范式 | 公开研究中的词表型对照家族 |
| Necurs | 混合(含伪随机串+部分模式) | 按日生成大量候选域 | 曾长期为全球感染量最大的僵尸网络之一;公开报告记载其DGA产出规模巨大 |
| Locky / 主流勒索家族 | 纯随机为主 | 按日生成 | 2016年后勒索软件广泛采用DGA作为交付与C2抗封锁手段(Plohmann 2016等覆盖) |
上表生成规模一栏仅收录公开文献中有明确记载的口径;无公开精确数字的单元格以定性描述呈现,不臆造数字。家族—范式归属以Plohmann et al. 2016及Antonakakis et al. 2012为准。
03 · 特征工程体系
特征工程是DGA检测的核心竞争力。本课题按"字符层—词法层—流量层—时间层"四层组织特征词汇表:
| 层级 | 特征 | 原理与有效性 |
|---|---|---|
| 字符层 | 香农熵 / 字符分布 | 纯随机DGA的熵显著高于自然语言域名;词表型DGA该特征失效,需配合词法层 |
| 元音/辅音比(vowel ratio) | 自然语言域名元音占比约30%—40%且分布均匀;随机字符串偏离明显(Antonakakis 2012经典特征) | |
| 数字占比、重复n-gram | 部分家族(如含计数器种子的实现)数字比例异常;重复双字母模式可区分随机源 | |
| 可读性得分 | 基于马尔可夫链或字典的可读性打分,对词表型DGA敏感 | |
| 词法层 | 词典命中率(如Tranco榜单词根匹配;注意Alexa Top站点榜单已于2023年停止服务) | 词表型DGA(Matsnu类)双词均可命中常见词根但组合无意义,是本层主要捕猎对象 |
| 单词边界/复合词特征 | 拼接词边界处存在可检测的构词异常 | |
| 流量层 | 单主机NXDOMAIN占比与唯一域名数 | 感染主机对大量未注册DGA候选域查询失败,NXDOMAIN占比飙升且唯一域名数远超正常用户基线 |
| 应答IP的复用度 | 候选域中只有少数被注册,命中的域名解析高度集中;正常浏览无此模式 | |
| 查询类型分布 | 纯A记录、无HTTPS/SVCB等现代记录类型伴随,具有辅助判别价值 | |
| 时间层 | 查询间隔规律性 | 恶意软件回连常呈固定周期;对比人类浏览的泊松到达模式可分离 |
| 跨日域集合更迭 | 按日换种子的家族表现为"昨日域名今日全弃",时间序列上呈现集合突变 |
基线依赖警告:"单主机唯一域名数""NXDOMAIN占比"等特征强烈依赖网络画像。开发测试网络、服务器网段、启用了大量探测类软件的终端,其基线与办公网差异可达一个数量级。第6页将给出基线自适应方法;工程实践中直接套用通用阈值是误报失控的首要原因。
04 · 检测方法谱系
4.1 方法演进路线
4.2 各范式能力边界对比
| 范式 | 优势 | 边界与失效场景 |
|---|---|---|
| 信誉/名单 | 零误报、可解释、可司法固化 | 对当日新生成域名完全失效;只能作为"已知层" |
| 统计特征+ML | 训练数据要求低、可解释、推理开销小,适合递归侧实时判定 | 词表型DGA与短域名场景区分度下降;特征工程依赖专家经验 |
| 词法模型 | 对词表型DGA特异性强 | 对纯随机家族冗余;对"刻意构造的伪自然域名"(如部分品牌仿冒)可能误伤 |
| 深度学习 | 自动学习字符级复杂模式;对新型家族泛化潜力大 | 需要大规模标注数据;推理成本与模型漂移管理要求高;对抗样本问题真实存在(DeepDGA研究证实) |
| 行为层(NXDOMAIN聚合) | 不依赖域名内容,直接利用"大量失败解析"这一行为指纹,对加密域名同样有效 | 无法区分DGA与随机子域DDoS、终端探测行为,需联合判定 |
工程结论:单一模型不存在"最优解"。本课题推荐的组合是:信誉层兜底已知 + 字符/词法特征模型拦截未知纯随机与词表型 + NXDOMAIN行为层捕获逃逸样本。三层串联的级联架构可将单模型误报压力逐级稀释,第6页给出具体工程参数建议。
05 · 数据、评估与实验设计
5.1 评估数据集
公开可得的DGA评估资源包括:Plohmann等2016年论文随附的43个家族样本生成器与域名列表、安全社区维护的DGA域名公开数据集(如Netlab 360等机构发布的样本库)、以及Alexa/Umbrella等公开域名排名作为正常样本对照。实验设计必须遵守两条纪律:①时间外推评估——训练集与测试集按时间切片,模拟"检测未来家族"的真实场景,随机切分会系统性高估模型效果;②正常样本去污染——公开排名中含 parking 域名与已知恶意域名,需先与信誉库交叉剔除。
5.2 指标体系
5.3 检测处置策略设计
检出DGA查询后的处置不是简单的"全部阻断":未注册域名的NXDOMAIN天然即被"阻断",真正需要决策的是已被注册并应答的DGA域名。此时可选动作按烈度排序为:记录观测(新规则灰度期)→ RPZ重定向至sinkhole提示页(企业内网推荐)→ 联动EDR隔离主机(多特征交叉确认后)。处置策略必须与检测置信度分级绑定,详见第6页。
06 · 对抗演进与研究前沿
DGA攻防处于持续演进中,三个公开可考的研究前沿构成本课题的跟踪重点:
- 对抗生成(DeepDGA):Anderson、Woodbridge与Filar在ACM AISec 2016发表的DeepDGA工作证明,可用生成对抗思路产出能通过统计特征检测器的DGA域名——检测器本身成为攻击者的训练反馈。这印证了"特征公开即被规避"的军备竞赛本质,也论证了多模型级联与行为层锚点的必要性。
- 词表型与"可读性伪装"的扩展:除Matsnu范式外,部分实现开始采用多语种词表、品牌词素拼接等更贴近目标区域语言习惯的策略(公开样本研究中有记载),对以英文词根为主的词法模型构成本地化挑战——对本课题的中文网络环境而言,需补充中文拼音/拼词特征研究。
- DGA与Fast-Flux的结合(Domain-Flux):注册少量每日候选域并配合快速解析轮换,使"名单封禁"与"单点sinkhole"同时失效。此类组合手法在第4页Fast-Flux专题中统一分析。
研究的诚实边界:对抗样本研究意味着任何已发表特征都可能在数年内被系统性绕过。本课题承诺的做法是:所有检测结论标注置信度与适用条件、保留行为层兜底、持续跟踪公开文献更新特征库——而非宣称任何模型"一劳永逸"。
07 · 公开数据集与评估资源
可复现性依赖公开数据。下表列出本课题采用的基准资源(全部公开可查,标注获取方式与注意事项):
| 资源 | 提供方/出处 | 内容与用途 | 注意事项 |
|---|---|---|---|
| DGArchive | Fraunhofer FKIE(CAAD) | 公开逆向的 DGA 家族实现与每日候选域名生成器(Plohmann 2016 成果的持续维护),正常样本与 DGA 样本的配对比对基准 | 生成器输出为"算法合成样本",评估时须与真实流量回放开测区分 |
| Tranco 榜单 | Le Pochat et al., NDSS 2019 | 面向学术研究的稳定顶级域名排名(聚合多个商业榜单、抗操纵),作正常样本基准 | 榜单更新机制为滚动聚合,引用时记录榜单快照ID与日期 |
| Cisco Umbrella Top 1M | Cisco(公开下载) | 基于递归解析量的域名排名,DGA 检测研究的常用正常样本 | 含较多 parking/广告域,使用前需信誉交叉去污染 |
| Alexa Top Sites | Amazon(已停止服务) | 历史文献广泛使用的排名基准 | 该服务已于2023年停止,新研究不应再引用,本课题仅以历史文献口径提及 |
| 360 Netlab DGA 情报 | 360 Netlab(公开博客/服务) | 国内视角的 DGA 家族追踪、DGA 域名检测列表 | 面向中国网络的家族样本对本地化特征研究价值高 |
评估纪律重申:公开排名≠干净样本。任何榜单均需与威胁情报交叉剔除已沦陷/被抢注域名;时间外推评估(§05)与去污染(§5.1)是使用上述数据集的两条前置纪律。
本节参考来源(第2页)
M. Antonakakis et al., "From Throw-Away Traffic to Bots: Detecting the Rise of DGA-Based Malware", USENIX Security 2012:usenix.org会议论文页(随机森林DGA检测、NXDOMAIN聚合)
D. Plohmann et al., "A Comprehensive Measurement Study of Domain Generating Malware", USENIX Security 2016:usenix.org会议论文页(43个DGA家族逆向)
F. Weimer, "Passive DNS Replication", FIRST 2005:公开PDF存档
J. Woodbridge, H. S. Anderson, A. Ahuja, D. Grant, "Predicting Domain Generation Algorithms with Long Short-Term Memory Networks"(2016,arXiv公开预印本):arxiv.org/abs/1611.00791。另见 Curtin et al., "Detection of DGA-Generated Domain Names using Character-Level CNNs", ACM ARES 2019(字符级CNN)
H. S. Anderson, J. Woodbridge, B. Filar, "DeepDGA: Adversarially-Tuned Domain Generation and Detection", ACM AISec 2016:ACM数字图书馆(DOI 10.1145/2996758.2996767)
Schiavoni S. et al., "Phoenix: DGA-based Botnet Tracking and Intelligence", DIMVA 2014:Springer LNCS公开页(DGA追踪系统)
MITRE ATT&CK T1568.002 Domain Generation Algorithms:attack.mitre.org/techniques/T1568/002
Conficker Working Group / Honeynet Project关于Conficker.C域名生成与sinkhole的公开分析(2009,社区公开资料汇总):confickerworkinggroup.org