女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

開源Zephyr和MCUboot堆棧中的26個缺陷

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Brandon Lewis ? 2022-08-15 15:12 ? 次閱讀

開源 Zephyr RTOSMCUboot 項目在物聯網生態系統中的供應商和開發人員中越來越受歡迎,因為它們一起包括開發適合的成熟應用程序所需的所有驅動程序、庫、堆棧和文件系統微型邊緣設備。他們是免費的也沒有什么壞處。

與任何開源技術一樣,維護和改進 Zephyr 和 MCUboot 代碼庫屬于社區,這在許多人看來等同于提高安全性。事實上,福布斯最近一篇報道 Zephyr 項目的文章指出“開源軟件通常被認為更安全,因為任何人都可以檢查和調試代碼。 ”

全球最大的安全咨詢公司之一NCC 集團最近進行了一項獨立研究檢查,分析了 Zephyr RTOS 和 MCUboot 安全引導加載程序的安全狀況,發現了更多 26 個不同嚴重程度的漏洞。

NCC 研究主管 Jennifer Fernick 與 Embedded Computing Design 就該公司“研究報告 - Zephyr 和 MCUboot 安全評估”中的發現進行了交談。

在您對 Zephyr RTOS 和 MCUboot 安全引導加載程序的檢查中發現了哪些嚴重漏洞,更重要的是,它們對物聯網系統的安全性有何影響?

FERNICK:本報告中的研究重點是 Zephyr RTOS 和 MCUboot 引導加載程序,研究人員在其中發現了 Zephyr 中的 25 個漏洞和 MCUboot 中的 1 個漏洞。我們知道 Zephyr RTOS 擁有約 3% 的物聯網市場份額,并且由于包括英特爾NXP、Nordic Semiconductor 等許多芯片組制造商的支持,這種影響力正在迅速增長。

pYYBAGL587mAeAtYAAH4uNsGa5I665.png

關鍵漏洞都在 Zephyr 網絡堆棧中,其中包括堆棧緩沖區溢出攻擊和內存損壞漏洞。通過利用這個特定的緩沖區溢出,當在啟用特定構建選項的設備上接收到惡意 ICMP 數據包時,攻擊者可能會導致拒絕服務或在設備內核中執行代碼,而通過利用這個特定的內存損壞漏洞遠程攻擊者可以發送帶有格式錯誤的標頭的 MQTT 數據包,以在 Zephyr 內核中引發內存損壞,從而可能導致代碼執行。

高風險漏洞既是 Zephyr USB 堆棧中的數據驗證錯誤,也包括用于通過 USB 進行固件更新的驅動程序中的全局緩沖區溢出攻擊,以及 USB 大容量存儲驅動程序中的任意讀取/限制寫入。通過利用這些 USB 漏洞,對 Zephyr 設備具有物理訪問權限的攻擊者可以誘導拒絕服務或可能在內核中實現代碼執行。拒絕服務漏洞可能意味著部署在遠程位置的物聯網設備可能需要物理訪問設備以執行手動重啟,然后設備才能再次運行,并且內核級代碼執行允許攻擊者破壞并完全控制設備,運行任意代碼,破壞設備的功能,

修復這些 Zephyr 漏洞有多難?讓我們特別關注 USB 堆棧中的那些?

FERNICK: NCC Group 報告了 Zephyr USB 堆棧中的五個漏洞。風險最高的漏洞是USB DFU 模式可以溢出 DFU_Upload 命令中的全局緩沖區以及 USB 海量存儲驅動程序中的任意讀取和有限寫入。

USB DFU 模式全局緩沖區溢出攻擊涉及利用 Zephyr 的 USB DFU 驅動程序中存在的緩沖區溢出漏洞,該驅動程序通常用于通過 USB 進行本地固件更新。通過此漏洞,對設備具有物理訪問權限的攻擊者至少能夠在設備內引發拒絕服務,在某些情況下甚至可以在內核中執行代碼,方法是通過以下方式將惡意負載插入內部閃存USB DFU 接口,然后觸發全局緩沖區溢出。但是,應該注意的是,這種可利用性取決于特定 Zephyr 構建的內存布局。此問題已得到修復,可以通過對特定輸入變量的大小進行基本檢查以減輕緩沖區溢出來解決。

