吴忠躺衫网络科技有限公司

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

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

3天內不再提示

什么是熱補丁技術

openEuler ? 來源:openEuler ? 作者:openEuler ? 2022-07-08 11:22 ? 次閱讀

LibcarePlus 用戶態熱補丁作為 openEuler 社區關鍵技術,受到了廣大開發者的關注和討論。openEuler 社區與天翼云基礎架構技術團隊通力合作,共同打造了全面支持 aarch64 及 x86 平臺的 LibcarePlus 熱補丁功能,可以應用于 CVE 漏洞修復,也可應用于不中斷應用服務的緊急 bug 修復。下面我們就來聊聊什么是熱補丁技術。

熱補丁技術背景

當運行的程序存在漏洞的時候,我們一般有以下幾種解決辦法:

替換最新的包含修復補丁的 OS 版本,在有主備倒換能力的組網環境上,可以先將當前運行的程序遷移到備區,待主區升級完后,再將程序遷移到主區;

替換程序的 rpm 包,然后重新運行程序(注意此時需要考慮依賴包的兼容性),對于具備熱替換能力的程序,則可以利用熱替換能力,實現程序運行內容的替換;

直接給運行的程序內容打補丁,替換有問題的代碼,實現程序漏洞的修復;

從補丁粒度上來說,上述技術漏洞修復粒度是從大到小變化的:第一個是系統級的,主要涉及的技術有熱遷移技術;第二個是 rpm 包級的,主要涉及的技術有熱替換;第三個是運行程序級的,主要涉及的技術有熱補丁。從業務中斷時長來說,上述技術的業務中斷時長也是從大到小變化的:第一種技術業務中斷時間一般在分鐘級,且一般涉及整個系統業務的主備倒換,升級周期最長,一般需要幾個月的升級窗口;第二種技術業務中斷時間一般在百毫秒級,且該技術一般不通用,需要侵入式修改和適配大量業務代碼,升級周期相對比較短,一般僅需要一個月的升級窗口;第三種技術業務中斷時間則一般在毫秒級,該技術比較通用,不需要侵入式修改和適配業務代碼,僅需要適配一些通用代碼,適配工作量較小,升級周期相對比較短,一般僅需要一個月的升級窗口。

通過上述分析,我們大概能總結出熱補丁的如下幾個優點:一是熱補丁能夠在不影響現網業務的情況下,完成程序漏洞的修復;二是熱補丁適用于需要快速響應的市場環境,將驗證工作從版本驗證簡化為補丁驗證。總結一句話:熱補丁短小精悍,適合使用在需要快速響應的場景中。

今天,我們就來簡單介紹一下,集萬千寵愛于一身的 LibcarePlus 熱補丁技術。

LibcarePlus 熱補丁技術的基本原理

LibcarePlus 熱補丁技術是基于上游社區 libcare 獨立發展的分支,當前由 openEuler 社區進行自主孵化。相比于上游社區的 libcare,LibcarePlus 支持主流的 x86_64 架構和 aarch64 架構,全面支持 openEuler Qemu 組件,支持函數級過濾,支持增量補丁,支持補丁文件解析等。

我們以 LibcarePlus Qemu 熱補丁技術為例,進行相關介紹。熱補丁的整體架構如下:

c00289be-fde5-11ec-ba43-dac502259ad0.png

LibcarePlus 熱補丁技術主要包括:熱補丁制作、補丁管理和補丁加/卸載。

熱補丁制作

LibcarePlus 制作熱補丁的基本原理是基于匯編級指令比較技術。LibcarePlus 通過比較基線代碼生成的匯編中間文件和打了補丁的基線代碼生成的匯編中間文件,找到兩者之間的差異部分;再基于差異部分,去除冗余段和修復重定位信息,最終得到熱補丁 kpatch 文件。在分析匯編差異的前,LibcarePlus 會基于一些關鍵信息將匯編內容分成函數塊和變量塊,然后通過比較函數塊和變量塊之間的差異,找到差異的函數和變量。補丁制作的大概流程如下圖所示:

c034497c-fde5-11ec-ba43-dac502259ad0.png

Qemu 熱補丁管理

依托于 libvirt 組件對 Qemu 的管理,openEuler 同樣將 Qemu 熱補丁的管理集成到 libvirt 中。通過與虛擬機的生命周期交互,libvirt 能夠更完美地尋找到 Qemu 補丁加載的最佳時機,完成對 Qemu 組件熱補丁的管理。

