Article Learn

2019小米IoT安全峰会-于旸《无人独善其身——安全问题的行业化》

Post by Pa0er at 2019-12-05 19:24:02

此次大会的第三个重磅议题来自腾讯安全玄武实验室负责人,从事信息安全技术研究近20年的TK教主-于旸。

无人独善其身,这是什么意思?

过去20年,出现了很多的安全问题。比如1988年的莫里斯蠕虫、比如2003年的SQL SLammer,它导致了当时很多地区半天时间的互联网访问中断、比如2017年著名的VannaCry蠕虫。这些都是和信息系统漏洞有关的安全问题,这些严重的安全事件涉及的漏洞和网络安全漏洞中的绝大多数一样,其实就是某一个产品的问题,这个漏洞影响的就是某一个产品。我们提到2003年SQL Slammer,300多个字节的代码就导致全球的互联网访问中断,但是它也是只影响一个产品。

会不会有一些安全问题会影响很多产品?甚至一个行业的大多数产品?TK教主在刚加入这个行业不久便开始思考这个问题。在2004年的时候,他开始分析当时PNG图片解析库的漏洞。在04年的夏天,这个漏洞被披露之后他们便开始分析,结束后写了一个报告,完成了工作。2005年2月份,他当时的领导又交他一个任务,说:“你之前不是分析过PNG图片的漏洞吗?现在又有一个,你再分析一下”。TK教主分析完后发现这两个漏洞几乎是一样的,仔细追溯整件事情后发现这并不是巧合。

image.png

第一个漏洞出现在开源的LibPND解析库里面,第二个漏洞出现在微软当时的MSN Messenger里面,那时候还是非常著名的社交应用。一个开源软件的漏洞,一个微软产品的漏洞,这两个为什么会完全一样呢?最后知道是微软应用了这个开源代码,只不过这个开源软件许可证需要你使用不声明的,并没有人知道它有了。漏洞发现者在2004年6月份发现问题,04年8月开源社区修复了漏洞。但是很快有一个人测试的时候发现这也影响了MSN,只要你给MSN的好友发一个图片就可以入侵电脑,这个时间线从04年的夏天到MSN真正修复它经过了半年,这半年的时间里用户是暴露在危险当中的。因为这个漏洞已经披露出来了,很有可能会有更多的人意识到类似的问题,相当于相关的攻击方法也都公开了。

当时我发现这个问题的时候非常惊诧,这是我第一次意识到可能有些问题它的影响面是远远超过我们的认知的。事实上后续有很多事情一次又一次的刷新了我的认知,这么多年的观察下来,我发现特别是在今天安全问题越来越趋向于行业化,它可能会影响一个行业里面很多产品,甚至是一个行业的大多数产品,这样的问题是存在的。

image.png

这种问题出现的原因,主要可能分成两大类。第一种是由供应链引入的,IT产业发展到今天,整个产业非常复杂,而且大家相互依赖。会有大量的和供应链相关的问题,也包括安全问题。如果一个存在漏洞的产品被众多的下游产品所使用,就会出现行业性的安全问题。玄武实验室在2015年的时候就开始开发一款叫做阿图因的软件空间安全测绘系统,其中一个设计目标就是试图对这一类问题形成监控。还有一种原因其实不是由代码引入的,不是由某一段代码、某一个共享库引入的,而是由一个标准、一个习惯、一个经验、一个师傅带徒弟传递下来的信息所导致的。如果一个错误的做法变成了大家流行的习惯,实际上它一样会导致影响广泛的行业性安全问题。

跟大家分享几个和供应链相关的案例

OpenSSL“心脏出血”漏洞应该也是安全历史上非常经典的问题了,这个在当时是爆炸性的新闻。当时我们都知道OpenSSL问题可以导致网站的内存数据泄露,但是使用它的代码的并不止是服务器软件,还有很多终端软件也会使用这个库。网站有没有用,我们其实可以通过网络扫描的方式知道哪些网站用了。你可以绘制出一个全球受影响地图。到底有哪些软件用的是有问题的版本?存在漏洞可以被攻击,有没有人知道呢?

