课题研究域名数据与威胁监测子课题02 · 第4页 / 共8页
02子课题 · 证书透明度日志监控

证书透明度日志监控第4页:恶意与钓鱼证书识别方法论

日均千万级条目中识别占极小比例的恶意证书,本质是“大海捞针”。本页解决KQ-2(准确性):先做威胁建模(谁在日志里留痕、各自证书行为有何差异);随后构建分层漏斗——品牌关键词监测(含2016—2017年PayPal真实研究案例)、IDN同形异义检测(UTS#39)、统计特征与时序启发式、机器学习模型——每层控制成本与延迟;再以三层白名单与P1-P3分级治理误报;最后通过被动DNS、URL情报、注册数据交叉验证输出可处置情报。

威胁建模品牌关键词IDN同形异义UTS#39统计特征机器学习误报治理研究状态:研究中
所属阶段分析与识别
目标受众检测工程师、威胁分析师、品牌安全团队
关键输出分层漏斗识别体系 / 分级告警规范 / 交叉验证清单

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 检测流程

  1. 规范化:NFKC规范化+小写(注意:规范化用于比对,不得用于覆盖原始值);
  2. 脚本混合检测:按Unicode脚本(Script)属性切分,含2种以上脚本的域名标记为可疑(参考UTS#39建议与confusable_homoglyphs开源库实现);
  3. 字形相似比对:将可疑域名映射到confusable字符的拉丁“骨架”(skeleton),与品牌库计算编辑距离;
  4. 复核升级:骨架距离=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 · 方法组合与工程建议

分层漏斗:成本与精度递进
每层丢弃大部分流量,仅可疑者进入下一层;末层人工确认
说明:漏斗各层比例为运营经验量级,实际数值取决于品牌词库规模与行业,须在试运行期标定。
语义层
关键词+Token分析
覆盖批量钓鱼团伙的主力手段
字形层
IDN同形+编辑距离
覆盖定向仿冒,误报率低但成本较高
统计层
熵/可读性/结构特征
发现无品牌词的新型变体与C2域名
时序层
注册×签发×解析联动
与课题其他子课题协同的最高价值信号
  • 冷启动建议:先上线L1+L2规则(1—2周即可运行),积累标注样本后再引入L4模型;
  • 回放评估:新规则/新模型必须对历史库回放评估(误报率、漏报率、时延),灰度后上线;
  • 闭环反哺:人工定性结果回流词库、白名单与训练集——无反馈闭环的规则系统会在数月内“腐化”。

本节参考来源(第4页)

方法性内容均有公开出处;算法参数为工程建议值,须按实际数据标定。

[1]

The SSL Store《Let's Encrypt Has Issued Certificates to Over 14,000 PayPal Phishing Sites》(2017-03-20,PayPal案例出处):thesslstore.com/blog

[2]

Unicode UTS#39《Unicode Security Mechanisms》(confusable检测标准):unicode.org/reports/tr39;开源实现confusable_homoglyphs:github.com/vhf/confusable_homoglyphs

[3]

APWG Phishing Activity Trends Report(钓鱼站点SSL趋势):apwg.org/trendsreports

[4]

PhishTank:phishtank.org;OpenPhish:openphish.com;URLhaus:urlhaus.abuse.ch;Tranco榜:tranco-list.eu

[5]

LightGBM(GBDT实现):github.com/microsoft/LightGBM;字符级域名分类研究可参考公开文献(DGA检测方向有大量可复用特征工程方法)

[6]

《中华人民共和国反电信网络诈骗法》(2022-12-01施行):gov.cn