电动汽车充电站管理系统安全分析

随着电动汽车保有量的持续增长,相应的配套设施也呈现出迅猛发展趋势。其中,充电站作为关键基础设施,尤为重要。这些充电站由充电站管理系统(EVCSMS)统一管理,为用户和管理人员提供易用的操作接口。近期研究人员在这些管理系统发现了一系列安全漏洞,可能导致用户信息的泄露甚至造成充电系统的严重损坏。Tony等[1]人设计了一系列分析方法,分析主流充电站管理系统存在的漏洞,攻击者可借此漏洞发起如跨站脚本(XSS)、SQL数据库注入(SQLi)等攻击,最后Tony等人提出了一系列防御建议。

一 背 景

近年来,新能源汽车数量正以极高的速度增长,截至2022年6月,我国纯电车的保有量达到了八百余万辆[2];电动车充电桩(EVCS)数量也在以极高的速度增长,根据国家能源局数据,2022年上半年全国充电桩数量增加了一百余万台[3]。为了便于用户使用与供应者的管理,大多数的充电站通过物联网与充电站管理系统(EVCSMS)相连,并由充电站管理系统统一管理控制。暴露在互联网中的充电站管理系统面对着巨大的威胁挑战,这些威胁主要来自系统设计过程中留下的漏洞,Tony等人主要结合网络空间中存在的常见漏洞与攻击方式对主流EVCSMS进行分析,发现了可能存在的漏洞并总结了可能的攻击。

二 分析方法

1. 充电站管理系统查找

Tony等人首先通过网络搜索,检索到EVCS相关制造商网页、一些EVCSMS的OTA升级固件包以及一些相关开源协议项目,然后从固件、移动app以及协议三个层面对获取到的数据包(安装包)进行深入的资产分析与安全漏洞分析,主要流程框架如图 1所示。

图 1 数据获取分析框架

Tony等人主要通过关键词查找,从5个广泛部署的充电站管理系统(下称EVCSMS)的官方网站获取到了他们的固件和软件更新包;这些EVCSMS的官网一般都提供了移动app的安装包下载地址,为了方便分析,Tony等人只下载了他们提供的APK,最后确定并收集了3个EVCSMS移动应用程序的信息,即ChargePoint、Go Electric和EV Connect的安装包;最后,Tony等人通过不同搜索引擎,搜集了若干“电动汽车充电”相关的网页。以上结果汇集如图 2。

图 2 搜集到的充电站管理系统信息

2. 资产分析

对固件的分析:从固件压缩包中可以提取到Linux内核镜像、文件系统镜像、BIN/ELF可执行文件、Shell脚本等。在本地创建设备节点并挂载提取到的文件系统,即可看到固件中的根目录,从根目录中可以提取到通用网关接口(CGI)程序cgi-bin,对cgi-bin进行逆向分析,可以发现这个程序用于在EVCSMS上动态生成和管理web内容,通过分析运行过程Tony等人发现了它存在的漏洞。

对移动APP的分析:APK文件是由Java编译得来,所以这部分的分析相对简单。主要是从APK文件中提取出DEX文件,使用开源软件Dex2jar将DEX转换成JAR文件,再通过Java反编译工具JD GUI打开JAR文件即可看到源码。

对Web APP的分析:由于网页应用是闭源的,所以只能进行黑盒渗透测试它们存在的漏洞。Tony等人根据网页获取到Web根,使用爬虫工具获取到所有不需要身份验证的可访问端点。从JavaScript库文件中获取隐藏参数,并通过嗅探工具探测HTTP请求以获得隐藏的HTTP头。

3. 漏洞分析

根据常见漏洞分析技术进行深入的安全分析,比如开放式Web应用程序安全项目(OWASP)测试指南,这部分的主要工作集中在如跨站点脚本(XSS)和结构化查询语言注入(SQLi)两部分。

三 存在的漏洞

本部分总结了这些充电站管理系统中存在的几个常见漏洞(图 3),以及这些漏洞可能对充电设施、充电站的用户等角色带来的影响与危害。