这其实是玄武实验室当时设计阿图因系统的初衷,在当时用阿图因系统看,存在这个漏洞的桌面软件产品至少有291个,这个还仅仅只是心脏出血这一个漏洞。OpenSSL在历史上还有很多高危漏洞,CVSS>=9的漏洞,标红柱的都是具有高危漏洞的版本,也就是说大部分的版本都有。在这个视图可以看到,实际上终端软件里面包含了高危漏洞openSSL的数量是非常巨大的。

image.png

而问题其实远远不止是openSSL,举一个例子。在今年2月曝出来一个非常令人惊诧的漏洞WinRAR,可能打开一个压缩文件电脑就可以中木马。但是仔细研究发现这个问题其实不是WinRAR开发者写出来的问题,是由上游供应链引入的。在使用阿图因系统做分析之后,发现这个问题除了影响WinRAR之外还影响38款软件,不是想像中的一个软件的漏洞。

更近的例子,今年国庆节那几天,国外facebook发布了一个公告,它旗下的WhatSApp有一个漏洞,这个挺严重的。在公告发布之后,我们研究发现其实同样是由供应链引入的。那会不会还有其它的软件也受影响?于是玄武实验室用阿图因系统又看了一下,结果令大家极端的惊诧,发现使用了同样供应链的受影响的移动应用有41619个。在其中还看到了很多语言版本都完全不认识,可能阿拉伯语的APP,所以说这一类的问题其实并不罕见。

供应链的问题实际上比我们想像的要复杂得多,这是我们在阿图因系统对全球软件代码的供应链做出的全景绘图。在这里看见如果我们想去处理好这个问题的话,实际上需要关注的东西太多了。这只是第一类的问题,由供应链引入的,也就是说这类安全问题它的载体其实还是代码,是被供应链中的代码由上游感染到下游。

image.png

供应链的问题实际上比大家想像的要复杂得多,这是使用阿图因系统对全球软件代码的供应链做出的全景绘图。可以看到,如果我们想去处理好这个问题的话,需要关注的东西太多了。

这只是第一类的问题,由供应链引入的,也就是说这类安全问题它的载体其实还是代码,是被供应链中的代码由上游感染到下游。

还有一类问题,这个问题并不是出在代码里面,而是出现在语言、文字这些信息当中。比如说2015年发现了影响非常大的安全问题,BadBarcode,它的影响范围有多广?它影响过去20年中全世界所有条码阅读器厂商生产的大概80%产品。

image.png

这个问题实际上就是因为条码阅读器所遵循的多种行业标准和惯例,这些行业标准和惯例可能各自没有问题,但是它们组合在一起的时候会形成安全威胁。每一个厂商都说我是严格按照标准做的,没有犯什么错误。但实际上这种严格按照标准,当标准组合起来有问题的时候,你严格按照标准做就会出错。利用这个漏洞,通过扫描一个条码,甚至发现了可以通过发射激光的方式可以入侵条码阅读器所连接的系统。在最近这三四年的时间里,玄武实验室和微信支付一起推动了国内的条码阅读器厂商修复了该问题。

image.png

在2017年的时候,玄武实验室发现了一种叫做“应用克隆”的攻击方式,它是什么原因导致的?这不是某个标准。但是在应用开发界有一些非常常见的错误做法,而且这种做法很流行。可能一个程序员去参考别的程序员的代码时就把这些错误的习惯参考过来了,而且大家并不知道这种做法的后果是什么。基于这样一种传播链导致这个问题在整个的行业里面漫延得非常广,使用这种攻击方式,可能你只需要发一条包含链接的短信给别人,他点开了链接,应用账号就会被完全控制,这个后果是非常严重的。玄武实验室后续花了比较多的时间来处理这类问题,17年12月份,他们测了国内应用市场里面最流行的200个应用,在其中27个都发现了存在这个问题是可以被攻击的。

image.png

