91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

虹科在RAUC嵌入式固件更新框架中發(fā)現(xiàn)重大漏洞

hAR7_OPPOOIA ? 來源:廣州虹科電子科技有限公 ? 作者:廣州虹科電子科技 ? 2021-08-10 10:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

● 虹科Vdoo安全研究團隊不斷研究領(lǐng)先的嵌入式設(shè)備及其供應(yīng)鏈,在RAUC 嵌入式固件更新框架中發(fā)現(xiàn)的重大漏洞——

● CVE-2020-25860是一個潛在的嚴重漏洞,其在RAUC中的 CVSSv3 得分為 8.8。此漏洞存在于 RAUC 的所有版本中,直到 1.5,其中包含補丁。

該漏洞是一個 Time-of-Check-Time-of-Use ( CWE-367 ) 問題允許有權(quán)限的攻擊者在固件更新文件被驗證后(但在安裝完成前)覆蓋它,從而允許安裝一個任意的固件更新,繞過加密簽名檢查機制。

● 與供應(yīng)鏈漏洞一樣,很難準確估計有多少設(shè)備受其影響。鑒于RAUC這是一個開源工具,而且許多與供應(yīng)商沒有關(guān)系的不同公司都可以使用它,因此這種估計更加復雜。

RAUC背景

RAUC—Robust Auto-Update Controller,該項目始于 2015 年,被開發(fā)為輕量級工具,可為基于 Linux 的嵌入式設(shè)備執(zhí)行故障安全的圖像更新。 RAUC 允許嵌入式 Linux 開發(fā)人員在他們的嵌入式設(shè)備上集成一個強大的更新客戶端,只需最少的努力,同時避免編寫任何更新代碼。RAUC框架支持許多常見的引導程序(U-Boot、grub等)和存儲技術(shù)(ext4、UBIFS等),因此,它試圖盡可能地接近嵌入式設(shè)備固件更新的 “統(tǒng)包”解決方案。 RAUC 的主要特性是安全性(原子性、故障安全更新操作)、保障性(加密簽名檢查)和可定制性(在安裝過程中添加用戶掛鉤)。

技術(shù)深究

RAUC 使用捆綁文件作為保存新固件的存檔。我們發(fā)現(xiàn)在固件升級過程中,此文件可以被攻擊者替換(在初始驗證步驟之后),并且通過這樣做會安裝惡意固件,從而有效地允許攻擊者控制系統(tǒng)。運行rauc install bundle.raucb時RAUC 會運行以下內(nèi)部函數(shù):

check_bundle() – 使用 openssl 庫調(diào)用驗證包

mount_bundle() – 使用“mount”shell 調(diào)用掛載包

在這些步驟之后,安裝的包被提取并覆蓋當前固件。關(guān)鍵問題在于一旦 check_bundle() 完成運行,捆綁文件就會關(guān)閉,并且不會以任何方式保留已驗證的數(shù)據(jù)。當 mount_bundle()開始運行時,mountshell 調(diào)用會導致重新讀取包數(shù)據(jù):

