StrandHogg 攻擊/任務相依性安全漏洞

OWASP 類別:MASVS-PLATFORM:平台互動

總覽

StrandHogg 攻擊/任務相依性安全漏洞是由 Android 處理多項任務的方式設計錯誤所產生,特別是名為「重設任務父項」的功能。應用程式重設任務父項功能,可讓應用程式將活動從一項任務移到另一項任務。

如果沒有針對傳入的應用程式任務堆疊活動採取明確的檢驗方式,StrandHogg 攻擊就會運用這個漏洞,讓惡意應用程式執行以下動作:

  • 將惡意活動移入或移出受害者的堆疊。
  • 受害者的活動完成後,將惡意活動設為返回堆疊。

攻擊者會操控 allowTaskReparentingtaskAffinity 設定,惡意運用這個安全漏洞。

影響

惡意應用程式會根據目標應用程式的 packageName,設定其中一個活動的 taskAffinity。接著再結合意圖盜用攻擊,這樣一來,使用者下次啟動目標應用程式時,惡意應用程式也會同時啟動,並顯示在目標應用程式上方。

這個任務相依性漏洞就能用於盜用合法的使用者動作。

使用者可能會遭到誘騙,提供憑證給惡意應用程式。根據預設,一旦活動啟動並與任務建立關聯,該關聯會在活動的完整生命週期間持續有效。但是,如果將 allowTaskReparenting 設為 true,就會打破這個限制,允許將現有活動的父項重設為新建的「原生」任務。

舉例來說,應用程式 B 可以指定應用程式 A 為目標,在應用程式 A 完成活動的返回過程中,將應用程式 A 的活動重新導向至應用程式 B 的活動堆疊。使用者無法察覺這類應用程式之間的轉換,因而產生重大的網路詐騙威脅。

因應措施

更新為 android:targetSdkVersion=>28

StrandHogg 攻擊/任務相依性安全漏洞已在 2019 年 3 月修補完成,Android SDK 28 以上版本 (Android 9) 也提供適用的 OS 修補程式,避免出現這個安全漏洞。雖然您可以透過個別應用程式設定來緩解部分第 1 版的 StrandHogg 攻擊,但只有這個 SDK 版本修補程式能夠防範第 2 版的攻擊。

資源