在研究 USB 海量存儲驅動程序時,我們的團隊發現 USB 海量存儲驅動程序(用于使 Zephyr 設備充當 USB 存儲驅動器)與 RAM 存儲之間的交互存在問題大于 RAM 磁盤總大小的地址將導致 USB 驅動程序出錯,從而導致惡意磁盤讀取查詢能夠讀取超過全局緩沖區末尾的內存,這可能會泄露內核內存內容并啟用攻擊者在內核中獲取代碼執行。此問題已得到修復,可以通過對特定輸入變量中的大小進行基本檢查來緩解緩沖區溢出,并確保以不會無意中從生產構建中剝離的方式執行邊界檢查。

一個中等風險的漏洞是USB 大容量存儲器內存寫入處理程序中大小未對齊的越界寫入。memoryWrite 處理程序中的發現是,當 USB 數據包和存儲塊大小未對齊時,在從 buf 到頁面的 USB 傳輸數據的復制過程中,頁面數組可能會被覆蓋,這取決于特定全局變量的布局/順序,可能在有些情況是可以利用的。此問題已得到解決,可以通過增加頁面緩沖區的大小以滿足某個最小閾值以及在寫入完成后將任何剩余數據移動到緩沖區的開頭來解決此問題。

另一個中等風險漏洞是USB 海量存儲驅動程序寫入和驗證處理程序中的整數下溢。此漏洞與 Zephyr 中的 memoryWrite 和 memoryVerify 函數有關,其中輸入清理未正確執行,導致整數溢出。此漏洞使攻擊者能夠根據所選大小值泄漏堆棧內存內容或破壞全局內核內存,但僅可用于特定內存布局,因為攻擊者不直接控制堆棧緩沖區的必要部分。此問題已以類似于前面討論的其他輸入清理檢查的方式修復。

最后,一個低風險漏洞是USB DFU 模式允許讀取主插槽繞過圖像加密。這一發現意味著,在啟用(可選)USB DFU 模式時,可以通過在啟用 Zephyr USB DFU 和 MCUboot 加密映像功能時使用上傳命令從主映像插槽中讀取明文固件映像來解密加密固件映像。 這種攻擊需要對設備進行物理訪問。此問題尚未得到解決,但可以通過在 Zephyr 中提供禁用 DFU_Upload 命令的選項(允許讀取固件映像)或簡單地在 MCUboot 文檔中說明繞過固件映像加密是“允許以任何方式轉儲內部閃存的攻擊向量,”文檔警告說,MCUboot 的威脅模型并未涵蓋這一點。

MCUboot 應該能夠覆蓋多少 Zephyr 中的潛在危害,以及在開源安全引導加載程序中發現的漏洞的影響是什么?

FERNICK:引導鏈實現的穩健性在嵌入式操作系統的安全性中起著重要作用。在 Zephyr 和 MCUboot 的情況下,MCUboot 執行大部分啟動時固件完整性驗證檢查,盡管 Zephyr 對運行時執行的固件升級保留一些責任。此外,安全啟動保證所需的芯片配置的某些方面超出了 兩者的范圍 MCUboot 和 Zephyr,而是在制造過程中由設備 OEM 負責。這方面的一些示例包括禁用 JTAG 或 SWD 以防止運行時調試,或啟用閃存讀取保護以防止提取設備機密。因此,安全引導鏈對于運行 Zephyr 或任何其他 RTOS 的嵌入式系統的高度安全保證是必要的,但還不夠。出于這個原因,來自整個供應鏈的多個級別的利益相關者和組件必須承擔特定的責任,以確保實現所需的安全屬性。

MCUboot漏洞是串行啟動過程中對未初始化變量的潛在訪問,意味著由于MCUboot中的輸入處理函數存在缺陷,該函數可能會利用未首先初始化的變量,如果該值這個變量非常大或非常小,它可能會寫入內存或整數下溢/溢出,最終在解碼字節寫入輸出緩沖區時導致內存損壞。

那么這對 Zephyr/MCUboot 用戶意味著什么呢?應該避免它們嗎?有快速修復嗎?還有什么?

