复盘Github中间人攻击事件疑云
By 青衣极客 Blue Geek In 2020-04-12
2020年03月26日,v2ex网站上有网友反馈在访问Github Pages时出现异常,浏览器报错。从当天各处的消息来看,受影响的网站包括github.io、github.com和京东商城。

1. 消息
蓝点网的消息显示:攻击者大规模劫持京东和Github等网站,该事件主要受影响的是部分用户但是涉及到所有的运营商;这次攻击似乎是通过骨干网劫持443端口;中国三大电信运行商和教育网都可以复现劫持问题,但是国外的网络却并未出现异常。蓝点网发布的部分信息动态更新指出此次劫持在3月28日凌晨基本结束,绝大部分地区恢复正常访问。

据了解,这次事件是由“中间人攻击”引发的,英文名(Man in the Middle Attack),是指攻击者接管网络通讯中的服务端和客户端(或浏览器端),并可以拦截和篡改通讯内容。“DNS欺骗”和“会话劫持”是伪装成通讯参与方的常用手段,用户和服务端都以为自己是在跟对方通讯,但其实整个会话完全被第三方控制。
2. HTTPS通讯流程
这次出现网页异常的报错就像人类的发烧一样,发烧是机体在自我保护的一种方式,网页报错也是网络系统在保护通讯参与方的安全。 这就不得不说一说HTTPS的通讯流程。
HTTPS是HTTP的升级版,也就是HTTP+SSL/TSL。其中SSL/TSL主要是通过通信加密解决数据被窃取的问题,通过数字证书解决身份伪装的问题,以及数字签名解决数据被篡改的问题。流程如下:
(1). 客户端向服务器端发起请求,发送随机数R1
(2). 服务器端向客户端发送数字证书和随机数R2
(3). 客户端验证数字证书,生成随机数R3,根据R1、R2、R3生成会话密钥,并将R3发送给服务端
(4). 服务端使用私钥解密R3,根据R1、R2、R3生成会话密钥
(5). 服务端和客户端建立加密会话

3. 报错原因
本次攻击将网站的证书篡改成自己个人签名的证书,该证书不被浏览器所信任,所以浏览器发出报错的警告。这种证书在生成时需要指定邮箱,事实上,这个邮箱可以随便写一个。

根据当时网友发布的信息可以看出,本次证书使用的电子邮箱为“346608453@qq.com”。
4. 诡异的地方
(1) 使用这种方式来攻击这些HTTPS站点是显然不会成功的,那么攻击者为什么还要发动这场攻击呢?
这一点我们可以解释成攻击者是一个初学者,在学习中间人攻击技术时不小心发动了。
(2) 发动如此大规模的攻击,收益是什么?
目前看来,这场攻击没有收益,因为浏览器及时阻止了会话,没有造成用户信息的泄漏。 从这一点来看,也不像是专业的黑客所为,毕竟一般也不会冒着蹲大牢的风险干一件毫无收益的事情。
(3) 一个初学者就能劫持国内骨干网?
这是一个很奇怪的地方,到现在也没有一个合理的解释。
(4) 证书签名中的QQ号是被盗了?
这个QQ号的所有者发布信息说被盗号了,但是稍微懂一点证书自签名的人都知道,完全没有必要盗一个QQ号来生成证书,随便写一个就行了。
5. 普通人的防护
这次事件的诸多疑云都说明一点,在我们的互联网中存在一些黑暗的力量,这些力量可以劫持我们以为是安全的会话。甚至,这种劫持对他们来说并不需要什么太高的技巧,我们只能在自己的能力范围内保护好自己。
第一,不在HTTP这样非加密网站上输入个人信息,包括密码,银行卡账户以及私人联系方式。
第二,不浏览频繁跳转链接的网站,这些网站很可能是钓鱼网站。
第三,记住常用网站的大体形式,遇到异常时可能会发现不一样
第四,不点击打开不明文件,包括不明邮件的附件
到目前为止,国内的若干起攻击事件都没有下文,我们只能靠自己的经验来避免损失。一般而言,使用大型的、信誉良好的、有技术基础的企业开发和维护的网络服务会比较安全一些。

COMMENT
博客评论区功能由Github Issue提供,提交Issue时请以本文标题为话题。
"BG86-复盘Github中间人攻击事件疑云"