揭秘 | 不再安全,Windows10源代码泄露风波始末

百家 作者:程序人生 2017-07-12 06:16:53

张银奎,《软件调试》和《格蠹汇编》作者


最近很多人在讨论Windows10源代码泄露的事,也有不少朋友询问老雷:“是真的么?”“听说泄露了32T啊?”“哪里可以下载?”……难以一一回答,于是写篇文章。


先简要回到前两个问题:确实是真的,但远远没有32T那么多。


在最初的来自The Register的报道中,他们称有大小32TB(1TB=1024GB)的文件泄露,并且被存放在Beta Archive FTP服务器上。源代码泄露让微软十分尴尬——微软已经把计划中的源代码分享给了合作伙伴、企业、政府与其他客户,而这些源代码甚至还包含着Win10 Mobile、最新的Win10创作者更新与ARM版Win10的部分内容。


近日,微软就在给外媒The verge的一封邮件中,确认了源代码泄露属实的事实——“我们评估了这些(泄露的)文件,它们的一部分确实是源代码,属于我们与合作伙伴和OEM厂商源代码共享计划的一部分。”


要理解这起事件,应该从一个名叫BetaArchive的网站(简称BA)说起。用BA网站首页上的话来说,这个网站是为Beta软件收集者建立的技术社区{The community for beta collectors}。在老雷看来,这个网站的主要功能有两个:一是收集(collect)保存(archive)各种软件的Beta版本和所谓的废弃件(abandonware)(BetaArchive is one of the largest repositories of betas and abandonware on the Web.),二是以论坛形式为大家提供讨论空间。这两大功能是为了实现BA网站logo中的三个目标:collect(收集),learn(学习),preserve(保存)。



BA网站的老大名叫Andrew Whyman,在网站上的用户名就叫Andy(Andrew的昵称)。根据BA网站上的讨论记录,Andy本人应该也是从事软件技术的,经常在论坛里参与各种讨论,发帖总数有12323个。从他建立BA这个极具怀旧情节的网站来看,他应该也像老雷似的喜爱历史。从Andy本人的用户信息来看,他加入BA论坛的时间为2006年8月18日(Joined Fri Aug 18, 2006 11:47 am),据此可以比较准确地推测出BA网站的创建时间(根据BA网站wiki的介绍,确实是于2006年8月开放(It was opened in August 2006 by Andrew Whyman who goes by nickname "Andy" and is currently managed by Andy with the assistance from co-admin mrpijey and the moderators. ))。Andy的位置是英格兰西北部的默西塞德郡(Merseyside, United Kingdom),他喜爱的操作系统(Favourite OS)是Microsoft Windows 7 Ultimate x64。



在泄露事件发生前,BA网站并不怎么著名,可能只有一些特别钟情操作系统底层的“技术控”才知道。


越深入了解BA网站,越觉得它很像是国内的驱动开发网。读了一些Andy的发帖后,不由得就想起了驱网的老马:胖乎乎,笑呵呵,无比勤奋(网站的里里外外忙不停),无比执着(坚持坚持再坚持,任外界风起云涌,但自己的网站十年不变(是耶非耶?))......


为了可以收集更多材料,BA网站鼓励用户上传文件,并且有奖励机制,这也和老马的驱网很像。所谓Beta,就是软件的公开测试版本,具有两大特征:一是公开性(不像是Alpha等内部测试版本),二是时效性(正式版本出来后,通常就不能使用或者没有使用价值了)。因此,BA网站收集Beta软件这个主业应该是合法的。截止本文写作时间,BA网站共搜集了39000多个发布,总大小超过70TB(Archive Stats: 70.58TB, 39,053 releases)。


时代在不断变化,软件产业也在不断变化,软件的开发测试过程和发布形式也在变化。以Windows为例,在Windows 10之前,微软会在推出正式版本前公开测试用的Beta版本。但是从Windows 10开始,完全公开的Beta版本没有了,取而代之的是所谓的Windows Insider Program(为了行文方便,简称WIP)。简单说,WIP要求用户要先注册登记,然后才可以到指定网站下载测试版本的Windows 10、调试符号、以及其它文档或工具。另外,WIP是有保密条款的,用户可以使用和测试从WIP网站下载的非正式版本,但却不可以分享给别人和扩散。因此,从法律上说,WIP版本和Beta版本是本质区别的。尽管如此,仍有人把WIP版本当作Beta版本,向BA网站上传,或许是为了获取积分吧。从WIP网站上还可以下载调试符号,按说也是不可以随便扩散的,但很多人不管不顾。长此以往,大家都见怪不怪了。WIP是从2014年开始的,几年过去了,向BA上传的WIP文件应该以TB记了吧。


冰冻三尺非一日之寒,事故就在大家的司空见惯中发生了。在6月19日这一天,一个很敏感的文件包混杂在其它一些本来已经司空见惯的WIP文件中,被上传到了BA网站的FTP站点,进入了公众视野。


BA网站有个传统,每次上传文件后,都会发一个上传记录到论坛上的一个专用帖子里。十几年下来,这个帖子已经有400多条记录,分成20页。


在6月19日的上传记录中,可以看到那个包含源代码的敏感文件包——Shared Source Kit(简称SSK,稍后细说),以及与它一起上传的其它文件。 



