[發(fā)明專利]棧幀地址隨機(jī)化方法及相關(guān)設(shè)備在審
| 申請?zhí)枺?/td> | 202010904467.4 | 申請日: | 2020-09-01 |
| 公開(公告)號: | CN112000484A | 公開(公告)日: | 2020-11-27 |
| 發(fā)明(設(shè)計)人: | 王艷偉;鄒仕洪;張廣偉;黃浩東 | 申請(專利權(quán))人: | 北京元心科技有限公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F21/52 |
| 代理公司: | 北京市立方律師事務(wù)所 11330 | 代理人: | 張筱寧 |
| 地址: | 100080 北京市海*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 地址 隨機(jī)化 方法 相關(guān) 設(shè)備 | ||
本申請?zhí)峁┝艘环N棧幀地址隨機(jī)化方法及相關(guān)設(shè)備,涉及信息安全技術(shù)領(lǐng)域;該方法包括:獲取進(jìn)程創(chuàng)建時分配的初始棧頂?shù)刂放c配置的隨機(jī)化范圍值;確定隨機(jī)化因子;基于初始棧頂?shù)刂贰㈦S機(jī)化范圍值與隨機(jī)化因子確定隨機(jī)化后的棧頂?shù)刂贰1旧暾埧蓱?yīng)用在嵌入式系統(tǒng)中實(shí)現(xiàn)進(jìn)程初始化時棧幀地址的隨機(jī)化。
技術(shù)領(lǐng)域
本申請涉及信息安全技術(shù)領(lǐng)域,具體而言,本申請涉及一種棧幀地址隨機(jī)化方法及相關(guān)設(shè)備。
背景技術(shù)
緩沖區(qū)溢出(buffer overflow),是針對程序設(shè)計的缺陷,向程序輸入使緩沖區(qū)溢出的內(nèi)容(通常是超過緩沖區(qū)能保存的最大數(shù)據(jù)量的數(shù)據(jù)),從而破壞程序運(yùn)行、在程序運(yùn)行中斷時獲取程序乃至系統(tǒng)的控制權(quán)。通過緩沖區(qū)溢出來攻擊操作系統(tǒng)的行為嚴(yán)重威脅著操作系統(tǒng)的安全,目前基于緩沖區(qū)溢出進(jìn)行攻擊主要有兩類:一是在程序的地址空間里植入惡意代碼并使之運(yùn)行;二是修改棧幀返回地址的內(nèi)容,通過返回庫函數(shù)(return-to-library)指向不安全的庫函數(shù)并運(yùn)行。
現(xiàn)有技術(shù)中,針對上述第一類攻擊,在硬件技術(shù)中,通過使被攻擊程序的數(shù)據(jù)段地址空間不可執(zhí)行,從而使得攻擊者無法執(zhí)行被植入攻擊程序輸入緩沖區(qū)的惡意代碼;在軟件技術(shù)中,利用GCC編譯器的stack guard棧保護(hù)檢測棧緩沖區(qū)溢出。針對第二類攻擊,采用地址空間布局隨機(jī)化(Address space layout randomization,ASLR)技術(shù),對共享庫、可執(zhí)行程序、堆、棧等進(jìn)行隨機(jī),增加攻擊者猜測庫函數(shù)地址的難度。
嵌入式系統(tǒng)相對于其他大型系統(tǒng)而言存在以下問題:一是嵌入式微控制器(Micro-controller Unit,MCU)沒有硬件的內(nèi)存管理單元(Memory Manage Unite,MMU),代碼均運(yùn)行在物理地址上,地址空間不能隨機(jī)化;二是嵌入式系統(tǒng)應(yīng)用程序和操作系統(tǒng)一起編譯成一個單一的鏡像,沒有共享庫,運(yùn)行時鏡像加載到固定的地址上,除了棧,其他均不能進(jìn)行隨機(jī)化。然而,現(xiàn)有技術(shù)中并未提供有效地在嵌入式系統(tǒng)中引入棧幀地址隨機(jī)化的技術(shù)方案。
發(fā)明內(nèi)容
本申請的目的旨在至少能解決上述的技術(shù)缺陷之一,特提出以下技術(shù)方案:
第一方面,提供了一種棧幀地址隨機(jī)化方法,所述方法包括:獲取進(jìn)程創(chuàng)建時分配的初始棧頂?shù)刂放c配置的隨機(jī)化范圍值;確定隨機(jī)化因子;基于所述初始棧頂?shù)刂贰㈦S機(jī)化范圍值與隨機(jī)化因子確定隨機(jī)化后的棧頂?shù)刂贰?/p>
可選地,所述獲取進(jìn)程創(chuàng)建時分配的初始棧頂?shù)刂放c配置的隨機(jī)化范圍值之前,還包括:根據(jù)進(jìn)程創(chuàng)建時的參數(shù)確定是否進(jìn)行棧頂?shù)刂返碾S機(jī)化處理;在確定進(jìn)行隨機(jī)化處理時,執(zhí)行所述獲取進(jìn)程創(chuàng)建時分配的初始棧頂?shù)刂放c配置的隨機(jī)化范圍值步驟。
可選地,所述確定隨機(jī)化因子,包括:判斷是否存在真隨機(jī)數(shù)發(fā)生器;若存在,采用所述真隨機(jī)數(shù)發(fā)生器生成第一隨機(jī)數(shù)作為隨機(jī)化因子;若不存在,基于系統(tǒng)中的隨機(jī)事件數(shù)據(jù)與系統(tǒng)的隨機(jī)函數(shù)確定隨機(jī)化因子。
可選地,所述基于系統(tǒng)中的隨機(jī)事件數(shù)據(jù)與系統(tǒng)的隨機(jī)函數(shù)確定隨機(jī)化因子,包括:基于系統(tǒng)中的隨機(jī)事件數(shù)據(jù)生成隨機(jī)修正值;結(jié)合所述隨機(jī)修正值與隨機(jī)函數(shù)生成第二隨機(jī)數(shù)作為隨機(jī)化因子;其中,所述隨機(jī)事件數(shù)據(jù)包括表征當(dāng)前中斷的次數(shù)、當(dāng)前的溫度值、當(dāng)前的電壓值中至少一項(xiàng)的數(shù)據(jù)。
可選地,所述基于所述初始棧頂?shù)刂贰㈦S機(jī)化范圍值與隨機(jī)化因子確定隨機(jī)化后的棧頂?shù)刂罚ǎ簩⑺鲭S機(jī)化范圍值與隨機(jī)化因子進(jìn)行取余處理,確定第一隨機(jī)值;基于所述第一隨機(jī)值與棧寄存器所占字節(jié)確定第二隨機(jī)值;基于所述初始棧頂?shù)刂放c所述第二隨機(jī)值確定隨機(jī)化后的棧頂?shù)刂贰?/p>
可選地,當(dāng)所述進(jìn)程為動態(tài)創(chuàng)建的進(jìn)程時,所述方法還包括:基于所述隨機(jī)化后的棧頂?shù)刂丰尫艃?nèi)存。
第二方面,提供了一種棧幀地址隨機(jī)化裝置,包括:獲取模塊,用于獲取進(jìn)程創(chuàng)建時分配的初始棧頂?shù)刂放c配置的隨機(jī)化范圍值;第一確定模塊,用于確定隨機(jī)化因子;第二確定模塊,用于基于所述初始棧頂?shù)刂贰㈦S機(jī)化范圍值與隨機(jī)化因子確定隨機(jī)化后的棧頂?shù)刂贰?/p>
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京元心科技有限公司,未經(jīng)北京元心科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010904467.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 具有隨機(jī)化器/去隨機(jī)化器的數(shù)據(jù)存儲系統(tǒng)和設(shè)備
- 非易失性存儲器件及其操作方法
- 隨機(jī)化電路、存儲器控制單元、存儲器、通信系統(tǒng)及方法
- 一種操作系統(tǒng)地址空間隨機(jī)化分配系統(tǒng)及方法
- 結(jié)合隨機(jī)化的互連層的電子設(shè)備
- 秘密并行處理裝置、秘密并行處理方法、程序
- 半導(dǎo)體存儲器操作方法
- 一種基于隨機(jī)跟蹤的惡意代碼隨機(jī)化識別方法及系統(tǒng)
- 一種動態(tài)隨機(jī)化防御Cache攻擊的方法
- 棧幀地址隨機(jī)化方法及相關(guān)設(shè)備





