NCC集團公司的研究人員發表了 最近 Zephyr項目審核的結果, 這是一個實時操作系統(RTOS),旨在根據“物聯網”(IoT)的概念來配備設備。 Zephyr在英特爾的參與下正在開發中。
Zephyr為所有進程提供一個虛擬地址空間 全局共享(SASOS,單一地址空間操作系統)。 特定於應用程序的代碼與為特定應用程序量身定制的內核結合在一起,形成一個整體的可執行文件,以在某些計算機上下載並運行。
所有系統資源都是在編譯階段確定的, 這減少了代碼的大小並提高了生產率。 系統映像中只能包含運行該應用程序所需的內核功能。
值得注意的是 主要優點 和風提到 注重安全的發展。 有人認為 開發的所有階段都經過以下強制性階段: 確認代碼安全性:模糊測試,靜態分析,滲透測試,代碼審查,後門部署分析和威脅建模。
關於漏洞
審核發現Zephyr中有25個漏洞,MCUboot中有1個漏洞。 總共,他們被確定 網絡堆棧中的6個漏洞,內核中的4個漏洞,命令外殼中的2個漏洞,5在系統調用處理程序中, USB子系統中的5和固件更新機制中的3。
為兩個問題指定了嚴重危害等級,兩個:高,9,中,9-低和4-要考慮在內。 問題 嚴重影響IPv4堆棧和MQTT解析器,而危險的設備包括USB大容量存儲設備和USB DFU驅動程序.
在發布信息時,僅針對15個漏洞進行了修復。 更危險的是,仍然存在一些已解決的問題,導致拒絕服務或其他相關內核保護機制的相關故障。
平台的IPv4堆棧中已發現一個被遠程利用的漏洞,當處理以某種方式修改的ICMP數據包時,它將導致內存損壞。
在MQTT協議解析器q中發現了另一個嚴重的問題這是由於缺乏對標頭中字段長度的正確驗證而導致的,並且可能導致遠程執行代碼。 在IPv6堆棧和CoAP協議實現中發現了不太危險的拒絕服務問題。
其他問題可以在本地利用 導致拒絕服務或執行代碼 在內核級別。 這些漏洞中的大多數與缺少對系統調用參數的正確檢查有關,並且可能導致寫入和讀取內核內存的任意區域。
這些問題還涉及系統調用處理代碼本身-訪問負的系統調用編號會導致整數溢出。 和內核還確定了實施ASLR保護的問題 (地址空間隨機化)以及在堆棧上安裝金絲雀標籤的機制,導致這些機制無效。
許多問題會影響USB堆棧和單個驅動程序。 例如,當您將設備連接到受控的USB攻擊主機時,USB大容量存儲問題可導致緩衝區溢出並在內核級別運行代碼。
USB DFU中的漏洞是通過USB下載新固件的驅動程序,使您可以將修改後的固件映像加載到微控制器的內部閃存中,而無需使用加密,並繞過帶有組件數字簽名驗證的安全啟動模式。 此外,還研究了MCUboot開放式引導加載程序代碼,其中發現了一個非危險漏洞,當通過UART使用簡單管理協議(SMP)時,該漏洞可能導致緩衝區溢出。