Eversource EV Rebate Program Exposed Massachusetts Customer Data

Michael Lynch

Eversource 電動車補助計畫外洩麻薩諸塞州客戶資料

我最近為了安裝電動車(EV)充電樁而申請補助,卻發現我的電力供應商 Eversource 竟然在公開網路上外洩申請者的個人資料,包括:

  • 全名
  • 車輛登記證明(包含車牌號碼與車輛識別碼)
  • 住家地址
  • 電子郵件地址
  • 電話號碼

我會說明我是如何發現這個漏洞的來龍去脈,但如果你只想了解資安漏洞本身,可以跳至該段落

為什麼補助申請流程這麼複雜?

我住在麻薩諸塞州,州政府有一個叫做 Mass Save 的計畫,你在能源帳單上繳納的稅金會用來資助永續能源措施。舉例來說,如果你為房屋加裝隔熱以提升能源效率,Mass Save 就會補助相關費用。

我最近為我的電動車(EV)安裝了充電樁,發現 Mass Save 會補助700 美元的安裝費用。太棒了!

Eversource 是我的電力公司,所以我必須透過他們申請補助。我上網申請,原以為 10 分鐘就能搞定,結果光是填寫那堆沒完沒了的表格就花了我一個多小時。

一開始,他們要我提供姓名、地址和 Eversource 帳號。這些資料 Eversource 本來就有了,根本是多此一舉,但也就算了。

隨著填表進度推進,他們開始問更多不相干的問題,例如:

  • 我擁有什麼款式的電動車?
  • 在哪裡購買的?
  • 花了多少錢?
  • 我的車輛登記證明在哪裡?
  • 是誰安裝了我的電動車充電樁?
  • 水電技師的地址是什麼?
  • 充電樁究竟安裝在房屋的哪個位置?

確認我買了電動車充電樁需要這些資料嗎?整個流程遠比 Eversource 所宣傳的「四步驟補助流程」複雜得多。

我們需要你的充電樁 MAC address(媒體存取控制位址)

在補助申請中,Eversource 要求的最荒謬資訊,就是我的電動車充電樁的 MAC address。什麼?

MAC address 是電動車充電樁上 WiFi 晶片的唯一識別碼。它並沒有印在裝置上,我到底要怎麼取得?

我是軟體開發者,也是家庭網路的愛好者,所以還能在路由器的管理介面中找到充電樁的 MAC address,但我真不知道他們期望一般人要怎麼做到。

不行,這樣不對。請重做一次

送出所有文件一週後,我收到了 Eversource 的這封電子郵件:

Eversource 聲稱我隨申請上傳的照片和文件有誤。

顯然,我的申請表填錯了。

Eversource 不喜歡我上傳的水電技師發票,原因是發票上沒有標示「Paid in full」。付款後承包商通常很少會提供標示「已全額付清」的發票,所以我只好去煩忙碌的水電技師,請他重新開立發票。

是我在表格中漏看了這項要求嗎?沒有,我回到入口網站查看他們對發票的說明。他們只寫了「Contractor’s invoice for wiring upgrade」。完全沒提到「Paid in full」。

補助申請表從未提到發票需要標示為已全額付清。

那我的照片又哪裡出了問題?我忘了上傳充電樁的照片嗎?

沒有,申請表裡明明有照片。充電樁清晰可見,序號的照片也清楚易讀。難道他們以為我能拍到 MAC address 嗎?

我寫信問他們照片到底哪裡有問題,並說明要我拍下 MAC address 根本是不可能的事。

一週後我收到回覆。他們沒有解釋為何退件我的其他照片,只告訴我要去電動車充電樁的行動應用程式中找到 MAC address 並截圖。好吧……

Eversource 電動車補助計畫扭曲的誘因

Eversource 的補助計畫讓人覺得不太對勁。每個步驟似乎都刻意用繁瑣的文書作業和隱藏的陷阱來刁難我。

