RTOS Zephyr 中存在 25 個漏洞,包括透過 ICMP 封包利用的漏洞

NCC集團研究人員 發表 免費專案審核結果 和風, 發展 即時作業系統(RTOS),設計用於配備符合物聯網概念(IoT,Internet of Things)的裝置。 審計過程中發現 25 個漏洞 Zephyr 中存在 1 個漏洞,MCUboot 中存在 XNUMX 個漏洞。 Zephyr 是在英特爾公司的參與下開發的。

總共在網路堆疊中發現了 6 個漏洞,其中 4 個在核心中,2 個在命令 shell 中,5 個在系統呼叫處理程序中,5 個在 USB 子系統中,3 個在韌體更新機制中。 有 9 個問題被評為嚴重,9 個為高問題,4 個為中等問題,4 個為低問題,15 個需要考慮。 嚴重問題會影響 IPvXNUMX 堆疊和 MQTT 解析器,危險問題會影響 USB 大容量儲存和 USB DFU 驅動程式。 截至資訊揭露時,僅針對 XNUMX 個最危險的漏洞準備了修復程式;導致拒絕服務或與其他核心保護機制中的缺陷相關的問題仍未得到糾正。

在該平台的 IPv4 堆疊中發現了一個可遠端利用的漏洞,該漏洞在處理以某種方式修改的 ICMP 封包時會導致記憶體損壞。 另一個嚴重問題是在 MQTT 協定解析器中發現的,該問題是由於缺乏適當的標頭欄位長度檢查而導致的,並可能導致遠端程式碼執行。 在 IPv6 堆疊和 CoAP 協定實作中發現了較不嚴重的拒絕服務問題。

其他問題可以在本地被利用,導致拒絕服務或在核心層級執行程式碼。 大多數這些漏洞與缺乏對系統呼叫參數的正確檢查有關,並且可能導致核心記憶體的任意區域被寫入和讀取。 這些問題也擴展到系統呼叫處理程式碼本身——呼叫負的系統呼叫號碼會導致整數溢位。 核心還發現了 ASLR 保護(位址空間隨機化)和在堆疊上設定金絲雀標記的機制的實現問題,導致這些機制失效。

許多問題會影響 USB 堆疊和各個驅動程式。 例如,當裝置連接到攻擊者控制的 USB 主機時,USB 大容量儲存中的問題可能會導致緩衝區溢位並在核心層級執行程式碼。 USB DFU 是一種透過USB 載入新韌體的驅動程序,該驅動程式可讓您將修改後的韌體映像載入到微控制器的內部快閃記憶體中,而無需使用加密並透過使用數位簽章驗證元件來繞過安全啟動模式。 此外,也研究了開放式引導程式程式碼 單晶片啟動,其中發現了一個良性漏洞,
在 UART 上使用 SMP(簡單管理協定)協定時,這可能會導致緩衝區溢位。

回想一下,在 Zephyr 中,只為所有行程提供一個全域共用虛擬位址空間(SASOS,單一位址空間作業系統)。 應用程式特定的程式碼與應用程式特定的核心相結合,形成可以在特定硬體上載入和運行的整體可執行檔。 所有系統資源都是在編譯時確定的,從而減少了程式碼大小並提高了效能。 系統映像可以僅包含執行應用程式所需的那些核心功能。

值得注意的是,Zephyr 的主要優點包括 提到 發展要牢記安全。 得到正式認可的開發的所有階段都必須經歷確認程式碼安全性的強制性階段:模糊測試、靜態分析、滲透測試、程式碼審查、後門實施分析和威脅建模。

來源: opennet.ru

添加評論