图 3 主流EVCSMS中存在的漏洞

1. 跨站脚本(XSS)

由于实验对象中的大多数ECVSMS都缺少对用户输入的鉴别与编码,这将给攻击者XSS攻击的机会。例如,在其中一款充电管理系统EVlink中,Tony等人在其通用网关接口的二进制程序(cgi-bin)中发现了若干端口及其GET的请求参数,这允许攻击者将恶意的JavaScript注入到Web框架中。

XSS攻击对充电设施将带来难以估量的影响。攻击者可以利用XSS将恶意JavaScript注入EVCSMS上下文,从而劫持目标用户的会话,进而进行许多非法操作。更可怕的是,当攻击者利用此漏洞获取到管理员权限时,攻击者将可以完全控制并管理EVCSMS的功能和数据。例如,Tony等人在EVlink中发现了一个配置初始化功能,该功能可用于CSV(一种逗号分隔值)注入,当加载特制的CSV文件时,该功能可以用于嵌入XSS有效载荷,并将其存储在系统数据库中,甚至可以劫持管理员账户的会话进而对后续操作提权。图 4展示了Tony等人成功劫持管理员账户的会话。

此外,此XSS漏洞将运行攻击者通过植入web shell,并定期从EVCSMS的远程服务器获取和执行JavaScript,以实现持久访问。

图 4 成功劫持管理员的会话令牌

2. SQL注入(SQLi)

SQL注入漏洞也是一个老生常谈的漏洞了,导致此漏洞的原因有很多,但也基本都是缺少对代码和数据的区分,且缺少身份认证导致的。例如,BaSE EVMS和ICEMS上的身份验证表单通过其POST参数都存在基于布尔和时间的盲SQLi缺陷,可以将其用作注入点,系统地执行任意SQL查询并转储存储的EVCSMS数据库表。图 5展示了Tony等人转储到的数据库信息,其中包含了用户账户详细信息“sys_user”和计费信息“invoice_record”的数据库。

图 5 ICEMS中的部分数据库

SQL注入攻击带来的影响也是很可怕的,包括对系统固件的影响与对平台、用户数据等的影响。大部分的充电设施都会用到OTA对固件升级,固件文件的校验码一般都存在于数据库中。攻击者可能会通过其他漏洞可以将合法固件更换成恶意固件,并利用SQL注入,将存在数据库中正确固件校验码更换成恶意固件的校验码,导致充电设施下载到恶意固件后无法鉴别其真实性而安装了恶意固件。这些恶意固件中可能被植入Rootkit(一种恶意软件),以获得持久和特权功能,进而实现下一步攻击。

借助SQL注入攻击,攻击者甚至可以更改平台中的计费信息,比如修改图 5中的“bluesky”数据库中“sys_bill”和“sys_refund”表的内容,它们分别包含计费和退款信息,这将给一些试图逃费的恶意用户利用的机会,给平台带来难以估量的经济损失。攻击者还可以从数据库中查询到用户的账户信息,其中不乏一些用户的敏感信息,比如用户的密码、登录活动、邮箱地址等。借助这些信息,攻击者可以对用户进行针对性的进一步攻击,如黑邮件、骚扰和身份盗窃等。

3. 缺少身份认证

例如,Tony等人在EVlink上发现了一个维护端点,它没有强制执行足够的授权,因此可能导致强制浏览攻击(Forced Browsing Attacks)。事实上,攻击者可以通过直接访问此端点来绕过身份验证,这可以授予攻击者访问和修改能源管理设置面板的权限,他们将能够在其中查看用户信息和充电过程详细信息以及有关内部系统的其他敏感信息(例如固件版本)。类似的,其他EVCSMS(如Keba、Ensto CSI和Garo CSI)也因其多个端点的身份验证缺失而遭受信息泄露漏洞。例如,这可以使未经身份验证的对手了解有关底层EVCS状态的信息,如图 6所示。

图 6 Ensto CSI上未经认证的EVCS状态信息泄露

