0x00 背景


“白名单“,即一系列被信任的对象的集合,与”黑名单“对应,通常被用来实现”排除“类的逻辑。在安全领域中,”白名单“通常被用来优化对信任对象的分析逻辑或解决查杀、拦截逻辑所产生的误报等。

然而,在国内的安全圈里有一种“非白即黑“的说法,即通过统计学算法等极为宽泛的启发逻辑对待检测样本进行”扫描“,并通过高覆盖率的”白名单“云(即通常所说的”白云“)来压制这类启发算法所带来的误报。这种逻辑并不难理解,因为”白文件“的数量远远多于”黑文件“,所以如果忽略误报的问题,“用白名单报毒“显然可以”有效“提高”检测率“。这就不难理解,为什么我们常常会在网络上看到某某安全软件的用户反映”为什么我自己刚刚编译的程序就被某某安全软件报毒?“这样的问题了。

另外,一些安全软件还会利用“白名单“来”优化用户体验“,例如对”白名单”程序的行为不作分析、拦截等等。

然而,(对“白名单”的)“信任”往往伴随着漏洞,这些漏洞可能来自程序逻辑,甚至可能源于人性。由于“信任”机制所产生的漏洞,我们通常称其为“信任漏洞”。病毒作者通常会试图利用安全软件的“信任漏洞”,想方设法利用在安全软件”白名单“内的程序来实现恶意行为。我们称这类技术为”信任利用“(Trust-Exploitation)技术,也就是坊间常说的”白加黑“。前段时间新闻报道过的病毒作者通过贿赂某安全软件厂商人员,将自己的病毒程序加入的安全软件的”白名单“,正是出于这个目的。

最近火绒的”软件安装拦截“截获了一个名为”光速桌面搜索”的静默安装包(图1、图2),它就是试图通过“信任利用”技术来静默推广安装多款软件。

p1 图1、”光速桌面搜索”静默安装包

p2 图2、火绒“软件安装拦截“提示

0x01 分析


这个”光速桌面搜索”的静默安装包(后文简称“光速桌面搜索”)运行后会释放一个名为qdw.exe的文件,通过查看文件信息,发现该文件有合法的金山数字签名。通过分析,不难发现这个qdw.exe其实是WPS的升级程序(图3、图4)。

p3 图3、文件描述信息

p4 图4、合法的文件签名

接下来,“光速桌面搜索”通过这个WPS升级程序支持的命令行参数,来实现后台推广软件下载和执行。如图5、图6所示:

p5 图5、“光速桌面搜索”利用WPS升级程序进行流氓推广

p6 图6、“光速桌面搜索”利用WPS升级程序进行流氓推广

由于这个”WPS升级程序“是通过命令行参数来获取下载链接的,使得别人可以轻易的修改下载地址,而且该程序对下载链接和下载后的的程序没有验证安全性,导致了可以下载运行任意程序。由于这个2011年签名的WPS升级程序早已被各家安全软件收入”白名单“,才被“光速桌面搜索”用来施展“信任利用“技术,堂而皇之地进行流氓推广。

0x02 延伸


通过金山的数字签名,我们发现这个WPS升级程序产生于2011年。经过这几年的发展,还会不会有正规软件存在这样的漏洞呢?

通过火绒安全情报分析系统,我们发现存在此类漏洞的软件并不止金山一家,腾讯视频、QQ影音、PPLive等软件均存在此类程序设计漏洞,病毒作者可以通过上述软件的程序组件下载并执行任意程序。如图7、图8、图9所示:

p7 图7、腾讯视频推广程序命令行

p8 图8、QQ影音推广程序命令行

p9 图9、PPLive推广程序命令行

腾讯视频在安装的时候会可选的推广一些第三方软件(图10),而出问题的就是下载安装包的程序St******cs.exe。该程序没有对参数的合法性进行验证,只要按照参数格式替换掉下载链接,该程序就会全自动地完成下载、执行(图11)。图12所示的网址是我搭建的一个测试服务器,我在这个服务器上传了一个微软的计算器程序,之后将St******cs.exe程序拷贝到C盘根目录,添加参数运行,计算器程序被成功下载并运行。

p10 图10、腾讯视频推广第三方应用

p11 图11、腾讯视频通过St******cs.exe程序下载并运行推广包

p12 图12、腾讯St******cs.exe漏洞测试

通过分析St******cs.exe,我们发现该程序在获取到命令行参数后,会去查找”-b***url”参数,如果找到就会获取参数提供的下载链接,但并没有去校验下载链接的合法性,就将其交给下载函数。如图13所示:

p13 图13、腾讯St******cs.exe获取下载链接

在下载函数中,我们可以看到,在下载函数中该程序也没有校验链接的合法性,就直接创建目录并联网进行下载了。(如图14)

p14 图14、腾讯St******cs.exe下载并运行程序

PPTV在安装时会也静默推广第三方软件,PPTV会在安装时释放一个L****r.exe的程序来下载安装包,该程序带有合法的PPTV的数字签名(如图15所示)。通过测试该程序也没有校验下载链接和下载的程序的安全性,只要修改命令行参数,发现该程序也可以按照任意指定的下载链接下载程序并运行(如图16所示)。

p15 图15、PPTV的下载程序

p16 图16、PPTV漏洞测试

经过简单分析,我们发现该程序和腾讯的下载程序一样,都只是简单的获取参数中的下载链接后,直接下载并执行的程序,并没有任何的安全性验证(如图17、18所示)。

p17 图17、PPTV L****r.exe获取下载链接、拼接保存文件路径

p18 图18、PPTV L****r.exe下载并执行任意程序

0x03 综述


根据火绒安全情报分析系统统计到的拦截数据,我们发现有很多软件均存在本文中提到的设计漏洞。有些程序甚至已经被病毒或流氓软件作者所利用,通过软件的设计漏洞,利用安全软件的“信任漏洞”来躲避安全软件的查杀和拦截,进而执行恶意或流氓行为。

在这里,火绒呼吁:

  1. 安全软件厂商应从技术上提升对拦截和查杀的准确度,合理地利用“白名单”,从逻辑和机制上避免“信任漏洞”的产生;
  2. 软件厂商也应提高代码安全意识,对于程序获得的输入数据应进行有效的合法性判断,避免程序的功能逻辑被恶意利用成为犯罪者手中的“刀具”;