华住集团火了,但是火的不是说酒店漏出了不雅视频啥啥啥的,而是据说黑市在公开叫卖华住集团2.4亿条开房信息,还包括用户的身份证等信息,起售价8个比特币。
本来看到这个消息,我以为是别人编出来的。哎,你还真没想到卖家提供的1000条测试记录都是真实的。想到我上个月才刚跟女朋友住过一次宜必思……
这事情出来之后,我看了不少媒体去解读这个事件。其中不少科技类媒体挖出说这些信息的泄漏原因是华住的程序员20天前不小心把自己公司的数据库的账号密码以及连接方式给上传到Github上面了。
并且这个暴露的事件还和这次事件的发生时间有点吻合。如果真的是因为这件事情暴露的话那可以说华住的整个技术团队都可以遭到解雇了。最少从这个事件上我们能看到华住集团技术团队存在的问题。
1.密码明文存储
首先看到这个Github映入在我脑海的第一句话是:这密码竟然就这样明文存储?我从大学没毕业的时候就知道写在这种配置文件里面的密码一定是加密之后存放的。就算别人看到你的配置文件也不知道你的真实密码是什么。
2.数据库允许外网直接连接
这是第二点,稍微有点工作经验的程序员都应该知道一般只有内网或者指定白名单才能有权限访问到内网的数据库。这如果真的只曝光一个ip地址和账户密码就能在全世界各个地方访问那就有点搞笑了。
3.账号密码直接上传至Github
公司应该做脚本检测每次Push请求代码中的危险字段,对于每次Push请求,尤其是推送到非加密仓库中的请求应该严格遵守一套规范。
类似这种Password的上传,应该第一时间检测出,并给出警告。同时我还有另一个疑问:为啥这些项目不放在私有仓库里面?
4.使用弱口令
弱口令……root/123456这个组合像极了我们刚学习数据库的时候习惯设置的账号密码。说实话,就算这个程序员不暴露,这密码也能简单的粗暴的被猜出来。
说实话这三条只要犯了其中一条都有可能导致整个公司的数据遭到泄漏,当然除了上面几条。还有可能遭到脱裤的危险操作包括:
5.禁止危险操作
在公司正常工作的员工几乎不可能存在一次性导出亿条数据的操作,不要说亿条,甚至十万条以上都很少。有人会说数据分析应该经常会达到吧?也不会,因为数据分析师一般是取得聚合之后的数据。
所以公司的数据库工程师应该做好这种危险操作的设置,例如:禁止十万条以上记录的导出、禁止超过1000条身份证信息的导出等等。
当然并不是做好上面的事情,就不会被脱裤了,但是至少说极大的降低了风险。回头说过来,你企业真的要是曝光了这么多个人非常非常隐私的数据,还有人敢住吗?
推荐阅读
– 滴滴,你可真恶心