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

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

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

峰會回顧第12期 | Wasm軟件生態(tài)系統(tǒng)安全分析

OpenHarmony TSC ? 來源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2023-06-07 08:40 ? 次閱讀

演講嘉賓 | 王浩宇

回顧整理 | 廖 濤

排版校對 | 李萍萍

e4814990-04cb-11ee-9c1d-dac502259ad0.png

嘉賓簡介

王浩宇,華中科技大學(xué)教授,博士生導(dǎo)師,華中科技大學(xué)OpenHarmony技術(shù)俱樂部主任。研究關(guān)注于新興軟件系統(tǒng)中的安全、隱私和可靠性問題,近五年發(fā)表CCF A類和CSRankings頂會論文近70篇,在軟件安全和系統(tǒng)測量領(lǐng)域的頂會論文成果在國內(nèi)名列前茅。

內(nèi)容來源

第一屆開放原子開源基金會OpenHarmony技術(shù)峰會——開發(fā)者工具分論壇

正 文 內(nèi) 容

WebAssembly(Wasm)是W3C標準化組織制定的一種高效、底層、可移植的字節(jié)碼格式。目前,Wasm越來越多地用于瀏覽器、無服務(wù)器計算、跨平臺容器和區(qū)塊鏈DApp等場景。Wasm與OpenHarmony生態(tài)能夠有哪些碰撞呢?華中科技大學(xué)網(wǎng)絡(luò)安全學(xué)院王浩宇教授在第一屆OpenHarmony技術(shù)峰會上,分享了當(dāng)前在Wasm安全領(lǐng)域所做的探索,并展望了Wasm與OpenHarmony結(jié)合的新方向。

e4b0ea1a-04cb-11ee-9c1d-dac502259ad0.png

01?

Wasm軟件生態(tài)系統(tǒng)介紹

目前,如C、C++、Rust、Go、Java、C#等幾乎所有主流高級語言都可以被編譯到Wasm,所有的主流瀏覽器也均支持Wasm。此外業(yè)界也實現(xiàn)了很多獨立的Wasm虛擬機(運行時),支持解釋器、AOT、JIT等模式。

e4bc9b9e-04cb-11ee-9c1d-dac502259ad0.png

WebAssembly (Wasm) 及其運行環(huán)境

Wasm的執(zhí)行架構(gòu)與設(shè)計特點有:

  • 類型安全的棧指令:線性時間類型檢查算法,完全確定棧上值的數(shù)量和類型;

  • 結(jié)構(gòu)化的控制流指令:內(nèi)部指令僅能根據(jù)嵌套結(jié)構(gòu)跳轉(zhuǎn),簡化了編譯器實現(xiàn);

  • 可拓展的線性內(nèi)存:一頁為64KB,模塊中指定初始內(nèi)存頁和最大內(nèi)存頁數(shù)量,運行時可動態(tài)增長;函數(shù)調(diào)用棧,返回地址等重要數(shù)據(jù)由外部運行時維護,保證了安全性;

  • 指令和數(shù)據(jù)完全分離:函數(shù)“地址”通過下標表示,非直接跳轉(zhuǎn)通過跳轉(zhuǎn)表實現(xiàn)。

Wasm的應(yīng)用前景十分廣闊。例如,Wasm能夠支持高效的Web計算,因此基于Wasm能夠?qū)崿F(xiàn)大型應(yīng)用在瀏覽器中運行;Wasm也支持跨平臺容器技術(shù),適用于嵌入式、可信計算以及云計算等場景。此外,Wasm在Web 3.0/區(qū)塊鏈中的DApp和智能合約等領(lǐng)域也被應(yīng)用廣泛。

Wasm多語言、跨平臺以及高性能的特性,使其非常契合OpenHarmony面向萬物互聯(lián)新場景的開源生態(tài),在移動設(shè)備上應(yīng)用前景廣泛。目前,WasmEdge開源項?維護者Michael Yuan等人已經(jīng)發(fā)起了OpenHarmony Wasm-SIG提案,致?于宣傳、實施、推?Wasm與OpenHarmony的集成,在OpenHarmony終端設(shè)備上可以安全高效的運行第三方開發(fā)者用 C、C++、Rust 等語言編寫的 Wasm 程序,有利于擴大 OpenHarmony生態(tài)的開發(fā)者群體。

02?

Wasm安全及相關(guān)研究

