数字电视也不安全了?2016 SyScan 360大会全记录之二

Kong 2016-11-28 12:06:59


就在这两天,不少令人大开眼界的安全议题在2016年黑客大派对SyScan360(国际前瞻信息安全会议)相继提出,FreeBuf在会场“潜伏”两日,发现场内外的气氛相比传统的安全会议,显得轻松活泼。

不过今天的议题与昨天稍有不同,今天的活动从头至尾都是专注于漏洞和安全,包括银行和企业的安全战略防御、Old Skewl破解、iOS漏洞分析以及浏览器安全等。除开安全会议,还有一个20分钟的胸卡破解大赛——没错,昨天我们的报道中就提到的那张胸卡。

媒体支持,找到FreeBuf了吗?

胸卡

本次大会大约2000人的规模——由于去得早,并没有多少观众比我们提前到。不过等到演讲开始,连会场后面都站满了人,这和今天相关漏洞与安全的主题当然是分不开的。尤其是其中的Old Skewl破解,的确显得相当有趣(电视破解),因为这是大家最常见的东西,所以理解起来最容易。下面我们就来详细聊聊这些有趣的话题吧。

银行和企业安全防御如何进行?

多数从事计算机安全防御工作的人只从防御这个角度看问题,这就加大了银行与企业的风险。针对企业和银行安全防御这个问题,DEFCON组织全球负责人,剖析黑客系列作者Jayson E.Street演示了如何从网站上获取想要的信息,然后再利用他们来攻击你。与众不同的是,Jayson是从“黑客”的角度看看待“抢银行”这件事情。他展示了整个过程,首先进行鱼叉式网络钓鱼攻击,通过收集来自企业自身”关于“页面中的信息,以及利用员工的社交媒体网站获取有用信息就能做到“鱼叉式”的钓鱼。然后,他又列举了一些黑常用的工具。大部分的讨论覆盖了成功的反制措施,去帮助防范和侦测这些攻击。

在分享中,Jayson提出了一个“潜水艇”的概念。企业与银行需要建立的是一艘潜水艇,而不是一堵墙。换句话说,就是企业与银行需要建立多方面、多维度的防御机制,而不仅仅是专注于某一方面。其实,这也就是用所谓的“木桶效应”来讲的,企业风险更容易出现在最薄弱的环节,只有在各方面都均衡发展,或者是某一方面不太薄弱的情况下,企业安全才能得到有效保护。

在谈到如何保护时,Jayson给到了一些建议:

1.在企业的职位列表上添加触发器错误线索;

2.Web开发人员应该努力编写出安全的代码; 

3.企业应该为用户代理字符串设置提醒; 

4.在攻击者发起攻击之前,需要让员工知道怎么去防御(因为员工是你的资产,而不是你的负担,员工意识培养的重要性)。 

你的电视真的安全吗?小心你的电视被攻击

电视攻击,很少出现在我们的视野。但很少出现不代表这个危险不存在。如果给你一个HackRF,DVB-T2,你会对数字电视进行成功攻击吗?

根据Aperture Labs Ltd总监Adam(电子通讯领域的安全顾问)的介绍,目前所有符合“Freeview”标准的英国电视都容易遭到攻击。这种攻击不仅仅是针对智能电视,而是针对所有的数字电视,重要的事情再说一遍,是所有的数字电视,就像我们以前关闭模拟信号一样。提到这个攻击,我们就不得不提MHEG标准,该标准是有关多媒体信息展示的国际标准之一,由多媒体和超媒体专家组(MHEG)制定,通常被用作一种概述交互式电视服务的语言。而该漏洞正是存在于MHEG标准中,通过该漏洞,电视可连接至远程HTTP/HTTPS以获取受害者的IP、缓冲区溢出等内容。该漏洞会给所有的数据服务包括BBC”红色按钮服务“赋予权利,所以影响到的是所有电视,不止是智能电视。

如果这个TV有网络连接的话,我也能让这个TV通过HTTP或者HTTPS这种传输协议连接到外部的服务器并且获取回更多的内容或者音频/视频资料。显然,一旦能够连接网络,对于攻击本地的其他设备将会有更多的可能性。我也会用我的程序遍历在防火墙背后的网络并且得到甚至是relay traffic。在工具Hack-RF和DVB-T2的帮助下,Adam现场演示了通过Python脚本实现播放网络摄像头、现有的传输流,捕捉和重播实时传输流,MiTM实时传输流,捕捉和解码MHEG等一系列内容。整个演讲期间,Adam是所有嘉宾中最活跃的一位,尤其是在互动环节,那小跑送礼真让人印象深刻。

对话Adam:

1、我们了解到,您介绍的漏洞存在于 MHEG 标准里(想下streroids的Teletext), 给所有的数据服务包括BBC“红色按钮服务”赋予权力,所以影响到的是所有电视,不止智能电视。那对其他国家比如中国的电视是否适用?

Adam:目前采用 MHEG 标准的国家和地区有爱尔兰、新西兰、澳大利亚和中国香港,其中中国香港是唯一一个讲中文的地区,但现在中国大陆正在试用一种叫做 HBBTV 的类似系统,我认为这种系统存在着相似的漏洞。随着交互式和互联/智能电视的日益普及,最终全球所有电视很快都会遇到相似的问题。

2、据您估计,这个漏洞会影响到多少电视?

Adam:目前我认为会有数千万或甚至数亿台电视受到影响。但如果问题得不到解决,最终会有数十亿台电视受到影响。

3、目前中国市场上有很多电视,有数字电视、模拟电视、还有一批新的互联网企业生产的互联网电视,有的基于网络传输信号,有的基于传统有线传输信号,是否都能破解?在您看来新的依靠网络传输信号的电视危险还是传统的电视危险一些?

Adam:考虑到广播特性和缺乏回传路径,传统地面电视更难保护。互联网 IP 服务可通过强大的密码术和会话管理等进行保护,但正如前面所说的,由于它们是联网的,所以也很容易受到广泛的攻击。

iOS真的很安全吗?

在我们大多数人的眼中,由于苹果一贯的审查机制和安全政策,iOS一向以流畅、稳定和安全著称。很多人买了iPhone就是为了自己的手机以及私人文件、信息的安全。但这种看法真的合理吗?

在苹果发布的iOS9.3.3版本中,存在一个内核漏洞,该漏洞可在沙盒app中触发,该漏洞是一个IOMobileFrameBuffer的一个堆溢出,溢出的长度任意可控、溢出的数据内容部分可控。IOMobileFrameBuffer是用来处理屏幕帧缓存器的内核扩展,用户可以通过IOMobileFramebufferframwork框架来控制。

随后,盘古团队联合创始人徐昊还介绍了iOS 10系统中进行的一些安全机制改进。在iOS 10系统中,苹果增加了JIT内存保护,内核堆管理,对沙盒进行了加强,对Platform规则限制更严格,也对其他的行为进行了限制,KPP也得到了改进-所有的代码和常量放在一起,所有的raw数据放在一起等。

最后,徐昊介绍了iPhone7(Plus)中加入的新特性。不再有SMC指令的调用,新的保护机制通过硬件实现,阻止修改受保护的物理内存,阻止在受保护的物理内存外执行代码,同时引入了SMAP保护等。由于苹果在安全保护方面的增强,iOS内核漏洞的利用也越来越难,价值也更高。

浏览器和移动漏洞如何挖掘?

漏洞挖掘需要专业的知识,更需要专业的工具和不一样的思想。在计算机领域,Fuzz Testing(模糊测试)是一种测试方法,即构造一系列无规则的“坏”数据插入应用程序,判断程序是否出现异常,以发现潜在的bug。在信息安全领域,也有人尝试引入fuzz testing思想进行安全漏洞挖掘,而且效果不错。         

来自COSEINC的高级研究员Alonso,分享了漏洞挖掘过程中必要的知识。包括了不同的攻击面、用不同的方法去审计和测量浏览器程序,其中特别讲到了fuzzing技术、内存插桩技术、内存检测工具、安全堆栈的保护等。介绍了该团队在漏洞挖掘中利用的测试平台火狐与Google,并且为广大漏洞挖掘人员推荐了一个好用的工具Frida,在漏洞挖掘中,通过LLVM的SantitizerCoverage工具获得IPC反馈,综合ASan,MSan,UBsan,LSan等方法,使用一个驱动器来产生新程序,而不是在过程中合成。

一个笔误引发的漏洞——BadKernel

相关BadKernel漏洞,我们先前也曾报道过。手机中很多APP都内置了网页浏览功能。Chrome V8作为开源的高性能JS引擎,几乎垄断了整个APP市场,成为网页必不可少的组件。

而在Chrome V8引擎3.20至4.2版本中就存在这样一个漏洞,由于源代码中的一个笔误,造成关键对象信息泄露,从而导致任意代码执行,该漏洞被命名为Badkernel。可能受到该漏洞影响的平台包括谷歌移动浏览器、Opera移动版,以及基于Android4.4.4至5.1版本系统的webview控件开发的手机app,在LG、华为、三星、摩托罗拉等大部分热门手机中。

