作者 |轩辕之风

来源 |编程技术宇宙(ID:xuanyuancoding)

这两天,安全圈又曝重大漏洞了!!!你可能中招了都还不知道。


(资料图片仅供参考)

说这个漏洞前,请大家思考一个问题:

产品经理告诉你,需要一个自动检测更新的功能,你打算怎么实现?

这是一个很常见的功能,包括像微信、浏览器等在内的常用软件基本都有这个功能,经常点进去就提示你要更新。然后点击更新按钮,进行升级。

要实现这个功能,最简单的逻辑就是,软件启动的时候跟后台通信,如果发现更新,就从我们的指定的地址拉取最新的软件安装包进行安装,看,简单吧。

现在以安全的角度来审视这个过程,这里面存在什么安全风险吗?


···

思考五秒钟

···


首先,如何确保我们是在跟我们真正的后台在通信?而不是某个攻击者弄的假地址?

其次,如何确保下载的安装包是正确的,没有被篡改?

要完成一个安全的升级程序,需要确保与我们真实的后台建立通信,并确保下载到的程序确实是我们的程序,未经篡改。

一般来说,我们都会通过HTTPS通信,并加上数字签名校验等手段来确保上面的安全性。

而这两天曝出漏洞的就是大名鼎鼎的技嘉-GIGABYTE,在检测更新这里翻了车。

据国外专注固件的网络安全厂商Eclypsium披露,他们在技嘉出售的主板固件中发现了漏洞。

技嘉主板的计算机重新启动时,主板固件中的代码就会悄悄地启动一个更新程序,然后这个更新程序会下载并执行另一个软件。

问题就出在这个更新的机制上,经过逆向分析发现,这个更新程序对下载的内容完全没有任何校验就直接来运行了!

更可笑的是,这个更新程序允许在一些情况下,不经HTTPS,而是直接使用HTTP来下载文件。

假如,黑客通过一些手段,将HTTP中访问的域名劫持到自己的服务器上,那技嘉更新程序将会下载到自己提前准备的恶意程序,可以是一个勒索病毒,一个挖矿程序,一个木马,一个任意的程序。因为技嘉根本没做校验!

那么使用HTTPS就一定安全了吗?

不一定。通过逆向分析发现,技嘉并未对HTTPS建立连接过程中的服务器证书进行校验,导致黑客同样可以构建一个假的HTTPS服务,完成攻击。

我们平时使用浏览器访问HTTPS之所以相对安全,是因为浏览器有帮我们检查服务器的证书是否可信,一旦发现不可信,就会发出如下的提醒:

至于浏览器是如何验证证书是否可信,大家可以参考我之前写过的一篇文章:为了一个HTTPS,浏览器操碎了心!

一个检测更新的功能,想必我们经常遇到,很多时候,程序员为了简单省事,都是把功能实现就不管了。至于安不安全,很少考虑。

这对于一些小公司,开发一些简单的软件,用的人也不多,黑客也不会盯上你。而一旦你的产品用的人多了,那可就要重视起安全问题了。尤其是像微信、抖音这类国民应用,如果发现这类安全问题,那简直是一场灾难。

所以,程序员们,多了解一些安全知识,没有坏处。

据悉,受这一漏洞影响的PC计算机将有几百万的规模。如果你的电脑是技嘉主板,赶快去检查一下吧!

最后阴谋论一下,这真的只是技嘉一不小心的bug吗?评论区说说你的看法。

推荐内容