财新传媒 财新传媒

阅读:0
听报道

 

文/刘兴亮(微信公众号:刘兴亮时间)
 
B站源代码泄露,不仅造就了程序员们的狂欢,更有诸多未解之谜,《亮三点》节目请到了极安客实验室创始人万涛(黑客老鹰),来聊一聊B站源代码泄露的事儿。
 
注:下文中,刘兴亮简称为“刘”,万涛简称为“万”。
 
刘:把代码上传到GitHub,本来是程序员们经常干的一个事,通常一个程序员他应该只管自己分内的事儿,所以说上传上去即使泄露,也只是一部分,但这一次竟然把B站的全部源代码都泄露出去了,是不是有点奇怪?
 
万:也许未必奇怪,有可能这个代码的分享方式是以一个项目方式来创建的,也就是说它可能不是一个程序员,可能是一个项目组,或者说大家都是用GitHub的这种模式来工作。
 
刘:代码泄露对于一个公司来说,后果很严重。尤其是B站这样的一个上市公司。对上市公司的影响首先就体现在股价。这个事情发生后,B站当天股价就暴跌,第二天又被上海证监局约谈了,因为公开了一些中奖的猫腻行为。你觉得这事对于B站的影响有多大?
 
万:这个影响要从几个方面来看:一个是泄漏的代码是当前业务本身在用的代码,还是以前的?官方声明说,这是老代码,已经不用的。至于如何判断是新代码还是老代码,可能需要专业的机构去做相关的检测。
图片来源于网络
 
假如是新代码,那影响比较大。因为我们安全行业通常会有安全测试,比如黑盒测试和白盒测试。整个当前业务使用的源代码泄露,相当于提供了一个开放性的白盒测试给安全爱好者。原有代码里面的一些缺陷和风险可能就会直接暴露在所有人面前,这是一方面的风险。也有可能对业务的安全产生持续性的影响,如果里面确实存在缺陷的话就需要整改,相对来讲它的危险比做黑盒测试会大很多。
 
第二个维度就是如果的确存在类似业务的猫腻或者有些不可描述的bug,那么会对公司的形象、商誉、用户的信任产生影响,这个直接会反映在他未来的业务上。
 
第三个层面就是管理问题了。因为作为互联网公司,技术是你的根本,代码的安全管理实际上是反映了管理水平的问题。如果说现有代码都这样去泄露,说明它的安全管理存在问题。
 
刘:刚才你提到了两个专有名词,黑盒和白盒。黑盒就是我们从大楼外面看,知道这个大楼的形状。白盒是他可以闯进这个大楼来,更容易进行破坏。
 
如果泄露的是最新代码的话,B站就需要进行重建。那B站这一次需要付出的成本有多大?可不可以简单量化一下是个什么级别?
 
万:这个要看代码量和它的架构,从第三方角度去看,本身存在的问题大不大。
 
对应的案例就是:深圳大疆。也是程序员上传代码在Github上,但被国外的一个安全研究员发现了大疆安全密钥上的一些问题。这间接影响到了大疆的用户和用户的秘钥,甚至是飞行数据这类的数据安全问题。大疆按照法院判决评估大概有一百多万的损失,程序员也遭受了半年的刑法处置以及人民币的处罚。
 
相关其他互联网公司,比如携程,以前也出过类似事件,后来他出台过一些规定。关于Github上这种分享,如果违反了公司的规定,要接受一定经济或者人事上的处罚,也有可能要评估一定的损失,所以损失的量化需要有关部门或者说B站自己来评估,但如果就现在的话,他可能需要代码重构的工作,这也是一个很大的工作量。
 
刘:大疆的程序员只是自己负责的那一小块,就给大疆造成了一百多万的损失,给他罚款20万然后判刑了半年。如果这样进行一个比较的话,B站的损失应该比大疆的损失会更大,那这个程序员是不是受到的惩罚也会更重呢?
 
万:这个具体要看原因。比如说这本身是公司行为,它是一个项目模式,只是因为公司管理上的疏忽,使代码没有做私有化管理,变成完全是公开的,那这就是公司管理上的问题。
 
第二如果是程序员自己的行为,那要看他的主观性客观性以及实际产生了多少损失。比如有用户可能因此发起诉讼或者说造成用户流失等等。
 
刘:在您这样一个老程序员眼里,像B站这样的上市公司,一个或者是几个程序员就可能在无意中把整个公司的源代码都上传上去,然后泄露了。那对于它这个安全管理是不是太小儿科了?
 
万:其实不仅是像B站这样的上市公司。还有很多公司,如果你在Google上或者百度上,你用Github源代码泄露去搜一搜,你会发现有很多这样的案例。有时候互联网公司的安全部门也没办法管,因为研发可能是有别的部门在管理,可能公司是一纸规定,但是缺乏一些手段去发现。
 
