Eversource EV Rebate Program Exposed Massachusetts Customer Data

Michael Lynch

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

原文由 Michael Lynch 發布,訂閱此部落格

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

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

我會在後面說明我是怎麼發現這個漏洞的來龍去脈,不過如果你只想了解資安漏洞本身,可以直接跳到該段

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

我住在麻薩諸塞州,州政府有一個叫做 Mass Save 的計畫,你在電費帳單上繳的費用,會被拿去資助永續能源相關措施。舉例來說,如果你為房子做了隔熱來提升能源效率,Mass Save 就會補助一部分費用。

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

Eversource 是我的電力公司,所以我得透過他們來申請補助。我上網去申請,原以為 10 分鐘就能搞定,結果光是填那些沒完沒了的表單就花了我超過一個小時。

一開始,他們要我提供姓名、地址和 Eversource 帳號。這些資料 Eversource 明明就已經有了,有點多餘,但算了。

隨著我繼續填寫,他們開始問更多不相干的問題,例如:

  • 你擁有什麼類型的電動車?
  • 在哪裡買的?
  • 花了多少錢?
  • 車輛登記證在哪裡?
  • 是誰安裝你的電動車充電樁?
  • 水電師傅的地址是什麼?
  • 充電樁確切安裝在房子哪個位置?

你們到底為什麼需要這些資料,才能確認我有買電動車充電樁?整個流程比 Eversource 宣傳的「四步驟補助流程」複雜太多了。

我們需要你充電樁的 MAC 位址

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

MAC 位址是充電樁上 Wi-Fi 晶片的唯一識別碼。它並沒有印在裝置上,那我要怎麼取得?

我是個軟體開發者,也是個家庭網路愛好者,所以我能在路由器的管理後台找到充電樁的 MAC 位址,但我實在不知道他們要一般人怎麼做到這件事。

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

在提交所有文件一週後,我收到了 Eversource 寄來的這封電子郵件:

Eversource 聲稱我隨申請上傳的照片和文件不正確。

看來是我申請表填錯了。

Eversource 不喜歡我水電師傅開立的發票,因為上面沒有標示「已付清」。水電師傅在收款後會給我一張標示「已付清」的發票本來就很罕見,所以我只好去煩我那位忙碌的水電師傅,請他重新開一張發票。

是我漏看了表單上的這項要求嗎?沒有,我回到入口網站查看他們對發票的說明。上面只寫著「線路升級的承包商發票」。完全沒提到「已付清」。

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

那我的照片又有什麼問題?是我忘了上傳充電樁的照片嗎?

沒有,申請資料裡明明就有那張照片。充電樁拍得一清二楚,序號的照片也清晰可辨。他們難道以為我能把 MAC 位址拍下來嗎?

我寫信去問他們照片到底哪裡有問題,並解釋我不可能拍得出 MAC 位址。

一週後我收到回覆。他們沒有解釋為什麼退件我的其他照片,但告訴我要去充電樁的手機 App 裡找到 MAC 位址,然後截圖給他們。好吧……

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

Eversource 的補助計畫讓我覺得不太對勁。每個步驟都像是在刻意用不必要的文書作業和隱藏的陷阱來刁難我。

難道麻薩諸塞州有什麼黑幕?沒發出去的補助金會被 Eversource 私吞嗎?

我打電話給負責監督電動車補助計畫的麻薩諸塞州公用事業局(DPU),問他們到底是怎麼回事。為什麼 Eversource 要把申請補助搞得這麼困難?

DPU 的承辦人員說,她已經聽過不少投訴,說 Eversource 會先退件照片,然後在申訴時又用同一張照片通過。聽起來 Eversource 像是用自動化系統在審照片,但第二次審查要嘛更準確,要嘛更可能其實是真人審的。

所以,Eversource 就這樣把補助金私吞了嗎?「不會,」DPU 的代表說。如果申請失敗,Eversource 不會留下任何錢。而且就算申請成功,Eversource 也只是先代墊補助金,再向州政府請款。

等等,如果 Eversource 只是經手這筆錢,那他們幹嘛要辦這個計畫?

DPU 的代表解釋說,Eversource 希望大家都去買電動車。如果麻州居民都開電動車,他們的支出就會從 Eversource 沒賣的汽油,轉移到 Eversource 在許多城市獨家販售的電力上。