熱補丁加載/卸載

熱補丁加/卸載的基本原理如下圖所示:

c0551076-fde5-11ec-ba43-dac502259ad0.png

LibcarePlus 熱補丁加/卸載基于內核提供的 ptrace 能力。通過 ptrace 目標進程,將目標進程短暫凍結,隨后進行補丁加載環境的安全校驗,在確保補丁加載環境安全的情況下,以 mmap 映射的方式,將適配好的補丁文件插入到目標進程的內存空洞中。在執行完上述步驟后,通過修改缺陷函數的前面五個字節的代碼,讓缺陷函數在被調用時跳轉到新函數的地址中,從而使熱補丁生效。最后,解凍目標進程,完成熱補丁的加載。

在熱補丁加載過程中,缺陷函數被替換的前五個字節代碼會保存在目標進程的熱補丁的管理結構中,將這五個字節代碼重新寫回原地址處,可使熱補丁回滾到原來狀態,從而實現了熱補丁卸載。

原文標題:LibcarePlus 用戶態熱補丁技術那些事

文章出處:【微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

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

    關注

    30

    文章

    4827

    瀏覽量

    69054
  • BUG
    BUG
    +關注

    關注

    0

    文章

    155

    瀏覽量

    15723
  • 補丁
    +關注

    關注

    0

    文章

    27

    瀏覽量

    8577
  • openEuler
    +關注

    關注

    2

    文章

    319

    瀏覽量

    5939