在一些比较成熟型的风险控制公司,一般在源代码关于用Github上都会有一些规定,比如说要做私有化处理或者要去掉一些敏感信息等,这方面考验的是一个公司的管理水平。但也有可能会产生业务和安全部门执行不到位的问题。比如安全部门希望要把这块管理起来,但是程序员个人为了图方便,或者说研发部门为了图方便,大家并没有严格去遵守相关的安全规定。所以这方面的工作是需要多个维度来看。
 
作为上市公司你肯定是要做这样的合规,如果说这个问题的确是新问题,而不是以前的老问题的话,可能就是你的合规没有做到位,有了面上的合规但没有做到实质的合规。
 
再一个就是可能有些做了这样的规则,但它缺乏技术手段。比如说,一般我们都会用第三方的工具,或者说自己开发的工具,用爬虫在Github上去爬,以自己公司的名字作为关键字,去看有没有这种非规范性的代码泄露问题。
 
还有可能就是一些个人行为,我们经常在Github上扒到很多公司的一些源码库。
 
刘:你扒过吗?
 
万:这是常见的事儿。比如你想了解或评估一个站点或者某个项目,你想找点资料去看一下……其在16年以前,这种事情是很多的,慢慢一些公司认识到了其中的危害性,但是又不能够完全封禁程序员这种模式,因为有很多程序员是为了996加班,回家还能写代码,而且在Github上分享也有很多收益,大家一起互相学习,所以也是可以理解。
 
不能完全禁止掉程序员去用Github,这也是一个互联网公司文化的底蕴基础,所以这里面主要是一个平衡。
 
刘:这次泄露的有B站管理员邮箱,包括邮箱密码,还有大量的密钥,这是不是意味着用户的隐私,用户的信息也会被跟着一块泄漏了?
 
万:主要的应该是测试性的内部邮箱,这种情况其实反映在做Github这种代码的管理上,还可以做得更细一些,一方面我们有时候的确是为了工作方便,要把代码在Github上来进行管理。
 
另一方面,如果涉及到完全是内部账号,写代码有时候是把它用注释,或者其他方式放在里面,为了自己阅读方便。但是当你放在一个公共的资源平台上,这些就应该要做处理,在早期的一些Github的使用上,大家过于简单粗暴。
 
这种其实不一定反映在Github上,其实在百度网盘上你也能看到,有一些离职的工作是通过百度网盘做离职文档,但是文件上传以后,交接人下载完了之后也没管,然后这个文档就一直在那儿,甚至没有加密,那么大家用爬虫就能爬到。而且,很多公司这种交接文档里面什么内网账号都很全……
 
所以这种泄露途径是很多的。
 
刘:我也是一个B站用户,作为B站的普通用户要不要担心自己的信息被泄露了?或者说我们需要尽快改掉什么东西?
 
万:作为一个用户来讲,不管是你用B站还是A站,你自己的信息保护都需要你自己来注意的。作为一个视频网站来讲,可能关联性的是用户账号、密码,有可能你是一站通行的情况(用B站也是这个账号,用A站也是这个账号,密码都一样的),所以一旦某一个站点出现泄露,就会导致关联账户出现泄漏。尤其是产生撞库的风险。
 
二是很多时候你是用关联的模式去做管理。现在账号之间会有通用模式,所以这可能会造成一系列的泄露,那么可能在某一个站点,比如B站你泄露了你的一些视频的欣赏习惯,或者有些位置信息,收藏癖好等,但是这些信息拿去撞别的,比如电子商务的一些购物站点之后,就能撞出更多信息。
 
所以每个环节,你都要做一定的自我保护,泄露这件事不能说你觉得这没啥,我在上面就是看个片。不能有这种侥幸心理。
 
总结
 
安全更多的还是自个儿的事,要擦亮一双眼睛,做好更多的防范工作,最关键的一点不要所有的网站都是同样的密码,不要给他们有撞库的可能性。
 
这一次B站源代码泄露的事,再一次给我们敲响了一个警钟。以后不管是B站还是A站还是D站还是E站F站,还是BAT等等,我们都应该吸取教训。
话题:



0

推荐

刘兴亮

刘兴亮

1308篇文章 36天前更新

DCCI互联网研究院院长,闪聚创始人,新媒体天使会创始人兼合伙人。资深互联网人士,知名营销、传播专家。多家上市公司顾问。计算机学会委员,中国电子商务协会委员。西南交通大学计算机硕士。IT名博,访问量超过千万。主要著作有《智胜江湖:创业取舍经》、《第三浪-互联网未来与中国转型》等。曾任大度咨询副总裁、互联网实验室总裁、红麦软件(soften.cn)总裁等。 【速写】 刘兴亮,山西吕梁人氏,现定居北京。 性情如家乡的黄土般纯朴, 性格若家乡的枣树般坚韧, 经历像家乡的黄河般沧桑。 好酒,三杯两杯不醉; 喜友,十个八个不少。 无它,性情耳! 【素描】 年未六十,貌似六十,心态逾六十。 心智呢?时而六十,时而十六。 【联系】 QQ:27739831 MSN:htdsd@msn.com Email:xlliu@vip.163.com

文章