麻薩諸塞州是不是有什麼弊端?沒發出去的補助款是不是就歸 Eversource 所有?

我打電話給負責監督電動車補助計畫的 Massachusetts Department of Utilities (DPU),詢問到底是怎麼回事。為什麼 Eversource 要把申請補助搞得這麼困難?

DPU 的承辦人員說,她聽過有民眾抱怨 Eversource 退件照片,但在申訴後卻又接受完全相同的照片。聽起來 Eversource 似乎是用自動化系統審查照片,但二次審查時要不就是更精準,要不就是——更有可能——終於有人親自看照片了。

那麼,這種情況下 Eversource 是不是就把補助款私吞了?「不是,」DPU 的代表說。補助申請失敗時,Eversource 不會保留任何款項。即使申請成功,Eversource 也只是先墊付補助款,再向州政府請款。

等等,如果 Eversource 只是經手轉付這筆錢,他們為什麼要承辦這個計畫?

DPU 的代表解釋說,Eversource 希望民眾購買電動車。如果麻州居民擁有電動車,他們的支出就會從 Eversource 沒有販售的汽油,轉移到 Eversource 在許多城市擁有獨家銷售權的電力。

這下我就明白了:Eversource 並不是希望客戶的補助申請失敗,他們只是根本不在乎。

當客戶向 Eversource 申請補助時,客戶早就已經買了電動車。接下來好幾年,客戶都得向 Eversource 多買電力。到了這個階段,Eversource 已經從客戶身上得到了想要的一切,而客戶卻沒有任何籌碼要求 Eversource 履行承諾。

我問 Massachusetts DPU 的代表,他們是否有統計多少人申請電動車充電補助、又有多少人真正完成流程。Eversource 只會告訴 DPU 有多少人完成流程。就算 Eversource 退件了 99% 的申請人,DPU 也無從得知。

Eversource 外洩客戶紀錄

當我回到 Eversource 補助入口網站提交他們要求的資料時,我心想:如果 Eversource 在電動車補助流程的每個環節都盡量縮減投入,他們在資安上又投入了多少?

不幸的是,答案是沒有。我只花了不到兩分鐘,就在 Eversource 補助入口網站上發現了一個嚴重的資安漏洞。

作為對網站安全性的基本檢查,我打開了網頁瀏覽器的網路主控台,檢視瀏覽器與補助入口網站之間的原始通訊內容。瀏覽器向補助伺服器發出了數十個請求,其中有一個特別引起了我的注意。

向網址 https://eversource.dsmcentral.com/traksmart4/public/guest/commercial/v2/application.json?projectId=123456 發出的請求,回傳了大量看起來像這樣的資料:

[  {    "fieldId": "FORM-60-102189-108632-4094090-2-Task_Instances_Attributes-2354-CustomerPrintedName",    "label": "Rebate Payee Printed Name",    "value": "Michael Lynch",    "displayValue": null,    "templateParameters": null,    "attributeName": "CustomerPrintedName",    "uniqueFieldIdSource": "",    "inventoryOptions": null,    "dynamicOptions": null,    "rendering": "textField",    "formatter": "None"  },...]

回應內容長達數千行。看起來就是我在補助申請中提交的所有資料,只差沒有包含我上傳的照片和文件。

為了取得這些資訊,我的瀏覽器發送了一個看起來像這樣的 HTTP 請求(我已將實際的申請編號替換為 123456):

POST /traksmart4/public/guest/commercial/v2/application.json?projectId=123456 HTTP/1.1
Host: eversource.dsmcentral.com
Cookie: JSESSIONID=node0f7ynpnyr35zk1c91byqpx2x5n97179.node0;Path=/traksmart4;Secure
Content-Type: application/json
Content-Length: 27

{"programId":8,"formId":60}

引起我注意的是,該網址路徑中包含了 publicguest 這兩個字,這通常出現在不需要登入的網址中。

我的瀏覽器發出的請求是經過驗證的。Cookie 這一行是在告訴伺服器我的登入 ID。但伺服器真的有在檢查我的登入狀態嗎?

