Linux的安全漏洞與防范措施
LINUX是一種當(dāng)今世界上廣為流行的免費(fèi)操作系統(tǒng),它與UNIX完全兼容,但以其開(kāi)放性的平臺(tái),吸引著無(wú)數(shù)高等院校的學(xué)生和科研機(jī)構(gòu)的人員紛紛把它作為學(xué)習(xí)和研究的對(duì)象。這些編程高手在不斷完善LINUX版本中網(wǎng)絡(luò)安全功能。下面介紹Linux的Internet安全漏洞與防范措施,希望對(duì)大家有一定的幫助。
在LINUX的Internet安全中,主要包括的就是FTP安全、電子郵件安全、Telnet安全、Web服務(wù)器安全和安全Web協(xié)議。
FTP安全
對(duì)LINUX網(wǎng)絡(luò)來(lái)說(shuō)能實(shí)現(xiàn)傳輸文件十分重要,因此最常用的工具和協(xié)議是文件傳輸協(xié)議(FTP)。在這里簡(jiǎn)單介紹一下FTP安全。文件傳輸協(xié)議是把文件從一個(gè)系統(tǒng)傳輸?shù)搅硪粋€(gè)系統(tǒng)的標(biāo)準(zhǔn)方法,其目的是:
①促進(jìn)文件的共享(包括計(jì)算機(jī)的程序和數(shù)據(jù));
②鼓勵(lì)通過(guò)程序間接或隱含使用遠(yuǎn)程計(jì)算機(jī);
③使用戶(hù)感覺(jué)不到主機(jī)間文件存儲(chǔ)系統(tǒng)的差別;
④可靠、高效地傳輸數(shù)據(jù)。
但是,F(xiàn)TP有幾個(gè)關(guān)鍵性的安全缺陷:
FTP使用標(biāo)準(zhǔn)的用戶(hù)名/口令的認(rèn)證方法。這就使服務(wù)器不能可靠地確定一個(gè)用戶(hù)是否他所聲稱(chēng)的那個(gè)人。
默認(rèn)情況下,口令以明文方式傳輸。這就使攻擊者通過(guò)電子竊聽(tīng)獲得口令。
FTP會(huì)話沒(méi)有加密因此沒(méi)有隱蔽性。
FTP易受的攻擊有:
FTP的跳"(bounce)"攻擊。
文件許可權(quán)限錯(cuò)誤。
SITE EXEC漏洞。
FTP"跳"攻擊的目標(biāo)是配置為拒絕來(lái)自指定IP地址(或IP地址掩碼)連接的主機(jī)。通常一個(gè)入侵者的IP地址正好在限制區(qū)域,因此他不能訪問(wèn)FTP服務(wù)器的目錄。為了克服這種限制,入侵者使用另一臺(tái)機(jī)器來(lái)訪問(wèn)目標(biāo)機(jī)器。
為了實(shí)現(xiàn)這種方法,入侵者向中介FTP目錄寫(xiě)一個(gè)文件,該文件包含有連接到目標(biāo)機(jī)器并獲得一些文件的命令。當(dāng)該中介連接目標(biāo)主機(jī)時(shí),使用它自己的地址(而不是入侵者的地址)。因此,目標(biāo)主機(jī)信任該連接請(qǐng)求并返回要求的文件。
權(quán)限錯(cuò)誤就是攻擊者發(fā)現(xiàn)目標(biāo)主機(jī)上錯(cuò)誤的文件和目錄權(quán)限獲得特權(quán)甚至
根用戶(hù)訪問(wèn)權(quán)來(lái)達(dá)到入侵的目的。
SITE EXEC漏洞就是在早期的wu-ftpd版本允許遠(yuǎn)程用戶(hù)通過(guò)向21端口發(fā)起telnet會(huì)話獲得shell。為了檢查有沒(méi)有該漏洞,啟動(dòng)一個(gè)與21端口的telnet對(duì)話并發(fā)出命令SITE EXEC。如果獲得shell,就存在該漏洞。
FTP的安全措對(duì)于小型、封閉的、沒(méi)有與Internet連接的網(wǎng)絡(luò)(和沒(méi)有同其它局域網(wǎng)環(huán)境相連)來(lái)說(shuō)是足夠了。但對(duì)廣域網(wǎng)環(huán)境(尤其是與Internet連接)的網(wǎng)絡(luò)環(huán)境來(lái)說(shuō),普通FTP實(shí)在是不安全,應(yīng)使用SSLftp。SSLftp實(shí)現(xiàn)具有SSL的FTP客戶(hù)和服務(wù)器。SSL為安全套接層,是采用RSA和DES認(rèn)證和加密以及MD5會(huì)話完整性檢查的一種第三層協(xié)議和API函數(shù)。
如同telnet一樣,F(xiàn)TP(或類(lèi)似FTP的服務(wù))在LINUX網(wǎng)絡(luò)中使用最多,但正如所指明的那樣,F(xiàn)TP不真正安全。如果打算小范圍使用普通FTP,應(yīng)盡量嚴(yán)格地設(shè)置訪問(wèn)權(quán)限并記錄任何事。這至少可以確??梢钥刂颇膫€(gè)主機(jī)能訪問(wèn)你的FTP服務(wù)并且當(dāng)出了問(wèn)題時(shí)有最近的審計(jì)跟蹤。
電子郵件安全
今天使用最廣的E-mail傳輸協(xié)議是簡(jiǎn)單郵件傳輸協(xié)議(SMTP)。每天,SMTP用于傳輸成千上萬(wàn)的E-mail消息到世界各地。
SMTP服務(wù)器工作規(guī)程很少:
接收進(jìn)來(lái)的消息。
檢查消息的地址。
如果消息的地址為本地地址,保存消息以便檢索。
如果是遠(yuǎn)程地址,轉(zhuǎn)發(fā)該消息。
SMTP服務(wù)器功能同包路由器一樣,除了SMTP服務(wù)專(zhuān)用于郵件。大部分SMTP服務(wù)器可以按需要存儲(chǔ)以及轉(zhuǎn)發(fā)消息。
SMTP服務(wù)器在兩個(gè)不同任務(wù)上提出了安全要求:
保護(hù)服務(wù)器以免被攻破。必須給服務(wù)器加上防護(hù)盔甲防止外部進(jìn)攻,如果外部進(jìn)攻成功會(huì)使進(jìn)攻者未經(jīng)授權(quán)便能進(jìn)入你的系統(tǒng)。
保護(hù)SMTP服務(wù)以免錯(cuò)誤使用,例如外人利用你的電子郵件服務(wù)器發(fā)送假的郵件和垃圾。
在這當(dāng)中第二項(xiàng)問(wèn)題更為可怕。有些人不假思索地使用未受保護(hù)的SMTP服務(wù)器來(lái)向Internet郵件帳號(hào)轉(zhuǎn)發(fā)成千份的廣告。如果他們使用了你的機(jī)器就會(huì)使網(wǎng)絡(luò)負(fù)擔(dān)過(guò)重。
除非特別指明,否則LINUX在安裝時(shí)會(huì)把sendmail作為你的郵件傳輸代理。可以用telnet到端口25來(lái)觀察確定sendmail的版本。輸出結(jié)果的例子如下:
[jray@pointy jray] $ telent poisontooth.com 25
Trying 24.93.119.226…
Conneted to poisontooth.com.
Escape character is
220 pointy. poisontooth.com ESMTP Sendmail 8.9.3/8.9.3
→Sat, 10 Jul 1999 16:27:14-0400
這里可以看出pointy.poisontooth.com正在運(yùn)行sendmail/8.9.3。
入侵者對(duì)sendmail發(fā)起攻擊主要是因?yàn)椋?
sendmail是公共服務(wù),一旦它運(yùn)行,任何人都能連接和使用它。
sendmail通常以root身份運(yùn)行。因此如果入侵者發(fā)現(xiàn)了一個(gè)可利用的漏洞,就可獲得優(yōu)先級(jí)高的訪問(wèn)權(quán)限。
sendmail非常難配置,入侵者因此假設(shè)你會(huì)在安裝中出問(wèn)題(通常都成功)。
以下是一些典型的sendmail攻擊:
首先是MIME緩沖溢出漏洞。這種攻擊不影響sendmail本身,而是sendmail發(fā)送郵件的客戶(hù)。在這里,sendmail是工具而不是目標(biāo)。計(jì)算機(jī)緊急反應(yīng)小組是這樣描述該攻擊的:
攻擊者向一個(gè)脆弱的系統(tǒng)發(fā)送一個(gè)精心設(shè)計(jì)的郵件消息,在某種情況下,攻擊者選擇的代碼會(huì)在該系統(tǒng)上執(zhí)行。另外,攻擊者可以是脆弱的郵件程序突然崩潰。根據(jù)郵件客戶(hù)正在運(yùn)行的操作系統(tǒng)以及有問(wèn)題的郵件客戶(hù)程序的用戶(hù)權(quán)限,攻擊都可以使整個(gè)系統(tǒng)崩潰。如果一個(gè)權(quán)限高的用戶(hù)用一個(gè)容易受攻擊的郵件用戶(hù)代理來(lái)閱讀郵件,那么攻擊者就可以獲得進(jìn)入系統(tǒng)的管理權(quán)限。
再來(lái)看一下HELO緩沖溢出。在早于sendmail8.9的版本中,攻擊者可以利用HELO命令傳送非正常長(zhǎng)度的字符串來(lái)偽裝自己的發(fā)起的地址。如果一個(gè)攻擊者發(fā)送HELO后面有至少1024字節(jié)的abc,那么消息頭會(huì)如下所示:
From attacker@attack.place.net Web Feb 5 22 31:51 1998
Received: from abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab→abcabcabcabcabcabc
Date: Wed, 5 Feb 1998 12:32:22 +0300
From attacker@attack.place.net
非正常字符串隱藏了應(yīng)正常顯示發(fā)信者IP地址的信息。這種攻擊方法,盡管不具危險(xiǎn),但攻擊者可以利用它讓sendmail轉(zhuǎn)發(fā)郵件垃圾和創(chuàng)建難以跟蹤的郵件。
還有口令文件/Root訪問(wèn),這是一個(gè)更可怕的攻擊,它影響的是sendmail8.8.4。本地用戶(hù)可以利用鏈接來(lái)獲得root訪問(wèn)。這種攻擊方法依賴(lài)于sendmail在/var/tmp/dead.letter后保存未投遞的消息。
1. 參考CA-98.10站點(diǎn)http://www.cert.org/advisories/CA-98.10.mime_buffer_overflows.htm。
所有用戶(hù)都可對(duì)/var/tmp進(jìn)行寫(xiě)操作,因此本地攻擊者可在/etc/passwd和/var/tmp/dead.letter間創(chuàng)建一個(gè)硬鏈接。然后向sendmail服務(wù)器發(fā)送一個(gè)不能投遞的消息。在該消息體內(nèi),攻擊者插入可被加到口令文件的一個(gè)用戶(hù)帳號(hào)。
當(dāng)消息標(biāo)記為不可投遞,就會(huì)加到/var/tmp/dead.letter里面,而在/var/tmp/dead.letter有一個(gè)與/etc/passwd的硬鏈接。這就導(dǎo)致產(chǎn)生一個(gè)擁有Root權(quán)限的新系統(tǒng)帳號(hào)。
Sendmail作為一個(gè)突出并且訪問(wèn)頻繁的服務(wù)器,經(jīng)常是攻擊的目標(biāo)。最近的一個(gè)攻擊方法集中在sendmail報(bào)頭解析代碼上的一個(gè)漏洞。通過(guò)創(chuàng)建有大量TO:報(bào)頭的消息,進(jìn)攻者可使服務(wù)器停止運(yùn)行。這種攻擊方法對(duì)sendmail8.9.2和更早的版本有效,因此連最近安裝的sendmail也受到影響。
以上就是常用的對(duì)sendmail的攻擊,因?yàn)閟endmail本身安裝不方便,還有很多安全漏洞,用戶(hù)也可選擇更好的工具Qmail。