安全防范Linux嗅探器
隨著Linux在網(wǎng)絡(luò)中的應(yīng)用日益廣泛,它的安全問題也越來越受到關(guān)注。本文主要介紹嗅探器技術(shù)的工作原理,及其防范措施。
何謂嗅探器
嗅探器(Sniffer)就是能夠捕獲網(wǎng)絡(luò)報(bào)文的設(shè)備。Sniffer 就是嗅探器,就是竊聽器,它靜悄悄地工作在網(wǎng)絡(luò)的底層,把用戶的秘密全部記錄下來。嗅探器的正當(dāng)用處在于分析網(wǎng)絡(luò)的流量,以便找出所關(guān)心的網(wǎng)絡(luò)中潛在的問題。例如,假設(shè)網(wǎng)絡(luò)的某一段運(yùn)行得不是很好,報(bào)文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時(shí)就可以用嗅探器來作出精確地問題判斷。嗅探器在功能和設(shè)計(jì)方面有很多不同,有些只能分析一種協(xié)議,而另一些可能能夠分析幾百種協(xié)議。一般情況下,大多數(shù)的嗅探器至少能夠分析下面的協(xié)議:標(biāo)準(zhǔn)以太網(wǎng)、 TCP/IP、IPX、DECNET、FDDI Token、微波和無線網(wǎng)。
實(shí)際應(yīng)用中的嗅探器還分軟、硬兩種。軟件嗅探器的優(yōu)點(diǎn)在于比較便宜,易于使用,缺點(diǎn)是往往無法抓取網(wǎng)絡(luò)上所有的傳輸數(shù)據(jù)(比如碎片),也就可能無法真正全面了解網(wǎng)絡(luò)的故障和運(yùn)行情況。硬件嗅探器通常稱為協(xié)議分析儀,它的優(yōu)點(diǎn)恰恰是軟件嗅探器所欠缺的,但是價(jià)格昂貴。目前流行的嗅探器工具大多是軟件的。
FTP、POP和Telnet在本質(zhì)上都是不安全的,因?yàn)樗鼈冊诰W(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù),嗅探器就可以非常容易地截獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗(yàn)證方式也是有弱點(diǎn)的,就是很容易受到“中間服務(wù)器”方式的攻擊。所謂“中間服務(wù)器”攻擊方式,就是“中間服務(wù)器”冒充真正的服務(wù)器接收用戶傳給服務(wù)器的數(shù)據(jù),然后再冒充用戶把數(shù)據(jù)傳給真正的服務(wù)器。服務(wù)器和用戶之間的數(shù)據(jù)傳送被“中間服務(wù)器”轉(zhuǎn)手并做了手腳之后,就會(huì)出現(xiàn)很嚴(yán)重的問題。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實(shí)的網(wǎng)絡(luò)報(bào)文。嗅探器通過將其置身于網(wǎng)絡(luò)接口來達(dá)到這個(gè)目的——例如將以太網(wǎng)卡設(shè)置成雜收模式。數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的稱為幀(Frame)的單位傳輸?shù)?。幀由好幾部分組成,不同的部分執(zhí)行不同的功能。例如以太網(wǎng)的前12個(gè)字節(jié)存放的是源和目的的地址,這些位告訴網(wǎng)絡(luò)數(shù)據(jù)的來源和去處。以太網(wǎng)幀的其他部分存放實(shí)際的用戶數(shù)據(jù)、TCP/IP的報(bào)文頭或IPX報(bào)文頭等等。幀通過特定的稱為網(wǎng)絡(luò)驅(qū)動(dòng)程序的軟件進(jìn)行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上。它通過網(wǎng)線到達(dá)它們的目的機(jī)器,在目的機(jī)器的一端執(zhí)行相反的過程。接收端機(jī)器的以太網(wǎng)卡捕獲到這些幀,并告訴操作系統(tǒng)幀的到達(dá),然后對其進(jìn)行存儲(chǔ)。在這個(gè)傳輸和接收的過程中,每一個(gè)在LAN上的工作站都有其硬件地址。這些地址唯一地表示著網(wǎng)絡(luò)上的機(jī)器。這一點(diǎn)和Internet地址系統(tǒng)比較相似。當(dāng)用戶發(fā)送一個(gè)報(bào)文時(shí),這些報(bào)文就會(huì)發(fā)送到LAN上所有可用的機(jī)器。在一般情況下,網(wǎng)絡(luò)上所有的機(jī)器都可以 “聽”到通過的流量,但對不屬于自己的報(bào)文則不予響應(yīng)。換句話說,工作站A不會(huì)捕獲屬于工作站B的數(shù)據(jù),而是簡單的忽略這些數(shù)據(jù)。如果某工作站的網(wǎng)絡(luò)接口處于雜收模式,那么它就可以捕獲網(wǎng)絡(luò)上所有的報(bào)文和幀。如果一個(gè)工作站被配置成這樣的方式,它(包括其軟件)就是一個(gè)嗅探器。這也是嗅探器會(huì)造成安全方面的問題的原因。
#p#Linux環(huán)境下的嗅探器
Linux環(huán)境下的嗅探器有tcpdump、Nmap、linSniffer、LinuxSniffer、hunt、sniffit等。下面就只介紹Linux下優(yōu)秀的嗅探器——tcpdump。
tcpdump 在Linux下的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進(jìn)行安裝。另外一種是以源程序的形式安裝。這里我們講 rpm包的形式安裝。這種形式的安裝是最簡單的安裝方法。rpm包是將軟件編譯后打包成二進(jìn)制的格式,通過rpm命令可以直接安裝,不需要修改任何東西。
以超級用戶登錄,使用命令如下:
#rpm -ivh tcpdump-3_4a5.rpm
這樣tcpdump就順利地安裝到Linux系統(tǒng)中。
tcpdump 是一個(gè)多用途的網(wǎng)絡(luò)通信監(jiān)測器,可捕獲和顯示報(bào)文及其內(nèi)容。它可用來作為協(xié)議分析器,在系統(tǒng)及網(wǎng)絡(luò)設(shè)備間提供一個(gè)最佳途徑來探查通信和(或)連通性問題。大多數(shù)時(shí)候,網(wǎng)絡(luò)疑難問題集中在網(wǎng)絡(luò)配置問題以及診斷硬件相關(guān)故障。然而,用戶將常常面對協(xié)議相關(guān)問題并且被迫鉆研特定協(xié)議的機(jī)制來解決問題。使用 tcpdump,被檢查的報(bào)文將用長格式或短格式(根據(jù)使用的命令行選項(xiàng))顯示其信息。tcpdump 有一個(gè)非常強(qiáng)有力的過濾機(jī)制,可用來查找與指定字符串或規(guī)則相匹配的報(bào)文。
tcpdump 提供兩種主要的捕獲模式:雜湊和非雜湊。在雜湊模式下,捕獲每個(gè)在網(wǎng)絡(luò)上傳遞的報(bào)文,不管該報(bào)文是否發(fā)送到執(zhí)行tcpdump 的系統(tǒng)。舉例來說,該模式就是RMON探測器在監(jiān)測網(wǎng)絡(luò)通信時(shí)使用的模式。網(wǎng)絡(luò)探測器(probe)在網(wǎng)絡(luò)上偵聽通信并收集協(xié)議信息和統(tǒng)計(jì)數(shù)據(jù)。因?yàn)榫钟蚓W(wǎng)(LAN)協(xié)議(如Ethernet)是基于廣播的,每個(gè)被傳送的幀可被連接到LAN上的任何網(wǎng)絡(luò)接口所獲得。任何設(shè)備可讀取每個(gè)傳送的幀,只要該設(shè)備選擇這么做并配置成該方式就可以讀取。當(dāng)一個(gè)設(shè)備或接口從網(wǎng)絡(luò)讀取每個(gè)幀,就說明它處于雜湊模式了。實(shí)際中,接口必須為雜湊操作進(jìn)行配置,并且僅僅用于需要網(wǎng)絡(luò)診斷的特殊場合。由于這個(gè)緣故,僅有root可以在一個(gè)接口上啟用雜湊模式。這是非root用戶不允許調(diào)用tcpdump 的主要原因。tcpdump工具提供了許多命令行選項(xiàng)來選擇捕獲模式、控制輸出、指定過濾規(guī)則以及指定其他操作特性。這些選項(xiàng)根據(jù)它們的功能被分組并且包括以下種類:操作模式、顯示選項(xiàng)、報(bào)文過濾選項(xiàng)。
操作模式選項(xiàng)用于控- w 保存原始報(bào)文到文件中。
舉例說明:制tcpdump 如何捕獲和如何顯示網(wǎng)絡(luò)通信的參數(shù)。 各選項(xiàng)的意義如下:
- c 捕獲指定數(shù)量的報(bào)文;
- F 使用文件作為過濾表達(dá)式的源;
- i 使用可選網(wǎng)絡(luò)接口捕獲報(bào)文;
- p 禁止在雜湊模式下捕獲;
- r 讀取捕獲文件而非網(wǎng)絡(luò)接口;
1.pdump arp將捕獲并顯示所有地址解析協(xié)議(ARP)報(bào)文。捕獲包括請求和應(yīng)答。
2.pdump host red and tcp將捕獲并顯示來自(發(fā)往)red 主機(jī)的所有傳輸控制協(xié)議報(bào)文。
3.pdump hos red1 and port 23將捕獲并顯示發(fā)往red1或從red1發(fā)出的所有使用23 端口的報(bào)文。用來檢查網(wǎng)絡(luò)上從其他系統(tǒng)到該系統(tǒng)的Telnet報(bào)文。端口23是對所有傳入的報(bào)文來說是Telnet服務(wù)端口。
#p#嗅探器的危害
嗅探器可以幫助網(wǎng)絡(luò)管理員查找網(wǎng)絡(luò)漏洞和檢測網(wǎng)絡(luò)性能。嗅探器是一把雙刃劍,它也有很大的危害性。
嗅探器可能造成的危害有:
1.嗅探器能夠捕獲口令;
2.夠捕獲專用的或者機(jī)密的信息;
3.以用來危害網(wǎng)絡(luò)鄰居的安全,或者用來獲取更高級別的訪問權(quán)限;
4.析網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)行網(wǎng)絡(luò)滲透。
嗅探器的攻擊非常普遍,尤其在Internet上。一個(gè)放置好的嗅探器可以捕獲成千上萬個(gè)口令。1994年一個(gè)最大的嗅探器攻擊被發(fā)現(xiàn)。這次攻擊被人們普遍認(rèn)為是記載中最為惡劣的一次,許多可以FTP、Telnet或遠(yuǎn)程登陸的主機(jī)系統(tǒng)都受到了危害。在這件事故(攻擊者處于Rahul.net)中,嗅探器只運(yùn)行了18個(gè)小時(shí)。在這段時(shí)間里,有幾百臺(tái)主機(jī)被泄密。受攻擊者包括268個(gè)站點(diǎn),如MIT、美國海軍和空軍、Sun微系統(tǒng)公司、IBM、NASA、 CERFNet和加拿大、以色列、荷蘭、比利時(shí)的一些大學(xué)的機(jī)器。
嗅探器可以捕獲網(wǎng)絡(luò)上所有的報(bào)文,但實(shí)際上,一個(gè)攻擊者必須要對報(bào)文進(jìn)行選擇。嗅探器攻擊并不像聽起來那么容易,它需要攻擊者對網(wǎng)絡(luò)知識(shí)有一定的了解。簡單地設(shè)置一個(gè)嗅探器,并將其放到隨便什么地方,將不會(huì)起到什么作用。因?yàn)榧词挂粋€(gè)只有5個(gè)工作站的網(wǎng)絡(luò),在一小時(shí)之內(nèi)也會(huì)傳輸好幾千個(gè)報(bào)文。這樣在很短的時(shí)間里,嗅探器中用來存儲(chǔ)捕獲報(bào)文的文件就會(huì)充斥整個(gè)硬盤(如果記錄下每一個(gè)報(bào)文的話)。
為了巧妙地解決這個(gè)問題,攻擊者只嗅探每個(gè)報(bào)文的前200到300個(gè)字節(jié)。用戶名和口令都包含在這一部分中,這是所有攻擊者真正關(guān)心的部分。當(dāng)然,如果擁有足夠的空間進(jìn)行存儲(chǔ),擁有足夠的能力進(jìn)行處理的話,也可以嗅探給定接口上的所有報(bào)文,那將會(huì)發(fā)現(xiàn)另一些非??膳碌臇|西。
【編輯推薦】















 
 
 
 
 
 
 