微软最近干了些啥

这几年IE被各种轮,最近大约是怒值蓄满了,微软憋着连放了两个大招,想着力解决Use-After-Free的问题。六月补丁中,微软搞了一个Isolated Heap,七月补丁又搞了一个Deferred Free,说起来代码改动不大,但是效果还是颇为明显。首先,六月份那个补丁把一些内部对象同用户可控内容的对象隔离开来,所以占用还能占用,但内容不是很好控制,这就断了精确控制的路。然后,七月的补丁让真正的释放动作延迟发生,这样你想去占用的时候,其实根本人家还没有释放,这是断了占用的路。两个小手段下来,瞬间门槛就提高了不少,如果说五月份之前可利用漏洞占总数的10%到15%的话,现在这个数值已经降到了2%到3%。当然,这个数据是烧某人自己的统计,而且还是报给微软了的,也许以后刷CVE得换换其它思路了。

再说点开心的事情吧,Isolated Heap保护还是很有限的,Deferred Free只有100000字节,可能会被撑爆。一些其它类型的漏洞,例如CVE-2014-2795字符串拷贝溢出,CVE-2014-2797变量类型混淆,基本是绕开了这两个机制,留到现在的话弹记事本还是没问题的。顺便说一句,这次HITCON拒了Royce Lu的议题,所以连同其他的神仙问题一起,这两个洞会在其它适当时候拿出来谈谈的。

其实防来防去,还是一个思路的问题,微软的补,用的是小手段,就像范闲一样,打打叶灵儿没问题,但对上庆国皇帝的王道真气,还是落了下乘。老实说这种类似的东西,平底锅早就写出来了,私下用可以,公开后却是意义不大,因为具体的利用是一个完整的链条,但从漏洞到记事本的路径是一棵树,删减枝条的方法基本上等价于挂一漏万。当然这里不是说这些方法没用,只是微软这些修补手段,气势不够磅礴,格调不够高雅,无论从美学上还是结果上看,提高门槛确实有效,但解决问题还是欠佳。

好吧,说了这么多,其实就是七月份那个补丁碍着我fuzzing了,我得一个一个的补,IE6到IE11啊,我靠。

话说回来,微软其实应该想一想,现在这么多利用,有没有什么共性。照烧某人看来,除开设计漏洞,这年头出问题的object同被利用的object,鲜有是同一个的,所以就着这个特性一刀往下切,破坏掉内存风水才是王道。这里面,第一个切掉的就应该是堆地址的线性增长,然后隔离堆应该做得更变态一些,同样大小的不同object不能出现在同一个堆中,还有merge和split应该更频繁一些,等等等等。一言以蔽之,提高各种内存分配的不确定性,基本目前的各种利用就会歇菜99%。这里确实存在一些效率的问题,但实际上内存分配与回收的频率远没有说严重影响到IE响应速度的地步,所以安全与效率之间的折衷,显然还是划算的。

嗯,这些东西,烧某人其实是不愿微软修的,起码给大家留点念想,别把这个脆弱的生态给破坏掉了,毕竟平底锅和火眼的股票同这个生态息息相关。说起来这两个公司的一线宋人,都还是酒红色的护照,拿着公司的钱,消着公司的灾,仅此而已。其实哪儿混饭不是混呢,为了生计还有人去3×0呢。所以了,大宋敌人什么的,就算是玩笑也请大家别开了,别的不说,举个栗子,最早是数字公司去接洽微软,但最后xp防护却给了鹅厂,可见数字公司形象差到什么程度了,就算这样,硅谷宋民对外ppt里面都没说过数字公司员工哪怕一个坏字。大家都是龙的传人,生是大宋人,死是大宋的死人,别往在辽宋人头上扣屎帽子了。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注