设为首页 加入收藏

TOP

GNU/Linux内核的地址随机化
2014-11-24 07:37:37 来源: 作者: 【 】 浏览:1
Tags:GNU/Linux 内核 地址 随机

地址空间布局随机化(ASLR)是一项增加安全性的技术,攻击者发现漏洞之后开始编写exploit时如果要考虑绕过ASLR这会增加编写exploit的难度,最早是2001年Grsecurity社区(强悍的社区,直到今天还在为各种各样的加固为自由软件安全社区作出持续而杰出的贡献)针对GNU/Linux的PaX补丁中出现,后来GNU/Linux内核对用户态地址随机化的支持在2005年的2.6.12版本合并到了mainline,但直到今天内核中还是使用固定的虚拟地址。2011年的时候,Dan Rosenberg提议增加内核ASLR的功能但后来一直没有实施下去,最近Kees Cook向社区提交内核地址随机化的补丁,社区可能会在最近把这个补丁合并到mainline upstream repo里去。


绕过ASLR并不是一门新的技术,早在2002年的Phrack Issue 59中就已经有一篇论文详细的描述了原理和细节,个人认为内核空间的ASLR是非常有必要的,在内存和硬盘上隐藏内核空间地址是一个暂时的方案,比如:


[检查默认的内核配置]


* 从硬盘镜像上获得地址


ffffffff8143959a t do_fork_idle


* 从内存中获得地址


ffffffff81058cd0 T do_fork


ffffffff8143959a t do_fork_idle


[简单的加固]


* 使用root执行:


linux-7kz0:/home/shawn # chmod o-r /boot/System.map-3.0.42-0.7-default


linux-7kz0:/home/shawn # sysctl -w kernel.kptr_restrict=1


[验证结果]


这个方法只能针对特殊定制的内核,但对于发部分GNU/Linux发行版,内核镜像都是一样的,攻击者可以通过其他方式获得固定地址,KASLR可以在一定程度上延缓攻击者的速度,但实现上可能带给内核一些副作用,有人坚决反对在内核空间实现地址随机化。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在没有安装OpenCV的电脑上运行基.. 下一篇shell中输出重定向

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)