阿里云40家知名企业源代码泄露,谁的锅?

2 月 22 日,据铅笔道报道,上海一家科技公司的后端工程师张中南爆料,阿里云代码托管平台的项目权限设置存在歧义,导致开发者操作失误,造成至少 40 家以上企业的 200 多个项目代码泄露,其中涉及到万科集团、咪咕音乐、51信用卡旗下51足迹、百度无人车合作伙伴 ecarx 等知名企业,他半年前已经发现此事,并向阿里云云效平台报告,问题至今未完全解决。


张中南称,去年 8 月下旬他注册了一个阿里云平台账号,却意外发现在阿里云效平台上,只要登上账号,就能浏览到很多公司的“内部”代码。


最初,张中南以为这些代码是开源的,但这些代码内容很多都是不该出现在开源项目中的。比如,项目的数据库、账号、密码等。抱着测试一下的态度,张中南登录了这些账号和密码,却发现了一些公司生产环境的具体数据。


张中南认为,之所以出现这种情况,可能是因为这些公司的程序员在给项目建库时操作不当,将项目权限设置成“平台公开”。因为当时的阿里云代码托管业务还是全英文平台,可能很多企业在创建项目的时候会误选择“internal”,也就是“平台公开”。


张中南发现潜在安全风险后,与其中一些安全公司的一线工程师联系,通知对方修改了设置。考虑到自己的“义举”可能对自身带来法律风险,2018 年 11 月,他将51信用卡在阿里云 code 上托管的代码项目 51足迹 App,因为权限配置不当而泄漏的情况告知了云效客服,希望阿里云能发个站内信告知这部分公司。


当时阿里云云效方面表示,张中南反馈的 51 信用卡旗下 51 足迹 App 后台的代码,仓库级别设置为了“internal”,需要通知客户改为“private”的问题,已经关联任务。但张中南发现,事情并没有完全解决,他在11月之前监测过的代码泄露企业,依旧处于“裸奔”状态,这意味着阿里云并没有通知到代码泄露的企业。


今年 1 月 31 日,张中南再次联系了阿里云云效平台,希望事情得到处理。这次阿里云客服表示:“作为公有云的代码托管,我们无权扫描用户的代码,这一点公有和私有一样,仓库的开放性是用户自主的权利。”阿里云称,感谢张中南的反馈,会将其反馈到的信息给到其发现的几个仓库的维护者,但同时也建议张中南可以直接通过 commit 的邮箱与维护者进行提示。


目前,阿里云云效平台建库操作页面为中文,默认权限为“私有”。



 图片来源:铅笔道  所有者:铅笔道 


网络尖刀团队曲子龙撰文反驳了铅笔道《独家 | 阿里云出现源代码泄露企业 涉及万科等 40 家企业 200 余项目》该文的论调,他认为,文章描述实际泄漏源过度倾向于问题出自“阿里云代码托管平台”,但事实上并非如此。


“什么是代码托管?用大白话讲就是提供一个存代码的地方,企业可以像托管服务器一样,在上面自由存放托管代码。


托管怎么泄露的?就是创建托管项目分为“公开”和“私有”模式,很多程序员对公开和私有可能有什么误会,把本该私有模式的代码(阿里云默认就是私有模式),设置成为了公开,导致所有有公开权限的人都可以在这里 down 他原本需要设置成为“私有”的代码。


和阿里云有什么关系?文章里又一个吐老血的狗屁剧情就这样发生了,文章描述阿里云存在的问题竟然是因为阿里云代码托管平台的业务,这些描述都是用英文写的!自认为,即便是英文不认识,读读描述仍然是能搞的懂的问题,不知道为什么会成为一个直接导致‘用户数据泄露’的大问题。”


曲子龙指出,程序员误传代码,把包含敏感信息的项目传到了开源平台,这是一个常年累积下来的幺蛾子病。


“GitHub 敏感信息泄露,已经成为了一项标准的安全测试流程了,这些问题都出自程序员本身对安全意识的匮乏,程序员要背锅,技术老大的锅也跑不了,能当的上团队的技术 leader 起码的安全风控意识,安全标准还是要有的吧?为什么没有有效的管理、培训、风控体系,才让程序员犯了这么低级的错误,导致出这一的大问题,我想是每一个技术负责人都该自我检讨和思考的。”曲子龙写道。


也有人认为,阿里云未尽到提示义务。


CODING公司产品总监王振威对宅客频道表示,阿里云方面存在两个问题。第一,企业级产品可以这么随意的选择公开源码选项是有问题的,不符合企业管理的规范。第二,它提供了一个具有误导性的选项 internal,让用户误以为是内部项目,其实不是。此外,阿里云云效平台客服处置不当。“这个操作不需要扫描用户代码,应该及时通知所有用户检查自己项目的权限设置。”王振威说。


宅客频道发现,2 月 22 日下午 2 点左右,阿里云在其新浪微博上发布了关于 Internal 访问权限的说明:


我们收到开发者用户反馈,认为阿里云代码托管平台 code.aliyun.com 访问权限设置中的“Internal”选项存在理解歧义。


该平台旨在为开发者提供代码托管与交流服务。我们提供了Private(私有)、Internal(站内登录可见)、Public(完全公开)三个访问权限选项。默认代码访问权限为Private(私有),用户可以手动更改为其他选项。


2018 年 9 月底,我们已经增强了对 Internal 权限的中文注解,并于昨日发出全站通知提醒。同时,我们正在逐一通知之前将访问权限设为 Internal 的开发者用户,确保大家正确理解该访问权限的含义。


任何产品功能理解上的歧义,都说明我们在产品设计和用户体验上做得不够好。我们正在评估、改进相关产品设计,让所有开发者有一个更安全、清晰的使用体验。


阿里云代码托管团队


2019年2月22日


发表评论 取消回复

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