起初并没有太多人注意到这次上传。但熟悉Windows的专业用户一定还是看到了站点里新上传的宝贝。但其中的多数人或许都只是悄悄地下载下来就完事了,仿佛在一堆乱沙中,拣到了一颗钻石……


日子一天天过去,越来越多的人看到了乱沙中的宝贝。其中还包括一个身份特殊的人,他的名字叫Chris Williams,是技术媒体The Register的加州分部总编辑(Chris is The Register's US bureau chief based in San Francisco, California. He writes about semiconductor chips and software engineering.)。Chris的工作便是发现半导体芯片和软件工程领域的猛料,并将其公之于众。两个月之前,他曾经就INTEL芯片的AMT漏洞大作文章:Red alert! Intel patches remote execution hole that's been hidden in chips since 2010。


不清楚Chris是从什么渠道得知了BA网站上埋藏的“宝贝”,但是很清楚的是,他最先意识到了这件事的新闻价值。于是在6月23日晚上,一个爆炸性的新闻出现了,标题为:Heaps of Windows 10 internal builds, private source code leak online(成堆的Windows 10内部版本和私有源代码被泄露到互联网)



文章的发表时间为 23 Jun 2017 at 20:09,星期五晚上8点多。熟悉媒体的都知道,这个时间是在互联网时代中发布消息的黄金时间,应该是Chris是精心选择的吧。链接为:https://www.theregister.co.uk/2017/06/23/windows_10_leak/


The Register创立于1994年,总部在英国伦敦,是一家颇有影响力的技术媒体,它的报道一出,立刻在世界范围内掀起了轩然大波。几乎所有大大小小的技术媒体都争相报道这一事件,有的媒体没有搞清楚问题就发表文章,其中不乏有人添油加醋,夸大事实,甚至以讹传讹。最大的一个误传就是关于泄露代码的数量,很多媒体误传是32TB,比如国内还有点名气的一个安全论坛的文章专题就是《32TB的Windows 10核心源代码泄露》。真正了解Windows的人知道,Windows 10的完整源代码也不足1TB,应该在数GB级别。


那么32TB是哪里来的呢?应该是来自The Register报道中的下面一段话:

The data – some 32TB of official and non-public installation images and software blueprints that compress down to 8TB – were uploaded to betaarchive.com, the latest load of files provided just earlier this week.


解读一下这段话,作者表达了几层意思:


  • 泄露数据的数量,大约32TB,压缩后是8TB

  • 泄露数据的性质:微软官方的,非公开的安装镜像和软件蓝图

  • 数据流向:被上传到BA网站

  • 上传时间:最近一次上传就在本周早些时候


从“最近一次上传”这句话来看,作者说的32TB应该是几年来累计上传的WIP文件总和。总和为32TB,压缩后为8TB,好清晰的数据,这样的数据一定是来自对BA极其熟悉的人。


Chris的文章一出,消息迅速流传,BA网站立刻出名了,这肯定惊动了BA网站的老大Andy,他一定是惊喜交加。喜的是多年苦心经营的小网站一下子火了,几个小时里的访问量或许已经超过了平时一年的;惊的是这样泄露事件会不会给自己带来麻烦。    


Andy紧急行动,先是删除了涉事的包含源代码的SSK包,然后连夜起草声明,在伦敦当地时间周六凌晨1点发表在BA站点上(https://www.betaarchive.com/forum/viewtopic.php?f=1&t=37283)。在这份声明中,Andy的第一句话是The Register article ... s_10_leak/ has got BetaArchive a fair amount of attention this evening. 第二句话便提到泄露数据的数量,并予以否定。


The folder itself was 1.2GB in size, contained 12 releases each being 100MB. This is far from the claimed “32TB” as stated in The Register’s article, and cannot possibly cover “core source code” as it would be simply too small, not to mention it is against our rules to store such data.Andy说涉事的目录为1.2GB,这是有些媒体称泄露1.2GB源代码的依据,但也是错误的,因为1.2GB里面仍然大部分都是二进制的安装文件,源代码只是其中一小部分。


本文为系列文章,请持续关注

张银奎,《软件调试》和《格蠹汇编》作者,喜爱写书和写代码,常以调试各类软件和分享调试技术为乐(微博:http://weibo.com/dbgger/)。近来特别喜欢庐山山南,在秀峰景区不定期举办软件调试研习班,如有同好,欢迎到松雪楼秉烛夜谈,在中正行营砥砺调试剑法,闭关修炼,详情请关注格友公众号或者访问http://001001.org/gedu



▼  直接点击,查看每日精彩

全球100款大数据工具汇总 | 机器学习老炮 |  深度学习 技术生涯有几年 | 普通人怎么逆袭  | 工作3年的程序员应该具备什么技能|顶尖程序员的五种思维模式 Stack Overflow 报告深度解析一键下载 | 128篇深度学习论文 每日更新,更多好看




直接点击,每日程序人生

1个月只敲1天代码,拿着全额薪资,我错了吗?毕业3年的程序员,怎么进BAT | 从高考到日本修士,从C语言到人工智能  |  刚写了一百万行代码,现在迷之自信 每日更新,更多好看                                                                                   

直接点击,查看每日趣闻

“等我干IT发财了,就和你离婚” | 致准备报考计算机专业的你 | 程序员的精彩生活 | 设计大PK |  程序员的小船 每日更新,更多好看           

关注程序人生,开启技术人生

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接