作者CMJ0121 (不要偷 Q)
看板NetSecurity
标题[闲聊] ASLR 101
时间Tue Nov 10 10:48:13 2020
跟朋友聊到贵单位最近出现的漏洞时 提到了 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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.1.229.246 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/NetSecurity/M.1604976495.A.A01.html
1F:推 b0920075: 不只 heap overflow 吧, stack 上的 overflow 也会受 11/10 12:23
2F:→ b0920075: 到 aslr 的影响 11/10 12:23
3F:→ CMJ0121: 我认真看了一下我的用词 应该没有说仅 heap-overflow 11/10 13:50
4F:推 b0920075: 我只是觉得纳闷怎麽提到aslr只有提到heap overflow 11/10 18:19
5F:→ CMJ0121: @b0920075 因为强者我朋友单位 就是因为 heap overflow 11/10 19:58
6F:→ CMJ0121: 被打爆 还好有 ASLR 撑一下才 '没很严重' 11/10 19:58