Wasm生態(tài)中也有很多安全問題得到了學(xué)術(shù)界的重視,包括前端編譯器安全,代碼移植安全,Wasm二進制安全,Wasm相關(guān)的惡意應(yīng)用,Wasm可信執(zhí)行環(huán)境等等。

  • 代碼內(nèi)存安全:由于Wasm生態(tài)還較不成熟,在傳統(tǒng)二進制中已經(jīng)有成熟防御措施的漏洞仍然能夠被利用。例如,由于缺乏stack canary機制,攻擊者可以輕松利用棧溢出漏洞;Wasm也缺乏相關(guān)的堆保護機制等。

  • 程序移植安全:大量的現(xiàn)有程序可以被“直接”編譯到Wasm,但可能會引入bug或安全問題;移植會導(dǎo)致代碼行為(如指針大小、內(nèi)存能力、環(huán)境變量等)不同;移植時處理不當(dāng)可能導(dǎo)致不同的堆內(nèi)存管理實現(xiàn)困難、缺乏安全措施等安全問題。

  • 惡意Wasm程序:目前很大一部分Wasm程序被用于惡意挖礦等行為,Wasm也可以作為混淆或者加殼方式被惡意軟件利用。

e510d40c-04cb-11ee-9c1d-dac502259ad0.png

Wasm (安全) 問題及學(xué)術(shù)界相關(guān)研究

然而,目前Wasm安全相關(guān)研究還處于初級階段。一方面,Wasm不斷引入的新特性與新場景持續(xù)帶來新的安全問題和挑戰(zhàn);另一方面,Wasm幾乎沒有通用的程序分析框架,大部分工具都是針對特定平臺的Wasm二進制分析(只支持部分指令集、只對平臺相關(guān)庫函數(shù)做建模),無法分析通用 Wasm 二進制;此外,Wasm的二進制反編譯器還處于初期階段,Wasm虛擬機和編譯器不夠成熟,Wasm代碼混淆以及代碼保護技術(shù)還較為欠缺等。

針對上述安全問題,王浩宇教授所帶領(lǐng)的學(xué)術(shù)團隊在Wasm二進制翻譯、Wasm程序分析、Wasm運行時/編譯器bug檢測等方面做了安全增強相關(guān)工作。例如,在區(qū)塊鏈智能合約場景下,實現(xiàn)了從EVM字節(jié)碼到eWasm字節(jié)碼的安全Wasm二進制翻譯;提出了Wasm符號執(zhí)行框架EOSafe、Wasm模糊測試框架WASAI、Wasm通用二進制重寫框架BREWasm、Wasm二進制混淆工具Chaos等分析技術(shù)。此外,王浩宇教授團隊提出了針對Wasm運行時的模糊測試技術(shù),已經(jīng)在wasmer,wasmtime,WAMR,wasm3,Wasm Edge等運行時中發(fā)現(xiàn)了數(shù)十個代碼缺陷。

e557f454-04cb-11ee-9c1d-dac502259ad0.png

王浩宇教授的團隊Wasm相關(guān)研究工作

03?

Wasm二進制重寫及其安全應(yīng)用

在本次峰會的開發(fā)者工具分論壇,王浩宇教授介紹了其團隊提出的一個通用的Wasm二進制重寫工具。Wasm二進制重寫具有無需源碼、跨平臺和跨語言等優(yōu)點,其應(yīng)用場景包括Wasm程序修復(fù)、測試用例生成、代碼插樁、輔助動態(tài)分析、Wasm代碼漏洞檢測、Wasm模糊測試、Wasm二進制保護與混淆等。目前,學(xué)術(shù)界已有的Wasm二進制重寫和插樁的研究大都只局限于簡單的指令級別修改,比如在某一指令前后添加一些指令,對控制流的修改也僅局限于某一特定模式的更改等。然而,一個通用的Wasm二進制重寫框架是如上眾多Wasm研究工作的基礎(chǔ)。

實現(xiàn)一個通用的Wasm二進制重寫框架存在一些挑戰(zhàn)。

(1)Wasm不同段之間的耦合性:Wasm中,一個函數(shù)的所有信息,包括函數(shù)簽名,函數(shù)指令等內(nèi)容分布在不同的Wasm段中,這導(dǎo)致對單獨一個段的重寫不足以實現(xiàn)Wasm中的一個微小功能。而且開發(fā)者需要熟悉多個段的不同的數(shù)據(jù)結(jié)構(gòu)才能實現(xiàn)對Wasm中某一功能的重寫;

