大家好,我是周杰伦。
基本上所有人在接触网络的时候,都会接受信息安全教育:陌生人发来的链接不能随便点,小心中毒!
那为什么不能随便点,点了又可能会发生什么呢?对于大部分人非安全行业或者刚进入安全行业的小白来说,可能对此并没有太明确的认识。
有些链接点开后可能是钓鱼网站,伪装成某个正常的页面,让你输入账户、密码信息,这样一来钓鱼网站的制作者就能拿到你的账号信息。这类钓鱼链接打开后如果不去输入信息,问题也不大。
但还有一些链接更加危险,连点都不能点,一旦点击,可能就会被植入病毒、木马、挖矿程序、勒索软件,电脑或手机沦为别人的肉鸡。
今天就跟大家聊一下这类更危险的链接:点击一个链接,电脑或者手机就会被黑客控制,这是真的吗,如果是真的,他是怎么办到的呢?
链接是怎么打开的
首先来明确一个问题,当我们点击一个链接的时候,是什么程序来负责打开它呢?
在以前的时候,一般情况下,是由电脑上安装的浏览器来打开。
但是现在这几年,很多应用程序都会内嵌一个浏览器,不再使用系统安装的浏览器,而用自己内嵌的浏览器打开。
比如QQ、微信、钉钉、微博、邮件APP等等,它们都有自己的内嵌浏览器。
这么做的原因,其实也不难理解:为了流量!
但总归来说,不管系统的也好、APP内嵌的也罢,最终都是用浏览器打开了这个链接。
而说到浏览器,别看国内五花八门的浏览器有很多,主流的内核就那几个:
IE、Chroium、Webkit···
通过浏览器打开这些恶意链接的那一刻,危险才刚刚开始。
漏洞攻击
浏览器之所以能够展示出我们能看到的网页,离不开它内核中两个最重要的引擎:HTML渲染引擎和JavaScript执行引擎。
前者负责根据HTML网页内容排版渲染出我们看到的网页,后者负责执行网页中的JS代码,实现网页的动态交互。
JavaScript是一门解释执行的脚本语言,负责来解释执行它的就是这个JS执行引擎。
设想一下,假设JS执行引擎的代码有bug,不怀好意的人利用这个bug,写出一段特殊的JavaScript代码去触发执行引擎的bug,轻则让浏览器崩溃,重则执行恶意代码,控制主机。
事实上,这正是浏览器漏洞攻击的惯用手法。
市场份额最广的浏览器最容易被攻击,2015年之前,是IE的天下,那时候IE是最容易被攻击的浏览器。2015年之后,Chrome异军突起,成为了如今黑客主要攻击的对象。
除了JavaScript,IE浏览器还可以执行VBScript,除了网页脚本,浏览器在工作的时候也可能会引入一些外部插件,比如ActiveX、Flash这些东西,而这些东西也都是黑客最爱攻击的对象。
至于漏洞攻击手法,更是五花八门:
从早期的栈溢出、堆溢出,到后来的堆喷射、ROP,还有数组越界、UAF等各种招式。
当然浏览器和操作系统也不是吃素的,随着攻击方式的推陈出新,安全防御手段也是层层加码,从栈保护GS、地址空间随机化ASLR,到数据执行保护DEP、控制流保护CFG,还有浏览器沙箱防御,漏洞利用的难度大大增加。
经典漏洞
接下来盘点一下,浏览器攻防历史上,一些经典的漏洞。
CVE-2014-6332
这是一个IE浏览器的OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,用户使用Internet Explorer浏览器查看该网站的时允许远程执行代码。
而且这个漏洞可以绕过沙箱保护,危害极大。说白了,如果点开一个包含这个漏洞的URL,你的电脑就可能被对方控制了。
CVE-2014-0322
这同样是一个IE浏览器的漏洞,此漏洞是UAF(Use After Free)类漏洞,即引用了已经释放的内存,结合flash实现了防御机制的突破,实现执行攻击者任意代码,危害同样巨大。
CVE-2021-21220
这是一个Chrome浏览器的漏洞,今年刚刚爆发不久,同样通过一系列巧妙的手法绕过了浏览器的安全机制,实现远程代码执行,可用来控制主机。
大家可以在GitHub上找到这些漏洞的POC代码来测试验证一下,但仅供学习技术用途,切莫拿去干坏事发给别人。
对于我们普通人来说,不要点击来历不明的链接,如果确实要点击也要在安全的环境下点击(比如虚拟机中),及时给浏览器和系统打补丁。
所以,现在你知道为什么不要随便点击来历不明的链接了吧?
哦对了,这里有一个链接,谁来帮我点一下: