年度技术盛宴,CIS 2019 X-Tech技术派对议题回顾 – 作者:Akane

11月28日,CIS 2019网络安全创新大会Day 2精彩继续。一年一度的安全盛宴,自然少不了一年一场的「X-Tech技术派对」。这是一场真正的属于安全人的年度盛会,了不起的研究者们和“黑科技”成果交相辉映、第一代黑客前辈与新生代白帽子同台畅谈。在这里,他们的思想将碰撞出最璀璨的火花。

image.png

提起安全圈的前辈们,你会第一个想起谁?

「X-Tech技术派对」由无糖信息创始人兼CEO张瑞冬(Only_guest)担纲主持。

image.png吨吨吨

正式开场前,主持人抛出一个小彩蛋——今天的现场带来一个神秘道具,大家都来猜猜是啥?树莓派!伪基站!Nintendo Switch!……好像越来越偏了,主持人提示该道具可以吃之后,终于有人猜中了,这是一块大蛋糕。

送给看雪论坛二十周岁的礼物。

1999-2019。不知不觉,看着看雪长大的孩子,已经成为我国网络安全第一线的生力军。看雪创始人段钢的开幕致辞上,本以为他会讲讲故事,聊聊情怀。没想到他还是以技术开场,从二进制到Web漏洞挖掘再到AI、IoT领域,安全太大了。因此,资源共享与合作共建,一定是未来安全发展的大势所趋。

image.png

生日会也要聊技术,也许这就是安全人最后的倔强吧

再谈为协议

伪协议作为应用间的一种唤醒机制,广泛存在于各类应用软件中,用以提供一些便捷的功能。与此同时,浏览器作为伪协议最常见的调用媒介,一旦浏览器调用伪协议的机制或是被唤醒的应用软件对于伪协议的处理机制存在问题时,那么,伪协议便会成为攻击者的入口。

无糖信息CTO gainover带来主题分享《再谈伪协议》,其实2016年他就曾经公开发表过关于伪协议的研究成果,两年后再看,又有了全新的理解与思考,今天与大家一同深入探讨。

image.png

gainover

回顾部分软件及浏览器等漏洞案例(均已修复),gainover对之进行了更加系统性的研究。哪些伪协议可以利用?还有哪些可以利用的点?系统自带的协议可以被利用吗?如何利用?

以WSF文件为例,它的顶端是一个package,里面分为多个job,不同的job可以调用不同的脚本语言,当尝试把pachage去掉的时候,既可以以package多数根节点,也可以以job作为根节点,但是不能存在多个job。

gainover第一次尝试写一个job进来,job里面是需要执行的代码,它会出现4次。但是这个WSF脚本你去执行它,它一定会报错,就是刚才那个错误。它只告诉一次网址,那这个利用就成功了,关键它出现了4次之后,正好违反了WSF不能有多个job的规则,又执行不了了。他们是如何把它变的可以利用呢?通常来说注释,发现行不通,要两个还比较好做,但是4个内容可做的时候已经超出范围了。有另外一个尝试,gainover发现根上面虽然不允许多个job,但是job可以嵌套的job里面的job不会解析,没有作用的。这样一来,怎么样才能构造出这样一个包呢?这也4个,这也4个,如果分两次向里面写日志是不是就可以呢?EXE的参数写日志的时候有个感叹号和加号,意味着感叹号重新写,gainover新写一个日志,加号在原有日志上追加,这样一来正好就跟刚才的利用方法相契合了。我们可以先写4个job进去,再写4个闭合的job进去,然后拼在一起就写一个可的WSF文件进去。接着我们可以直接调用VBEFile,这样两个加起来,就可以实现。对于提示框屏蔽掉的浏览器,在无感知的情况下,只要执行三次伪协议,前面两个写伪协议,加最后一个执行VBEFile我们,就可以形成一个RCE。

此外,gainover还提到很多关于伪协议的防御方式。知攻才能知防,把利用方式摸透了,相关的防御方法也就一目了然了。

RedTeam视角下的二进制攻防研究

极光无限漏洞研究负责人仙果带来主题分享《RedTeam视角下的二进制攻防研究》,从二进制选手的角度出发,看看攻防演练除了漏洞挖掘,还能玩出哪些新花样。

仙果做了很长时间的看雪漏洞版块版主,也发了很多漏洞分析的文章。这个议题其实很少涉及具体技术(但是干货绝对不少),更多讲的是思维和想法。比如对抗的思维,对手是如何思考的这个问题?还有人与人之间的意识区别, 中国人和外国人的想法有哪些不同之处,有哪些可以为我们所利用?思维陷阱又是什么?

image.png

仙果

带着这些问题,仙果主要为我们分享了五点具体内容:红蓝对抗的定位Kill Chain的作用域不仅仅是响应和溯源技术提升途径,最后是薪资

为什么要讲薪资?因为仙果是以各大安全公司招聘情况为线索,讲RedTeam建设、技巧、提升等心得。所以绕不开地,最后肯定得归到钱上。据仙果介绍,二进制能力突出的安全人才,市场需求价格7位数起,毫不夸张。

重点为大家介绍一下技术提升部分。

仙果在分享中称,技术提高的途径,Web安全的学习曲线是比较平滑的,只要你去经过一段时间的培养,去接触很多学习的方法,你会慢慢掌握很深的技能。但是逆向方面就不一样,它的学习曲线非常陡峭和旋转性的,需要掌握的能力也比较多。

一、文笔能力。二进制做的事情跟Web、渗透人员来讲难度很大,性能底层内容艰深难懂,怎么把这些能力、技术记录下来并分享出去。

二、Web方面的能力。

三、工具使用能力,只不过是内部使用。二进制团队同样需要具备渗透能力,要懂得培养那种比较骚的思维方法。

四、第四个是项目和产品能力,这个能力针对二进制会有点难度,但是需要有。一般来说,他不可能只提供工具或者EXP,效果不大,这时候就需要有产品化和项目的能力,能把所使用的,所需要使用的工具结合起来,有服务于团队的一套产品。

五、客户能力。这个问题很少有人去提及,仙果自称在之前的工作中做过一段时间的客服,给领导和专家解答很基础的问题,给他们解答什么叫漏洞,什么叫Web漏洞,什么叫跨栈等。

六、组织能力。从目前的攻防态势来看,一个人不可能掰成4、5个人来用,必须团队分工,如何更好、更快地做出相应的成果,需要有比较强的组织能力。

最后,仙果还分享了他收藏的工具,对二进制及渗透都会有所帮助。

iOS URL scheme之殇

苹果通过机制限制,每个应用可以访问的资源是有限的,以管理应用安全和隐私的问题,该机制也有一定的安全问题。上午第一个议题已经讲过伪协议带来的威胁。南京趋势科技高级安全研究员Lilang Wu的议题《iOS URL scheme之殇》,将为我们讲解一下iOS上的伪协议,就是iOS URL scheme对iOS平台带来的威胁。

image.png

Lilang Wu

回顾了几个经典漏洞案例之后,Lilang Wu重点介绍了iOS URL scheme的威胁。

首先是数据劫持的威胁

我们在国内比较流行的社交网络,比如说XX、YY或者ZZ,他们都会提供第三方认证登录的功能。我们以和XX和微信为例,讲解一下整个登录的过程。首先XX的客户端会发送一个login的request,XX拿到token之后去微信的服务器上请求登录,微信会验证这个token,认证之后返回认证的结果,XX拿到结果是否可以去登录APP。

这里列举出XX请求微信认证登录Toke的URL scheme,和微信返回XX认证登录Toke的URL  scheme。在请求Token里的scheme中发现,我们发现红色框里面的XX注册用来与微信通讯的scheme,就是scheme的头,这个就是XX注册的App  ID,这个scheme对所有的用户都是相同的。任何一个用户想请求微信授权登录的话,都会发送这样一个scheme。微信在返回给XX token的scheme当中,发现token直接在scheme中使用明文的方式进行传输,这时候就给我们带来数据劫持的威胁。

在讲利用之前,我们先介绍一下不同Bundle ID APP的URL scheme特性,iOS 11之前同一个URL  scheme可以被任意多个APP声明和使用,响应的顺序也没有说明。IOS11以后,同一个URL  scheme也可以被多个APP申请和使用,但是遵循的是先到先服务的原则地

这时候整个利用场景我们可以按照下面的思路来进行,首先给用户安装一个应用,这时候我们就可以发送上述刚才列举出来的scheme,向目标用户手机上的微信请求登录的token,微信拿到请求之后,继续上述的过程,这时候微信会请求相应的token,并将相应的token而返回给恶意的应用,恶意应用拿到token之后,我们就可以在一台第三方的手机上使用scheme打开和登录XX的APP。

这个就是我们具体的利用方式,从右边这张图可以看到,这个是我们劫持到的URL  scheme认证登录的token,在拿到这个token之后,我们就可以通过其他的浏览器打开URL  scheme,这时候系统就会自动帮我们识别XX这个APP,通过token自动登录XX。