(2)結(jié)構(gòu)化控制流與控制流修改:Wasm沒有g(shù)oto-like的跳轉(zhuǎn)指令,且只有將代碼塊進行嵌套才能添加跳轉(zhuǎn)指令,這對實現(xiàn)靈活的控制流重寫帶來了較大挑戰(zhàn)

(3)Wasm棧平衡校驗和修復(fù):一個正確的Wasm二進制需要滿足靜態(tài)校驗規(guī)則。例如,一個函數(shù)的所有信息都靠函數(shù)的index索引,且函數(shù)的指令需要滿足棧平衡。在對Wasm二進制重寫后,如果出現(xiàn)了index之間的索引不一致或某一函數(shù)指令沒有棧平衡等靜態(tài)校驗問題,則會生成錯誤的Wasm二進制。

王浩宇教授團隊針對上述挑戰(zhàn),分別提出了相應(yīng)的解決方案。針對挑戰(zhàn)(1),除了提供細粒度的對每個段中數(shù)據(jù)結(jié)構(gòu)的重寫功能外,還將各個段的結(jié)構(gòu)抽象成一組語義并提供大量針對語義的重寫API,使開發(fā)者不需要關(guān)心底層對各個段的修改邏輯。

針對挑戰(zhàn)(2),提出控制流結(jié)構(gòu)原子化的方法,在加載Wasm模塊時,對指令進行分割和構(gòu)建代碼塊(原子化),利用原子化的控制流結(jié)構(gòu)可以組合構(gòu)建更復(fù)雜的控制流結(jié)構(gòu),并在修改結(jié)束后,將基于原子化代碼塊的控制流結(jié)構(gòu)轉(zhuǎn)換回Wasm指令。

針對挑戰(zhàn)(3),實現(xiàn)兩個輔助模塊indices-fixer和stack-calculator以修復(fù)索引錯誤和棧平衡。

e564dec6-04cb-11ee-9c1d-dac502259ad0.png

BREWasm框架

基于上述解決方案,王浩宇教授帶領(lǐng)的團隊提出了一個通用的Wasm二進制重寫框架——BREWasm。該框架主要包括以下5部分功能:

  • Wasm Parser:給定一套簡易DSL,將Wasm段和數(shù)據(jù)結(jié)構(gòu)抽象,并解析為一個可操作對象的列表;

  • Section Rewriter:基于Wasm段和數(shù)據(jù)結(jié)構(gòu)抽象,實現(xiàn)細粒度段重寫API;

  • Semantics Rewriter:將段重寫API進行組合,實現(xiàn)一組語義更為豐富的Semantic API;

  • Control Flow Reconstructor:實現(xiàn)了一組能夠任意靈活修改控制流且無需關(guān)注棧平衡的Control Flow API;

  • Wasm Encoder:將重寫后的可操作對象列表按照段和數(shù)據(jù)結(jié)構(gòu)抽象重新編碼為合法的 Wasm 二進制。

e5888448-04cb-11ee-9c1d-dac502259ad0.png

Wasm控制流原子化示意以及BREWasm中提供的部分Control Flow API

BREWasm能夠應(yīng)用在Wasm代碼混淆、Wasm程序棧溢出保護、Wasm程序插樁等場景。例如,在Wasm二進制混淆上,BREWasm采取切分原有Wasm代碼塊來獲得控制流重寫的基本元素,并將這些元素構(gòu)成一個switch-case的控制流結(jié)構(gòu),再將其插入到while控制流中,可以僅用幾行代碼實現(xiàn)對任意Wasm程序的控制流平坦化混淆;在Wasm程序棧溢出保護上,僅調(diào)用BREWasm提供的幾個API,即可實現(xiàn)對可能存在棧溢出問題的函數(shù)進行hook,在函數(shù)被調(diào)用前提前在棧上插入canary,在函數(shù)執(zhí)行完成后去檢測canary的值是否發(fā)生改變,來確定函數(shù)執(zhí)行過程中是否出現(xiàn)了棧溢出問題;在Wasm程序插樁上,BREWasm能夠?qū)asm二進制插樁,實現(xiàn)動態(tài)污點分析,調(diào)用圖分析,內(nèi)存訪問分析,惡意挖礦檢測等功能,也能夠給定插樁規(guī)則,對每個Wasm指令進行自動化插樁,為Wasm 二進制導(dǎo)入外部實現(xiàn)的分析API。此外,BREWasm還能夠非常方便地應(yīng)用于Wasm代碼變換、Wasm程序修復(fù)以及Wasm模糊測試等場景。

