本節提供建議,協助確保 Android 裝置的網路通訊安全。
安全的監聽 Socket
請謹慎使用監聽通訊端。裝置上通常不應有任何開放的監聽 Socket,因為這會為遠端攻擊者提供取得裝置存取權的途徑。
- Android 裝置應盡量減少公開的網路監聽通訊端口數量,尤其是在啟動時或預設情況下。根據預設,啟動時不應有任何 Socket 監聽網際網路。
- 根程序和系統專屬 ID (UID) 擁有的程序不應公開任何監聽 Socket。
- 監聽 Socket 必須能夠在沒有 OTA 更新的情況下停用。您可以使用伺服器或使用者裝置設定變更來執行這項操作。
- 針對使用本機 IPC 的通訊端,應用程式必須使用 UNIX 網域通訊端,並將存取權限限制在群組內。為 IPC 建立檔案描述元,並為特定 UNIX 群組設定 +RW。任何用戶端應用程式都必須位於該 UNIX 群組中。
- 部分裝置具有多個處理器 (例如無線電/數據機與應用程式處理器分開),會使用網路通訊端在處理器之間進行通訊。在這種情況下,用於處理器間通訊的網路通訊端必須使用隔離的網路介面,以免遭到裝置上未經授權的應用程式存取 (也就是使用 iptables 避免裝置上的其他應用程式存取)。
- 處理監聽埠的 Daemon 必須能有效防範格式錯誤的資料。您應使用未經授權的用戶端 (盡可能使用已授權的用戶端) 對通訊埠進行模糊測試。回報錯誤以便後續處理當機問題。
Android Compatibility Test Suite (CTS) 包含可檢查是否有開放監聽埠的測試。
停用 ADB
Android Debug Bridge (adb) 是實用的開發和偵錯工具,但其設計用途是在受控的安全環境中使用,因此不應用於一般用途。
- 確認預設情況下 adb 已停用。
- 請確認 adb 會要求使用者先開啟,才能接受連線。