作者 |轩辕之风
来源 |编程技术宇宙(ID:xuanyuancoding)
这两天,安全圈又曝重大漏洞了!!!你可能中招了都还不知道。
(资料图片仅供参考)
说这个漏洞前,请大家思考一个问题:
产品经理告诉你,需要一个自动检测更新的功能,你打算怎么实现?
这是一个很常见的功能,包括像微信、浏览器等在内的常用软件基本都有这个功能,经常点进去就提示你要更新。然后点击更新按钮,进行升级。
要实现这个功能,最简单的逻辑就是,软件启动的时候跟后台通信,如果发现更新,就从我们的指定的地址拉取最新的软件安装包进行安装,看,简单吧。
现在以安全的角度来审视这个过程,这里面存在什么安全风险吗?
···
思考五秒钟
···
首先,如何确保我们是在跟我们真正的后台在通信?而不是某个攻击者弄的假地址?
其次,如何确保下载的安装包是正确的,没有被篡改?
要完成一个安全的升级程序,需要确保与我们真实的后台建立通信,并确保下载到的程序确实是我们的程序,未经篡改。
一般来说,我们都会通过HTTPS通信,并加上数字签名校验等手段来确保上面的安全性。
而这两天曝出漏洞的就是大名鼎鼎的技嘉-GIGABYTE,在检测更新这里翻了车。
据国外专注固件的网络安全厂商Eclypsium披露,他们在技嘉出售的主板固件中发现了漏洞。
技嘉主板的计算机重新启动时,主板固件中的代码就会悄悄地启动一个更新程序,然后这个更新程序会下载并执行另一个软件。
问题就出在这个更新的机制上,经过逆向分析发现,这个更新程序对下载的内容完全没有任何校验就直接来运行了!
更可笑的是,这个更新程序允许在一些情况下,不经HTTPS,而是直接使用HTTP来下载文件。
假如,黑客通过一些手段,将HTTP中访问的域名劫持到自己的服务器上,那技嘉更新程序将会下载到自己提前准备的恶意程序,可以是一个勒索病毒,一个挖矿程序,一个木马,一个任意的程序。因为技嘉根本没做校验!
那么使用HTTPS就一定安全了吗?
不一定。通过逆向分析发现,技嘉并未对HTTPS建立连接过程中的服务器证书进行校验,导致黑客同样可以构建一个假的HTTPS服务,完成攻击。
我们平时使用浏览器访问HTTPS之所以相对安全,是因为浏览器有帮我们检查服务器的证书是否可信,一旦发现不可信,就会发出如下的提醒:
至于浏览器是如何验证证书是否可信,大家可以参考我之前写过的一篇文章:为了一个HTTPS,浏览器操碎了心!
一个检测更新的功能,想必我们经常遇到,很多时候,程序员为了简单省事,都是把功能实现就不管了。至于安不安全,很少考虑。
这对于一些小公司,开发一些简单的软件,用的人也不多,黑客也不会盯上你。而一旦你的产品用的人多了,那可就要重视起安全问题了。尤其是像微信、抖音这类国民应用,如果发现这类安全问题,那简直是一场灾难。
所以,程序员们,多了解一些安全知识,没有坏处。
据悉,受这一漏洞影响的PC计算机将有几百万的规模。如果你的电脑是技嘉主板,赶快去检查一下吧!
最后阴谋论一下,这真的只是技嘉一不小心的bug吗?评论区说说你的看法。