學習保衛(wèi)Unix操作系統(tǒng)指南
我們都知道Unix操作系統(tǒng)入侵者常常使用的一種利用系統(tǒng)漏洞的方式是堆棧溢出,他們在堆棧里巧妙地插入一段代碼,利用它們的溢出來執(zhí)行,以獲得對系統(tǒng)的某種權(quán)限。如何防止Unix操作系統(tǒng)在堆棧中執(zhí)行代碼?
要讓你的Unix操作系統(tǒng)在堆棧緩沖溢出攻擊中更不易受侵害,你可以在/etc/system里加上如下語句:
- set noexec_user_stack=1
- set noexec_user_stack_log =1
第一句可以防止在堆棧中執(zhí)行插入的代碼,第二句則是在入侵者想運行exploit的時候會做記錄,一旦重啟Unix操作系統(tǒng)機器,這些改變就會生效。如果這不是一個你可以關閉的Unix操作系統(tǒng),那么你用adb來改變一個運行中的Unix操作系統(tǒng)的參數(shù)也是可能的。
當然會有些合法使用可執(zhí)行堆棧的程序在你做出如上改變后而不能正常運行。所幸的是這樣的程序的并不多,我們所知的就只有GNU ada 編譯器。
ARP
Unix操作系統(tǒng)有關ARP協(xié)議的細節(jié),在這里我們就不再詳細介紹了。對于sun的系統(tǒng),核心默認的ARP表過期的時間是5分鐘,并且可以調(diào)節(jié).另外一張表是ip層的路由表,它和arp表配合記錄動態(tài)路由信息,20分鐘過期,最后一個特性是”無償ARP” ,即系統(tǒng)廣播自己的硬件地址。這個特性用來診斷是否存在相同的硬件地址,另外也用來生成硬件地址的變動通知。
1)Unix操作系統(tǒng)ARP攻擊
針對ARP的攻擊主要有兩種,一種是DOS,一種是Spoof。ARP欺騙往往應用于一個內(nèi)部網(wǎng)絡,我們可以用它來擴大一個已經(jīng)存在的網(wǎng)絡安全漏洞。如果你可以入侵一個子網(wǎng)內(nèi)的機器,其它的機器安全也將受到ARP欺騙的威脅。同樣,利用APR的DOS甚至能使整個子網(wǎng)癱瘓。
2)Unix操作系統(tǒng)對ARP攻擊的防護
防止ARP攻擊是比較困難的,修改協(xié)議也是不大可能。但是有一些工作是可以提高本地網(wǎng)絡的安全性。
首先,你要知道,如果一個錯誤的記錄被插入ARP或者IP route表,可以用兩種方式來刪除:
a. 使用arp -d host_entry
b. 自動過期,由系統(tǒng)刪除
這樣,可以采用以下的一些方法:
1). Unix操作系統(tǒng)減少過期時間
- #ndd -set /dev/arp arp_cleanup_interval 60000
- #ndd -set /dev/ip ip_ire_flush_interval 60000
- 6000060000=60000毫秒 默認是300000
加快過期時間,并不能避免攻擊,但是使得攻擊更加困難,帶來的影響是在網(wǎng)絡中會大量的出現(xiàn)ARP請求和回復,請不要在繁忙的網(wǎng)絡上使用。
2). Unix操作系統(tǒng)建立靜態(tài)ARP表
這是一種很有效的方法,而且對系統(tǒng)影響不大。缺點是破壞了動態(tài)ARP協(xié)議??梢越⑷缦碌奈募?
test.cnns.net 08:00:20:ba:a1:f2
user. cnns.net 08:00:20:ee:de:1f
使用arp -f filename加載進去,這樣的ARP映射將不會過期和被新的ARP數(shù)據(jù)刷新,除非使用arp -d才能刪除。但是一旦合法主機的網(wǎng)卡硬件地址改變,就必須手工刷新這個arp文件。這個方法,不適合于經(jīng)常變動的網(wǎng)絡環(huán)境。
3).Unix操作系統(tǒng)禁止ARP
可以通過ifconfig interface -arp 完全禁止ARP,這樣,網(wǎng)卡不會發(fā)送ARP和接受ARP包。但是使用前提是使用靜態(tài)的ARP表,如果不在apr表中的計算機 ,將不能通信。這個方法不適用與大多數(shù)網(wǎng)絡環(huán)境,因為這增加了網(wǎng)絡管理的成本。但是對小規(guī)模的安全網(wǎng)絡來說,還是有
效和可行的。
這樣,我們就完成了關于如何防止Unix操作系統(tǒng)在堆棧中執(zhí)行代碼的知識,以及其他相關知識的介紹。
【編輯推薦】