10月份该漏洞曝光于天下时,许多人都在热议:全球大约每16台Android手机就有一台受到该漏洞的影响。同时,该漏洞也存在于x5内核中,x5内核是经过定制的chrome浏览器内核,所有使用该内核的应用都可能受到该漏洞的影响,如微信、手机QQ,搜狐视频、新浪新闻等应用,直接危害了数亿用户的安全。

360手机卫士阿尔法团队安全研究员 邓袁

在TrustZone的疆域上运行代码

TrustZone实际上是ARM处理器中同时用于运行安全操作系统和普通操作系统的安全扩展。想要在安全的操作系统上使用TrustZone特权来运行代码。我们只有一些办法例如在QEMU上模拟,或者购买一个我们可以进行试验的ARM主板,而如果你想要真实的安卓系统的手机上运行特权代码,你就不得不利用TrustZone的漏洞。下面就是资深高级安全研究员Edgar Barbsa的分享。

如果你想通过创建使用TZ权限运行真正的代码来了解TZ,你可以使用ARM开发板,QEMU。其实TZ广泛应用于安全的硬件存储/加密密钥,可信用户界面,DRM和支付解决方案。当然,你不得不提ARM,ARM可分为3个级别:

1.EL0-用户模式

2.EL1-内核(正常的操作系统)

3.EL3-最高级别(安全的操作系统)-TrustZone             
 你可以通过如下两种方式来实现在TZ疆域上运行代码:

fastboot flash patched_tz.img;

dd if=patched_tz.img of=/dev/block/…/tz
如果想运行自己的TZ代码而又不想从头创建一个安全的操作系统,那你就需要用到逆向工程技术分析tz_img。查找并复制TrustZone分区,分解,分析然后修补。然后查找导出的系统调用,用strings和grep找系统调用的名称,然后到系统调用代码的指针,执行修补ELF标头(分段),然后修补get_version,然后get_version会返回一个新的值。如果你需要更多空间创建新函数,那你就需要在TZ中创建新分段(在这期间,需要禁用DACR)。生成ARM代码并执行,然后会发现一个table,然后就可以完全访问一个框架,就意味着这个实验成功了,不需要任何的NDA、开发板和仿真。需要注意的是,在这个过程中,调式代码很烦。

一个价值10万美元的漏洞长啥样?

在去年的SyScan360上,两位黑客米勒和瓦拉塞克大破克莱斯勒让人印象深刻。而今年,则是一位获得了微软10万元漏洞奖励的神奇小子来与我们分享他的杰作。虽然Moritz Jodeit(Blue Frost Security GmbH研究总监)刚刚出道半年,但名头可不小。他与我们分享了他发现的那个叫做“类型化数组压制漏洞”的案例。整个议题包括7各部分,各个部分层层相接,吊人胃口。

  

这其中属类型化数组压制漏洞和EMET我最感兴趣。因为一个是获奖的漏洞,另一个是还未解决并且没有计划解决的漏洞。

类型化数组压制漏洞(CVE-2016-3210)可以导致并行线程中的JavaScript执行,通过消息传递进行通讯,对象的所有权可以转让。二他们对该漏洞的攻击策略就是,使用两种不同大小的类型化数组多次触发漏洞,使用之前释放的ArrayBuffer对象创建几个空闲的对快,然后在分配之间交替,分配不同大小的LargrHeapBlock对象,填充之前在堆上创建的空位,然后创建需要的堆布局,破坏第一个整数数组,最后修改类型化数组就完成了攻击。

当然,他们还讲到了“上帝模式”和保护模式绕开CVE-2014-1762漏洞。

当然,除开EMET之外,其他漏洞均得到了修复。而EMET绕过暂未得到修复,并且微软并没有解决计划(略表遗憾)。

除了上面这些议题,Syscan胸牌破解大赛在经过这两天的角逐后,今天也终于产生了最终结果。在全部的参赛选手中,工产生了12位获奖者,奇虎360 Thomas为各位获奖者颁奖。

获奖名单

获奖者合影

这一天的大会,大约现场能从头到尾观摩全程的也都需要对十分技术化的议题消化良久。尤其对于漏洞的讲解,如ARM的TrustZone这类原本为安全设计的黑匣子,居然都能被利用,可见当代数字世界那些牢不可破的神话终究也只是神话。

Moritz Jodei在演讲的时候就说过,现代漏洞攻击缓解增加了攻击难度,但是借助合适的漏洞,攻击者仍然能够创造性的绕过很多缓解措施,而所有纯数据攻击可避开很多缓解措施,随着CFI解决方案的成熟,纯数据攻击将大为增加,这印证了安全的持久战仍将继续,只要数字世界在持续迈进,安全都将成为永恒话题。