整个公司全部9名T5就分布于这些实验室和研发中心。分别是优图实验室贾佳亚、量子实验室张胜誉、多媒体实验室刘杉、玄武实验室于旸、科恩实验室吴石、AI Lab和Robotics X Lab实验室张正友,AI Lab实验室的俞栋和刘威,服务器研发中心的赵岩。
四川人吴石1994年进入复旦大学数学系就读。1996年学校有了互联网,这让他产生了浓厚的兴趣。大学毕业后,吴石到广东东莞的一家企业工作。2000年,吴石再次回到上海,去复旦大学的一家校办企业做网络安全的防护工作。“那时我的工资只有4000多元,当时莘庄的房价是每平方米2000多元。后来我的工资涨到1万多元,房价都涨到每平方米两三万元了。”
2006年年初,吴石辞职,自己成立了一家小公司。“当时在业余时间帮企业找网络方面的问题,一共做了两单生意,每单能赚十几万元,而且主要干活的人就是我,这样算下来,跟一年的工资都差不多了,而且还不累。”
没想到公司开了,客户没了。吴石说:“运营这样的公司要靠关系。客户先是包给大公司,大公司再转手包给小公司,有关系的人才能拿到生意。之前在校办企业干的私活儿也是靠同事的关系。”无事可做的他开始潜心研究网络技术。“那时我注意到国际上刚刚出现的Fuzzing漏洞检查方法,觉得它一定会流行起来。像微软的Office软件,它内部有几千台机器都在运行着Fuzzing的程序。”Fuzzing对代数功底要求很高,这恰恰是吴石最擅长的。
吴石称其是经过了一系列的工作失败经历之后才在发现漏洞方面实现了突破。当2006年中国股市开始暴涨时,吴石当时仍在一家小型IT公司任职,其感觉当时的职业就像是一艘正在下沉的船,并因此感到绝望之极。当时的薪水甚至难以让吴石养家度日。
吴石后来从那家IT公司辞职,并创建了一家基于P2P文件共享技术公司。但是当一家大客户拒绝为一个主要项目支付报酬时,吴石的合作伙伴找也就离职而去,这样其公司也遭遇破产。之后,吴石开始组建一家安全咨询公司,并实验他多年前在复旦大学读书时就曾设想的一个fuzzing方法。他发现了微软的一些安全漏洞,并且直接报告给微软。在这之后,他才从一位朋友口中得知了ZDI这样“购买漏洞”的组织。从此以后,吴石就成为一名全职漏洞猎手 。
2007年8月,吴石带着他自己的P2P文件分享技术北上北京参加一个网络安全论坛,虽然推销失败,但吴石听到了新鲜事儿。“有人说,在安全技术最好的网站XFocus上发布了一个漏洞,后来真的收到了网站给的奖金。”这让吴石心头一动。
吴石还未采取行动,这样的事情很快自己找上了门——美国ZDI找到了他。“他们发邮件给我,向我询问关于一个微软的漏洞细节。”吴石为了研究语音编码程序,曾比较了QQ和MSN的视频编码程序,“当时就发现了MSN的一个视频编码的问题。”吴石回复了ZDI的请求,ZDI进而鼓励他,以后可以将发现的漏洞卖给ZDI专门做收购、分析的项目小组。
从此吴石开始了专业的漏洞挖掘之路。ZDI研究经理亚伦·波托尼(Aaron Portnoy)这样评价吴石的漏洞挖掘方法:“这些文件中的相关项目有着复杂的层次结构。他可以改变关系树结构的工作方法,而不仅仅是其中的一个项目。很多人只是Fuzz数据,而他则是Fuzz关系。”
这种寻找漏洞的经历已经颇具收获。ZDI从吴石那里购买了50个漏洞,每个价格至少5000美元,而iDefense也偶尔支付过1万多美元,购买了少量的漏洞。吴石没有透露至今为止在此方面的具体收益数量,但简单计算即可知道,其在此方面的收益应当超过25万美元,这在中国可算是一笔不小的数目。ZDI还为吴石授予“白金 ”奖,该奖项的获得者可以拿到2万美元的奖金,并免费参加在美国拉斯维加斯举行的“黑帽”安全大会。
吴石发现的Office漏洞和IE浏览器的漏洞分别有十几个,但更多的是关于苹果Safari浏览器的漏洞。吴石在年终时获得了ZDI颁发的“白金奖”,可以获得额外的两万美元的奖金。
“现在像我这样独立做漏洞挖掘的人越来越少了,因为难以竞争得过大公司。比如微软,他们的安全人员可以拿到内部的文档,同时Fuzzing要求的计算量特别大,大公司机器多显然有优势。”不过吴石对自己的技术相当自信,他说:“单纯依靠企业内部,或者安全公司,总是会有漏网之鱼出现。一个漏洞很可能就会造成上亿美元的损失。2002年的‘红色代码’病毒出现,大企业一半的工程师都跑去接电话,听用户的投诉去了,网络直接堵塞,甚至瘫痪。”
美国VeriSign网络安全公司东亚地区总监周铭说:“在他身上,我看到了另外一面的自己。他自由的生活是我的一种向往。”
的确,习惯了自由自在生活的吴石不愿意为了稳定的收入而委身于大企业。“现在的收入每年在三四十万元,我打算结婚,但还没买房子。现在一座100平方米的房子要300万元。”
吴石之所以能挖这么多漏洞,与他自己发展出的一套Fuzzing方法有关。Fuzzing技术应该是安全行业里非常重要的一个里程碑,它用构造大量样本并执行测试、捕获异常的思路,代替了直接逆向看反汇编代码挖漏洞的思路。而吴石在这方面的造诣是独步全球的。
这种漏洞的原理是通过对两个函数进行操作,某个数值在第一个函数里被释放,却在第二个函数里被引用,由此造成崩溃而出现漏洞。就在诸多顶级黑客束手无策之时,正是吴石灵光一现,发现了一种数学规则可以让这种 UAF 漏洞大规模地被产生,大量的UAF漏洞有一定比例可以在特殊情况下被利用。这个漏洞的挖掘让当时吴石率领的KeenTeam,也就是腾讯安全科恩实验室的前身在圈内声名鹊起。看,这就是“数学之光”,数学在信息安全领域的延展性可见一斑。
需要向软件中输入大批经过修改的文件, 吴石通过即时通讯和电子邮件解释了如何使用一种名为“fuzz方法来收集这些漏洞的使用这种方法时。以便检查哪些文件会导致软件解体。之后再对这些解体事件进行分析,以便了解哪些情况会允许黑客注入代码并控制浏览器。
然后将他抛入ApachTomcat服务器。通过这种方法, 吴石使用他自己的独特算法来生成这些测试文件。就可以获得更快的频率,从而比普通研究人员测试更多的样本。与以往只更改文件中的单一变量不同,吴石表示,方法会更改整个样本,而且能够在进行尽可能多的更改的同时,仍然让浏览器将文件识别为HTML文档。fuzz框架关注的软件架构,而不是细节。吴石说。
表示, ZDI研究经理亚伦?波托尼(AaronPortnoi对吴石发现的漏洞进行了研究。吴石不会对他所发现的漏洞进行深入分析。但他认为,这名中国研究员使用的方法可以捕获到其他方法无法发现的漏洞。这些文件中的相关项目有着复杂的层次结构。可以改变关系树结构的工作方式,而不仅仅是其中的一个项目。波托尼说,很多人只是fuzz数据,而他则是fuzz关系。
据ZDI研究部门经理阿伦-波托尼对吴石发现的漏洞进行研究后表示,吴石不会对他所发现的漏洞进行深入分析。但他认为,这名中国研究员使用的方法可以捕捉到其它方法所无法发现的漏洞。“这些文件中的相关项目有着复杂的层次结构,但他可以改变复杂的关系树结构的工作方式,而不仅仅是其中的某一项目。”波托尼说,“很多人只是fuzz数据,而他则是fuzz数据间的关系。”