明文存储密码, 为何连谷歌也无法杜绝这种“蠢事”?

文章正文
发布时间:2024-09-08 19:27

1.一些小网站或许数据库会明文存储密码,而知名互联网公司绝无可能,但后者的业务系统颇为复杂,关联功能可能意外隐藏着明文存储漏洞,因此例行安全检测都额外注意这点。

2.尽管大公司多数明文存储漏洞没有造成影响,但也有漏网之鱼,被外界捕捉。

3.明文存储密码漏洞的主要由灯下黑、设计考虑不周、历史遗留、过于自信这四个因素造成的。

最近,每日优鲜上线“优鲜超市”,其商品品类由蔬菜水果等生鲜产品延伸到美妆保健等日用产品。自此,每日优鲜开启了从生鲜电商到线上超市的过渡。

日前,谷歌公开承认其产品GSuite存在低级安全漏洞。

GSuite管理控制台允许管理员为用户重置密码,然而该功能竟然以纯文本的形式明文存储用户的密码而非加密存储,如今该功能已被移除。

资料显示,GSuite是由Gmail、Google文档、Google云端硬盘等应用组合而成的一个办公套装,全球共有500万个机构订阅了该服务,包括60%的世界500强公司。

“虽然这些密码没有经过哈希加密储存,但它们仍保留Google经过安全加密的基础设施中。”Google工程部副总裁SuzanneFrey安抚用户:“此问题已得到解决,我们没有明确证据表明这些密码遭到了不当访问或滥用。”

然而,明文存储密码这种低级安全漏洞,在谷歌体系内存在了14年未被发现,为何检测不出来?除了谷歌,历史上诸多知名互联网公司都被明文存储密码漏洞困扰过,为何此类漏洞屡禁不绝?

1/关联功能可能存在漏洞

低级安全漏洞有许多,网站参数过滤不严导致的跨站漏洞、设计缺陷导致的任意密码重置漏洞与任意支付漏洞、弱口令漏洞、明文存储密码漏洞等。

这其中弱口令漏洞与明文存储密码漏洞被公认为最“愚蠢”的漏洞。

密码不能明文存储,这是最基本的安全常识,经验丰富的程序员都明白不能给黑客任何可趁之机,后者会带来隐私泄露的可怕后果。

因此,网站存储用户密码都必须进行加密,譬如张三注册账号时设定密码为“567122cdefe”,后台直接看不到这个密码,而是一串字符。

倘若用的是MD5加密方式,那么看到的可能是a9541a219863e8aa(16位)

或ad2517b1a9541a219863e8aaff3593ec(36位),这两个字符串还可以进行二次加密,以增强密码的保护强度。

安全措施做足了,哪怕黑客入侵了网站数据库,也不会轻易破解密文从而得到真实的密码,因此明文存储历来为程序设计大忌。

有业内人士告诉记者,一些小网站或许数据库会明文存储密码,而知名互联网公司绝无可能,但后者的业务系统颇为复杂,关联功能可能意外隐藏着明文存储漏洞,因此例行安全检测都额外注意这点。

譬如微软收购的GitHub,就是在2018年例行安全检测中发现一个明文存储漏洞:用户重置密码时安全内部日志记录也同步明文保存了一份。

2/隐私泄漏触目惊心

尽管大公司多数明文存储漏洞没有造成影响,但也有漏网之鱼,被外界捕捉。

大名鼎鼎的Facebook内部登录系统曾将6亿用户的密码以明文存储保存,可被Facebook的内部员工搜索、访问。

该漏洞最早可以追溯到2012年,到2019年一共被内部员工访问超过了900万次,不过Facebook软件工程师ScottRenfro对外表示:“我们在调查中没有发现滥用这些数据的迹象。

然而Facebook公开要求所有用户更改密码则暴露其对泄密事件信心不足。

多方人士指点记者,暗网中流传多份数据文件,就有涉及Facebook的用户隐私数据,2018年10月就有黑客以2.60美元的单价销售Facebook账号的登录信息,涉及5000万用户。