為了測試補助入口網站的伺服器是否有檢查登入狀態,我發送了完全相同的請求,只是移除了 Cookie 這一行。補助入口網站依然回傳了我所有的私人資料。糟了,Eversource 根本沒有檢查登入狀態。

我的申請編號只有六位數字,代表可能性不到一百萬種。而且我敢打賭它們是連續編號的,所以任何造訪補助入口網站的人都能猜到我的專案編號,並看到我提交的所有資訊,包括我的姓名、電話號碼、郵寄地址和車輛識別碼(VIN)。

如果惡意使用者竄改我的申請呢?

Eversource 補助入口網站外洩我的個人資料已經夠糟了,但情況還更嚴重。這是用來存取我申請案件的登入表單樣貌:

Eversource 補助入口網站只要用電子郵件地址、郵遞區號和六位數的申請編號就能登入。

那個會傾印我所有資料的不安全網址包含了上述所有欄位。惡意使用者可以從有漏洞的網址中抓取我的申請編號、電子郵件地址和郵遞區號,然後冒充我登入補助入口網站。他們就能存取我的所有資訊,包括我上傳的照片或文件。

更糟的是,惡意使用者還可以竄改我補助申請中的資訊,例如把我的補助支票寄到不同的郵寄地址。

通報漏洞

管理 Eversource 補助入口網站的公司叫做 Resource Innovations,看起來他們也為其他城市的許多電力公司營運類似的計畫。

我寫信到 Resource Innovations 的 privacy@ 信箱,說明我發現了一個嚴重的漏洞,希望能與他們的資安團隊聯繫以分享細節。我找不到 Eversource 公開列出的資安信箱,所以我寫信給了 Eversource 的資訊安全長 Christopher Leigh(克里斯多福·李)。

隔天我收到了來自 Resource Innovations 資訊安全副總裁 Desiree Robinson(迪瑟蕾·羅賓森)的回覆。她提議立即透過視訊通話與我檢視漏洞,但問題非常簡單,我們甚至不需要通話。我直接用電子郵件寄給她一個無需驗證就能成功的 HTTP 請求範例。她在隔天回覆說已經修復了問題,而我也確認在沒有有效登入憑證的情況下已無法存取有漏洞的網址。

Eversource 的資訊安全長克里斯多福·李從未回覆我,但我收到了來自 Eversource「Executive Inquiry office」Karla Pickett(卡拉·皮克特)的回信。她說廠商「目前正在處理此問題」。

我詢問卡拉·皮克特和迪瑟蕾·羅賓森,是否能分享他們為未來更好地保護客戶而採取了哪些保護措施的更多細節。我也問他們是否為協調揭露資安問題的人提供bug bounties(漏洞獎勵計畫)。她們兩人都沒有回覆我的後續問題。

當我為這篇部落格文章準備截圖時,我注意到同一個使用流程中的另一個網址也在未檢查驗證的情況下外洩客戶資料。這一次,它外洩了我的全名、住家地址和申請編號。我再次聯繫迪瑟蕾·羅賓森通報此事。她在七分鐘後就回覆說正在調查。我隔天再次嘗試該網址,發現它已能正確檢查驗證。

就 Eversource 和 Resource Innovations 的工程與資安而言,有很多值得抱怨之處,但有一點我必須肯定他們:他們的回應非常迅速。除了當我問到報酬時例外。

通報時程

  • 2025-01-27 - 我向 Eversource、Resource Innovations 和 Massachusetts Department of Public Utilities 通報我發現了一個想報告的漏洞。
  • 2025-01-28 - Resource Innovations 回覆並要求提供細節。
  • 2025-01-28 - 我向 Resource Innovations 分享漏洞的細節。
  • 2025-01-29 - Resource Innovations 回報已修復該問題。
  • 2025-02-05 - 我向 Resource Innovations 通報另一個補助入口網站網址上的相同問題。
  • 2025-02-05 - Resource Innovations 回報將開始著手修復該問題。
  • 2025-02-06 - 我再次測試有漏洞的網址,發現它現在已正確強制執行驗證。

