Black Hat USA 2003 - More (Vulnerable) Embedded Systems
三句話摘要
嵌入式系統安全漏洞與攻擊方法:從行動網路骨幹到思科路由器的端到端威脅分析。 嵌入式系統安全的根本問題不在個別漏洞而在於協議設計標準化了缺陷(如GTP向下相容)且多層防禦遭多層漏洞貫穿,因此防禦必須從禁用不必要功能開始,而非依賴單一安全補丁。 骨幹網設計缺陷高於端點漏洞 — GTP協議必須向下相容舊版本,造成標準化的安全漏洞無法根除,攻擊者可偽造任意使用者身份並強制漫遊,比單一裝置入侵威脅更大。
重點整理
重點- 1
骨幹網設計缺陷高於端點漏洞 — GTP協議必須向下相容舊版本,造成標準化的安全漏洞無法根除,攻擊者可偽造任意使用者身份並強制漫遊,比單一裝置入侵威脅更大。
- 2
記憶體洩漏是可靠遠端利用的關鍵 — 思科UDP echo服務洩漏19KB記憶體(包含堆積管理頭)後,講者結合該洩漏的實時位址資訊與HTTP整數溢位,編寫執行時補丁而非覆蓋NVRAM配置,實現持續控制。
- 3
行動裝置無線協議的多層攻擊面 — 手機同時暴露藍牙(L2 ping拒絕服務)、Java應用沙箱逃逸、MMS彩信格式解析(GIF虛擬螢幕偏移導致核心異常)等多個獨立漏洞,無單一補救方案。
- 4
WAP匿名HTTP攻擊模糊防禦邊界 — 透過無連接WSP將HTTP請求封裝在UDP單一封包內並偽造來源IP,攻擊者無需建立可追蹤連線,防火牆難以區分合法與惡意行為。
實用技巧與重點
乾貨- Matrix交換機漏洞:
- 連接資源限制:10個同時連接耗盡管理介面(SSH/Telnet)
- TCP握手後保持連線不逾時、不重新認證
- ISN生成採用64K規則週期(Nmap可識別)
- OSPF實作忽略RFC:未驗證Hello消息就廣播新鄰居,造成洩漏泛滥
- GSM GPRS網路攻擊:
- 使用者認證基於SIM卡而非手機本身
- APN(存取點名稱)作為URL類存取私有企業網路
- 大型電信公司允許任意APN連接(管理成本考量)
- GTP協議缺陷:UDP傳輸、無認證、單封包可執行建立/修改/刪除使用者上下文、重新路由流量、修改計費資訊
- WAP/WSP匿名攻擊:
- 使用GPS APN或公開Web網關
- 偽造來源IP至UDP 9100連接埠(Web網關埠,非基於會話的9101)
- Web網關回應包含X-Forwarded-For標頭(含原始IP)
- CGI程式可截獲並轉發該IP進行後續偽造
- 思科IOS漏洞:
- UDP echo服務回顯宣告長度但發送指定大小的記憶體內容
- 洩漏I/O記憶體頭、區塊指標、程式計數器(用於遠端指紋識別)
- HTTP守護程式整數溢位:需傳送2GB資料觸發(快速乙太網不到一小時)
- 可靠利用需求:建立2GB CBRAW合法格式HTTP封包 → UDP echo記憶體洩漏 → 計算shellcode位址 → 溢位覆蓋返回位址
- 手機漏洞:
- 藍牙L2 ping造成配對對話重疊資源耗盡、無連接接收拒絕服務
- S55藍牙接收無限制接收(可塞入2100檔案),無全刪功能(計數器為單一位元,需格式化)
- Java應用空指標異常未正確捕捉導致「白屏死機」
- JOT檔案解析緩衝區溢位:超長midlet name覆蓋目錄項目
- Cisco iOS執行時補丁技術:
- 使用摩托羅拉框架結構(A6暫存器存儲框架指標)恢復呼叫棧
- 修改檢驗和驗證函式返回false,偽裝為無效HTTP請求
- 保持路由器線上:原始配置與密碼保留、BGP/OSPF會話持續
- 針對21,000+ iOS映像需各自位址清單
結論
結論“嵌入式系統安全的根本問題不在個別漏洞而在於協議設計標準化了缺陷(如GTP向下相容)且多層防禦遭多層漏洞貫穿,因此防禦必須從禁用不必要功能開始,而非依賴單一安全補丁。”
完整解析
詳細講者以「破解Matrix」開場,介紹Interosis製造的這款交換機路由器。該設備允許動態定義交換機與路由器埠,但因為缺乏作業系統支援(無fork或執行緒),管理介面在10個同時連接後會服務拒絕。更巧妙的攻擊是僅完成TCP握手但不繼續通訊,設備會無限期保持連線,達到相同效果。此外,該設備錯誤實作OSPF協議:接收到鄰居Hello消息後立即向所有其他路由器廣播新鄰居,攻擊者持續發送新的Hello消息會造成鄰居公告泛濫,摧毀整個骨幹網。
進入GSM/GPRS核心主題前,講者釐清認證架構:GSM從設計之初就強調手機(終端設備)與使用者身份無關,只有SIM卡掌握認證金鑰。當引入GPRS分組數據後,骨幹網演變為TCP/IP基礎的架構,APN(存取點名稱,類似URL)成為新的認證機制,許多企業將內部IP網路掛載在特定APN下。然而大型電信公司因管理2000多萬用戶的實務困難,索性允許任意SIM卡連接任何APN。講者實測發現輸入大公司名稱時能找到10-20個匹配APN,其中許多默認憑證為「測試/測試」。
GTP(GPRS隧道協議)的設計缺陷是核心威脅。ETSI標準強制所有GGSN與SGSN設備支援協議版本0及以上,導致即使推出更安全的GTP1也必須向下相容,原有漏洞永久存在。GTP運行在無認證的UDP上,攻擊者可在單一封包內修改使用者上下文(鎖定/解鎖用戶)、重新路由流量或修改計費記錄。最具商業價值的攻擊是偽裝為運營商,通知其他SGSN某使用者應在自己網路上漫遊,實現用戶劫持。
講者隨後切換到WAP(無線應用協議)的匿名HTTP攻擊。傳統HTTP基於TCP需要握手,來源IP可追蹤。但WAP協議基於UDP的WSP(會話協議)層,支援無連接模式,將整個HTTP請求封裝在單一UDP封包內且標記「無需確認」。攻擊者透過偽造來源IP發送此封包至Web網關(UDP 9100),Web網關解析並轉送至目標HTTP伺服器。若攻擊者掌控某網站,可在回應中的X-Forwarded-For標頭擷取真實用戶IP,進而用於後續攻擊。該技術具有完全匿名性且使用者無需支付流量費用。
手機安全方面,講者展示多個獨立漏洞的累積效應。藍牙實現允許外部設備不斷發起配對請求(L2 ping),導致對話框重疊堆積而耗盡連接資源。S55的藍牙檔案接收功能無限制接納(塞入2100個檔案後因計數器溢位而無法刪除,最快解決方案是格式化裝置)。Java虛擬機對空指標異常的處理失敗導致「白屏死機」,使用者需按住紅色按鈕重啟但無文檔說明。JOT檔案(Java應用描述檔)的midlet名稱欄位缺乏邊界檢查,超長名稱會在檔案系統中覆蓋目錄項目。最危險的是彩信GIF攻擊:攻擊者透過修改GIF虛擬螢幕偏移量與實際幀大小的不匹配,使得設為背景時觸發CPU異常導致設備重啟或損毀,對方必須購買新手機。
思科IOS漏洞利用的精妙之處在於多層結合。UDP echo服務洩漏的記憶體包含I/O堆積管理頭與程式計數器,講者編寫工具反覆發送echo請求獲取實時記憶體映像,實現遠端指紋識別(確定路由器型號與確切iOS版本)。隨後利用HTTP守護程式的整數溢位缺陷——需發送2GB的畸形CBRAW封包以觸發基於堆棧的緩衝區溢位。關鍵創新是運行時補丁策略:講者透過反組譯發現函式在文字段之前標籤著字串,據此定位目標函式。利用摩托羅拉框架結構(儲存棧指標的A6暫存器)編寫shellcode,修改HTTP認證函式使其返回false(偽裝為無效請求),允許路由器恢復正常運作而非重啟。此法保留原始配置、密碼與路由會話,相較於覆蓋NVRAM更加隱蔽持久。
講者最後強調防禦策略的重要性:禁用UDP echo與HTTP等不必要服務、限制管理介面存取(獨立管理VLAN或埠)、部署ACL阻止來自非管理員的路由器通訊、納入IDS監控清單。由於思科iOS映像超過21000個,可靠攻擊需針對特定目標建立映像位址資料庫,但記憶體洩漏提供的指紋識別使此攻擊可大規模自動化。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