原文標題:LibcarePlus 用戶態熱補丁技術那些事

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    南亞科技與補丁科技攜手開發定制超高帶寬內存

    Memory)的開發。 此次合作將充分融合南亞科技在10nm級DRAM技術領域的深厚積累,以及補丁科技在定制內存產品設計方面的卓越能力。雙方將強強聯手,共同打造出針對AI與邊緣應用需求的高附加值、高性能、低功耗的定制超高帶寬內存解決方案。 這一戰略合作的達成,標志著南亞
    的頭像 發表于 12-20 14:28 ?235次閱讀

    OTA無線更新技術:一鍵升級系統,隨時暢享FLIR最新技術

    站在FLIR技術前沿,享受最新功能帶來的便捷與高效! 1先進的OTA技術 OTA(Over-the-Air)技術能讓您的FLIR熱像儀無線接收最新功能和固件更新。只需連接Wi-Fi,熱像儀就能自動查找并安裝新功能、安全
    的頭像 發表于 12-03 15:34 ?245次閱讀
    OTA無線更新<b class='flag-5'>技術</b>:一鍵升級系統,隨時暢享FLIR最新<b class='flag-5'>技術</b>!

    求助大佬們,裝了補丁的pads9.5,頁面還是有這種問題怎么辦?

    求助,裝了補丁的pads9.5,頁面還是有這種問題怎么辦?
    發表于 11-01 16:30

    TVP5150AM1補丁代碼下載指南

    電子發燒友網站提供《TVP5150AM1補丁代碼下載指南.pdf》資料免費下載
    發表于 09-30 14:11 ?0次下載
    TVP5150AM1<b class='flag-5'>補丁</b>代碼下載指南

    TVP5147M1補丁代碼下載指南

    電子發燒友網站提供《TVP5147M1補丁代碼下載指南.pdf》資料免費下載
    發表于 09-30 11:27 ?0次下載
    TVP5147M1<b class='flag-5'>補丁</b>代碼下載指南

    TVP5160補丁代碼下載指南

    電子發燒友網站提供《TVP5160補丁代碼下載指南.pdf》資料免費下載
    發表于 09-30 11:01 ?0次下載
    TVP5160<b class='flag-5'>補丁</b>代碼下載指南

    TVP5158補丁代碼下載指南

    電子發燒友網站提供《TVP5158補丁代碼下載指南.pdf》資料免費下載
    發表于 09-30 10:48 ?0次下載
    TVP5158<b class='flag-5'>補丁</b>代碼下載指南

    TVP5151補丁代碼下載指南

    電子發燒友網站提供《TVP5151補丁代碼下載指南.pdf》資料免費下載
    發表于 09-30 09:37 ?0次下載
    TVP5151<b class='flag-5'>補丁</b>代碼下載指南

    Intel:13/14代酷睿補丁幾乎無損性能!未來所有產品都安全

    快科技8月9日消息,Intel官方宣布,正在向各大OEM、ODM廠商發放0x129版本的微代碼補丁,解決在13/14代酷睿臺式機處理器平臺微代碼發送錯誤請求導致電壓升高繼而不穩定的問題,可顯著改善K
    的頭像 發表于 08-12 10:37 ?476次閱讀
    Intel:13/14代酷睿<b class='flag-5'>補丁</b>幾乎無損性能!未來所有產品都安全

    新手工程師必看:如何正確使用Android SDK補丁包?

    開源鴻蒙硬件方案領跑者觸覺智能本文內容適用于觸覺智能多數開發板的SDK補丁包的使用。這次給大家介紹的是觸覺智能的PurplePiOH鴻蒙開源主板,是華為Laval官方社區主薦的一款鴻蒙開發主板。該
    的頭像 發表于 07-23 18:00 ?423次閱讀
    新手工程師必看:如何正確使用Android SDK<b class='flag-5'>補丁</b>包?

    NONOS_SDK 1.5.4.1導致致命錯誤的補丁怎么處理?

    將 1.5.4.1 補丁文件應用到我的穩定 1.5.4 代碼庫后,閃爍我的eagle.flash.bin和eagle.irom0text.bin時,我的ESP8266模塊(ESP-12 或
    發表于 07-11 07:57

    微軟五月補丁修復61個安全漏洞,含3個零日漏洞

    值得注意的是,此次修復并不包含5月2日修復的2個微軟Edge漏洞以及5月10日修復的4個漏洞。此外,本月的“補丁星期二”活動還修復了3個零日漏洞,其中2個已被證實被黑客利用進行攻擊,另一個則是公開披露的。
    的頭像 發表于 05-15 14:45 ?771次閱讀

    微軟發布Linux內核Rust模塊優化補丁

    在此之前,Linux 內核中要想實現模塊初始化,必須先創建一個實例,再將其移至特定內存空間。然而,經過新補丁調整后,各模塊可直接在預設定好的內存地址上完成初始化工作。
    的頭像 發表于 04-02 15:11 ?511次閱讀

    請問如何給STM32MP157上Linux5.4.31打實時內核補丁

    我這邊想給STM32MP157芯片A7上面的Linux打實時內核補丁,從而運行一些對實時性要求較高的應用程序。我看到我的Linux內核版本是5.4.31的。然而,Linux內核官方網站上面找不到這個
    發表于 03-11 06:09

    LineageOS 18.1停更在即,后續更新將不再提供

    谷歌每年定期提供最新Android安全補丁,至2024年2月已發布適配安卓11的終極安全補丁。鑒于此種情況,基于安卓11的LineageOS 18.1版本不得不停更。
    的頭像 發表于 03-08 14:18 ?1412次閱讀
    骰子百家乐官网的玩法技巧和规则| 澳门百家乐怎样下注| 皇冠投注网站| 新锦江百家乐娱乐场| 百家乐官网双人操作分析仪| 大发888娱乐城客户端下载| 百家乐庄家的胜率| 百家乐官网赌博走势图| 战神线上娱乐| 威尼斯人娱乐网官网| 哪个百家乐投注平台信誉好| 百家乐官网多少钱| 百家乐官网会骗人吗| 全讯网博客| 玩百家乐技巧巧| 太阳城百家乐网上| 博彩百家乐官网字谜总汇| 太阳城百家乐官网出千技术 | 百家乐六手变化混合赢家打法| 哪里有百家乐官网游戏下载| 百家乐官网真人荷官| 百乐门娱乐| 德州扑克排名| 大发888 大发888娱乐城| 百家乐皇室百家乐的玩法技巧和规则 | 德州扑克的玩法| 最好的百家乐博彩网站| 澳门百家乐如何算牌| 百家乐U盘下载| 励骏会百家乐官网的玩法技巧和规则| 百家乐官网投注之对冲投注| 百家乐官网庄家提成| 鄯善县| 万山特区| 澳门百家乐论坛| 百家乐又称什么| 百家乐筹码托盘| 威尼斯人娱乐城信誉最好| 亚洲百家乐的玩法技巧和规则| 明升百家乐娱乐城| 百家乐比较好的网站|