随着新能源汽车保有量的快速增长,公共充电桩网络覆盖了全国从一线城市到县域的广大区域。车主使用充电桩进行充电时,需要扫码或者刷卡进行身份认证,充电桩运营商的后台系统会记录每一次充电的详细信息,包括充电时间的起止时刻、充电站点的位置、充电电量和费用、以及车主的实名信息和支付账户信息。

一家在市场中排名前列的充电桩运营企业,管理着数十万个联网充电桩的日常运营。企业的运营系统被设计为面向内部管理使用,用于监控充电桩的在线状态、处理故障报修和运行数据分析。系统的设计初衷仅限内部网络访问,但在外部集成其它业务合作伙伴的需求驱动下,运营团队临时开放了几个数据查询接口给外部的合作伙伴系统调用。由于是在项目进度压力下仓促实现的,这些API接口的安全设计非常简单,仅靠一个固定的API密钥来验证调用者身份,没有接口调用频率限制,也没有访问数据范围的控制,拿到了API密钥就能查询所有充电桩过去的全部运营数据。

问题出在这个API密钥的管理上。密钥被明文写在了一个项目的技术交接文档中,文档保存在公司内部的一个共享文件服务器上。一名已经离职的前运维人员在离职时带走了这份文档的一个备份。几个月后,这个离职人员参与了一个线上技术论坛的数据技术比赛,为了方便写代码,他在参赛作品中将这份文档的部分内容粘贴到了GitHub仓库中,而这个仓库是公开的。他完全没有意识到文档中嵌着的密钥会被当作敏感信息处理。

很快,API密钥被暗网上的数据获取者扫描到,开始被用来大规模地从充电桩运营平台的数据库中提取数据。攻击者在不到一周的时间内将数据库中过去一年所有的充电记录下载了下来,涉及数千万次充电的详细记录和数百万车主的实名信息。随后这批数据被整理打包后放在了数据交易市场上出售。

事件直到有车主在社交平台上说自己在暗网上发现了很多新能源车主的个人信息被公开售卖,运营公司才意识到数据遭到泄露。调查的结论让运营平台的负责人感到难以置信,一切的源头仅仅是一个被离职人员遗留在公开代码仓库中的API密钥。一个小小的密钥无人问津,却开了通向左洞的大门。

监管机构随后介入调查,并依据个人信息保护法和数据安全法的规定,对运营企业做出了处罚。处罚力度之大引起了整个车联网行业的震动。企业在后续整改中,对所有的数据接口进行了重新设计,引入了访问频率限制、数据范围授权和基于IP白名单的身份验证机制,对系统的中的全部密钥和凭证进行了彻底的排查和轮换。

这起案例反映出企业在快速发展过程中容易忽视的多个安全隐患。尤其是在API的开放和第三方接入的场景中,如果安全设计只停留在功能能跑通的阶段而没有考虑攻击者的可能性,一个小小的疏忽就可能变身巨大的安全事故。对代码仓库的扫描、密钥的生命周期管理、应用系统的接口安全设计,这些看似基础的安全措施,在实际运行中往往就是决定企业能不能守好数据大门的关键因素。