KeyFrame內部研究專用

DEF CON 33 - Help! Linux in my Webcam! (•_•) - Mickey Shkatov, Jesse Michael

DEFCONConference·10月10日週五·41 min英文

三句話摘要

安全研究員通過逆向工程揭示網路攝像頭運行 Linux 系統且存在多個安全設計缺陷的全過程。 網路攝像頭普遍採用 Linux 系統是基於成本最小化的商業決策,但因安全設計缺失、固件更新機制薄弱、GPL 合規不遵守,任何拿到設備的人都能輕易獲得 root 權限並將其改造成蓄意工具。 成本驅動的不安全設計:制造商為降低成本、加快上市,採用現成的 Sigma Star SoC 和 Linux 系統,但對安全考量不足。簡單塞進 Linux 比開發專用協議棧便宜得多,也便於員工流失時快速補位(只需招聘懂 Linux 的人員)。

重點整理

重點
  • 1

    成本驅動的不安全設計:制造商為降低成本、加快上市,採用現成的 Sigma Star SoC 和 Linux 系統,但對安全考量不足。簡單塞進 Linux 比開發專用協議棧便宜得多,也便於員工流失時快速補位(只需招聘懂 Linux 的人員)。

  • 2

    固件更新機制形同虛設:更新工具缺乏固件簽名驗證,MD5 校驗失敗時無重試機制。一旦擦除區域損壞,設備即無法恢復,這是極為危險的設計。

  • 3

    物理接口直接暴露系統:U-Boot 可通過 UART 串口訪問,環境變數可直接修改(從唯讀切換可寫),即可獲得 root shell。許多廠商甚至在主板上標記 TX/RX 引腳,毫無防護可言。

  • 4

    GPL 合規缺失導致生態漏洞:制造商拒絕發布使用 Linux 內核的設備源代碼,使安全研究受阻、漏洞無法修復。通過社交媒體施壓方可強制合規。

實用技巧與重點

乾貨
  • 涉及制造商與晶片
  • Sigma Star SoC(聯發科→Mstar Semiconductor→Sigma Star)
  • TP-Link:已公開 GPL 代碼
  • Nexigo:Sigma Star SoC,無回應
  • OBS 機器人(Open Broadcasting Studio):Sigma Star SoC,無回應
  • 聯想(Lenovo):演講重點逆向對象
  • Opal Tadpole:使用 Sigma Star,昨天發布 GPL 代碼
  • OPPO(Amberella SoC):已發布 GPL 代碼
  • 技術細節
  • 固件更新:UVC 擴展單元 + SCSI 直通命令(I/O 控制 0x4D004)
  • 更新流程:ROM 模式 → 更新程序模式 → U-Boot 模式
  • 存儲:NOR Flash,分區含 bootloader、kernel、filesystem
  • U-Boot 環境變數:可設置 init=/bin/sh 或 init=/sbin/init
  • MD5 校驗點存在但無重試邏輯
  • 改造方案
  • USB 鍵盤:添加 HID 驅動,自動輸入管理員命令
  • USB 網路設備:添加虛擬以太網卡,共享主機 WiFi,建立反向殼層
  • 植入機制(Implant):通過環境變數標誌控制是否執行有效載荷
  • 攻擊步驟(UART 方法)
  • 連接 TX/RX 引腳
  • 啟動時按住回車進入 U-Boot
  • 查看環境變數:`printenv`
  • 修改:`setenv bootargs ... init=/bin/sh`
  • 保存:`saveenv`
  • 重啟:`reset`
  • 獲得 root shell,修改密碼
  • 復原環境變數,正常啟動
  • 工具與資源
  • binwalk:固件分析
  • Metasploit:C2 監聽(演示用 443 埠)
  • OpenIPC:開源網路攝像頭系統,支援 Sigma Star
  • GitHub:四個開發者倉庫含 U-Boot、Linux 核心、SDK
  • 刷機工具:Daddy Prague、Joe Fitz Tiger(虎王)
  • 俄羅斯論壇:獲得舊版本或洩露代碼
  • Mega 鏈結:OVA VMware 鏡像用於本地構建
  • 漏洞等級
  • 任意代碼執行(需物理訪問或 USB 連接)
  • 根本原因:缺乏信任根認證、固件簽名驗證、安全啟動機制
  • GPL 合規過程
  • 聯想 → Sigma Star → 聯想 → 研究員,過程困頓且源代碼多次不完整,需多輪協調