4. 硬编码密钥

Tony等人在三个基于移动APP的EVCSMS(即ChargePoint、Go和EV Connect)的Java源代码中发现了硬编码安全密钥(例如,密码密钥)。这些密钥用于通过一些对数据/通信进行加密的操作,例如创建/注册、身份验证和信息更新。因此,通过获取这些操作的源代码,攻击者可以编写一些规避加密方案的算法,这些加密往往是针对用户通信和数据的。攻击者成功规避加密方案后就可以推断出用户的个人信息以及其他敏感数据(例如,帐户凭据等)。

5. 其他

除以上列举的几个常见的、严重的,可能会对用户和平台带来损失的漏洞外,Tony等人还阐述了其他几种可能会对平台或者电网带来严重影响的安全漏洞,比如攻击者可能购置/获取大量的损坏的EVCS来构建僵尸网络,用以发各种网络攻击,如DoS或网络嗅探/侦察活动;又或者利用服务器端请求伪造(SSRF)漏洞,进而发现EVCSMS网站内网中的其他关键站点,或者利用SSRF漏洞从EVCSMS中提取信息,从而读取存储在EVCS文件系统上的任意文件和记录日志等。

四 防御建议

本节Tony等人讨论了系统开发人员/设计师可以实施的实际对策,以加强部署的EVCSMS,并减轻针对EVCS、其用户和连接电网的进一步网络攻击。针对图 3中列举的漏洞,Tony等人做出了相应的防御措施,如图 7所示。

图 7 针对以上漏洞提出的防御建议

对于可篡改的HTTP参数,开发者应该尽可能地根据预编译的有效值表过滤用户输入的参数,并且对这些输入进行适当的裁剪、编码,以避免XSS攻击。

为了缓解SQL注入攻击,开发者应该防止攻击者通过在EVCSMS身份验证表单中的易受攻击参数上滥用字符串链接来执行SQL查询,比如使用参数化查询来区分代码和数据。

开发者应该在所有端点上强制进行身份验证,防止攻击者通过侧端点上的直接或错误请求诱使EVCSMS无意泄漏敏感信息。

在固件或者移动APP中,开发者应避免使用固定的密钥(嵌入式密钥),应动态地为每个客户端创建临时密钥,并使用安全的连接(如TLS)给客户端传输,从而避免因固件、APP被攻击者逆向而泄露。

五 总 结

在电动汽车蓬勃发展的今天,充电设施的广泛部署给人们带来了巨大的便利,在充电设施的部署和生产设计过程中,网络安全是不可忽视的一环。本文中,Tony等人阐述了他们收集EVCS固件、移动、Web APP的过程,并通过分析这类EVCSMS,发现了它们存在着严重的漏洞,从而使整个层级处于网络攻击的高风险之中。随后,Tony等人阐明了利用已识别漏洞进行网络攻击的可行性,并提出了一系列切实可行的对策,帮助确保现有系统的安全,并对新系统的设计和实施提出了建议,同时为开发人员、最终用户和电网运营商提供安全指南和最佳实践。

参考文献

[1] Nasr T, Torabi S, Bou-Harb E, et al. Power jacking your station: In-depth security analysis of electric vehicle charging station management systems[J]. Computers & Security, 2022, 112: 102511.

[2] 任沁沁, 陈宇轩, 范小林. 新能源汽车“上量”发展势头强劲[N]. 经济参考报, 2022-07-08(007).

[3] 高伟. 充电桩市场规模快速提升 上市公司加码布局[N]. 经济参考报, 2022-08-05(003).

声 明

本文总结自Tony等的论文《Power jacking your station: In-depth security analysis of electric vehicle charging station management systems》,部分观点翻译自原文章,可能与原文有些许出入,请以原文为准。

作者:陈藩松 中国科学院信息工程研究所

责编:眼界

声明:本文来自中国保密协会科学技术分会,版权归作者所有。文章内容仅代表作者独立观点,不代表GetTrust立场,转载目的在于传递更多信息。如有侵权,请联系删除。