(圖片來源: thetechjournal.com)

由於事態非常嚴重,此文章會函蓋分析三個重點:

  • 保安漏洞
  • 受害者可能存在的風險
  • 檢查自己是否受害者的方法(Updates: 官方已移除所有信用卡資料)

保安漏洞

詳細分析 Gobee.Bike Android V0.0.9 APK Decompile 後的檔案,有以下發現:

  • 信用卡資料(包括信用卡號碼、CVV、到期日)以沒有加密的方式(http)被傳送到 Gobee.Bike 伺服器 (V0.1.0 版本已移除)
  • 信用卡資料(包括信用卡號碼、CVV、到期日)以可解密或未加密方式儲存於 Gobee.Bike 伺服器
  • 所有資料(例如信用卡資料、用戶密碼等等...)均使用沒有加密的方式(http) 傳送

以上已經嚴重違反了 PCI (Payment Card Industry Data Security Standard)

嚴重漏洞:

每當用戶點擊自己的「用戶資料」時 ,用戶的信用卡資料都會由 Gobee.Bike 伺服器經過沒有加密的方式(http) 傳送到 Android 手機上。

基本上每開啟一次該 Gobee.Bike App 就會增加信用卡資料落入黑客手上嘅機會。

現時已知所有使用 Gobee.Bike App V0.0.9 版本登記嘅用戶都有極大機會成為受害者。

受害者可能存在的風險

  1. ***黑客攔截網絡傳送資料,所有信用卡資料都會直接被讀取。***例如透過:使用不知名公共 WiFi、黑客設陷阱假扮知名公共 WiFi、已感染木馬程式嘅 Android 手機

  2. Gobee.Bike 伺服器以可解密或未經加密方式儲存信用卡資料,一旦伺服器被駭,將會漏泄所有用戶信用卡資料。

  3. 資料庫操作員及其他開發人員或有存取權限,只要心存一念之惡下載所有用戶信用卡資料,所有信用卡資料均有可能隨時被盜用。例如 三個月後?半年後?一年後?兩年後?

檢查自己是否受害者

(Updates: 官方已移除所有信用卡資料)

檢查方法:使用私人電腦於 GoBee.Bike 的伺服器 登入,再直接由伺服器取得自己的用戶資料;由於 GoBee.Bike 的伺服器使用未經加密連線,使用此檢查方法前,請先確保使用私人電腦以及私人網絡,並建議使用 Chrome 無痕模式。

步驟一

  • 使用電腦於最新版的 Chrome 點擊開啟 GoBee.Bike 的伺服器地址
  • 使用滑鼠右鍵點擊任何空白地方
  • 按「檢查 (Inspect)」(如圖 )

步驟二

  • 點擊 「Console」(如圖內 A.)
  • 複製以及貼上代碼 (如下)
  • 修改 THIS_IS_YOUR_PHONE 為你的登記電話號碼 (如圖內 B.)
  • 修改 THIS_IS_YOUR_LOGIN_PASSWORD 為你的登入密碼 (如圖內 B.)
  • 使用鍵盤按「Enter」鍵運行代碼
  • 仔細閱讀代碼運行後的訊息

阿 Gap 的忠告

由於事態非常嚴重,若果你已測試咗自己係受害者,阿 Gap 強烈建議你

Cut 卡保平安

但若果你等緊 Gobee.Bike Refund,由呢一瞬間開始,唔好再打開 Gobee.Bike App,直至有更新解決上述問題為止!待 Refund 完成後再 Cut 卡保平安。

總發現列表(開發者限定)

  • V0.1.0 更新後,原本將用戶信用卡資料上傳到伺服器改成毫無關係嘅輸入(基本上係亂入)

  • Android 基本 Proguard 都無做
  • 全 Http
  • Hard-code AWS EC2-instance IP,連 Domain 都無
  • 用 8088 Port (非標準 80/443 port)
  • Debug Logging 有大量簡體字(你懂的)
  • Tomcat Manager Expose
  • 獨特的 API 設計 (非 RESTful)
  • 用咗 Stripe 做 Payment (純粹發現並無負面意思)
  • 亂用 Retrofit...

總結

希望大家呼籲身邊朋友,若使用過 GoBee.Bike V 0.0.9 登記嘅用家,不論佢有無扣你 $399,都必先檢查自己是否受害者之一。

真心見到有啲嬲,故勿論你老板有咩冠冕堂皇的理據要趕住隻 App 出街

Code 寫得爛無問題,可以遲啲先執

介面做得求其都無問題,都可以遲啲先執

唯一,Information Security 真係唔可以讓步,一出問題就即刻無得救;呢一條亦係作為一個專業嘅 Developer 唔可以越過嘅底線。