首頁文章AI API 代理關於報價聯絡我們🌐 EN
← 返回首頁OWASP
OWASP Mobile & IoT Top 10 完整指南:2024 行動與物聯網安全漏洞解析【2026 更新】

OWASP Mobile & IoT Top 10 完整指南:2024 行動與物聯網安全漏洞解析【2026 更新】

📑 目錄

OWASP Mobile & IoT Top 10 完整指南:2024 行動與物聯網安全漏洞解析OWASP Mobile & IoT Top 10 完整指南:2024 行動與物聯網安全漏洞解析

TL;DR

💡 重點摘要:- OWASP Mobile Top 10 2024 版是自 2016 年以來的首次重大更新

版本說明:本文涵蓋 OWASP Mobile Top 10 2024 版(2024 年正式發布)以及 IoT Top 10。2024 版相較 2016 版有重大變更,新增了供應鏈安全和憑證管理等現代化議題。



Part 1:OWASP Mobile Top 10

什麼是 OWASP Mobile Top 10?

OWASP Mobile Top 10 是針對行動應用程式的十大安全風險清單。涵蓋 iOS 和 Android 平台常見的漏洞類型。

行動 App 的安全挑戰和網頁應用不同:

2024 版是自 2016 年以來的首次重大更新,反映了過去 8 年行動安全領域的演變:

2024 版重大變更說明
新增 M1:憑證使用不當強調身份驗證方法和使用者身份保護
新增 M2:供應鏈安全涵蓋從開發到發布的整個生命週期風險
隱私控制獨立成項反映 GDPR、CCPA 等法規要求
二進位保護更受重視防止逆向工程和程式碼竄改

想了解 OWASP 組織和網頁安全標準,可以參考 OWASP 完整指南。


Mobile Top 10 漏洞解析(2024 版)

以下是 OWASP Mobile Top 10 2024 版的完整漏洞清單,與 2016 版相比有重大變更。


M1:Improper Credential Usage(憑證使用不當)🆕

說明: 應用程式在處理使用者憑證時存在缺陷,包括不安全的儲存、傳輸或驗證。

2024 版新增此項:反映了對身份驗證方法和使用者身份保護的更高重視。

常見問題:

攻擊情境:

開發者將 API 金鑰寫死在 App 中
攻擊者反組譯 APK/IPA 檔案
取得金鑰後可冒用身份存取後端服務

防護措施:

  1. 使用 Keychain (iOS) / Keystore (Android) 安全儲存憑證
  2. 實作 OAuth 2.0 + PKCE 進行身份驗證
  3. 憑證應由伺服器端動態提供,而非寫死
  4. 實作憑證過期和刷新機制
  5. 使用硬體安全模組(如 Secure Enclave)保護敏感資料

M2:Inadequate Supply Chain Security(供應鏈安全不足)🆕

說明: App 使用的第三方程式庫、SDK 或開發工具存在安全風險。

2024 版新增此項:反映了對整個開發生命週期安全的重視。

風險來源:

攻擊情境:

App 使用了一個熱門的圖片處理 SDK
該 SDK 被駭客入侵,植入後門
所有使用該 SDK 的 App 都受影響

防護措施:

  1. 維護完整的 SBOM(Software Bill of Materials)
  2. 定期掃描依賴套件的已知漏洞(Dependabot、Snyk)
  3. 驗證第三方程式庫的完整性和來源
  4. 實作安全的 CI/CD 流程
  5. 監控供應商的安全公告

M3:Insecure Authentication/Authorization(認證/授權不安全)

說明: App 的身份驗證或權限控制機制存在漏洞。

常見問題:

防護措施:

  1. 所有認證邏輯都在伺服器端執行
  2. 實作強密碼政策和帳戶鎖定
  3. 支援多因素認證(MFA)
  4. 使用安全的 Session 管理機制
  5. 實作完整的授權矩陣

M4:Insufficient Input/Output Validation(輸入/輸出驗證不足)

說明: App 未正確驗證使用者輸入或系統輸出,可能導致注入攻擊或資料洩露。

常見問題:

防護措施:

  1. 對所有使用者輸入進行驗證和清理
  2. 使用參數化查詢防止注入
  3. 輸出資料時進行適當編碼
  4. 實作白名單驗證而非黑名單

M5:Insecure Communication(不安全的通訊)

說明: App 與伺服器之間的通訊未受到適當保護。

常見問題:

防護措施:

  1. 強制使用 HTTPS(TLS 1.3)
  2. 實作 Certificate Pinning
  3. 驗證伺服器憑證的有效性
  4. 使用 App Transport Security (iOS) / Network Security Config (Android)

M6:Inadequate Privacy Controls(隱私控制不足)

說明: App 收集、處理或儲存個人資料的方式不符合隱私規範。

