偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

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

Linux系統(tǒng)特性
  

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

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

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

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

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

途徑分析
  

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

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

2.通過(guò)適當(dāng)?shù)爻跏蓟拇嫫骱痛鎯?chǔ)器,使程序在發(fā)生緩沖區(qū)溢出時(shí)不能回到原來(lái)的執(zhí)行處,而是跳轉(zhuǎn)到被安排的地址空間執(zhí)行。

當(dāng)攻擊者找到一種途徑可以變?cè)绦虻膱?zhí)行代碼和流程時(shí),攻擊的危險(xiǎn)就產(chǎn)生了。

#p#

防范措施
  

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

確保代碼正確安全
  

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

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

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

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

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

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

(2)改寫“rc.local”文件。默認(rèn)情況下,當(dāng)?shù)卿汱inux系統(tǒng)時(shí)系統(tǒng)運(yùn)行rc.local文件,顯示該Linux發(fā)行版本的名字、版本號(hào)、內(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刪除。這兩個(gè)文件分別用于在遠(yuǎn)程登錄和本地登錄時(shí)向用戶提供相關(guān)信息。刪除這兩個(gè)文件的同時(shí),仍需要完成方法一中的注釋工作,否則,系統(tǒng)在啟動(dòng)時(shí)將會(huì)自動(dòng)重新生成這兩個(gè)文件。
  

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

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

總結(jié)
  

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

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

RAR文件在Linux下用起來(lái)
  

要在Linux下處理.rar文件,需要安裝RAR for Linux。該軟件可以從網(wǎng)上下載,但要記住,它不是免費(fèi)的。大家可從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這兩個(gè)程序,rar是壓縮程序,unrar是解壓程序。它們的參數(shù)選項(xiàng)很多,這里只做簡(jiǎn)單介紹,依舊舉例說(shuō)明一下其用法:
  

# rar a all *.mp3
  

這條命令是將所有.mp3的文件壓縮成一個(gè)rar包,名為all.rar,該程序會(huì)將.rar 擴(kuò)展名將自動(dòng)附加到包名后。
  

# unrar e all.rar
 

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

【編輯推薦】

  1. Linux系統(tǒng)下配置Netware服務(wù)器方法
  2. 嵌入式設(shè)備上的 Linux 系統(tǒng)開發(fā)
  3. 深度介紹Linux內(nèi)核是如何工作的(1)
責(zé)任編輯:張燕妮 來(lái)源: 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

2022-05-07 08:27:42

緩沖區(qū)溢出堆棧

2010-10-09 14:45:48

2011-11-15 16:00:42

2017-01-09 17:03:34

2019-02-27 13:58:29

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

2010-09-29 15:10:58

2018-01-26 14:52:43

2019-01-28 18:05:04

2019-02-13 13:31:42

2011-03-23 12:39:44

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

點(diǎn)贊
收藏

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