看板 NetSecurity 關於我們 聯絡資訊
跟朋友聊到貴單位最近出現的漏洞時 提到了 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://www.ptt.cc/bbs/NetSecurity/M.1604976495.A.A01.html
b0920075: 不只 heap overflow 吧, stack 上的 overflow 也會受 11/10 12:23
b0920075: 到 aslr 的影響 11/10 12:23
CMJ0121: 我認真看了一下我的用詞 應該沒有說僅 heap-overflow 11/10 13:50
b0920075: 我只是覺得納悶怎麼提到aslr只有提到heap overflow 11/10 18:19
CMJ0121: @b0920075 因為強者我朋友單位 就是因為 heap overflow 11/10 19:58
CMJ0121: 被打爆 還好有 ASLR 撐一下才 '沒很嚴重' 11/10 19:58