ASLR in optee
生活随笔
收集整理的這篇文章主要介紹了
ASLR in optee
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1、overview
- 2、ASLR for OP-TEE Core
- 3、Random seed
- 4、Building
- 5、Relocate
- 6、Mappings
- 7、Possible locations
- 8、TA load
思考:
1、什么是ALSR?
2、在OPTEE Core中如何開啟ALSR?
3、在TAs中如何開啟ALSR?
1、overview
Address space layout randomization (ASLR) 是一種在運行代碼時隨機化虛擬地址的安全技術。
ASLR has been supported since OP-TEE version 3.8.0.
主要目標是使利用內存損壞漏洞變得更加困難
2、ASLR for OP-TEE Core
- 二進制文件鏈接到與物理加載地址相同的地址
- 二進制文件加載到內存中的指定物理地址
- 內存被映射到一個隨機的虛擬基地址
3、Random seed
- 隨機種子(random seed)用于選擇隨機基地址
- 如果提供,可以從dts的“/secure-chosen/kaslr-seed”節點獲取, 或者通過平臺特定于的方法提供
- 提供值為 0 的種子將禁用 OP-TEE core的 ASLR
4、Building
- relocation:二進制鏈接做為與位置無關二進制
- 僅接受相對relocations(R_ARM_RELATIVE 或 R_AARCH64_RELATIVE)
- relocation entries被解析并簡化為添加在二進制文件末尾的地址列表
簡化匯編代碼
提供針對unexpected relocation類型的構建時間測試
5、Relocate
- 二進制鏈接仍與load地址相關聯
- load的二進制文件必須重新定位才能從新的虛擬地址執行
- Relocation原則上很簡單:
6、Mappings
- 基于種子創建映射
- 還增加了一個身份映射部分
- 僅在啟用 MMU 時才需要標識映射內存,但為了簡單起見保留
7、Possible locations
- 虛擬位置選擇為 4KiB 的倍數
- 可以使用整個虛擬地址范圍
- 這在 4GiB 虛擬內存范圍的虛擬地址中提供了近 20 個隨機位
- 如果無法使用生成的位置,則會生成新位置而不是移位
8、TA load
- TA 始終作為位置無關的可執行文件進行編譯和鏈接
- OP-TEE Core 在啟動時為 TA 選擇合適的虛擬內存范圍
取決于 OP-TEE Core 使用的當前內存映射 - TA 鏈接到地址 0
- TA 使用 ldelf 加載(ELF loader)
- Ldelf 將TA 重定位到第一次輸入之前已經加載的地址
- Ldelf 與 TA 共享地址空間
ASLR for TAs
- 地址隨機化由 ldelf 處理
- OP-TEE Core 提供 API
- 加載地址為每個被加載的 ELF 隨機化
- 有效地址范圍受限于轉換表被分配到映射中的漏洞,改進空間
總結
以上是生活随笔為你收集整理的ASLR in optee的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 物理攻击规避(Physical Atta
- 下一篇: PKCS#11 in OP-TEE