SSL证书下的谷歌钓鱼攻击:ɢoogle.news不是google.news
背景介绍
2016年,有人购买了域名"ɢoogle.com"(注意首字母G的差异)用于钓鱼攻击。同形异义词字符看起来像ASCII字母,但编码不同,这种差异通常人眼难以察觉。
钓鱼攻击是通过伪装成可信实体来获取敏感信息(如用户名、密码和信用卡详情)的欺诈行为,通常通过电子邮件欺骗或即时消息进行,引导用户在与合法网站外观相似的虚假网站输入个人信息。
技术实验过程
域名获取
通过在任何域名注册商(如Google Domains、NameCheap和GoDaddy)搜索"ɢoogle",发现以下可用域名:
- ɢoogle.company(类似company.google.com)
- ɢoogle.email(类似mail.google.com)
- ɢoogle.tv(类似tv.google.com)
- ɢoogle.life(类似life.google.com)
- ɢoogle.live(类似live.google.com)
- ɢoogle.news(类似news.google.com)
- ɢoogletranslate.com(类似translate.google.com)
这些域名都是自动推荐的,甚至不需要发挥创造力。Google Domains主动推荐了"ɢoogletranslate.com"!
技术配置
- 服务器部署:在云平台(AWS、Google Cloud、Azure等)启动VPS
- DNS配置:将DNS路由到该服务器
- Web服务器:安装Nginx/Apache HTTP服务器
- SSL证书:成功从LetsEncrypt获取SSL证书
|
|
反向代理设置
配置Nginx实现反向代理:
|
|
为每个响应添加了HTTP头:NOT-GOOGLE-HEADER OK
,可在浏览器开发者工具中检查。
攻击效果
- 使用https://链接建立信任,同时提供恶意内容
- 在移动设备上,域名中的"ɢ"看起来像实际的"G"
- Google的JavaScript从攻击者域名正常运行,无需模仿Google服务
- 通过社交工程获得有机流量,证明攻击可行性
潜在危害
- 中间人攻击:攻击者与用户进行SSL握手,暴露用户流量
- 凭证窃取:覆盖HTML中的
<a>
标签,指向自定义钓鱼登录页面 - 代码注入:在HTTP正文中注入恶意
<script>
标签,在客户端浏览器执行代码
防御建议
- 用户层面:对链接中域名的大写/奇怪字母保持警惕
- 注册商层面:应禁止包含"ɢoogle"或"oogle"的域名注册
- 技术层面:
- JavaScript应检查
window.location
是否为合法Google域名 - 服务端可通过验证请求Referrer返回HTTP错误响应
- 系统管理员应在IDS/IPS中实施网络流量静态分析规则
- JavaScript应检查
Google的回应
Google认真对待了安全报告,承认同形异义词攻击在社会工程应用中的趣味性,但部署能欺骗用户和基础设施的攻击更具挑战性。
结论
这种攻击的复现步骤对于具有基本Linux和网络知识的任何人来说都相当简单。在找到解决方案之前,每个大公司或服务都需要通过购买类似域名来保护其域名和资产。