小米內建 app 藏漏洞  保安 app 變保安威脅

手機可謂普遍人最常用的網絡設備,偏偏手機安全卻最常為人所忽略,往往因此導致個人敏感數據外洩甚至帳戶被盜用。網絡安全解決方案廠商 Check Point 近日就在小米手機內建的 「Guard Provider」流動應用程式內,發現了一個漏洞。小米 Guard Provider 本意是透過檢測惡意程式來保護手機,實際上卻讓使用者暴露在威脅之下。

小米 Guard Provider 為主流小米手機的內建應用程式,其安全服務使用了多個協力廠商軟件開發套件(SDK),包括各種類型的裝置保護、清理、效能加速。該應用程式內建了 Avast、AVL 和騰訊 3 個不同品牌的防毒軟體來保護手機,使用者可以選擇其中一個品牌的產品作為掃描裝置的預設防毒軟體。

由於進出 Guard Provider 的網絡流量不安全,且同一個應用程式內使用了多個 SDK,攻擊者可以連接到與受害者相同的 Wi-Fi 網絡,並執行中間人(Man-in-the-Middle,MiTM)攻擊;而多個 SDK 之間的通訊隔閡,也讓攻擊者可以趁機自行植入任何惡意程式碼,例如密碼竊取程式、勒索軟體、追蹤程式或任何其他類型的惡意軟件。類似 Guard Provider 這類型內建於流動裝置的 App 都是無法刪除的,但在 Check Point 向小米告知這個漏洞後,小米亦即時修補了該漏洞。

SDK 的優缺點

就流動裝置而言,SDK 可以協助開發人員無須再花費時間撰寫程式,並為與 App 核心無關的功能提供後端穩定性。隨著各式 SDK 的出現,多元的新功能讓 App 開發人員得以提供終端使用者更優異的特性,但隨着愈來愈多的協力廠商程式碼添加到 App 之中,對於穩定工作、使用者資料的保護及效能控制的環境變得益發複雜。

在同一個 App 中使用多個 SDK 造成了「SDK 疲勞(SDK Fatigue)」現象,導致 App 更容易出現當機、病毒和惡意程式感染、隱私外洩、極度耗電、速度變慢及許多其他問題。統計指出,在單一 App 中使用多個 SDK 非常常見,平均每個 App 會使用超過 18 個 SDK,但這種做法讓企業組織和使用者暴露在潛在風險之下,讓攻擊者得以利用這些漏洞來干擾裝置的日常運行。

如何抵禦與預防 SDK 攻擊

對於安裝到員工裝置上的 App,企業組織的 IT 保安團隊雖然不必了解構建這些應用時所用 SDK 的精確細節,但應該意識到這種 App 的建構方式可能存在安全隱憂。人們常常認為網絡防護 App 所使用的要素都是安全的,但上述小米內建 App 漏洞顯示事實並非如此。開發人員和企業均須意識到在一個手機 App 中內建兩種安全軟件,並不一定會取得雙重保障的效果。

抵禦這種隱藏威脅的唯一措施,是確保企業組織內的流動裝置免受潛在的中間人攻擊,而類似 Check Point SandBlast Mobile 一類方案可檢測並防止此類攻擊,消除因在同一 App 中使用多個 SDK  而造成的潛在威脅。