e594ba56-04cb-11ee-9c1d-dac502259ad0.png

BREWasm對任意Wasm程序?qū)崿F(xiàn)控制流平坦化示例

04?

總結(jié)與展望

跨語言、跨平臺、跨場景的開源軟件生態(tài)是發(fā)展趨勢,也引入眾多新的攻擊面。Wasm的特性使其非常契合OpenHarmony面向萬物互聯(lián)新場景的開源生態(tài),而其中的安全問題也不可忽視。期待學(xué)術(shù)界和工業(yè)界一起,為萬物互聯(lián)的開源生態(tài)添磚加瓦,持續(xù)為新興軟件安全賦能!

e5cbd220-04cb-11ee-9c1d-dac502259ad0.png

Wasm未來研究展望

E N D

點擊下方閱讀原文獲取演講PPT。

關(guān)注我們,獲取更多精彩。

審核編輯黃宇


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

    關(guān)注

    25

    文章

    3641

    瀏覽量

    16061
收藏 人收藏

    評論

    相關(guān)推薦

    2024 RISC-V 中國峰會:華秋電子助力RISC-V生態(tài)

    。 (華秋電子<電子發(fā)燒友>平臺社區(qū)負責(zé)人劉勇對RISC-V生態(tài)系統(tǒng)介紹) 在峰會現(xiàn)場,劉勇分享了華秋電子在RISC-V芯片創(chuàng)新應(yīng)用與生態(tài)上的一些思考及布局,打造
    發(fā)表于 08-26 16:46

    第二屆大會回顧22 軟件缺陷漏洞分析

    演講嘉賓 | 梁洪亮 回顧整理 | 廖? ?濤 排版校對 | 宋夕明 嘉賓介紹 OS安全分論壇? 梁洪亮, 博士,北京郵電大學(xué)副教授,博士生導(dǎo)師。研究興趣為可信軟件與智能系統(tǒng)。 視頻
    的頭像 發(fā)表于 06-27 08:42 ?266次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>22<b class='flag-5'>期</b>  <b class='flag-5'>軟件</b>缺陷漏洞<b class='flag-5'>分析</b>

    蘋果硬件生態(tài)系統(tǒng)豐富,用戶黏性大

     蘋果以其豐富多元的硬件生態(tài)系統(tǒng),涵蓋了從 iPhone 至 Mac 電腦等多種設(shè)備,每個設(shè)備都有其獨特的用戶群體。
    的頭像 發(fā)表于 04-18 11:03 ?399次閱讀

    淺談AMD Ryzen AI PC生態(tài)系統(tǒng)

    AMD與OEM合作伙伴聯(lián)想和華碩,以及生態(tài)系統(tǒng)合作伙伴百川智能、有道、游戲加加、生數(shù)、始智AI等共同努力,共慶龍年,并在大中華區(qū)擴展了Ryzen AI生態(tài)系統(tǒng)。
    的頭像 發(fā)表于 04-11 11:05 ?702次閱讀

    萊迪思舉辦2024萊迪思技術(shù)峰會展示其強大的FPGA合作生態(tài)系統(tǒng)

    萊迪思半導(dǎo)體近日在上海舉辦的2024年萊迪思技術(shù)峰會上展示了其強大且不斷增長的全球生態(tài)系統(tǒng),該生態(tài)系統(tǒng)由客戶、IP和參考平臺合作伙伴以及致力于推動FPGA創(chuàng)新的開發(fā)人員組成。
    的頭像 發(fā)表于 03-14 15:10 ?514次閱讀

    Meta欲打造巨型AI覆蓋視頻推薦生態(tài)系統(tǒng)

    Meta正計劃打造一款巨型AI系統(tǒng),以全面覆蓋其視頻推薦生態(tài)系統(tǒng),為旗下產(chǎn)品提供統(tǒng)一的視頻推薦引擎。
    的頭像 發(fā)表于 03-11 11:14 ?617次閱讀

    第二屆大會回顧9 | 從操作系統(tǒng)視角看大模型數(shù)據(jù)安全挑戰(zhàn)

    演講嘉賓 | 李? ?屹 回顧整理 | 廖? ?濤 排版校對 | 李萍萍 嘉賓介紹 ?OS安全分論壇? 李屹 ,華為OS內(nèi)核實驗室安全技術(shù)專家與助理科學(xué)家。主要研究領(lǐng)域包括操作系統(tǒng)安全
    的頭像 發(fā)表于 02-22 10:36 ?498次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>9<b class='flag-5'>期</b> | 從操作<b class='flag-5'>系統(tǒng)</b>視角看大模型數(shù)據(jù)<b class='flag-5'>安全</b>挑戰(zhàn)

    Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案介紹

    電子發(fā)燒友網(wǎng)站提供《Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案介紹.pdf》資料免費下載
    發(fā)表于 02-21 09:38 ?0次下載
    Renesas Ready<b class='flag-5'>生態(tài)系統(tǒng)</b>合作伙伴解決方案介紹

    RA生態(tài)系統(tǒng)合作伙伴解決方案提供卓越的平面航向和6軸IMU性能

    電子發(fā)燒友網(wǎng)站提供《RA生態(tài)系統(tǒng)合作伙伴解決方案提供卓越的平面航向和6軸IMU性能.pdf》資料免費下載
    發(fā)表于 02-19 09:46 ?0次下載
    RA<b class='flag-5'>生態(tài)系統(tǒng)</b>合作伙伴解決方案提供卓越的平面航向和6軸IMU性能

    Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案

    電子發(fā)燒友網(wǎng)站提供《Renesas Ready生態(tài)系統(tǒng)合作伙伴解決方案.pdf》資料免費下載
    發(fā)表于 01-14 11:04 ?0次下載
    Renesas Ready<b class='flag-5'>生態(tài)系統(tǒng)</b>合作伙伴解決方案

    芯原攜手趣戴科技擴展手表GUI生態(tài)系統(tǒng),以提升用戶體驗

    芯原股份今日宣布專注于提供圖形用戶界面(GUI)軟件服務(wù)的趣戴科技(QDay Technology)已加入其手表GUI生態(tài)系統(tǒng),共同開發(fā)適用于各種應(yīng)用的智能手表GUI解決方案。 芯原的低功耗且功能
    的頭像 發(fā)表于 01-10 15:14 ?375次閱讀

    芯原攜手趣戴科技擴展手表GUI生態(tài)系統(tǒng)

    2024年1月9日,美國拉斯維加斯——芯原股份 (芯原,股票代碼:688521.SH) 今日宣布專注于提供圖形用戶界面 (GUI) 軟件服務(wù)的趣戴科技 (QDay Technology) 已加入其手表GUI生態(tài)系統(tǒng),共同開發(fā)適用于各種應(yīng)用的智能手表GUI解決方案。
    的頭像 發(fā)表于 01-10 09:06 ?664次閱讀

    三星攜手紅帽進一步擴大CXL存儲生態(tài)系統(tǒng)

    2023年12月27日——三星宣布,與開源軟件提供商紅帽(Red Hat)攜手,首次成功在真實用戶環(huán)境中驗證了Compute Express Link(CXL)內(nèi)存技術(shù)的運行,這將進一步擴大三星的 CXL生態(tài)系統(tǒng)
    的頭像 發(fā)表于 12-27 10:34 ?547次閱讀

    RA生態(tài)系統(tǒng)合作伙伴解決方案-Aizip缺陷檢測

    電子發(fā)燒友網(wǎng)站提供《RA生態(tài)系統(tǒng)合作伙伴解決方案-Aizip缺陷檢測.pdf》資料免費下載
    發(fā)表于 12-21 09:55 ?0次下載
    RA<b class='flag-5'>生態(tài)系統(tǒng)</b>合作伙伴解決方案-Aizip缺陷檢測

    RadioVerse:技術(shù)和無線電設(shè)計生態(tài)系統(tǒng)

    電子發(fā)燒友網(wǎng)站提供《RadioVerse:技術(shù)和無線電設(shè)計生態(tài)系統(tǒng).pdf》資料免費下載
    發(fā)表于 11-24 11:43 ?0次下載
    RadioVerse:技術(shù)和無線電設(shè)計<b class='flag-5'>生態(tài)系統(tǒng)</b>