2018年,玄武实验室发现当时出现的光学屏下指纹验证这种技术存在非常严重的安全问题。可能今天大家买的很多手机上已经有了这个技术,那时候这个技术刚刚出现。这个问题的源头是什么?是光学屏下指纹识别技术在设计的时候的设计原理决定了用户残留在屏幕上的指纹痕迹存在被传感器二次读取的可能性,当然正常情况下不会出现,但是使用反射体欺骗的方式可以让传感器认为残留在屏幕上的指纹痕迹就是一个真实的手指。利用这个问题,玄武实验室当时做实验最极端的情况是用一张白纸一秒钟可以解锁用这个技术的手机。然后玄武2018年花了大半年的时间和国内的各个手机厂商,包括相关的供应链的芯片生产厂商推动修复了这个问题。当然,今天大家再去购买到的使用这个技术的手机已经修复了这个问题了。

image.png

2019年10月,玄武实验室发现了一个叫做BucketShock的漏洞,这个漏洞的影响也是非常可怕的。所有的云存储应用超过70%有问题,而且不分中外,全世界都是这样。这个问题的源头实际上是由于开发者对于相关技术的安全特性存在错误的理解,而且这种错误理解像我刚才讲的,可能是师傅带徒弟,在程序员圈子里面互相的传递,由于错误的理解导致的问题。利用这个问题可以读取、甚至改写云存储用户所存储的所有的数据。在10月份,我们向CNVD报告了这个漏洞,建议CNVD推动各个云存储的厂商给他们的用户通知,让大家去做自查。

中国有一个成语特别适合形容这类问题,叫谬种流传,文字和语言代码是一样的,都是信息,这个信息里面是可以携带漏洞的。漏洞不一定要存储在代码里面,这类问题实际上是存储在非代码里的这样一种漏洞。

这一类漏洞在处置它的时候可能不像一般的漏洞,不像影响某个产品的漏洞,我们通知厂商,厂商修复就结束了。这类问题它的特点是受影响的产品成千上万,像刚才举的例子中最多受影响的四万多个,由漏洞发现者通知所有的相关方,几乎不可能做到。

image.png

如果我们通知给其中一部分人,那就意味着这个信息从你这儿输出出去了,从封闭的状态变成了一个不可控的状态。一旦通知出去,便不知道这个信息会再被交给谁。很有可能会泄露到一些坏人的手里,那些没有被通知到的产品方便很有可能成为受害者。

如果我们不通知任何人,实际上问题还是存在的,而且这个问题不是只有你能够发现,也就意味着所有相关产品都处于威胁之中。这就是今天所说的行业性安全问题,你在处理它的时候会陷入困局,甚至可能比你发现这个问题还要困难。如果像屏下指纹那种问题一样,能早期发现最好。

image.png

当我们在整个产业中身处不同角色的时候,作为产品开发者、各个厂商、各个企业应该去重视供应链相关的问题,至少应该梳理自己会用到的供应链的列表,去对接相应的供应链安全情报。一旦供应链上面出现了问题可以非常快速的知道。

另外,在设计新产品、引入新技术的时候,在设计环节就需要引入安全视角,越早发现是越好处理的,不至于到了四万多个情况再去处理。作为安全能力的提供者,各个安全厂商首先也是应该去重视供应链相关的问题,在自己的能力上面去建立供应链相关问题的处理能力,比如说去提供相关的安全情报,比如说在自己的安全产品和服务当中把这个问题纳入思考,在产品当中建立相关的接口。作为安全研究者,我们需要加强对共性技术、对于历史性技术、对于新技术的关注。因为这些点上面是容易出现行业性问题的,需要提高我们对各种标准和一些惯例引入的安全问题的发现能力。

作为管理者,可能需要去重视这一类的,它可能不会特别多,一年不会有几个,但是每一个可能都会非常棘手,难以处理,而且有可能产生重大危害的。可能我们需要去针对这类问题有一个预案,建立起一套全面而且快速的能够触达相关方的通知机制。

 

—   联系我们   —

新浪微博

公众号