首页 . 理学 . 计算机科学技术 . 信息安全 . 信息系统安全 . 软件安全 . 软件安全防御

地址空间布局随机化

/address space layout randomization,ASLR/
条目作者贾春福

贾春福

最后更新 2023-10-25
浏览 178
最后更新 2023-10-25
浏览 178
0 意见反馈 条目引用

一种在操作系统内核部署的用于抵御内存漏洞被利用的技术。

英文名称
address space layout randomization,ASLR
所属学科
计算机科学技术

地址空间随机化技术主要对用户进程或系统内核的程序代码段、栈、堆、共享库(shared library)等关键内存区段所在地址进行一定程度上的随机部署,以增加恶意攻击者利用内存漏洞(如控制流劫持攻击)的难度。

1997年,S.弗斯特(Stephanie Forrest)等人首次提出了地址随机化的概念,她指出当时的计算机系统缺乏多样性,类似于自然界中结构单一的生态系统的稳定性差,高度一致性的计算机系统也存在着严重的脆弱性。若攻击者发现某个软件漏洞可用于越权获取管理员权限,他便能够直接利用该漏洞来直接侵入相同配置的所有计算机。因此,S.弗斯特等人指出通过向计算机系统的内存布局引入随机化,不仅能够以较低成本增强系统的健壮性,且对系统的可用性、便利性等方面的影响较小。

在地址随机化概念提出并完善后,各个主流操作系统开始逐渐实际部署该防御机制。2001年7月,Linux Pax项目首次创建了地址空间随机化的术语,并为Linux内核提供具体实现的补丁。2003年11月,OpenBSD的3.4版本将ASLR作为默认机制,是首个采用该技术的主流操作系统。2005年6月,Linux在2.6.12版本的内核中首次为用户程序提供进程级地址空间随机化技术,并首次在2014年3月发布的3.14版本的内核中部署了内核级地址空间随机化技术。而Windows操作系统则是首次于2007年1月发布的Vista系统中提供对用户程序和动态链接库进行地址空间随机化的支持。截至2021年,地址空间布局随机化技术已成为主流操作系统(Linux、Windows、macOS、Android、iOS等)的默认安全机制。

但随着侧信道攻击(如Spectre和Meltdown)等新型技术的出现,攻击者已经能够成功绕过地址空间布局随机化技术这一防御机制。因此,为保护用户免于遭受软件漏洞被利用的威胁,还需要和其他防御技术(如控制流完整性保护)相结合。

  • ROEMER R, BUCHANAN E, SHACHAM H, et al.Return-Oriented Programming.ACM Transactions on Information and System Security,2012,15(1):1-34.
  • 柳童,史岗,孟丹.代码重用攻击与防御机制综述.信息安全学报,2016,1(2):15-27.
  • 彭国军,梁玉,张焕国,傅建明.软件二进制代码重用技术综述.软件学报,2017,28(8):2026-2045.

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!