自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何防范Linux操作系統(tǒng)下緩沖區(qū)溢出攻擊

運維 系統(tǒng)運維
雖然Linux病毒屈指可數(shù),但是基于緩沖區(qū)溢出(Buffer Overflow)漏洞的攻擊還是讓眾多Linux用戶大吃一驚。所謂“世界上第一個Linux病毒”??reman,嚴(yán)格地說并不是真正的病毒,它實質(zhì)上是一個古老的、在Linux/Unix(也包括Windows等系統(tǒng))世界中早已存在的“緩沖區(qū)溢出”攻擊程序。reman只是一個非常普通的、自動化了的緩沖區(qū)溢出程序,但即便如此,也已經(jīng)在Linux界引起很大的恐慌。

雖然Linux病毒屈指可數(shù),但是基于緩沖區(qū)溢出(Buffer Overflow)漏洞的攻擊還是讓眾多Linux用戶大吃一驚。所謂“世界上第一個Linux病毒”??reman,嚴(yán)格地說并不是真正的病毒,它實質(zhì)上是一個古老的、在Linux/Unix(也包括Windows等系統(tǒng))世界中早已存在的“緩沖區(qū)溢出”攻擊程序。reman只是一個非常普通的、自動化了的緩沖區(qū)溢出程序,但即便如此,也已經(jīng)在Linux界引起很大的恐慌。
  

緩沖區(qū)溢出漏洞是一個困擾了安全專家30多年的難題。簡單來說,它是由于編程機制而導(dǎo)致的、在軟件中出現(xiàn)的內(nèi)存錯誤。這樣的內(nèi)存錯誤使得黑客可以運行一段惡意代碼來破壞系統(tǒng)正常地運行,甚至獲得整個系統(tǒng)的控制權(quán)。
  

Linux系統(tǒng)特性
  

利用緩沖區(qū)溢出改寫相關(guān)內(nèi)存的內(nèi)容及函數(shù)的返回地址,從而改變代碼的執(zhí)行流程,僅能在一定權(quán)限范圍內(nèi)有效。因為進程的運行與當(dāng)前用戶的登錄權(quán)限和身份有關(guān),僅僅能夠制造緩沖區(qū)溢出是無法突破系統(tǒng)對當(dāng)前用戶的權(quán)限設(shè)置的。因此盡管可以利用緩沖區(qū)溢出使某一程序去執(zhí)行其它被指定的代碼,但被執(zhí)行的代碼只具有特定的權(quán)限,還是無法完成超越權(quán)限的任務(wù)。
  

但是,Linux(包括Unix)系統(tǒng)本身的一些特性卻可以被利用來沖破這種權(quán)限的局限性,使得能夠利用緩沖區(qū)溢出獲得更高的、甚至是完全的權(quán)限。主要體現(xiàn)在如下兩方面:
  

1.Linux(包括Unix)系統(tǒng)通過設(shè)置某可執(zhí)行文件的屬性為SUID或SGID,允許其它用戶以該可執(zhí)行文件擁有者的用戶ID或用戶組ID來執(zhí)行它。如果該可執(zhí)行文件的屬性是root,同時文件屬性被設(shè)置為SUID,則該可執(zhí)行文件就存在可利用的緩沖區(qū)溢出漏洞,可以利用它以root的身份執(zhí)行特定的、被另外安排的代碼。既然能夠使得一個具有root權(quán)限的代碼得以執(zhí)行,就能夠產(chǎn)生一個具有超級用戶root權(quán)限的Shell,那么掌握整個系統(tǒng)的控制權(quán)的危險就產(chǎn)生了。
  

2.Linux(包括Unix)中的許多守護進程都是以root權(quán)限運行。如果這些程序存在可利用的緩沖區(qū)溢出,即可直接使它以root身份去執(zhí)行另外安排的代碼,而無須修改該程序的SUID或SGID屬性。這樣獲得系統(tǒng)的控制權(quán)將更加容易。
  

隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的發(fā)展和網(wǎng)絡(luò)應(yīng)用的深入,計算機網(wǎng)絡(luò)所提供的遠(yuǎn)程登錄機制、遠(yuǎn)程調(diào)用及執(zhí)行機制是必須的。這使得一個匿名的Internet用戶有機會利用緩沖區(qū)溢出漏洞來獲得某個系統(tǒng)的部分或全部控制權(quán)。實際上,以緩沖區(qū)溢出漏洞為攻擊手段的攻擊占了遠(yuǎn)程網(wǎng)絡(luò)攻擊中的絕大多數(shù),這給Linux系統(tǒng)帶來了極其嚴(yán)重的安全威脅。
  

途徑分析
  

通常情況下攻擊者會先攻擊root程序,然后利用緩沖區(qū)溢出時發(fā)生的內(nèi)存錯誤來執(zhí)行類似“exec(sh)”的代碼,從而獲得root的一個Shell。為了獲得root權(quán)限的Shell,攻擊者需要完成如下的工作:
  

1.在程序的地址空間內(nèi)安排適當(dāng)?shù)奶囟ùa。一般使用如下兩種方法在被攻擊的程序地址空間內(nèi)安排攻擊代碼。
  

2.通過適當(dāng)?shù)爻跏蓟拇嫫骱痛鎯ζ鳎钩绦蛟诎l(fā)生緩沖區(qū)溢出時不能回到原來的執(zhí)行處,而是跳轉(zhuǎn)到被安排的地址空間執(zhí)行。

當(dāng)攻擊者找到一種途徑可以變原程序的執(zhí)行代碼和流程時,攻擊的危險就產(chǎn)生了。

#p#

防范措施
  

Linux下的緩沖區(qū)溢出攻擊威脅既來自于軟件的編寫機制,也來自于Linux(和Unix)系統(tǒng)本身的特性。實際上,緩沖區(qū)溢出攻擊及各種計算機病毒猖獗的根本原因在于現(xiàn)代計算機系統(tǒng)都是采用馮?諾依曼“存儲程序”的工作原理。這一基本原理使得程序和數(shù)據(jù)都可以在內(nèi)存中被繁殖、拷貝和執(zhí)行。因此,要想有效地防范緩沖區(qū)溢出攻擊就應(yīng)該從這兩個方面雙管其下。
  

確保代碼正確安全
  

緩沖區(qū)溢出攻擊的根源在于編寫程序的機制。因此,防范緩沖區(qū)溢出漏洞首先應(yīng)該確保在Linux系統(tǒng)上運行的程序(包括系統(tǒng)軟件和應(yīng)用軟件)代碼的正確性,避免程序中有不檢查變量、緩沖區(qū)大小及邊界等情況存在。比如,使用grep工具搜索源代碼中容易產(chǎn)生漏洞的庫調(diào)用,檢測變量的大小、數(shù)組的邊界、對指針變量進行保護,以及使用具有邊界、大小檢測功能的C編譯器等。
  

基于一定的安全策略設(shè)置系統(tǒng)
  

攻擊者攻擊某一個Linux系統(tǒng),必須事先通過某些途徑對要攻擊的系統(tǒng)做必要的了解,如版本信息等,然后再利用系統(tǒng)的某些設(shè)置直接或間接地獲取控制權(quán)。因此,防范緩沖區(qū)溢出攻擊的第二個方面就是對系統(tǒng)設(shè)置實施有效的安全策略。這些策略種類很多,由于篇幅有限只列舉幾個典型措施:
       

 (1)在裝有Telnet服務(wù)的情況下,通過手工改寫“/etc/inetd.conf”文件中的Telnet設(shè)置,使得遠(yuǎn)程登錄的用戶無法看到系統(tǒng)的提示信息。具體方法是將Telnet設(shè)置改寫為:
  

telnet stream tcp nowait root /usr/sbin/tcpd/in.telnetd -h
  

末尾加上“-h”參數(shù)可以讓守護進程不顯示任何系統(tǒng)信息,只顯示登錄提示。
  

(2)改寫“rc.local”文件。默認(rèn)情況下,當(dāng)?shù)卿汱inux系統(tǒng)時系統(tǒng)運行rc.local文件,顯示該Linux發(fā)行版本的名字、版本號、內(nèi)核版本和服務(wù)器名稱等信息,這使得大量系統(tǒng)信息被泄露。將“rc.local”文件中顯示這些信息的代碼注釋掉,可以使系統(tǒng)不顯示這些信息。
  

一種方法是在顯示這些信息的代碼行前加“#”:
  

