選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
3 分鐘閱讀時間 (688 個字)

智慧手錶也正監看著你! 行動裝置安全不可輕忽

fabian-albert-bl_NUhqLC8o-unsplash-2

參考文章:https://www.checkmarx.com/blog/lenovo-watch-watching-you/

撰文及整理:叡揚資訊 資安服務處

我們都知道智慧裝置(如智慧手錶)需要蒐集一些資訊。對於使用者,我們希望僅有必要的資訊被分享及儲存,而其中關於個資的部份都被安全且可靠地處理。但不幸地,我們在這份研究中找到一些弱點存在智慧手錶中。這與使用者相關並且令人困擾。文章中將列舉描述這些弱點,並且分享如何在攻擊情景中利用弱點。

  • 精確定位手機位址:手機經緯度座標經常送至其他國家未知的遠端伺服器。

攻擊情境:有能力追蹤手錶擁有者的位址,不僅是其他國家的未知伺服器,有心人士也能透過竊聽網路取得資料。

  •  竊聽/中間人攻擊:Mobile APP和伺服器之間的通訊傳遞未加密,任何人可以竊聽通訊。

攻擊情境:惡意使用者可以在與受害者在相同網路下獲取使用者認證、劫持帳號及追蹤使用者。

  • 帳號接管:由於缺少帳號驗證和權限,任何人可能強制修改密碼取代原使用者。

攻擊情境:任何知道使用者帳號的人可以修改使用者密碼,並且因此劫持遠端帳號。

  • 方便的藍牙:藍牙這種低功耗配對的功能,缺乏驗證以及逾期時間(Timeout)機制。

攻擊情境:惡意使用者只要利用不夠嚴謹的驗證機制的情況下容易配對受害者的裝置如手錶,藉以取得控制權。

  • 偽造來電:在特定GATT UUID取得寫入權限允許修改號碼進行欺詐攻擊。

攻擊情境:惡意使用者可以傳送特定指令到裝置及偽造假來電到受害者的裝置。

  • 設定鬧鐘:在特定GATT UUID取得寫入權限允許在手錶上設置鬧鐘。

攻擊情境:惡意使用者可以傳送特定指令到手錶設置鬧鐘。這功能允許增加多個每分鐘啟動的鬧鐘。

手錶Android 應用程式

接下來我們下載了官方提供的手錶APP(下載量超過五萬次)。然後開始從APP監測流量。查看傳給遠端伺服器是什麼樣的權限需求。

  • APP權限需求:

通常每個APP都可能因為功能需要要求一些特別的權限,但從這次的研究中注意到了有些奇怪的請求,如即使尚未註冊帳號也去回傳使用者的個資,取得精確的使用者定位資訊。

  • 竊聽/中間人攻擊:

註冊帳號,這觸發了我們的敏感神經。舉例來說,任何發送請求都沒有看到HTTPS。實際上,任何人都可以在這個時間點利用中間人攻擊,甚至看到使用者正在做什麼。接著,查看實際有什麼未加密資訊從APP傳送到伺服器。非常容易地看到每個事物-這裡有一些範例:

  • 檢查註冊的email是否存在
  • 註冊帳號
  • 在特定日子走了多少步數?

基本上惡意使用者可以在APP監測任何行動,很清楚地所有資料請求都是公開的。

  • 帳號接管

如果資料都沒有私密性那攻擊者還能做些什麼呢?

接下來我們來實驗一下,建立兩組帳號(帳號A與帳號B)去觀察是否能劫持帳號。

    • 步驟1.帳號A修改密碼
    • 步驟2.利用帳號A的token修改帳號B的密碼
    • 步驟3.不幸地確認帳號B被修改密碼成功。
    • 步驟4.移除token標頭仍可修改密碼,這代表僅需帳號,任何人可以藉由APP修改密碼以及獲得訪問權限儲存任何資訊。
  • 方便的藍牙

一般而言藍牙是如何連線的呢?當第一次啟動Android應用程式,會嘗試找尋手錶配對。需要按下手錶按鈕「或」移動手臂。如果受害者已經在步行,這算是自然移動嗎?嘗試結果是可行的,行走中就會配對裝置。但有「更好」的方法。再次配對裝置,僅需鎖定手機後再解鎖,它繞過配對了...詳細可觀看:https://www.youtube.com/watch?v=5Q0Pi3O4r2k

  • 偽造來電

現在我們來試試使用Ubertooth來竊聽藍牙的通訊,當撥出電話時捕捉到一些有趣的東西:

    • 收到二個請求:分別是手機震動與告訴使用者來電者。

因此寫了一個Python腳本去觸發來電是...「NSA!」,細節可查閱:https://www.youtube.com/watch?v=1hzuSj4086s

  • 設定鬧鐘

你可以胡亂的在手錶上設定鬧鐘,並且為常規鬧鐘。舉例來說,設定在特定時間震動及通知配戴者,直到受害者移除它,受害者必須進入APP停用鬧鐘。攻擊者甚至可以進一步輸入大量的鬧鐘,建立某種鬧鐘的DoS。

討論

基於上述的研究,向廠商提出了一些建議。分享使用者實際位置似乎不是智慧手錶的必要功能,這也違反隱私及個資保護。裝置、APP及伺服器之間的通訊應採用加密通訊,修正API權限以消除惡意使用者傳送命令、欺騙及設定鬧鐘的能力。

智慧裝置追蹤大量關於使用者的資訊,其中一部分能讓生活更便利。藉由測試智慧裝置安全性,能幫助開發商學習這些軟體中的弱點導致使用者的問題,它必須建置更好、更安全的軟體及裝置來預防。

前三大開源風險與解決辦法- 快速指南
2018年Open Source弱點Top 10 (下)