麻薩諸塞州居民可以怎麼做

碰巧的是,Eversource 目前正在申請納稅人的經費來資助新的電動車補助計畫

麻薩諸塞州居民可以就 Eversource 的提案向州政府提交意見。根據 DPU 的說法,麻州居民的意見在這些案件中具有份量,因此如果你關心電動車計畫,我鼓勵你在 2026 年 2 月 18 日前提交公開意見(見「Any person interested in commenting on this matter…」)。

本週三(2 月 11 日)也將在 Zoom 上舉行一場關於 Eversource 提案的公聽會。

我對電動車補助計畫的願望清單

先說個背景:Eversource 不是街坊那種家族經營的小電力公司。他們是一家 Fortune 500 企業,在過去 12 個月中獲利達 13 億美元。

根據我對 Eversource 現行電動車補助計畫的體驗,他們動用麻薩諸塞州居民的公共資金,卻把盡可能多的工作轉嫁到同一批居民身上。

電動車補助申請應該是個 5 到 10 分鐘的流程,我只要提交購買證明,然後等支票寄來就好。結果,我卻在兩個月內花了好幾個小時,而且到現在還不知道 Eversource 會不會核准我的申請。我絕大多數的時間都花在蒐集那些與計畫目的完全無關的文件和細節上。

根本的問題在於,有衡量才有管理,但沒有人在衡量麻薩諸塞州居民處理 Eversource 補助計畫所花的時間。結果,Eversource 盡量縮減對該計畫的投入,浪費居民的時間,還外洩他們的個人資料。

以下是我希望在 Eversource 新的電動車補助計畫中看到的內容:

  • Eversource 不得要求客戶為了申請補助而創建新的線上帳號。
    • 補助申請表必須可透過標準的 Eversource 客戶入口網站取得。
    • 第三方廠商可以管理補助入口網站,但廠商必須實作安全的 single sign-on(單一登入) (SSO) 流程,讓客戶無需創建新帳號。
    • Eversource 必須用他們已有的客戶資訊預先填入補助申請表,例如姓名、地址和帳號。
  • 對於為主要住所申請電動車充電補助的屋主,唯一需要的文件應該只有(1)充電樁的廠牌、型號和序號,以及(2)充電樁和電力工程的收據或發票。
    • 發票無需標示為已付款。
    • 居民無需證明擁有電動車,因為為了取得部分補助而虧本安裝電動車充電樁是毫無道理的。
  • Eversource 必須自費聘請一家以麻薩諸塞州為據點的網路安全公司,對補助入口網站進行年度安全稽核。
    • Eversource 必須將這些稽核結果提供給 MA DPU,並在六週內修復任何被評為 High 或 Critical 的問題。
  • Eversource 必須每季公布以下指標:
    • 開始申請補助的客戶人數,
    • 收到一次或多次申請退件的客戶人數(不論最終結果為何),
    • 成功申請補助並收到款項的客戶人數。
  • 在整個申請過程中,Eversource 必須顯示負責監督電動車補助計畫的 Massachusetts DPU 特定辦公室的聯絡資訊。
    • 聯絡資訊必須在補助申請遭拒時顯眼地顯示,讓居民得以對錯誤的退件提出申訴。
  • MA DPU 必須有能力稽核電動車充電樁補助申請案件。
  • 如果 Eversource 退件某項申請,而 DPU 認定該退件無效,Eversource 必須支付客戶申請補助金額的 150%。
    • 即使申請案後來獲得核准,DPU 也不得就涉及無效退件的申請案補償 Eversource。

註:為避免洩漏我個人帳戶的資料,我已省略並修改了所示 HTTP 請求中的唯一識別碼。

原文由 Michael Lynch 發布

本文章由 muse-spark-1.2-contributor 進行翻譯