FERNICK:經過初步安全審查后,與內部未經審查的同類系統相比,用戶對 Zephyr 和 MCUboot 的安全性有了一定程度的信心。但是,我要提醒的是,審查所需的覆蓋范圍優先考慮了一些被認為具有最高安全風險的系統組件,而其他系統組件則未經檢查,因此并不完整。全面的安全審計需要進一步的工作。

研究人員確實發現了一些進一步的內核加固機會,以及許多不正確的系統調用驗證的證據,即內核/用戶隔離在系統范圍內不一定是健壯的。

不正確的數據驗證是不安全代碼中的常見漏洞類型,無論生態系統如何 - 例如,未能驗證用戶生成的輸入數據是 SQL 注入攻擊和跨站點腳本的根本原因,這些攻擊無處不在,足以成為其中的一部分OWASP 前十名。當然,物聯網設備作為一個類別往往以經常包含更多漏洞而聞名,這些漏洞通常會在其他類型的系統中看到,包括但當然不限于數據驗證漏洞。

一般來說,當嵌入式設備和用于構建物聯網設備的相關組件的設計者和制造商認真對待安全性時,物聯網設備的用戶會更加安全,例如擁有漏洞披露程序、默認啟用產品安全性等。設計和運營承諾,例如最近在 ioXt 承諾中概述的承諾。