而安全监控公司4iQ最近表示,暗网出现一份高达41GB的数据文件,内含14亿份以明文形式存储的账号和密码,涉及Facebook、LinkedIn、MySpace、Twitter等多家知名互联网公司。

从泄露的数据来看,123456、123456789、qwerty、password等密码用得较多。

国内不少互联网公司也在明文存储密码上栽过跟头,最著名的当属2011年的“泄密门”。

2011年12月,CSDN网站备份数据库遭黑客攻击,600万用户的登录名、密码数据被窃取,之后天涯、世纪佳缘、走秀等多家网站的用户数据库也在网上被曝光。

有黑客向记者回忆:“当时第一眼看到从网上下载的天涯、CSDN等原始数据库文件,居然是明文密码,简直惊呆了,怎么会如此草率。”

上亿网站用户的密码曝光后,黑客发动了后续的撞库攻击,获得了更多个人隐私,甚至包括支付敏感数据,影响极其恶劣。

所谓撞库攻击,就是利用用户一个密码走天下的习惯,通过不断尝试登录、企图掌控用户的全部网络痕迹与隐私数据。

“泄密门”风波之后,也时不时有知名网站、APP被证实存在明文存储密码,譬如乌云网曾披露银联手机支付APP的unionpay.db数据库中明文存储了账号和密码。

3/四大因素诱发漏洞

明文存储密码漏洞主要由灯下黑、设计考虑不周、历史遗留、过于自信这四个因素造成。

灯下黑

多名安全人士告诉记者,安全测试时如果手尾没有处理干净,也可能留下安全漏洞,出现灯下黑的情况。

譬如GitHub的明文存储密码漏洞出在安全内部日志上,该漏洞也许是某次安全测试时开启了明文日志,而最终忘记去掉该日志所导致的。

因此完成安全测试后,应关闭调试模式并删除正式环境不需要的功能或代码。

设计考虑不周

倘若程序在设计时考虑不周,无意中也会制造漏洞。

譬如Twitter使用一个名为bcrypt的函数对密码进行掩码处理,但在密码被bcrypt函数处理之前以明文形式储存的,这就为直接获取到用户密码留下了“窗口”。

历史遗留

罗马不是一天建成的,知名互联网公司也不是一天长大的,在成长过程中难免遗留各种问题,漏洞也不例外。

时任CSDN产品总监范凯曾总结经验教训:“CSDN网站早期使用明文是因为和一个第三方chat程序整合验证带来的,后来的程序员始终未对此进行处理,一直到2009年4月当时的程序员修改了密码保存方式,改成了加密密码。

我2010年来CSDN上班以后发现CSDN账号的安全性仍存在潜在的问题:虽然密码保存已经修改为加密密码,但老的保存过的明文密码未清理;帐号数据库运行在WindowsServer上的SQLServer,仍有被攻击和挂马的潜在危险。”

一名匿名人士也告诉记者,他所在的公司人员流动性较大,早年的程序不太规范,又经过多方修改一度也出过类似的低级安全漏洞,好在后期重塑架构体系,此类问题才得以解决。

历史遗留是颇为棘手的问题,早解决比晚解决好。

过于自信

对公司的安全体系比较信任,而公司安全人员在例行安全检测时又没有做到任何细节不放过,导致一些漏洞时隔多年才被发现。

一名资深程序员向记者透露:“曾为某消费APP设计过活动页面,用户可在该活动页面优惠充值,上线之前请安全部同事检测过,没有发现问题。上线后也一切正常,直到白帽黑客发邮件通知,才知道页面存在1分钱充值任意金额漏洞。”

这四大因素,归根结底就是安全意识淡薄。

电影《蜘蛛侠》有一句经典台词“能力越大,责任越大”,大公司肩负无数用户的信任,须牢牢绷紧安全意识这根弦,才能保护用户的隐私不受侵犯。