Linux系統 反病毒技術

發表于:2007-05-26來源:作者:點擊數: 標簽:
雖然Linux病毒屈指可數,但是基于緩沖區溢出(Buffer Overflow) 漏洞的攻擊還是讓眾多Linux用戶大吃一驚。所謂世界上第一個Linux病 毒reman,嚴格地說并不是真正的病毒,它實質上是一個古老的、 在Linux/ Unix (也包括 Windows 等系統)世界中早已存在的緩
 雖然Linux病毒屈指可數,但是基于緩沖區溢出(Buffer Overflow)

漏洞的攻擊還是讓眾多Linux用戶大吃一驚。所謂“世界上第一個Linux病

毒”——reman,嚴格地說并不是真正的病毒,它實質上是一個古老的、

在Linux/Unix(也包括Windows等系統)世界中早已存在的“緩沖區溢出

”攻擊程序。reman只是一個非常普通的、自動化了的緩沖區溢出程序,

但即便如此,也已經在Linux界引起很大的恐慌。

緩沖區溢出漏洞是一個困擾了安全專家30多年的難題。簡單來說,它

是由于編程機制而導致的、在軟件中出現的內存錯誤。這樣的內存錯誤使

得黑客可以運行一段惡意代碼來破壞系統正常地運行,甚至獲得整個系統

的控制權。

Linux系統特性

利用緩沖區溢出改寫相關內存的內容及函數的返回地址,從而改變代

碼的執行流程,僅能在一定權限范圍內有效。因為進程的運行與當前用戶

的登錄權限和身份有關,僅僅能夠制造緩沖區溢出是無法突破系統對當前

用戶的權限設置的。因此盡管可以利用緩沖區溢出使某一程序去執行其它

被指定的代碼,但被執行的代碼只具有特定的權限,還是無法完成超越權

限的任務。

但是,Linux(包括Unix)系統本身的一些特性卻可以被利用來沖破

這種權限的局限性,使得能夠利用緩沖區溢出獲得更高的、甚至是完全的

權限。主要體現在如下兩方面:

1.Linux(包括Unix)系統通過設置某可執行文件的屬性為SUID或

SGID,允許其它用戶以該可執行文件擁有者的用戶ID或用戶組ID來執行它

。如果該可執行文件的屬性是root,同時文件屬性被設置為SUID,則該可

執行文件就存在可利用的緩沖區溢出漏洞,可以利用它以root的身份執行

特定的、被另外安排的代碼。既然能夠使得一個具有root權限的代碼得以

執行,就能夠產生一個具有超級用戶root權限的Shell,那么掌握整個系

統的控制權的危險就產生了。

2.Linux(包括Unix)中的許多守護進程都是以root權限運行。如果

這些程序存在可利用的緩沖區溢出,即可直接使它以root身份去執行另外

安排的代碼,而無須修改該程序的SUID或SGID屬性。這樣獲得系統的控制

權將更加容易。

隨著現代網絡技術的發展和網絡應用的深入,計算機網絡所提供的遠

程登錄機制、遠程調用及執行機制是必須的。這使得一個匿名的Internet

用戶有機會利用緩沖區溢出漏洞來獲得某個系統的部分或全部控制權。實

際上,以緩沖區溢出漏洞為攻擊手段的攻擊占了遠程網絡攻擊中的絕大多

數,這給Linux系統帶來了極其嚴重的安全威脅。

途徑分析

通常情況下攻擊者會先攻擊root程序,然后利用緩沖區溢出時發生的

內存錯誤來執行類似“exec(sh)”的代碼,從而獲得root的一個Shell

。為了獲得root權限的Shell,攻擊者需要完成如下的工作:

1.在程序的地址空間內安排適當的特定代碼。一般使用如下兩種方

法在被攻擊的程序地址空間內安排攻擊代碼。

2.通過適當地初始化寄存器和存儲器,使程序在發生緩沖區溢出時

不能回到原來的執行處,而是跳轉到被安排的地址空間執行。

當攻擊者找到一種途徑可以改變原程序的執行代碼和流程時,攻擊的

危險就產生了。

防范措施

Linux下的緩沖區溢出攻擊威脅既來自于軟件的編寫機制,也來自于