Zephyr 項目對所披露的漏洞的反應非常好,其中最高風險的組件和其他幾個已被修補,并且 Zephyr 項目似乎熱衷于向他們的用戶宣傳我們的發現和項目的總體安全性。在我們向 Zephyr 團隊披露我們的發現后,他們創建了一個 產品創建者漏洞警報注冊表, 以幫助他們更好地與在其產品中使用 Zephyr 的客戶建立聯系。致力于不斷提高安全性以及圍繞減輕物聯網設備中的安全風險進行透明通信是朝著更安全的世界邁出的重要一步。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5143

    文章

    19567

    瀏覽量

    315556
  • usb
    usb
    +關注

    關注

    60

    文章

    8151

    瀏覽量

    271240
  • 物聯網
    +關注

    關注

    2927

    文章

    45994

    瀏覽量

    389083
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Zephyr SDK Glue v0.5.0 發布

    各位關注先楫的小伙伴們,基于Zephyrv3.7.0(LTS)版本和hpm_sdkv1.6.0版本的ZephyrSDKgluev0.5.0正式發布了。先楫MCU的Zephyr開發包Zephyr是一通用的嵌入式實時操作系統,具備
    的頭像 發表于 06-17 16:53 ?67次閱讀
    <b class='flag-5'>Zephyr</b> SDK Glue v0.5.0 發布

    使用Percepio View免費跟蹤工具分析Zephyr應用

    Percepio View免費跟蹤工具現在可以針對Zephyr應用程序進行跟蹤和可視化分析了。Percepio View可以幫助開發人員理解和調試Zephyr的固定優先級的多線程行為及復雜的線程交互。
    的頭像 發表于 05-27 15:08 ?142次閱讀
    使用Percepio View免費跟蹤工具分析<b class='flag-5'>Zephyr</b>應用

    nRF Connect SDK(NCS)/Zephyr固件升級詳解 – 重點講述MCUboot和藍牙空中升級

    如何在nRF Connect SDK(NCS)實現藍牙空中升級?MCUboot和B0兩Bootloader有什么區別?MCUboot升級使用的image格式是怎么樣的?什么是SMP
    的頭像 發表于 05-09 14:14 ?1536次閱讀
    nRF Connect SDK(NCS)/<b class='flag-5'>Zephyr</b>固件升級詳解 – 重點講述<b class='flag-5'>MCUboot</b>和藍牙空中升級

    使用Tracealyzer調試Zephyr的優先級反轉

    Percepio Tracealyzer已經在600多個支持Zephyr的開發板上完成了驗證,可以幫助開發人員改進Zephyr應用的調試和性能分析。
    的頭像 發表于 04-21 11:31 ?554次閱讀
    使用Tracealyzer調試<b class='flag-5'>Zephyr</b><b class='flag-5'>中</b>的優先級反轉

    使用RT1060的mcuboot開源sdk示例擦除主插槽的錯誤鏡像怎么解決?

    解釋一下我之前在做什么。 1. 我使用 mcuxpresso Ide 將 mcuboot 開源刷寫到 rt1060。 之后,我在控制臺中收到了以下消息。 Bootloader 版本 1.9.0 圖像 0 主
    發表于 04-10 08:13

    恩智浦分享Zephyr調試技巧

    前面幾期中,我們著重給大家介紹了如何搭建Zephyr開發環境,以及如何添加自己的應用代碼。今天讓我們開始一新的篇章:Zephyr調試技巧以及介紹Ozone進行Zephyr的調試分享。
    的頭像 發表于 03-13 09:05 ?1122次閱讀

    恩智浦解讀Zephyr log系統的使用 Zephyr的shell和log功能介紹

    之前 我們從 0 開始新建了一簡單的 Zephyr 應用- 從0開始打造屬于自己的HelloWorld ,本期就 帶著大家熟悉一下 Zephyr 的 shell 和 log 系統。 首先給大家介紹
    的頭像 發表于 02-27 09:19 ?1058次閱讀
    恩智浦解讀<b class='flag-5'>Zephyr</b> log系統的使用 <b class='flag-5'>Zephyr</b>的shell和log功能介紹

    IAR加入Zephyr項目,強化開源協作承諾

    支持。 Zephyr作為一廣泛應用于嵌入式行業的開源實時操作系統(RTOS),憑借其靈活性和高效性,已經贏得了眾多嵌入式領域重要企業的青睞。IAR Systems此次加入Zephyr
    的頭像 發表于 02-17 09:55 ?433次閱讀

    IAR正式加入Zephyr項目,成為銀牌會員

    全球領先的嵌入式系統開發軟件解決方案供應商IAR,近日宣布正式加入由Linux基金會托管的Zephyr項目,并榮膺銀牌會員身份。這一舉措標志著IAR在嵌入式行業的又一重要布局,展現了其對開源社區
    的頭像 發表于 02-12 14:25 ?539次閱讀

    IAR正式加入Zephyr項目

    全球領先的嵌入式系統開發軟件解決方案供應商IAR宣布,正式加入Zephyr項目,成為銀牌會員。Zephyr是由Linux基金會托管并廣泛應用于嵌入式行業的開源實時操作系統(RTOS),已得到眾多
    的頭像 發表于 02-12 14:19 ?521次閱讀

    使用MCUXpresso for VS Code插件開發Zephyr的hello world

    本期來到Zephyr實戰經驗演練,小編帶著大家一起使用MCUXpresso for VS Code插件來開發一屬于Zephyr的hello world。
    的頭像 發表于 01-03 09:21 ?1160次閱讀
    使用MCUXpresso for VS Code插件開發<b class='flag-5'>Zephyr</b>的hello world

    Zephyr的構建工具

    給大家介紹一下Zephyr的構建工具們:
    的頭像 發表于 12-05 09:51 ?1409次閱讀
    <b class='flag-5'>Zephyr</b>的構建工具

    使用MCUXPresso插件開發Zephyr

    應廣大讀者朋友的熱情邀請,我們特別策劃了“Zephyr領進門”系列介紹(共十篇),旨在為大家深度剖析Zephyr OS——這一備受矚目的開源實時操作系統。從使用MCUXPresso插件進行開發
    的頭像 發表于 11-28 09:41 ?799次閱讀

    深入解析Zephyr RTOS的技術細節

    Zephyr是一針對資源受限設備優化的小型、可縮放、多體系架構實時操作系統(RTOS)。Zephyr由Linux基金會維護[1],是一以構建業界最佳的RTOS為目標的
    的頭像 發表于 10-22 16:47 ?1927次閱讀
    深入解析<b class='flag-5'>Zephyr</b> RTOS的技術細節

    堆棧和內存的基本知識

    本文主要聊聊關于堆棧的內容。包括堆棧和內存的基本知識。常見和堆棧相關的 bug,如棧溢出,內存泄漏,堆內存分配失敗等。后面介紹軟件堆棧統計
    的頭像 發表于 08-29 14:10 ?975次閱讀
    <b class='flag-5'>堆棧</b>和內存的基本知識