……# echo "">/etc/issue# echo "$R">>/etc/issue# echo "Kernel $ (uname -r)on $a $(uname -m)">>/etc/issue## echo >>/etc/issue……
  

另一種方法是將保存有系統(tǒng)信息的文件/etc/issue.net和issue刪除。這兩個文件分別用于在遠(yuǎn)程登錄和本地登錄時向用戶提供相關(guān)信息。刪除這兩個文件的同時,仍需要完成方法一中的注釋工作,否則,系統(tǒng)在啟動時將會自動重新生成這兩個文件。
  

(3)禁止提供finger服務(wù)。在Linux系統(tǒng)中,使用finger命令可以顯示本地或遠(yuǎn)程系統(tǒng)中目前已登錄用戶的詳細(xì)信息。禁止提供finger服務(wù)的有效方法是,通過修改該文件屬性、權(quán)限(改為600)使得只有root用戶才可以執(zhí)行該命令。
  

(4)處理“inetd.conf”文件。Linux系統(tǒng)通過inetd(超級服務(wù)器)程序根據(jù)網(wǎng)絡(luò)請求裝入網(wǎng)絡(luò)程序。該程序通過“/etc/inetd.conf”文件獲得inetd在監(jiān)聽哪些網(wǎng)絡(luò)端口,為每個端口啟動哪些特定服務(wù)等信息。因此,該文件同樣會泄露大量的敏感信息。解決問題的方法是,通過將其權(quán)限改為600只允許root用戶訪問,并通過改寫“/etc/inetd.conf”文件將不需要的服務(wù)程序禁止掉,最后修改該文件的屬性使其不能被修改。
  

總結(jié)
  

緩沖區(qū)溢出攻擊之所以能成為一種常見的攻擊手段,其原因在于緩沖區(qū)溢出漏洞太普遍,且易于實現(xiàn)攻擊,因此緩沖區(qū)溢出問題一直是個難題。
  

所幸的是,OpenBSD開發(fā)組為解決這一安全難題采用了三種新的有效策略。相信不久的將來,Linux用戶可以不再為緩沖區(qū)溢出攻擊而寢食難安了。
  

RAR文件在Linux下用起來
  

要在Linux下處理.rar文件,需要安裝RAR for Linux。該軟件可以從網(wǎng)上下載,但要記住,它不是免費的。大家可從http://www.onlinedown.net/sort/125_1.htm下載RAR for Linux 3.2.0,然后用下面的命令安裝:
  

# tar -xzpvf rarlinux-3.2.0.tar.gz
  

# cd rar
  

# make
  

安裝后就有了rar和unrar這兩個程序,rar是壓縮程序,unrar是解壓程序。它們的參數(shù)選項很多,這里只做簡單介紹,依舊舉例說明一下其用法:
  

# rar a all *.mp3
  

這條命令是將所有.mp3的文件壓縮成一個rar包,名為all.rar,該程序會將.rar 擴展名將自動附加到包名后。
  

# unrar e all.rar
 

這條命令是將all.rar中的所有文件解壓出來。

【編輯推薦】

  1. Linux系統(tǒng)下配置Netware服務(wù)器方法
  2. 嵌入式設(shè)備上的 Linux 系統(tǒng)開發(fā)
  3. 深度介紹Linux內(nèi)核是如何工作的(1)
責(zé)任編輯:張燕妮 來源: it168
相關(guān)推薦

2019-01-11 09:00:00

2014-07-30 11:21:46

2019-03-06 09:00:38

ASLRLinux命令

2009-09-24 18:16:40

2019-02-27 13:58:29

漏洞緩沖區(qū)溢出系統(tǒng)安全

2017-01-09 17:03:34

2022-05-07 08:27:42

緩沖區(qū)溢出堆棧

2010-10-09 14:45:48

2011-11-15 16:00:42

2010-09-29 15:10:58

2018-01-26 14:52:43

2011-03-23 12:39:44

2019-01-28 18:05:04

2019-02-13 13:31:42

2020-08-10 08:37:32

漏洞安全數(shù)據(jù)

2011-03-23 11:35:00

2015-09-02 09:01:03

2010-12-27 10:21:21

2012-07-26 09:39:01

2015-03-06 17:09:10

點贊
收藏

51CTO技術(shù)棧公眾號