gboolean mount_bundle(RaucBundle *bundle, GError **error){...g_message(“Mounting bundle ‘%s’ to ‘%s’”, bundle-》path, mount_point);

res = r_mount_loop(bundle-》path, mount_point, bundle-》size,...gboolean r_mount_full(const gchar *source, const gchar *mountpoint, const gchar* t

gboolean r_mount_full(const gchar *source, const gchar *mountpoint, const gchar* type, goffset size, const gchar* extra_options, GError **error){...if (getuid() != 0) { g_ptr_array_add(args, g_strdup(“sudo”));

g_ptr_array_add(args, g_strdup(“--non-interactive”)); } g_ptr_array_add(args, g_strdup(“mount”));...g_ptr_array_add(args, g_strdup(source));...sproc = r_subprocess_newv(args, G_SUBPROCESS_FLAGS_NONE, &ierror);...

因此——攻擊者可以在調(diào)用 check_bundle() 和mount_bundle() 之間切換包文件。這讓攻擊者可以部署任意惡意固件,基本上可以在設(shè)備上提供root權(quán)限。

b247f38a-ed16-11eb-a97a-12bb97331649.png

圖 :攻擊流程,當進程到達 mount_bundle() 時,攻擊者可以替換包文件,因此 RAUC 將掛載未經(jīng)授權(quán)的包

贏得競爭條件(在檢查/掛載包調(diào)用之間替換包文件)的機會非常高,因為在包括shell 調(diào)用(“mount”命令)在內(nèi)的兩個操作之間存在不可忽略的代碼量,這是一個非常緩慢的操作。

觀察到的遠程攻擊場景

盡管在大多數(shù)情況下,虹科認為該漏洞可作為本地權(quán)限升級加以利用,但我們觀察到一個真實場景,即遠程攻擊者可利用一組默認硬編碼憑據(jù)利用該漏洞。目標設(shè)備使用了一組默認的硬編碼憑據(jù)(用戶名和密碼設(shè)置為“admin”),首次登錄時不需要更改這些憑據(jù)。這些憑證可以被能夠訪問設(shè)備固件的攻擊者輕易提取,或者通過簡單的暴力攻擊來猜測。

查看設(shè)備的攻擊面:

目標設(shè)備暴露了一個經(jīng)過認證的 CGI 端點upload.cgi,它允許將任意文件上傳到硬編碼的文件路徑 -/tmp/rauc/bundle.raucb

目標設(shè)備暴露了一個經(jīng)過認證的 CGI 端點install.cgi,該端點運行硬編碼的 shell 命令 -rauc install /tmp/rauc/bundle.raucb

兩個 CGI 端點之間沒有適當?shù)逆i定機制

在這種情況下,攻擊者可以遠程接管設(shè)備,只需調(diào)用:

upload.cgi 帶有正確簽名的固件

install.cgi

(很快)upload.cgi帶有惡意固件

本地攻擊場景和PoC

假設(shè)本地用戶有調(diào)用 RAUC 的權(quán)限(例如,通過只允許rauc命令的 sudo 配置),但沒有簽署RAUC捆綁包所需的私鑰,利用是沒有價值的:將正確簽名的固件復制到某個路徑,例如: 。/bundle.raucb Invoke RAUC –sudo rauc install./bundle.raucb迅速用惡意的固件替換。/bundle.raucb

如果本地用戶無法調(diào)用 RAUC 命令,假設(shè)調(diào)用 RAUC 命令的特權(quán)用戶使用攻擊者可以寫入的路徑,則這種情況也可以被利用。我們開發(fā)了一個概念驗證,它利用了這個確切的場景:

PoC 接受要替換的包文件的完整路徑

PoC通過監(jiān)控一個默認目錄(/mnt/rauc)來等待另一個用戶運行rauc安裝,該目錄在驗證步驟之后但在安裝步驟之前被創(chuàng)建。

一旦驗證結(jié)束(目錄被創(chuàng)建),PoC 就會用任意的輸入覆蓋包文件。

攻擊的bundle文件可以被移到正確簽名的bundle文件上(這比在正確的位置寫一個新文件要快)。

作為設(shè)備供應(yīng)商

如何知道設(shè)備是否受此漏洞的影響?

可以通過在您的設(shè)備上運行此命令來檢查您的RAUC 版本是否存在漏洞:

rauc --version

如果報告的版本低于1.5,則您的設(shè)備包含有漏洞的代碼。實際上,只有當本地或遠程攻擊者有可能在安裝捆綁包時修改該文件,該設(shè)備才會有漏洞。例如,這可能發(fā)生在以下情況:

非特權(quán)用戶可以通過sudo機制、setuid機制或任何其他專有機制,以root權(quán)限調(diào)用rauc命令。例如,/etc/sudoers文件中的以下行將允許“vdoo”用戶以 root 身份調(diào)用RAUC:

vdoo ALL=(root) /usr/bin/rauc

rauc install可以由非特權(quán)用戶修改的捆綁路徑隨時調(diào)用。例如:

/usr/bin/rauc install /tmp/mybundle.raucb

由于/tmp默認情況下是全局可寫的,因此通常任何用戶都可以修改其下的文件。

虹科Vdoo 在其Vision平臺中添加了一個適用性掃描器,可以通過檢測所有RAUC 調(diào)用并檢查相關(guān)安裝路徑的權(quán)限來自動驗證是否發(fā)生這種情況,為您的設(shè)備保駕護航。

作為資產(chǎn)所有者

如何知道部署的設(shè)備是否存在漏洞?

不幸的是,似乎很難判斷此漏洞是否存在,更重要的是,僅僅使用網(wǎng)絡(luò)工具或不實際查看設(shè)備代碼,就很難適用。

如果您的設(shè)備供應(yīng)商為設(shè)備提供了軟件物料清單 (SBOM),請查看是否使用了 RAUC,如果使用了,那么理論上您很可能容易受到攻擊(除非版本明確列為 1.5),因為有漏洞代碼存在。但這并不意味著該漏洞是可利用的。如有需要,請隨時聯(lián)系虹科Vdoo為您提供幫助。

如果無法升級RAUC

如何降低風險?

如上所述,這是一個經(jīng)典的Time-of-Check-Time-of-Use 漏洞,其中攻擊利用非原子性的動作,涉及到對資源的檢查和資源的使用。在這種情況下,進行簽名檢查,用法為安裝/升級。

通過確保安裝是原子性的并且從安全路徑發(fā)生,可以減輕攻擊。在運行rauc install之前,將捆綁文件從全局可寫位置復制到安全位置(僅限 root 可寫)并從該路徑運行安裝。使用安全位置的存在作為鎖定機制。這將確保未經(jīng)授權(quán)的用戶(無論是本地還是遠程)無法插手安裝過程。

這可以通過這個示例 shell 腳本來完成:

# Assuming firmware is uploaded to /tmp/uploads/bundle.bin# Assuming /data/fw_upgrade can be written to only by rootif [ ! -e /data/fw_upgrade/bundle.bin ];

then cp /tmp/uploads/bundle.bin /data/fw_upgrade/bundle.bin /usr/bin/rauc install /data/fw_upgrade/bundle.bin rm /data/fw_upgrade/bundle.binfi

請注意,在使用像Yocto這樣的構(gòu)建系統(tǒng)時,更改安裝腳本可能并不比切換到固定的RAUC版本容易得多。

附錄-虹科Vdoo安全性防護平臺

虹科Vdoo是端到端的產(chǎn)品安全分析平臺,在整個產(chǎn)品生命周期中自動化所以軟件安全任務(wù),確保所有安全問題得到優(yōu)先處理、溝通和緩解。垂直無關(guān)的平臺使各種行業(yè)的設(shè)備制造商和部署者能夠跨多個業(yè)務(wù)線擴展其產(chǎn)品安全功能。虹科Vdoo自動保護連接產(chǎn)品的方法使客戶大大縮短了上市時間,減少了資源需求,增加了銷售量,降低了總體風險。

責任編輯:haq

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

    關(guān)注

    5198

    文章

    20435

    瀏覽量

    333899
  • 虹科電子
    +關(guān)注

    關(guān)注

    0

    文章

    758

    瀏覽量

    15297

原文標題:虹科方案 | 虹科Vdoo安全平臺-在 RAUC 嵌入式固件更新框架中發(fā)現(xiàn)的重大漏洞

文章出處:【微信號:OPPOOIA,微信公眾號:OPPOstory】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    owa5X 無線嵌入式計算機 工業(yè)級邊緣計算終端與車載網(wǎng)關(guān)優(yōu)選

    從工業(yè)級邊緣計算終端到車載高性能邊緣計算網(wǎng)關(guān),從工業(yè)級嵌入式計算機到邊緣智能解決方案, owa5X 無線嵌入式計算機以高性能、高可靠、高適配的核心特性,滿足了工業(yè) 4.0 與車載智
    的頭像 發(fā)表于 02-10 17:08 ?98次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b> owa5X 無線<b class='flag-5'>嵌入式</b>計算機 工業(yè)級邊緣計算終端與車載網(wǎng)關(guān)優(yōu)選

    LuatOS 框架嵌入式系統(tǒng)架構(gòu)設(shè)計原理

    LuatOS 重新定義了嵌入式系統(tǒng)的開發(fā)范式——將 Lua 腳本作為主程序語言,構(gòu)建起完整的系統(tǒng)架構(gòu)。其設(shè)計原理圍繞“腳本主導、C 層支撐”展開,通過固件嵌入 Lua 解釋器,將硬
    的頭像 發(fā)表于 02-03 15:57 ?93次閱讀
    LuatOS <b class='flag-5'>框架</b>的<b class='flag-5'>嵌入式</b>系統(tǒng)架構(gòu)設(shè)計原理

    分析嵌入式軟件代碼的漏洞-代碼注入

    隨著互聯(lián)網(wǎng)的發(fā)展,嵌入式設(shè)備正分布一個充滿可以被攻擊者利用的源代碼級安全漏洞的環(huán)境中。 因此,嵌入式軟件開發(fā)人員應(yīng)該了解不同類型的安全漏洞
    發(fā)表于 12-22 12:53

    C語言單元測試嵌入式軟件開發(fā)中的作用及專業(yè)工具的應(yīng)用

    一、C語言嵌入式開發(fā)中的現(xiàn)狀與重要性 C語言嵌入式開發(fā)領(lǐng)域仍然占據(jù)主導地位,根據(jù)Barr集團的研究,目前95%的嵌入式系統(tǒng)代碼采用C或C
    發(fā)表于 12-18 11:46

    干貨 | 嵌入式AI崛起,CAN總線如何重塑新角色?

    你是否注意到,AI正從「云端」下沉,融入我們身邊的各類設(shè)備?這就是「嵌入式AI」,它讓終端設(shè)備擁有了感知、決策的能力。但一個關(guān)鍵問題隨之而來:這些分散的「小智能」,如何被可靠地聯(lián)結(jié)起來,協(xié)同
    的頭像 發(fā)表于 11-26 17:03 ?1748次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>干貨 | <b class='flag-5'>嵌入式</b>AI崛起,CAN總線如何重塑新角色?

    C語言嵌入式開發(fā)中的應(yīng)用

    C 語言汽車電子控制系統(tǒng)開發(fā)中的主導地位。 2、設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序是嵌入式系統(tǒng)中連接硬件和軟件的橋梁,它負責實現(xiàn)嵌入式系統(tǒng)與外部設(shè)備之間的通信和控制。C 語言由于其對底層硬件的直接
    發(fā)表于 11-21 08:09

    案例 | 礦業(yè)數(shù)字化轉(zhuǎn)型:owa5X如何贏得日立Wenco信任?

    一背景下,全球礦業(yè)系統(tǒng)領(lǐng)軍企業(yè)Wenco與嵌入式設(shè)備專家Owasys的合作,及其對owa5X設(shè)備的采用,為行業(yè)提供了一個極具參考價值
    的頭像 發(fā)表于 11-18 17:03 ?557次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>案例 | 礦業(yè)數(shù)字化轉(zhuǎn)型:<b class='flag-5'>虹</b><b class='flag-5'>科</b>owa5X如何贏得日立Wenco信任?

    動態(tài) | 2025年10月精彩回顧

    2025年10月精彩速覽——出席2025上海國際嵌入式會議并發(fā)表演講;自研HK-CoreTest車載總線測試軟件首發(fā)上線;多場技術(shù)直播圓滿收官...下面讓我們一起回顧10月的
    的頭像 發(fā)表于 11-01 09:02 ?1144次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>動態(tài) | 2025年10月精彩回顧

    亮相2025嵌入式會議 | 解讀CAN XL與TSN如何驅(qū)動下一代E/E架構(gòu)創(chuàng)新

    亮相2025上海國際嵌入式會議近日,2025上海國際嵌入式會議「汽車電子電氣架構(gòu)」分論壇在上海世博展覽館圓滿落幕。作為聚焦智能汽車技術(shù)升級的核心交流平臺,本次論壇圍繞集中式E/E架
    的頭像 發(fā)表于 10-21 17:32 ?1417次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>亮相2025<b class='flag-5'>嵌入式</b>會議 | 解讀CAN XL與TSN如何驅(qū)動下一代E/E架構(gòu)創(chuàng)新

    LuatOS腳本開發(fā)入門:嵌入式運行框架全解析!

    想搞懂LuatOS如何運行Lua腳本?本文深入剖析其嵌入式運行框架,涵蓋虛擬機加載、任務(wù)協(xié)程、系統(tǒng)初始化等關(guān)鍵環(huán)節(jié),適合初學者。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS
    的頭像 發(fā)表于 09-26 17:45 ?474次閱讀
    LuatOS腳本開發(fā)入門:<b class='flag-5'>嵌入式</b>運行<b class='flag-5'>框架</b>全解析!

    嵌入式開發(fā)新選擇:LuatOS腳本框架入門教程

    LuatOS正成為嵌入式開發(fā)的新趨勢!本教程帶你從基礎(chǔ)入手,全面了解其基于Lua的腳本開發(fā)模式與輕量級運行框架。 一、LuatOS 編程起步 1.1 底層固件怎么啟動 LuatOS 腳本
    的頭像 發(fā)表于 09-26 17:34 ?580次閱讀
    <b class='flag-5'>嵌入式</b>開發(fā)新選擇:LuatOS腳本<b class='flag-5'>框架</b>入門教程

    廣州郵嵌入式通信電源系統(tǒng):提升通信設(shè)備穩(wěn)定性與效率的關(guān)鍵

    今天的信息化社會,嵌入式通信電源系統(tǒng)已經(jīng)成為許多通信設(shè)備的核心組成部分。特別是廣州郵嵌入式通信電源系統(tǒng)不僅確保了設(shè)備的穩(wěn)定運行,還極
    的頭像 發(fā)表于 08-30 11:01 ?611次閱讀
    廣州郵<b class='flag-5'>科</b><b class='flag-5'>嵌入式</b>通信電源系統(tǒng):提升通信設(shè)備穩(wěn)定性與效率的關(guān)鍵

    科技Arduino開發(fā)資源重大更新

    Silicon Labs (芯科技)近期于在線技術(shù)社群中發(fā)布了面向Arduino Core和Matter庫的重大更新,帶來了兩個關(guān)鍵突破:全面支持Matter 1.4標準,以及人工智
    的頭像 發(fā)表于 08-20 15:51 ?903次閱讀

    新聞 | 再獲行業(yè)認可!IO-Link模塊榮獲維科杯·OFweek 2025工業(yè)自動化「優(yōu)秀產(chǎn)品獎」

    近日,備受業(yè)界矚目的「維科杯·OFweek2025中國工業(yè)自動化與數(shù)字化行業(yè)年度評選」中,IO-LinkOEM嵌入式開發(fā)模塊憑借技術(shù)創(chuàng)新與應(yīng)用價值,榮獲「優(yōu)秀產(chǎn)品獎」。頒獎理由
    的頭像 發(fā)表于 08-05 17:32 ?1172次閱讀
    <b class='flag-5'>虹</b><b class='flag-5'>科</b>新聞 | 再獲行業(yè)認可!<b class='flag-5'>虹</b><b class='flag-5'>科</b>IO-Link模塊榮獲維科杯·OFweek 2025工業(yè)自動化「優(yōu)秀產(chǎn)品獎」

    Python嵌入式系統(tǒng)中的應(yīng)用場景

    你想把你的職業(yè)生涯提升到一個新的水平?Python嵌入式系統(tǒng)中正在成為一股不可缺少的新力量。盡管傳統(tǒng)上嵌入式開發(fā)更多地依賴于C和C++語言,Python的優(yōu)勢在于其簡潔的語法、豐富的庫和快速的開發(fā)周期,這使得它在某些
    的頭像 發(fā)表于 03-19 14:10 ?1491次閱讀