cht電腦資訊BSD
adm Find login register

Address space layout randomization

本人已不在此站活動
1 Address space layout randomization
Promote 0 Bookmark 02007-12-20quote  

http://en.wikipedia.org/wiki/Address_space_layout_randomization

好吧!其實我跟本就看不懂他在寫什麼,我只是想說 FreeBSD 有沒有這種東東?

handbook 我以 `Address space layout randomization' 及 ASLR 來找,沒有找到什麼。

後來  OuTian 提供了一測試方法:

#include <stdio.h>

unsigned long get_sp(void) {
        __asm__("movl %esp, %eax");
}

int main() {
        printf("Stack pointer (ESP): 0x%x\n", get_sp() );

        return 0;
}

每次執行的值會不同的,才是有實作 ASLR。嗚嗚嗚,FreeBSD 真的每次都一樣的值,還沒有實作進去。大哭

據說 Mac OS X 也有個爛爛的實作(被罵得很慘,認為不實作比實作好),OpenBSD 也有了,Linux 好像是從 2.6.x 也開始有,連 Vista 聽說也加進去了,那 FreeBSD 為什麼不做呢?

eliu
2
Promote 0 Bookmark 02007-12-21quote  

看了一下,還是不知道重點在哪裡。它的 security 問題是 其他 process memory 舊的內容可以在 stack 中被讀取嗎?

本人已不在此站活動
3
Promote 0 Bookmark 02007-12-21quote  

好像是某程式段在 cpu 裡的 ESP register 值能被預測(猜中),所以會被人從這裡惡搞,維基百科有舉兩個實例:

http://en.wikipedia.org/wiki/Return-to-libc

http://en.wikipedia.org/wiki/Shellcode

其實我不是很懂啦!:p

本人已不在此站活動
4
Promote 0 Bookmark 02007-12-22quote  

以下摘自〈安全考量 Vista和駭客玩捉迷藏(2006-06-02)〉一文:

摘錄

上周釋出的Windows Vista Beta 2具有一項可以防禦緩衝溢位(buffer overrun)新安全功能。這項稱為ASLR (Address Space Layout Randomization,位址空間編排隨機化)的功能可在每次PC開機時,把重要的系統檔案下載到不同記憶體位址,使惡意程式更難執行,微軟指出。

 

摘錄

某些攻擊企圖呼叫Windows系統功能,像是wsock32.dll 中的"socket()" 要它打開網路插槽(socket)。而微軟的安全新功能可以把這些系統檔案搬到無法預測的位址。在Windows Vista Beta 2中,DLL或EXE檔案將會被搬到256個地方中的一個,Howard寫道。

「攻擊者只有1/256的機率攻擊成功,」他說。


cht電腦資訊BSD
adm Find login register
views:15049