大家早上好,我是YUAN。
这几天,安全圈又曝出了一个重大漏洞。如果你的电脑使用的是技嘉-GIGABYTE主板,那么你可能已经中招了,但还不知情。
在介绍这个漏洞之前,让我们思考一个问题:如果产品经理让你实现一个自动检测更新的功能,你会怎么做呢?
这是一个很常见的功能,包括微信、浏览器等常用软件都拥有这个功能。通常的实现方法是,在软件启动时与后台通信,如果发现新版本,就从指定地址下载最新的安装包进行安装。这种实现方法看起来很简单,但是从安全的角度来看,其中存在什么风险呢?
首先,我们如何确保与真正的后台进行通信,而不是被攻击者引导到一个假地址上?
其次,我们如何确保下载的安装包是正确的,没有被篡改?
为了实现一个安全的升级程序,我们需要确保与真正的后台建立通信,并确保下载到的程序确实是我们的程序,未被篡改。通常,我们会使用HTTPS进行通信,并使用数字签名校验等手段来确保安全性。
然而,技嘉-GIGABYTE近日曝出的漏洞就是在检测更新这个功能上犯了错。
据国外专注固件的网络安全公司Eclypsium披露,他们在台湾制造商技嘉出售的主板固件中发现了漏洞。当技嘉主板重新启动时,主板固件中的代码会启动一个更新程序,该程序会下载并执行另一个软件。问题出在更新机制上,逆向分析发现,这个更新程序对下载的内容完全没有进行校验就直接运行了。更糟糕的是,这个更新程序在某些情况下可以使用HTTP而不是HTTPS进行下载。
如果黑客通过某些手段将HTTP中访问的域名劫持到自己的服务器上,那么技嘉更新程序将下载黑客预先准备的恶意程序,例如勒索软件、挖矿程序、木马或其他任意程序。因为技嘉没有进行任何校验!
那么,使用HTTPS就一定安全了吗?很遗憾,并不一定。逆向分析发现,技嘉并未对HTTPS连接过程中的服务器证书进行校验,黑客同样可以构建假的HTTPS服务进行攻击。
一般来说,浏览器访问HTTPS相对安全是因为浏览器会验证服务器证书的可信性,一旦发现不可信,就会显示警告信息。
关于浏览器如何验证证书的可信性,可以参考我之前写过的一篇文章:
为了一个HTTPS,浏览器操碎了心!
实现自动检测更新的功能是非常常见的,但是很多程序员为了简单省事,只是实现了这个功能而没有考虑安全性。对于一些小公司而言,他们开发了一些简单的软件,用户数量不多,黑客也不会注意到他们。但是,一旦这些软件的用户数量增加,就需要重视安全问题了。特别是像微信、抖音这样的国民应用,如果发现此类安全问题,那将是一场灾难。
因此,程序员们需要多了解一些安全知识,这对大家来说是有益的。据报道,受此漏洞影响的PC计算机规模可能高达几百万。如果你使用技嘉-GIGABYTE主板的电脑,建议立即检查一下。
最后,让我们思考一下,这个漏洞是否只是技嘉-GIGABYTE的一个错误呢?欢迎在评论区留言分享你的看法。