透過您的圖書館登入
IP:18.219.236.62
  • 學位論文

動態配置記憶體之安全保護機制

A Security Protection Mechanism for Dynamically Allocated Memory

指導教授 : 田筱榮
本文將於2025/09/01開放下載。若您希望在開放下載時收到通知,可將文章加入收藏

摘要


動態記憶體配置是許多軟體安全攻擊的目標,攻擊者藉由精心設計的互動程序,對動態配置記憶體重複釋放或是釋放後使用,造成軟體漏洞,進而進行攻擊。為了防止動態配置記憶體在已經被釋放之後,經由應該失效的指標被存取,我們設計了指標配置對應清單的安全機制,管理指向動態配置記憶體的指標,當動態配置記憶體被釋放,對應指標的值即被重置,原有的對應失效,運用舊的指標不會連結到任何記憶體位置,防止利用失效的指標存取新的資料的問題發生。我們以修改動態記憶體配置函式庫的方式實作此安全機制的概念原型,並以已知的安全攻擊加以測試,不需要改變原來的程式即可以有效的防禦攻擊。

並列摘要


The dynamic memory allocation mechanism is the target of many software security attacks. Through well-designed interactions with a vulnerable program to repeatedly request, release, or reference dynamically allocated memory, attackers can compromise the internal structure of a program and launch attacks. To prevent dynamically allocated memory from being accessed through the pointers that should be invalidated, we have designed a security mechanism, MallocList, to manage the pointers pointing to dynamically allocated memory. When a block of dynamically allocated memory is released, the corresponding content of the pointer is reset, and the original binding is invalidated. The use of the old pointer will not be linked to any memory location, it will prevent the problem of using the failed pointer to access new data. Our mechanism can be realized by modifying the dynamic memory allocation library. Executable code owners can benefit from the solution without needing to have access to the source code of vulnerable programs. A prototype of the proposed mechanism has been implemented and tested using known security attacks. Our experiment shows that the proposed mechanism can effectively defend against those types of attacks.

並列關鍵字

Dangling Pointers Double-Free Use-After-Free

參考文獻


[1] CTF Wiki. (2019, June 14). Heap overview. CTF Wiki. Retrieved June 26, 2020, from https://ctf-wiki.github.io/ctf-wiki/pwn/linux/stackoverflow/stackoverflow-basic/.
[2] angelboy. (2015, August 21). Heap Exploitation. SlideShare.net. Retrieved June 26, 2020, from https://www.slideshare.net/AngelBoy1/heap-exploitation-51891400.
[3] PLOVER. (2006, July 19). CWE-415: Double Free. cwe.mitre.org. Retrieved July 15, 2020 from https://cwe.mitre.org/data/definitions/415.html.
[4] CWE Content Team. (2010, September 22). CWE-825: Expired Pointer Dereference. cwe.mitre.org. Retrieved July 15, 2020 from https://cwe.mitre.org/data/definitions/825.html.
[5] 7 Pernicious Kingdoms. (2006, July 19). CWE-416: Use After Free. cwe.mitre.org. Retrieved July 15, 2020 from https://cwe.mitre.org/data/definitions/416.html.

延伸閱讀