常見問題:

防護措施:

  1. 實作資料最小化原則
  2. 提供清楚的隱私政策說明
  3. 支援使用者資料匯出和刪除
  4. 取得明確的使用者同意
  5. 確保符合當地隱私法規

M7:Insufficient Binary Protections(二進位保護不足)

說明: App 的二進位檔案缺乏防護,容易被逆向工程或竄改。

常見問題:

防護措施:

  1. 使用 ProGuard/R8 (Android) 或類似工具混淆程式碼
  2. 偵測 Root/Jailbreak 環境
  3. 實作反調試和反模擬器偵測
  4. 使用程式碼簽章和完整性驗證

M8:Security Misconfiguration(安全設定錯誤)

說明: App 或後端服務的安全設定不當。

常見問題:

防護措施:

  1. 建立安全的預設設定
  2. 自動化安全設定檢查
  3. 移除不必要的功能和服務
  4. 定期審查安全設定

M9:Insecure Data Storage(不安全的資料儲存)

說明: 敏感資料以不安全的方式儲存在裝置上。

風險位置:

攻擊方式:

防護措施:

// iOS - 使用 Keychain 儲存敏感資料
let query: [String: Any] = [
    kSecClass as String: kSecClassGenericPassword,
    kSecAttrAccount as String: "userToken",
    kSecValueData as String: tokenData,
    kSecAttrAccessible as String: kSecAttrAccessibleWhenUnlocked
]
SecItemAdd(query as CFDictionary, nil)
// Android - 使用 EncryptedSharedPreferences
val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val sharedPreferences = EncryptedSharedPreferences.create(
    context,
    "secret_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

M3:Insecure Communication(不安全的通訊)

說明: App 與伺服器之間的通訊沒有適當保護。

常見問題:

攻擊情境:

使用者在咖啡店連公共 WiFi
攻擊者執行中間人攻擊 (MITM)
攔截 App 的網路流量
竊取登入憑證或 Session Token

防護措施:

  1. 強制使用 HTTPS
  2. 實作 Certificate Pinning
  3. 驗證伺服器憑證
  4. 敏感資料不放 URL
// iOS - Certificate Pinning 範例
let serverTrustPolicy = ServerTrustPolicy.pinCertificates(
    certificates: ServerTrustPolicy.certificates(),
    validateCertificateChain: true,
    validateHost: true
)

M4:Insecure Authentication(不安全的認證)

說明: App 的使用者認證機制有漏洞。

常見問題:

防護措施:

  1. 認證邏輯放在伺服器端
  2. 使用標準認證協定(OAuth 2.0)
  3. 實作多因素認證
  4. Session Token 安全儲存和傳輸

M5:Insufficient Cryptography(加密不足)

說明: 使用了不安全的加密方式,或加密實作有缺陷。

常見問題:

錯誤示範:

// 錯誤:金鑰寫死在程式碼
private static final String SECRET_KEY = "MySecretKey123";

// 錯誤:使用不安全的演算法
MessageDigest md = MessageDigest.getInstance("MD5");

正確做法:

// 使用 Android Keystore 生成和儲存金鑰
KeyGenerator keyGenerator = KeyGenerator.getInstance(
    KeyProperties.KEY_ALGORITHM_AES, "AndroidKeyStore");
keyGenerator.init(
    new KeyGenParameterSpec.Builder("MyKey",
        KeyProperties.PURPOSE_ENCRYPT | KeyProperties.PURPOSE_DECRYPT)
        .setBlockModes(KeyProperties.BLOCK_MODE_GCM)
        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_NONE)
        .build());
SecretKey key = keyGenerator.generateKey();

M6:Insecure Authorization(不安全的授權)

說明: App 的權限檢查有漏洞,使用者可以存取不該存取的功能或資料。

常見問題:

這和 OWASP Top 10 的 A01 Broken Access Control 類似。

防護措施:

  1. 所有權限檢查在伺服器端執行
  2. 驗證請求者身份和資源擁有權
  3. 不要信任客戶端傳來的角色資訊

M7:Client Code Quality(客戶端程式碼品質)

說明: 程式碼品質問題導致安全漏洞。

常見問題:

防護措施:

  1. 使用記憶體安全的語言(Swift、Kotlin)
  2. 靜態程式碼分析
  3. 程式碼審查
  4. 模糊測試(Fuzzing)

M8:Code Tampering(程式碼竄改)

說明: 攻擊者修改 App 的程式碼或執行環境。

攻擊方式:

防護措施:

  1. 程式碼混淆
  2. 完整性檢查
  3. Root/Jailbreak 偵測
  4. 反調試機制
  5. Runtime 保護
