出品|三言财经
作者|嘴遁
近日,有媒体发文称,阿里云发生因隐私权限设置错误而导致的大规模用户资料泄露事件,涉及40余家企业、200余项目,涉及企业中,中国移动、万科、咪咕音乐等在列。
重要信息泄露:手机号、手持身份证照片、销售报表
据发现该问题的网络工程师称,只要登录阿里云旗下的云校平台,就能够浏览很多公司的“内部”代码,而这些内部代码中就包含一些用户的个人隐私信息,如身份证号、手机号、手持身份证照片等,以及企业的重要商业秘密,如销售人员报表。
具体而言,对于万科集团,泄露的是OSS密钥,而该密钥权限非常大,可以访问整个万科集团的线上oss,包括购房客户上传的手持身份证照片,各地销售人员报表等。
对于浙江小虫,则是用户数据库泄露,其中一个数据库存储了36万条中小学生的姓名、手机号和学校,可直接登录查看。
对于咪咕音乐,则是其库存里所有的高清音乐都可被免费下载。
而对于上海图聚智能科技有限公司,问题则更严重。它的客户已经包括全国数百家医院和商场,以及高德地图等。而由于代码近乎全部泄露,其辛苦运营的数据能够被竞争对手全数获取。
核心原因:企业方代码仓库权限设置错误
该工程师称,出现问题的根本原因,在于企业错误的把自己的代码仓库权限,设置为了 internal。而根据阿里云的说明,internal 权限意味着“站内用户访问”,也就是凡是阿里云效用户,都可以看,等于是半公开。
事实上,该权限设置本来有三档,包括不公开的 private (只有自己企业的人能看),半公开的 internal (所有站内用户可以看),和完全公开的republic (公开,所有人都能看)。
企业在建立代码库时,本应把权限设置为 private,而不是 internal。
然而上述企业为何把权限设置为 internal 了呢?
涉事公司程序员:阿里云效默认设置 internal,企业未更改
据一位涉事公司研发人员透露,当初建站时,阿里云效还是全英文平台,而权限控制默认是“internal”。
“主要是程序员个人建库的时候疏忽了。”他如是说。
对此,阿里云云效平台表示否认:云效平台和github一样,从一开始就是默认的“私有”,但客户可以手动更改,相关的选项也都符合行业的通用规则,且完全由客户自己设置。
然而,上述涉事公司研发人员却称,当时他一共建了3个项目,他在事后特别确认了一遍,当时的3个项目权限全部是平台“公开”的。
“我建项目的时候,肯定不会把所有项目,专门都从‘私有’改成‘公开’。”
阿里云效默认设置是否为 internal 的问题,双方各执一词,也没有相应证据,无从判断。但可以确认的是,目前阿里云云效平台建库操作页面为中文,默认权限为“私有”。
网络工程师:多次联系阿里云,沟通后阿里云不作为
据发现该问题的网络工程师称,他是在半年之前发现了该问题,先私下联系过一些公司。但毕竟涉事企业太多,且不知自己私自联系是否违法,所以他后来联系阿里云尝试一次性解决问题。然而多次沟通未果,他只得继续自己一个个单独联系涉事企业。
据悉,他一开始发现问题后,曾通过邮件、微信等方式联系涉事企业,取得了一些正面效果。但其哥哥告知,这样做的法律风险很大。
因此他开始找阿里云官方渠道来解决问题。
2018年11月,在第一次与官方渠道沟通后,问题的得到了部分解决:云效平台上不再能检测出代码泄露项目的新公司了。
然而,他发现,之前的代码泄露企业,依旧处于“裸奔”状态,这可能意味着阿里云并没有通知到代码泄露的企业。
今年1月31日,他再次联系了阿里云云效平台,并提供了咪咕音乐、百度无人车合作伙伴ecarx、51信用卡旗下的51足迹等知名项目的泄露情况,希望事情得到处理。
而阿里云客服却表示:“作为公有云的代码托管,我们无权扫描用户的代码,这一点公有和私有一样,仓库的开放性是用户自主的权利。”
工程师提供的与阿里云客服对话截图
在上述对话中,我们可以发现,阿里云方面表示,会将信息给到涉事企业的代码维护者。
然而网络工程师表示,他发现上述企业的代码泄露情况依然存在。
“可见它们并没有接到通知。”他如是说。
阿里云:正逐一通知 Internal 权限设置用户
对于上述事件,有微博网友表示,锅是企业自己的,平台提供了多种权限,企业根据需要自己选择。
而另一位网友则表示,阿里云的托管产品都不怎么关注权限问题,甚至有“默认对全网公开”的情况。他怀疑,阿里云的交互设计是照搬 gitlab 的。
“这产品设计明显有问题”。
“如果选项改为「所有阿里云登录用户可见」,还有谁会选错?这锅阿里云至少要背一半”。
针对网友反应的问题,阿里云代码托管团队昨日在微博上发布了《关于 Internal 权限的说明》。该声明称,阿里云已于去年9月增强了 Internal 权限的中文注解,并于昨日发出全站通知提醒。同时,正逐一通知之前将访问权限设为 Internal 的开发者用户。
作为一个旁观者,三言财经认为,在这次泄露事件中,显然双方都有一定责任。
阿里云方面错在未能及时优化和解释有歧义的英文权限描述,且在接到提醒后,反应迟钝,未及时通知其用户预防风险。一旦造成重大损失,平台也将承担相应责任。
而作为企业一方,程序员未能理解透彻Internal一词所涉及的访问权限范围,也属于基本专业素养的不达标,而不仅仅是简单的疏忽。