然後我就懂了:Eversource 並不希望客戶的補助申請失敗;他們只是根本不在乎。

等到客戶向 Eversource 申請補助時,客戶早就已經買了電動車。接下來好幾年,客戶都得向 Eversource 多買電。在那個時間點,Eversource 已經從客戶身上得到他們想要的一切,而客戶卻沒有任何籌碼能讓 Eversource 履行承諾。

我問麻州 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 那一行就是在告訴伺服器我的登入身分。但伺服器真的有在檢查登入狀態嗎?

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

我的申請編號只有六位數字,也就是說只有不到一百萬種可能。而且我敢打賭它們是循序編號的,所以任何人只要造訪補助入口網站,就能猜到我的 project ID,並看到我提交的所有資訊,包括我的姓名、電話號碼、通訊地址和車輛識別號碼(VIN)。

要是惡意使用者竄改我的申請資料怎麼辦?

Eversource 補助入口網站外洩我的個資已經夠糟了,但更糟的還在後頭。以下是存取我申請資料的登入表單長相:

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

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

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

通報漏洞

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

我寫信到 Resource Innovations 的 privacy@ 信箱,說明我發現了一個嚴重的漏洞,想跟他們的資安團隊聯繫以分享細節。我找不到 Eversource 公開的資安聯絡信箱,所以我直接寫信給 Eversource 的資訊安全長 Christopher Leigh。

隔天,我收到了 Resource Innovations 資訊安全副總裁 Desiree Robinson 的回覆。她主動提出要立刻跟我視訊通話來檢視漏洞,但問題實在太簡單,根本不需要通話。我直接用電子郵件寄給她一個不需要驗證也能成功的 HTTP 請求範例。她隔天就回覆說已經修復了問題,而我也確認在沒有有效登入憑證的情況下,已經無法再存取那個有漏洞的網址。

Eversource 的資訊安全長 Christopher Leigh 始終沒有回我,但我有收到 Eversource「高階查詢辦公室」的 Karla Pickett 的回覆。她說廠商「正在努力解決這個問題」。

我問了 Karla Pickett 和 Desiree Robinson,能否分享更多關於他們未來會採取哪些保護措施來更好地保護客戶的細節。我也問他們是否有為協調揭露資安問題的人提供漏洞獎勵計畫。他們兩人都沒有回覆我的後續提問。

就在我為這篇部落格文章準備截圖時,我注意到同一個使用流程中的另一個網址,也在沒有檢查驗證的情況下外洩客戶資料。這一次,它外洩了我的全名、住家地址和申請編號。我再次聯繫 Desiree Robinson 通報這個問題。她七分鐘後就回覆說正在調查。我隔天再測試那個網址,發現它已經正確地執行驗證檢查了。

在 Eversource 和 Resource Innovations 的工程與資安方面,有很多可以抱怨的地方,但有一點我必須肯定他們:他們的回應非常迅速。除了當我問到報酬的時候。

通報時程

  • 2025-01-27 - 我向 Eversource、Resource Innovations 以及麻薩諸塞州公用事業局通報我發現了一個想回報的漏洞。
  • 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 日前提交公開意見(見「任何有興趣對此事發表意見的人……」)。

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

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

補充一下背景:Eversource 不是街坊鄰居那種小電力公司。他們是一家財星 500 大企業,在過去 12 個月中獲利達 13 億美元。

根據我對 Eversource 現行電動車補助計畫的經驗,他們拿著麻州居民的公共資金,卻把能推的工作盡量都推給這些居民。

電動車補助申請原本應該是一個 5 到 10 分鐘的流程,我只要提交購買證明,然後等支票寄來就好。結果,我前前後後花了好幾個小時、橫跨兩個月,到現在還不知道 Eversource 是否會核准我的申請。我做的絕大多數工作,都是在收集那些跟計畫目的根本無關的文件和細節。

根本的問題在於,有被衡量的才會被管理,但卻沒有人在衡量麻州居民為了處理 Eversource 補助計畫要花多少時間。結果,Eversource 把對這個計畫的投入壓到最低,浪費居民的時間,還外洩他們的個人資料。

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

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

註:為避免外洩我個人帳戶的資料,我已將文中顯示的 HTTP 請求中的唯一識別碼省略或修改。

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

留言