// Android - 簽章驗證範例
public boolean verifySignature(Context context) {
    try {
        PackageInfo packageInfo = context.getPackageManager()
            .getPackageInfo(context.getPackageName(),
                PackageManager.GET_SIGNATURES);
        for (Signature signature : packageInfo.signatures) {
            String currentSignature = signature.toCharsString();
            if (!currentSignature.equals(EXPECTED_SIGNATURE)) {
                return false;
            }
        }
        return true;
    } catch (Exception e) {
        return false;
    }
}

M9:Reverse Engineering(逆向工程)

說明: 攻擊者分析 App 的程式碼,找出漏洞或竊取商業邏輯。

攻擊目的:

常用工具:

防護措施:

  1. 程式碼混淆(ProGuard、R8、SwiftShield)
  2. 字串加密
  3. 控制流程混淆
  4. 原生程式碼(NDK/C++)
  5. 商業保護方案

M10:Extraneous Functionality(多餘功能)

說明: App 中存在開發階段的後門或測試功能,被攻擊者利用。

常見問題:

防護措施:

  1. 建立正式發布檢查清單
  2. 自動化掃描隱藏功能
  3. 程式碼審查
  4. 分離開發/正式環境設定

OWASP MASVS 與 MASTG

除了 Mobile Top 10,OWASP 還提供了更完整的 Mobile 安全框架。

MASVS(Mobile Application Security Verification Standard)

MASVS 是行動 App 安全驗證標準。定義了 App 應該達到的安全要求。

三個驗證等級:

等級名稱適用場景
L1Standard Security一般 App
L2Defense-in-Depth處理敏感資料的 App
RResiliency需要防止逆向工程的 App

MASVS 控制項分類:

MASTG(Mobile Application Security Testing Guide)

MASTG 是 MASVS 的實作指南。詳細說明如何測試每一項控制項。

內容包含:

這兩份文件是做 Mobile App 安全評估的必備參考。

想知道你的 App 符合 MASVS 哪個等級?


Mobile App 安全測試工具

MobSF(Mobile Security Framework)

開源的自動化 Mobile App 安全測試框架。

功能:

使用方式:

# Docker 安裝
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf

# 開啟瀏覽器
# http://localhost:8000
# 上傳 APK/IPA 即可分析

QARK(Quick Android Review Kit)

LinkedIn 開源的 Android App 靜態分析工具。

特點:

# 安裝
pip install qark

# 分析 APK
qark --apk path/to/app.apk

# 分析原始碼
qark --java path/to/source/

Frida

強大的動態分析框架。可以即時 Hook 和修改 App 行為。

用途:

// Frida Script - 繞過 Root 偵測
Java.perform(function() {
    var RootCheck = Java.use("com.app.security.RootCheck");
    RootCheck.isRooted.implementation = function() {
        console.log("Root check bypassed");
        return false;
    };
});

搭配 OWASP ZAP 可以對 App 的 API 進行更完整的測試。



Part 2:OWASP IoT Top 10

什麼是 OWASP IoT Top 10?

OWASP IoT Top 10 是針對物聯網設備的十大安全風險清單。

IoT 設備的安全挑戰:

2018 版是目前最新版本。涵蓋從硬體到雲端的完整 IoT 生態系。


IoT Top 10 漏洞解析

I1:Weak, Guessable, or Hardcoded Passwords

中文:弱密碼、可猜測密碼、寫死密碼

問題:

真實案例: 2016 年 Mirai 殭屍網路攻擊。利用 IoT 設備的預設密碼,感染數十萬台設備,發動史上最大 DDoS 攻擊。

防護措施:

  1. 強制首次使用時修改密碼
  2. 每台設備使用唯一預設密碼
  3. 禁止弱密碼
  4. 支援多因素認證

I2:Insecure Network Services

中文:不安全的網路服務

問題:

常見問題服務:

防護措施:

  1. 關閉非必要服務
  2. 定期更新修補漏洞
  3. 網路服務需要認證
  4. 使用防火牆限制存取

I3:Insecure Ecosystem Interfaces

中文:不安全的生態系介面

問題: IoT 設備通常連接到手機 App、雲端平台、API 等。這些介面的安全問題會影響整個系統。

常見問題:

防護措施:

  1. 套用 OWASP Top 10 和 API Top 10 標準
  2. 所有介面都要認證授權
  3. 輸入驗證和輸出編碼

I4:Lack of Secure Update Mechanism

中文:缺乏安全更新機制

問題:

攻擊情境:

攻擊者攔截韌體更新流量
植入惡意程式碼
設備下載並安裝惡意韌體
設備成為殭屍網路一員

防護措施:

  1. 更新必須加密傳輸(HTTPS)
  2. 韌體必須數位簽章
  3. 驗證韌體完整性
  4. 防止版本降級
  5. 支援自動更新