第二种是账单欺诈的威胁

我们以微信和YY为例,想象一个场景,平时我们在打车的时候,我们使用YY,一般采用两种方式来支付打车的账单。第一种方式绑卡消费或者授权微信,或者支付宝,来自动支付生成的打车订单。这种方式是在后台进行的,所以这种方式不是我们今天所讲的URL  scheme的漏洞威胁,所以这个相对来说比较安全。

第二种方式,有很多人不适用自动支付的功能,可能说我们先让YY生成这样一个打车订单,然后我们去手动支付这样的订单,手动通过支付宝或者是微信支付这样一个订单。支付的过程也是使用URL  scheme来完成的,所以这种支付方式是存在一定的安全风险。

刚才讲到的,我们可以劫持生成账单的URL scheme,但是这个地方利用的过程,并不是劫持目标用户的账单URL scheme,攻击者只需要把自己手机上,YY生成的账单URL scheme保存下来,我们以钓鱼或者其他的方式诱导用户点击URL scheme,完成相应的支付过程。这种应用方式完全在攻击者这边,比上面数据劫持的利用方式远远简单得多。

为了验证功能,洪宇还专门去打一次车,生成了这样一个URL scheme。这时候他把URL scheme通过的短信的方式发送给用户。YY产生的账单如果长时间没有支付,他们会发送一条短信告诉用户需要支付账单。我们把刚才劫持到的URL scheme嵌入到短信当中,诱导用户点击链接。用户点击链接之后就会跳转到微信的支付窗口,这个信息没有任何识别的功能,我们从直观的角度上不能知道这个账单是不是自己的。很多用户觉得使用这种方式,认为这个账单是自己的,所以他就支付了这个账单,从而造成账单欺诈。

上述提到的XX和YY以及ZZ,均已在今年10月修复了相应漏洞。但鉴于测试范围有限,部分类似APP肯定依然存在问题,厂商应该立刻引起重视,个人用户也需要注意,避免遭受不必要的损失。

硬件盒子安全分解

在新技术、新服务带来利益的同时,黑客攻击手段不断升级,也引发了新的安全风险和挑战,给企业带来了不安。越来越多的企业开始着手部署硬件盒子,如何最大程度的利用已有的资源部署盒子,降低企业安全投入的成本,为新一轮的安全布局争取更长的过渡期,是企业正在面临的安全问题。

image.png

Hack Panda

针对这个问题,斗象科技资深安全研究员HackPanda为为我们带来主题分享,从磁盘加密、定制系统、硬件盒子的用户shell、硬件盒子的升级过程以及内存安全等方面对《硬件盒子安全分解》进行了详细讲解。

Reflection on trusting trust

程序是从一个编译器而来,编译器又是从另一个编译器编译而成的。这句话听起来是在绕口令,但这个问题也是由编译器引起的诸多问题之一。源代码层面的审核和检查无论多少都不能保护你免受不可信代码的威胁,而当程序的层级变得更低,这些bug也会变得越来越难以发现,一个在微代码中隐藏好的bug几乎不可能被我们发现。

image.png

洪宇

赛博英杰技术合伙人洪宇为我们来带的压轴演讲,《现代抗抵赖后门研究:Reflection on trusting trust》,我们要反思信任

所有的程序都是由编译器编译源码获得,编译器其实也是个程序,编译器是哪里来的?也是编译器编出来的,编译器的编译器哪里来的?是编译器的编译器的编译器编出来的。我们平时怎样判断程序的安全性?很直接的办法,去检查源码。程序是从编译器来的,我们再检查编译器的源码。编译器又是由另外一个编译器编译而来的,一层一层扣下去,到底是鸡生蛋还是蛋生鸡?

通过过去的缓冲区投毒及供应链攻击案例回顾,洪宇提到:

我不信任build,我只信任自己从源码里面编译。

整个过程当中解决最大问题是我们对代码的信任是从源码做的信任,还是从编译器做的信任,还是从编译过程做的信任。这个问题就是所谓的对托付信任的反思。

至此,CIS 2019 X-Tech技术派对圆满结束,但是技术人们探究与分享的精神必将源远流长,五位嘉宾的议题PPT也会在后续分享给大家。更多关于CIS 2019的精彩议题,不妨参见CIS 2019专题,其他论坛的报道即将出炉,敬请关注。

CIS 2019大会PPT合辑

链接: https://pan.baidu.com/s/1DDvHRwkGTyM2MnllucqCzw

提取码: n6aq

来源:freebuf.com 2019-11-28 19:00:16 by: Akane

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论