真的黑客能让你分分钟开进沟里,但他们不屑于此
文|谢幺
0.被指路老头坑死的项羽
大家好,我是谢幺。
今天的黑客技术科普,得从两千多年前说起。
话说公元前202年,垓下,项羽大败,带八百精锐开着疾跑突围,速度之快,跑到后面只有一百多个兵跟上。
本来妥妥能跑路,忽然遇到一个分岔路口,迷了路,这时路边田里正好有个老头,项羽就问他江东怎么走,老头:“往左。”
项羽照着走,没走多远马蹄就陷进沼泽地,耽误了时间,被汉军追上。
内心OS:“我信你个鬼,糟老头几坏得很!”
后面的事大家都知道了,一代霸王就此下线。
司马迁把这件事写进了他的书里。
“项王至阴陵,迷失道,问一田父,田父绐曰‘左’。左,乃陷大泽中。以故汉追及之。
——《史记·项羽本纪》司马迁
后来有人说:一定是项羽问路不礼貌,所以田父决定教他做人;也有人说:田父是一位智者,不愿看到继续打仗生灵涂炭,所以故意弄死项羽;还有人说:田父其实是刘邦提前安插的间谍……
总之,这段历史告诉我们:指路人很重要,可以让你生,也可以让你死,都不知道咋死的。
台下观众
:死过矣!可是这跟黑客攻击有啥关系?
1.田父与DNS系统
你也许知道,互联网世界里错综复杂,“地名”也就是服务器地址最初都是用IP地址来记录的,比如202.108.22.5,很难记,容易把人搞晕。
于是技术大佬们就设计了一套“域名系统”,英文名叫DNS(Domain Name System)。
从此,服务器不仅可以拥有IP地址,还可以给自己挂一个“域名”,方便广大网友寻找。比如上面提到的IP地址:202.108.22.5 其实是www.baidu.com服务器IP。
哪个更好记一目了然。
当你在互联网世界唱着小曲飙着车,DNS解析服务器就扮演了“田父”的角色。你在浏览器地址栏里输入:www.hornpub.cn,你的电脑或手机会跑去问“田父”。
“老头,羊角酒馆(www.hornpub.cn)咋走?”你的设备问。
田父(DNS解析服务器)掏出一卷长长的表格,“嗯,查到了,是66.254.114.41,小伙子注意安全。”
“得嘞谢谢,好人一生平安。”你的电脑得了地址,径直前往。于是你就打开了网页。
即便你感觉不到,但只要你正常上网,每天至少得跟DNS打上几千次交道。
无数个DNS解析服务器分布在地球的各个角落,它们就像永不停歇的机器,为全世界人民服务。
每时每刻,假如你能俯瞰世界互联网地图,上面都分布着密密麻麻无数个大大小小的“田父”正在为网民们指路。
那么问题来了:如果黑客或者坏人盯上田父,会发生什么?
2.搞定“田父”
坏人盯上田父,分两种情况。
其一是一顿暴打,让“田父”丧失指路能力。
2006年,美国最大的DNS域名解析服务商Dyn就被一个宅男用僵尸网络打瘫,那时,无数人同时抬头看向彼此,他们手里的手机、电脑陷入一片空白。Twitter、spotify、netflix、airbnb、github、reddit、Paypal 等等一系列服务相继瘫痪。攻击共来袭三次,每次持续1小时,史称“美国大断网”。
其二是黑客对着“田父”一顿忽悠,把它“策反”,或者让它出错,给人瞎指路。
也许你看出来了,第一种情况像是原子弹,虽摧毁一切,但充其量让你上不了网,第二种情况却能神不知鬼不觉地把人带进阴沟里。
2020年10月,幺哥坐在GeekPwn极棒大赛的观众席,有幸看到一次利用DNS把人带进沟里的技术演示。
当时台上评委拿着目标手机,打开一个网站,起初这个网站显示蓝底红字:
然后选手在自己电脑上一顿操作。
评委再次输入刚才的网址,网页就变成红色——这意味着目标手机被劫持到黑客的钓鱼网站。整个过程只花了几分钟。
这个攻击的精妙之处在于,选手的电脑并不需要跟目标手机连入同一个网络(专业术语叫Off-path)——这意味着可以像全球巡航导弹一样,黑客躲在地球上的任何一个角落动动手指,都能对千里之外的目标发起这种攻击。
为了弄懂其中的奥秘,我默默记下选手们的名字,一回到北京,就杀到清华-奇安信网络安全联合研究中心,逮住当时的几个参赛选手一问究竟。
奇安信公司大厅的小黄猫还挺萌
3.失传多年的漏洞重出江湖
技术小哥:“你知道2008年卡明斯基发现的那个震惊全网的DNS重大漏洞吗?我们这次攻击演示相当于重现了当年那个漏洞的攻击场景。”
我:“卡什么斯基?”
技术小哥:“卡明斯基!”
我:“卡明什么基?”
技术小哥:“卡明斯基!”
我:“什么明斯基?”
技术小哥:“……”
好吧我显然不知道。于是小哥帮我梳理了一下整件事的前后逻辑:
2008年,一个叫卡明斯基的研究员小哥发现了DNS系统的重大安全缺陷,震惊业界。
有多震惊?卡明斯基当时给另一位技术大佬保罗·维克西(“域名软件之父”)打电话讲完整个经过,保罗吓得不轻:“你…你…可千万千万别再在电话里重复刚才说过的话了!”他怕电话被人窃听。
卡明斯基的那次发现被誉为当年最重要的网络安全事件之一。
丹·卡明斯基
后来微软公司牵头,和十几个厂商、相关单位闷在会议室里讨论,想出一个缓解机制(具体是什么待会儿讲)。
十多年过去了,加州大学河滨分校的钱志云教授带着实验室的同学们研究出一套办法,可以绕过当年的那个缓解机制。
讲到这个必须多说一嘴,网络安全技术领域经常出现类似的事:研究者先找到一个漏洞,报告给厂商,等厂商把漏洞修复,大家都以为不会再有问题时,诶~研究者们又想出个办法攻破这个修复机制。
但是因为疫情的缘故,钱志云教授和同学们这次不方便回国参加2020年极棒大赛,所以找到他们在国内的小伙伴清华奇安信联队,让他们代劳把攻击方式制成实际可用的攻击程序,到极棒大会的舞台展示。这便出现了第二段中的一幕——载入互联网安全史册的DNS攻击重现江湖。
为了解释清楚整个过程,我们还是从2008年DNS的第一场雪说起。
4.黑掉DNS系统的第一步:先了解它
DNS系统的具体工作流程是这样滴:
你在电脑(或手机)的浏览器里输入网址,也就是网站域名,比如www.qianhei.net
你的电脑或手机会跑去问你的 ISP(网络服务提供商,移动联通电信之类)的递归DNS服务器:
你的机器:“嘿哥们儿,知道www.qianhei.net怎么走吗?”
递归DNS服务器翻了翻它的小本本,发现没写,回复说:“我不晓得,但我可以帮你问一下根域名服务器。”
递归DNS服务器:“大哥,请问您知道www.qianhei.net 的IP地址是多少吗?”
根DNS服务器通常不会直接回答,而是会告诉他该找谁:“我不晓得,但是我晓得.net域名都是顶级域名服务器大娃管的,你去问大娃吧。”
于是递归DNS服务器又跑去问顶级DNS服务器“大娃”。
递归DNS服务器:“喂?是大娃吧?www.qianhei.net的IP地址是多少?”
顶级DNS服务器大娃:“不知道,你去问权威服务器二娃吧,他知道,qianhei.net 这一片归他管。”
好吧,又去问权威DNS服务“二娃”。
递归DNS服务器:“喂?二娃吧?请问www.qianhei.net的IP地址是多少?”
www.qianhei.net这个域名比较简单,所以到这时二娃已经知道它的IP地址了,假如遇到别的更复杂的域名,比如xieyao.zhenshuai.qianhei.net,二娃还会继续踢皮球给三娃、四娃……
权威服务器二娃对递归DNS服务器说:“我知道!我知道!www.qianhei.net的IP地址是47.92.24.48……可以把我脖子上的刀可以放下了吗?”
递归DNS服务器历经九九八十一难,终于拿到IP地址,递归给你的电脑,于是你的电脑就可以高高兴兴地访问浅黑科技的官网啦。
干完活,递归DNS服务器心想:“这要是每次都这么折腾我一遍,岂不是要我老命?”于是它掏出一张纸,把刚才你问的IP地址和域名的对应关系临时记在上面。
这张临时用的纸就叫“DNS缓存”,在一定时间内,当有人再问它www.qianhei.net的IP地址,它直接从缓存里找就行,不必再求别人。
DNS的基础知识铺垫完毕,现在问题就出现这个缓存上。
从理论上来说,如果黑客如果能想办法让DNS服务器把一条错误的DNS解析记录记录到缓存小本本里,在缓存有效的时间里,就能把人导进沟里。
- 下一页