I5:Use of Insecure or Outdated Components

中文:使用不安全或過時的元件

問題:

防護措施:

  1. 建立 BOM(Bill of Materials)清單
  2. 監控元件漏洞公告
  3. 定期更新元件
  4. 淘汰不再維護的元件

I6:Insufficient Privacy Protection

中文:隱私保護不足

問題:

防護措施:

  1. 資料最小化原則
  2. 加密敏感資料
  3. 透明的隱私政策
  4. 提供資料刪除選項

I7:Insecure Data Transfer and Storage

中文:不安全的資料傳輸和儲存

問題:

防護措施:

  1. 使用 TLS 加密所有傳輸
  2. 本地資料加密
  3. 安全的金鑰儲存

I8:Lack of Device Management

中文:缺乏設備管理

問題:

企業 IoT 部署需要:

  1. 設備清單管理
  2. 遠端設定和更新
  3. 安全監控和告警
  4. 設備除役流程

I9:Insecure Default Settings

中文:不安全的預設設定

問題:

防護措施:

  1. 安全預設原則
  2. 關閉非必要功能
  3. 強制設定流程
  4. 提供安全設定指南

I10:Lack of Physical Hardening

中文:缺乏實體安全防護

問題:

防護措施:

  1. 移除或停用除錯介面
  2. 防拆偵測
  3. 加密儲存
  4. 實作 Secure Boot

IoT 安全測試方法

IoT 安全測試需要多層面的評估。

測試範圍:

層面測試重點
硬體實體介面、除錯埠、儲存媒體
韌體更新機制、加密、寫死密碼
網路開放服務、加密、認證
Web/App標準 Web/Mobile 安全測試
API認證、授權、輸入驗證
雲端資料安全、存取控制

常用工具:

工具用途
Binwalk韌體分析和提取
Firmwalker韌體安全掃描
Nmap網路服務掃描
Wireshark網路流量分析
Bus Pirate硬體介面分析
OWASP ZAPWeb/API 掃描

韌體分析範例:

# 使用 Binwalk 提取韌體
binwalk -e firmware.bin

# 搜尋寫死的密碼
grep -r "password" _firmware.bin.extracted/
grep -r "secret" _firmware.bin.extracted/

# 尋找 SSH 金鑰
find _firmware.bin.extracted/ -name "*.pem"
find _firmware.bin.extracted/ -name "id_rsa"

IoT 產品上市前需要資安檢測?我們能幫忙



常見問題 FAQ

Q1:iOS 和 Android 哪個比較安全?

兩者各有優劣,沒有絕對答案。

iOS 的安全優勢:

Android 的安全優勢:

實際風險比較:

結論:選擇任一平台,保持系統更新、只安裝可信 App、注意權限授予,比選哪個平台更重要。

Q2:如何檢測 App 是否安全?

一般使用者可以做的:

  1. 只從官方商店下載 App
  2. 檢查 App 要求的權限是否合理
  3. 查看使用者評價和評分
  4. 確認開發者資訊
  5. 注意 App 的隱私政策

開發團隊應該做的:

  1. 使用 MobSF 進行自動化掃描
  2. 依照 OWASP MASVS 檢查清單
  3. 進行程式碼審查
  4. 委託專業滲透測試
  5. 定期重新評估

App 安全的檢查指標:

Q3:智慧家電需要擔心資安嗎?

需要,而且很重要。

智慧家電的資安風險:

  1. 隱私風險:攝影機、麥克風可能被駭入
  2. 成為跳板:攻擊者可從 IoT 裝置進入家庭網路
  3. 殭屍網路:被用於發動 DDoS 攻擊
  4. 勒索軟體:智慧鎖被駭可能被鎖在門外

真實案例:

保護建議:

  1. 購買前研究品牌的安全紀錄
  2. 修改預設密碼
  3. 定期更新韌體
  4. 將 IoT 裝置放在獨立的網路區段
  5. 關閉不需要的遠端存取功能
  6. 不再使用時,執行設備重置


結論

Mobile 和 IoT 設備的安全挑戰和傳統 Web 應用不同,需要專門的安全思維。

Mobile 安全重點:

IoT 安全重點:

下一步建議:

如果你正在開發 AI 驅動的 Mobile 或 IoT 應用,也要留意 OWASP LLM Top 10 的風險。實戰練習方面,Juice Shop 是很好的起點。

預約資安評估,讓專家用 OWASP 標準檢視你的 App 與 IoT 產品

OWASPAWSKubernetes
← 上一篇
OWASP Top 10 完整解析:2025 最新版十大網站安全風險【2026 更新】
下一篇 →
OWASP API Security Top 10 完整指南:2023 版 API 安全漏洞與防護【2026 更新】