[闲聊] ASLR 101

楼主: CMJ0121 (请多指教!!)   2020-11-10 10:48:13
跟朋友聊到贵单位最近出现的漏洞时 提到了 ASLR
顺手笔记加分享一下
在 overflow 系列的攻击中 有一种情境是 heap-overflow[0]
也就是程式动态申请内存时 存取额外空间的一种攻击方式
在 virtual memory 架构中[1] 程式透过 OS 申请一块内存空间 (e.g. 1KB)
拿到的是虚拟的内存位址 (e.g 0x5566) 之后透过 OS 转换成真实内存位址
OS 分配的内存位址是可以预测的 也就是第一次与第二次申请 会拿到连续的内存区块
程式每次执行 第一次申请拿到的内存区块也是固定的
导致当成是出现 heap-overflow 攻击时 就可以推测敏感资讯放在哪个内存区间中
像是将密码存放在内存中 或者动态产生的 API Key 等等
Address Space Layout Randomization (ASLR) 则是一种将上述内存产生方式做一点变化
也就是程式码每次执行、每次申请内存时 拿到的虚拟内存空间会有所不同
但需要注意 ASLR 并非解决 heap-overflow 而是缓解
代表当出现漏洞的时候 减少攻击可被利用的程度
当 100% 可行的攻击 透过 ASLR 的防护后
攻击的可行程度降低为 0.1 ~ 1% 的概念 (每 100 ~ 1000 次才成功攻击一次)
[0]: https://en.wikipedia.org/wiki/Heap_overflow
[1]: https://en.wikipedia.org/wiki/Virtual_memory
作者: b0920075 (Void)   2020-11-10 12:23:00
不只 heap overflow 吧, stack 上的 overflow 也会受到 aslr 的影响
楼主: CMJ0121 (请多指教!!)   2020-11-10 13:50:00
我认真看了一下我的用词 应该没有说仅 heap-overflow
作者: b0920075 (Void)   2020-11-10 18:19:00
我只是觉得纳闷怎么提到aslr只有提到heap overflow
楼主: CMJ0121 (请多指教!!)   2020-11-10 19:58:00
@b0920075 因为强者我朋友单位 就是因为 heap overflow被打爆 还好有 ASLR 撑一下才 '没很严重'

Links booklink

Contact Us: admin [ a t ] ucptt.com