什么是同形异义字符攻击?
同形异义字符攻击(也称同形字攻击或视觉欺骗攻击)是一种复杂的网络钓鱼技术。攻击者注册使用视觉上类似合法字符的域名,例如用“rn”伪装“m”(rnicrosoftcom 与 microsoft.com),或用西里尔字母“а”(U+0430)替代拉丁字母“a”(U+0061)。这类攻击利用人类视觉识别的局限,诱使用户访问恶意网站。常见的同形字符替换
基于 ASCII 的替换
| 原字符 | 欺骗字符 | 视觉效果 |
|---|---|---|
| m | rn | “rn”看起来像“m” |
| w | vv | “vv”类似“w” |
| l(小写 L) | 1(数字一) | 几乎无法区分 |
| O | 0 | 经常混淆 |
| cl | d | 组合后相似 |
Unicode/IDN 替换
| 拉丁字母 | 西里尔字母 | Unicode 码点 |
|---|---|---|
| a | а | U+0061 与 U+0430 |
| e | е | U+0065 与 U+0435 |
| o | о | U+006F 与 U+043E |
| p | р | U+0070 与 U+0440 |
| c | с | U+0063 与 U+0441 |
同形异义字符攻击如何运作
攻击方法
1. 确定目标:攻击者选择高价值品牌域名
2. 分析字符:找出可以替换的字符
3. 注册域名:注册视觉上相似的域名
4. 克隆网站:复制合法网站的外观
5. 传播链接:通过钓鱼邮件发送伪造链接
6. 窃取凭据:在假网站上获取用户登录信息
真实案例
Legitimate: apple.com
Spoofed: аррӏе.com (uses Cyrillic а, р, ӏ, е)
app1e.com (uses number 1 for l)
appIe.com (uses capital I for l)
技术防御机制
浏览器防护
现代浏览器会实施 IDN 同形字防护:
- 对可疑域名显示 Punycode(xn--),而不是 Unicode
- 对混合脚本域名显示警告
- 拦截已知的同形字符模式
Punycode 转换
IDN 域名会转换为兼容 ASCII 的编码:
Unicode: аррӏе.com
Punycode: xn--80ak6aa92e.com
DNS 层防护
- 某些注册局会限制 IDN 字符集
- 制定混淆字符拦截策略
- 要求相似域名由同一注册人持有
检测与预防
面向用户
1. 仔细检查 URL:点击前将鼠标悬停在链接上
2. 使用书签:通过已保存的书签访问敏感网站
3. 检查证书:核对 SSL 证书中的组织名称
4. 启用浏览器防护:保持浏览器更新
5. 使用密码管理器:密码管理器不会在欺骗域名上自动填充
面向组织
1. 防御性注册域名:取得常见的同形字符变体
2. 实施 DMARC:邮件认证可阻止伪造的发件人域名
3. 监控相似域名:使用品牌监控服务
4. 培训员工:让员工了解视觉欺骗风险
5. 举报滥用:为发现的仿冒域名提交下线请求
品牌保护策略
组织应主动防御同形异义字符攻击:
- 扩展域名组合:注册品牌域名的 Unicode 变体
- 监控商标:留意侵权注册
- 自动检测:部署扫描视觉相似域名的工具
- 法律行动:针对侵犯商标的域名提起 UDRP 程序
- 客户沟通:向客户说明官方域名
同形异义字符攻击利用人类视觉感知与技术字符编码之间的差异,构成持续的安全威胁。全面防护需要同时采用技术控制和用户安全意识培训。