物聯網時代下的緩沖區溢出威脅 |
中國軟件評測中心網安中心 |
目前物聯網產業高速發展,隨著LPWAN以及5G的崛起,可以預測物聯網的發展速度將會更為迅猛?!掇k公廳關于深入推進移動物聯網全面發展的通知》(工信廳通信〔2020〕25號)中提出到2020年底,國內移動物聯網連接數達到12億。在物聯網龐大的設備數量背后,信息泄露、設備監控、數據欺騙等安全問題已經成為影響廣泛的社會性問題。而緩存區溢出則是物聯網安全的嚴重威脅之一。 |
一、緩存區溢出漏洞廣泛存在 |
據國家信息安全漏洞共享平臺2020年11月—2021年1月數據顯示,三個月內物聯網終端設備類披露緩沖區溢出漏洞18個,其中高危漏洞11個,中危漏洞7個,涉及華為、IBM、Intel、Dell等多家行業企業。 |
漏洞情況舉例如下: |
Huawei Mate 30緩沖區溢出漏洞(CVE-2020-9209),攻擊者可以利用該漏洞通過向目標設備發送帶有特定參數的包,致使設備行為異常。 |
IBM MQ Appliance緩沖區溢出漏洞(CVE-2020-4869),遠程攻擊者可利用該漏洞可以發送一個特別設計的SNMP查詢,使設備重新加載。 |
Intel NUC Kit緩沖區溢出漏洞(CVE-2020-12337),該漏洞源于不適當的緩沖區限制,可能允許特權用戶通過本地訪問潛在地啟用特權升級。 |
Dell Inspiron緩沖區溢出漏洞(CVE-2020-5388),該漏洞源于包含一個不適當的SMM通信緩沖區驗證漏洞。本地經過身份驗證的攻擊者可以利用該漏洞通過使用SMI來獲得SMRAM中任意代碼的執行。 |
二、緩沖區溢出的本質 |
緩沖區是程序運行時,操作系統為了保存用戶輸入數據、程序臨時數據而在內存中分配的一片連續的內存存儲空間。緩沖區溢出是一種程序缺陷,緩沖區中填入超出內存邊界的數據,致使數據覆蓋了相鄰的內存空間,使得程序崩潰或信息被篡改,被非法利用易造成嚴重后果。 |
三、物聯網設備易受溢出攻擊的原因分析 |
基于物聯網設備內存容量小,物聯網系統及底層開發普遍使用C/C++語言,物聯網操作系統相比通用操作系統可用資源有限的三個特點,物聯網設備易被攻擊者利用緩沖區溢出漏洞攻擊。 |
(一)緩沖區溢出基于緩沖區的有限性。物聯網設備為平衡功能和成本,大多配置較小的內存容量,而內存越小,通常緩沖區也越小,溢出操作越容易。 |
(二)緩沖區邊界缺乏檢查是溢出的主要原因。物聯網設備采用的操作系統普遍由C/C++語言編寫。在C和C++語言編寫的程序中,編譯器注重程序的運行效率,缺乏對數組和指針的邊界檢查,可以被攻擊者利用。 |
(三)通用操作系統,配備大量資源,可以通過增加資源損耗來加強防御能力。而物聯網操作系統,注重實時性,為保證性能盡可能減少額外資源開銷,不能采用以資源換安全的方式。 |
四、物聯網設備緩沖區溢出的防范技術 |
目前,考慮到資源開銷和性能問題,研究者們更多地從硬件或者軟硬件結合的角度去思考如何解決緩沖區溢出與物聯網設備安全的問題。相關研究如:Bresch等人提出了一種輕量級的硬件防范對策Speculoos,通過對目標核心進行最小程度的硬件修改,防止物聯網設備處理器堆棧中的返回地址損壞,進而達到防范緩沖區溢出攻擊的目的;XuBin等人提出了一種基于監視模型和安全標簽的架構增強安全硬件設計,用于檢測緩沖區溢出攻擊;另一批研究者Shao等人則在更早以前提出了一種軟硬件結合的HSDefender技術。 |
|
總的來說,采取硬件機制或軟硬件結合的安全機制,實現緩存區邊界檢查、緩沖區基地址隨機化以及控制內存地址讀寫權限,一定程度上可以幫助物聯網設備達到防范緩存區溢出的目的。? |