[發明專利]一種云平臺中檢測DPDK應用程序內存越界訪問的方法有效
| 申請號: | 201911267320.2 | 申請日: | 2019-12-11 |
| 公開(公告)號: | CN111143199B | 公開(公告)日: | 2022-08-05 |
| 發明(設計)人: | 段炯;胡衛文 | 申請(專利權)人: | 烽火通信科技股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 武漢東喻專利代理事務所(普通合伙) 42224 | 代理人: | 李佑宏 |
| 地址: | 430000 湖*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 平臺 檢測 dpdk 應用程序 內存 越界 訪問 方法 | ||
本發明公開了一種云平臺中檢測DPDK應用程序內存越界訪問的方法,包括如下步驟:在DPDK鏈接庫的內存訪問指令中插入檢測代碼,以實現訪問內存前核實該內存狀態是否可訪問;虛擬機調用DPDK鏈接庫對目標應用程序進行初始化時,通過截獲DPDK初始化函數獲取初始化的內存虛擬地址范圍,利用ASAN的影子內存區標記所述內存虛擬地址范圍;運行內存訪問指令時,通過上述檢測代碼標記檢測內存是否標記于ASAN的影子內存區,內存已標記時不可訪問,從而解決DPDK應用場景下無法通過ASAN來檢測出內存問題。
技術領域
本發明屬于云計算領域,具體涉及一種云平臺中檢測DPDK應用程序內存越界訪問的方法。
背景技術
典型的LLVM編譯器包括三大部分:前端(和實際編程語言相關),后端(和實際芯片或硬件平臺相關)以及中間語言IR(Intermediate Representation)。一般來說,編譯器會將源語言翻譯為一種“中間語言(IR)”,之后再由中間語言,利用后端程序和設備翻譯為目標平臺的匯編語言。不同編譯器的中間語言IR是不一樣的,IR集中體現了編譯器的主要特征——算法,優化方式,匯編流程等等。在LLVM的架構中,Pass的作用就是優化LLVM IR,Pass作用于LLVM IR,用來處理IR,分析IR,尋找優化的機會并修改IR,從而產生優化的代碼。
DPDK是一個linux基金會的開源項目。是在數據平面應用中為快速的數據包處理提供一個簡單而完善的架構,并通過大頁技術使用了自身的一套內存管理機制。因此DPDK對提高網絡通信的效率起著至關重要的作用。C語言是一種非內存安全的系統編程語言,常見的內存問題就是內存越界,其危害非常大,容易產生安全漏洞,嚴重的時候甚至影響系統的穩定運行。為了防止這些問題的發生,在通過glibc編寫的軟件場景下,可以在軟件編譯的時候,通過asan來獲取標準的glibc的內存管理函數來進行內存監控。同樣類似的可以運用valgrind來檢測內存。但是由于valgrind的依賴太多,同時高版本gcc支持asan內存檢測,與valgrind相比asan消耗非常低,甚至可以直接在生產環境中啟用asan。Asan由于使用了編譯時檢測,所以速度更快。
在云平臺中的虛擬機之間通信流量一般使用軟轉發,由于軟轉發遠達不到硬件的吞吐量和時延等。為了提高軟轉發的高性能,所以在虛擬交換機程序上通過調用DPDK鏈接庫來實現高性能轉發。由于調用了DPDK鏈接的程序其內存管理由DPDK托管,但是如果虛擬交換程序出現內存污染問題,由于使用了DPDK大頁內存,正常情況下的由于asan是檢測標準的glibc函數,導致DPDK場景無法通過ASAN來檢測出內存問題。
發明內容
針對現有技術的以上缺陷或改進需求,本發明提供了一種云平臺中檢測DPDK應用程序內存越界訪問的方法,其通過在DPDK鏈接庫的內存訪問指令中插入檢測代碼,通過截獲DPDK初始化函數獲取初始化的內存虛擬地址范圍,利用ASAN的影子內存區標記所述內存虛擬地址范圍;運行內存訪問指令時,通過上述檢測代碼標記檢測內存是否標記于ASAN的影子內存區,從而解決DPDK應用場景下無法通過ASAN來檢測出內存問題。
為實現上述目的,按照本發明的一個方面,提供了一種云平臺中檢測DPDK應用程序內存越界訪問的方法,包括如下步驟:
在DPDK鏈接庫的內存訪問指令中插入檢測代碼,以實現訪問內存前核實該內存狀態是否可訪問;
虛擬機調用DPDK鏈接庫對目標應用程序進行初始化時,通過截獲DPDK初始化函數獲取初始化的內存虛擬地址范圍,利用ASAN的影子內存區標記所述內存虛擬地址范圍;
運行內存訪問指令時,通過上述檢測代碼標記檢測內存是否標記于ASAN的影子內存區,內存已標記時不可訪問。
作為本發明的進一步改進,在DPDK鏈接庫的內存訪問指令中插入檢測代碼具體為:
在目標應用程序的代碼編譯階段利用編譯器中間語言對ASAN PASS進行優化。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于烽火通信科技股份有限公司,未經烽火通信科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911267320.2/2.html,轉載請聲明來源鉆瓜專利網。





