01 · 威胁建模
识别方法必须与攻击者行为匹配。CT日志中主要存在三类恶意主体与一类“合法噪声”,其证书行为差异显著:
| 主体 | 域名来源 | 证书行为 | 生命周期 | 识别侧重 |
|---|---|---|---|---|
| 批量钓鱼团伙 | 批量新注册域名(常含品牌词+功能词组合) | 免费DV、单域名单证、自动化签发、可能批量同模板 | 数小时~数天 | 关键词库+时序规则 |
| 定向仿冒者 | 手工构造高相似域名(IDN同形、编辑距离1-2) | 免费DV为主,单域名或含www双SAN | 数天~数周 | 同形异义+编辑距离 |
| C2/DGA运营者 | DGA生成或词表拼接域名 | 可能与正常证书无异,但域名质量特征异常 | 长周期轮换 | 熵/可读性+解析联动(子课题03/04) |
| 合法噪声 | CDN、云平台、大型企业多域名 | 共享证书(SAN可达数百域名)、通配符、平台默认证书 | — | 白名单+比例特征豁免 |
攻击者规避路径(能力边界意识):①不启用HTTPS的钓鱼(占比持续下降,APWG数据显示SSL启用率已达82%);②劫持合法站点复用其证书;③诱导用户忽略自签名证书警告(主要见于定向攻击)。CT监测覆盖不了②③——必须与URL情报、邮件网关、DNS安全互补(第5页warn-box)。
02 · 品牌关键词监测
2.1 三层关键词库
| 层级 | 内容 | 示例 |
|---|---|---|
| 品牌词层 | 官方域名、品牌名、产品名、常见官方缩写与历史品牌名 | examplebrand、example-pay |
| 功能词层 | 钓鱼页面高频功能词 | login、signin、verify、secure、account、update、confirm、billing、invoice、support、wallet、redeem、kyc |
| 组合规则层 | 品牌词×功能词×分隔符(- _ . 无分隔)×(全拼/简拼/谐音,中文品牌) | examplebrand-secure-login、examplebrand-verify(拼音:pinpai-denglu) |
2.2 匹配算法选型
| 算法 | 适用 | 参数建议 |
|---|---|---|
| 精确/后缀匹配 | 自有域名资产异动 | labels级匹配,全等即告警 |
| 子串匹配 | 品牌词粗筛 | CN与全部SAN计算;命中进入下一层 |
| 编辑距离(Levenshtein) | 变体域名(paypa1、examp1e) | 与品牌主域距离≤2即命中;长度≤5时收紧至≤1防误报 |
| Token重排/混淆 | 词序变换(secure-login-examplebrand) | 分词后集合相似度(Jaccard≥0.6) |
| 发音/拼音相似 | 中文品牌谐音、英文homophone | 双拼映射表+编辑距离组合 |
2.3 真实研究案例:PayPal证书分析(2016—2017)
The SSL Store(Sectigo旗下)基于crt.sh数据的研究统计:2016年1月1日至2017年3月6日(检索覆盖2016年全年,首个匹配证书实际签发于2016年3月25日),Let's Encrypt签发的、CN/SAN中含“PayPal”字样的证书达15,270张;研究人员随机抽取1000张人工核验后评估其中约96.7%用于钓鱼目的(折合约14,766张);同一时期其他CA合计仅签发461张含“PayPal”证书。该案例说明三点:①品牌关键词法在真实生态中命中率高;②仅关键词命中不能直接定性——剩余3.3%即误报来源(如paypal相关测试域、第三方集成商);③免费DV证书与钓鱼的高度伴生关系从CT数据角度被实证。
来源:The SSL Store研究报告(2017年3月20日,数据由crt.sh开发者Rob Stradling直接查询数据库提供);统计口径为证书CN/SAN含“PayPal”字样。引用时请注意其为2016—2017年特定时期样本。
03 · IDN同形异义检测
国际化域名(IDN)以punycode编码(xn--前缀)进入证书与DNS。攻击者用外形近似的Unicode字符构造“肉眼无法区分”的仿冒域名。典型confusable字符:
| 类别 | 字符示例 |
|---|---|
| 西里尔字母 | а(CYR a)/a、е/e、о/o、р/p、с/c、х/x、у/y——与拉丁字母视觉高度近似 |
| 希腊字母 | ο/o、ρ/p、υ/u、κ/k |
| 全角/修饰符 | 全角拉丁、上加点/下标修饰符字符(如“а̣”类组合) |
3.1 检测流程
- 规范化:NFKC规范化+小写(注意:规范化用于比对,不得用于覆盖原始值);
- 脚本混合检测:按Unicode脚本(Script)属性切分,含2种以上脚本的域名标记为可疑(参考UTS#39建议与confusable_homoglyphs开源库实现);
- 字形相似比对:将可疑域名映射到confusable字符的拉丁“骨架”(skeleton),与品牌库计算编辑距离;
- 复核升级:骨架距离=0且TLD为高风险(如与品牌官方TLD不同)→直接P1。
浏览器的IDNA展示策略(xn--形式回退显示、混合脚本限制)是用户侧缓解,不构成检测侧豁免——攻击者域名在地址栏可能显示为punycode,但钓鱼链接、二维码、邮件正文中的视觉欺骗依然有效。
04 · 统计特征与启发式
| 特征 | 说明 |
|---|---|
| 字符熵(Shannon) | 随机/DGA域名熵显著高于自然语言域名;阈值需按TLD分层标定 |
| 可读性(n-gram) | 基于常见n-gram词频的“似词率”;paypa1-secure-login似词率高但含混淆,需与同形检测联动 |
| 数字比例/长度 | 数字占比>30%、长度≥20等弱特征,用于评分加权 |
| SAN数量/通配符 | 共享证书(SAN数百)豁免关键词层;钓鱼证书极少为共享证书 |
| issuer集中度 | 同一issuer+同一小时段内批量相似证书=团伙信号 |
| 证书复用模式 | 同域名短时间重复签发(换密钥)、同模板批量签发,均为高危行为特征 |
4.1 时序规则(与注册数据联动,见子课题01)
- 规则R1:域名注册时间<7天 ∧ DV证书 ∧ 品牌相似度命中 → P1(新鲜度是钓鱼最强的单一信号之一);
- 规则R2:SCT时间戳在UTC凌晨(目标区域工作时间外)批量出现同品牌变体 → 提升聚合优先级;
- 规则R3:同一注册商/同一issuer下1小时内≥N个品牌变体 → 升级为团伙事件,整批处置。
05 · 机器学习方法
5.1 任务与标注
- 任务定义:域名级二分类(benign/phish)起步,可扩展多分类(phish/C2/dga);
- 正样本来源:PhishTank、OpenPhish、URLhaus等公开钓鱼情报中的域名(含历史CT记录回填);
- 负样本来源:Tranco Top 1M等主流站点榜单(注意:Top榜单含被劫持历史域名,需做时间对齐);
- 时间对齐纪律:特征快照必须取“证书签发时刻可见的信息”,严禁使用事后标签泄漏特征(如“该域后来进黑名单”)。
5.2 模型路线与评估
- 基线:逻辑回归/浅层树(可解释、冷启动快);主力:梯度提升树(GBDT/LightGBM类,表格特征效果好);进阶:字符级CNN/LSTM捕捉构词模式;
- 评估:按时间切分训练/测试集(模拟线上);报告PR曲线而非仅Accuracy——在恶意占比<0.1%的数据上,Accuracy毫无意义;
- 阈值策略:按“每日告警预算”(团队复核容量,如50条/日)在PR曲线上选工作点,而非默认0.5;
- 双模式运行:在线打分(新证书实时过模型)+夜间批扫(对历史库补跑新特征/新模型,评估漏报)。
06 · 误报治理与告警分级
6.1 主要误报源
| 误报源 | 治理手段 |
|---|---|
| CDN/云平台共享证书 | SAN数量超阈值(如≥20)豁免关键词层;仅当新增SAN与品牌强相关时升级 |
| 企业多域名证书 | 自有资产库白名单(含历史证书全量SAN)精确豁免 |
| 同名异业/合法近似品牌 | 品牌词库维护“合法相似域名清单”;模糊命中进入人工队列而非自动P1 |
| 自动化建站工具默认证书 | 识别平台默认域名模式(如*.pages.dev、*.github.io类)按平台策略豁免或降权 |
| 中文谐音泛化 | 拼音规则收紧阈值,避免“支付”“宝”等单字泛化爆炸 |
6.2 三层白名单
第一层企业自有资产库(含注册商账户下全部域名)→ 第二层Tranco Top 1M等主流榜单(抑制明星域名误报)→ 第三层境内ICP备案库交叉(备案主体与品牌一致的放行;未备案+品牌相似则升权——贴合境内钓鱼生态)。
6.3 告警分级
| 级别 | 判定条件(示例) | 响应要求 |
|---|---|---|
| P1 | 骨架距离=0同形域名;或R1时序命中;或已在URL情报出现同域 | 分钟级:品牌安全团队+SOC双线通知,2小时内处置决策 |
| P2 | 编辑距离≤1/关键词组合命中,未确认 | 工作时段人工复核,24小时内定性 |
| P3 | 弱特征/模型中低分 | 观察名单,进入聚合统计与周报 |
运营目标:可运营告警误报率控制在个位数百分比(具体目标按团队容量设定),每日P1+P2总量不超过人工复核上限(建议≤50条)。
07 · 交叉验证与富化
证书命中只是“嫌疑”,交叉验证将其转化为“情报”。富化清单(均为公开或授权数据源):
| 维度 | 数据源 | 判别价值 |
|---|---|---|
| URL情报交叉 | URLhaus、PhishTank、OpenPhish | 证书发现早于URL情报收录=首发证据,价值最高 |
| 解析行为 | 被动DNS(首次解析时间、解析IP) | 证书后数小时内出现解析=上线信号;与Fast-flux子课题联动 |
| 注册数据 | RDAP/注册商数据(时间、注册商) | 支撑R1时序规则与注册商聚类(子课题01/05) |
| 多引擎扫描 | VirusTotal等 | URL/域名信誉交叉确认 |
| 图谱关联 | 自建“证书→域名→IP→URL”图谱 | 团伙扩线:同IP/同模板/同注册商批量证书聚为一案 |
08 · 方法组合与工程建议
- 冷启动建议:先上线L1+L2规则(1—2周即可运行),积累标注样本后再引入L4模型;
- 回放评估:新规则/新模型必须对历史库回放评估(误报率、漏报率、时延),灰度后上线;
- 闭环反哺:人工定性结果回流词库、白名单与训练集——无反馈闭环的规则系统会在数月内“腐化”。
本节参考来源(第4页)
方法性内容均有公开出处;算法参数为工程建议值,须按实际数据标定。
The SSL Store《Let's Encrypt Has Issued Certificates to Over 14,000 PayPal Phishing Sites》(2017-03-20,PayPal案例出处):thesslstore.com/blog
Unicode UTS#39《Unicode Security Mechanisms》(confusable检测标准):unicode.org/reports/tr39;开源实现confusable_homoglyphs:github.com/vhf/confusable_homoglyphs
APWG Phishing Activity Trends Report(钓鱼站点SSL趋势):apwg.org/trendsreports
PhishTank:phishtank.org;OpenPhish:openphish.com;URLhaus:urlhaus.abuse.ch;Tranco榜:tranco-list.eu
LightGBM(GBDT实现):github.com/microsoft/LightGBM;字符级域名分类研究可参考公开文献(DGA检测方向有大量可复用特征工程方法)
《中华人民共和国反电信网络诈骗法》(2022-12-01施行):gov.cn