結論

結論

網路攝像頭普遍採用 Linux 系統是基於成本最小化的商業決策,但因安全設計缺失、固件更新機制薄弱、GPL 合規不遵守,任何拿到設備的人都能輕易獲得 root 權限並將其改造成蓄意工具。

完整解析

詳細

這場演講追溯了一個典型的物聯網設備安全發現過程。故事始於一個簡單的需求——更新網路攝像頭固件。研究員下載了廠商提供的固件工具,卻在解包時發現了異常:8MB 的固件包含 ash 腳本、U-Boot 二進位、USB 更新工具、OTAA 配置等複雜結構,遠超一般 USB 攝像頭的簡單 ISP 邏輯。使用 binwalk 進行固件分析,研究員看到了整個 Linux 系統的完整轉儲。

進一步硬體檢查暴露了根本設計缺陷:主板上不僅有 SoC,還有記憶體和存儲芯片,以及三個疑似支撐墊的焊盤。通過供電並監控 UART 輸出,研究員確認了 Linux 內核的啟動日誌。這時研究的方向變得明確——不是一個簡單的 ISP 晶片,而是一台隱藏在攝像頭外殼內的嵌入式 Linux 電腦。

研究員接著分析了固件更新的機制。聯想的工具透過 UVC 擴展單元(USB Video Class 的廠商私有命令)切換攝像頭狀態,先將其重識別為大容量存儲設備,再利用 SCSI 直通命令(I/O 控制代碼 0x4D004)發送一系列命令序列。這些命令由 U-Boot 執行,負責擦除特定 Flash 區域、接收新的核心和文件系統鏡像、計算 MD5 校驗。關鍵缺陷是完全沒有簽名驗證,一旦校驗失敗且重試失敗,已被擦除的鏡像無法恢復——設備變成磚塊。

為了進一步研究,研究員需要源代碼。直接向 Sigma Star 索要遭冷遇,官方渠道形同虛設。最後通過 GitHub 上的四個開發者倉庫、OpenIPC 開源項目和俄羅斯論壇的洩露代碼,湊齊了大部分源代碼。通過聯想的 GPL 流程(聯想向 Sigma Star 索要,再轉給研究員),最終獲得完整內核和工具鏈,但過程充滿波折,代碼多次不完整。

有了源代碼,研究員進行了一系列令人矚目的修改。首先是 USB 鍵盤演示:在內核中添加 HID 驅動,在啟動時加載有效載荷檢查邏輯。通過修改 U-Boot 環境變數中的 implant 標誌,攝像頭啟動時會自動作為 USB 鍵盤連接到電腦,輸入一系列命令打開管理員命令提示符。下次重啟時如果標誌重置,攝像頭恢復正常。這個演示完美說明了固件完全不可信的事實。

其次是網路設備演示:添加虛擬以太網驅動,攝像頭連接時呈現為 USB 網路設備。研究員設計了一個 PowerShell 腳本,使主機與攝像頭共享 WiFi 連接。一旦攝像頭獲得互聯網存取,它自動連接到遠程 Metasploit 服務器建立反向殼層。整個過程完全自動化,無需任何交互,充分展示了從單個 USB 設備到完全網路入侵的攻擊鏈。

對於其他廠商的設備,研究員展示了物理層的攻擊方法。以 Opal Tadpole 為例,主板上清晰標記了 TX 和 RX 引腳。通過簡單的 UART 連接,按住回車進入 U-Boot,修改環境變數將根文件系統從唯讀切換到可寫,重啟即可獲得 root shell。密碼修改後,重新設置環境變數回唯讀並啟動正常系統,攻擊痕跡已消除。

GPL 合規問題貫穿整個研究過程。許多廠商在設備中使用 Linux 內核卻拒絕提供源代碼,違反了 GPL 條款。研究員通過 LinkedIn 和 Twitter 直接聯繫廠商高管,公開要求 GPL 代碼。這種社交媒體施壓最終迫使某些廠商(如 Opal)配合。相比之下,TP-Link 因為之前已經被 GPL 問題糾纏,主動發布源代碼毫無異議。OPPO 昨天才發布代碼,而 Nexigo 和 OBS 機器人仍未回應。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。