Linux(和Unix)系統本身的特性。實際上,緩沖區溢出攻擊及各種計算

機病毒猖獗的根本原因在于現代計算機系統都是采用馮·諾依曼“存儲程

序”的工作原理。這一基本原理使得程序和數據都可以在內存中被繁殖、

拷貝和執行。因此,要想有效地防范緩沖區溢出攻擊就應該從這兩個方面

雙管其下。

確保代碼正確安全

緩沖區溢出攻擊的根源在于編寫程序的機制。因此,防范緩沖區溢出

漏洞首先應該確保在Linux系統上運行的程序(包括系統軟件和應用軟件

)代碼的正確性,避免程序中有不檢查變量、緩沖區大小及邊界等情況存

在。比如,使用grep工具搜索源代碼中容易產生漏洞的庫調用,檢測變量

的大小、數組的邊界、對指針變量進行保護,以及使用具有邊界、大小檢

測功能的C編譯器等。

基于一定的安全策略設置系統

攻擊者攻擊某一個Linux系統,必須事先通過某些途徑對要攻擊的系

統做必要的了解,如版本信息等,然后再利用系統的某些設置直接或間接

地獲取控制權。因此,防范緩沖區溢出攻擊的第二個方面就是對系統設置

實施有效的安全策略。這些策略種類很多,由于篇幅有限只列舉幾個典型

措施:

(1)在裝有Telnet服務的情況下,通過手工改寫“/etc/inetd.conf

”文件中的Telnet設置,使得遠程登錄的用戶無法看到系統的提示信息。

具體方法是將Telnet設置改寫為:

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


末尾加上“-h”參數可以讓守護進程不顯示任何系統信息,只顯示登

錄提示。

(2)改寫“rc.local”文件。默認情況下,當登錄Linux系統時系統運行

rc.local文件,顯示該Linux發行版本的名字、版本號、內核版本和服務

器名稱等信息,這使得大量系統信息被泄露。將“rc.local”文件中顯示

這些信息的代碼注釋掉,可以使系統不顯示這些信息。

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

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

另一種方法是將保存有系統信息的文件/etc/issue.net和issue刪除

。這兩個文件分別用于在遠程登錄和本地登錄時向用戶提供相關信息。刪

除這兩個文件的同時,仍需要完成方法一中的注釋工作,否則,系統在啟

動時將會自動重新生成這兩個文件。

(3)禁止提供finger服務。在Linux系統中,使用finger命令可以顯

示本地或遠程系統中目前已登錄用戶的詳細信息。禁止提供finger服務的

有效方法是,通過修改該文件屬性、權限(改為600)使得只有root用戶

才可以執行該命令。

(4)處理“inetd.conf”文件。Linux系統通過inetd(超級服務器

)程序根據網絡請求裝入網絡程序。該程序通過“/etc/inetd.conf”文

件獲得inetd在監聽哪些網絡端口,為每個端口啟動哪些特定服務等信息

。因此,該文件同樣會泄露大量的敏感信息。解決問題的方法是,通過將

其權限改為600只允許root用戶訪問,并通過改寫“/etc/inetd.conf”文

件將不需要的服務程序禁止掉,最后修改該文件的屬性使其不能被修改。

結束語

緩沖區溢出攻擊之所以能成為一種常見的攻擊手段,其原因在于緩沖

區溢出漏洞太普遍,且易于實現攻擊,因此緩沖區溢出問題一直是個難題

。

所幸的是,OpenBSD開發組為解決這一安全難題采用了三種新的有效

策略。相信不久的將來,Linux用戶可以不再為緩沖區溢出攻擊而寢食難

安了。

RAR文件在Linux下用起來

要在Linux下處理.rar文件,需要安裝RAR for Linux。該軟件可以從網上

下載,但要記住,它不是免費的。大家可從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是解壓

程序。它們的參數選項很多,這里只做簡單介紹,依舊舉例說明一下其用

法:

# rar a all *.mp3


這條命令是將所有.mp3的文件壓縮成一個rar包,名為all.rar,該程

序會將.rar 擴展名將自動附加到包名后。

# unrar e all.rar


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

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97